<?php

include("ApiGlobalFunctions.php");

$cajaid=isset($_POST['cajaID']) ? $_POST['cajaID'] : $_GET['cajaID'];
$cajaOriginal=isset($_POST['cajaID']) ? $_POST['cajaID'] : $_GET['cajaID'];
$usuario=isset($_POST['uid']) ? $_POST['uid'] : $_GET['uid'];
$password=isset($_POST['key']) ? $_POST['key'] : $_GET['key'];
$url=isset($_POST['url']) ? $_POST['url'] : $_GET['url'];
$tipo=$_POST['Tipo'];
$OCOS=$_POST['OCid_OSid'];
$cdate=$_POST['cDateFin'];
$Nguia=$_POST['cNdeGuia'];
$courier=$_POST['cCourier'];
$detalles=$_POST['cDetalles'];
$status=isset($_POST['cStatus']) ? $_POST['cStatus'] : $_GET['cStatus'];
$bodega=$_POST['cBodega'];
$seccion=$_POST['cSeccion'];
$slot=$_POST['cSlot'];
$slotOriginal=$_POST['cSlot'];
$detalles=$_POST['cDetalles'];
if($status=="Finalizado-Parcial" || $status=="Finalizado-parcial"){
                $status="Finalizado-Parcial";
}                
//echo $cdate."-<br>";
error_log("POST: ".json_encode($_POST)."\n", 3, "php.log");   


$recordcaja=$cajaid;
//echo timezoneuser($url,$usuario,$cdate);

$username=username($usuario,$url);
//$valida=1;

    if(!empty($slot)){        
        $valida=checkslot($slot,$url);
    }

    if(empty($slot)){
        $valida=1;
    }
