<?php
class ConsultaCliente 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 productosTodos($idBodega,$idEmpresa,$marca){ $paso["paso"]="no paso";
$axx =new Consulta(); $axx1=$axx->arregloConsultaProducto($idBodega); $ssttoo=new Consulta();
if($marca!="vacio"){ $fil11=" WHERE id_empresa='$idEmpresa' AND productos.candado='1' ".$this->obtenerMarcaOnly($marca);
$fil22=" ORDER BY categoria ASC;"; $cc6=$axx1["general"].$fil11." ".$axx1["adicional"].$fil22;    
}else{ $fil11=" WHERE id_empresa='$idEmpresa' AND productos.candado='1' "; $fil22=" ORDER BY categoria ASC;";    
$cc6=$axx1["general"].$fil11.$axx1["adicional"].$fil22;}
$a = $this->mysqli->query($cc6); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$res[]=$f;} $paso["lista"]=$ssttoo->agregarStock($res); }
return json_encode($paso); }

public function productosCampos($idBodega){$paso["paso"]="no paso";
$axx =new Consulta(); $axx1=$axx->arregloConsultaProducto($idBodega); 
$cc6=$axx1["general"]." ".$axx1["adicional"]; $a=$this->mysqli->query($cc6);
while($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso"; $paso["lista"]=$aA;}
return json_encode($paso); }

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

public function verificarNit($nit,$idEmpresa){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE id_empresa='$idEmpresa' AND (IFNULL(JSON_UNQUOTE(JSON_EXTRACT(usuario, '$.cedula')),'0') ='$nit' OR IFNULL(JSON_UNQUOTE(JSON_EXTRACT(empresa, '$.nit')),'5')='$nit');");
if($a->num_rows){$paso["paso"]="paso";} return json_encode($paso);}


public function agregarCarPro($venta){
$aux44=json_decode($venta,true); $auxTT=array(); for($po=0;$po<sizeof($aux44);$po++){
$auxTT[]=array("id_producto"=>$aux44[$po]["idpr"],"cantidad"=>$aux44[$po]["cant"],"id_carrito"=>$aux44[$po]["id_carrito"]??"0");}
$paso["carrito"]=$auxTT; $plk=new CarritoGeneral(); $paso["productos"]=$plk->agregarInfoGeneral($auxTT);
return $paso; }
// ------------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------------
public function cambioCreditoTransferencia($ruta,$idVenta,$idCliente,$diasCredito,$montoPagoAgregado){ $paso["paso"]="no paso"; $hoy22=$this->hoy();
$vencimiento=date("Y-m-d H:i:s",strtotime(date("Y-m-d H:i:s")."+ ".$diasCredito." days")); $credito=json_encode(array('fecha'=>strval($vencimiento), 'dias'=>strval($diasCredito)));
$this->auxRetornoSaldo($idVenta,$idCliente);
$a=$this->mysqli->query("UPDATE ventas SET aux=JSON_SET(aux,'$.verificacionDireccion','no verificado','$.estadoTransaccion','no verificado'), metodo_pago='credito transferencia', credito='$credito', fecha='$hoy22' WHERE id_venta='$idVenta';");
if($a){ $rutaBase=array(); $cod1=$this->maximoPago(); $paso["paso"]="paso";
if($ruta!="vacio"){$json=json_decode($ruta,true); for($i=0;$i<sizeof($json);$i++){ $aux=imagenAdic11($json[$i]["base64"],"ventas/transferencia",$json[$i]["ext"],"comprobante_transferencia_abono"); if($aux!=NULL){$rutaBase[]=$aux;}}}
$archivos=json_encode(array('transferencia' => $rutaBase)); $pag1="INSERT INTO pagos(monto,id_venta,metodo_pago,codigo_abono,archivos,estado_pago,fecha)";
$pag2="VALUES('$montoPagoAgregado','$idVenta','transferencia','$cod1','$archivos','requerido','$hoy22');"; $pp=$this->mysqli->query($pag1.$pag2);
if($pp){$paso["info"]=$this->restarCantidadCredito($total,$id_usuario,"cero");}} return json_encode($paso);}

public function cambioCredito($idVenta,$idCliente,$diasCredito){$paso["paso"]="no paso"; 
$hoy = date("Y-m-d H:i:s");	 $suma_dias="+ ".$diasCredito." days"; $fecha_venc =date("Y-m-d H:i:s",strtotime($hoy.$suma_dias));
$credito=json_encode(array('fecha'=>strval($fecha_venc), 'dias'=>strval($diasCredito))); $this->auxRetornoSaldo($idVenta,$idCliente);
$a=$this->mysqli->query("UPDATE ventas SET aux=JSON_SET(aux,'$.verificacionDireccion','no verificado','$.estadoTransaccion','no verificado'), metodo_pago='credito', credito='$credito', fecha='$hoy' WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso"; $paso["info"]=$this->restarCantidadCredito($total,$idCliente,"uno");} return json_encode($paso);}

public function cambioContraEntrega($idVenta,$idCliente,$metodoPago){$paso["paso"]="no paso"; $hoy=$this->hoy(); $this->auxRetornoSaldo($idVenta,$idCliente);
$a=$this->mysqli->query("UPDATE ventas SET aux=JSON_SET(aux,'$.verificacionDireccion','no verificado','$.estadoTransaccion','no verificado'), metodo_pago='$metodoPago', fecha='$hoy' WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function cambioMetodoCaja($idVenta){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT id_venta FROM ventas WHERE id_venta='$idVenta' AND metodo_pago LIKE '%caja%';")->num_rows;
if($a!=0){$paso["paso"]="paso";} return json_encode($paso);}

public function cambioMetodoTransferencia($ruta22,$idVenta,$idCliente){$paso["paso"]="no paso"; $l=json_decode($ruta22,true);
$imagenRespaldo="dependencias/img/general/imagen_base_productos.png";  $hoy=$this->hoy();
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));
$this->auxRetornoSaldo($idVenta,$idCliente);
$a=$this->mysqli->query("UPDATE ventas SET aux=JSON_SET(aux,'$.verificacionDireccion','no verificado','$.estadoTransaccion','no verificado'), archivos='$rutaGeneral', metodo_pago='transferencia', fecha='$hoy' WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function auxRetornoSaldo($idVenta,$idCliente){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT estado, venta, metodo_pago, aux FROM ventas WHERE id_venta='$idVenta';");if($a->num_rows!=0){
$aA=$a->fetch_assoc(); $aux=$this->obtenerTotalVenta1($aA["venta"],$this->obtenerAuxEstado($aA["estado"])); $total=$aux["total"];
$auxVenta=json_decode($aA["aux"],true);  $paso["paso"]="paso"; $p=$this->mysqli->query("SELECT * FROM pagos WHERE id_venta='$idVenta';"); 
if($auxVenta["estadoTransaccion"]=="verificado"){if(!strpos($aA["metodo_pago"],"contraentrega") !== false){
if(strpos($aA["metodo_pago"], "credito") !== false ){$this->restarCantidadCredito(-$total,$idCliente,"uno");}else{
$this->saldoFavorSumar($idCliente,$total);}}} if($p->num_rows!=0){ while($fila=$p->fetch_assoc()){$pa[]=$fila;} 
for($t=0;$t<sizeof($pa);$t++){ if($pa[$t]["estado_pago"]=="verificado"){  $idPago=$pa[$t]["id_pago"];
$this->saldoFavorSumar($idCliente,$pa[$t]["monto"]); $this->mysqli->query("UPDATE pagos SET estado_pago='eliminado' WHERE id_pago='$idPago';");}}}
} return json_encode($paso);}

public function informacionMetodoReducido($idCliente){ $res["accion"]="accion";
$b=$this->mysqli->query("SELECT credito, vendedor, saldoafavor FROM usuarios WHERE id_usuario=$idCliente;")->fetch_assoc(); if($b!=NULL){ $res["saldo"]=$b["saldoafavor"];
$cp=json_decode($b["credito"],true); $res["monto_autorizado"]=$cp["cupo"]; $res["resta_monto"]=$cp["restaAux"]; $res["dias_credito"]=$cp["dias"];
$cv=json_decode($b["vendedor"],true); if($res["monto_autorizado"]>0){$res["autorizacion_monto"]="autorizado";}else{$res["autorizacion_monto"]="no autorizado";}
$res["porcentaje_pago"]=$cv["comision"]; $res["tarjetas"]="vacio";} return json_encode($res);}

public function eliminarPedido($idCliente,$idVenta){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT estado, ventas, metodo_pago, aux FROM ventas WHERE id_venta='$idVenta';");    
if($a->num_rows!=0){$aA=$a->fetch_assoc(); if($aA["estado"]=="verificacion"){
$p=$this->mysqli->query("SELECT * FROM pagos WHERE id_venta='$idVenta';"); $auxVenta=json_decode($aA["aux"],true); 
$aux=$this->obtenerTotalVenta1($aA["venta"],$this->obtenerAuxEstado($aA["estado"])); $total=$aux["total"];
$axx =new CarritoGeneral();  $axx1=json_decode($axx->eliminarAuxMasivo(json_decode($aA["venta"],true),6),true);
if($axx1["paso"]=="paso"){ $paso["paso"]="paso"; $this->mysqli->query("DELETE FROM ventas WHERE id_venta='$idVenta';");
if($p->num_rows!=0){ while($fila=$p->fetch_assoc()){$pa[]=$fila;} 
for($t=0;$t<sizeof($pa);$t++){ if($pa[$t]["estado_pago"]=="verificado"){  $idPago=$pa[$t]["id_pago"];
$this->saldoFavorSumar($idCliente,$pa[$t]["monto"]); $this->mysqli->query("UPDATE pagos SET estado_pago='eliminado' WHERE id_pago='$idPago';");}}}
if($auxVenta["estadoTransaccion"]=="verificado"){if(!strpos($aA["metodo_pago"],"contraentrega") !== false){
if(strpos($aA["metodo_pago"], "credito") !== false ){$this->restarCantidadCredito(-$total,$idCliente,"uno");}else{
$this->saldoFavorSumar($idCliente,$total);}}}}}else{$paso["paso"]="otro estado";}} return json_encode($paso);}

public function saldoFavorSumar($id,$valor){
$a=$this->mysqli->query("SELECT saldoafavor FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$a=$a->fetch_assoc(); $saldo=$a["saldoafavor"]; if($saldo!="0" && $saldo!="null"){
$json=json_decode($saldo,true); $json["efectivo"]=$json["efectivo"]+$valor; $jsonRes=json_encode($json);
$this->mysqli->query("UPDATE usuarios SET saldoafavor='$jsonRes' WHERE id_usuario='$id';");}else{
$info["credito"]=0; $info["efectivo"]=$valor; $jsonRes=json_encode($info);    
$this->mysqli->query("UPDATE usuarios SET saldoafavor='$jsonRes' WHERE id_usuario='$id';");}}}

public function productosCarrito($idCliente,$lista,$idBodega,$idEmpresa){ $paso["paso"]="no paso"; $id=""; $col=json_decode($lista,true);
for($i=0;$i<sizeof($col);$i++){ $id.="id='".$col[$i]."' OR ";} 
if($id!=""){$id=substr($id,0,(strlen($id)-4)); $axx =new Consulta(); $axx1=$axx->arregloConsultaProducto($idBodega); $ssttoo=new Consulta();
$fil11=" WHERE ".$id." "; $fil22="";  $cc6=$axx1["general"].$fil11.$axx1["adicional"].$fil22;
$a = $this->mysqli->query($cc6); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$res[]=$f;} $paso["paso"]="paso";  
$paso["lista"]= $ssttoo->agregarStock($this->productosGeneAccion($res,$idCliente,"0",$idBodega,$idEmpresa));}}  
return json_encode($paso);  }
// ------------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------------
// en curso 0 por vencer 1 vencidos 2 pagados 3

public function estadisticaFiltro($id,$control){$paso["paso"]="no paso"; $aux=json_decode($this->estadisticaReducido($id),true);
if($aux["paso"]=="paso"){ return $this->estadisticaFuncion($aux["ventas"],$aux["pagos"],$control);} return json_encode($paso);}

