<?php

class Consulta extends Conexion1 {
public $mysqli;  public $data;
public function __construct() {$this->mysqli = parent::conectar();$this->data = array();}  
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
public function totalUsusario(){
$a=$this->mysqli->query("SELECT * FROM usuarios;"); if($a->num_rows!=0){ while($b=$a->fetch_assoc()){$bB[]=$b;} return $bB; }
return "NULL";    
}
// --------------------------------------------------------------------------------------------------
public function inicio_sesion($correo,$pas,$perfil,$idEmpresa){$pass=crypt(htmlentities($pas),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');
if($perfil=="Administrador"){
$a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_empresa='$idEmpresa' AND (email='$correo' OR email_empresa='$correo') AND password='$pass' AND (perfil='Administrador' OR perfil='Bodeguero' OR perfil='Oficina' OR perfil='Soporte' OR perfil='Cliente' OR perfil='PuntoVenta');");    
}else{    
$a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_empresa='$idEmpresa' AND (email='$correo' OR email_empresa='$correo') AND password='$pass' AND perfil='$perfil';");}
if($a->num_rows==0){return "vacio";}else{while($fila=$a->fetch_assoc()){$aA[]=$fila;} $aA[0]["totalProductos"]=$this->mysqli->query("SELECT id FROM productos;")->num_rows;  return json_encode($aA);}}

public function ingreso_token($id){$pass=$this->encriptar($id); 
$a=$this->mysqli->query("SELECT usuario FROM usuarios WHERE id_usuario='$id';"); $paso["paso"]="no paso";
if($a->num_rows!=0){ $a2=$a->fetch_assoc(); if($a2==""){$res["token"]=$pass;}else{$a33=json_decode($a2["usuario"],true); $a33["token"]=$pass; $res=$a33;}
$res1=json_encode($res); $con2=$this->mysqli->query("UPDATE usuarios SET usuario='$res1' WHERE id_usuario='$id';"); if($con2){$paso["token"]=$pass; $paso["paso"]="paso";}} return json_encode($paso);}

//public function obtener_token($token){ $id=$this->desencriptar($token);
//$a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario='$id';"); $paso["paso"]="no paso";
//if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila;} $paso["info"]=$aA; $paso["paso"]="paso"; $aA[0]["totalProductos"]=$this->mysqli->query("SELECT id FROM productos;")->num_rows; }    return json_encode($paso);}

public function obtener_token($token){ $id=$this->desencriptar($token);
$a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario='$id';"); $paso["paso"]="no paso";
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila;} $aA[0]["totalProductos"]=$this->mysqli->query("SELECT id FROM productos;")->num_rows; $paso["info"]=$aA; $paso["paso"]="paso"; 
} return json_encode($paso);}

public function encriptar($dato){
return $dato;
// $key = "rfdjuprEEtgLWJIU3PkDtzcfdtc5KPIjx9CttBO"; $iv = "12345678";
// return mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$key,strval($dato), MCRYPT_MODE_CBC, $iv);
// return openssl_encrypt($dato,"des",$key,false,$iv); 
}

public function desencriptar($dato){
return $dato;
// $key = "rfdjuprEEtgLWJIU3PkDtzcfdtc5KPIjx9CttBO"; $iv = "12345678"; 
// return mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$key,strval($dato), MCRYPT_MODE_CBC, $iv);
// return openssl_decrypt($dato,"des",$key,false,$iv);
}

public function buscadorGeneralCliente($busqueda,$idCliente,$acceso,$marca,$idVendedor,$idBodega,$idEmpresa){
// $conv = array('Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E','Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U','Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c','è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o','ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y' );
// $busqueda=strtr($busqueda,$conv);

$a=new BuscadorGeneral(); $res=$a->buscador117($busqueda,$idCliente,$marca,"cliente",$idVendedor,$idBodega,$idEmpresa);
if($res==NULL){$paso["paso"]="error";}else{ $paso["tipo"]=$res["tipo"];
$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];} $gg1=$this->agregarStock($this->dado(json_encode($lID),$idCliente,$idVendedor,$idBodega));
$paso["lista"]=$gg1; } return json_encode($paso);}


