<?php
class ConsultaMensajero extends Conexion1 {
public $mysqli;  public $data;
public function __construct() {$this->mysqli = parent::conectar();$this->data = array();} 
// --------------------------------------------------------------------------------

public function terminarMensajeroAuxGene($idVenta,$estado){ $paso["paso"]="no paso"; $hoy=date("Y-m-d H:i:s");
$a=$this->mysqli->query("UPDATE ventas SET mensajeria=JSON_SET(mensajeria,'$.entrega','$hoy','$.estado_mensajero','entregado'), estado_entrega='entregado', estado='$estado' WHERE id_venta='$idVenta';");    
if($a){$paso["paso"]="paso";}  return json_encode($paso); }


public function conteoGeneralMensajero($idMensajero,$idBodega){$paso["paso"]="no paso";
$aa="SELECT SUM(CASE WHEN ventas.despacho_id != 0 AND ventas.mensajero_id='$idMensajero' AND ventas.estado_entrega!='entregado' THEN 1 ELSE 0 END) AS tomado, SUM(CASE WHEN (ventas.id_bodega='$idBodega' AND ventas.despacho_id != 0 AND ventas.estado_entrega!='entregado') OR (ventas.estado='terminadoFinal' AND ventas.estado_entrega!='entregado')  THEN 1 ELSE 0 END) AS despacho FROM ventas;";     

//$aa="SELECT SUM(CASE WHEN ventas.despacho_id != 0 AND ventas.mensajero_id='$idMensajero' AND ventas.estado_entrega!='entregado' THEN 1 ELSE 0 END) AS tomado, SUM(CASE WHEN ventas.id_bodega='$idBodega' AND   ventas.despacho_id != 0 AND ventas.estado_entrega!='entregado' THEN 1 ELSE 0 END) AS despacho FROM ventas;";     
$bb=$this->mysqli->query($aa); if($bb){$cc=$bb->fetch_assoc();  $paso["tomado"]=$cc["tomado"]; $paso["despacho"]=$cc["despacho"]; $paso["paso"]="paso";} 
return json_encode($paso);}

public function liberarPedido($idVenta){$paso["paso"]="no paso";
$a=$this->mysqli->query("UPDATE ventas SET mensajeria =JSON_SET(mensajeria,'$.id_mensajero','0') WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function liberarPedidoTodos($idMensajero){$paso["paso"]="no paso";
$a=$this->mysqli->query("UPDATE ventas SET mensajeria = JSON_SET(mensajeria,'$.id_mensajero','0') WHERE JSON_UNQUOTE(JSON_EXTRACT(mensajeria, '$.id_mensajero'))='$idMensajero' AND estado_entrega!='entregado';");    
if($a){$paso["paso"]="paso";} return json_encode($paso);  }

public function terminar_mensajero($idVenta){$paso["paso"]="no paso"; $hoy=date("Y-m-d H:i:s");
$a=$this->mysqli->query("UPDATE ventas SET mensajeria=JSON_SET(mensajeria,'$.entrega','$hoy','$.estado_mensajero','entregado'), estado='enviados', estado_entrega='entregado' WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function transferencia_comprobante($idVenta,$ruta22){ $paso["paso"]="no paso"; $l=json_decode($ruta22,true);
$imagenRespaldo="dependencias/img/general/imagen_base_productos.png"; 
for($i=0; $i <sizeof($l); $i++){$res[$i]=imagenAdic11($l[$i]["base64"],"ventas/transferencia",$l[$i]["ext"],"comprobante_transferencia");  
if($res[$i]==NULL){$resRes[$i]=$imagenRespaldo;}else{$resRes[$i]=$res[$i];}} $rutaGeneral=json_encode(array('transferencia' =>$resRes));
$a=$this->mysqli->query("UPDATE ventas SET archivos='$rutaGeneral' WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function pedido_seleccionado($pagina,$id){  $ancho=8; $limite=$ancho*$pagina; $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT DISTINCT ventas.*, usuarios.empresa, usuarios.tipo_cliente, usuarios.archivos, usuarios.usuario FROM ventas INNER JOIN usuarios ON usuarios.id_usuario = ventas.id_usuario WHERE ventas.despacho_id != 0 AND ventas.mensajero_id='$id' AND ventas.estado_entrega!='entregado' ORDER BY ventas.fecha DESC LIMIT $limite,$ancho;");
if($a->num_rows!=0){ while($fila = $a->fetch_assoc()){$aA[]=$fila;} $paso["lista"]=$this->agregarInfoGene($aA);  $paso["paso"]="paso";}
return json_encode($paso);}

public function sel_pedido($id,$idVenta){$paso["paso"]="no paso";
$b=$this->mysqli->query("SELECT mensajeria FROM ventas WHERE id_venta='$idVenta';")->fetch_assoc(); $men=json_decode($b["mensajeria"],true);
if($men["id_mensajero"]!="0" && $men["id_mensajero"]!=""){$paso["paso"]="existente";}else{    
$a=$this->mysqli->query("UPDATE ventas SET mensajeria =JSON_SET(mensajeria,'$.id_mensajero','$id') WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";}} return json_encode($paso); }

public function pedido_seleccion($pagina,$idBodega){  $ancho=8; $limite=$ancho*$pagina; $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT DISTINCT ventas.*, usuarios.empresa, usuarios.tipo_cliente, usuarios.archivos, usuarios.usuario FROM ventas INNER JOIN usuarios ON usuarios.id_usuario = ventas.id_usuario WHERE (ventas.id_bodega='$idBodega' AND ventas.despacho_id != 0 AND ventas.estado_entrega!='entregado') OR ((ventas.estado='terminadoFinal') AND ventas.estado_entrega!='entregado') ORDER BY ventas.fecha DESC LIMIT $limite,$ancho;");
//$a=$this->mysqli->query("SELECT DISTINCT ventas.*, usuarios.empresa, usuarios.tipo_cliente, usuarios.archivos, usuarios.usuario FROM ventas INNER JOIN usuarios ON usuarios.id_usuario = ventas.id_usuario WHERE ventas.id_bodega='$idBodega' AND  ventas.despacho_id != 0 AND ventas.estado_entrega!='entregado' ORDER BY ventas.fecha DESC LIMIT $limite,$ancho;");
if($a->num_rows!=0){ while($fila = $a->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso";$paso["lista"]=$this->agregarInfoGene($aA);    }
return json_encode($paso);}


public function agregarInfoGene($lista){
$idGU=""; $idMen=array(); $bandera=0; $uUU=array(); for($p1=0;$p1<sizeof($lista);$p1++){$idMen[]=$lista[$p1]["mensajero_id"];}
for($i=0;$i<sizeof($idMen);$i++){if($idMen[$i]!=0){$bandera++;}}
if($bandera!=0){$venCli=array_values(array_unique($idMen));
for($u1=0;$u1<sizeof($venCli);$u1++){$idGU.="id_usuario =".$venCli[$u1]." OR ";} $idGU=substr($idGU,0,-4);
$u2=$this->mysqli->query("SELECT * FROM usuarios WHERE ".$idGU." ;"); while($fila=$u2->fetch_assoc()){$uUU[]=$fila;}}
$cc=$this->mysqli->query("SELECT * FROM bodegas"); while($fila=$cc->fetch_assoc()){ $bo[]=$fila;} for($ff=0;$ff<sizeof($lista);$ff++){
if($lista[$ff]["mensajero_id"]==0){$lista[$ff]["infoMensajero"]="vacio";}else{ 
$lista[$ff]["infoMensajero"]=$this->obProGenMen($uUU,$lista[$ff]["mensajero_id"],"id_usuario","vacio");}    
$idBodega=6; if($lista[$ff]["id_bodega"]!=0){$idBodega=$lista[$ff]["id_bodega"];}
$lista[$ff]["infoBodega"]=$this->obProGenMen($bo,$idBodega,"id_bodega","vacio");} return $lista;}

public function obProGenMen($info,$idpr,$control,$base){
$respuesta=$base; for($i=0;$i<sizeof($info);$i++){if($idpr==$info[$i][$control]){$respuesta=$info[$i];}} return $respuesta; }




// --------------------------------------------------------------------------------
public function pedidos_mensajero($idMensajero, $estado){ $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT v.*, u.* FROM ventas v INNER JOIN usuarios u ON u.id_usuario = v.id_usuario GROUP BY u.id_usuario WHERE JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero')) = '$idMensajero' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.estado_mensajero'))='$estado' ORDER BY fecha DESC;");    
if($a->num_rows!=0){ $paso["paso"]="paso"; while($f=$a->fetch_assoc()){ $in[]=$f; }  $paso["lista"]=$in;} return json_encode($paso);}

public function confirmar_pedido_mensajero($idVenta,$ruta){ $paso["paso"]="no paso"; $hoy=date("Y-m-d H:i:s");
$a=$this->mysqli->query("SELECT * FROM ventas WHERE id_venta='$idVenta';"); if($a->num_rows!=0){ $consulta=$a->fetch_assoc();
$mens=json_decode($consulta["mensajeria"],true); $mens["entrega"]=$hoy; $mens["imagenEntrega"]=$ruta; $mensajero=json_encode($mens);
$res=$this->mysqli->query("UPDATE ventas SET mensajeria='$mensajero', estado='enviados' WHERE id_venta='$idVenta';");
if($res){$paso["paso"]="paso";} } return json_encode($paso); }

public function seleccion_pedido($id,$idVenta,$tipo){ $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT mensajeria FROM ventas WHERE id_venta='$idVenta';"); if($a->num_rows!=0){
$a1=$a->fetch_assoc(); $mens=json_decode($a1["mensajeria"],true); 
if($mens["id_mensajero_adic"]!="0" && $mens["id_mensajero_adic"]!="null"){
if($mens["id_mensajero_adic"]==$id){$paso["paso"]="continuar";}else{$paso["paso"]="tomado";}
}else{ $mens["id_mensajero_adic"]=$id; $mensajeria=json_encode($mens);
$res=$this->mysqli->query("UPDATE ventas SET mensajeria='$mensajeria' WHERE id_venta=$idVenta;");
if($res){$paso["paso"]="paso";}}} return json_encode($paso);   }

public function venta_tipo_entrega_auxiliar($tipo,$id){$paso["paso"]="no paso";
$v="SELECT u.*, v.*, u.archivos as archivosUsuario, v.archivos as archivosVenta FROM ventas v INNER JOIN usuarios u ON u.id_usuario = v.id_usuario WHERE (JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.clave_acceso_mensajero')) != '0' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero')) = '0' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero_adic')) = '$id' AND v.estado != 'enviados' AND v.tipo_venta_control='$tipo') ORDER BY v.fecha DESC;";    
$a=$this->mysqli->query($v); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$aA[]=$f; } $paso["paso"]="paso"; $paso["lista"]=$aA; }
return json_encode($paso); }

