<?php
class CarritoGeneral extends Conexion1 {
public $mysqli;  public $data;
public function __construct() {$this->mysqli = parent::conectar();$this->data = array();}  
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function pCarrito($idCliente,$idUsuario,$idBodega,$control117){ $control=$control117;
$carrito=$this->mysqli->query("SELECT * FROM carrito WHERE id_bodega='$idBodega' AND id_usuario='$idUsuario' AND id_cliente='$idCliente' AND estado='$control117';"); 
$rCarrito=$carrito->num_rows; if($rCarrito>0){while($fila = $carrito->fetch_assoc()){$carrito1[] = $fila;}}
if(sizeof($carrito1)>0){ $usu12=$this->mysqli->query("SELECT tipo_cliente FROM usuarios WHERE id_usuario='$idCliente';")->fetch_assoc();
$total=0;for($i=0;$i<sizeof($carrito1);$i++){
$controlA[$i]["fecha"]=$carrito1[$i]["fecha"];   
$total+=$carrito1[$i]["cantidad"]*$carrito1[$i]["precio_unitario"];
$controlA[$i]["idpr"]=$carrito1[$i]["id_producto"]; $controlA[$i]["idus"]=$idCliente; $controlA[$i]["cant"]=$carrito1[$i]["cantidad"];
$controlA[$i]["cantAdic"]=0; $controlA[$i]["cantOriginal"]=$carrito1[$i]["cantidad"];
$controlA[$i]["rel"]=0; $controlA[$i]["sumi"]=0; 
$controlA[$i]["dev"]=0; $controlA[$i]["detDev"]=null; $contaolA[$i]["estaDevo"]=null; $controlA[$i]["estadDevo"]=0;
$controlA[$i]["cantDevo"]=0; $controlA[$i]["estEli"]=0;
$controlA[$i]["tipoPrecio"]=$usu12["tipo_cliente"]; $controlA[$i]["tipoPrecioAdic"]="vacio";
$controlA[$i]["tipoPrecioOriginal"]=$usu12["tipo_cliente"]; $controlA[$i]["costo"]=$carrito1[$i]["precio_unitario"];
$controlA[$i]["costoAdic"]="vacio"; $controlA[$i]["costoOriginal"]=$carrito1[$i]["precio_unitario"]; }	
$venta=json_encode($controlA); if($control=="general"){$tipo_cliente=$usu12["tipo_cliente"];
if($tipo_cliente=="mayoritario"){$tipo_venta_control=0;}if($tipo_cliente=="minoritario"){$tipo_venta_control=2;}if($tipo_cliente=="empresarial" || $tipo_cliente=="master"){$tipo_venta_control=5;}	
}else{if($control=="inmediato"){$tipo_venta_control=1;}else{$tipo_venta_control=6;}}
$res["tipo_venta_control"]=$tipo_venta_control; $res["venta"]=$venta; $res["total"]=$total;	$res["control"]=$control; }else{$res=NULL;} return $res;}

public function metodoPagoGeneral($dato){ $info=json_decode($dato,true); $idCliente=$info["idCliente"]; $idUsuario=$info["idUsuario"];
$idBodega=$info["idBodega"]; $estado=$info["estado"]; $hoy=$this->hoyCa(); $paso["paso"]="no paso";  
$r=$this->pCarrito($idCliente,$idUsuario,$idBodega,$estado); 
if($r!=NULL){ $venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"]; $paso["paso"]="paso"; 
$cl=$this->maximo(); $paso["estado"]=$tipo_venta_control; $paso["claveVenta"]=$cl;    
$aux=json_encode(array('verificacionDireccion'=>"no verificado", 'estadoTransaccion'=>"no verificado", "pausa"=>"0", "tipoPedido"=>$estado));
$con1122="INSERT INTO ventas(estado,id_vendedor,id_bodega,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,total,fecha) ";
$con2222="VALUES('picking','$idUsuario','$idBodega','$venta','$idCliente','$tipo_venta_control','pendiente','pendiente','$aux','$cl','$total','$hoy');";
$plc=$this->mysqli->query($con1122.$con2222);
if($plc){$paso["paso"]="paso"; $this->mysqli->query("DELETE FROM carrito WHERE id_bodega='$idBodega' AND id_usuario='$idUsuario' AND id_cliente='$idCliente' AND estado='$estado';");   }
}return json_encode($paso);}

public function maximo(){
$maximo = $this->mysqli->query("SELECT clave_venta FROM ventas WHERE tipo_venta_control!=12 AND tipo_venta_control!=6 AND tipo_venta_control!=9 AND tipo_venta_control!=11 ORDER BY id_venta DESC LIMIT 0,1;")->fetch_assoc(); if($maximo["clave_venta"]==NULL){$maximo1=0;}else{ $maximo1 = $maximo['clave_venta'];}
$clAux = $maximo1 + 1; return $clAux; }
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function conteoCarritoMasivo($idBodega,$idCliente,$idUsuario,$estado){$paso["paso"]="paso";
$a=$this->mysqli->query("SELECT id_carrito FROM carrito WHERE id_bodega='$idBodega' AND id_cliente='$idCliente' AND id_usuario='$idUsuario' AND estado='$estado';")->num_rows;
$paso["paso"]=$a; return json_encode($paso);}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function busquedaGeneralCarrito($idBodega,$busqueda,$idCliente,$idUsuario,$marca){$paso["paso"]="no paso";
$a=new BuscadorGeneral(); $res=$a->buscador117($busqueda,$idCliente,$marca,"cliente",$idBodega);
if($res==NULL){$paso["paso"]="error";}else{ $paso["paso"]="paso"; $paso["palabra"]=$res["palabraCorregida"]; $paso["tam"]=sizeof($res["lista"]); $paso["lista"]=$res["lista"];  
$lAux=$res["lista"]; if($paso["tam"]>=250){for($i=0;$i<250;$i++){$rLi[$i]=$lAux[$i];} $paso["lista"]=$rLi;}
$lAux1=$paso["lista"]; for($i=0;$i<sizeof($lAux1);$i++){ $lID[$i]= $lAux1[$i];} 
$paso["lista"]=$this->productosGeneAccion($lID,$idCliente,$idUsuario,$idBodega); } return json_encode($paso); }

// ---------------------------------------------------------------------------------------------------------------------
public function productosCargaCarrito($limite,$ancho,$idBodega,$idUsuario,$idCliente){$paso["paso"]="no paso"; $estado=" (JSON_UNQUOTE(JSON_EXTRACT(productos.estado, '$.candado')) = '1') ";
$cc7=new Consulta();  $ccAux=$cc7->arregloConsultaProducto($idBodega); $cc6=$ccAux["general"]." WHERE ".$estado.$ccAux["adicional"]." ORDER BY categoria ASC LIMIT $limite,$ancho;";
$a = $this->mysqli->query($cc6); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$res[]=$f;} $paso["paso"]="paso"; $paso["lista"]= $this->productosGeneAccion($res,$idCliente,$idUsuario,$idBodega);}return json_encode($paso);}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function productosGeneAccion($res,$idCliente,$idUsuario,$idBodega){
$ca=$this->mysqli->query("SELECT id_producto, id_usuario, cantidad, id_carrito FROM carrito WHERE id_cliente='$idCliente' AND id_usuario='$idUsuario' AND id_bodega='$idBodega' AND estado='general';");    
$car1=NULL; if($ca->num_rows!=0){while($f=$ca->fetch_assoc()){$car1[]=$f;}}
$s1=$this->mysqli->query("SELECT perfil, tipo_cliente, favoritos FROM usuarios WHERE id_usuario='$idCliente';")->fetch_assoc();
if(isset($s1["tipo_cliente"])){$tipoCliente=$s1["tipo_cliente"]; }else{$s1["tipo_cliente"]="minoritario"; $tipoCliente="minoritario";}
for($i=0;$i<sizeof($res);$i++){ 
$res[$i]["tipoCliente"]=$s1["tipo_cliente"]; if(!isset($s1["perfil"])){$res[$i]["perfil"]="Cliente";}else{ $res[$i]["perfil"]=$s1["perfil"];}
$auxPrGene=$this->obtenerPrecioGeneral(json_decode($res[$i]["precios"],true),json_decode($res[$i]["precios_promocion"],true),strval($res[$i]["estado_promocion"]),$tipoCliente);
$res[$i]["pPar"]=$auxPrGene["precio"]; $res[$i]["estado_promocion"]=$auxPrGene["estadoPromocion"];
$res[$i]["carritoInterno"]="no"; $res[$i]["cantidadInterno"]=0; $res[$i]["idCarrito"]=0; $res[$i]["gustaUsuario"]="no";
if(!isset($s1["favoritos"])){$s1["favoritos"]="";}
if($s1["favoritos"]!="[]" && $s1["favoritos"]!="" && $s1["favoritos"]!="null"){$sF1=json_decode($s1["favoritos"],true); 
for($k=0;$k<sizeof($sF1);$k++){if($sF1[$k]["id"]==$res[$i]["id"]){$res[$i]["gustaUsuario"]="si";}}}
if($car1!=NULL){$tam_car1=sizeof($car1);for($ij=0; $ij <$tam_car1 ; $ij++){if($car1[$ij]["id_producto"]==$res[$i]["id"]){
$res[$i]["carritoInterno"]="si"; $res[$i]["cantidadInterno"]=$car1[$ij]["cantidad"]; $res[$i]["idCarrito"]=$car1[$ij]["id_carrito"]; }}}} return $res; }
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function obtenerPrecioGeneral($po,$pP,$eP,$tC){
if($eP=="0"){if($tC=="empresarial" || $tC=="master"){$pr=$po[3];}else{if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){$pr=$po[2];}else{$pr=$po[1];}}}else{
if($tC=="empresarial" || $tC=="master"){ if($pP[2]==0){$pr=$po[3]; $eP="0"; }else{$pr=$pP[2];}  }else{
if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){ if($pP[1]==0){$pr=$po[2]; $eP="0";}else{$pr=$pP[1];}  }else{
if($pP[0]==0){$pr=$po[1]; $eP="0";}else{$pr=$pP[0];}}}} $respuesta["precio"]=$pr; $respuesta["estadoPromocion"]=$eP; return $respuesta;}

// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function hoyCa(){$hoy = date("Y-m-d H:i:s"); return $hoy;}

function auxRelUbicacion($control,$relAux,$stock,$ventas,$idBodega,$controlCantidad,$ubicacion){ $aa=json_decode($stock,true); 
$aux=$aa[$idBodega]; for($i=0;$i<sizeof($aux);$i++){ if($ubicacion==$aux[$i]["ubicacion"]){ if($control=="suma"){  
$aux[$i][$controlCantidad]=$aux[$i][$controlCantidad]-$relAux;}else{ $aux[$i][$controlCantidad]=$aux[$i][$controlCantidad]+$relAux;}}}
$aa[$idBodega]=$aux;  $stock22=json_encode($aa);
if($ventas=="[]" || $ventas=="{}"){if($control=="suma"){$auxVenta[$idBodega]=$relAux;}else{$auxVenta[$idBodega]=-$relAux;}}else{
$auxVenta=json_decode($ventas,true);if($control=="suma"){if(isset($auxVenta[$idBodega])){$auxVenta[$idBodega]=$auxVenta[$idBodega]+$relAux;}else{$auxVenta[$idBodega]=$relAux;}}else{
if(isset($auxVenta[$idBodega])){$auxVenta[$idBodega]=$auxVenta[$idBodega]-$relAux;}else{$auxVenta[$idBodega]=-$relAux;}}}
if($controlCantidad=="cantidad"){$venta22=$ventas;}else{$venta22=json_encode($auxVenta);}  $res["venta"]=$venta22; $res["stock"]=$stock22; return $res;}

