Autor Tema: Ayuda con sistema de ventas  (Leído 3421 veces)

Cfernandez

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Ayuda con sistema de ventas
« en: 05 de Febrero 2018, 23:29 »
Estimados, necesito hacer unas modificaciones a un sistema de ventas en php y java, pero no eh podido realizar los ajustes necesarios ya que siempre me da errores, cabe decir que no tengo nada de experiencia y eh estado tratando de descifrar de a poco.
   Mi intención es poder hacer que cuando en la opción pago se seleccione "Abono" se deje finalizar la venta con una cantidad de dinero inferior al total, ya que si no es igual o mayor al total manda mensaje que falta efectivo y no se realiza la venta.



adjunto codigo del proceso de venta

Código: [Seleccionar]
<?php
date_default_timezone_set
("America/Mexico_City");
if(isset(
$_SESSION["cart"])){
$cart $_SESSION["cart"];
if(count($cart)>0){
/// antes de proceder con lo que sigue vamos a verificar que:
// haya existencia de productos
// si se va a facturar la cantidad a facturr debe ser menor o igual al producto facturado en inventario
$num_succ 0;
$process=false;
$errors = array();
foreach($cart as $c){

///
$product ProductData::getById($c["product_id"]);
$q OperationData::getQByStock($c["product_id"],StockData::getPrincipal()->id);
if($product->kind==2||$c["q"]<=$q){

$num_succ++;
}else{
$error = array("product_id"=>$c["product_id"],"message"=>"No hay suficiente cantidad de producto en inventario.");
$errors[count($errors)] = $error;
}

}

if(
$num_succ==count($cart)){
$process true;
}

if(
$process==false){
$_SESSION["errors"] = $errors;
?>

<script>
window.location="index.php?view=sell";
</script>
<?php
}





//////////////////////////////////
if($process==true){
$iva_val ConfigurationData::getByPreffix("imp-val")->val;
$x = new XXData();
$xx $x->add();
$sell = new SellData();
$sell->ref_id=$xx[1];
$sell->user_id $_SESSION["user_id"];

$sell->invoice_code $_POST["invoice_code"];
$sell->comment $_POST["comment"];
$sell->f_id $_POST["f_id"];

$sell->p_id $_POST["p_id"];
$sell->d_id $_POST["d_id"];
$sell->iva=  $iva_val;
$sell->cash $_POST["money"];
$sell->total $_POST["total"];
$sell->discount $_POST["discount"];
$sell->stock_to_id StockData::getPrincipal()->id;
$sell->person_id=$_POST["client_id"]!=""?$_POST["client_id"]:"NULL";

$s $sell->add();

 /// si es credito....
 if($_POST["p_id"]==4){
  $payment = new PaymentData();
  $payment->sell_id $s[1];
  $payment->val = ($_POST["total"]-$_POST["discount"]);
  $payment->person_id $_POST["client_id"];
  $payment->add();
  if($_POST["money"]>0){
$payment2 = new PaymentData();
  $payment2->sell_id $s[1];
  $payment2->val = -1*$_POST["money"];
  $payment2->person_id $_POST["client_id"];
  $payment2->add_payment();
  }
 }

foreach($cart as  $c){
$operation_type "salida";
if($_POST["d_id"]==2){ $operation_type="salida-pendiente"; }

$product ProductData::getById($c["product_id"]);

$price $product->price_out;
$px PriceData::getByPS($product->id,StockData::getPrincipal()->id);
if($px!=null){ $price $px->price_out; }

$op = new OperationData();
$op->price_in $product->price_in;
$op->price_out $price;
$op->product_id $c["product_id"] ;

$op->operation_type_id=OperationTypeData::getByName($operation_type)->id;
$op->stock_id StockData::getPrincipal()->id;
$op->sell_id=$s[1];
$op->q$c["q"];
if(isset($_POST["is_oficial"])){
$op->is_oficial 1;
}

$add $op->add();  



////////////////// generando el mensaje
$subject "[".$s[1]."] Nueva venta en el inventario";
$message "<p>Se ha realizado una venta con Id = ".$s[1]."</p>";
$person_th="";
$person_td="";
$person null;
if(
$_POST["client_id"]!=""){
$person PersonData::getById($_POST["client_id"]);
$person_th="<td>Cliente</td>";
$person_td="<td>".$person->name." ".$person->lastname."</td>";
}


$message .= "<table border='1'><tr>
<td>Id</td>
$person_th
<td>Local</td>
<td>Estado de pago</td>
<td>Estado de entrega</td>
<td>Total</td>
</tr>
<tr>
<td>"
.$s[1]."</td>
$person_td
<td>"
.StockData::getById($sell->stock_to_id)->name."</td>
<td>"
.PData::getById($sell->p_id)->name."</td>
<td>"
.DData::getById($sell->d_id)->name."</td>
<td> $"
.number_format($sell->total,0,".",",")."</td>
</tr>
</table>"
;
$message.="<h3 style='color:#333;'>Resumen</h3>";
$message.="<table border='1'><thead><th>Id</th><th>Codigo</th><th>Cantidad</th><th>Unidad</th><th>Producto</th><th>P.U</th><th>P. Total</th></thead>";
foreach($cart as  $c){
$message.="<tr>";
$product ProductData::getById($c["product_id"]);
$message.="<td>".$product->id."</td>";
$message.="<td>".$product->barcode."</td>";
$message.="<td>".$c["q"]."</td>";
$message.="<td>".$product->unit."</td>";
$message.="<td>".$product->name."</td>";
$message.="<td>$ ".number_format($product->price_out,0,".",",")."</td>";
$message.="<td>$ ".number_format($c["q"]*$product->price_out,0,".",",")."</td>";
$message.="</tr>";
}
$message.="</table>";
//////////////////
if($subject!=""&&$message!=""){
$m = new MailData();
$m->open();
// enviamos una copia del correo para el cliente
if($person!=null){ $m->mail->AddAddress($person->email1); }
    $m->mail->Subject $subject;
    $m->message "<p>$message</p>";
    $m->mail->IsHTML(true);
//     $m->send();
}
//////////////////




$qx OperationData::getQByStock($product->id,StockData::getPrincipal()->id);
$subject="";
$message="";
$last true;
if(
$qx==0){
$subject "[$product->name]".' No hay existencias';
$message "El producto <b>$product->name</b> no tiene existencias en el inventario";
$last=false;
}

if(
$qx<=$product->inventary_min/&& $last){
$subject "[$product->name]".' Muy pocas existencias';
$message "El producto <b>$product->name</b> tiene muy pocas existencias en el inventario";
$last=false;

}
if(
$qx<=$product->inventary_min && $last){
$subject "[$product->name]".' Pocas existencias';
$message "El producto <b>$product->name</b> tiene pocas existencias en el inventario";
$last=false;
}
//////////////////
if($subject!=""&&$message!=""){
$m = new MailData();
$m->open();
    $m->mail->Subject $subject;
    $m->message "<p>$message</p>";
    $m->mail->IsHTML(true);
//    $m->send();
}
//////////////////







////////////

}
unset($_SESSION["cart"]);
setcookie("selled","selled");////////////////////
print "<br><p class='alert alert-success'>Venta procesada exitosamente. <a target='_blank' href='ticket.php?id=$s[1]' class='btn-xs btn btn-info'><i class='fa fa-ticket'></i> Ver Ticket</a> <a href='index.php?view=onesell&id=$s[1]' class='btn-xs btn btn-primary'>Ver Resumen</a> </p>";
}
}
}



?>

espero se pueda realizar algo así.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".