<?php

require_once "./pdocontroller.php";
if (isset($_REQUEST['proyecto'])){$proyecto=$_REQUEST['proyecto'];}else{$proyecto="";}
if (isset($_REQUEST['rol'])){$rol=$_REQUEST['rol'];}else{$rol="";}
if (isset($_REQUEST['codemp'])){$codemp=$_REQUEST['codemp'];}else{$codemp="";}
if (isset($_REQUEST['codempresa'])){$codempresa=$_REQUEST['codempresa'];}else{$codempresa="";}
if (isset($_REQUEST['nommodulo'])){$nommodulo=$_REQUEST['nommodulo'];}else{$nommodulo="";}
if (isset($_REQUEST['accion'])){$accion=$_REQUEST['accion'];}else{$accion="";}
if (isset($_REQUEST['fuente'])){$accion=$_REQUEST['fuente'];}else{$fuente="";}
if (isset($_REQUEST['remision'])){$remision=$_REQUEST['remision'];}else{$remision="";}
if (isset($_REQUEST['codigo'])){$codigo=$_REQUEST['codigo'];}else{$codigo="";}
if (isset($_REQUEST['fecha'])){$fecha=$_REQUEST['fecha'];}else{$fecha="";}
if (isset($_REQUEST['tercero'])){$tercero=$_REQUEST['tercero'];}else{$tercero="";}
if (isset($_REQUEST['precio'])){$precio=$_REQUEST['precio'];}else{$precio="";}
//print_r($_POST);
$modulo=$nommodulo;
$DBclase="PDOCONTROLLER";
$DBconex=new $DBclase;
$syseli="Eliminado";
$primarykey="";
$primaryVlr="";
$query="select chkedi,listasql,tabla,tabqts,sqlinit,sqledit,sqllost,tabadi,datadi,proyecto,sqlres,sqlqst,chkint,sqltmp,sqlele,chkele,sqlsearch,tipo,reporte from modcmp where nommod= :modulo ";
$tipo="";
$reporte="";
$parametros=array(":modulo"=>$modulo);
try{
    $datos=$DBconex->executeconsulta($query,$parametros);
    //echo json_encode($datos);
    foreach($datos as $qdatos){
        $tabla=$qdatos["tabla"];
        $tipo=$qdatos["tipo"];
        $reporte=$qdatos["reporte"];
        $primarykey=$qdatos["chkedi"];//para verificar si tiene un campo primario
    }
 }catch(Exception $ex){
     echo $ex->getMessage();
 }


 
if($codemp!='' && $modulo!='modulo' && $rol!='empleado' && $codemp!='DND' ){
    
    $DBclase="PDO".$codemp;
 
}else{
    $DBclase="PDOCONTROLLER";
}

//echo $DBclase;

$DBconex=new $DBclase;
$queryedit="";
$paramedi=[];
$parameters=[];
$values="";
if ($accion=='temp'){
    //echo $remision.$DBclase;
    //return;
    $query="insert into pedidodetalle(nrorem,codigo,cantidad,fecha,nriper,precio) values(:remision,:codigo,:cantidad,:fecha,:tercero,:precio)";
    $parameters = [":remision" => $remision,":codigo" => $codigo,":cantidad" => 1,":fecha" => $fecha,":tercero" => $tercero,":precio" => $precio];
    try{
        $datos=$DBconex->execute_insert($query,$parameters);
        //echo $datos;
        if($datos>0){
            $query="select pedidodetalle.id,pedidodetalle.nrorem,pedidodetalle.codigo,invart.artdes,pedidodetalle.cantidad as Wn_cantidad,pedidodetalle.precio as Wn_precio,pedidodetalle.observacion as Wt_observacion from invart,pedidodetalle where pedidodetalle.codigo=invart.artcod and pedidodetalle.nrorem=:remision ";
            $parameters = [":remision" => $remision];
            try{
                $datos=$DBconex->executeconsulta($query,$parameters);
                header("Content-Type: application/json");
                echo json_encode($datos);
                return;
            }catch(Exception $ex){
                echo $ex->getMessage();
            }
        }
    }catch(Exception $ex){
        echo $ex->getMessage();
    }

    return;
}else{
    //echo $DBclase;
    
    $sqlquery="select * from ".$tabla." where ".$primarykey."= :primary ";
    $query="insert into ".$tabla."(";
}


// ESTO ES PARA CUANDO RECIBO FORMULARIO
$sw=0;
foreach ($_POST as $campo => $valor) {
    //echo "Campo: $campo, Valor: $valor<br>";
    if($campo=="nommodulo" || $campo=="codempresa" || $campo=="codemp"){
  
    }else{
        if($campo==$primarykey){
            $primaryVlr=$valor;
        }
        if(strlen($queryedit)>0){
            $queryedit=$queryedit.",";

        }
        if(substr($campo,0,3)=='chk'){
            if($valor=='no'){
                $valor=0;
            }else{
                $valor=1;
            }
        }
        if($campo!=$primarykey){
            $paramedi[":".$campo]=$valor;
        }
        

        if($sw!=0){
            $query=$query.",";
            $values=$values.",";
            $parametros[":".$campo]=$valor;
        }else{
            $parametros=array(":".$campo=>$valor);
        }

        if($campo!=$primarykey){
            $queryedit=$queryedit.$campo."= :".$campo;
        }
        $query=$query.$campo;
        $values=$values.":".$campo;
       
    }
    $sw=1;
    
}

$query=$query.") value(".$values.")";
//echo 'prima'.$primarykey;
//echo $query;
if(strlen($primarykey)>0){
    $queryedit=" update ".$tabla." set ".$queryedit." where ".$primarykey."= :primary ";
    $parameter=array(":primary"=>$primaryVlr);
    //echo $queryedit;
    try{
        $datos=$DBconex->executeconsulta($sqlquery,$parameter);
        if(is_integer($datos)){
             echo "ocurrio un error";
             return;
        }else{
            if(isset($datos) && !empty($datos) && sizeof($datos)>0){
                $paramedi[":primary"]=$primaryVlr;
                
                try{
                    $datos=$DBconex->execute_update($queryedit,$paramedi);
                    
                    if($datos>0){
                        echo "Registro ".$datos." actualiza satisfactoriamente"; 
                    }
                }catch(Exception $ex){
                    echo $ex->getMessage();
                }
            }else{
                try{
                    $datos=$DBconex->execute_insert($query,$parametros);
                    echo $datos;
                    if($datos>0){
                        echo "Registro ".$datos." almacenado satisfactoriamente"; 
                    }
                }catch(Exception $ex){
                    echo $ex->getMessage();
                }
            }
        }

    }catch(Exception $ex){
         echo $ex->getMessage();
    }
}else{
    try{
        $datos=$DBconex->execute_insert($query,$parametros);
        echo $datos;
        if($datos>0){
            echo "Registro ".$datos." almacenado satisfactoriamente"; 
        }
    }catch(Exception $ex){
        echo $ex->getMessage();
    }
}

return; 
print_r($parametros);
echo $query;

try{
    $datos=$DBconex->execute_insert($query,$parametros);
    if($datos>0){
        if($tipo=="TRS"){
            echo $tipo.$reporte.$datos.'&codemp='.$codemp.'&nommodulo='.$nommodulo;
        }else{
           echo "Registro ".$datos." almacenado satisfactoriamente"; 
        }
        
    }
 }catch(Exception $ex){
     echo $ex->getMessage();
 }

?>