function auxRelNuevo($control,$relAux,$stock,$ventas,$idBodega,$controlCantidad){
$aa=json_decode($stock,true); $aux=$aa[$idBodega]; 
if(sizeof($aux)==1){if($control=="suma"){$aux[0][$controlCantidad]=$aux[0][$controlCantidad]-$relAux;}else{$aux[0][$controlCantidad]=$aux[0][$controlCantidad]+$relAux;}}else{
if($control!="suma"){$aux[0][$controlCantidad]=$aux[0][$controlCantidad]+$relAux;}else{  
$aux2=$aux; array_multisort(array_column($aux2,$controlCantidad), SORT_DESC, $aux2); 
$indice=$this->encontrarIndiceMasCercano($relAux, $aux2); if($indice!=NULL){ 
for($k=0;$k<sizeof($aux);$k++){if($aux[$k]["ubicacion"]==$aux2[$indice]["ubicacion"]){$aux[$k][$controlCantidad]=$aux[$k][$controlCantidad]-$relAux;}}}else{$cantidadAux=$relAux; 
for($k1=0;$k1<sizeof($aux2);$k1++){$aux44=$aux2[$k1][$controlCantidad];if(($aux44-$cantidadAux)<0&&$cantidadAux!=NULL){$aux2[$k1][$controlCantidad]=0; $cantidadAux=$cantidadAux-$aux44;}else{ $aux2[$k1][$controlCantidad]=$aux2[$k1][$controlCantidad]-$cantidadAux; $cantidadAux=NULL; }}
for($k2=0;$k2<sizeof($aux);$k2++){for($k3=0;$k3<sizeof($aux2);$k3++){ if($aux[$k2]["ubicacion"]==$aux2[$k3]["ubicacion"]){$aux[$k2]=$aux2[$k3];}}}}}} 
if($ventas=="[]" || $ventas=="{}"){if($control=="suma"){$auxVenta[$idBodega]=$relAux;}else{$auxVenta[$idBodega]=-$relAux;}}else{
$auxVenta=json_decode($ventas,true);if($control=="suma"){if(isset($auxVenta[$idBodega])){$auxVenta[$idBodega]=$auxVenta[$idBodega]+$relAux;}else{$auxVenta[$idBodega]=$relAux;}}else{
if(isset($auxVenta[$idBodega])){$auxVenta[$idBodega]=$auxVenta[$idBodega]-$relAux;}else{$auxVenta[$idBodega]=-$relAux;}}}
if($controlCantidad=="cantidad"){$venta22=$ventas;}else{$venta22=json_encode($auxVenta);}  $aa[$idBodega]=$aux; $stock22=json_encode($aa);
$res["venta"]=$venta22; $res["stock"]=$stock22; return $res;}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
function encontrarIndiceMasCercano($cantidad, $array) {
for($index=count($array)-1;$index>=0;$index--){if($array[$index]['cantidad'] >= $cantidad) {return $index;}} return NULL;}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
//public function ingresoCarritoMasivo($idpro,$idusu,$idCliente,$cantidad,$pu,$estado,$idBodega){ $res["estado"]=0; $hoy=$this->hoyCa();
//$b=$this->mysqli->query("SELECT id_carrito FROM carrito WHERE id_producto='$idpro' AND id_usuario='$idusu' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->num_rows;
//if($b!=0){$res["estado"]=1;}else{
//$coss1="COALESCE(SUM(jt.cantidadAux), 0) AS stock "; $coss3=" GROUP BY productos.id";
//$coss2="LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$.\"".$idBodega."\"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1";    
//$consulta="SELECT ventas_array, ubicacion_array , COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion FROM productos WHERE id='$idpro' ;";
//$a=$this->mysqli->query($consulta); if($a->num_rows!=0){ $aA=$a->fetch_assoc(); $ssttoo=new Consulta(); $aA["stock"]=$ssttoo->auxStock($aA["ubicacion"]);  if($aA["stock"]>=$cantidad){
//$ubicacionArray=$aA["ubicacion_array"]; $ventasArray=$aA["ventas_array"]; $AAXX=$this->auxRelNuevo("suma",$cantidad,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux");   
//$ca="INSERT INTO carrito (id_producto,id_usuario,id_cliente,cantidad,precio_unitario,estado,fecha,id_bodega) VALUES('$idpro','$idusu','$idCliente','$cantidad','$pu','$estado','$hoy','$idBodega');";
//$ca2= $this->mysqli->query($ca);  if($ca2){ $vAA=$AAXX["venta"]; $sAA=$AAXX["stock"];
//$res["estado"]=4; $this->mysqli->query("UPDATE productos SET ventas_array='$vAA', ubicacion_array='$sAA' WHERE id=$idpro;");
//$rrr=$this->mysqli->query("SELECT id_carrito FROM carrito WHERE id_usuario='$idusu' AND id_producto='$idpro' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->fetch_assoc();
//$res["idCarrito"] =$rrr["id_carrito"]; }else{$res["estado"]=3;}}else{$res["estado"]=2; $res["stock"]=$aA["stock"];} }} return json_encode($res);}
public function ingresoCarritoMasivo($idpro,$idusu,$idCliente,$cantidad,$pu,$estado,$idBodega,$tipoCliente,$stockNegativo,$idEmpresa){ $res["estado"]=0; $hoy=$this->hoyCa();
$b=$this->mysqli->query("SELECT id_carrito FROM carrito WHERE id_empresa='$idEmpresa' AND id_producto='$idpro' AND id_usuario='$idusu' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->num_rows;
if($b!=0){$res["estado"]=1;}else{
$consulta="SELECT precios, precios_promocion, estado_promocion, ventas_array, ubicacion_array , COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion FROM productos WHERE id='$idpro' ;";
$a=$this->mysqli->query($consulta); if($a->num_rows!=0){ $aA=$a->fetch_assoc(); $ssttoo=new Consulta(); $aA["stock"]=$ssttoo->auxStock($aA["ubicacion"]); if($aA["stock"]>=$cantidad || strval($stockNegativo)=="true"){
$proAA=$this->revisionPromocion($aA["estado_promocion"],$cantidad,$tipoCliente,json_decode($aA["precios_promocion"],true),json_decode($aA["precios"],true));
$AAXX=$this->auxRelNuevo("suma",$cantidad,$aA["ubicacion_array"],$aA["ventas_array"],$idBodega,"cantidadAux");
//echo $tipoCliente; var_dump($proAA); echo $aA["estado_promocion"];
$ca="INSERT INTO carrito (id_empresa,id_producto,id_usuario,id_cliente,cantidad,precio_unitario,estado,fecha,id_bodega) VALUES('$idEmpresa','$idpro','$idusu','$idCliente','$cantidad','$pu','$estado','$hoy','$idBodega');";
if($proAA["promo"]=="no"){ $ca2= $this->mysqli->query($ca);  if($ca2){ $vAA=$AAXX["venta"]; $sAA=$AAXX["stock"];
$res["estado"]=4; $this->mysqli->query("UPDATE productos SET ventas_array='$vAA', ubicacion_array='$sAA' WHERE id=$idpro;");
$rrr=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$idusu' AND id_producto='$idpro' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->fetch_assoc();
$ggt=$this->mysqli->query("SELECT ubicacion_array FROM productos WHERE id='$idpro'")->fetch_assoc();
$res["carrito"]=$rrr; $res["listado"]=$ggt["ubicacion_array"]; $res["idCarrito"] =$rrr["id_carrito"]; }else{$res["estado"]=3;}
}else{ if($proAA["cant"]=="si"){ $ca2= $this->mysqli->query($ca);  if($ca2){ $vAA=$AAXX["venta"]; $sAA=$AAXX["stock"];
$res["estado"]=4; $this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)-$cantidad), ventas_array='$vAA', ubicacion_array='$sAA' WHERE id=$idpro;");
$rrr=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$idusu' AND id_producto='$idpro' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->fetch_assoc();
$ggt=$this->mysqli->query("SELECT ubicacion_array FROM productos WHERE id='$idpro'")->fetch_assoc();
$res["carrito"]=$rrr; $res["listado"]=$ggt["ubicacion_array"]; $res["idCarrito"] =$rrr["id_carrito"]; }else{$res["estado"]=3;} }else{ $puNNN=$proAA["precio"]; 
$caA="INSERT INTO carrito (id_empresa,id_producto,id_usuario,id_cliente,cantidad,precio_unitario,estado,fecha,id_bodega) VALUES('$idEmpresa','$idpro','$idusu','$idCliente','$cantidad','$puNNN','$estado','$hoy','$idBodega');";
$ca2= $this->mysqli->query($caA);  if($ca2){ $vAA=$AAXX["venta"]; $sAA=$AAXX["stock"];
$res["estado"]=7; $this->mysqli->query("UPDATE productos SET ventas_array='$vAA', ubicacion_array='$sAA' WHERE id=$idpro;");
$rrr=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$idusu' AND id_producto='$idpro' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->fetch_assoc();
$ggt=$this->mysqli->query("SELECT ubicacion_array FROM productos WHERE id='$idpro'")->fetch_assoc();
$res["listado"]=$ggt["ubicacion_array"];  $res["carrito"]=$rrrr;  $res["idCarrito"] =$rrr["id_carrito"]; }else{$res["estado"]=3;}}} }else{$res["estado"]=2; $res["stock"]=$aA["stock"];}}}  return json_encode($res);}