public function estadisticaFuncion($ventas,$pagos,$control) {  $paso["paso"]="no paso";
$enCurso = 0; $porVencer = 0; $vencidos = 0; $pagados = 0; $id="";
$arrayEnCurso=array(); $arrayPorVencer=array(); $arrayVencidos=array(); $arrayPagados=array();
for($i=0;$i<sizeof($ventas);$i++){if(strpos($ventas[$i]["metodo_pago"], "credito") !== false){
$aux = $this->obtenerTotalVenta1($ventas[$i]["venta"], $this->obtenerAuxEstado($ventas[$i]["estado"]));
$aux22 =$this->obtenerPagosVerificadoAux($pagos, $ventas[$i]["id_venta"]);
if((-$aux22 + $aux["total"]) <= 0){$pagados++; $arrayPagados[]=$ventas[$i]["id_venta"];}else{
$dias = $this->dTiempoDiaGeneral($this->obtenerCampoSensillo($ventas[$i]["credito"], "fecha"));
if($dias < 0){$vencidos++; $arrayVencidos[]=$ventas[$i]["id_venta"];} else {
if($dias <= 10){$porVencer++; $arrayPorVencer[]=$ventas[$i]["id_venta"];}else{$enCurso++; $arrayEnCurso[]=$ventas[$i]["id_venta"];}}}}}
if($control=="0"){if($enCurso!=0){for($i=0;$i<sizeof($arrayEnCurso);$i++){ $id.="id_venta='".$arrayEnCurso[$i]."' OR ";}}}
if($control=="1"){if($porVencer!=0){for($i=0;$i<sizeof($arrayPorVencer);$i++){ $id.="id_venta='".$arrayPorVencer[$i]."' OR ";}}}
if($control=="2"){if($vencidos!=0){for($i=0;$i<sizeof($arrayVencidos);$i++){ $id.="id_venta='".$arrayVencidos[$i]."' OR ";}}}  
if($control=="3"){if($pagados!=0){for($i=0;$i<sizeof($arrayPagados);$i++){ $id.="id_venta='".$arrayPagados[$i]."' OR ";}}}
if($id!=""){ $id=substr($id,0,(strlen($id)-4));  $a=$this->mysqli->query("SELECT * FROM ventas WHERE ".$id);
if($a->num_rows!=0){ while($fila=$a->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso"; $paso["lista"]=$this->consultaGECA($aA);}}
return json_encode($paso);}

public function obtenerCampoSensillo($lista, $campo) {try{$a=json_decode($lista, true); return isset($a[$campo]) ? $a[$campo] : "";
}catch(Exception $e){return "";} }

public function dTiempoDiaGeneral($fecha) { if($fecha == null || $fecha == ""){return "null";}else{
try{$hoy = new DateTime(); $ent = new DateTime($fecha); $dif = $hoy->diff($ent)->days;
$dif1 = $dif ; return strval($dif1); } catch (Exception $e) { return "null";}}}

public function obtenerTotalVenta1($venta, $aux){$v = json_decode($venta,true); $total = 0; $cantidad = 0; $articulos = 0;
for($i=0;$i<sizeof($v);$i++){if($v[$i]["estEli"] == "0"){
$total = $total + ($v[$i][$aux]*$v[$i]["costo"]); $cantidad = $cantidad + $v[$i][$aux]; $articulos++;}}
$aux11["cantidad"]=$cantidad; $aux11["total"]=$total; $aux11["articulos"]=$articulos; return $aux11;}

public function obtenerPagosVerificadoAux($pagos, $idVenta) {
if($pagos == "vacio"){return 0;}else{ $res = 0; for($i=0;$i<sizeof($pagos); $i++) {
if($idVenta == $pagos[$i]["id_venta"] && $pagos[$i]["estado_pago"] == "verificado") {
$res = $res + $pagos[$i]["monto"];}}return $res;}}

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 esperaIdentificacion($idVenta){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT * FROM ventas WHERE id_venta='$idVenta';");
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso"; $paso["lista"]=$this->consultaGECA($aA);}    
return json_encode($paso);}

public function eliminarNotificacion($idNotificacion){$paso["paso"]="no paso";
$a=$this->mysqli->query("DELETE FROM notificacion WHERE id_notificacion='$idNotificacion';"); if($a){$paso["paso"]="paso";} return json_encode($paso);}
// --------------------------------------------------------------------
public function agregarMarketing($campos){ $c=json_decode($campos,true); $tipo=$c["tipo"]; $origen=$c["origen"];
$destino=$c["destino"]; $base64=$c["base64"]; $imagen="vacio";  $paso["paso"]="no paso"; $hoy=$this->hoy();
if($base64!="vacio"){$aux=imagenAdic11($base64,"marketing","png","imagen"); if($aux!=NULL){$imagen=$aux; $paso["lista"]=$imagen;} }    
$con["metodo"]=$c["metodo"]; $con["idVenta"]=$c["idVenta"]; $con["claveVenta"]=$c["claveVenta"];  $con["titulo"]=$c["titulo"]; $con["subtitulo"]=$c["subtitulo"]; $con["imagen"]=$imagen; $contenido=json_encode($con);
$a=$this->mysqli->query("INSERT INTO notificacion(tipo, contenido, origen, destino, fecha) VALUES('$tipo','$contenido','$origen','$destino','$hoy');");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function notificacionNuevo($id,$control){
if($control=="todo"){$con="SELECT * FROM notificacion WHERE (destino='$id' OR destino='todos') ORDER BY fecha DESC;";}else{
$con="SELECT * FROM notificacion WHERE ((destino='$id' OR destino='todos') AND visto='no visto') OR (NOT JSON_CONTAINS(usuarios,'$.$id') AND visto='no visto') ORDER BY fecha DESC;";}
$a=$this->mysqli->query($con); if($a->num_rows!=0){while($dil=$a->fetch_assoc()){ $not[]=$dil;} 
$paso["info"]=$not; $paso["paso"]="paso";} return json_encode($paso);}

public function vistaNotificacion($idNotificacion,$control,$idCliente){$paso["paso"]="no paso";
if($control=="todo"){$con="UPDATE notificacion SET usuarios=JSON_ARRAY_APPEND(usuarios, '$', '$idCliente') WHERE id_notificacion='$idNotificacion';";}else{
$con="UPDATE notificacion SET visto='visto' WHERE id_notificacion='$idNotificacion';";} $a=$this->mysqli->query($con);
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function actuValorGene($id,$campo,$valor){ $paso["paso"]="no paso"; $rutaBaseDocumento="contenido/baseDocumento.png";
if($campo=="genero" || $campo=="apellido" || $campo=="nombre" || $campo=="identidad" || $campo=="fecha"){ 
$a=$this->mysqli->query("UPDATE usuarios SET usuario =JSON_SET(usuario,'$.$campo','$valor') WHERE id_usuario='$id';"); }
if($campo=="ubicacion"){ $json=json_decode($valor,true);  $dep=$json["dep"]; $ciu=$json["ciu"]; $zona=$json["zona"]; $detalle=$json["detalle"];
$direccion=$json["direccion"]; $a=$this->mysqli->query("UPDATE usuarios SET usuario =JSON_SET(usuario,'$.departamento','$dep','$.ciudad','$ciu','$.adicional','$detalle','$.direccion','$direccion','$.barrio','$zona') WHERE id_usuario='$id';");}
if($campo=="contacto"){ $json=json_decode($valor,true); $telefono=$json["telefono"]; $celular=$json["celular"];
$a=$this->mysqli->query("UPDATE usuarios SET usuario=JSON_SET(usuario,'$.telefono','$telefono','$.celular','$celular') WHERE id_usuario='$id';");}

if($campo=="cedula"){  $json=json_decode($valor,true); $identidad=$json["identidad"]; $documento=$json["documento"];
$b=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE JSON_UNQUOTE(JSON_EXTRACT(usuario,'$.cedula'))='$identidad' AND id_usuario!='$id';")->num_rows;
if($b!=0){$paso["paso"]="repetido"; $a=false; }else{ for($i=0;$i<sizeof($documento);$i++){if($documento[$i]["base64"]!="vacio"){
$img=imagenAdic11($documento[$i]["base64"],"documentos",$documento[$i]["ext"],"cedula_"); if($img==NULL){$img=$rutaBaseDocumento;}  
$documento[$i]["archivo"]=$img; $documento[$i]["base64"]="vacio"; $documento[$i]["control"]="servidor"; $documento[$i]["control2"]="servidor";}}    
$cc=$this->mysqli->query("SELECT archivos FROM usuarios WHERE id_usuario='$id';")->fetch_assoc(); $archivos=json_decode($cc["archivos"],true);
$archivos["cedula"]=$documento; $auxArchivo=json_encode($archivos);  $paso["lista"]=$auxArchivo;
$a=$this->mysqli->query("UPDATE usuarios SET usuario= JSON_SET(usuario,'$.cedula','$identidad'), archivos='$auxArchivo' WHERE id_usuario='$id';");} }

if($campo=="cedulaAux"){  $json=json_decode($valor,true);  $identidad=$json["identidad"];   
$b=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE JSON_UNQUOTE(JSON_EXTRACT(usuario,'$.cedula'))='$identidad' AND id_usuario!='$id';")->num_rows;
if($b!=0){$paso["paso"]="repetido"; $a=false;}else{$a=$this->mysqli->query("UPDATE usuarios SET usuario= JSON_SET(usuario,'$.cedula','$identidad') WHERE id_usuario='$id';");}}

if($campo=="razon" || $campo=="nit" || $campo=="regimen"){
if($campo=="nit"){ $au=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE JSON_UNQUOTE(JSON_EXTRACT(empresa,'$.nit'))='$valor' AND id_usuario!='$id'; ");
if($au->num_rows!=0){$paso["paso"]="repetido"; $a=false;}else{$a=$this->mysqli->query("UPDATE usuarios SET empresa=JSON_SET(empresa,'$.$campo','$valor') WHERE id_usuario='$id';");}
}else{$a=$this->mysqli->query("UPDATE usuarios SET empresa=JSON_SET(empresa,'$.$campo','$valor') WHERE id_usuario='$id';"); }}

//if($campo=="razon" || $campo=="nit" || $campo=="regimen"){
//$a=$this->mysqli->query("UPDATE usuarios SET empresa=JSON_SET(empresa,'$.$campo','$valor') WHERE id_usuario='$id';"); }

if($campo=="ubicacion2"){ $json=json_decode($valor,true); $dep=$json["dep"]; $ciu=$json["ciu"]; $zona=$json["zona"]; $detalle=$json["detalle"]; $direccion=$json["direccion"];
$a=$this->mysqli->query("UPDATE usuarios SET empresa= JSON_SET(empresa,'$.departamento','$dep','$.ciudad','$ciu','$.adicional','$detalle','$.direccion','$direccion','$.barrio','$detalle') WHERE id_usuario='$id';");}

if($campo=="contacto2"){ $json=json_decode($valor,true); $telefono=$json["telefono"]; $celular=$json["celular"];
$a=$this->mysqli->query("UPDATE usuarios SET empresa=JSON_SET(usuario,'$.telefono','$telefono','$.celular','$celular') WHERE id_usuario='$id';");}


if($a){$paso["paso"]="paso";} return json_encode($paso);}
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
public function estadisticaReducido($id){$paso["paso"]="no paso"; $a=$this->mysqli->query("SELECT estado, credito, venta, id_venta, metodo_pago, aux, fecha  FROM ventas WHERE id_usuario='$id'; ");
if($a->num_rows!=0){$paso["paso"]="paso";  while($fila=$a->fetch_assoc()){$v[]=$fila;} $idVenta="("; for($i=0;$i<sizeof($v);$i++){$idVenta.="id_venta=".$v[$i]["id_venta"]." OR ";  } 
$idVenta=substr($idVenta,0,(strlen($idVenta)-4)).")"; $b=$this->mysqli->query("SELECT monto, id_venta, estado_pago FROM pagos WHERE ".$idVenta); $paso["ventas"]=$v;
if($b->num_rows!=0){ while($fil=$b->fetch_assoc()){ $p[]=$fil; } $paso["pagos"]=$p; }else{$paso["pagos"]="vacio";} } return json_encode($paso); }



public function usuarioFavorito($id){$paso["paso"]="no paso"; $a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$usu=$a->fetch_assoc();  $paso["paso"]="paso"; $tipoCliente=$usu["tipo_cliente"];
if($usu["favoritos"]!="[]" && $usu["favoritos"]!="null"&& $usu["favoritos"]!=""){$guardados=json_decode($usu["favoritos"],true); 
$carrito=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$id';");
if($carrito->num_rows!=0){while($fi=$carrito->fetch_assoc()){$car1[]=$fi;}}else{$car1=NULL;}
$usu["favoritos"]=json_encode($this->consultaGECAUS($guardados,$car1,$tipoCliente));} $paso["info"]=$usu; } return json_encode($paso);}

public function usuarioIdReducido($id){$paso["paso"]="no paso"; $a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){ $usu=$a->fetch_assoc();  $usu["totalComprasGeneral"]="0"; $usu["adeudoTotalGeneral"]="0";  $usu["totalComprasGeneral11"]="0";
$usu["adeudoTotalGeneral"]=$this->obtener_total_adeudo($id,$usu["id_bodega"]); $paso["paso"]="paso";
$ven=$this->mysqli->query("SELECT SUM(total) AS tot FROM ventas WHERE id_usuario=$id;")->fetch_assoc();
$ttt=$this->mysqli->query("SELECT id_usuario FROM ventas WHERE id_usuario=$id;")->num_rows;
if($ven["tot"]!=NULL){$usu["totalComprasGeneral"]=intval($ven["tot"]);} $usu["totalComprasGeneral11"]=$ttt; $paso["info"]=$usu; } return json_encode($paso);}

// --------------------------------------------------------------------
public function consultaPass($pas,$id){$paso["paso"]="no paso";
$pass=crypt(htmlentities($pas),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');
$a=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE password='$pass' AND id_usuario='$id';")->num_rows;
if($a!=0){$paso["paso"]="paso";} return json_encode($paso);}

public function suspenderCuenta($id){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT usuario FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$a=$a->fetch_assoc(); $aa=json_decode($a["usuario"],true); $aa["fechaEliminacion"]=$this->hoy(); $aa=json_encode($aa); 
$b=$this->mysqli->query("UPDATE usuarios SET usuario='$aa', estado='6' WHERE id_usuario='$id';");
if($b){$paso["paso"]="paso";}} return json_encode($paso); }
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// {'nivel':0,'tope':100000,'total':0}
public function consultaPagosIdVenta($idVenta){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT * FROM pagos WHERE id_venta='$idVenta';");  if($a->num_rows!=0){
while($fila=$a->fetch_assoc()){$sal[]=$fila;} $paso["lista"]=$sal; $paso["paso"]="paso"; }  return json_encode($paso); }

public function consultaNivel($id){$paso["paso"]="no paso"; $a=$this->mysqli->query("SELECT nivel FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$aa=$a->fetch_assoc(); $paso["info"]=$aa["nivel"];  $paso["paso"]="paso";} return json_encode($paso); }
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
public function asignacionNivel($id){$paso["paso"]="paso"; $totalCompras=0; $paso["info"]=json_encode(array('nivel'=>0,'tope'=>1000,'total'=>0));
$ven=$this->mysqli->query("SELECT SUM(total) AS tot FROM ventas WHERE id_usuario=$id;")->fetch_assoc();
if($ven["tot"]!=NULL){$totalCompras=intval($ven["tot"]);}
if($totalCompras!=0){ $nivel0=10000; $nivel1=100000; $nivel2=1000000; $nivel3=10000000; $nivel4=100000000; $nivel5=1000000000; $nivel6=10000000000; $nivel7=100000000000; $nivel8=1000000000000;
if(($totalCompras/$nivel8)>=1){$nivel=8; $tope=$nivel8;}else{if(($totalCompras/$nivel7)>=1){$nivel=7; $tope=$nivel7;}else{
if(($totalCompras/$nivel6)>=1){$nivel=6; $tope=$nivel6;}else{if(($totalCompras/$nivel5)>=1){$nivel=5; $tope=$nivel5;}else{
if(($totalCompras/$nivel4)>=1){$nivel=4; $tope=$nivel4;}else{if(($totalCompras/$nivel3)>=1){$nivel=3; $tope=$nivel3;}else{
if(($totalCompras/$nivel2)>=1){$nivel=2; $tope=$nivel2;}else{if(($totalCompras/$nivel1)>=1){$nivel=1; $tope=$nivel1;}else{
if(($totalCompras/$nivel0)>=1){$nivel=0; $tope=$nivel0;}else{$nivel=0; $tope=1000;}}}}}}}}}
$nivelGeneral=json_encode(array('nivel'=>$nivel,'tope'=>$tope,'total'=>$totalCompras,'paso'=>"si"));
$a=$this->mysqli->query("UPDATE usuarios SET nivel='$nivelGeneral' WHERE id_usuario='$id';");
if($a){$paso["paso"]="paso"; $paso["info"]=$nivelGeneral;}} return json_encode($paso); }
// ---------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------
// estadoDevolucion=activo    estadoDevolucionActual="regreso" "devuelto" "saldo"
// motivoDevolucion   estado="devuelto"
public function cancelarDevolucion($idVenta,$idpr){$paso["paso"]="paso";
$a=$this->mysqli->query("SELECT aux, venta, estado FROM ventas WHERE id_venta='$idVenta';");
if($a->num_rows!=0){ $aa=$a->fetch_assoc(); $aux=json_decode($aa["aux"],true); $venta=json_decode($aa["venta"],true); $estado=$aa["estado"];
if(isset($aux["estadoDevolucion"]) && $estado!="enviados" && $idpr!="0"){if($estado!="enviados" && $aux["estadoDevolucionActual"]=="regreso"){$aux["estadoDevolucion"]="desactivado"; $aux["motivoDevolucion"]="";
$aux=json_encode($aux); $b=$this->mysqli->query("UPDATE aux='$aux', estado='enviados' WHERE id_venta='$idVenta';"); if($b){$paso["paso"]="paso";}
}else{$paso["paso"]="ya retornado";}}else{ $bandera="no"; for($i=0;$i<sizeof($venta);$i++){if($idpr==$venta[$i]["idpr"]){if($venta[$i]["estadoDevolucionActual"]=="regreso"){
$venta[$i]["estadoDevolucion"]="desactivado"; $venta[$i]["motivoDevolucion"]=""; }else{$paso["paso"]="ya retornado";$bandera="si"; } }}    
if($bandera=="si"){$venta=json_encode($venta); $b=$this->mysqli->query("UPDATE ventas SET venta='$venta' WHERE id_venta='$idVenta';"); }
}} return json_encode($paso); }

public function devolverGeneral($idVenta,$motivo,$imagen){$paso["paso"]="no paso"; $hoy=$this->hoy();
$a=$this->mysqli->query("SELECT aux FROM ventas WHERE id_venta='$idVenta';");
if($a->num_rows!=0){ $au=$a->fetch_assoc();  $aux=json_decode($au["aux"],true);   $aux["fechaDevolucion"]=$hoy;
if($imagen!="vacio"){$aux["evidencia"]=$this->imagenAsignacion($imagen);} 
$aux["estadoDevolucion"]="activo"; $aux["estadoDevolucionActual"]="regreso"; $aux["motivoDevolucion"]=$motivo;
$aux=json_encode($aux); $b=$this->mysqli->query("UPDATE ventas SET aux='$aux', estado='devuelto' WHERE id_venta='$idVenta';");
if($b){$paso["paso"]="paso";}} return json_encode($paso);}

public function devolverParcial($idVenta,$idpr,$motivo,$cantidad,$imagen){$paso["paso"]="no paso"; $hoy=$this->hoy();
$a=$this->mysqli->query("SELECT venta FROM ventas WHERE id_venta='$idVenta';");
if($a->num_rows!=0){$ve=$a->fetch_assoc(); $venta=json_decode($ve["venta"],true); 
for($i=0;$i<sizeof($venta);$i++){ if($venta[$i]["idpr"]==$idpr){ $venta[$i]["fechaDevolucion"]=$hoy; if($imagen!="vacio"){$venta[$i]["evidencia"]=$this->imagenAsignacion($imagen);}
$venta[$i]["estadoDevolucion"]="activo"; $venta[$i]["cantidadDevolucion"]=$cantidad; $venta[$i]["estadoDevolucionActual"]="regreso"; $venta[$i]["motivoDevolucion"]=$motivo;}}
$venta=json_encode($venta); $b=$this->mysqli->query("UPDATE ventas SET venta='$venta' WHERE id_venta='$idVenta';");
if($b){$paso["paso"]="paso";}} return json_encode($paso); }

public function imagenAsignacion($info1){ $info=json_decode($info1,true); $res=array();
for($i=0;$i<sizeof($info);$i++){ $a=imagenAdic11($info[$i]["base64"],"evidencia/devolucion",$info[$i]["ext"],"comprobante_evidencia");  
if($a!=NULL){$res[]=$a;}}return $res;}
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------

public function actualizar_direccion_rr($idVenta,$direccion){$paso["paso"]="no paso";
$a=$this->mysqli->query("UPDATE ventas SET direccion_alternativa='$direccion' WHERE id_venta='$idVenta';");
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function retorno_credito($id){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT saldoafavor, credito FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$a=$a->fetch_assoc(); $credito=$a["credito"];  $saldo=$a["saldoafavor"];
if($saldo!="0" && $saldo!="null" && $credito!="[]" && $credito!="null" && $credito!="" && $saldo!=""){
$credito=json_decode($credito,true); $saldo=json_decode($saldo,true); if($saldo["credito"]>0){
$credito["restaAux"]=$credito["restaAux"]+$saldo["credito"];  $creditoRes=json_encode($credito); $saldo["credito"]=0; $saldoRes=json_encode($saldo);
$jj=$this->mysqli->query("UPDATE usuarios SET credito='$creditoRes', saldoafavor='$saldoRes' WHERE id_usuario='$id';"); 
if($jj){$paso["paso"]="paso";}}}} return json_encode($paso);}

public function metodo_pago_transferencia_saldo($ruta22,$id_usuario,$control,$direccion,$resta,$idVendedor,$idBodega,$idEmpresa){ $paso["paso"]="no paso"; $hoy=$this->hoy();
$r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega); if($r!=NULL){$paso["paso"]="paso";   
$venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"]; $cl=$this->maximo();
$paso["claveVenta"]=$cl; $paso["control"]=$tipo_venta_control; $l=json_decode($ruta22,true);
$aux=json_encode(array('verificacionDireccion' =>"no verificado" ,"estadoTransaccion"=>"no verificado", "pausa"=>"0", "tipoPedido"=>$control));
$imagenRespaldo="dependencias/img/general/imagen_base_productos.png"; $ruta1=["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));
$con="INSERT INTO ventas(id_empresa, id_vendedor,id_bodega,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,archivos,total,fecha,saldo) ";
$con2="VALUES('$idEmpresa','$idVendedor','$idBodega','$venta','$id_usuario','$tipo_venta_control','transferencia saldoafavor','$direccion','$aux','$cl','$rutaGeneral','$total','$hoy','$resta')"; $plc=$this->mysqli->query($con.$con2); 
if($plc){$this->saldoRestaActualizar($id_usuario,"0"); $paso["auxCP"]=$this->agregarCarPro($venta); $res1=$this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega);}
if(!$plc){$paso["paso"]="no paso";}} return json_encode($paso);}


public function metodo_pago_saldoafavor($id_usuario,$control,$direccion,$resta,$idVendedor,$idBodega,$idEmpresa){$paso["paso"]="no paso"; $hoy=$this->hoy();
$r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega); if($r!=NULL){$paso["paso"]="paso";
$venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"]; $cl=$this->maximo();
$paso["claveVenta"]=$cl; $paso["control"]=$tipo_venta_control; $aux=json_encode(array('verificacionDireccion' =>"no verificado" ,"estadoTransaccion"=>"verificado", "pausa"=>"0", "tipoPedido"=>$control));
$con="INSERT INTO ventas(id_empresa,id_vendedor,id_bodega,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,total,fecha) ";
$con2="VALUES('$idEmpresa','$idVendedor','$idBodega','$venta','$id_usuario','$tipo_venta_control','saldoafavor','$direccion','$aux','$cl','$total','$hoy');"; $plc=$this->mysqli->query($con.$con2);
if($plc){$this->saldoRestaActualizar($id_usuario,$resta); $paso["auxCP"]=$this->agregarCarPro($venta); $this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega);}
if(!$plc){$paso["paso"]="no paso";}} return json_encode($paso); }


public function saldoRestaActualizar($id,$resta){
$a=$this->mysqli->query("SELECT saldoafavor FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$a=$a->fetch_assoc(); $saldo=$a["saldoafavor"]; if($saldo!="0" && $saldo!="null"){
$json=json_decode($saldo,true); $json["efectivo"]=$resta; $jsonRes=json_encode($json);
$this->mysqli->query("UPDATE usuarios SET saldoafavor='$jsonRes' WHERE id_usuario='$id';");}}}