public function arregloMenor($idBodega){
$ta1="productos.id, productos.codigo,ubicacion_array , ";
$a1="SELECT DISTINCT ".$ta1." 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 arregloConsultaProducto($idBodega){
//"SELECT productos.id, COALESCE(SUM(jt.cantidadAux), 0) AS stock FROM productos LEFT JOIN JSON_TABLE(productos.ubicacion_array, '$."6"[*]' COLUMNS (cantidad INT PATH '$.cantidad', cantidadAux INT PATH '$.cantidadAux')) AS jt ON 1=1 GROUP BY productos.id LIMIT 0,10; "
$coss1=" "; $coss2=" "; $coss3=" ";
// $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";
$ta1="productos.id, productos.codigo, productos.imagenArray, productos.aplicaciones, productos.proveedores,";
$ta2="productos.estado, productos.stock_min, productos.stock_max, productos.fecha, productos.estado_promocion,";
$ta3="COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion , productos.movimientos, productos.movimientos_ubicacion, productos.stock_reconteo,";
$ta4="productos.ubicacion_reconteo, productos.valores_originales, productos.mre, productos.mreubi,";
$ta5="productos.datos_productos, productos.precios, productos.precios_promocion, productos.pickingTemporal, ";
$taGene=$ta1.$ta2.$ta3.$ta4.$ta5.$coss1; 
$a1="SELECT DISTINCT ".$taGene." 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.$coss2; $respuesta["general"]=$cc6; $respuesta["adicional"]=$coss3; return $respuesta;}


public function arregloConsultaProductoAux($idBodega){
$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";
$ta1="productos.id, productos.codigo, productos.imagenArray, productos.aplicaciones, productos.proveedores,";
$ta2="productos.estado, productos.stock_min, productos.stock_max, productos.fecha, productos.estado_promocion,";
$ta3="COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion , productos.movimientos, productos.movimientos_ubicacion, productos.stock_reconteo,";
$ta4="productos.ubicacion_reconteo, productos.valores_originales, productos.mre, productos.mreubi,";
$ta5="productos.datos_productos, productos.precios, productos.precios_promocion, productos.pickingTemporal, ";
$taGene=$ta1.$ta2.$ta3.$ta4.$ta5.$coss1; 
$a1="SELECT DISTINCT ".$taGene." 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 ";
$cc6=$a1.$a2.$a3.$a4.$a5.$a6.$coss2; $respuesta["general"]=$cc6; $respuesta["adicional"]=$coss3; return $respuesta;}



public function agregarStock($lista){
for($i=0;$i<sizeof($lista);$i++){ $lista[$i]["stock"]=$this->auxStock($lista[$i]["ubicacion"]);}  return $lista;}

//public function auxStock($lista11){if($lista11=="" || $lista11=="{}" || $lista11=="[]"){return 0;}else{$lista=json_decode($lista11,true); $respuesta=0; 
//var_dump($lista11);
//for($i=0;$i<sizeof($lista);$i++){$respuesta=$respuesta+($lista[$i]["cantidadAux"]);} return $respuesta;}}

//public function auxStock($lista11){if($lista11=="" || $lista11=="{}" || $lista11=="[]"){return 0;}else{$lista=json_decode($lista11,true); $respuesta=0; 
//var_dump($lista11);
//for($i=0;$i<sizeof($lista);$i++){ if($lista[$i]["cantidadAux"]!="eliminado"){$respuesta=$respuesta+($lista[$i]["cantidadAux"]);}} return $respuesta;}}
//public function auxStock($lista11){ try{
//if($lista11=="" || $lista11=="{}" || $lista11=="[]"){return 0;}else{$lista=json_decode($lista11,true); $respuesta=0; 
//for($i=0;$i<sizeof($lista);$i++){ if($lista[$i]["cantidadAux"]!="eliminado"){$respuesta=$respuesta+($lista[$i]["cantidadAux"]);}} return $respuesta;}
//}catch(Exception $e){return 0;}}

public function auxStock($lista11){ try{
if($lista11=="" || $lista11=="{}" || $lista11=="[]" || strlen(strval($lista11))<=10){return 0;}else{$lista=json_decode($lista11,true); $respuesta=0;  if(!is_array($lista)){return 0;}
for($i=0;$i<sizeof($lista);$i++){if(isset($lista[$i]["cantidadAux"])){if($lista[$i]["cantidadAux"]!="eliminado"){$respuesta=$respuesta+($lista[$i]["cantidadAux"]);}}} return $respuesta;}
}catch(Exception $e){return 0;}}


public function filtroStock($lista,$stock){ 
if(sizeof($lista)!=0){  $conteo=0; $conteo1=0; if(sizeof($stock)==2){if($stock[0]!="true" && $stock[1]!="true"){
if($stock[0]=="true"){for($i=0;$i<sizeof($lista);$i++){if($lista[$i]["stock"]!=0){$res[$conteo]=$lista[$i]; $conteo++;}}
if($conteo!=0){return $res;}else{return NULL;}}
if($stock[1]=="true"){for($i1=0;$i1<sizeof($lista);$i1++){if($lista[$i1]["stock"]!=0){$res[$conteo1]=$lista[$i1]; $conteo1++;}}
if($conteo1!=0){return $res;}else{return NULL;}}}else{ 
if($stock[0]!="true" && $stock[1]!="true" && $stock[2]!="true" && $stock[3]!="true" && $stock[4]!="true"){ $conteo2=0;
for($m=0;$m<sizeof($lista);$m++){
if(($stock[0]=="true" && $lista[$m]["stock"]>=100) || ($stock[1]=="true" && ($lista[$m]["stock"]>=70 && $lista[$m]["stock"]<=100)) || ($stock[2]=="true" && ($lista[$m]["stock"]>=30 && $lista[$m]["stock"]<=70)) || ($stock[3]=="true" && ($lista[$m]["stock"]>=30 && $lista[$m]["stock"]!=0)) || ($stock[4]=="true" && $lista[$m]["stock"]<=0)){
$res[$conteo2]=$lista[$m]; $conteo2++;}} if($conteo2!=0){return $res;}else{ return NULL;}
}}}} return $lista;}

public function obtenerPrecioGeneral($po,$pP,$eP,$tC){ $aux=strval($eP); $stockAux="null";
$jso["active"]=0; $jso["cantidad"]="0"; $jso["inicial"]=""; $jso["final"]=""; $ePBB=json_encode($jso);    
if($aux=="0"||$aux=="1"){$pr=$this->precioBV($tC,$po); $eP=$ePBB;}else{ $json=json_decode($eP,true);if(strval($json["active"])!="0"){
$final=strtotime($json["final"]);  $hoy=strtotime(date("d-m-Y H:i:00",time())); $inicial=strtotime($json["inicial"]);  
if($hoy>=$inicial && $hoy<=$final){ if($tC=="empresarial" || $tC=="master"){if($pP[2]==0){$pr=$po[3]; $json["active"]="0";}else{$pr=$pP[2];}}else{
if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){if($pP[1]==0){$pr=$po[2]; $json["active"]="0";}else{$pr=$pP[1];}}else{
if($pP[0]==0){$pr=$po[1]; $json["active"]="0";}else{$pr=$pP[0];}}} $eP=json_encode($json); }else{$pr=$this->precioBV($tC,$po);}
}else{ $pr=$this->precioBV($tC,$po);}} $respuesta["precio"]=$pr; $respuesta["estadoPromocion"]=$eP; return $respuesta;}