public function revisionPromocion($eP,$cantidad,$tC,$pP,$po){ $res="no"; $paso="no";  
if(strval($eP)!="0" && strval($eP)!="1"){$json=json_decode($eP,true);if(strval($json["active"]!="0")){ 
$final11=strtotime($json["final"]);  $hoy=strtotime(date("d-m-Y H:i:00",time())); $inicial=strtotime($json["inicial"]);  
if($hoy>=$inicial && $hoy<=$final11){ if($tC=="empresarial" || $tC=="master"){if(strval($pP[2])!="0"){$res="si";}}else{
if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){if(strval($pP[1])!="0"){$res="si";}}else{
if(strval($pP[0])!="0"){$res="si";}}} if($cantidad<=$json["cantidad"]){$paso="si";}   }}}  $aux1=new Consulta(); 
$aux11=$aux1->obtenerPrecioGeneral($po,$pP,"0",$tC);  $aa["precio"]=$aux11["precio"];
$aa["promo"]=$res; $aa["cant"]=$paso; return $aa;}

//public function revisionPromocion($eP,$cantidad,$tC,$pP,$po){ $res="no"; $paso="no";  
//if(strval($eP)=="0" && strval($eP)=="1"){$json=json_decode($eP,true);if(strval($json["active"]!="0")){ 
//$final11=strtotime($json["final"]);  $hoy=strtotime(date("d-m-Y H:i:00",time())); $inicial=strtotime($json["inicial"]);  
//$aa["hoy"]= $hoy; $aa["inicial"]= $inicial; $aa["final"]=$final11;
//if($hoy>=$inicial && $hoy<=$final11){echo "paso "; if($tC=="empresarial" || $tC=="master"){if(strval($pP[2])!="0"){$res="si";}}else{
//if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){if(strval($pP[1])!="0"){$res="si";}}else{
//if(strval($pP[0])!="0"){$res="si";}}} if($cantidad<=$json["cantidad"]){$paso="si";}   }}}  $aux1=new Consulta(); 
//$aux11=$aux1->obtenerPrecioGeneral($po,$pP,"0",$tC);  $aa["precio"]=$aux11["precio"];
//$aa["promo"]=$res; $aa["cant"]=$paso; return $aa;}