public function obtenerSaldo($id){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT saldoafavor FROM usuarios WHERE id_usuario='$id';");
if($a->num_rows!=0){$paso["paso"]="paso"; $a=$a->fetch_assoc();  $paso["saldo"]=$a["saldoafavor"];}return json_encode($paso);}
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
public function obtenerInformacionProductos($v){$venta=json_decode($v,true); $conteo=0;
for($p2=0;$p2<sizeof($venta);$p2++){ $identificacion[$conteo]=$venta[$p2]["idpr"]; $conteo++;}  
$identificacion=array_values(array_unique($identificacion)); $idGeneral="";
for($i=0;$i<sizeof($identificacion);$i++){ $idGeneral.="id =".$identificacion[$i]." 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." ;"); if($sel2->num_rows==0){$aA=[];}else{while($fila=$sel2->fetch_assoc()){$aA[]=$fila;}}
for($q2=0;$q2<sizeof($venta);$q2++){$venta[$q2]["infoProducto"]=$this->obProGen($aA,$venta[$q2]["idpr"],"id","vacio");} 
$v=json_encode($venta); return $v; }
// -------------------------------------------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------------------------------------------
public function reemplazo_transferencia($ruta22,$idVenta){ $paso["paso"]="no paso"; $hoy=$this->hoy();
$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_reemplazo");  
if($res[$i]==NULL){$resRes[$i]=$imagenRespaldo;}else{$resRes[$i]=$res[$i];}} $rutaGeneral=json_encode(array('transferencia' =>$resRes));
$aty=$this->mysqli->query("UPDATE ventas SET metodo_pago='transferencia', archivos='$rutaGeneral', fecha='$hoy' WHERE id_venta='$idVenta';");
if($aty){$paso["paso"]="paso";} return json_encode($paso);}

public function comprobar_cambio_pago($idVenta){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT id_venta FROM ventas WHERE id_venta='$idVenta' AND metodo_pago='caja';");
if($a->num_rows!=0){$paso["paso"]="paso";} return json_encode($paso); }

public function cambio_caja($idVenta){$paso["paso"]="no paso";
$aux=json_encode(array('verificacionDireccion' =>"no verificado" ,"estadoTransaccion"=>"verificado", "pausa"=>"0", "tipoPedido"=>'general'));
$a=$this->mysqli->query("UPDATE ventas SET aux='$aux', metodo_pago='caja' WHERE id_venta='$idVenta';"); if($a){$paso["paso"]="paso";}
return json_encode($paso);  }
// -------------------------------------------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------------------------------------------------

