prepare("$SQL_INSERT_PEDIDOS");
$stmtP->execute();
//echo $SQL_INSERT_PEDIDOS;
// echo "
";
//Actualizacion del correlativo en la tabla SY68
$NroCorrelativo = $_POST['InputPedido'] + 1;
$SQL_CORRELATIVO = "UPDATE SY6891XX SET SY68002 = " . $NroCorrelativo . " WHERE SY68001 = 'SDP1'" ;
$stmtCorr = $conn->prepare("$SQL_CORRELATIVO");
$stmtCorr->execute();
//Variable que recorre todos los productos posibles en el pedido
$iProd = 1;
while ($iProd < 6){
$variable = 'form_codigo' . $iProd;
if ($variable == 'form_codigo1'){
$SQL_Q = "INSERT INTO [dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] ([NRO_PEDIDO], [COD_PRODUCTO], [DESC_PRODUCTO], [CANTIDAD], [PRECIO]) VALUES (" . $_POST['InputPedido'] . ",'" . $_POST['form_codigo1'] . "','" . $_POST['form_descripcion1'] . "', " . $_POST['form_unidad1'] . ", " . round($_POST['form_precio1'],3) . ")";
$stmt = $conn->prepare("$SQL_Q");
$stmt->execute();
}
if ($variable == 'form_codigo2'){
$SQL_Q = "INSERT INTO [dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] ([NRO_PEDIDO], [COD_PRODUCTO], [DESC_PRODUCTO], [CANTIDAD], [PRECIO]) VALUES (" . $_POST['InputPedido'] . ",'" . $_POST['form_codigo2'] . "','" . $_POST['form_descripcion2'] . "', " . $_POST['form_unidad2'] . ", " . round($_POST['form_precio2'],3) . ")";
$stmt = $conn->prepare("$SQL_Q");
$stmt->execute();
}
if ($variable == 'form_codigo3'){
$SQL_Q = "INSERT INTO [dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] ([NRO_PEDIDO], [COD_PRODUCTO], [DESC_PRODUCTO], [CANTIDAD], [PRECIO]) VALUES (" . $_POST['InputPedido'] . ",'" . $_POST['form_codigo3'] . "','" . $_POST['form_descripcion3'] . "', " . $_POST['form_unidad3'] . ", " . round($_POST['form_precio3'],3) . ")";
$stmt = $conn->prepare("$SQL_Q");
$stmt->execute();
}
if ($variable == 'form_codigo4'){
$SQL_Q = "INSERT INTO [dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] ([NRO_PEDIDO], [COD_PRODUCTO], [DESC_PRODUCTO], [CANTIDAD], [PRECIO]) VALUES (" . $_POST['InputPedido'] . ",'" . $_POST['form_codigo4'] . "','" . $_POST['form_descripcion4'] . "', " . $_POST['form_unidad4'] . ", " . round($_POST['form_precio4'],3) . ")";
$stmt = $conn->prepare("$SQL_Q");
$stmt->execute();
}
if ($variable == 'form_codigo5'){
$SQL_Q = "INSERT INTO [dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] ([NRO_PEDIDO], [COD_PRODUCTO], [DESC_PRODUCTO], [CANTIDAD], [PRECIO]) VALUES (" . $_POST['InputPedido'] . ",'" . $_POST['form_codigo5'] . "','" . $_POST['form_descripcion5'] . "', " . $_POST['form_unidad5'] . ", " . round($_POST['form_precio5'], 3) . ")";
$stmt = $conn->prepare("$SQL_Q");
$stmt->execute();
}
$iProd++;
$SQL_Q = null;
$stmt = null;
// echo "
";
// echo $SQL_Q;
}
//sqlsrv_close( $conn );
header("Location: http://204.10.11.12/SPD/tablesPedidos.php");
break;
case "Actualizar":
//Actualizacion de Pedidos
$status_pedido = "Revisada";
$tipo_orden = 2;
$usuario = 'MOLIVO';
$fecha_act = date("Ymd");
$varformUnidad = null;
$varformCodigo = null;
//molivo
var_dump($_POST);
//Variable recogidas del POST
$Cod_vendedor = explode(' ', $_POST['cod_vendedor']);
$fecha_creacion = substr($_POST['fecha_creacion'], 0,4) . substr($_POST['fecha_creacion'], 5,2) . substr($_POST['fecha_creacion'], 8,2);
$NroPedido = $_POST['nro_pedido'];
$TasaDolares = $_POST['TasaDolares'];
for ($i=1; $i <= 5; $i++){
//echo $i;
$varformUnidad = 'form_unidad' . $i;
$varformCodigo = 'form_codigo' . $i;
$varformDesc_Producto = 'form_descripcion' . $i;
$varformPrecio = 'form_precio' . $i;
if (($_POST[$varformUnidad] == 0) and ($_POST[$varformCodigo] <> '')){
$SQL_DEL = "DELETE FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] WHERE COD_PRODUCTO = '" . $_POST[$varformCodigo] . "' AND NRO_PEDIDO = " . $NroPedido;
$stmt_DEL = $conn->prepare("$SQL_DEL");
$stmt_DEL->execute();
//echo "echo en borrar";
}else {
$SQL_CONS = "SELECT * FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] WHERE NRO_PEDIDO = " . $NroPedido . " AND COD_PRODUCTO = '" . $_POST[$varformCodigo] . "'";
$stmt_CONS = $conn->prepare("$SQL_CONS");
$stmt_CONS->execute();
$result = $stmt_CONS->fetchAll(PDO::FETCH_ASSOC);
if (empty($result)){
if ($_POST[$varformCodigo] <> ''){
$SQL_INS = "INSERT INTO [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] (NRO_PEDIDO, COD_PRODUCTO, DESC_PRODUCTO, CANTIDAD, PRECIO) VALUES ($NroPedido, '" . $_POST[$varformCodigo] . "','" . $_POST[$varformDesc_Producto] . "'," . $_POST[$varformUnidad] . "," . $_POST[$varformPrecio] . ")";
$stmt_INS = $conn->prepare("$SQL_INS");
$stmt_INS->execute();
//echo "echo en insert";
}
}else {
if (($_POST[$varformUnidad] > 0) and ($_POST[$varformCodigo] <> '')){
$SQL_UPD = "UPDATE [PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] SET CANTIDAD = " . $_POST[$varformUnidad] . ", PRECIO = " . $_POST[$varformPrecio] . " WHERE NRO_PEDIDO = " . $NroPedido . " AND COD_PRODUCTO = '" . $_POST[$varformCodigo] . "'";
$stmt_UPD = $conn->prepare("$SQL_UPD");
$stmt_UPD->execute();
}
}
}
} //Fin del ciclo FOR
//Consulta del pedido para su actualizacion de monto total
$SQL_SEL_PED = "SELECT sum((PRECIO) * CANTIDAD) TOTAL FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] where NRO_PEDIDO = '" . $NroPedido . "'";
$stmt_SEL_PED = $conn->prepare("$SQL_SEL_PED");
$stmt_SEL_PED->execute();
$result_SEL_PED = $stmt_SEL_PED->fetchAll(PDO::FETCH_ASSOC);
//Refrescamiento de TASA
$SQL_TASA = "SELECT montoTasa FROM dbo.PROLICOR_TASA WHERE fecha =convert(date,GETDATE())";
$stmt_TASA = $conn->prepare("$SQL_TASA");
$stmt_TASA->execute();
$result_TASA = $stmt_TASA->fetchAll(PDO::FETCH_ASSOC);
$SQL_UPD2 = "UPDATE [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] SET USUARIO_ULT_ACT = '" . $_SESSION["Nombre"] . "' , TASA_REGISTRO = ROUND(". $result_TASA[0]['montoTasa'] .",2) , TOTAL_PEDIDO = ROUND(" . $result_SEL_PED[0]['TOTAL'] . ",2) , TOTAL_DOLARES = ROUND(" . $result_SEL_PED[0]['TOTAL'] / $result_TASA[0]['montoTasa'] . ",2) , FECHA_ULT_ACT = '" . $fecha_act . "', OBSERVACION = '" . $_POST['observaciones'] . "' WHERE NRO_PEDIDO = '" . $NroPedido . "'";
$stmt_UPD2 = $conn->prepare("$SQL_UPD2");
$stmt_UPD2->execute();
// sqlsrv_close($conn);
// header("Location: http://204.10.11.12/SPD/tablesPedidos.php");
//header("Location: tablesPedidos.php");
// echo "";
// die();
break;
//Generacion de TXT
case 3:
//Procesamiento de Pedidos y generacion de Archivo TXT
$ArrTXT = [];
$Pedidos = NULL; //Arreglo para almacenar las lineas del TXT
$fecha_act = date("Ymd");
$flag = 0;
foreach ($_POST["estatusP"] as $rowP){
$resultP = explode("-",$rowP);
//var_dump($resultP);
if ($resultP[1] == "Aprobada"){
$flag = 1;
$conn = new PDO("sqlsrv:Server=204.10.11.95;"."Database=iScalaDB", "sa", "SQL2003EE");
$SQL_TXT = "SELECT VP.*, SL.SL01002, SY.SY24003, SC.SC01052 COSTO, SC.SC01073 EMPAQUE , DV.* , SL01052 OBSERVACION1, SL01053 OBSERVACION2,
(SELECT montoTasa FROM dbo.PROLICOR_TASA WHERE fecha =convert(date,GETDATE())) tasaDolar,
(SELECT montoEuro FROM dbo.PROLICOR_TASA WHERE fecha =convert(date,GETDATE())) tasaEuro
FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] VP LEFT JOIN SL019100 SL ON SL01001 = COD_CLIENTE LEFT JOIN SY249100 SY ON COD_VENDEDOR = SY24002 LEFT JOIN [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] DV ON DV.NRO_PEDIDO = VP.NRO_PEDIDO LEFT JOIN SC019100 SC ON SC.SC01001 = DV.COD_PRODUCTO WHERE SY24001 = 'BK' AND VP.NRO_PEDIDO = " . $resultP[0] ;
$stmt = $conn->prepare("$SQL_TXT");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$NumerolineaOrden = "10"; //Variable asociado al nro de linea segun iscala
foreach ($result as $key => $row) {
$NroPedido = $row['NRO_PEDIDO']; //(10) LISTO
$NroTipo = $row['TIPO_ORDEN']; //(1) LISTO
$RIFOrden = str_pad($row['COD_CLIENTE'], 10); //(10) Rif Cliente Orden
$RIFEntrega = str_pad($row['COD_CLIENTE'],10); //(10) Rif Cliente Entrega
$observacion1 = str_pad($row['OBSERVACION1'], 35); //(35) LISTO
$observacion2 = str_pad($row['OBSERVACION2'], 35); //(35) LISTO
$DiasCredito = str_pad($row['DIAS_CREDITO'], 2); //(2) Condicion de Pago LISTO
$FechaOrden = substr($row['FECHA_CREACION'], 0,4) . substr($row['FECHA_CREACION'], 5,2) . substr($row['FECHA_CREACION'], 8,2); //(8) Fecha Orden
$FechaEntregaOrden = substr($row['FECHA_CREACION'], 0,4) . substr($row['FECHA_CREACION'], 5,2) . substr($row['FECHA_CREACION'], 8,2); //(8) Fecha Orden
$ReferenciaInterna = substr(str_pad($row['SY24003'], 20),0,20); //Referiencia Interna (20) SACAR LA LONGITUD DE ESTO
$ReferenciaCliente = substr(str_pad("REFERENCIA CLIENTE",20),0,20); //Referencia Cliente (35)
$CodigoVendedor = str_pad($row['COD_VENDEDOR'], 3); //(3) VALIDAR ESTA LONGITUD
$Fechafactura = substr($row['FECHA_CREACION'], 0,4) . substr($row['FECHA_CREACION'], 5,2) . substr($row['FECHA_CREACION'], 8,2); //Fecha Factura
$NumerolineaOrden = str_pad($NumerolineaOrden, 6,"0", STR_PAD_LEFT); //(6)
$NumeroSublinea = "000000"; //(6)
$CodigoStock = str_pad($row['COD_PRODUCTO'], 10,0); //(10)
$descripcion1 = substr(str_pad($row['DESC_PRODUCTO'], 24,' '),0,24); //(24)
$descripcion2 = substr(str_pad($row['DESC_PRODUCTO'],25),0,25); //(25)
if (strpos($descripcion1, "ñ") or strpos($descripcion1, "Ñ")){
$descripcion1 = substr(str_pad($row['DESC_PRODUCTO'], 25,' '),0,25); //(25)
$descripcion2 = substr(str_pad($row['DESC_PRODUCTO'],26),0,26); //(26)
}
$PrecioPVP = str_pad(round($row['PRECIO'],2), 15); //(15)
$Costo = str_pad($row['COSTO'], 15); //(15) round($row['PRECIO'],2)
$CantidadPedida = str_pad($row['CANTIDAD'], 12); //(12) VALIDAR ESTA LONGITUD
$CantidadSolicitada = str_pad($row['CANTIDAD'], 12); //(12) VALIDAR ESTA LONGITUD
$FechaEntrega = substr($row['FECHA_CREACION'], 0,4) . substr($row['FECHA_CREACION'], 5,2) . substr($row['FECHA_CREACION'], 8,2); //Fecha Entrega (8)
$CantidaddeEmpaque = str_pad($row['EMPAQUE'], 6); //(6) validar longitud
$salto = "\r\n";
$LINEA_ARCHIVO = $NroPedido . $NroTipo . $RIFOrden . $RIFEntrega . $observacion1 . $observacion2 . $DiasCredito . $FechaOrden . $FechaEntregaOrden . $ReferenciaInterna . $ReferenciaCliente . $CodigoVendedor . $Fechafactura . $NumerolineaOrden . $NumeroSublinea . $CodigoStock . $descripcion1 . $descripcion2 . $PrecioPVP . $Costo . $CantidadPedida . $CantidadSolicitada . $FechaEntrega . $CantidaddeEmpaque;
$NumerolineaOrden = $NumerolineaOrden + 10;
$ArrTXT[] = $LINEA_ARCHIVO; //Variable Arreglo con el contenido del registro
}
$Pedidos = $Pedidos . $NroPedido . ',';
$restPedidos = substr($Pedidos, 0, -1); //devuelve los pedidos ejecutados
$fh = fopen("OrdenesPedidos/PedidoTXT.txt", 'w') or die("Se produjo un error al crear el archivo"); //Abro el archivo con nombre PedidoTXT.txt
foreach($ArrTXT as $CadenaTXT){
fwrite($fh, $CadenaTXT.PHP_EOL); //Almacena en el archivo TXT los registros de los pedidos aprobados
}
fclose($fh); //Cierro el TXT
} else { //fin de aprobadas
if ($resultP[1] == "Revisada"){
//echo "La orden fue actualizada a Revisada.";
$SQL_review = "UPDATE [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] SET STATUS_PEDIDO = 'Revisada', FECHA_ULT_ACT = '" . $fecha_act . "', USUARIO_ULT_ACT = '". $_SESSION["Nombre"] ."' WHERE NRO_PEDIDO = " . $resultP[0];
$stmt_review = $conn->prepare("$SQL_review");
$stmt_review->execute();
$SQL_review = null;
//echo "";
}else{
//echo "La orden fue actualizada a Pendiente por Revision.";
$SQL_pend = "UPDATE [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] SET STATUS_PEDIDO = 'Pendiente por Revision', FECHA_ULT_ACT = '" . $fecha_act . "', USUARIO_ULT_ACT = '". $_SESSION["Nombre"] ."' WHERE NRO_PEDIDO = " . $resultP[0];
$stmt_pend = $conn->prepare("$SQL_pend");
$stmt_pend->execute();
//echo $SQL_pend;
$SQL_pend = null;
//echo "";
}
}
}
if ($flag == 1){
$SQL_aprobada = "UPDATE [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] SET STATUS_PEDIDO = 'Aprobada', FECHA_APROBACION = '" . $fecha_act . "', USUARIO_ULT_APROB = '". $_SESSION["Nombre"] ."' WHERE NRO_PEDIDO in (" . $restPedidos . ")";
$stmt_aprob = $conn->prepare("$SQL_aprobada");
$stmt_aprob->execute();
$SQL_aprobada = null;
$rutaArchivo = __DIR__."\\". "OrdenesPedidos\PedidoTXT.txt";
$archivo = file_get_contents($rutaArchivo);
$NombreArchivo = basename($rutaArchivo);
ob_clean();
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename=' . $NombreArchivo);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header("Content-Type: text/plain");
ob_end_clean();
flush();
readfile($rutaArchivo);
}
//location.href = "admin.php";
//sqlsrv_close( $conn );
//header("Location: admin.php");
//exit;
break;
case "Revision":
$resultP = explode("-",$rowP);
$fecha_act = date("Ymd");
foreach ($_POST['estatusP'] as $rowP){
$resultP = explode("-",$rowP);
if ($resultP[1] == 'Revisada'){
// echo "";
$conn = new PDO("sqlsrv:Server=204.10.11.95;"."Database=iScalaDB", "sa", "SQL2003EE");
$SQL_udp = "UPDATE [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] SET STATUS_PEDIDO = '" . $resultP[1] . "', FECHA_APROBACION = '" . $fecha_act . "', USUARIO_ULT_APROB = '". $_SESSION["Nombre"] ."' WHERE NRO_PEDIDO = '" . $resultP[0] . "'";
$stmt = $conn->prepare("$SQL_udp");
$stmt->execute();
}
}
break;
case "Eliminar":
//Elimaro ordenes o pedidos
if (isset($_POST['nroPedido'])){
$SQL_DELETE_PEDIDOS_DETALLE = "DELETE FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS_DETALLE] WHERE NRO_PEDIDO = " . $_POST['nroPedido'];
$SQL_DELETE_PEDIDOS = "DELETE FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_PEDIDOS] WHERE NRO_PEDIDO = " . $_POST['nroPedido'];
$stmtDPD = $conn->prepare("$SQL_DELETE_PEDIDOS_DETALLE");
$stmtDPD->execute();
$stmtDP = $conn->prepare("$SQL_DELETE_PEDIDOS");
$stmtDP->execute();
//sqlsrv_close($conn);
}
header("Location: http://204.10.11.12/SPD/tablesPedidos.php");
break;
case 'inicio':
//Validacion de inicio de sesion
//Variables enviadas por el formulario
$user = trim($_POST["user"]);
$passw = trim($_POST["passw"]);
// Variables del servidor LDAP PROLICOR
$ds = "dinazpro.com.ve";
$dn = "dc=dinazpro,dc=com,dc=ve";
$puertoldap = 389;
$ldapconn = ldap_connect($ds,$puertoldap);
//Procesamiento de Usuario
$user_login = explode("@", $user);
$user_login2 = $user_login[0] . "@" . $ds;
//Asigno los datos del usuario a la validacion del LDAP
$ldaprdn = "cuentacorreo@dinazpro.com.ve";
$ldappass = "D3b1@7n";
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);
$ldapbind = @ldap_bind($ldapconn, $user_login2 , $passw);
if (!$ldapbind){
header("Location: http://204.10.11.12/SPD/login.htm"); //usuario No autenticado
}else{
$filter="(mail=".trim($user).")";
$sr = @ldap_search($ldapconn, $dn, $filter);
$info = @ldap_get_entries($ldapconn, $sr);
// if (count == 0){
// header("Location: http://204.10.11.12/SPD/login.htm");
// };
session_start();
$_SESSION["Cargo"] = $info[0]["description"][0];
$_SESSION["Nombre"] = $info[0]["displayname"][0];
$_SESSION["Gerencia"] = $info[0]["department"][0];
$_SESSION["Mail"] = $info[0]["mail"][0];
$conn = new PDO("sqlsrv:Server=204.10.11.95;"."Database=iScalaDB", "sa", "SQL2003EE");
$SQL_SESSION = "SELECT CORREO, STATUS_USER, PERFIL FROM [iScalaDB].[dbo].[PROLICOR_SGC_VENTAS_USER] WHERE CORREO = '" . $_SESSION["Mail"] . "'";
$stmt = $conn->prepare("$SQL_SESSION");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$_SESSION["Perfil"] = $result[0]['PERFIL'];
$_SESSION["STATUS_USER"] = $result[0]['STATUS_USER'];
if ($_SESSION["STATUS_USER"] == '0') {
header("Location: closet.php");
}
// Establezco tiempo de vida de la sesión
$inactividad = 1000;
// Comprobar si $_SESSION["timeout"] está establecida
if(isset($_SESSION["timeout"])){
// Calcular el tiempo de vida de la sesión (TTL = Time To Live)
$sessionTTL = time() - $_SESSION["timeout"];
if($sessionTTL > $inactividad){
session_destroy();
header("Location:http://204.10.11.12/SPD/login.htm");
}else {
header("Location: http://204.10.11.12/SPD/pedidos.php");
}
}
// El siguiente key se crea cuando se inicia sesión
$_SESSION["timeout"] = time();
} //fin del primer case
break;
}
header("Location: pedidos.php");
?>