<?php
class ConsultaAux extends Conexion1 {
public $mysqli;  public $data;
public function __construct() {$this->mysqli = parent::conectar();$this->data = array();} 
public function hoy(){$hoy = date("Y-m-d H:i:s"); return $hoy;}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------

public function general_usuario($idUsuario){ $idConsecutivo=""; $inicio = microtime(true);
$a=$this->mysqli->query("SELECT * FROM ventas WHERE id_usuario='$idUsuario' AND (fecha >= CURDATE() - INTERVAL 8 MONTH) ORDER BY fecha DESC;"); 
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila; 
$idConsecutivo.="id_venta='".$fila["id_venta"]."' OR "; } $paso["ventas"]=$aA; }else{$paso["ventas"]=[];}
$b=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$idUsuario' ORDER BY fecha DESC;");
if($b->num_rows!=0){while($fila=$b->fetch_assoc()){$bB[]=$fila;} $paso["carrito"]=$bB; }else{$paso["carrito"]=[];}
if($idConsecutivo!=""){  $ccc="SELECT * FROM pagos WHERE ".substr($idConsecutivo,0,strlen($idConsecutivo)-4).";"; $c=$this->mysqli->query($ccc);
if($c->num_rows!=0){while($fila=$c->fetch_assoc()){$cC[]=$fila; } $paso["pagos"]=$cC; }else{$paso["pagos"]=[];} 
}else{$paso["pagos"]=[];} $fin = microtime(true); $tiempo_ejecucion = ($fin - $inicio) * 1000;
$paso["tiempo"]="Tiempo " . number_format($tiempo_ejecucion, 3) . " ms";  return json_encode($paso); }

public function modeloMarcaCategoriaLL($idEmpresa){ $inicio = microtime(true);
$a=$this->mysqli->query("SELECT c.*, COUNT(*) AS conteo FROM categorias c INNER JOIN productos p ON p.id_categoria = c.id_categoria WHERE c.id_empresa='$idEmpresa' GROUP BY c.id_categoria;");    
$b=$this->mysqli->query("SELECT c.*, COUNT(*) AS conteo FROM marca c INNER JOIN productos p ON p.id_marca = c.id_marca  WHERE c.id_empresa='$idEmpresa' GROUP BY c.id_marca;");    
$c=$this->mysqli->query("SELECT c.*, COUNT(*) AS conteo FROM modelos c INNER JOIN productos p ON p.id_modelo = c.id_modelo WHERE c.id_empresa='$idEmpresa' GROUP BY c.id_modelo;");    
$d=$this->mysqli->query("SELECT * FROM proveedores WHERE id_empresa='$idEmpresa';");
if($a->num_rows!=0){while($f1=$a->fetch_assoc()){$ca[]=$f1;}} if($b->num_rows!=0){while($f2=$b->fetch_assoc()){$ma[]=$f2;}} if($c->num_rows!=0){while($f3=$c->fetch_assoc()){$mo[]=$f3;}}
if($d->num_rows!=0){while($f10=$d->fetch_assoc()){$pro[]=$f10;}}
$res["marcas"]=$ma; $res["modelos"]=$mo; $res["categorias"]=$ca; $res["proveedores"]=$pro; 
$fin = microtime(true); $tiempo_ejecucion = ($fin - $inicio) * 1000;
return json_encode($res);}


public function productosCampos111($idBodega,$idEmpresa){$paso["paso"]="no paso"; $aa=$this->arregloMenor($idBodega);
$inicio = microtime(true); $a=$this->mysqli->query($aa["general"]." WHERE productos.id_empresa='$idEmpresa';");
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila; }  $paso["paso"]="paso"; $paso["lista"]=$aA; }
$fin = microtime(true); $tiempo_ejecucion = ($fin - $inicio) * 1000;
$paso["tiempo"]="Tiempo de ejecución: " . number_format($tiempo_ejecucion, 3) . " ms"; return json_encode($paso);}
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
public function arregloMenor($idBodega){
$ta1="productos.id, productos.codigo ,COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion , ";
$ta2="productos.id_marca, productos.id_categoria, productos.id_modelo, productos.datos_productos, productos.precios, productos.precios_promocion,  ";
$ta3="productos.imagenArray, productos.estado_promocion, productos.fecha, productos.estado, productos.stock_min, productos.stock_max,productos.stock_reconteo, ";
$ta4="productos.aplicaciones, productos.proveedores, productos.pickingTemporal,productos.ubicacion_reconteo,  ";
// $ta5="productos.movimientos, productos.movimientos_ubicacion, productos.mre, productos.mreubi,productos.valores_originales,  ";
$ta5="";
$a1="SELECT DISTINCT ".$ta1.$ta2.$ta3.$ta4.$ta5." productos.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 productos.id_categoria = categorias.id_categoria ";
$a5="LEFT JOIN modelos ON productos.id_modelo = modelos.id_modelo ";
$a6="LEFT JOIN marca ON productos.id_marca = marca.id_marca ";
$cc6=$a1.$a2.$a3.$a4.$a5.$a6; $respuesta["general"]=$cc6; $respuesta["adicional"]=" ";
return $respuesta; }

