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"); ?>