error_log("UPDATE BOX: caja: ".$cajaid." -- usuario: ".$usuario." -- pass: ".$password." -- url: ".$url." -- tipo: ".$tipo." -- OS: ".$OCOS." -- cdate: ".$cdate." -- guia: ".$Nguia." -- courier: ".$courier." -- detalles: ".$detalles." -- status: ".$status." -- bodega: ".$bodega." -- seccion: ".$seccion." -- slot: ".$slot." -- record: ".$recordcaja." -- usern".$username." -- ".$slot." -- Valida: ".$valida."\n", 3, "php.log");   
    if($valida==1){

        $include=includec($url);        
        include ($include);
        //$query=mysqli_query($link,"SELECT *FROM vtiger_crmentity WHERE crmid='$OCOS'");
    if(!empty($Nguia)){
        mysqli_query($link,"UPDATE vtiger_paquetes SET paquetes_tks_noguiaodespacho='$Nguia' WHERE paquetesid='$cajaid'");
    }
        $query=mysqli_query($link,"SELECT IF(paquetes_tks_ordendesalida='',paquetes_tks_ordendecompra,paquetes_tks_ordendesalida) as 'ocos'
        FROM vtiger_paquetes
        WHERE paquetesid='$cajaid'");
        $data=mysqli_fetch_array($query);
        $OCOS=$data['ocos'];
        
        $query=mysqli_query($link,"SELECT *FROM vtiger_crmentity WHERE crmid='$OCOS'");
        $data=mysqli_fetch_array($query);
        $type=$data['setype'];
        if($type=="SalesOrder"){
           $OS="6x".$OCOS;
           $OC=NULL;
        }    
        if($type=="PurchaseOrder"){
           $OC="5x".$OCOS;
           $OS=NULL;
        }
        $asignado="19x".$usuario;
        $bodega=diccionario($url,"Bodegas").$bodega;
        $slot=diccionario($url,"Slots").$slot;
        $cajaid=diccionario($url,"Paquetes").$cajaid;
        $includenat=includenative($usuario,$password,$url);                
        chdir($includenat);           
        include_once 'vtwsclib/Vtiger/WSClient.php';
        $user = username($usuario,$url);
        $key  = $password;
        $url  = $url;            
        $client = new Vtiger_WSClient($url); 
        $login = $client->doLogin($user, $key);    
        if(!$login) {
            echo json_encode(setDataJSON('Fallo',1));
        }else {             
            $recordInfo = $client->doRetrieve($cajaid);                
            $recordInfo['paquetes_tks_noguiaodespacho']=vacioupdate($Nguia,$recordInfo['paquetes_tks_noguiaodespacho']);
            $recordInfo['paquetes_tks_estado']=vacioupdate($status,$recordInfo['paquetes_tks_estado']);
            $recordInfo['paquetes_tks_tipo']=vacioupdate($tipo,$recordInfo['paquetes_tks_tipo']);
            $recordInfo['assigned_user_id']=vacioupdate($asignado,$recordInfo['assigned_user_id']);
            $recordInfo['caja_tks_ordendecompra']=vacioupdate($OC,$recordInfo['caja_tks_ordendecompra']);
            $recordInfo['paquetes_tks_ordendesalida']=vacioupdate($OS,$recordInfo['paquetes_tks_ordendesalida']);
            $recordInfo['paquetes_tks_fechadellegadaosa']=vacioupdate($cdate,$recordInfo['paquetes_tks_fechadellegadaosa']);
            $recordInfo['paquetes_tks_centrodecosto']=vacioupdate($courier,$recordInfo['paquetes_tks_centrodecosto']);
            if(empty($_GET['cSlot'])){        
                $recordInfo['paquetes_tks_slot']=$recordInfo['paquetes_tks_slot'];    
            }else{        
                $recordInfo['paquetes_tks_slot']=vacioupdate($slot,$recordInfo['paquetes_tks_slot']);                   
            }
            if(empty($_GET['cBodega'])){        
                $recordInfo['paquetes_tks_bodega']=$recordInfo['paquetes_tks_bodega'];    
            }else{        
                $recordInfo['paquetes_tks_bodega']=vacioupdate($bodega,$recordInfo['paquetes_tks_bodega']);                   
            }        
            $recordInfo['paquetes_tks_seccion']=vacioupdate($seccion,$recordInfo['paquetes_tks_seccion']);
            $recordInfo['paquetes_tks_detalles']=vacioupdate($detalles,$recordInfo['paquetes_tks_detalles']);

            $record = $client->doUpdate($recordInfo);
            if ($record) {
                $recordid = $client->getRecordId($record['id']);        
                $docs[0]=array('Result'=>'1', 'id'=>$recordcaja);
                //$docs[0]=array('Result'=>'2', 'id'=>'ProductError');              
                //print_r($docs);
                echo json_encode(setDataJSON($docs,1));
                caja_direccion_od($recordid,$url);             
                
                $queryF=mysqli_query($link,"SELECT paquetes_tks_tipo, paquetes_tks_ordendesalida FROM vtiger_paquetes WHERE paquetesid='$recordcaja'");
                $data=mysqli_fetch_array($queryF);
                $tipo=$data['paquetes_tks_tipo'];
                $os=$data['paquetes_tks_ordendesalida'];
                error_log("VALIDACION FINALIZA: ".$cajaid."url:".$url."tipo:".$tipo."OS: ".$os."\n", 3, "php.log");   
                if((strpos($url, 'siromax') !== false) && $tipo=="Salida" && ($status=="Enviada")){ //este no es un if anidado asi no altera el normal funcionamiento
                    error_log("ENTRA A VALIDACION: ".$cajaid."url:".$url."tipo:".$tipo."\n", 3, "php.log");   
                    $hoy = date("Y-m-d"); // 00:00:00
                    $queryos=mysqli_query($link,"SELECT ship_street, ship_city, ship_state FROM vtiger_soshipads WHERE  soshipaddressid='$os'");
                    $dataos=mysqli_fetch_array($queryos);
                    $direccion=str_replace("'", " ",$dataos['ship_street']);
                    $comuna=$dataos['ship_city'];
                    $region=$dataos['ship_state'];
                    $assetcaja=mysqli_query($link,"SELECT asset FROM caja_productos WHERE cajaid='$recordcaja'");
                     while ($row = mysqli_fetch_array($assetcaja)) {
                         $bicaja=$row['asset'];
                         error_log("ACTUALIZA ".$hoy."--".$direccion."--".$comuna."--".$region."--".$bicaja."\n", 3, "php.log");   
                         mysqli_query($link,"UPDATE vtiger_assets SET dateinservice='$hoy' WHERE assetsid ='$bicaja' ");
                         error_log("ACTUALIZA2: "."UPDATE vtiger_assetscf SET cf_1773='$direccion', cf_1779='$comuna', cf_1777='$region' WHERE assetsid='$bicaja' "."\n", 3, "php.log");  
                         mysqli_query($link,"UPDATE vtiger_assetscf SET cf_1773='$direccion', cf_1779='$comuna', cf_1777='$region' WHERE assetsid='$bicaja' ");
                     }     
                }
                
            if($status=="Finalizado-Parcial" || $status=="Finalizado-parcial"){
                $status="Finalizado-Parcial";
                update_caja_productos($recordid,$url,$usuario);
//                cajadevolucion($recordcaja,$recordInfo['paquetes_tks_ordendesalida'],$url,$usuario);

                //ROMERO
                $queryr=mysqli_query($link,"SELECT paquetes_tks_tipo FROM vtiger_paquetes WHERE paquetesid='$recordcaja'");
                $data=mysqli_fetch_array($queryr);
                $tipo=$data['paquetes_tks_tipo'];
                if($tipo=="Salida"){
                    $query=mysqli_query($link,"SELECT accountid, contactid 
                    FROM vtiger_paquetes 
                    INNER JOIN vtiger_salesorder ON vtiger_salesorder.salesorderid=vtiger_paquetes.paquetes_tks_ordendesalida 
                    WHERE paquetesid='$recordcaja'");
                    $data=mysqli_fetch_array($query);    
                    $cuenta=$data['accountid'];
                    $contacto=$data['contactid'];
                    //$query=mysqli_query($link,"SELECT asset FROM caja_productos WHERE cajaid='$recordcaja' AND recibido>'0'");
                    $movasset=diccionario($url,'MovAsset');
                    $query=mysqli_query($link,"SELECT ".$movasset. " as movimietoasset
                                FROM vtiger_movimientos
                                INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid=vtiger_movimientos.movimientosid
                                INNER JOIN vtiger_paquetes ON vtiger_paquetes.paquetesid=vtiger_movimientos.movimientos_tks_caja
                                INNER JOIN caja_productos ON caja_productos.cajaid=vtiger_movimientos.movimientos_tks_caja
                                WHERE paquetesid='$recordcaja' AND recibido>'0'");
                    while ($row = mysqli_fetch_array($query)) {  
                        $asset=$row['movimietoasset'];
                        mysqli_query($link,"UPDATE vtiger_assets SET /*assetstatus='In Service', */account='$cuenta', contact='$contacto' WHERE assetsid='$asset'");
                        $salida=diccionario($url,'FSalidaB');
                        $date=date('Y-m-d');
                        mysqli_query($link,"UPDATE vtiger_assetscf SET ".$salida."='$date' WHERE assetsid='$asset'");
                    }    
                }//FIN ROMERO
                
                if(strpos($url, 'solucorp') !== false){
                    error_log("UPDATE OS/OC: ENTRA A IF"."\n", 3, "php.log");
                    UpdateEstadoWMS($usuario, $password, $url,$OCOS, 'Finalizado Parcial', $tipo);
                    if($tipo=="Salida"){
                        UpdateAsignadoWMSOT("1", "udqvkv7ht6noeclo", $url,$OCOS);
                    }    
                }
                 
            }
            $query=mysqli_query($link,"SELECT paquetes_tks_tipo FROM vtiger_paquetes WHERE paquetesid='$recordcaja'");
            $data=mysqli_fetch_array($query);  
            $tipo=$data['paquetes_tks_tipo']; 
            if(($status=="Finalizado-Parcial" || $status=="Finalizado-parcial") && $tipo=="Entrada"){
                $status="Finalizado-Parcial";
                $campo=diccionario($url,'stockfisico');
//                echo "CAMPO".$campo;
                $query=mysqli_query($link,"SELECT caja_productos.productid as producto,recibido, '$campo',qtyinstock FROM caja_productos INNER JOIN vtiger_products ON vtiger_products.productid=caja_productos.productid INNER JOIN vtiger_productcf ON vtiger_productcf.productid=caja_productos.productid WHERE cajaid='$recordcaja' AND estado <>'0'");
                while ($row = mysqli_fetch_array($query)) {  
                        $producto=$row['producto'];
                        $recibido=$row['recibido'];
                        $stock=$row['qtyinstock'];
                        $fisico=explode(".",$row[$campo]);
                        $fisico=$fisico[0]+$recibido;
                        $stock=$stock[0]+$recibido;
                        //mysqli_query($link,"UPDATE vtiger_productcf SET '$campo'='$fisico' WHERE productid='$producto'");
                        //mysqli_query($link,"UPDATE vtiger_products SET qtyinstock='$stock' WHERE productid='$producto'");
                }        
            }
            if($status=="Enviada"){             
            $campo=diccionario($url,'stockfisico');   
                $query=mysqli_query($link,"SELECT caja_productos.productid as producto,recibido, '$campo', asset
                    FROM caja_productos 
                    INNER JOIN vtiger_productcf ON vtiger_productcf.productid=caja_productos.productid 
                    WHERE cajaid='$recordcaja' AND estado <>'0'");
                while ($row = mysqli_fetch_array($query)) {  
                        $producto=$row['producto'];
                        $recibido=$row['recibido'];
                        
                        $asset=$row['asset'];
                        $fisico=$row[$campo];
                        $fisico=$fisico-$recibido;                        
                        mysqli_query($link,"UPDATE vtiger_productcf SET '$campo'='$fisico' WHERE productid='$producto'");
                }

                $MovAsset=diccionario($url,'MovAsset');
                $querymov=mysqli_query($link,"SELECT ".$MovAsset." as 'MovAsset'
                        FROM vtiger_movimientos 
                        INNER JOIN caja_productos ON caja_productos.cajaid=vtiger_movimientos.movimientos_tks_caja
                        INNER JOIN vtiger_crmentity ON vtiger_movimientos.movimientosid=vtiger_crmentity.crmid
                        WHERE cajaid='$recordcaja' AND estado<>'0'");
                while ($row = mysqli_fetch_array($querymov)) {  
                        $asset2=$row['MovAsset'];
                        $date=date('Y-m-d');
                        $FSalidaB=diccionario($url,'FSalidaB');                        
                        mysqli_query($link,"UPDATE vtiger_assetscf SET ".$FSalidaB."='$date' WHERE assetsid='$asset2'");
                }                        


                $campo=diccionario($url,'traslados');                
                $query=mysqli_query($link,"SELECT paquetes_tks_noguiaodespacho,paquetes_tks_ordendesalida
                FROM vtiger_paquetes 
                INNER JOIN vtiger_paquetescf ON vtiger_paquetes.paquetesid=vtiger_paquetescf.paquetesid 
                INNER JOIN vtiger_salesordercf ON vtiger_salesordercf.salesorderid=vtiger_paquetes.paquetes_tks_ordendesalida 
                WHERE vtiger_paquetes.paquetesid='$recordcaja' AND paquetes_tks_tipo='Salida' AND ".$campo."='1'");
                $num=mysqli_num_rows($query);                
                if($num>0){
                    $data=mysqli_fetch_array($query);                      
                    $os=$data['paquetes_tks_ordendesalida'];                    
                    cajadevolucion($recordcaja,$os,$url,'1');               
                }   
                
                if(strpos($url, 'solucorp') !== false){
                    UpdateEstadoWMS($usuario, $password, $url,$OCOS, 'Despachado', $tipo);
                }
            }
            if($status=="Almacenada"){ 
                $query=mysqli_query($link,"SELECT * 
                FROM vtiger_slots
                INNER JOIN vtiger_racks ON vtiger_racks.racksid=vtiger_slots.slots_tks_rack
                WHERE slots_tks_codigo='$slotOriginal'");
                $num=mysqli_num_rows($query);                
                if($num>0){
                    $data=mysqli_fetch_array($query);                      
                    $rack=$data['racksid'];        
                    $slotid=$data['slotsid'];        
                    // $rack=diccionario($url,"Racks").$rack;
                    // $slotid=diccionario($url,"Slots").$slotid;
                    error_log("rack: ".json_encode($rack)."\n", 3, "php.log");   
                    error_log("slot: ".json_encode($slotid)."\n", 3, "php.log");   

                }       
                $query=mysqli_query($link,"UPDATE vtiger_paquetes SET paquetes_tks_rack='$rack', paquetes_tks_slot='$slotid' WHERE paquetesid='$cajaOriginal';");
            } 
            error_log("ENTRA A FINALIZADO ".$tipo."--".$status."--".$OCOS."\n", 3, "php.log");  
            if($status=="Finalizada" && $tipo=="Salida"){
               if(strpos($url, 'solucorp') !== false){
                    error_log("UPDATE OS/OC: ENTRA A IF"."\n", 3, "php.log");
                    UpdateEstadoWMS($usuario, $password, $url,$OCOS, 'Finalizado', $tipo); 
                }
            }            
            if($status=="Finalizada" && $tipo=="Entrada"){
               if(strpos($url, 'solucorp') !== false){
                    error_log("UPDATE OS/OC: ENTRA A IF"."\n", 3, "php.log");
                    UpdateEstadoWMS($usuario, $password, $url,$OCOS, 'Finalizado', $tipo); 
                }
            } 

            }else{
                $recordid=$client->lastError();
                $docs[0]=array('Result'=>'0', 'id'=>$recordcaja);
        error_log("UPDATE BOX ERROR: ".$recordid." -- ".$recordcaja."\n", 3, "php.log");
                echo json_encode(setDataJSON($docs,1));
            }   
        }
    }else{
        echo json_encode(setDataJSON($valida,1));
    }


?>