public function ventaAuxiliar($id_venta){$hoy= new DateTime(); $imagenBase="dependencias/img/general/logo.png"; $paso["paso"]="no paso";
$apo=$this->mysqli->query("SELECT * FROM ventas WHERE id_venta='$id_venta';"); 
if($apo->num_rows!=0){ $paso["paso"]="paso";  $a=$apo->fetch_assoc();
$relCantidad=0; $v=json_decode($a["venta"],true); $zV=sizeof($v);  $articulos=0; $cantidad=0;
for($i=0;$i<$zV;$i++){ if($v[$i]["estEli"]==0){$cantidad+=$v[$i]["cant"]; $articulos++; $relCantidad+=$v[$i]["rel"];} $id=$v[$i]["idpr"];
$cc6="SELECT productos.*, JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.descripcion')) as descripcion, IFNULL(categorias.categoria, 'DISPONIBLE') as categoria, marca.marca, marca.imagen, IFNULL(modelos.modelo, 'DISPONIBLE') as modelo FROM productos LEFT JOIN categorias ON JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.id_categoria')) = categorias.id_categoria LEFT JOIN modelos ON JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.id_modelo')) = modelos.id_modelo LEFT JOIN marca ON JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos, '$.id_marca')) = marca.id_marca WHERE id='$id';";
$p=$this->mysqli->query($cc6);if($p->num_rows==0){$v[$i]["infoProducto"]="vacio";}else{$v[$i]["infoProducto"]=$p->fetch_assoc();}} 
$a["venta"]=json_encode($v);  $paso["vendedor"]="tienda Online";  if($a["id_vendedor"]!=0){ $idVendedor=$a["id_vendedor"]; 
$vza=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario=$idVendedor;")->fetch_assoc(); $paso["vendedor"]=$vza;  }
$idUsuario=$a["id_usuario"]; $paso["cliente"]=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario='$idUsuario';")->fetch_assoc();


$paso["pagos"]=$this->mysqli->query("SELECT * FROM pagos WHERE id_venta='$id_venta';")->fetch_assoc(); 
$pagoAux=$this->mysqli->query("SELECT * FROM pagos WHERE id_venta='$id_venta'");
if($pagoAux->num_rows==0){$paso["pagos"]="null"; }else{while($fila2=$pagoAux->fetch_assoc()){$pagoGeneral[]=$fila2;} $paso["pagos"]=$pagoGeneral; }


$paso["info"]=$a;
$paso["productosTotal"]=$cantidad; $paso["relProductos"]=$relCantidad; $paso["articulos"]=$articulos; }return $paso;}


public function pago_caja_general($monto,$idVenta,$clave){$cod=$this->maximoPago(); $hoy=$this->hoy(); $paso["paso"]="no paso"; 
$a=$this->mysqli->query("INSERT INTO pagos(monto,id_venta,metodo_pago,codigo_abono,fecha,otros,estado_pago) VALUES('$monto','$idVenta','caja','$cod','$hoy','$clave','verificado');");    
if($a){$paso["paso"]="paso"; $paso["lista"]=$this->obtenerPagosGenerales($idVenta);} return json_encode($paso);}

public function consulta_pago_caja($monto,$idVenta,$clave){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT codigo_abono FROM pagos WHERE monto='$monto' AND id_venta='$idVenta' AND otros='$clave';")->num_rows;
if($a!=0){$paso["paso"]="paso"; $paso["lista"]=$this->obtenerPagosGenerales($idVenta);} return json_encode($paso);}

public function consulta_venta_caja($clave,$idCliente){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT id_venta FROM ventas WHERE clave_local='$clave' AND id_usuario='$idCliente' AND id_bodega='6';")->num_rows;
if($a!=0){$paso["paso"]="paso";} return json_encode($paso); }


public function revisarEmail($correo,$idEmpresa){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE email='$correo' OR email_empresa='$correo' AND id_empresa='$idEmpresa';")->num_rows;  
if($a!=0){$paso["paso"]="paso";} return json_encode($paso); }

public function subirImagenGeneral($base64,$nombre,$ext){$paso["paso"]="no paso";
$imagen=imagenAdic11($base64,"archivos/general",$ext,$nombre);
if($imagen!=NULL){$paso["paso"]="paso"; $paso["link"]=$imagen;} return json_encode($paso); }
// --------------------------------------------------------------------
public function pedidosConteo($idCliente){
// fecha >= CURDATE() - INTERVAL 30 DAY    
$a=$this->mysqli->query("SELECT id_Venta FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(ventas.control_estado, '$.picking')), '$.id')) = '$idCliente';")->num_rows;
$b=$this->mysqli->query("SELECT id_Venta FROM ventas WHERE JSON_UNQUOTE(JSON_EXTRACT(JSON_UNQUOTE(JSON_EXTRACT(ventas.control_estado, '$.enviados')), '$.id')) = '$idCliente' AND (fecha >= CURDATE() - INTERVAL 30 DAY);")->num_rows;
$paso["paso"]="paso"; $paso["total"]=$a; $paso["mes"]=$b;
return json_encode($paso);
// SELECT JSON_UNQUOTE(JSON_EXTRACT(ventas.control_estado,'$.verificacion')) AS uno FROM ventas;
// SELECT JSON_UNQUOTE(JSON_EXTRACT(ventas.control_estado,'$.verificacion')) FROM ventas WHERE;
}
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
public function conteoCarritoGeneral($idCliente,$idVendedor,$idBodega){
if($idVendedor=="0"){$ab=$this->mysqli->query("SELECT estado FROM carrito WHERE id_usuario='$idCliente' AND id_bodega='$idBodega';");}else{
$ab=$this->mysqli->query("SELECT estado FROM carrito WHERE id_usuario='$idVendedor' AND id_cliente='$idCliente' AND id_bodega='$idBodega';");}
// $ab=$this->mysqli->query("SELECT estado FROM carrito WHERE id_usuario='$idCliente' AND id_bodega='6';"); 
if($ab->num_rows==0){$a=0;$b=0;}else{ while($fila=$ab->fetch_assoc()){$abc[]=$fila;} $abc1=$this->obtenerGeneAA($abc); $a=$abc1["general"]; $b=$abc1["noGeneral"]; }
$c=$this->mysqli->query("SELECT id_chat FROM chat WHERE (idReceptor='$idCliente') AND visto='0'; ")->num_rows;
$paso["general"]=$a; $paso["inmediato"]=$b; $paso["chat"]=$c; return json_encode($paso);}

public function obtenerGeneAA($info){$general=0; $noGeneral=0; 
for($i=0;$i<sizeof($info);$i++){if($info[$i]["estado"]=="general"){$general++;}else{$noGeneral++;}} $res["general"]=$general; $res["noGeneral"]=$noGeneral; return $res; }
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
public function consultaEsperaCarteraHistorialLimite($idCliente,$co,$pagina,$busqueda,$ancho22,$idVendedor,$idBodega){ $lim=$pagina; $ancho=$ancho22; $limite=($lim-1)*$ancho;  $paso["paso"]="no paso";  
$ccbase=" ORDER BY fecha DESC LIMIT $limite,$ancho;";    
$ccbase2=" AND (clave_venta LIKE '%$busqueda%' OR fecha LIKE '%$busqueda%' OR metodo_pago LIKE '%$busqueda%' OR direccion_alternativa LIKE '%$busqueda%')";
$cc1="SELECT * FROM ventas WHERE (id_vendedor='$idVendedor' AND id_usuario='$idCliente'  AND id_bodega='$idBodega' AND metodo_pago LIKE '%credito%')"; 
$cc2="SELECT * FROM ventas WHERE (id_vendedor='$idVendedor' AND id_usuario='$idCliente'  AND id_bodega='$idBodega' AND estado='enviados')";
$cc3="SELECT * FROM ventas WHERE (id_vendedor='$idVendedor' AND id_usuario='$idCliente'  AND id_bodega='$idBodega' AND JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.estado_mensajero'))!='entregado')";
$cc4="SELECT * FROM ventas WHERE (id_vendedor='$idVendedor' AND id_usuario='$idCliente'  AND id_bodega='$idBodega') AND (aux LIKE '%\"estadoDevolucion\":\"activo\"%' OR (venta LIKE '%\"estadoDevolucion\":\"activo\"%'))";
$cc5="SELECT * FROM ventas WHERE (id_vendedor='$idVendedor' AND id_usuario='$idCliente' AND id_bodega='$idBodega') ";
if($busqueda==""){if($co=="general"){$c=$cc5.$ccbase;} if($co=="devuelto"){$c=$cc4.$ccbase;} if($co=="cartera"){$c=$cc1.$ccbase;} if($co=="historial"){$c=$cc2.$ccbase;}if($co=="espera"){$c=$cc3.$ccbase;}}else{
if($co=="general"){$co=$cc5.$ccbase2.$ccbase;} if($co=="devuelto"){$c=$cc4.$ccbase2.$ccbase;} if($co=="cartera"){$c=$cc1.$ccbase2.$ccbase;} if($co=="historial"){$c=$cc2.$ccbase2.$ccbase;} if($co=="espera"){$c=$cc3.$ccbase2.$ccbase;}}
//echo $c;
$a=$this->mysqli->query($c); if($a->num_rows!=0){ while($fila=$a->fetch_assoc()){$aA[]=$fila;} 
$paso["paso"]="paso";  $paso["lista"]=$this->consultaGECA($aA); } return json_encode($paso); }

public function consulta_auxiliar_cartera_historial_espera($idCliente,$co,$idVendedor,$idBodega){
if($co=="cartera"){$c="SELECT id_venta FROM ventas WHERE id_vendedor='$idVendedor' AND  id_usuario='$idCliente'  AND id_bodega='$idBodega' AND metodo_pago LIKE '%credito%' ORDER BY fecha DESC;";}
if($co=="historial"){$c="SELECT id_venta FROM ventas WHERE id_vendedor='$idVendedor' AND  id_usuario='$idCliente'  AND id_bodega='$idBodega' AND estado='enviados' ORDER BY fecha DESC;";}
if($co=="espera"){$c="SELECT id_venta FROM ventas WHERE id_vendedor='$idVendedor' AND  id_usuario='$idCliente'  AND id_bodega='$idBodega' AND estado!='enviados' AND JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.estado_mensajero'))!='entregado' AND (metodo_pago NOT LIKE '%credito%') ORDER BY fecha DESC;";}
if($co=="general"){$c="SELECT id_venta FROM ventas WHERE id_vendedor='$idVendedor' AND  id_usuario='$idCliente' AND id_bodega='$idBodega' ;";}
$a=$this->mysqli->query($c)->num_rows; $res["total"]=$a; if($co=="cartera"){$res["adeudo"]=$this->obtener_total_adeudo($idCliente,$idBodega);}
return json_encode($res);}
// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------

public function obtener_total_adeudo($id,$idBodega){ $totalVentas=0;
$vvAux=$this->mysqli->query("SELECT * FROM ventas WHERE (id_usuario='$id'  AND id_bodega='$idBodega' AND metodo_pago LIKE '%credito%');");
if($vvAux->num_rows==0){return "0";}else{ while($fila=$vvAux->fetch_assoc()){$venta[]=$fila;} 
$idVenta="("; for($i=0;$i<sizeof($venta);$i++){ $idVenta.="id_venta=".$venta[$i]["id_venta"]." OR "; } $idVenta=substr($idVenta,0,(strlen($idVenta)-4)).")";
$totalPagos=$this->mysqli->query("SELECT SUM(monto) AS tot FROM pagos WHERE ".$idVenta." AND estado_pago='verificado';")->fetch_assoc();
for($t=0;$t<sizeof($venta);$t++){$ventaAux=json_decode($venta[$t]["venta"],true);for($t1=0;$t1<sizeof($ventaAux);$t1++){
if($ventaAux[$t1]["estEli"]=="0"){$totalVentas=$totalVentas+($ventaAux[$t1]["cant"]*$ventaAux[$t1]["costo"]);} }    }
if($totalPagos["tot"]!=NULL){$pagosTotal=$totalPagos["tot"]; return ($totalVentas-$pagosTotal);}else{ return $totalVentas;}}  }

public function usuario_id_general($id){$paso["paso"]="no paso"; $a=$this->mysqli->query("SELECT * FROM usuarios WHERE id_usuario=$id;");
if($a->num_rows!=0){$usu=$a->fetch_assoc(); $tipoCliente=$usu["tipo_cliente"]; $paso["paso"]="paso";
$usu["totalComprasGeneral"]="0"; $usu["adeudoTotalGeneral"]="0";  $usu["totalComprasGeneral11"]="0";
$usu["adeudoTotalGeneral"]=$this->obtener_total_adeudo($id);
$ven=$this->mysqli->query("SELECT SUM(total) AS tot FROM ventas WHERE id_usuario=$id;")->fetch_assoc();
$ttt=$this->mysqli->query("SELECT id_usuario FROM ventas WHERE id_usuario=$id;")->num_rows;
if($ven["tot"]!=NULL){$usu["totalComprasGeneral"]=intval($ven["tot"]);} $usu["totalComprasGeneral11"]=$ttt;
if($usu["favoritos"]!="[]" && $usu["favoritos"]!="null"&& $usu["favoritos"]!=""){$guardados=json_decode($usu["favoritos"],true); 
$carrito=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$id';");
if($carrito->num_rows!=0){while($fi=$carrito->fetch_assoc()){$car1[]=$fi;}}else{$car1=NULL;}
$usu["favoritos"]=json_encode($this->consultaGECAUS($guardados,$car1,$tipoCliente));} $paso["info"]=$usu; } return json_encode($paso);}

public function consultaGECAUS($guardados,$car1,$tipoCliente){ $idGeneral="";
for($i1=0;$i1<sizeof($guardados);$i1++){$idGeneral.="id =".$guardados[$i1]["id"]." 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." ;");  if($sel2->num_rows==0){$aA=[];}else{while($fila=$sel2->fetch_assoc()){$aA[]=$fila;}}
for($i=0;$i<sizeof($guardados);$i++){ $guardados[$i]["pPar"]=0; $guardados[$i]["tipoCliente"]=$tipoCliente; $guardados[$i]["infoProducto"]="vacio";
$guardados[$i]["guardado"]="si"; $guardados[$i]["carritoInterno"]="no"; $guardados[$i]["cantidadInterno"]=0; $guardados[$i]["idCarrito"]=0;
if($car1!=NULL){$tam_car1=sizeof($car1); for($ij=0; $ij <$tam_car1 ; $ij++){if($car1[$ij]["id_producto"]==$guardados[$i]["id"]){$guardados[$i]["carritoInterno"]="si";
$guardados[$i]["cantidadInterno"]=$car1[$ij]["cantidad"]; $guardados[$i]["idCarrito"]=$car1[$ij]["id_carrito"]; }}}
$tt=$this->obtPROUS($aA,$guardados[$i]["id"],$tipoCliente); if($tt!="vacio"){$tt=json_decode($tt,true); $guardados[$i]["pPar"]=$tt["pPar"]; $guardados[$i]["infoProducto"]=$tt["infoProducto"]; }
} return $guardados; }

public function obtPROUS($info,$id,$tipoCliente){for($i=0;$i<sizeof($info);$i++){if($id==$info[$i]["id"]){$res=$info[$i];}} if(isset($res)){
$palto=new Consulta(); $auxPrGene=$palto->obtenerPrecioGeneral(json_decode($res["precios"],true),json_decode($res["precios_promocion"],true),strval($res["estado_promocion"]),$tipoCliente);
$res["pPar"]=$auxPrGene["precio"]; $res["estado_promocion"]=$auxPrGene["estadoPromocion"];  $res1["infoProducto"]=$res; $res1["pPar"]=$res["pPar"];
return json_encode($res1); } return "vacio";}


// --------------------------------------------------------------------
// --------------------------------------------------------------------
// --------------------------------------------------------------------
public function consultaEsperaCarteraHistorial($idCliente,$co){$paso["paso"]="no paso";
if($co=="cartera"){$c="SELECT * FROM ventas WHERE  id_usuario='$idCliente'  AND id_bodega='6' AND metodo_pago LIKE '%credito%' ORDER BY fecha DESC;";}
if($co=="historial"){$c="SELECT * FROM ventas WHERE id_usuario='$idCliente'  AND id_bodega='6' AND estado='enviados' ORDER BY fecha DESC;";}
if($co=="espera"){$c="SELECT * FROM ventas WHERE id_usuario='$idCliente'  AND id_bodega='6' AND estado!='enviados' AND JSON_UNQUOTE(JSON_EXTRACT(ventas.mensajeria,'$.estado_mensajero'))!='entregado' AND (metodo_pago NOT LIKE '%credito%') ORDER BY fecha DESC;";}
$a=$this->mysqli->query($c); if($a->num_rows!=0){ while($fila=$a->fetch_assoc()){$aA[]=$fila;} 
$paso["paso"]="paso";  $paso["lista"]=$this->consultaGECA($aA); } return json_encode($paso); }


public function consultaGECA($v){ $conteo=0; $coo1=0; $coo2=0; $coo3=0;
for($p1=0;$p1<sizeof($v);$p1++){ $idCli[$coo1]=$v[$p1]["id_usuario"]; $idVen[$coo2]=$v[$p1]["id_vendedor"]; $coo1++; $coo2++;
$venta=json_decode($v[$p1]["venta"],true); $articulos=0; $cantidad=0; $relCantidad=0; $idVenta[$coo3]=$v[$p1]["id_venta"]; $coo3++;
for($p2=0;$p2<sizeof($venta);$p2++){ $identificacion[$conteo]=$venta[$p2]["idpr"]; $conteo++;    
if($venta[$p2]["estEli"]==0){$cantidad+=$venta[$p2]["cant"]; $relCantidad+=$venta[$p2]["rel"]; $articulos++; }  }   
$vAux[$p1]["productosTotal"]=$cantidad; $vAux[$p1]["relProductos"]=$relCantidad; $vAux[$p1]["articulos"]=$articulos; }
$venCli=array_values(array_unique(array_merge($idCli,$idVen))); $idGU=""; $idVV="";
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;}
for($vi1=0;$vi1<sizeof($idVenta);$vi1++){$idVV.="id_venta = ".$idVenta[$vi1]." OR ";  } $idVV=substr($idVV,0,-4);
$coPa="SELECT * FROM pagos WHERE ".$idVV." ;";
$vv1=$this->mysqli->query($coPa);if($vv1->num_rows!=0){ while($fila=$vv1->fetch_assoc()){$vVV[]=$fila;}}else{$vVV=[];}
$identificacion=array_values(array_unique($identificacion)); $idGeneral="";
for($i=0;$i<sizeof($identificacion);$i++){ $idGeneral.="id =".$identificacion[$i]." OR "; } $idGeneral=substr($idGeneral,0,-4);
$a1="SELECT productos.*, 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 WHERE ";
$sel2=$this->mysqli->query($a1.$a2.$a3.$a4.$a5.$a6.$idGeneral." ;"); if($sel2->num_rows==0){$aA=[];}else{while($fila=$sel2->fetch_assoc()){$aA[]=$fila;}}
for($q1=0;$q1<sizeof($v);$q1++){$venta1=json_decode($v[$q1]["venta"],true); $tam=sizeof($venta1); if($tam>=30){$tam=30;}  for($q2=0;$q2<$tam;$q2++){
$venta1[$q2]["infoProducto"]=$this->obProGen($aA,$venta1[$q2]["idpr"],"id","vacio");}  $v[$q1]["venta"]=json_encode($venta1); 
if($v[$q1]["id_vendedor"]==0){$vAux[$q1]["vendedor"]="tienda Online";}else{$vAux[$q1]["vendedor"]=$this->obProGen($uUU,$v[$q1]["id_vendedor"],"id_usuario","tienda Online");}
$vAux[$q1]["cliente"]=$this->obProGen($uUU,$v[$q1]["id_usuario"],"id_usuario",""); 
$vAux[$q1]["pagos"]=$this->obPagGen($v[$q1]["id_venta"],$vVV); }
for($f=0;$f<sizeof($v);$f++){ $paso[$f]["paso"]="paso"; $paso[$f]["info"]=$v[$f]; $paso[$f]["productosTotal"]=$vAux[$f]["productosTotal"];
$paso[$f]["relProductos"]=$vAux[$f]["relProductos"]; $paso[$f]["articulos"]=$vAux[$f]["articulos"];
$paso[$f]["cliente"]=$vAux[$f]["cliente"]; $paso[$f]["vendedor"]=$vAux[$f]["vendedor"]; $paso[$f]["pagos"]=$vAux[$f]["pagos"];  
} return $paso; }

public function obPagGen($idVenta,$info){$respuesta="null"; $conteo=0; if(sizeof($info)!=0){
for($i=0;$i<sizeof($info);$i++){if($idVenta==$info[$i]["id_venta"]){$respuesta1[$conteo]=$info[$i]; $conteo++;}}} 
if($conteo!=0){return json_encode($respuesta1);} return $respuesta;}

public function obProGen($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 productosPromocionNuevos($limite,$ancho,$idCliente,$marca,$idBodega,$idEmpresa){
$axx =new Consulta(); $axx1=$axx->arregloConsultaProducto($idBodega); $ssttoo=new Consulta();
if($marca!="vacio"){
$fil11=" WHERE productos.id_empresa='$idEmpresa' AND (productos.fecha >= CURDATE() - INTERVAL 14 DAY OR JSON_UNQUOTE(JSON_EXTRACT(productos.estado_promocion,'$.active')) ='1') AND (JSON_UNQUOTE(JSON_EXTRACT(productos.estado, '$.candado')) = '1')".$this->obtenerMarcaOnly($marca);    
$fil22=" ORDER BY categoria ASC LIMIT $limite,$ancho;"; $cc6=$axx1["general"].$fil11." ".$axx1["adicional"].$fil22; 
}else{
$fil11=" WHERE productos.id_empresa='$idEmpresa' AND (productos.fecha >= CURDATE() - INTERVAL 14 DAY OR JSON_UNQUOTE(JSON_EXTRACT(productos.estado_promocion,'$.active'))='1') AND (JSON_UNQUOTE(JSON_EXTRACT(productos.estado, '$.candado')) = '1') ";    
$fil22=" ORDER BY categoria ASC LIMIT $limite,$ancho;"; $cc6=$axx1["general"].$fil11.$axx1["adicional"].$fil22;}
$a = $this->mysqli->query($cc6); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$res[]=$f;} return $ssttoo->agregarStock($this->productosGeneAccion($res,$idCliente,"0",$idBodega,$idEmpresa));}return NULL;}