public function precioBV($tC,$po){
if($tC=="empresarial" || $tC=="master"){$pr=$po[3];}else{if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){$pr=$po[2];}else{$pr=$po[1];}} return $pr;}


//public function filtroAuxStock($lista,$stock,$tipoCliente){  $res=array(); $hoy = new DateTime();
//if(sizeof($lista)!=0){ for($i=0;$i<sizeof($lista);$i++){ $ent = new DateTime($lista[$i]["fecha"]);  $dif=$hoy->diff($ent)->days; 
//if(strval($stock[2])=="true"){if(strval($stock[1])=="true"){if(stval($stock[0])=="true"){
//if($lista[$i]["stock"]>0 && $ent>14 && $this->revisionPromocionAux11($lista[$i]["estado_promocion"],$tipoCliente)=="si"){$res[]=$lista[$i];}}else{
//if($lista[$i]["stock"]>0 && $ent>14){$res[]=$lista[$i];}}}else{if($lista[$i]["stock"]>0){$res[]=$lista[$i];}}}else{
//if(strval($stock[1])=="true"){ if(strval($stock[0])=="true"){
//if($ent>14 && revisionPromocionAux11($lista[$i]["estado_promocion"],$tipoCliente)=="si"){ $res[]=$lista[$i];}}else{if($ent>14){$res[]=$lista[$i];}}   
//}else{if(strval($stock[0])){ if($this->revisionPromocionAux11($lista[$i]["estado_promocion"],$tipoCliente)){ $res[]=$lista[$i];}}}}    
///}} return $res;}

