ClaveAudio_Web/pedido_procesa.php
2011-05-06 11:33:27 +00:00

225 lines
7.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// ####################################################
// pedido_procesa.php
// parte de shoop
// © ff 2005
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '0');
// wfcart siempre antes del inicio de sesion
include('_incl/wfCart.php');
session_start();
include('db.php');
include('_incl/code.php');
function creaCliente($conexion, $datosCliente, &$body) {
$cliente_id = 0;
$query = 'INSERT INTO shoop_clientes( cliente_nombre,
cliente_direccion,
cliente_codigopostal,
cliente_localidad,
cliente_provincia,
cliente_telefono,
cliente_fax,
cliente_email,
cliente_nif,
cliente_added)
VALUES( "' . addslashes($datosCliente['nombre']) . '",
"' . addslashes($datosCliente['direccion']) . '",
"' . addslashes($datosCliente['codigopostal']) . '",
"' . addslashes($datosCliente['localidad']) . '",
"' . addslashes($datosCliente['provincia']) . '",
"' . addslashes($datosCliente['telefono']) . '",
"' . addslashes($datosCliente['fax']) . '",
"' . addslashes($datosCliente['email']) . '",
"' . addslashes($datosCliente['nif']) . '",
NOW());';
$result = mysql_query($query, $conexion);
if($result) {
$cliente_id = mysql_insert_id($conexion);
// creo el bloque de texto de los datos del cliente
$body .= 'Datos del cliente:' . "\n\n" .
$_REQUEST['nombre'] . "\n\n" .
$_REQUEST['direccion'] . "\n" .
$_REQUEST['codigopostal'] . ' ' . $_REQUEST['localidad'] . "\n" .
$_REQUEST['provincia'] . "\n\n" .
'Tel&eacute;fono: ' . $_REQUEST['telefono'] . "\n" .
'Fax: ' . $_REQUEST['fax'] . "\n" .
'email: ' . $_REQUEST['email'] . "\n" .
'NIF: ' . $_REQUEST['nif'] . "\n\n";
} else {
// ha ocurrido un error al crear la linea de pedido. que hago?
}
return $cliente_id;
}
function creaPedido($conexion, $clienteID, $formaPago, &$body) {
$pedido_id = 0;
$query = 'INSERT INTO shoop_pedidos(pedido_fecha, pedido_cliente, pedido_forma_pago)
VALUES (NOW(), ' . $clienteID . ', "' . addslashes($formaPago) . '");';
$result = mysql_query($query, $conexion);
if($result) {
$pedidoID = mysql_insert_id($conexion);
$body .= 'Numero de Pedido: ' . date(dm) . '-' . substr(10000 + $pedidoID, 1, 4) . "\n\n" .
'Forma de Pago: ' . $formaPago . "\n\n";
} else {
// ha ocurrido un error al crear el pedido...
}
return $pedidoID;
}
function creaLineaPedido($conexion, $pedidoID, $datosProducto, &$body) {
$query = 'INSERT INTO shoop_pedi_productos( pp_id_pedido,
pp_id_producto,
pp_cantidad,
pp_precio_ud,
pp_subtotal,
pp_prd_tipo,
pp_prd_marca,
pp_prd_modelo,
pp_prd_color)
VALUES (' . $pedidoID . ', ' .
$datosProducto['id'] . ', ' .
$datosProducto['qty'] . ', ' .
$datosProducto['price'] . ', ' .
$datosProducto['subtotal'] . ', ' .
'"' . addslashes($datosProducto['info']['tipo']) . '", ' .
'"' . addslashes($datosProducto['info']['marca']) . '", ' .
'"' . addslashes($datosProducto['info']['modelo']) . '", ' .
'"' . addslashes($datosProducto['info']['color']) . '");';
$result = mysql_query($query, $conexion);
If($result) {
$body .= $datosProducto['qty'] . ' ';
$body .= $datosProducto['info']['tipo'] . ' ' . $datosProducto['info']['marca'] . ' ' . $datosProducto['info']['modelo'] . (strlen($datosProducto['info']['color']) ? ' (Acabado ' . ucwords($datosProducto['info']['color']) . ')' : '') . ' ';
$body .= miNumberFormat($datosProducto['price']) . 'euros ';
$body .= miNumberFormat($datosProducto['subtotal']) . 'euros' . "\n\n";
} else {
// deberia devolver un error aqu
}
}
function formaPago($formadepago) {
// echo $formadepago;
}
function notifica($body, $direccion1 = '', $direccion2 = '') {
require_once("_incl/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "mail.claveaudio.com"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "webbot@claveaudio.com"; // SMTP username
$mail->Password = "IB425"; // SMTP password
$mail->From = "claveaudio@claveaudio.com";
$mail->FromName = "Clave Audio";
$mail->AddAddress($direccion1);
$mail->AddReplyTo("info@claveaudio.com");
$mail->IsHTML(false); // set email format to HTML
$mail->Subject = "Se ha realizado el siguiente pedido:\n\n\n";
$mail->Body = $body . "\n\n";
if(!$mail->Send())
{
/*
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
*/
return false;
} else {
/*
echo "Message has been sent to " . $emailTo;
*/
return true;
}
}
// ####################################################
// cargo el carrito o lo creo nuevo si fuera menester
$cart =& $_SESSION['cart'];
if(!is_object($cart)) $cart = new wfCart();
$numProducts = 0;
$subTotal = 0;
if(is_object($cart)) {
$numProducts = $cart->itemcount;
$subTotal = $cart->total;
} else {
Header("Location:" . $_SERVER["HTTP_REFERER"]);
exit;
// ####################################################
// OJO: como he llegado aqui sin pedido?
}
if($numProducts) {
$conn = db_connect();
if($conn) {
// ####################################################
// por un lado tengo los datos del cliente.
$cliente = creaCliente($conn, $_REQUEST, &$cuerpo);
if($cliente) {
$formaPago = $_REQUEST['formapago'];
$pedidoID = creaPedido($conn, $cliente, $formaPago, &$cuerpo);
// ####################################################
// por otro lado tengo el pedido
if($pedidoID) {
$totalPedido = 0;
$items = $cart->get_contents();
foreach($items as $item) {
creaLineaPedido($conn, $pedidoID, $item, &$cuerpo);
$totalPedido += $item['subtotal'];
} // foreach item
// todo ok. guardo el numero de cliente, el de pedido y la forma de pago en sendas variables de sesion y voy a la salida de la tienda
$cuerpo .= 'Subtotal del pedido: ' . $totalPedido;
$_SESSION['clave.cliente'] = $cliente;
$_SESSION['clave.pedido'] = $pedidoID;
$_SESSION['clave.pago'] = $formaPago;
// e informo a la tienda
notifica($cuerpo, 'info@claveaudio.com');
Header("Location:pedido_ok.php");
} else { // si se ha creado el pedido
// el pedido no se ha creado
}
} else {// si se ha creado el cliente
// el cliente no se ha creado
}
} else {
// no hay conexion
}
} else { // if $numProductos
// no hay productos
Header("Location:" . $_SERVER["HTTP_REFERER"]);
}
?>