public function productosCarga($limite,$ancho,$vista,$idCliente,$marca,$idVendedor,$idBodega,$idEmpresa){
$axx =new Consulta(); $axx1=$axx->arregloConsultaProducto($idBodega); $ssttoo=new Consulta();
if($marca!="vacio"){ $fil11=" WHERE productos.id_empresa='$idEmpresa' AND productos.candado='1' ".$this->obtenerMarcaOnly($marca);
$fil22=" ORDER BY categoria ASC LIMIT $limite,$ancho;"; $cc6=$axx1["general"].$fil11." ".$axx1["adicional"].$fil22;    
}else{
$fil11=" WHERE productos.id_empresa='$idEmpresa' AND productos.candado='1' "; $fil22=" ORDER BY categoria ASC LIMIT $limite,$ancho;";    
$cc6=$axx1["general"].$fil11.$axx1["adicional"].$fil22;}
$a = $this->mysqli->query($cc6); if($a->num_rows!=0){ while($f=$a->fetch_assoc()){$res[]=$f;} return $ssttoo->agregarStock($this->productosGeneAccion($res,$idCliente,$idVendedor,$idBodega,$idEmpresa));}return NULL;}	

public function obtenerMarcaOnly($marca){ $m=json_decode($marca,true);  $r=" AND (";
for($i=0;$i<sizeof($m);$i++){ $r.="JSON_UNQUOTE(JSON_EXTRACT(productos.datos_productos,'$.id_marca'))=".$m[$i]." AND ";  } 
$r=substr($r,0,(strlen($r)-4)).") "; return $r; }

public function productosGeneAccion($res,$idCliente,$idVendedor,$idBodega,$idEmpresa){
if($idVendedor=="0"){ $ca=$this->mysqli->query("SELECT id_producto, id_usuario, cantidad, id_carrito FROM carrito WHERE id_empresa='$idEmpresa' AND 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_empresa='$idEmpresa' AND id_usuario='$idVendedor' AND id_cliente='$idCliente' AND estado='general' AND id_bodega='$idBodega';"); }
$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++){ $palta= new Consulta();
$res[$i]["tipoCliente"]=$s1["tipo_cliente"]; if(!isset($s1["perfil"])){$res[$i]["perfil"]="Cliente";}else{ $res[$i]["perfil"]=$s1["perfil"];}
$auxPrGene=$palta->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 modeloMarcaCategoria($idEmpresa){
$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_marca='$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_modelo='$idEmpresa' GROUP BY c.id_modelo;");    
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;}}
$res["marcas"]=$ma; $res["modelos"]=$mo; $res["categorias"]=$ca; return json_encode($res);}


public function ingreso_carrito($idpro,$idusu,$cantidad,$pu,$estado,$tipoCliente,$idCliente,$idBodega,$stockNegativo,$idEmpresa){
$a=new CarritoGeneral(); return $a->ingresoCarritoMasivo($idpro,$idusu,$idCliente,$cantidad,$pu,$estado,$idBodega,$tipoCliente,$stockNegativo,$idEmpresa);}

public function actualizar_cantidad($idCarrito,$cantidad,$idProducto,$tipoCliente,$idCliente,$idBodega,$stockNegativo){
$a=new CarritoGeneral(); return $a->actualizarCantidadMasivo($idCarrito,$cantidad,$idProducto,$idBodega,$tipoCliente,$stockNegativo);}

public function filtros_general($filtros,$id,$tipoCliente,$idVendedor,$idBodega,$idEmpresa){ $a=new FiltroBuscadorGeneral(); $a1=$a->filtros_general($filtros,$idBodega,$tipoCliente,$idEmpresa); $a1=json_decode($a1,true);
if($a1["paso"]=="paso"){ $a1["lista"]=$this->productosGeneAccion($a1["lista"],$id,$idVendedor,$idBodega,$idEmpresa);} return json_encode($a1); }
// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
public function agregar_favorito($idCliente,$idPro,$valorCambio){ $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT favoritos FROM usuarios WHERE id_usuario=$idCliente;")->fetch_assoc(); $gusta=$a["favoritos"];
$gustaAccion= array("id" => $idPro);if($gusta=="" || $gusta=="[]" || $gusta=="null"){
if($valorCambio!="false"){$gusta33[0]=$gustaAccion; $gusta22=json_encode($gusta33);}}else{$gu=json_decode($gusta,true); 
$tamGu=sizeof($gu); if($valorCambio=="false"){for($i=0;$i<sizeof($gu);$i++){if($gu[$i]["id"]==$idPro){unset($gu[$i]);}}
if(!empty($gu)){$conteo=0; for($jk=0;$jk<$tamGu;$jk++){if(isset($gu[$jk]["id"])){$gusta33[$conteo]=$gu[$jk];$conteo++;}}  
$gusta22=json_encode($gusta33); }else{$gusta22="[]";}}else{$gu[sizeof($gu)]=$gustaAccion; $gusta22=json_encode($gu);}}
$zzb=$this->mysqli->query("UPDATE usuarios SET favoritos='$gusta22' WHERE id_usuario='$idCliente';"); 
if($zzb){$paso["paso"]="paso"; $paso["conteo"]="0";} return json_encode($paso);}

public function agregar_aplicacion($idPro,$modelo,$car){ $a=$this->mysqli->query("SELECT aplicaciones FROM productos WHERE id=$idPro;"); 
$a1=$a->fetch_assoc();  $app=$a1["aplicaciones"];$res=NULL;
if($app=="" || $app=="[]" || $app=="null"){ $app222[0]=array('modelo'=>$modelo,'car'=>$car,'perfil'=>1); $app1=json_encode($app222);
$b=$this->mysqli->query("UPDATE productos SET aplicaciones='$app1' WHERE id=$idPro;"); if($b){$res=$app1;}}else{$app2=json_decode($app,true);  
$sm=0; for($i=0;$i<sizeof($app2);$i++){if(strtolower(trim($app2[$i]["modelo"]." ".$app2[$i]["car"]))==strtolower(trim($modelo." ".$car))){$sm++;}}
if($sm==0){ $app2[sizeof($app2)]=array('modelo'=>$modelo,'car'=>$car,'perfil'=>1); $app22=json_encode($app2);
$c=$this->mysqli->query("UPDATE productos SET aplicaciones='$app22' WHERE id=$idPro;"); if($c){$res=$app22;}  }else{$res=1;}} return $res; }
// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
public function consulta_carrito($idCliente,$control,$idVendedor,$idBodega){$a=new CarritoGeneral(); 
if($idVendedor==0){ return $a->consultaCarritoMasivo(0,$idCliente,$control,$idBodega);}else{
return $a->consultaCarritoMasivo($idCliente,$idVendedor,$control,$idBodega);}}

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 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 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;}
// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
public function eliminar_producto($idCarrito,$tipoCliente){$a= new CarritoGeneral(); return $a->eliminarProductoMasivo($idCarrito,$tipoCliente);}

public function eliminar_total($idUsuario,$control,$tipoCliente,$idVendedor,$idBodega){ $a=new CarritoGeneral();
if($idVendedor!="0"){ return $a->eliminarTotalMasivo($idVendedor,$idUsuario,$control,$idBodega,$tipoCliente);}else{
return $a->eliminarTotalMasivo($idUsuario,"0",$control,$idBodega,$tipoCliente);}}

public function direccionAlternativa($idCliente){
$a=$this->mysqli->query("SELECT direcciones_alternativas, empresa, usuario FROM usuarios WHERE id_usuario=$idCliente; ");
$res1=$a->num_rows; if($res1!=0){return $a->fetch_assoc();} return NULL;}

