<?php
class FiltroBuscadorGeneral extends Conexion1 {
public $mysqli;  public $data;
public function __construct() {$this->mysqli = parent::conectar();$this->data = array();} 
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
public function fil($info,$clave){$res="("; for($i=0;$i<sizeof($info);$i++){ if($clave=="modelo"){
$res.="LOWER(".$clave.") ='".$info[$i][$clave]."' OR aplicaciones LIKE'%".$info[$i][$clave]."%' OR ";
}else{ $res.="LOWER(".$clave.") ='".$info[$i][$clave]."' OR ";}} $res=substr($res,0,(strlen($res)-4)).")"; return $res; }

public function com($lista,$info,$clave){ $conteo=0; $comparacion=""; $respuesta=[]; for($i=0;$i<sizeof($info);$i++){$comparacion.=" ".strtolower($info[$i][$clave])." ";} 
$comparacion=trim($comparacion); for($k=0;$k<sizeof($lista);$k++){ if($clave=="modelo"){
if(str_contains($comparacion,strtolower($lista[$k][$clave])) || str_contains($comparacion,strtolower($lista[$k]["aplicaciones"]))){$respuesta[$conteo]=$lista[$k];} }else{
if(str_contains($comparacion,strtolower($lista[$k][$clave]))){$respuesta[$conteo]=$lista[$k];} } $conteo++;} 
$respuesta22=[]; for($i=0;$i<sizeof($lista);$i++){ if(isset($respuesta[$i]["id"])){ $respuesta22[]=$respuesta[$i];}} return $respuesta22;}

public function filtros_general($filtros,$idBodega,$tipoCliente,$idEmpresa){ $paso["paso"]="no paso"; $fi=json_decode($filtros,true); $filtroStock=$fi["filtroStock"]; $bSalida=[];
$filtrosCategorias=$fi["filtroCategorias"]; $filtrosMarcas=$fi["filtroMarcas"]; $filtrosModelos=$fi["filtroModelos"]; 

$cc7=new Consulta(); $base=$cc7->arregloConsultaProducto($idBodega); $ssttoo=new Consulta();
$uno1="stock>=100"; $uno2="stock>=70 AND stock<=100"; $uno3="stock>=30 AND stock<=70"; $uno4="stock<30 AND stock!=0"; $uno5="stock<=0";

$baseStock=""; $tamCategorias=sizeof($filtrosCategorias); $tamMarcas=sizeof($filtrosMarcas); $tamModelos=sizeof($filtrosModelos);

// if($filtroStock[0]=="true"){$baseStock=" stock!=0 ";} if($filtroStock[1]=="true"){$baseStock=" stock<=0 ";}
// if($filtroStock[0]=="true"){$baseStock.=$uno1." OR ";} if($filtroStock[1]=="true"){$baseStock.=$uno2." OR ";}
// if($filtroStock[2]=="true"){$baseStock.=$uno3." OR ";}if($filtroStock[3]=="true"){$baseStock.=$uno4." OR ";}
// if($filtroStock[4]=="true"){$baseStock.=$uno5." OR ";}
$basePro="";  $baseNue="";
if($filtroStock[0]=="true"){$basePro=" JSON_UNQUOTE(JSON_EXTRACT(productos.estado_promocion,'$.active')) ='1'";}
if($filtroStock[1]=="true"){$baseNue=" productos.fecha >= CURDATE() - INTERVAL 14 DAY"; }
if($filtroStock[0]=="true" && $filtroStock[1]=="true"){ $baseStock="(".$basePro." OR ".$baseNue." )"; }else{
if($filtroStock[0]=="true"){$baseStock=$basePro;} if($filtroStock[1]=="true"){$baseStock=$baseNue;}} 
//if($baseStock!=""){$baseStock="(".substr($baseStock,0,(strlen($baseStock)-4)).")";}

if($tamMarcas==0 && $tamCategorias==0 && $tamModelos==0){     
if($baseStock==""){$xx=$this->mysqli->query($base["general"]);}else{$xx=$this->mysqli->query($base["general"]." WHERE id_empresa='$idEmpresa' AND ".$baseStock);}
if($xx->num_rows!=0){while($fila=$xx->fetch_assoc()){$xx1[]=$fila; } $bSalida=$xx1; $paso["paso"]="paso";}}else{
if($tamCategorias!=0){ $fC=$this->fil($filtrosCategorias,"categoria");    
if($baseStock==""){$baseGeneral=$base["general"]." WHERE id_empresa='$idEmpresa' AND ".$fC.$base["adicional"]." ;";}else{ $baseGeneral=$base["general"]." WHERE id_empresa='$idEmpresa' AND  ".$fC.$base["adicional"]." HAVING ".$baseStock; }
$bB=$this->mysqli->query($baseGeneral);  if($bB->num_rows!=0){ while($fila=$bB->fetch_assoc()){$bBB[]=$fila;}  
if($tamModelos!=0){$bBB=$this->com($bBB,$filtrosModelos,"modelo");} if($tamMarcas!=0){$bBB=$this->com($bBB,$filtrosMarcas,"marca"); }
if(sizeof($bBB)!=0){$paso["paso"]="paso"; $bSalida=$bBB;} }}else{ if($tamModelos!=0){ $fM=$this->fil($filtrosModelos,'modelo');
if($baseStock==""){$baseGeneral=$base["general"]." WHERE ".$fM.$base["adicional"]." ;";}else{ $baseGeneral=$base["general"]." WHERE id_empresa='$idEmpresa' AND  ".$fM.$base["adicional"]." HAVING ".$baseStock; }
$bMM=$this->mysqli->query($baseGeneral);  if($bMM->num_rows!=0){ while($fila=$bMM->fetch_assoc()){$bMMM[]=$fila;}
if($tamMarcas!=0){$bBB=$this->com($bMMM,$filtrosMarcas,"marca");} if(sizeof($bMMM)!=0){$paso["paso"]="paso"; $bSalida=$bMMM; }} 
}else{ if($tamMarcas!=0){$fMa=$this->fil($filtrosMarcas,'marca');
if($baseStock==""){$baseGeneral=$base["general"]." WHERE  id_empresa='$idEmpresa' AND ".$fMa.$base["adicional"]." ;";}else{ $baseGeneral=$base["general"]." WHERE id_empresa='$idEmpresa' AND  ".$fMa.$base["adicional"]." HAVING ".$baseStock; }
$bMa=$this->mysqli->query($baseGeneral); if($bMa->num_rows!=0){ while($fila=$bMa->fetch_assoc()){$bMMMA[]=$fila;}
$bSalida=$bMMMA; $paso["paso"]="paso"; }}}} }
if($paso["paso"]=="paso"){$paso["tam"]=sizeof($bSalida); if($paso["tam"]>=800){$bSalida=array_slice($bSalida,0,789); } 

$auxLista=$ssttoo->agregarStock($bSalida); $resAux=array(); if($filtroStock[2]=="true"){
for($i=0;$i<sizeof($auxLista);$i++){if($auxLista[$i]["stock"]>0){$resAux[]=$auxLista[$i];}}
if(sizeof($resAux)!=0){$paso["lista"]=$resAux; $paso["paso"]="paso";}else{$paso["paso"]="no paso";}}else{
if(sizeof($auxLista)!=0){$paso["lista"]=$auxLista; $paso["paso"]="paso";}else{$paso["paso"]="no paso";}}

if($paso["paso"]=="paso"){if($filtroStock[0]=="true"){ $auxLis=$paso["lista"]; $auxPro=array();for($i=0;$i<sizeof($auxLis);$i++){
if($this->revisionPromocionAux($auxLis[$i]["estado_promocion"],$tipoCliente)=="si"){$auxPro[]=$auxLis[$i];}}
if(sizeof($auxPro)!=0){$paso["paso"]="paso"; $paso["lista"]=$auxPro;}else{$paso["paso"]="no paso";}}}
//$paso["lista"]=$ssttoo->agregarStock($bSalida);
//$autx=new Consulta(); $autx1=$autx->filtroAuxStock($paso["lista"],$filtroStock,$tipoCliente);
//if($autx1!=NULL){$paso["lista"]=$autx1; $paso["paso"]="paso"; }else{$paso["paso"]="no paso";  }
} return json_encode($paso);


}


public function revisionPromocionAux($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; }



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

}



?>