// public function ingresoCarritoMasivo($idpro,$idusu,$idCliente,$cantidad,$pu,$estado,$idBodega){ $res["estado"]=0; $hoy=$this->hoyCa();
// $b=$this->mysqli->query("SELECT id_carrito FROM carrito WHERE id_producto='$idpro' AND id_usuario='$idusu' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->num_rows;
// if($b!=0){$res["estado"]=1;}else{$coss1="COALESCE(SUM(jt.cantidadAux), 0) AS stock "; $coss3=" GROUP BY productos.id";
// $coss2="LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$.\"".$idBodega."\"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1";    
// $consulta="SELECT ventas_array, ubicacion_array , ".$coss1." FROM productos ".$coss2." WHERE id='$idpro' ".$coss3;
// $a=$this->mysqli->query($consulta); if($a->num_rows!=0){ $aA=$a->fetch_assoc(); if($aA["stock"]>=$cantidad){
// $ubicacionArray=$aA["ubicacion_array"]; $ventasArray=$aA["ventas_array"]; $AAXX=$this->auxRelNuevo("suma",$cantidad,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux");   
// $ca="INSERT INTO carrito (id_producto,id_usuario,id_cliente,cantidad,precio_unitario,estado,fecha,id_bodega) VALUES('$idpro','$idusu','$idCliente','$cantidad','$pu','$estado','$hoy','$idBodega');";
// $ca2= $this->mysqli->query($ca);  if($ca2){ $vAA=$AAXX["venta"]; $sAA=$AAXX["stock"];
// $res["estado"]=4; $this->mysqli->query("UPDATE productos SET ventas_array='$vAA', ubicacion_array='$sAA' WHERE id=$idpro;");
// $rrr=$this->mysqli->query("SELECT id_carrito FROM carrito WHERE id_usuario='$idusu' AND id_producto='$idpro' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';")->fetch_assoc();
// $res["idCarrito"] =$rrr["id_carrito"]; }else{$res["estado"]=3;}}else{$res["estado"]=2; $res["stock"]=$aA["stock"];} }} return json_encode($res);}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
//public function actualizarCantidadMasivo($idCarrito,$cantidad,$idProducto,$idBodega){$paso["paso"]="no paso";
//$a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito=$idCarrito;"); if($a->num_rows!=0){
//$a1=$a->fetch_assoc();  $dif=$cantidad-$a1["cantidad"];  if($dif<=0){$dif1=$dif*(-1);}else{$dif1=$dif;}
//$coss1="COALESCE(SUM(jt.cantidadAux), 0) AS stock "; $coss3=" GROUP BY productos.id";
//$coss2="LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$.\"".$idBodega."\"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1";    
//$consulta="SELECT ventas_array, ubicacion_array , COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion FROM productos WHERE id=$idProducto ;"; $b=$this->mysqli->query($consulta); if($b->num_rows!=0){
//$bB=$b->fetch_assoc();  $ssttoo=new Consulta(); $stock=$ssttoo->auxStock($bB["ubicacion"]); $ubicacionArray=$bB["ubicacion_array"]; $ventasArray=$bB["ventas_array"];
//if($dif<0){$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
//$AAXX=$this-> auxRelNuevo("resta",$dif1,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
//$this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso"; }}else{
//if($stock>=$dif1){ $ddd=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';");
//$AACC=$this->auxRelNuevo("suma",$dif1,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux");  $vSS=$AACC["venta"]; $sAA=$AACC["stock"];if($ddd){
//$this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso"; }
//}else{$sss=$this->mysqli->query($consulta)->fetch_assoc(); $ssttoo1=new Consulta();  $paso["stock"]=$this->auxStock($sss["ubicacion"]);}}}} return json_encode($paso); }
public function actualizarCantidadMasivo($idCarrito,$cantidad,$idProducto,$idBodega,$tipoCliente,$stockNegativo){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito=$idCarrito;"); if($a->num_rows!=0){
$a1=$a->fetch_assoc();  $dif=$cantidad-$a1["cantidad"];  if($dif<=0){$dif1=$dif*(-1);}else{$dif1=$dif;}
$consulta="SELECT precios, precios_promocion, estado_promocion, ventas_array, ubicacion_array , COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion FROM productos WHERE id=$idProducto ;"; 
$b=$this->mysqli->query($consulta); if($b->num_rows!=0){ $bB=$b->fetch_assoc(); $ssttoo=new Consulta(); $stock=$ssttoo->auxStock($bB["ubicacion"]);
$proAA=$this->revisionPromocion($bB["estado_promocion"],$dif,$tipoCliente,json_decode($bB["precios_promocion"],true),json_decode($bB["precios"],true));
if($dif<0){ if($proAA["promo"]=="no"){
$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
$AAXX=$this-> auxRelNuevo("resta",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
$this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); 
$yy=$this->mysqli->query("SELECT productos.ubicacion_array, carrito.* FROM carrito INNER JOIN productos ON carrito.id_producto=productos.id WHERE carrito.id_carrito='$idCarrito';")->fetch_assoc();
$paso["listado"]=$yy["ubicacion_array"]; $paso["carrito"]=array("id_cliente"=>$yy["id_cliente"],"id_carrito"=>$yy["id_carrito"],"id_producto"=>$yy["id_producto"],"id_usuario"=>$yy["id_usuario"], "estado"=>$yy["estado"], "cantidad"=>$yy["cantidad"], "fecha"=>$yy["fecha"],"id_bodega"=>$yy["id_bodega"]);
$paso["paso"]="paso";}}else{    
$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
$AAXX=$this-> auxRelNuevo("resta",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
$this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)+$dif1), ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso";}}
}else{if($stock>=$dif1 || strval($stockNegativo)=="true"){ if($proAA["promo"]=="no"){
$ddd=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';");
$AACC=$this->auxRelNuevo("suma",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux");  $vSS=$AACC["venta"]; $sAA=$AACC["stock"];if($ddd){
$this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;");
$yy=$this->mysqli->query("SELECT productos.ubicacion_array, carrito.* FROM carrito INNER JOIN productos ON carrito.id_producto=productos.id WHERE carrito.id_carrito='$idCarrito';")->fetch_assoc();
$paso["listado"]=$yy["ubicacion_array"]; $paso["carrito"]=array("id_cliente"=>$yy["id_cliente"],"id_carrito"=>$yy["id_carrito"],"id_producto"=>$yy["id_producto"],"id_usuario"=>$yy["id_usuario"], "estado"=>$yy["estado"], "cantidad"=>$yy["cantidad"], "fecha"=>$yy["fecha"],"id_bodega"=>$yy["id_bodega"]);
$paso["paso"]="paso"; }
}else{ if($proAA["cant"]=="no"){ $paso["paso"]="cantidad nula"; }else{
$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
$AAXX=$this-> auxRelNuevo("suma",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
$this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)-$dif1), ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); 
$yy=$this->mysqli->query("SELECT productos.ubicacion_array, carrito.* FROM carrito INNER JOIN productos ON carrito.id_producto=productos.id WHERE carrito.id_carrito='$idCarrito';")->fetch_assoc();
$paso["listado"]=$yy["ubicacion_array"]; $paso["carrito"]=array("id_cliente"=>$yy["id_cliente"],"id_carrito"=>$yy["id_carrito"],"id_producto"=>$yy["id_producto"],"id_usuario"=>$yy["id_usuario"], "estado"=>$yy["estado"], "cantidad"=>$yy["cantidad"], "fecha"=>$yy["fecha"],"id_bodega"=>$yy["id_bodega"]);
$paso["paso"]="paso";}
}}}else{$sss=$this->mysqli->query($consulta)->fetch_assoc(); $ssttoo1=new Consulta();  $paso["stock"]=$ssttoo1->auxStock($sss["ubicacion"]);
}}}} return json_encode($paso); }