public function informacionMetodoPago($idCliente,$control,$idVendedor,$idBodega){
if($idVendedor!="0"){$a=$this->mysqli->query("SELECT SUM(cantidad*precio_unitario) as suma FROM carrito WHERE id_cliente='$idCliente' AND id_usuario=$idVendedor AND estado='$control' AND id_bodega='$idBodega';")->fetch_assoc(); }else{
$a=$this->mysqli->query("SELECT SUM(cantidad*precio_unitario) as suma FROM carrito WHERE id_usuario=$idCliente AND estado='$control' AND id_bodega='$idBodega';")->fetch_assoc(); }
$total=0;  if(is_numeric($a["suma"])){$total=$a["suma"];} $res["total"]=$total;
$iva="$".number_format(round($total*0.19),0,".",".");  $subtotal="$".number_format(round($total*0.81),0,".","."); $totalAdic="$".number_format($total,0,".",".");
$res["iva"]=$iva; $res["subtotal"]=$subtotal; $res["totalAdic"]=$totalAdic;
$b=$this->mysqli->query("SELECT credito, vendedor, saldoafavor FROM usuarios WHERE id_usuario=$idCliente;")->fetch_assoc(); if($b!=NULL){ $res["saldo"]=$b["saldoafavor"];
$cp=json_decode($b["credito"],true); $res["monto_autorizado"]=$cp["cupo"]; $res["resta_monto"]=$cp["restaAux"]; $res["dias_credito"]=$cp["dias"];
$cv=json_decode($b["vendedor"],true); if($res["monto_autorizado"]>0){$res["autorizacion_monto"]="autorizado";}else{$res["autorizacion_monto"]="no autorizado";}
$res["porcentaje_pago"]=$cv["comision"]; $res["tarjetas"]="vacio";} return json_encode($res);}

public function metodo_pago_caja($clave,$id_usuario,$control,$direccion,$idBodega,$idVendedor,$idEmpresa){  $paso["paso"]="no paso"; $hoy=$this->hoy();
$es=$this->mysqli->query("SELECT estadoCaja FROM carrito WHERE id_empresa='$idEmpresa' AND id_usuario=$id_usuario AND estado='$control' AND id_bodega='6';")->fetch_assoc(); $estado=$es["estadoCaja"];
if($estado=="pendiente"){$paso["paso"]="pendiente";}else{$r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega);
$venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"];  $total=$r["total"]; $clave22=$this->maximo();
$aux=json_encode(array('verificacionDireccion' =>"verificado" ,"estadoTransaccion"=>"verificado", "pausa"=>"0", "tipoPedido"=>$control));
$consulta="INSERT INTO ventas(id_empresa,id_bodega,id_vendedor,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,fecha,clave_local)VALUES('$idEmpresa','$idVendedor','$venta','$id_usuario','$tipo_venta_control','caja','$direccion','$aux','$clave22','$hoy','$clave');";
$resConsulta=$this->mysqli->query($consulta);
if($resConsulta){$res1=$this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega); 
if($res1){$estadoAA["claveVenta"]=$cl; $estadoAA["paso"]="paso"; $estadoAA["claveLocal"]=$clave; $paso["auxCP"]=$this->agregarCarPro($venta);  $estadoAA["control"]=$tipo_venta_control;return json_encode($estadoAA);}}} return json_encode($paso);}

public function auxEliminarCarr($idCliente,$idVendedor,$estado,$idBodega){
if($idVendedor=="0"){$aux11=$this->mysqli->query("DELETE FROM carrito WHERE id_usuario='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';");}else{
$aux11=$this->mysqli->query("DELETE FROM carrito WHERE id_usuario='$idVendedor' AND id_cliente='$idCliente' AND estado='$estado' AND id_bodega='$idBodega';");}
return $aux11;}


public function pCarrito($idCliente,$control117,$idVendedor,$idBodega){ $control=$control117;
if($idVendedor=="0"){$carrito=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$idCliente' AND estado='$control117' AND id_bodega='$idBodega';"); }else{
$carrito=$this->mysqli->query("SELECT * FROM carrito WHERE id_usuario='$idVendedor' AND id_cliente='$idCliente' AND estado='$control117' AND id_bodega='$idBodega';");}

$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]["id_carrito"]=$carrito1[$i]["id_carrito"];    
$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 metodo_pago_transferencia_im($ruta22,$id_usuario,$control,$direccion,$idVendedor,$idBodega,$idEmpresa){ $paso["paso"]="no paso"; $hoy=$this->hoy();
$r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega); if($r!=NULL){$paso["paso"]="paso";   
$venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"]; $cl=$this->maximo();
$paso["claveVenta"]=$cl; $paso["control"]=$tipo_venta_control; $l=json_decode($ruta22,true);
$aux=json_encode(array('verificacionDireccion' =>"no verificado" ,"estadoTransaccion"=>"no verificado", "pausa"=>"0", "tipoPedido"=>$control));
$imagenRespaldo="dependencias/img/general/imagen_base_productos.png"; $ruta1=["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));
$con="INSERT INTO ventas(id_empresa,id_vendedor,id_bodega,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,archivos,total,fecha) ";
$con2="VALUES('$idEmpresa','$idVendedor','$idBodega','$venta','$id_usuario','$tipo_venta_control','transferencia','$direccion','$aux','$cl','$rutaGeneral','$total','$hoy')"; $plc=$this->mysqli->query($con.$con2); 
if($plc){$res1=$this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega); $paso["auxCP"]=$this->agregarCarPro($venta);  }
if(!$plc){$paso["paso"]="no paso";}} return json_encode($paso);}

public function maximo(){
$maximo = $this->mysqli->query("SELECT clave_venta FROM ventas WHERE tipo_venta_control!=15 AND 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 maximoPago(){
$maximo = $this->mysqli->query("SELECT codigo_abono FROM pagos ORDER BY id_pago DESC LIMIT 0,1;")->fetch_assoc(); if($maximo["codigo_abono"]==NULL){$maximo1=0;}else{ $maximo1 = $maximo['codigo_abono'];}
$clAux = $maximo1 + 1; return $clAux; }

public function metodo_pago_recoger($id_usuario,$control,$direccion,$metodo_pago,$idVendedor,$idBodega,$idEmpresa){ $hoy=$this->hoy();
$r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega); $paso["paso"]="no paso";
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;
if($metodo_pago=="recoger"){$verificacionDireccion="verificado";}else{$verificacionDireccion="no verificado";}
$aux=json_encode(array('verificacionDireccion'=>$verificacionDireccion, 'estadoTransaccion'=>"no verificado", "pausa"=>"0", "tipoPedido"=>$control)); $info["clave_venta"]=$cl;
$con1122="INSERT INTO ventas(id_empresa,id_vendedor, id_bodega,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,total,fecha) ";
$con2222="VALUES('$idEmpresa','$idVendedor','$idBodega','$venta','$id_usuario','$tipo_venta_control','$metodo_pago','$direccion','$aux','$cl','$total','$hoy');";
$plc=$this->mysqli->query($con1122.$con2222); if($plc){$res1=$this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega);   }
if($plc){$paso["paso"]="paso"; $paso["auxCP"]=$this->agregarCarPro($venta); } } return json_encode($paso);}

public function metodo_pago_credito_adicional($id_usuario,$control,$direccion,$diasCredito,$idVendedor,$idBodega,$idEmpresa){
$paso["paso"]="no paso"; $r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega); if($r!=NULL){
$cl=$this->maximo();  $venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"];  $paso["claveVenta"]=$cl;
$hoy = date("Y-m-d H:i:s");	 $suma_dias="+ ".$diasCredito." days"; $fecha_venc =date("Y-m-d H:i:s",strtotime($hoy.$suma_dias));
$aux=json_encode(array('verificacionDireccion'=>"no verificado", 'estadoTransaccion' => "no verificado", "pausa"=>"0", "tipoPedido"=>$control));
$credito=json_encode(array('fecha'=>strval($fecha_venc), 'dias'=>strval($diasCredito)));
$con1="INSERT INTO ventas(id_empresa,id_vendedor,id_bodega,venta,id_usuario,tipo_venta_control,metodo_pago,direccion_alternativa,aux,clave_venta,credito,total,fecha) ";
$con2="VALUES('$idEmpresa','$idVendedor','$idBodega','$venta','$id_usuario','$tipo_venta_control','credito','$direccion','$aux','$cl','$credito','$total','$hoy')";
$lo=$this->mysqli->query($con1.$con2); if($lo){$res1=$this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega); }
if($lo){$paso["paso"]="paso"; $paso["auxCP"]=$this->agregarCarPro($venta); $paso["info"]=$this->restarCantidadCredito($total,$id_usuario,"uno");}} return json_encode($paso); }

public function restarCantidadCredito($total,$idCliente,$control){$info="[]";
$a=$this->mysqli->query("SELECT credito FROM usuarios WHERE id_usuario='$idCliente';")->fetch_assoc();
if($a["credito"]!=NULL){$credito=json_decode($a["credito"],true);  
if($control=="cero"){$credito["restaAux"]="0"; $credito["resta"]="0";}else{$credito["restaAux"]=$credito["restaAux"]-$total; $credito["resta"]=$credito["resta"]-$total; } 
$creditoRespuesta=json_encode($credito); $ap=$this->mysqli->query("UPDATE usuarios SET credito='$creditoRespuesta' WHERE id_usuario='$idCliente';");
if($ap){$info=$creditoRespuesta; }} return $info; }

public function metodo_pago_credito_transferencia_general($ruta,$id_usuario,$control,$direccion,$diasCredito,$montoPagoAgregado,$idVendedor,$idBodega,$idEmpresa){
$r=$this->pCarrito($id_usuario,$control,$idVendedor,$idBodega); $paso["paso"]="no paso"; $hoy22=$this->hoy();
if($r!=NULL){ $cl=$this->maximo(); $venta=$r["venta"]; $tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"];  $paso["control"]=$tipo_venta_control; $paso["claveVenta"]=$cl;
$vencimiento=date("Y-m-d H:i:s",strtotime(date("Y-m-d H:i:s")."+ ".$diasCredito." days"));
$aux=json_encode(array('verificacionDireccion'=>"no verificado", 'estadoTransaccion' => "no verificado","pausa"=>"0", "tipoPedido"=>$control));
$credito=json_encode(array('fecha'=>strval($vencimiento), 'dias'=>strval($diasCredito)));
$con11="INSERT INTO ventas(id_empresa,id_vendedor,id_bodega,venta,id_usuario,clave_venta,tipo_venta_control,metodo_pago,direccion_alternativa,aux,credito,total,fecha) ";
$con22="VALUES('$idEmpresa','$idVendedor','$idBodega','$venta','$id_usuario','$cl','$tipo_venta_control','credito transferencia','$direccion','$aux','$credito','$total','$hoy22');"; $lrr=$this->mysqli->query($con11.$con22); 
if($lrr){$lrr1=$this->auxEliminarCarr($id_usuario,$idVendedor,$control,$idBodega); if($lrr1){ $paso["paso"]="paso"; $paso["auxCP"]=$this->agregarCarPro($venta);
$act=$this->mysqli->query("SELECT id_venta FROM ventas WHERE clave_venta='$cl' AND id_usuario='$id_usuario';")->fetch_assoc();
$cod1=$this->maximoPago(); $info["idVenta"]=$cl; $idVenta=$act["id_venta"]; $rutaBase=array();
if($ruta!="vacio"){ $json=json_decode($ruta,true); for($i=0;$i<sizeof($json);$i++){ $aux=imagenAdic11($json[$i]["base64"],"ventas/transferencia",$json[$i]["ext"],"comprobante_transferencia_abono"); if($aux!=NULL){$rutaBase[]=$aux;}}}
//if($ruta!="vacio"){$rutaConto=imagenAdic11($ruta,"ventas/transferencia","png","comprobante_transferencia_abono");if($rutaConto!=NULL){$rutaBase=$rutaConto;}}
$archivos=json_encode(array('transferencia' => $rutaBase)); $pag1="INSERT INTO pagos(monto,id_venta,metodo_pago,codigo_abono,archivos,estado_pago,fecha)";
$pag2="VALUES('$montoPagoAgregado','$idVenta','transferencia','$cod1','$archivos','requerido','$hoy22');"; $pp=$this->mysqli->query($pag1.$pag2);
if($pp){$paso["info"]=$this->restarCantidadCredito($total,$id_usuario,"cero");    
}}}} return json_encode($paso); }

public function metodo_pago_credito_efectivo($idCliente,$control,$direccion,$diasCredito,$montoPagoAgregado,$idBodega,$idVendedor,$idEmpresa){$paso["paso"]="no paso";
$r=$this->pCarrito($idCliente,$control,$idVendedor,$idBodega); $hoy22=$this->hoy();   if($r!=NULL){ $cl=$this->maximo(); $venta=$r["venta"]; 
$tipo_venta_control=$r["tipo_venta_control"]; $total=$r["total"];  $paso["control"]=$tipo_venta_control; $paso["claveVenta"]=$cl;
$vencimiento=date("Y-m-d H:i:s",strtotime(date("Y-m-d H:i:s")."+ ".$diasCredito." days"));
$aux=json_encode(array('verificacionDireccion'=>"no verificado", 'estadoTransaccion' => "no verificado","pausa"=>"0", "tipoPedido"=>$control));
$credito=json_encode(array('fecha'=>strval($vencimiento), 'dias'=>strval($diasCredito)));
$con11="INSERT INTO ventas(id_empresa,id_bodega,venta,id_usuario,clave_venta,tipo_venta_control,metodo_pago,direccion_alternativa,aux,credito,total,fecha) ";
$con22="VALUES ('$idEmpresa','$idBodega','$venta','$idCliente','$cl','$tipo_venta_control','credito efectivo','$direccion','$aux','$credito','$total','$hoy22');"; $act=$this->mysqli->query($con11.$con22); 
if($act){ $act2=$this->auxEliminarCarr($idCliente,$idVendedor,$control,$idBodega); if($act2){ $cod=$this->maximoPago(); 
$act=$this->mysqli->query("SELECT id_venta FROM ventas WHERE clave_venta='$cl' AND id_usuario='$idCliente';")->fetch_assoc(); $idVenta=$act["id_venta"]; $info["idVenta"]=$idVenta;
$act3=$this->mysqli->query("INSERT INTO pagos(monto,id_venta,metodo_pago,codigo_abono,estado_pago,fecha) VALUES ('$montoPagoAgregado','$idVenta','efectivo','$cod','requerido','$hoy22');");
if($act3){$paso["paso"]="paso"; $paso["auxCP"]=$this->agregarCarPro($venta); $paso["codigo_abono"]=$cod; $paso["info"]=$this->restarCantidadCredito($total,$idCliente,"cero"); }
}}} return json_encode($paso);}

