225 lines
7.0 KiB
PHP
225 lines
7.0 KiB
PHP
|
|
<?php
|
|||
|
|
// ####################################################
|
|||
|
|
// pedido_procesa.php
|
|||
|
|
// parte de shoop
|
|||
|
|
// <20> 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é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<71>
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
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"]);
|
|||
|
|
}
|
|||
|
|
?>
|