public function consulta_verificacion_pedido($id,$idVenta,$tipo){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT id_venta FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.id_mensajero'))='$id' AND id_venta='$idVenta';")->num_rows;
if($a!=0){$paso["paso"]="paso"; $paso["lista"]=$this->venta_tipo_entrega_auxiliar($tipo,$id); } return json_encode($paso);    }

public function consulta_inicial_verificacion_general($id){
$base1="SELECT id_venta FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(ventas.anulacion,'$.motivo'))='null' AND ";  
$base2="SELECT id_venta FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(ventas.anulacion,'$.motivo'))!='null' AND "; 
$base4="JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.id_mensajero_adic'))='$id' AND JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.id_mensajero'))=0 AND JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.clave_acceso_mensajero')) != '0' AND "; 
$sel1=$base1.$base4."tipo_venta_control=0;"; $sel2=$base1.$base4."tipo_venta_control=1;"; $sel3=$base1.$base4."tipo_venta_control=2;";
$sel4=$base1.$base4."tipo_venta_control=3;"; $sel5=$base1.$base4."tipo_venta_control=5;"; $sel6=$base1.$base4."tipo_venta_control=6;";
$res["mayoritario"]=strval($this->mysqli->query($sel1)->num_rows); $res["inmediato"]=strval($this->mysqli->query($sel2)->num_rows);
$res["minoritario"]=strval($this->mysqli->query($sel3)->num_rows); $res["vendedor"]=strval($this->mysqli->query($sel4)->num_rows);
$res["empresarial"]=strval($this->mysqli->query($sel5)->num_rows); $res["traslado"]=strval($this->mysqli->query($sel6)->num_rows);
// $res["devolucion"]=strval($this->mysqli->query($sel7)->num_rows); $res["cancelado"]=strval($this->mysqli->query($sel8)->num_rows);
return json_encode($res);}