public function eliminar_pago_general($idPago,$idVenta){$paso["paso"]="no paso"; $a=$this->mysqli->query("DELETE FROM pagos WHERE id_pago='$idPago';"); 
if($a){$paso["paso"]="paso"; $paso["info"]=$this->obtenerPagosGenerales($idVenta);} return json_encode($paso); }

public function pago_transferencia_general($monto,$idVenta,$imagen,$idCliente,$idEmpresa){$paso["paso"]="no paso"; $hoy=$this->hoy();
$archivos=json_encode(array('transferencia' =>$this->obtener_lista_sensilla(json_decode($imagen,true))));  $cod=$this->maximoPago();
$a=$this->mysqli->query("INSERT INTO pagos(id_empresa,monto,id_venta,metodo_pago,codigo_abono,archivos,fecha) VALUES('$idEmpresa','$monto','$idVenta','transferencia','$cod','$archivos','$hoy');");
if($a){$paso["paso"]="paso"; $paso["lista"]=$this->obtenerPagosGenerales($idVenta);}  return json_encode($paso); }

public function obtenerPagosGenerales($idVenta){$a=$this->mysqli->query("SELECT * FROM pagos WHERE id_venta='$idVenta';");
if($a->num_rows==0){return "null";}else{while($r=$a->fetch_assoc()){$aA[]=$r;} return $aA; } }

public function obtener_lista_sensilla($info){$ruta1="dependencias/img/general/imagen_base_productos.png";
for($i=0;$i<sizeof($info);$i++){ $res=imagenAdic11($info[$i]["base64"],"abonos/transferencia","png","abono");if($res==NULL){$res=$ruta1;} 
$info[$i]["archivo"]=$res; $info[$i]["base64"]="vacio"; } return $info; }

