<?php

include("clase_cargue.php");


if(isset($_POST["codigo"])){
     $codigo=$_POST["codigo"];
    $Nombre=$_POST["nombre"];
    $cantidacaja=$_POST["cantcaja"];
    $cantidafrcc=$_POST["cantfrcc"];
    $base=$_POST["baseiva"];
    $valoriva=$_POST["valiva"];
    $iva=$_POST["tipoiva"];
    $pcaja=$_POST["costcaja"];
    $pfrcc=$_POST["costofrcc"];
    $utilicaja=$_POST["utilicaja"];
    $utilifrcc=$_POST["utilifrcc"];
    $Tprecio=$_POST["tcargue"]; 
    $factur=str_replace(' ', '',($_POST["factura"]));
    $movimineto=$_POST["movimien"];

    $lote=$_POST["lote"];
    $fechVencimi=$_POST["fvencimiento"];
    $R_invim=$_POST["rgistroInvima"];
    $es_invim=$_POST["estInvima"];
    $observacion=$_POST["Observaciones"];

    $ventaCaja=$_POST["ventaCaja"];
    $ventaFrcc=$_POST["ventaFrcc"];

    $ventaCaja2=$_POST["ventaCaja2"];
    $ventaFrcc2=$_POST["ventaFrcc2"];
    $bodega=$_POST["bodega"];
    $ubicacion=$_POST["ubicacion"];

    $precioblister=$_POST["precioblister"];

    $utilidadCaja2= $_POST["utilidadCaja2"];
    $utilidadFrcc2=$_POST["utilidadFrcc2"];
    $precioCaja3=$_POST["precioCaja3"];
    $precioFrcc3=$_POST["precioFrcc3"];
    $utilidadCaja3=$_POST["utilidadCaja3"];
    $utilidadFrcc3=$_POST["utilidadFrcc3"];

     $fechaActaRecep=$_POST["fechaActaRecep"];
    $usuarioA=$_POST["usuarioA"];
  $preciosTodos=$_POST["preciosTodos"];

   $provedor=$_POST["provedor"];
   $fecha=$_POST["fechac"];
$tipodetalle=$_POST["tipodetalle"];

    validadturnosentradas($bodega);
    turno($bodega);
if($fechaActaRecep==""){
       $fechaActaRecep= date('Y-m-d H:i:s');
    }

    $guarda=new temporal();
    $guarda->guardarproductos($factur,$movimineto,$codigo,
    $Nombre,$cantidacaja,$cantidafrcc,$base,$valoriva,$iva,
    $pcaja,$pfrcc,$Tprecio,$utilicaja,$utilifrcc,$lote,$fechVencimi,$R_invim,
    $es_invim,$observacion,$ventaCaja,$ventaFrcc,$ventaCaja2,$ventaFrcc2,$bodega,
    $ubicacion,$precioblister,$utilidadCaja2,$utilidadFrcc2,$precioCaja3, $precioFrcc3, $utilidadCaja3,$utilidadFrcc3, $fechaActaRecep,
$usuarioA,$preciosTodos,$provedor, $fecha,$tipodetalle
);

}elseif(isset($_POST["numerofacturac"])){

    $factura= str_replace(' ', '',($_POST["numerofacturac"]));

   
    $movimiento=$_POST["movimientoo"];
    $bodega=$_POST["bodega"];

      $provedor=$_POST["provedor"];
   $consult= new temporal();
   $consult->consultatemporal($factura,$movimiento,$bodega,$provedor);
}
elseif(isset($_POST["validarfact"])){

$numfact=str_replace(' ', '',($_POST["validarfact"]));

$provedor=$_POST["provedor"];
$bodega=$_POST["bodega"];
$val= new temporal();
$val->consulnumfactur($numfact,$provedor,$bodega);


}