public function venta_tipo_final($id){ $paso["paso"]="no paso";
// $base="SELECT * FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero')) = '120';";
// $base="SELECT v.*, u.*, u.archivos as archivosUsuario, v.archivos as archivosVenta FROM ventas v INNER JOIN usuarios u ON u.id_usuario = v.id_usuario WHERE v.estado='enviados';";    
// SELECT u.*, v.*, u.archivos as archivosUsuario, v.archivos as archivosVenta FROM ventas v INNER JOIN usuarios u ON u.id_usuario = v.id_usuario WHERE (JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.clave_acceso_mensajero')) != '0' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero')) = '120' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero_adic')) = '120' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria,'$.estado_mensajero')) != 'entregado') ORDER BY v.fecha DESC;
$base="SELECT v.*, u.*, u.archivos as archivosUsuario, v.archivos as archivosVenta FROM ventas v INNER JOIN usuarios u ON u.id_usuario = v.id_usuario WHERE (JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.clave_acceso_mensajero')) != '0' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero')) = '$id' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero_adic')) = '$id' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria,'$.estado_mensajero')) != 'entregado') ORDER BY v.fecha DESC;";    
$a=$this->mysqli->query($base); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$aA[]=$f; } 
$paso["paso"]="paso"; $paso["lista"]=$aA; 
// return $this->dejarUnicosControl($id,$aA);
}
return json_encode($paso); }