public function cambiarPassword($passAnterior,$passNuevo,$idCliente){ $paso["paso"]="no paso";
$password1=crypt(htmlentities($passAnterior),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');	
$password2=crypt(htmlentities($passNuevo),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$'); $respuesta="no paso";
$rr=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE id_usuario=$idCliente AND password='$password1';")->num_rows;
if($rr!=0){ $b=$this->mysqli->query("UPDATE usuarios SET password='$password2' WHERE id_usuario=$idCliente;"); if($b){$respuesta="paso";}}else{$respuesta="password";}
$paso["paso"]=$respuesta;  return json_encode($paso);}
// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
public function actDocumentosArray($campos){ $imagenRespaldo="dependencias/img/general/imagen_base_productos.png"; $paso["paso"]="no paso";
$cam=json_decode($campos,true); $lista=json_decode($cam["lista"],true); $documento=$cam["documento"]; $idCliente=$cam["idCliente"];
for($i=0; $i <sizeof($lista); $i++) { $res[$i]=imagenAdic11($lista[$i]["base64"],"documentos",$lista[$i]["ext"],$documento); if($res[$i]==NULL){$res[$i]=$imagenRespaldo;}
$lista[$i]["archivo"]=$res[$i]; $lista[$i]["base64"]="vacio"; } $paso["paso"]="no paso";
$aa=$this->actDocConto(json_encode($lista),$documento,$idCliente); if($aa!=NULL){$paso["paso"]="paso"; $paso["lista"]=$aa;} return json_encode($paso);}

public function actDocConto($lista,$documento,$idCliente){$fecha="fecha_actualizacion_camara"; $paso["paso"]="no paso";
if($documento=="camaraArray"){$fecha="fecha_actualizacion_camara";}  if($documento=="rutArray"){$fecha="fecha_actualizacion_rut";}
if($documento=="identidadArray"){$fecha="fecha_actualizacion_cedula";}
$nuevo="rut"; if($documento=="camaraArray"){$nuevo="comercio";} if($documento=="identidadArray"){$nuevo="cedula";}
$a=$this->mysqli->query("SELECT archivos FROM usuarios WHERE id_usuario='$idCliente';"); if($a->num_rows!=0){$res=$a->fetch_assoc();  
$doc11=json_decode($res["archivos"],true); $doc=$doc11[$nuevo];
if($doc=="vacio" || $doc=="" || $doc=="null" || $doc=="[]" || $doc=="Array"){
$lista1=json_decode($lista,true); for($j=0;$j<sizeof($lista1);$j++){$lista1[$j]["control"]="servidor";$lista1[$j]["control2"]="servidor";} 
$lista=json_encode($lista1); $doc11[$nuevo]=$lista1; $doc11[$fecha]= date("Y-m-d H:i:s"); $doc112=json_encode($doc11);
$b=$this->mysqli->query("UPDATE usuarios SET archivos='$doc112' WHERE id_usuario=$idCliente;");if($b){return $lista1;}
}else{$listaServidor=$doc; $listaLocal=json_decode($lista,true);
if(isset($listaServidor[0]["ext"])){ for($t=0;$t<sizeof($listaLocal);$t++){if($listaLocal[$t]["control"]=="local" && $listaLocal[$t]["control2"]=="servidor"){ for($u=0;$u<sizeof($listaServidor);$u++){
if($listaLocal[$t]["id"]==$listaServidor[$u]["id"]){$listaLocal[$t]["control"]="servidor"; $listaServidor[$u]=$listaLocal[$t]; }}}}
$tamServidor=sizeof($listaServidor);for($w=0;$w<sizeof($listaLocal);$w++){
if($listaLocal[$w]["control"]=="local" && $listaLocal[$w]["control2"]=="local"){
$listaLocal[$w]["control"]="servidor"; $listaLocal[$w]["control2"]="servidor"; $listaServidor[$tamServidor]=$listaLocal[$w]; $tamServidor++;	
}}}else{ for($t=0;$t<sizeof($listaLocal);$t++){if($listaLocal[$t]["control"]=="local" && $listaLocal[$t]["control2"]=="servidor"){ for($u=0;$u<sizeof($listaServidor);$u++){
if($listaLocal[$t]["archivoAux"]==$listaServidor[$u]){$listaLocal[$t]["control"]="servidor"; $listaServidor[$u]=$listaLocal[$t]["archivo"]; }}}} $tamServidor=sizeof($listaServidor);
for($w=0;$w<sizeof($listaLocal);$w++){if($listaLocal[$w]["control"]=="local" && $listaLocal[$w]["control2"]=="local"){ $listaServidor[$tamServidor]=$listaLocal[$w]["archivo"]; $tamServidor++;}}
} $listaSub=json_encode($listaServidor);  $doc11[$nuevo]=$listaServidor; $doc11[$fecha]=date("Y-m-d H:i:s"); $doc114=json_encode($doc11);
$b=$this->mysqli->query("UPDATE usuarios SET archivos='$doc114' WHERE id_usuario=$idCliente;"); if($b){return $listaServidor;} }} return NULL;}

public function elicDocArrayGeneral($campos){$paso["paso"]="no paso";
$cam=json_decode($campos,true); $id=$cam["id"]; $documento=$cam["documento"]; $idCliente=$cam["idCliente"]; $archivoAux=$cam["archivoAux"];
if($documento=="camaraArray"){$fecha="fecha_actualizacion_camara";}  if($documento=="rutArray"){$fecha="fecha_actualizacion_rut";}
if($documento=="identidadArray"){$fecha="fecha_actualizacion_cedula";}
$nuevo="rut"; if($documento=="camaraArray"){$nuevo="comercio";} if($documento=="identidadArray"){$nuevo="cedula";}
$a=$this->mysqli->query("SELECT archivos FROM usuarios WHERE id_usuario='$idCliente';");
if($a->num_rows!=0){ $a=$a->fetch_assoc(); $docAux=json_decode($a["archivos"],true); $doc=$docAux[$nuevo]; if($doc!="vacio" && $doc!="null" && $doc!=""){
$docJson=$doc; $tamJson=sizeof($docJson); $conteo=0; if(isset($docJson[0]["id"])){
for($i=0;$i<$tamJson;$i++){if($docJson[$i]["id"]==$id){unset($docJson[$i]);}} if(sizeof($docJson)==0){$res="null";}else{
for($j=0;$j<$tamJson;$j++){if(isset($docJson[$j]["id"])){$resA[$conteo]=$docJson[$j]; $conteo++;}} $res=$resA;}}else{
    
for($i=0;$i<$tamJson;$i++){if($docJson[$i]==$archivoAux){unset($docJson[$i]);}} if(sizeof($docJson)==0){$res="null";}else{
for($j=0;$j<$tamJson;$j++){if(isset($docJson[$j])){$resA[$conteo]=$docJson[$j]; $conteo++;}} $res=$resA;}}
$docAux[$nuevo]=$res; $docAux[$fecha]=date("Y-m-d H:i:s");  $docRespuesta=json_encode($docAux);
$applo=$this->mysqli->query("UPDATE usuarios SET archivos='$docRespuesta' WHERE id_usuario='$idCliente'"); 
if($applo){$paso["paso"]="paso"; $paso["lista"]=$res;}}} return json_encode($paso); }

public function actualizarDatosPersonalesGeneral($informacion,$idCliente){ $paso["paso"]="no paso";
$info=json_decode($informacion,true); $nombre=$info["nombre"]; $nit=$info["nit"]; $region= $info["region"];
$ciudad=$info["ciudad"]; $zona=$info["zona"]; $apartamento=$info["apartamento"]; $telefono=$info["telefono"];
$direccion=$info["direccion"]; $celular=$info["celular"]; $email= $info["email"]; $fechaNacimiento=$info["fechaNacimiento"];
$a=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE id_usuario!='$idCliente' AND (email='$email' OR email_empresa='$email');")->num_rows;
if($a!=0){$paso["paso"]="existencia";}else{ $usu=$this->mysqli->query("SELECT usuario FROM usuarios WHERE id_usuario='$idCliente';")->fetch_assoc(); 
$info=json_decode($usu["usuario"],true);  $info["nombre"]=$nombre; $info["cedula"]=$nit; $info["adicional"]=$apartamento;
$info["ciudad"]=$ciudad; $info["barrio"]=$zona; $info["departamento"]=$region; $info["telefono"]=$telefono;
$info["direccion"]=$direccion; $info["celular"]=$celular; $info["fecha"]=$fechaNacimiento; $infoRes=json_encode($info);
$ing=$this->mysqli->query("UPDATE usuarios SET usuario='$infoRes', email='$email' WHERE id_usuario='$idCliente';");
if($ing){$paso["paso"]="paso"; $paso["info"]=$infoRes;}} return json_encode($paso);	  }

public function actualizarDatosEmpresarialGeneral($informacion,$idCliente){ $paso["paso"]="no paso"; $info=json_decode($informacion,true);
$empresa=$info["empresa"]; $nit2=$info["nit2"]; $regimen=$info["regimen"]; $region2=$info["region2"];
$ciudad2=$info["ciudad2"]; $zona2=$info["zona2"]; $apartamento2=$info["apartamento2"]; $direccion2=$info["direccion2"];
$telefono2=$info["telefono2"]; $celular2=$info["celular2"]; $email2=$info["email2"]; $tipoDocumento=$info["tipoDocumento"];
$b=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE id_usuario!=$idCliente AND (email='$email2' OR email_empresa='$email2');")->num_rows;
if($b!=0){$paso["paso"]="existencia";}else{ $usu=$this->mysqli->query("SELECT empresa FROM usuarios WHERE id_usuario='$idCliente';")->fetch_assoc(); 
$info=json_decode($usu["empresa"],true); $info["razon"]=$empresa; $info["nit"]=$nit2; $info["regimen"]=$regimen; $info["departamento"]=$region2; 
$info["ciudad"]=$ciudad2; $info["barrio"]=$zona2; $info["direccion"]=$direccion2; $info["telefono"]=$telefono2; $info["celular"]=$celular2; $info["adicional"]=$apartamento2;
$info["tipoDocumento"]=$tipoDocumento; $infoRes=json_encode($info); $vv=$this->mysqli->query("UPDATE usuarios SET empresa='$infoRes', email_empresa='$email2' WHERE id_usuario='$idCliente';");
if($vv){$paso["paso"]="paso"; $paso["info"]=$infoRes; } return json_encode($paso); }  return json_encode($paso); }

public function actualizarDocumentoGeneral($ruta,$idCliente,$control){$paso["paso"]="no paso";
if($control=="foto"){ $a=$this->mysqli->query("SELECT archivos FROM usuarios WHERE id_usuario='$idCliente';");
if($a->num_rows!=0){$usu=$a->fetch_assoc(); $info=json_decode($usu["archivos"],true); 
$general=imagenAdic11($ruta,"documentos","jpg","foto"); $info["foto"]=$general;  $infoRes=json_encode($info);
$hht=$this->mysqli->query("UPDATE usuarios SET archivos='$infoRes' WHERE id_usuario='$idCliente';");
if($hht){$paso["paso"]="paso"; $paso["info"]=$infoRes; $paso["foto"]=$general; }}}return json_encode($paso); }

public function ingresoDireccion($region,$ciudad,$zona,$direccion,$piso,$idCliente){
$a=$this->mysqli->query("SELECT direcciones_alternativas FROM usuarios WHERE id_usuario=$idCliente;"); $a1=$a->fetch_assoc();   $direcciones=$a1["direcciones_alternativas"];
$error=0; $respuesta=0; if($direcciones=="" || $direcciones=="null" || $direcciones=="[]"){
$agg[0]["pais"]="Colombia"; $agg[0]["estado"]=1;  $agg[0]["departamento"]=$region; $agg[0]["ciudad"]=$ciudad; $agg[0]["barrio"]=$zona; $agg[0]["direccion"]=$direccion; $agg[0]["adicional"]=$piso; $agg1=json_encode($agg);
$act=$this->mysqli->query("UPDATE usuarios SET direcciones_alternativas='$agg1' WHERE id_usuario=$idCliente ;"); $respuesta=1; if(!$act){$error++;}
}else{ $dir=json_decode($direcciones,true); $cont_dir=sizeof($dir); $conteodos=0; for($i=0; $i <$cont_dir; $i++){if($dir[$i]["direccion"]==$direccion){$conteodos++;}}
if($conteodos==0){ $dir[$cont_dir]["pais"]="Colombia"; $dir[$cont_dir]["estado"]=1;  $dir[$cont_dir]["adicional"]=$piso; $dir[$cont_dir]["departamento"]=$region; $dir[$cont_dir]["ciudad"]=$ciudad; $dir[$cont_dir]["barrio"]=$zona; $dir[$cont_dir]["direccion"]=$direccion; $dir1=json_encode($dir);
$act1=$this->mysqli->query("UPDATE usuarios SET direcciones_alternativas='$dir1' WHERE id_usuario=$idCliente ;");
if(!$act1){$error++;}else{$respuesta=3;}}else{$respuesta=2;}} if($error==0){return $respuesta;}else{return NULL;}}

public function actualizarDireccion($region,$ciudad,$zona,$direccion,$piso,$cp,$idCliente,$index){ $paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT direcciones_alternativas FROM usuarios WHERE id_usuario='$idCliente';"); $a1=$a->fetch_assoc();   $direcciones=$a1["direcciones_alternativas"];
if($direcciones!="" && $direcciones!="null" && $direcciones!="[]"){ $dir=json_decode($direcciones,true);
for($i=0;$i<sizeof($dir);$i++){if($index==$i){ $dir[$i]["departamento"]=$region; $dir[$i]["ciudad"]=$ciudad; $dir[$i]["barrio"]=$zona;
$dir[$i]["direccion"]=$direccion; $dir[$i]["adicional"]=$piso; $dir[$i]["cp"]=$cp;}}
$dirJson=json_encode($dir); $ff=$this->mysqli->query("UPDATE usuarios SET direcciones_alternativas='$dirJson' WHERE id_usuario='$idCliente';");
if($ff){$paso["paso"]="paso"; $paso["info"]=$dir;}} return json_encode($paso);}

public function direccionAux($idCliente){
$a=$this->mysqli->query("SELECT direcciones_alternativas FROM usuarios WHERE id_usuario='$idCliente';")->fetch_assoc();  return $a["direcciones_alternativas"];}

public function eliminar_direccion_android($idCliente,$index){
$a=$this->mysqli->query("SELECT direcciones_alternativas FROM usuarios WHERE id_usuario=$idCliente;"); $a1=$a->fetch_assoc(); $direcciones=$a1["direcciones_alternativas"];
$error=0; $respuesta=0; if($direcciones!=""){ $dir=json_decode($direcciones,true); $cont_dir=sizeof($dir); if($cont_dir==1){$dir1="";}else{ $conteoNuevo=0;	
for ($i=0; $i <$cont_dir ; $i++){if($i==$index){unset($dir[$index]);}} for($j=0;$j<$cont_dir; $j++){if(isset($dir[$j])){$dir20[$conteoNuevo]=$dir[$j]; $conteoNuevo++;}}	
$dir1=json_encode($dir20);} $act1=$this->mysqli->query("UPDATE usuarios SET direcciones_alternativas='$dir1' WHERE id_usuario=$idCliente ;");
if(!$act1){$error++;}else{$respuesta=2;}}else{$respuesta=1;} if($error==0){return $respuesta;}else{return NULL;} }

public function ingresoPersonalDos($datosPersonales,$foto22,$idVendedor,$idBodega,$idEmpresa){ $rutaBaseDocumento="contenido/baseDocumento.png"; $rutaBasePerfil="contenido/baseUsuario.png";    
$hoy=$this->hoy(); $paso["paso"]="no paso"; $c1=json_decode($datosPersonales,true);
$nombre=$c1["nombre"]; $apellido=$c1["apellido"]; $cedula=$c1["cedula"]; $pais=$c1["pais"]; $region=$c1["region"]; $ciudad=$c1["ciudad"]; $zona=$c1["zona"];
$apartamento=$c1["apartamento"]; $direccion=$c1["direccion"]; $telefono=$c1["telefono"]; $celular=$c1["celular"]; $fechaNacimiento=$c1["fechaNacimiento"];
$email=$c1["email"]; $password1=crypt(htmlentities($c1["password"]),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$'); $genero=$c1["genero"]; $identidad=$c1["identidad"];
$cedulaImagen=$c1["cedulaImagen"]; $a=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE email='$email' OR email_empresa='$email';")->num_rows;
if($a==0){$foto=imagenAdic11($foto22,"archivos/foto","png","foto_perfil_"); $usuario['nombre']=$nombre; $usuario['apellido']=$apellido; $usuario['cedula']=$cedula;
$usuario['fecha']=$fechaNacimiento; $usuario['genero']=$genero; $usuario['token']="null"; $usuario['celular']=$celular; $usuario['telefono']=$telefono; $usuario['barrio']=$zona;
$usuario['ciudad']=$ciudad; $usuario['pais']=$pais; $usuario['departamento']=$region; $usuario['direccion']=$direccion; $usuario['adicional']=$apartamento; $usuario['identidad']=$identidad; 
$usuarioRespuesta=json_encode($usuario);   $archivos["rut"]="null"; $archivos["comercio"]="null"; $archivos["foto"]=$foto;  
if($cedulaImagen!="vacio"){ for($k=0;$k<sizeof($cedulaImagen);$k++){
$res=imagenAdic11($cedulaImagen[$k]["base64"],"documentos",$cedulaImagen[$k]["ext"],"cedula_"); if($res==NULL){$res=$rutaBaseDocumento;}
$cedulaImagen[$k]["archivo"]=$res; $cedulaImagen[$k]["base64"]="vacio"; $cedulaImagen[$k]['control']='servidor'; $cedulaImagen[$k]['control2']='servidor';   }
$archivos["cedula"]=$cedulaImagen; }else{$archivos["cedula"]="null"; } $archivosRespuesta=json_encode($archivos);
$con="INSERT INTO usuarios(id_bodega,id_empresa,id_vendedor,password, perfil, tipo_cliente, email, fecha, archivos, usuario, estado) VALUES('$idBodega','$idEmpresa','$idVendedor','$password1','Cliente','minoritario','$email','$hoy','$archivosRespuesta','$usuarioRespuesta','1');";
$c=$this->mysqli->query($con); if($c){$paso["paso"]="paso";}} return json_encode($paso);}

public function ingresoEmpresaGeneral($datosEmpresa,$datosPersonales,$rut,$comercio,$cedulaDocumento,$foto22,$idVendedor,$idBodega,$idEmpresa){ $rutaBaseDocumento="contenido/baseDocumento.png"; $rutaBasePerfil="contenido/baseUsuario.png"; $paso["paso"]="no paso";
$d1=json_decode($datosEmpresa,true); $c1=json_decode($datosPersonales,true); $hoy=$this->hoy(); $nombre=$c1["nombre"]; $apellido=$c1["apellido"]; $cedula=$c1["cedula"]; 
$apartamento=$c1["apartamento"]; $direccion=$c1["direccion"]; $telefono=$c1["telefono"]; $celular=$c1["celular"]; $fechaNacimiento=$c1["fechaNacimiento"];
$email1=$c1["email"]; $password1=crypt(htmlentities($c1["password"]),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$'); $genero=$c1["genero"]; $identidad=$c1["identidad"];
$cedulaImagen=$c1["cedulaImagen"]; $pais=$c1["pais"]; $region=$c1["region"]; $ciudad=$c1["ciudad"]; $zona=$c1["zona"]; $email2=$d1["email2"];
$a22211=$this->mysqli->query("SELECT id_usuario FROM usuarios WHERE email='$email1' OR email='$email2' OR email_empresa='$email1' OR email_empresa='$email2';")->num_rows;
if($a22211=="0"){ $foto=imagenAdic11($foto22,"archivos/foto","png","foto_perfil_"); $usuario['nombre']=$nombre; $usuario['apellido']=$apellido; $usuario['cedula']=$cedula;
$usuario['fecha']=$fechaNacimiento; $usuario['genero']=$genero; $usuario['token']="null"; $usuario['celular']=$celular; $usuario['telefono']=$telefono; $usuario['barrio']=$zona;
$usuario['ciudad']=$ciudad; $usuario['pais']=$pais; $usuario['departamento']=$region; $usuario['direccion']=$direccion; $usuario['adicional']=$apartamento; $usuario['identidad']=$identidad; 
$usuarioRespuesta=json_encode($usuario); $empresa['razon']=$d1["razon"]; $empresa['nit']=$d1["nit"]; $empresa['regimen']=$d1["regimen"]; $empresa['pais']=$d1["pais"];
$empresa['departamento']=$d1["region2"]; $empresa['ciudad']=$d1["ciudad2"]; $empresa['barrio']=$d1["zona2"]; $empresa["telefono"]=""; $empresa["celular"]="";
$empresa["direccion"]=$d1["direccion2"]; $empresa["adicional"]=$d1["apartamento2"];  $empresaRespuesta=json_encode($empresa);
if($cedulaImagen!="vacio"){ for($k=0;$k<sizeof($cedulaImagen);$k++){
$res=imagenAdic11($cedulaImagen[$k]["base64"],"documentos",$cedulaImagen[$k]["ext"],"cedula_"); if($res==NULL){$res=$rutaBaseDocumento;}
$cedulaImagen[$k]["archivo"]=$res; $cedulaImagen[$k]["base64"]="vacio"; $cedulaImagen[$k]['control']='servidor'; $cedulaImagen[$k]['control2']='servidor';   }
$archivos["cedula"]=$cedulaImagen; }else{$archivos["cedula"]="null"; }   $archivos["foto"]=$foto;
$jsonRut1=json_decode($rut,true);  $jsonComercio1=json_decode($comercio,true); $jsonRut=$jsonRut1["documento"]; $jsonComercio=$jsonComercio1["documento"];
for($i=0; $i <sizeof($jsonRut); $i++) { 
$resRR=imagenAdic11($jsonRut[$i]["base64"],"documentos",$jsonRut[$i]["ext"],"rut_"); if($resRR==NULL){$resRR=$rutaBaseDocumento;}
$jsonRut[$i]["archivo"]=$resRR; $jsonRut[$i]["base64"]="vacio"; $jsonRut[$i]['control']='servidor'; $jsonRut[$i]['control2']='servidor'; }
for($j=0;$j<sizeof($jsonComercio);$j++){
$res=imagenAdic11($jsonComercio[$j]["base64"],"documentos",$jsonComercio[$j]["ext"],"comercio_"); if($res==NULL){$res=$rutaBaseDocumento;}
$jsonComercio[$j]["archivo"]=$res; $jsonComercio[$j]["base64"]="vacio";  $jsonComercio[$j]['control']='servidor'; $jsonComercio[$j]['control2']='servidor';  }
$archivos["rut"]=$jsonRut; $archivos["comercio"]=$jsonComercio; $archivosRespuesta=json_encode($archivos);
$congenel="INSERT INTO usuarios(id_bodega,id_empresa,id_vendedor, archivos, fecha, email, email_empresa, tipo_cliente,perfil, password, empresa, usuario) VALUES('$idBodega','$idEmpresa','$idVendedor','$archivosRespuesta' ,'$hoy','$email1','$email2','mayoritario','Cliente','$password1','$empresaRespuesta','$usuarioRespuesta');";
$consul=$this->mysqli->query($congenel); if($consul){$paso["paso"]="paso";} }return json_encode($paso);}

public function cS($valor){  return $valor; }
public function jSim($valor){return str_replace('"', "'", json_encode($valor));}
// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
public function matrisGenerar($archivo,$ext){ $res[0]['archivo']=$archivo; $res[0]['ext']=$ext; 
$res[0]['control']='servidor'; $res[0]['control2']='servidor'; $res[0]['base64']='vacio'; return $res;}

public function cambioPass($pass,$correo){ $paso["paso"]="no paso"; $password1=crypt(htmlentities($pass),'$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');
$act=$this->mysqli->query("UPDATE usuarios SET password='$password1' WHERE email='$correo' OR email_empresa='$correo';");
if($act){$paso["paso"]="paso";} return json_encode($paso);}

public function pagoEsperaTransferencia($idVenta,$imagen){$paso["paso"]="no paso";
$imagenRespaldo="dependencias/img/general/imagen_base_productos.png"; $l=json_decode($imagen,true);
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"; $paso["info"]=$rutaGeneral; }
return json_encode($paso);}

public function actualizacionNotificacion($idReceptor){$paso["paso"]="no paso";
$a=$this->mysqli->query("UPDATE notificaciones SET notificacion_vista='1' WHERE id_receptor='$idReceptor';");   
if($a){$paso["paso"]="paso";} return json_encode($paso);}

public function notificacion($idReceptor){$paso["paso"]="no paso";
$a=$this->mysqli->query("SELECT u.*, n.*, n.fecha AS fechaNotificacion FROM notificaciones n INNER JOIN usuarios u ON u.id_usuario=n.id_emisor WHERE n.id_receptor='$idReceptor';");    
if($a->num_rows!=0){while($fila=$a->fetch_assoc()){$aA[]=$fila;} $paso["paso"]="paso"; $paso["info"]=$aA; } return json_encode($paso);}

// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
}
