ClaveAudio_Web/pedido_procesa.php

225 lines
7.0 KiB
PHP
Raw Permalink Normal View History

<?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&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<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"]);
}
?>