class temporal{

function __construct()
{
    $conex=new conexion();
    $this->conen=$conex->conectar();
}
//"codigo","nombre","cantcaja","cantfrcc",
 //     "baseiva","valiva","tipoiva","costcaja","costofrcc","tcargue","utilicaja","utilifrcc"
function  guardarproductos($factur,$movimineto,$codigo,$Nombre,$cantidacaja,$cantidafrcc,$base,
$valoriva,$iva,$pcaja,$pfrcc,$Tprecio,$utilicaja,$utilifrcc,$lote,$fechVencimi,$R_invim,$es_invim,
$Observaciones,$ventaCaja,$ventaFrcc,$ventaCaja2,$ventaFrcc2,$bodega,$ubicacion,$precioblister,
$utilidadCaja2,$utilidadFrcc2,$precioCaja3, $precioFrcc3, $utilidadCaja3,$utilidadFrcc3,$fechaActaRecep,
$usuarioA,$preciosTodos,$provedor,$fecha,$tipodetalle){


$estadoEje=0;



$producto = [[
    "Codigo"           => $codigo,
    "Nombre"           => $Nombre,
    "Cantida_caja"     => $cantidacaja,
    "Cantida_frcc"     => $cantidafrcc,
    "Base"             => $base,
    "iva"              => $iva,
    "tipo"             => $valoriva, // Suponiendo que $valoriva es el tipo de IVA
    "total"            => $Tprecio,
    "costocaja"        => $pcaja,
    "costofrcc"        => $pfrcc,
    "utilcaja"         => $utilicaja,
    "utilifrcc"        => $utilifrcc,
    "lote"             => $lote,
    "FVencimiento"     => $fechVencimi,
    "Rinvima"          => $R_invim,
    "Einvima"          => $es_invim,
    "Observac"         => $Observaciones,
    "ventaCaja"        => $ventaCaja,
    "ventaFrcc"        => $ventaFrcc,
    "ventaCaja2"       => $ventaCaja2,
    "ventaFrcc2"       => $ventaFrcc2,
    "precioblister"    => $precioblister,
    "bodega"           => $bodega,
    "ubicacion"        => $ubicacion,
    "utilidadCaja2"    => $utilidadCaja2,
    "utilidadFrcc2"    => $utilidadFrcc2,
    "precioCaja3"      => $precioCaja3,
    "precioFrcc3"      => $precioFrcc3,
    "utilidadCaja3"    => $utilidadCaja3,
    "utilidadFrcc3"    => $utilidadFrcc3,
]];

$consul=new carguefactura();


if($movimineto=="compra"){
        $fact=$consul->consultarfactor($producto,$bodega);
        if($fact !=0){
            $dat=["res"=>"no","mensa"=>"$fact"];
            echo(json_encode($dat));
        }else{
        
        $actu=  $consul->productoscompra($producto,$factur,$fecha,$provedor,$fechaActaRecep,$bodega,$usuarioA,$preciosTodos);

        if($actu==1){
            $consul->kardex($producto,$movimineto,$fecha,$factur,$provedor,$tipodetalle,$bodega,$usuarioA);
            $estadoEje=1;
            $dat=["res"=>"si","mensa"=>''];
            echo(json_encode($dat));

        }else{

            $dat=["res"=>"no","mensa"=>'Error al Agregar Producto'];
            echo(json_encode($dat));
        }
        }
}else if($movimineto=="entrada"){
     $fact=$consul->consultarfactor($producto,$bodega);
        if($fact !=0){
            $dat=["res"=>"no","mensa"=>"$fact"];
            echo(json_encode($dat));
            die();
        }


    $numentra=$consul->consusnumeroentrada($bodega);

                if( $numentra >$factur ){
                    $dat=["res"=>"no","mensa"=>"Numero de entrada ya existe. EL MOVIMIENTO YA FUE GRABADO"];
                    
                    echo(json_encode($dat));
                   

                }else{
                    $entra=$consul->entrada($producto,$bodega,$fecha,$preciosTodos);
                if($entra){
                    $consul->kardex($producto,$movimineto,$fecha,$factur,$provedor,$tipodetalle,$bodega,$usuarioA);
                        $estadoEje=1;
                            $dat=["res"=>"si","mensa"=>''];
                            echo(json_encode($dat));
                }else{
                    $dat=["res"=>"no","mensa"=>'Error al Agregar Producto'];
                            echo(json_encode($dat));
                }
             }



//  $dat=["res"=>"no","mensa"=>'Error al Agregar entrada'];
//             echo(json_encode($dat));

}else if($movimineto=="salida"){

      $existe=$consul->consultarixistencias($producto,$bodega);
      if($existe==1){
                                $dat=["res"=>"no","mensa"=>'No se permiten rojos en bodega'];
                                echo(json_encode($dat));
                                  

         } else{
                if($existe==2){  
                        $dat=["res"=>"no","mensa"=>'Revise producto no fraccionado o inventario en cero'];
                        echo(json_encode($dat));

            }else{

              $exit=$consul->salida($producto,$bodega);   

                if( $exit){
                    $consul->kardex($producto,$movimineto,$fecha,$factur,$provedor,$tipodetalle,$bodega,$usuarioA);
                           $estadoEje=1;
                            $dat=["res"=>"si","mensa"=>''];
                            echo(json_encode($dat));
                }else{

                        $dat=["res"=>"no","mensa"=>'Error al Retirar Producto'];
                        echo(json_encode($dat));
                }

            }
        }


}else if($movimineto=="retirar"){
  $codeP=$producto[0]["Codigo"];
   if($es_invim=="entrada" || $es_invim=="compra"){ 
    $existe=$consul->consultarixistencias($producto,$bodega);

     if($existe==1){
                                $dat=["res"=>"no","mensa"=>'No se permiten rojos en bodega'];
                                echo(json_encode($dat));
                                  

         } else{
                if($existe==2){  
                        $dat=["res"=>"no","mensa"=>'Revise producto no fraccionado o inventario en cero'];
                        echo(json_encode($dat));

            }else{

              $exit=$consul->salida($producto,$bodega);   

                if( $exit){
                    $consul->kardex($producto,"Retiro_Producto",$fecha,$factur,$provedor,$tipodetalle,$bodega,$usuarioA);
                        // $estadoEje=1;
                            $dat=["res"=>"si","mensa"=>''];
                        

                              $tempo=$this->conen->query("DELETE FROM `temporal`  WHERE movimineto='$es_invim' and numfactur='$factur' and estinvima='$provedor' and codigop='$codeP' and bodega=$bodega"); 
                                if($es_invim=="compra"){
                                       $tempo=$this->conen->query("DELETE FROM `prodcompra`   WHERE  numfactur='$factur' and provedor='$provedor' and cproducto='$codeP' and idbodegaCo=$bodega"); 
                                }


                            echo(json_encode($dat));

                }else{

                        $dat=["res"=>"no","mensa"=>'Error al Retirar Producto'];
                        echo(json_encode($dat));
                }

            }
        }
    }else if($es_invim=="salida"){


            $entra=$consul->entrada($producto,$bodega,$fecha,$preciosTodos);
                if($entra){
                    $consul->kardex($producto,"Reintegro_Producto",$fecha,$factur,$provedor,$tipodetalle,$bodega,$usuarioA);
                      
                            $dat=["res"=>"si","mensa"=>''];
                            $tempo=$this->conen->query("DELETE FROM `temporal`  WHERE movimineto='$es_invim' and numfactur='$factur' and estinvima='$provedor' and codigop='$codeP' and bodega=$bodega"); 
                            echo(json_encode($dat));
                }else{
                    $dat=["res"=>"no","mensa"=>'Error al Agregar Producto'];
                            echo(json_encode($dat));
                }


    }else{


                            $dat=["res"=>"si","mensa"=>''];
                            $tempo=$this->conen->query("DELETE FROM `temporal`  WHERE movimineto='$es_invim' and numfactur='$factur' and estinvima='$provedor' and codigop='$codeP' and bodega=$bodega"); 
                            echo(json_encode($dat));
    }
}

else if($movimineto=="obs"|| $movimineto=="ordenc" ){

    $estadoEje=1;

                            $dat=["res"=>"si","mensa"=>''];
 
                            echo(json_encode($dat));

}


if($estadoEje==1){

//       $consul="SELECT * FROM `temporal` WHERE numfactur='$factur' and movimineto='$movimineto' and codigop='$codigo' and bodega=$bodega";
// $resul=$this->conen->query($consul);
// if($fila=mysqli_fetch_object($resul)){
//     $consul1="DELETE FROM `temporal` WHERE numfactur='$factur' and movimineto='$movimineto' and codigop='$codigo' and bodega=$bodega";
//     $resul=$this->conen->query($consul1);

// }
//$lote,$fechVencimi,$R_invim,$es_invim

    $ejecutarr=$this->conen->prepare("INSERT INTO `temporal`(`numfactur`,`movimineto`,`codigop`, `nombrep`, `cantCaja`, `cantFrcc`,
    `base`, `iva`, `tipo`, `costoCaja`,`costoFrcc`, `utulidacaja`, `utulidafrcc`,
    `Total`,`lote`,`fvencimi`,`rinvima`,`estinvima`, `Observaciones`, `VentaCaja`,
     `VentaFrcc`, `VentaCaja2`,
      `VentaFrcc2`,`bodega`,`ubicacion`,`precioBlister`, `utilidacaja2`, `utilidafrcc2`, `VentaCaja3`, `VentaFrcc3`, `utilidacaja3`, `utilidafrcc3`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
   $ejecutarr->bind_param("ssssssssssssssssssssssssssssssss",$factur,$movimineto,$codigo,$Nombre,$cantidacaja,$cantidafrcc,$base,$valoriva,$iva,$pcaja,$pfrcc,$utilicaja,$utilifrcc,$Tprecio,$lote,$fechVencimi,$R_invim,$provedor,$Observaciones,$ventaCaja,$ventaFrcc,$ventaCaja2,$ventaFrcc2,$bodega,$ubicacion,$precioblister,$utilidadCaja2,$utilidadFrcc2,$precioCaja3,$precioFrcc3,$utilidadCaja3,$utilidadFrcc3);
   $ejecutarr->execute(); 
}
  



}


function consultatemporal($factura,$movimiento,$bodega,$provedor){

    if($movimiento=="compra"){
         $sentecia="SELECT * FROM `temporal` WHERE numfactur='$factura' and movimineto='$movimiento' and bodega=$bodega  and estinvima='$provedor'" ;
    }else{
        $sentecia="SELECT * FROM `temporal` WHERE numfactur='$factura' and movimineto='$movimiento' and bodega=$bodega  " ;
    }

 $resultado=$this->conen->query($sentecia);

    $fila=$resultado->fetch_all(MYSQLI_ASSOC);                
    echo (json_encode($fila));  





}

public function consulnumfactur($factura,$provedor,$bodega){

    $numfactc=$this->conen->query("SELECT * FROM `factcompra` WHERE factcompra='$factura' and provedor='$provedor' and idbodegaCo=$bodega"); 
    
  
   
    if($numfactura=mysqli_fetch_object($numfactc)){
        
    
        echo 1;

    

    }else{
        echo 0;

    }

}

}


















?>