<?php

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"]);
			if($product->use_inventory){

			$q = OperationData::getQByStock($c["product_id"],StockData::getPrincipal()->id);
			if($c["q"]<=$q){
				if(isset($_POST["is_oficial"])){
				$qyf =OperationData::getQByStock($c["product_id"],StockData::getPrincipal()->id); /// son los productos que puedo facturar
				if($c["q"]<=$qyf){
					$num_succ++;
				}else{
				$error = array("product_id"=>$c["product_id"],"message"=>"No hay suficiente cantidad de producto para facturar en inventario.");					
				$errors[count($errors)] = $error;
				}
				}else{
					// si llegue hasta aqui y no voy a facturar, entonces continuo ...
					$num_succ++;
				}
			}else{
				$error = array("product_id"=>$c["product_id"],"message"=>"No hay suficiente cantidad de producto en inventario.");
				$errors[count($errors)] = $error;
			}
		}else{
			$num_succ++;
		}

		}

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;
			$sell = new SellData();
			$sell->user_id = $_SESSION["user_id"];
			$sell->k = $_POST["k"];

			$sell->waiter_id = $_POST["waiter_id"]!=""?$_POST["waiter_id"]:"NULL";
			$sell->item_id = $_POST["item_id"]!=""?$_POST["item_id"]:"NULL";
			$sell->t_id = $_POST["t_id"];
			$sell->p_id = $_POST["p_id"];
			$sell->d_id = $_POST["d_id"];
			$sell->tip = $_POST["tip"];
			$sell->iva=  $iva_val;
			$sell->total = $_POST["total"];
			$sell->discount = $_POST["discount"];
			$sell->is_draft = 1;


	//		 if(isset($_POST["client_id"]) && $_POST["client_id"]!=""){
	//		 	$sell->person_id=$_POST["client_id"];
 //				$s = $sell->save_with_client();
//			 }else{
 				$s = $sell->add();
	//		 }


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

			$product = ProductData::getById($c["product_id"]);
			$op = new OperationData();
			$op->price_in = $product->price_in;
			$op->price_out = $product->price_out;
			$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();			 		

			unset($_SESSION["cart"]);
			setcookie("selled","selled");
		}
////////////////////
		if($_POST["k"]=="1"){
//print "<script>window.location='index.php?view=onesell&id=$s[1]';</script>";
print "<script>alert('Nueva Venta pendiente!');window.location='index.php?view=sellspending';</script>";
}else{
print "<script>alert('Proceder con los datos de pago!');window.location='index.php?view=opensell&id=$s[1]';</script>";
}
		}
	}
}



?>