public function filtroAuxStock($lista,$stock,$tipoCliente){ 
if(strval($stock[0])!="true" && strval($stock[1])!="true" && strval($stock[2])!="true"){return $lista; }else{$res=array(); $hoy = new DateTime();
if(sizeof($lista)!=0){ for($i=0;$i<sizeof($lista);$i++){
if(strval($stock[2])=="true"){if(strval($stock[1])=="true"){if(stval($stock[0])=="true"){
$ent = new DateTime($lista[$i]["fecha"]); $dif=$hoy->diff($ent)->days*-1; 
if($lista[$i]["stock"]>0 && $ent>14 && $this->revisionPromocionAux11($lista[$i]["estado_promocion"],$tipoCliente)=="si"){$res[]=$lista[$i];}}else{
if($lista[$i]["stock"]>0 && $ent>14){$res[]=$lista[$i];}}}else{if($lista[$i]["stock"]>0){$res[]=$lista[$i];}}}else{
if(strval($stock[1])=="true"){ if(strval($stock[0])=="true"){ $ent = new DateTime($lista[$i]["fecha"]); $dif=$hoy->diff($ent)->days*-1; 
if($ent>14 && revisionPromocionAux11($lista[$i]["estado_promocion"],$tipoCliente)=="si"){ $res[]=$lista[$i];}}else{if($ent>14){$res[]=$lista[$i];}}   
}else{if(strval($stock[0])){ $ent = new DateTime($lista[$i]["fecha"]); $dif=$hoy->diff($ent)->days*-1;  if($this->revisionPromocionAux11($lista[$i]["estado_promocion"],$tipoCliente)){ $res[]=$lista[$i];}}}}    
}} return $res;}}


public function revisionPromocionAux11($eP,$tC){ $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"){$paso="si";}}else{
if($tC=="mayoritario" || $tC=="puntoventa" || $tC=="vendedor"){if(strval($pP[1])!="0"){$paso="si";}}else{
if(strval($pP[0])!="0"){$paso="si";}}}}}} return $paso; }