public function actualizarCantidadMasivo11($idCarrito,$cantidad,$idProducto,$idBodega,$tipoCliente){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito=$idCarrito;"); if($a->num_rows!=0){
$a1=$a->fetch_assoc();  $dif=$cantidad-$a1["cantidad"];  if($dif<=0){$dif1=$dif*(-1);}else{$dif1=$dif;}
$consulta="SELECT precios, precios_promocion, estado_promocion, ventas_array, ubicacion_array , COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion FROM productos WHERE id=$idProducto ;"; 
$b=$this->mysqli->query($consulta); if($b->num_rows!=0){ $bB=$b->fetch_assoc(); $ssttoo=new Consulta(); $stock=$ssttoo->auxStock($bB["ubicacion"]);
$proAA=$this->revisionPromocion($bB["estado_promocion"],$dif,$tipoCliente,json_decode($bB["precios_promocion"],true),json_decode($bB["precios"],true));
if($dif<0){ if($proAA["promo"]=="no"){
$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
$AAXX=$this-> auxRelNuevo("resta",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
$this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso";}}else{    
$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
$AAXX=$this-> auxRelNuevo("resta",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
$this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)+$dif1), ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso";}}
}else{if($stock>=$dif1){ if($proAA["promo"]=="no"){
$ddd=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';");
$AACC=$this->auxRelNuevo("suma",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux");  $vSS=$AACC["venta"]; $sAA=$AACC["stock"];if($ddd){
$this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso"; }
}else{ if($proAA["cant"]=="no"){ $paso["paso"]="cantidad nula"; }else{
$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
$AAXX=$this-> auxRelNuevo("suma",$dif1,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
$this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)-$dif1), ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso";}
}}}else{$sss=$this->mysqli->query($consulta)->fetch_assoc(); $ssttoo1=new Consulta();  $paso["stock"]=$ssttoo1->auxStock($sss["ubicacion"]);
}}}} return json_encode($paso); }

// public function actualizarCantidadMasivo($idCarrito,$cantidad,$idProducto,$idBodega){$paso["paso"]="no paso";
// $a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito=$idCarrito;"); if($a->num_rows!=0){
// $a1=$a->fetch_assoc();  $dif=$cantidad-$a1["cantidad"];  if($dif<=0){$dif1=$dif*(-1);}else{$dif1=$dif;}
// $coss1="COALESCE(SUM(jt.cantidadAux), 0) AS stock "; $coss3=" GROUP BY productos.id";
// $coss2="LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$.\"".$idBodega."\"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1";    
// $consulta="SELECT ventas_array, ubicacion_array , ".$coss1." FROM productos ".$coss2." WHERE id=$idProducto ".$coss3; $b=$this->mysqli->query($consulta); if($b->num_rows!=0){
// $bB=$b->fetch_assoc();  $stock=$bB["stock"]; $ubicacionArray=$bB["ubicacion_array"]; $ventasArray=$bB["ventas_array"];
// if($dif<0){$ccc=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';"); if($ccc){
// $AAXX=$this-> auxRelNuevo("resta",$dif1,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux"); $vSS=$AAXX["venta"]; $sAA=$AAXX["stock"];
// $this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso"; }}else{
// if($stock>=$dif1){ $ddd=$this->mysqli->query("UPDATE carrito SET cantidad=$cantidad WHERE id_carrito='$idCarrito';");
// $AACC=$this->auxRelNuevo("suma",$dif1,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux");  $vSS=$AACC["venta"]; $sAA=$AACC["stock"];if($ddd){
// $this->mysqli->query("UPDATE productos SET ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idProducto;"); $paso["paso"]="paso"; }
// }else{$sss=$this->mysqli->query($consulta)->fetch_assoc();  $paso["stock"]=$sss["stock"];}}}} return json_encode($paso); }
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
//public function eliminarProductoMasivo($idCarrito){$paso["paso"]="no paso";
//$a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito='$idCarrito';");    
//if($a->num_rows!=0){$aA=$a->fetch_assoc(); $idpro=$aA["id_producto"]; $cantidad=$aA["cantidad"]; $idBodega=$aA["id_bodega"];
// $coss1="COALESCE(SUM(jt.cantidadAux), 0) AS stock "; $coss3=" GROUP BY productos.id";
// $coss2="LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$.\"".$idBodega."\"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1";    
//$consulta="SELECT ventas_array, ubicacion_array FROM productos WHERE id=$idpro ;";
//$b=$this->mysqli->query($consulta); if($b->num_rows!=0){ $bB=$b->fetch_assoc(); $ubicacionArray=$bB["ubicacion_array"]; $ventasArray=$bB["ventas_array"]; 
//$cc=$this->mysqli->query("DELETE FROM carrito WHERE id_carrito=$idCarrito;"); if($cc){
//$AADD=$this->auxRelNuevo("resta",$cantidad,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux");   $vSS=$AADD["venta"]; $sAA=$AADD["stock"];
//$this->mysqli->query("UPDATE productos SET ventas_array='$vSS' , ubicacion_array='$sAA' WHERE id=$idpro;"); $paso["paso"]="paso";}}}
//return json_encode($paso);  }