public function venta_tipo_final_final($id,$pagina,$ancho22){ $paso["paso"]="no paso"; $lim=$pagina; $ancho=$ancho22; $limite=($lim-1)*$ancho; 
$base="SELECT v.*, u.*, u.archivos as archivosUsuario, v.archivos as archivosVenta FROM ventas v INNER JOIN usuarios u ON u.id_usuario = v.id_usuario WHERE (JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.clave_acceso_mensajero')) != '0' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero')) = '$id' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria, '$.id_mensajero_adic')) = '$id' AND JSON_UNQUOTE(JSON_EXTRACT(v.mensajeria,'$.estado_mensajero')) = 'entregado') ORDER BY v.fecha DESC LIMIT $limite,$ancho;";    
$a=$this->mysqli->query($base); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$aA[]=$f; } 
$paso["paso"]="paso"; $paso["lista"]=$aA; }
return json_encode($paso); }


public function dejarUnicosControl($id,$lista){ $conteo=0; $paso["paso"]="no paso";
for($i=0;$i<sizeof($lista);$i++){ $mens=json_decode($lista[$i]["mensajeria"],true);
if($mens["id_mensajero"]==$id && $mens["id_mensajero_adic"]==$id && $mens["clave_acceso_mensajero"]!="0" && $mens["estado_mensajero"]!="entregado"){
$respuesta[$conteo]=$lista[$i]; $conteo++; }}  if($conteo!=0){$paso["paso"]="paso"; $paso["lista"]=$respuesta;} 
return json_encode($paso); }

// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
// SELECT id_venta FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.estado_mensajero')) = 'pendiente';
// --------------------------------------------------------------------------------
// SELECT JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.estado_mensajero')) AS estado22 FROM ventas;
// SELECT JSON_EXTRACT(mensajeria,'$.id_mensajero') AS estado22 FROM ventas;
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
}
?>