// -----------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------
public function conteoGeneralPedido($lista){$idGU=""; $hoy=new DateTime();
for($u1=0;$u1<sizeof($lista);$u1++){$lista[$u1]["totalVentas"]=0; $lista[$u1]["conteoVentas"]=0;
$lista[$u1]["totalAdeudo"]=0; $lista[$u1]["recientes"]=0; $lista[$u1]["expirar"]=0; $lista[$u1]["vencidos"]=0;
$idGU.="id_usuario =".$lista[$u1]["id_usuario"]." OR ";} $idGU="(".substr($idGU,0,-4).")";
$conss="SELECT venta, total, id_venta, clave_venta, fecha, id_usuario, credito, estado, metodo_pago FROM ventas WHERE ".$idGU.";";
$a=$this->mysqli->query($conss);if($a->num_rows!=0){ while($fila=$a->fetch_assoc()){$ventas[]=$fila;} $idPago="";
for($u2=0;$u2<sizeof($ventas);$u2++){$idPago.="id_venta =".$ventas[$u2]["id_venta"]." OR ";} $idPago="(".substr($idPago,0,-4).")";
$conss22="SELECT monto, fecha , estado_pago, id_venta FROM pagos WHERE estado_pago='verificado' AND ".$idPago.";";
$b=$this->mysqli->query($conss22); $pagos=array(); if($b->num_rows!=0){while($dil=$b->fetch_assoc()){$pagos[]=$dil;} }

for($i=0;$i<sizeof($ventas);$i++){$total=0; $totalCredito=0;  $ve=json_decode($ventas[$i]["venta"],true); $totalGeneral=0;
for($i1=0;$i1<sizeof($pagos);$i1++){if($ventas[$i]["id_venta"]==$pagos[$i1]["id_venta"]){$total=$total+$pagos[$i1]["monto"];}}
for($i2=0;$i2<sizeof($ve);$i2++){if($ve[$i2]["estEli"]=="0"){if(strpos($ventas[$i]["metodo_pago"], "credito") !== false){
$totalCredito=$totalCredito+($ve[$i2][$this->obtenerAuxEstado($ventas[$i]["estado"])]*$ve[$i2]["costo"]);
}$totalGeneral=$totalGeneral+($ve[$i2][$this->obtenerAuxEstado($ventas[$i]["estado"])]*$ve[$i2]["costo"]);} } 
$ventas[$i]["totalPagos"]=$total; $ventas[$i]["totalGeneral"]=$totalGeneral; $ventas[$i]["totalCredito"]=$totalCredito; }

for($i3=0;$i3<sizeof($lista);$i3++){$recientes=0; $expirar=0; $vencidos=0; $totalAdeudo=0; $totalVentas=0; $conteoVentas=0;
for($i4=0;$i4<sizeof($ventas);$i4++){ if($lista[$i3]["id_usuario"]==$ventas[$i4]["id_usuario"]){
$conteoVentas++; $totalVentas=$totalVentas+$ventas[$i4]["totalGeneral"];
if(strpos($ventas[$i4]["metodo_pago"], "credito") !== false){    
$totalAdeudo=$totalAdeudo+($ventas[$i4]["totalCredito"]-$ventas[$i4]["totalPagos"]);
$diferencia = $hoy->diff(new DateTime($ventas[$i4]["fecha"]))->days; if($diferencia<7){$recientes++;}else{
$fec=json_decode($ventas[$i4]["credito"],true);  $diferencia2=$hoy->diff(new DateTime($fec["fecha"]))->days; 
if($diferencia2<0){$expirar++;}else{$vencidos++;}}}}}
$lista[$i3]["totalVentas"]=$totalVentas; $lista[$i3]["conteoVentas"]=$conteoVentas; $lista[$i3]["vencidos"]=$vencidos;
$lista[$i3]["totalAdeudo"]=$totalAdeudo; $lista[$i3]["recientes"]=$recientes; $lista[$i3]["expirar"]=$expirar; }}
return $lista;}