public function eliminarProductoMasivo($idCarrito,$tipoCliente){ $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito='$idCarrito';");
if($a->num_rows!=0){$aA=$a->fetch_assoc(); $idpro=$aA["id_producto"]; $cantidad=$aA["cantidad"]; $idBodega=$aA["id_bodega"];
$consulta="SELECT ventas_array, ubicacion_array, estado_promocion, precios, precios_promocion FROM productos WHERE id=$idpro;";
$b=$this->mysqli->query($consulta); if($b->num_rows!=0){
$bB=$b->fetch_assoc(); $cc=$this->mysqli->query("DELETE FROM carrito WHERE id_carrito=$idCarrito;"); if($cc){$paso["paso"]="paso";
$AADD=$this->auxRelNuevo("resta",$cantidad,$bB["ubicacion_array"],$bB["ventas_array"],$idBodega,"cantidadAux");   $vSS=$AADD["venta"]; $sAA=$AADD["stock"];
$proAA=$this->revisionPromocion($bB["estado_promocion"],$cantidad,$tipoCliente,json_decode($bB["precios_promocion"],true),json_decode($bB["precios"],true));
if($proAA["promo"]=="no"){$this->mysqli->query("UPDATE productos SET ventas_array='$vSS' , ubicacion_array='$sAA' WHERE id=$idpro;");}else{
$this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)+$cantidad)), ventas_array='$vSS', ubicacion_array='$sAA' WHERE id=$idpro;");}
$rr=$this->mysqli->query("SELECT ubicacion_array FROM productos WHERE id='$idpro';")->fetch_assoc();
$paso["listado"]=$rr["ubicacion_array"];
}}} return json_encode($paso); }

// public function eliminarProductoMasivo($idCarrito){$paso["paso"]="no paso";
// $a=$this->mysqli->query("SELECT * FROM carrito WHERE id_carrito='$idCarrito';");    
// if($a->num_rows!=0){$aA=$a->fetch_assoc(); $idpro=$aA["id_producto"]; $cantidad=$aA["cantidad"]; $idBodega=$aA["id_bodega"];
// $coss1="COALESCE(SUM(jt.cantidadAux), 0) AS stock "; $coss3=" GROUP BY productos.id";
// $coss2="LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$.\"".$idBodega."\"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1";    
// $consulta="SELECT ventas_array, ubicacion_array , ".$coss1." FROM productos ".$coss2." WHERE id=$idpro ".$coss3;
// $b=$this->mysqli->query($consulta); if($b->num_rows!=0){ $bB=$b->fetch_assoc(); $ubicacionArray=$bB["ubicacion_array"]; $ventasArray=$bB["ventas_array"]; 
// $cc=$this->mysqli->query("DELETE FROM carrito WHERE id_carrito=$idCarrito;"); if($cc){
// $AADD=$this->auxRelNuevo("resta",$cantidad,$ubicacionArray,$ventasArray,$idBodega,"cantidadAux");   $vSS=$AADD["venta"]; $sAA=$AADD["stock"];
// $this->mysqli->query("UPDATE productos SET ventas_array='$vSS' , ubicacion_array='$sAA' WHERE id=$idpro;"); $paso["paso"]="paso";}}}
// return json_encode($paso);  }
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function eliminarAuxMasivo($aA,$idBodega){$paso["paso"]="no paso"; $error=0; 
for($i=0;$i<sizeof($aA);$i++){$cant[$i]=$aA[$i]['cant'];$idPro[$i]=$aA[$i]['idpr'];
$b[$i]=$this->mysqli->query("UPDATE productos SET ubicacion_array=JSON_SET(ubicacion_array,'$.\"".$idBodega."\"[0].cantidadAux',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"".$idBodega."\"[0].cantidadAux')),0)+$cant[$i]), ventas_array= JSON_SET(ventas_array,'$.\"".$idBodega."\"',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ventas_array, '$.\"".$idBodega."\"')),0) -$cant[$i]) WHERE id=$idPro[$i];");    
if(!$b[$i]){$error++;}} if($error==0){$paso["paso"]="paso";} return json_encode($paso);}