public function arreglarMenor2($idBodega){
$ta1="productos.id, productos.codigo, COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion, ";    
$ta5="productos.movimientos, productos.movimientos_ubicacion, productos.mre, productos.mreubi,productos.valores_originales,  ";
$a1="SELECT DISTINCT ".$ta1.$ta5." productos.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 productos.id_categoria = categorias.id_categoria ";
$a5="LEFT JOIN modelos ON productos.id_modelo = modelos.id_modelo ";
$a6="LEFT JOIN marca ON productos.id_marca = marca.id_marca ";
$cc6=$a1.$a2.$a3.$a4.$a5.$a6; $respuesta["general"]=$cc6; $respuesta["adicional"]=" ";
return $respuesta;
}

public function cerrarSalaAlmacenar($idBodega,$idUsuario){ $paso["paso"]="no paso";
$mov=" CASE WHEN JSON_CONTAINS(productos.movimientos, '{\"idBodega\":\"$idBodega\"}') THEN JSON_UNQUOTE(JSON_EXTRACT(productos.movimientos, '$[*].valor.ubicacion')) ELSE JSON_ARRAY() END ";
$movUU=" CASE WHEN JSON_CONTAINS(productos.movimientos_ubicacion, '{\"idBodega\":\"$idBodega\"}') THEN JSON_UNQUOTE(JSON_EXTRACT(productos.movimientos_ubicacion, '$[*].valor.ubicacion')) ELSE JSON_ARRAY() END ";
$atam=" (JSON_LENGTH($mov)>0 OR JSON_LENGTH($movUU)>0)";
$a=$this->mysqli->query("SELECT id, movimientos, movimientos_ubicacion FROM productos WHERE ".$atam);
if($a->num_rows!=0){$conteo=0;  while($fila=$a->fetch_assoc()){ $idpr=$fila["id"];

if($fila["movimientos"]!="" && $fila["movimientos"]!="[]" && $fila["movimientos"]!="{}"){   
$movAA=json_decode($fila["movimientos"],true); $movAAU=array(); for($i=0;$i<sizeof($movAA);$i++){if($idBodega==$movAA[$i]["idBodega"]){$movimiento=json_encode($movAA[$i]);
$this->mysqli->query("INSERT INTO historialgestion(movimiento,id,id_usuario,bandera) VALUES ('$movimiento','$idpr','$idUsuario','gestionCerrar')");}else{$movAAU[]=$movAA[$i];}}  
if(sizeof($movAAU)<=0){$pal=$this->mysqli->query("UPDATE productos SET movimientos='{}' WHERE id='$idpr';"); if(!$pal){$conteo++;}}else{
$movAAU1=json_encode($movAAU);  $pal=$this->mysqli->query("UPDATE productos SET movimientos='$movAAU1' WHERE id='$idpr'"); if(!$pal){$conteo++;}}}


if($fila["movimientos_ubicacion"]!="" && $fila["movimientos_ubicacion"]!="[]" && $fila["movimientos_ubicacion"]!="{}"){
$movUUAA=json_decode($fila["movimientos_ubicacion"],true); $movAAUU1=array(); for($k=0;$k<sizeof($movUUAA);$k++){if($idBodega==$movUUAA[$k]["idBodega"]){ $movimientoUU=json_encode($movUUAA[$k]);
$this->mysqli->query("INSERT INTO historialgestion(movimiento,id,id_usuario,bandera) VALUES ('$movimientoUU','$idpr','$idUsuario','gestionCerrar');");}else{$movAAUU1[]=$movUUAA[$k];}  }      
if(sizeof($movAAUU1)<=0){$pal1=$this->mysqli->query("UPDATE productos SET movimientos_ubicacion='{}' WHERE id='$idpr';"); if(!$pal1){$conteo++;}}else{
$movAAUU11=json_encode($movAAUU1); $pal1=$this->mysqli->query("UPDATE productos SET movimientos_ubicacion='$movAAUU11' WHERE id='$idpr';"); if(!$pal1){$conteo++;}}}

} if($conteo==0){$paso["paso"]="paso";} } return json_encode($paso);}

public function pruebaAA22($idBodega){
$mov=" CASE WHEN JSON_CONTAINS(productos.movimientos, '{\"idBodega\":\"$idBodega\"}') THEN JSON_UNQUOTE(JSON_EXTRACT(productos.movimientos, '$[*].valor.ubicacion')) ELSE JSON_ARRAY() END ";
$movUU=" CASE WHEN JSON_CONTAINS(productos.movimientos_ubicacion, '{\"idBodega\":\"$idBodega\"}') THEN JSON_UNQUOTE(JSON_EXTRACT(productos.movimientos_ubicacion, '$[*].valor.ubicacion')) ELSE JSON_ARRAY() END ";
$atam=" (JSON_LENGTH($mov)>0 OR JSON_LENGTH($movUU)>0)";
return "SELECT id, movimientos, movimientos_ubicacion FROM productos WHERE ".$atam;
}

// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------------

}
?>