public function paginacionAdministrador($tipoCliente,$pagina,$ancho,$busqueda){ $limite=$pagina*$ancho; $paso["paso"]="no paso";
$base="SELECT DISTINCT usuarios.* FROM usuarios INNER JOIN ventas ON usuarios.id_usuario = ventas.id_usuario INNER JOIN pagos ON pagos.id_venta = ventas.id_venta WHERE (ventas.metodo_pago LIKE '%credito%' OR pagos.estado_pago!='verificado') AND tipo_cliente='$tipoCliente' ";
$baseFinal=" ORDER BY usuarios.fecha DESC LIMIT $limite,$ancho;";
if($busqueda!=""){ $baseBusqueda=" AND ((JSON_UNQUOTE(JSON_EXTRACT(usuarios.usuario,'$.nombre')) LIKE '%$busqueda%') OR (JSON_UNQUOTE(JSON_EXTRACT(usuarios.usuario,'$.cedula')) LIKE '%$busqueda%') OR (JSON_UNQUOTE(JSON_EXTRACT(usuarios.usuario,'$.direccion')) LIKE '%$busqueda%') OR (JSON_UNQUOTE(JSON_EXTRACT(usuarios.usuario,'$.telefono')) LIKE '%$busqueda%') )";}else{
$baseBusqueda="";} $consulta=$base.$baseBusqueda.$baseFinal; $a=$this->mysqli->query($consulta); 
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aa[]=$fila;} $paso["paso"]="paso"; $paso["lista"]=$this->conteoGeneralPedido($aa); }
return json_encode($paso);}

public function obtenerEstadoCliente($idCliente){ $paso["paso"]="no paso";
$base="SELECT DISTINCT usuarios.* FROM usuarios INNER JOIN ventas ON usuarios.id_usuario = ventas.id_usuario INNER JOIN pagos ON pagos.id_venta = ventas.id_venta WHERE (ventas.metodo_pago LIKE '%credito%' OR pagos.estado_pago!='verificacion') AND usuarios.id_usuario='$idCliente'; ";
$cc=$this->mysqli->query($base);
if($cc->num_rows!=0){while($fila=$cc->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso"; $paso["lista"]=$this->conteoGeneralPedido($aA);}
return json_encode($paso);}

public function obtenerAuxEstado($estado) {
$estadoBase = ["verificacion","picking","packing","facturacion","despacho","enviados"];
if($estado == $estadoBase[3] || $estado == $estadoBase[4] || $estado == $estadoBase[5]) {return "rel";} else {return "cant";}}
// public function arregloConsultaProducto($idBodega){
// $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";
// $ta1="productos.id, productos.codigo, productos.imagenArray, productos.aplicaciones, productos.proveedores,";
// $ta2="productos.estado, productos.stock_min, productos.stock_max, productos.fecha, productos.estado_promocion,";
// $ta3="COALESCE(JSON_UNQUOTE(JSON_EXTRACT(ubicacion_array, '$.\"$idBodega\"')),'') AS ubicacion , productos.movimientos, productos.movimientos_ubicacion, productos.stock_reconteo,";
// $ta4="productos.ubicacion_reconteo, productos.valores_originales, productos.mre, productos.mreubi,";
// $ta5="productos.datos_productos, productos.precios, productos.precios_promocion, productos.pickingTemporal, ";
// $taGene=$ta1.$ta2.$ta3.$ta4.$ta5.$coss1; 
// $a1="SELECT DISTINCT ".$taGene." 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 ";
// $cc6=$a1.$a2.$a3.$a4.$a5.$a6.$coss2; $respuesta["general"]=$cc6; $respuesta["adicional"]=$coss3; return $respuesta;}

// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
public function dado($json,$idCliente,$idVendedor,$idBodega){
return $this->productosGeneAccion(json_decode($json,true),$idCliente,$idVendedor,$idBodega);
}
public function productosGeneAccion($res,$idCliente,$idVendedor,$idBodega){
if($idVendedor=="0"){ $ca=$this->mysqli->query("SELECT id_producto, id_usuario, cantidad, id_carrito FROM carrito WHERE id_usuario='$idCliente' AND estado='general' AND id_bodega='$idBodega';"); 
}else{$ca=$this->mysqli->query("SELECT id_producto, id_usuario, cantidad, id_carrito FROM carrito WHERE id_usuario='$idVendedor' AND id_cliente='$idCliente' AND estado='general' AND id_bodega='$idBodega';"); }

//$ca=$this->mysqli->query("SELECT id_producto, id_usuario, cantidad, id_carrito FROM carrito WHERE id_usuario='$idCliente' 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; }
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
}