public function eliminarTotalMasivo($idUsuario,$idCliente,$estado,$idBodega,$tipoCliente){ $paso["paso"]="no paso"; 
$aaCon="SELECT id_carrito, cantidad, id_producto FROM carrito WHERE id_usuario='$idUsuario' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';";    
$a=$this->mysqli->query($aaCon);
//$a=$this->mysqli->query("SELECT id_carrito, cantidad, id_producto FROM carrito WHERE id_usuario='$idUsuario' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';");
//echo $aaCon;
if($a->num_rows!=0){ while($fila=$a->fetch_assoc()){$aA[]=$fila;} $error=0; $this->auxElimTotal($aA,$tipoCliente);
for($i=0;$i<sizeof($aA);$i++){$cant=$aA[$i]['cantidad'];$idPro=$aA[$i]['id_producto'];
$b[$i]=$this->mysqli->query("UPDATE productos SET ubicacion_array=JSON_SET(ubicacion_array,'$.\"".$idBodega."\"[0].cantidadAux',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"".$idBodega."\"[0].cantidadAux')),0)+$cant), ventas_array= JSON_SET(ventas_array,'$.\"".$idBodega."\"',(COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ventas_array, '$.\"".$idBodega."\"')),0) -$cant)) WHERE id=$idPro;");    
if(!$b[$i]){$error++;}}  if($error==0){ $cc=$this->mysqli->query("DELETE FROM carrito WHERE id_usuario='$idUsuario' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';");
if($cc){ $paso["carrito"]=$aA; $paso["productos"]=$this->agregarInfoGeneral($aA);  $paso["paso"]="paso";}}} return json_encode($paso); }

public function agregarInfoGeneral($lista){ $id11="";
for($i=0;$i<sizeof($lista);$i++){ $id11.=" id='".$lista[$i]["id_producto"]."' OR "; } $id111=substr($id11,0,strlen($id11)-4); 
$a=$this->mysqli->query("SELECT ubicacion_array, id  FROM productos WHERE ".$id111);   
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=array("id"=>$fila["id"],"stocking"=>$fila["ubicacion_array"]);}}else{ $aA=[];}
return $aA; }


public function auxElimTotal($info,$tipoCliente){ $id=""; for($i=0;$i<sizeof($info);$i++){$id.="id= '".$info[$i]["id_producto"]."' OR ";}    
$id=substr($id,0,-4); $cop="SELECT estado_promocion, precios, precios_promocion, id FROM productos WHERE ".$id;
$a=$this->mysqli->query($cop);  if($a->num_rows!=0){ while($fila=$a->fetch_assoc()){$aA[]=$fila;} 
for($i=0;$i<sizeof($info);$i++){ $aAux=$this->auxSele($aA,$info[$i]["id_producto"]); if($aAux!=NULL){
$proAA=$this->revisionPromocion($aAux["estado_promocion"],0,$tipoCliente,json_decode($aAux["precios_promocion"],true),json_decode($aAux["precios"],true));
if($proAA["promo"]=="si"){$canGG=$info[$i]["cantidad"];  $idGG=$info[$i]["id"];
$this->mysqli->query("UPDATE productos SET estado_promocion=JSON_SET(estado_promocion,'$.cantidad',COALESCE(JSON_UNQUOTE(JSON_EXTRACT(estado_promocion,'$.cantidad')),0)+$canGG) WHERE id='$idGG';");}
}}}}

public function auxSele($lista,$id){for($i=0;$i<sizeof($lista);$i++){if($lista[$i]["id"]==$id){return $lista[$i];}} return NULL; }
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function consultaCarritoMasivo($idCliente,$idUsuario,$control,$idBodega){ $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT * FROM carrito WHERE id_bodega=$idBodega AND id_usuario=$idUsuario AND id_cliente= $idCliente AND estado='$control' ORDER BY fecha DESC;");
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso";  $paso["lista"]= $this->agregarInfoGeneralCarrito($aA);}return json_encode($paso);}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function agregarInfoGeneralCarrito($carrito){ $idGeneral=""; $cantidades=0; $pT=0;
for($i=0;$i<sizeof($carrito);$i++){ $idGeneral.="id =".$carrito[$i]["id_producto"]." OR "; } $idGeneral=substr($idGeneral,0,-4);
$a1="SELECT productos.*, JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.descripcion')) as descripcion,";
$a2="IFNULL(categorias.categoria, 'DISPONIBLE') as categoria, marca.marca, marca.imagen, ";
$a3="IFNULL(modelos.modelo, 'DISPONIBLE') as modelo FROM productos "; 
$a4="LEFT JOIN categorias ON JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.id_categoria')) = categorias.id_categoria ";
$a5="LEFT JOIN modelos ON JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.id_modelo')) = modelos.id_modelo ";
$a6="LEFT JOIN marca ON JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.id_marca')) = marca.id_marca WHERE ";
$sel2=$this->mysqli->query($a1.$a2.$a3.$a4.$a5.$a6.$idGeneral." ;"); while($fila=$sel2->fetch_assoc()){$aA[]=$fila;}
for($k=0;$k<sizeof($carrito);$k++){$cantidades+=$carrito[$k]["cantidad"]; $pT+=($carrito[$k]["cantidad"]*$carrito[$k]["precio_unitario"]);
$carrito[$k]=$this->obtenerInfoUnitario($carrito[$k],$aA,$carrito[$k]["id_producto"]);}
$carrito[0]["cantidades"]=$cantidades; $carrito[0]["pT"]=$pT; return $carrito; }
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function obtenerInfoUnitario($carrito,$info,$id){ for($i=0;$i<sizeof($info);$i++){if($id==$info[$i]["id"]){
$carrito["descripcion"]=str_replace("&nbsp;"," ",ucfirst(strtolower(trim(htmlentities($info[$i]["descripcion"])))));
$carrito["marca"]=str_replace("&nbsp;"," ",ucfirst(strtolower(trim(htmlentities($info[$i]["marca"])))));
$carrito["precio_unitario_adic"]="$ ".number_format($carrito["precio_unitario"],0,".",".");
$carrito["modelo"]=$info[$i]["modelo"];  $carrito["categoria"]=$info[$i]["categoria"]; $carrito["codigo"]=$info[$i]["codigo"]; 
$carrito["imagen"]=$info[$i]["imagenArray"]; $carrito["ruta_imagen_marca"]=$info[$i]["imagen"]; }}return $carrito;}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------

}
?>
