query("SELECT planpagonumero,unidad,empresa,tipodocumento,numerodocumento,origenhes,conciliadopago FROM dtplanpagos WHERE conciliadopago = false;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar planificado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPayableOrders() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT 'FRIGILUX' AS Unidad,'EMDOM II' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento, RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario,CASE WHEN b.campo4 <> '' THEN RTRIM(b.campo4) ELSE RTRIM(fax) END AS cuentabanco, CASE WHEN b.campo3 <> '' THEN RTRIM(b.campo3) ELSE RTRIM(nit) END AS Banco,CASE WHEN b.campo2 <> '' THEN RTRIM(b.campo2) ELSE RTRIM(rif) END AS rifproveedor, CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta,RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar, 'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento,a.fe_us_mo AS fecharegistro, nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda, CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(m.seg_des) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,40 AS owneruser,0 AS keyfile FROM TECH_A.dbo.docum_cp a LEFT JOIN TECH_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN TECH_A.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN TECH_A.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT','N/DB') AND a.saldo > 0 UNION SELECT 'FRIGILUX' AS Unidad,'EMDOM' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento,RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario, RTRIM(b.fax) AS cuentabanco,RTRIM(b.nit) AS Banco,RTRIM(b.rif) AS rifproveedor,CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta, RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar,'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento, a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda, CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(m.seg_des) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,40 AS owneruser,0 AS keyfile FROM ENDOM.dbo.docum_cp a LEFT JOIN ENDOM.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN ENDOM.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN ENDOM.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 UNION SELECT 'FRIGILUX' AS Unidad,'LUXEM' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento,RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario, RTRIM(b.fax) AS cuentabanco,RTRIM(b.nit) AS Banco,RTRIM(b.rif) AS rifproveedor,CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta, RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar,'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento, a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda, CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(m.seg_des) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,40 AS owneruser,0 AS keyfile FROM LUXEM_A.dbo.docum_cp a LEFT JOIN LUXEM_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN LUXEM_A.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN LUXEM_A.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 UNION SELECT 'FRIGILUX' AS Unidad,'TECHNICAL SERVICE LUX' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento,RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario, RTRIM(b.fax) AS cuentabanco,RTRIM(b.nit) AS Banco,RTRIM(b.rif) AS rifproveedor,CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta, RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar,'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento, a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda, CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(m.seg_des) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,40 AS owneruser,0 AS keyfile FROM TECHN_A.dbo.docum_cp a LEFT JOIN TECHN_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN TECHN_A.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN TECHN_A.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 ORDER BY Unidad,tipodocumento,numerodocumento;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPayableOrdersFdc() { $errors = array(); $data = array(); $database = new externalDatabaseFdc(); if (!empty($result = $database->query("SELECT 'FUNDACION' AS Unidad,'FUNDACION FRIGILUX' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento, RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario,CASE WHEN b.campo4 <> '' THEN RTRIM(b.campo4) ELSE RTRIM(fax) END AS cuentabanco, CASE WHEN b.campo3 <> '' THEN RTRIM(b.campo3) ELSE RTRIM(nit) END AS Banco,CASE WHEN b.campo2 <> '' THEN RTRIM(b.campo2) ELSE RTRIM(rif) END AS rifproveedor, CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta,RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar, 'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento,a.fe_us_mo AS fecharegistro, nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda, CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(b.campo6) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,51 AS owneruser,0 AS keyfile FROM FUNDA_FI.dbo.docum_cp a LEFT JOIN FUNDA_FI.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN FUNDA_FI.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN FUNDA_FI.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 UNION SELECT 'FUNDACION' AS Unidad,'INMOBILIARIA LUX' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento,RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario, RTRIM(b.campo4) AS cuentabanco,RTRIM(b.campo3) AS Banco,RTRIM(b.campo2) AS rifproveedor,CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta, RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar,'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento, a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN '$' THEN 'USD' END AS moneda, CASE WHEN moneda = '$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = '$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(b.campo6) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,51 AS owneruser,0 AS keyfile FROM INMOLU_A.dbo.docum_cp a LEFT JOIN INMOLU_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN INMOLU_A.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN INMOLU_A.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 UNION SELECT 'FUNDACION' AS Unidad,'SUMINISTROS' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento,RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario, RTRIM(b.campo4) AS cuentabanco,RTRIM(b.campo3) AS Banco,RTRIM(b.campo2) AS rifproveedor,CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta, RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar,'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento, a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura,RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda, CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo, CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(b.campo6) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto, 'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma,51 AS owneruser,0 AS keyfile FROM SUMI_A.dbo.docum_cp a LEFT JOIN SUMI_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN SUMI_A.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN SUMI_A.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 ORDER BY Unidad,tipodocumento,numerodocumento;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPayableOrdersKvc() { $errors = array(); $data = array(); $database = new externalDatabaseKvc(); if (!empty($result = $database->query("SELECT 'COLEGIO' AS Unidad,'KAVAC' AS Empresa,tipo_doc AS tipodocumento,nro_doc AS numerodocumento, RTRIM(a.co_cli) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario,CASE WHEN b.campo4 <> '' THEN RTRIM(b.campo4) ELSE RTRIM(fax) END AS cuentabanco, CASE WHEN b.campo3 <> '' THEN RTRIM(b.campo3) ELSE RTRIM(nit) END AS Banco,CASE WHEN b.campo2 <> '' THEN RTRIM(b.campo2) ELSE RTRIM(rif) END AS rifproveedor, CASE WHEN b.campo1 <> '' THEN RTRIM(b.campo1) ELSE RTRIM(b.prov_des) END AS titularcuenta,RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar, 'Pendiente' AS profite,RTRIM(last_name) AS registradopor,fec_emis AS fechaemision,fec_venc AS fechavencimiento,a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura, RTRIM(observa) AS observacion,tasa AS tasacambio,CASE moneda WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,CASE WHEN moneda = 'US$' THEN ROUND(monto_net/tasa,2) ELSE monto_net END AS montoneto,CASE WHEN moneda = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo,CASE WHEN a.campo2 <> '' THEN RTRIM(a.campo2) ELSE RTRIM(b.campo6) END AS Moneda_Proveedor,RTRIM(b.campo5) AS tipocuenta,RTRIM(a.campo1) AS Area_Gasto,'No planificado' AS Planificado,0 AS origenhes,null AS linkproforma, 55 AS owneruser,0 AS keyfile FROM KAVAC_A.dbo.docum_cp a LEFT JOIN KAVAC_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN MasterProfit.dbo.employee c ON c.employee_i = a.co_us_in LEFT JOIN KAVAC_A.dbo.tipo_pro d ON d.tip_pro = b.tipo LEFT JOIN KAVAC_A.dbo.segmento m ON m.co_seg = b.co_seg WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 AND fec_emis > CAST('2023-01-01' AS DATETIME) ORDER BY Unidad,tipodocumento,numerodocumento;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getHESPayableOrders($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $userID = $parameters['userID']; $guardID = $parameters['guardID']; $empresa = $parameters['filter']; if (!empty($result = $database->query("SELECT unidad AS Unidad,empresa AS Empresa,tipodocumento,numerodocumento,null AS codigoproveedor,RTRIM(beneficiario) AS Beneficiario, RTRIM(cuentabanco) AS cuentabanco,RTRIM(banco) AS Banco,RTRIM(rifproveedor) AS rifproveedor,RTRIM(beneficiario) AS titularcuenta,RTRIM(tipoproveedor) AS Tipo_proveedor, false AS autorizadopagar,'Pendiente' AS profite,RTRIM(registradopor) AS registradopor,fechaemision,fechavencimiento,fecharegistro,numerofactura,observacion, tasacambio AS tasacambio,moneda,montoneto,montosaldo,RTRIM(monedaproveedor) AS Moneda_Proveedor,'CORRIENTE' AS tipocuenta,RTRIM(clasegasto) AS Area_Gasto, 'No planificado' AS Planificado,1 AS origenhes,cantidadSKU,unidades,origen,numeroPOOdoo,linkproforma,linkseleccion,categoria AS Categoria,temporada,estatuscompras,fechacompras, DATE_FORMAT(fechacompras, '%d %M %Y') AS fechacomprasXml,estatuslogistico,fechalogistico,DATE_FORMAT(fechalogistico, '%d %M %Y') AS fechalogisticoXml,owneruser,0 AS keyfile FROM hsplanpagos WHERE montosaldo > 0 AND (owneruser = $userID OR owneruser IN (" .$guardID. ")) AND empresa IN (" .$empresa. ") ORDER BY numerodocumento;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getBankAccountHolder($beneficiarioID) { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT beneficiario,titularcuenta,cuentabanco,banco,codigobanco,codigoswift,tipocuenta,rifproveedor,false AS selected FROM clbancoprov WHERE beneficiario LIKE '" .$beneficiarioID. "' ORDER BY titularcuenta;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getOrdersPayableVlx() { $errors = array(); $data = array(); $database = new externalDatabaseVlx(); if (!empty($result = $database->query("SELECT 'VENELUX' AS Unidad,'VENELUX' AS Empresa,co_tipo_doc AS tipodocumento,nro_doc AS numerodocumento, RTRIM(a.co_prov) AS codigoproveedor,RTRIM(b.prov_des) AS Beneficiario,RTRIM(b.fax) AS cuentabanco,RTRIM(b.nit) AS Banco,RTRIM(b.rif) AS rifproveedor, RTRIM(d.des_tipo) AS Tipo_proveedor,pagar AS autorizadopagar,'Pendiente' AS profite,RTRIM(Desc_Usuario) AS registradopor,fec_emis AS fechaemision, fec_venc AS fechavencimiento,a.fe_us_mo AS fecharegistro,nro_fact AS numerofactura,observa AS observacion,tasa AS tasacambio,CASE a.co_mone WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,CASE WHEN a.co_mone = 'US$' THEN ROUND(total_neto/tasa,2) ELSE total_neto END AS montoneto,CASE WHEN a.co_mone = 'US$' THEN ROUND(a.saldo/tasa,2) ELSE a.saldo END AS montosaldo,CASE WHEN b.formtype = '' THEN CASE b.co_mone WHEN 'BSD' THEN 'BOLIVARES' WHEN 'US$' THEN 'DOLARES' END ELSE RTRIM(b.formtype) END AS Moneda_Proveedor,RTRIM(a.campo1) AS Area_Gasto,'No planificado' AS Planificado FROM VENE_A.dbo.saDocumentoCompra a LEFT JOIN VENE_A.dbo.saProveedor b ON b.co_prov = a.co_prov LEFT JOIN MasterProfitPro.dbo.MpUsuario c ON c.Cod_Usuario = a.co_us_in LEFT JOIN VENE_A.dbo.saTipoProveedor d ON d.tip_pro = b.tip_pro WHERE anulado = 0 AND co_tipo_doc IN ('AJPM','FACT') AND a.saldo > 0;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setApprovalPayment($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $codigobeneficiario = $parameters['codigobeneficiario']; $beneficiario = $parameters['beneficiario']; $cuentabanco = $parameters['cuentabanco']; $banco = $parameters['banco']; $codigobanco = $parameters['codigobanco']; $codigoswift = $parameters['codigoswift']; $tipocuenta = $parameters['tipocuenta']; $tipoproveedor = $parameters['tipoproveedor']; $rifproveedor = $parameters['rifproveedor']; $monedaproveedor = $parameters['monedaproveedor']; $registradopor = $parameters['registradopor']; $fechaemision = $parameters['fechaemision']; $fechavencimiento = $parameters['fechavencimiento']; $fecharegistro = $parameters['fecharegistro']; $numerofactura = $parameters['numerofactura']; $observacion = $parameters['observacion']; $tasacambio = $parameters['tasacambio']; $moneda = $parameters['moneda']; $montoneto = $parameters['montoneto']; $montosaldo = $parameters['montosaldo']; $metodopago = $parameters['metodopago']; $autorizadopor = $parameters['autorizadopor']; $fechaautorizadopor = $parameters['fechaautorizado']; $tasaautorizada = $parameters['tasaautorizada']; $montoautorizado = $parameters['montoautorizado']; $monedaautorizada = $parameters['monedaautorizada']; $empresapagadora = $parameters['empresapagadora']; $clasegasto = $parameters['clasegasto']; $bancopagador = $parameters['bancopagador']; $codigounico = $parameters['codigounico']; $origenhes = $parameters['origenhes']; $cantidadSKU = $parameters['cantidadSKU']; $unidades = $parameters['unidades']; $origen = $parameters['origen']; $numeroPOOdoo = $parameters['numeroPOOdoo']; $linkproforma = $parameters['linkproforma']; $linkseleccion = $parameters['linkseleccion']; $categoria = $parameters['categoria']; $temporada = $parameters['temporada']; $estatuscompras = $parameters['estatuscompras']; $fechacompras = $parameters['fechacompras']; $estatuslogistico = $parameters['estatuslogistico']; $fechalogistico = $parameters['fechalogistico']; $owneruser = $parameters['owneruser']; $result = $database->delete("DELETE FROM mvplanpagos WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND origenhes = $origenhes;"); if (!empty($result = $this->createApprovalPayment($unidad,$empresa,$docuID,$numID,$codigobeneficiario,$beneficiario,$cuentabanco,$banco,$codigobanco,$codigoswift, $tipocuenta,$tipoproveedor,$rifproveedor,$monedaproveedor,$registradopor,$fechaemision,$fechavencimiento,$fecharegistro,$numerofactura,$observacion,$tasacambio, $moneda,$montoneto,$montosaldo,$metodopago,$autorizadopor,$fechaautorizadopor,$tasaautorizada,$montoautorizado,$monedaautorizada,$empresapagadora,$clasegasto, $bancopagador,$codigounico,$origenhes,$cantidadSKU,$unidades,$origen,$numeroPOOdoo,$linkproforma,$linkseleccion,$categoria,$temporada,$estatuscompras,$fechacompras, $estatuslogistico,$fechalogistico,$owneruser))) { $data = $result; } else { $errors[] = "Documento no autorizado para pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setDisapprovePayment($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $origenhes = $parameters['origenhes']; if (!empty($result = $database->delete("DELETE FROM mvplanpagos WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID;"))) { return responses::create(array( 'status' => 200, 'message' => 'Desautorizado el pago del documento.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createApprovalPayment($unidad,$empresa,$docuID,$numID,$codigobeneficiario,$beneficiario,$cuentabanco,$banco,$codigobanco,$codigoswift,$tipocuenta, $tipoproveedor,$rifproveedor,$monedaproveedor,$registradopor,$fechaemision,$fechavencimiento,$fecharegistro,$numerofactura,$observacion,$tasacambio,$moneda,$montoneto, $montosaldo,$metodopago,$autorizadopor,$fechaautorizadopor,$tasaautorizada,$montoautorizado,$monedaautorizada,$empresapagadora,$clasegasto,$bancopagador,$codigounico, $origenhes,$cantidadSKU,$unidades,$origen,$numeroPOOdoo,$linkproforma,$linkseleccion,$categoria,$temporada,$estatuscompras,$fechacompras,$estatuslogistico,$fechalogistico, $owneruser) { $errors = array(); $database = new database("dbprosge"); /*try { $fechacompras = DateTime::createFromFormat('Y-m-d', $fechacompras)->format('Y-m-d'); } catch (Exception $e) { $fechacompras = date("Y-m-d"); } try { $fechalogistico = DateTime::createFromFormat('Y-m-d', $fechalogistico)->format('Y-m-d'); } catch (Exception $e) { $fechalogistico = date("Y-m-d"); } */ if (empty($errors)) { if (!empty($result = $database->insert('mvplanpagos', array( 'unidad' => $unidad, 'empresa' => $empresa, 'tipodocumento' => $docuID, 'numerodocumento' => $numID, 'codigobeneficiario' => $codigobeneficiario, 'beneficiario' => $beneficiario, 'cuentabanco' => $cuentabanco, 'banco' => $banco, 'codigobanco' => $codigobanco, 'codigoswift' => $codigoswift, 'tipocuenta' => $tipocuenta, 'tipoproveedor' => $tipoproveedor, 'rifproveedor' => $rifproveedor, 'monedaproveedor' => $monedaproveedor, 'registradopor' => $registradopor, 'fechaemision' => $fechaemision, 'fechavencimiento' => $fechavencimiento, 'fecharegistro' => $fecharegistro, 'numerofactura' => $numerofactura, 'observacion' => $observacion, 'tasacambio' => $tasacambio, 'moneda' => $moneda, 'montoneto' => $montoneto, 'montosaldo' => $montosaldo, 'metodopago' => $metodopago, 'autorizadopor' => $autorizadopor, 'fechaautorizadopor' => $fechaautorizadopor, 'tasaautorizada' => $tasaautorizada, 'montoautorizado' => $montoautorizado, 'monedaautorizada' => $monedaautorizada, 'empresapagadora' => $empresapagadora, 'clasegasto' => $clasegasto, 'bancopagador' => $bancopagador, 'codigounico' => $codigounico, 'origenhes' => $origenhes, 'cantidadSKU' => $cantidadSKU, 'unidades' => $unidades, 'origen' => $origen, 'numeroPOOdoo' => $numeroPOOdoo, 'linkproforma' => $linkproforma, 'linkseleccion' => $linkseleccion, 'categoria' => $categoria, 'temporada' => $temporada, 'estatuscompras' => $estatuscompras, 'fechacompras' => $fechacompras, 'estatuslogistico' => $estatuslogistico, 'fechalogistico' => $fechalogistico, 'owneruser' => $owneruser ), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s', '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Se ha creado la autorización de pago del documento.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllCompleteOrders() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT unidad,empresa,tipodocumento,numerodocumento,planpagonumero,autorizadonumero,autorizadopagar, metodopago,fechaautorizadopor,DATE_FORMAT(fechaautorizadopor, '%a %d %M %Y') AS fechaautorizadoporStr,autorizadopor,tasaautorizada,montoautorizado, monedaautorizada,empresapagadora,bancopagador,codigounico,codigoswift,tipocuenta,origenhes FROM mvplanpagos ORDER BY unidad,empresa,tipodocumento, numerodocumento;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { //return responses::create(array( //'status' => 400, //'message' => $errors //)); } } public function getPayableSummary() //OBSOLETO - NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT DISTINCT unidad AS Unidad,empresa AS Empresa,clasegasto AS Area_Gasto,SUM(totalsaldobsd) AS totalsaldobsd, 'VED' AS moneda,SUM(totalsaldousd) AS totalsaldousd,'USD' AS divisa FROM tmplanpagos WHERE categoria = 'payable' GROUP BY unidad,empresa,clasegasto;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento por pagar."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAuthorizedSummary($parameters) //NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); $userID = $parameters['userID']; $guardID = $parameters['guardID']; if (!empty($result = $database->query("SELECT DISTINCT a.unidad As Unidad,a.empresa AS Empresa,a.clasegasto AS Area_Gasto, CASE WHEN (SELECT SUM(montoneto) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'VED' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) IS NULL THEN 0 ELSE (SELECT SUM(montoneto) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'VED' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) END AS totalnetobsd, CASE WHEN (SELECT SUM(montoneto) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'USD' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) IS NULL THEN 0 ELSE (SELECT SUM(montoneto) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'USD' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) END AS totalnetousd, CASE WHEN (SELECT SUM(montosaldo) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'VED' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) IS NULL THEN 0 ELSE (SELECT SUM(montosaldo) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'VED' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) END AS totalsaldobsd, CASE WHEN (SELECT SUM(montosaldo) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'USD' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) IS NULL THEN 0 ELSE (SELECT SUM(montosaldo) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND moneda = 'USD' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) END AS totalsaldousd, CASE WHEN (SELECT SUM(montoautorizado) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND monedaautorizada = 'VED' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) IS NULL THEN 0 ELSE (SELECT SUM(montoautorizado) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND monedaautorizada = 'VED' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) END AS totalautorizadobsd, CASE WHEN (SELECT SUM(montoautorizado) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND monedaautorizada = 'USD' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) IS NULL THEN 0 ELSE (SELECT SUM(montoautorizado) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND clasegasto = a.clasegasto AND monedaautorizada = 'USD' AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) END AS totalautorizadousd,'VED' AS moneda,'USD' AS divisa, (SELECT COUNT(numerodocumento) FROM mvplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND montoautorizado > 0 AND (owneruser = $userID OR owneruser IN (" .$guardID. "))) AS cantdocumentos FROM mvplanpagos a WHERE a.owneruser = $userID OR a.owneruser IN (" .$guardID. ") GROUP BY a.unidad,a.empresa,a.clasegasto;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento autorizado para pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { //return responses::create(array( //'status' => 400, //'message' => $errors //)); } } public function getAuthorizedHistory($parameters) //NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $plannumID = $parameters['plannumID']; if (!empty($result = $database->query("SELECT DISTINCT a.unidad As Unidad,a.empresa AS Empresa,a.clasegasto AS Area_Gasto, CASE WHEN (SELECT SUM(montoneto) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'VED') IS NULL THEN 0 ELSE (SELECT SUM(montoneto) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'VED') END AS totalnetobsd, CASE WHEN (SELECT SUM(montoneto) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'USD') IS NULL THEN 0 ELSE (SELECT SUM(montoneto) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'USD') END AS totalnetousd, CASE WHEN (SELECT SUM(montosaldo) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'VED') IS NULL THEN 0 ELSE (SELECT SUM(montosaldo) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'VED') END AS totalsaldobsd, CASE WHEN (SELECT SUM(montosaldo) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'USD') IS NULL THEN 0 ELSE (SELECT SUM(montosaldo) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda = 'USD') END AS totalsaldousd, CASE WHEN (SELECT SUM(montoautorizado) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND monedaautorizada = 'VED') IS NULL THEN 0 ELSE (SELECT SUM(montoautorizado) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND monedaautorizada = 'VED') END AS totalautorizadobsd, CASE WHEN (SELECT SUM(montoautorizado) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND monedaautorizada = 'USD') IS NULL THEN 0 ELSE (SELECT SUM(montoautorizado) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND monedaautorizada = 'USD') END AS totalautorizadousd, CASE WHEN (SELECT SUM(monto_pago) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda_pago = 'VED') IS NULL THEN 0 ELSE (SELECT SUM(monto_pago) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda_pago = 'VED') END AS totalpagadobsd, CASE WHEN (SELECT SUM(monto_pago) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda_pago = 'USD') IS NULL THEN 0 ELSE (SELECT SUM(monto_pago) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND clasegasto = a.clasegasto AND moneda_pago = 'USD') END AS totalpagadousd, 'VED' AS moneda,'USD' AS divisa,(SELECT COUNT(numerodocumento) FROM dtplanpagos WHERE unidad = a.unidad AND empresa = a.empresa AND planpagonumero = a.planpagonumero AND montoautorizado > 0) AS cantdocumentos FROM dtplanpagos a WHERE a.unidad = '" .$unidad. "' AND a.empresa = '" .$empresa. "' AND a.planpagonumero = $plannumID GROUP BY a.unidad,a.empresa,a.clasegasto;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento autorizado para pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { //return responses::create(array( //'status' => 400, //'message' => $errors //)); } } public function createFinalPlanned($parameters) { $errors = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $fechaplan = $parameters['fechaplan']; $descrip = $parameters['descripcion']; $fechaautorizado = $parameters['fechaautorizado']; //$fecregis = date("Y-m-d"); $usuario = $parameters['usuario']; //$database->delete("DELETE FROM cbplanpagos WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND conciliadopago = false;"); if (empty($errors)) { $num = $this->getNextPlan($unidad,$empresa); $num = json_decode($num, true); $num = $num['data']; $num = $num[0]['nextnum']; //$num = $num+1; if (!empty($result = $database->insert('cbplanpagos', array( 'planpagonumero' => $num, 'unidad' => $unidad, 'empresa' => $empresa, 'fechapagoautorizada' => $fechaplan, 'descripcionplan' => $descrip, 'fechaautorizadopor' => $fechaautorizado, 'autorizadopor' => $usuario ), array('%s','%s','%s','%s','%s','%s','%s')))) { $this->updateFinalPlanNumber($num,$usuario); $this->createFinalPlanDetails($num,$usuario); $this->updateFinalPlanOwneruser($num); $this->updateFinalPlanAmounts($num); return responses::create(array( 'status' => 200, 'message' => 'Plan de pagos creado exitosamente', 'data' => array( array( "insertedID" => $num ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el plan de pagos' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateFinalPlanAmounts($num) { $errors = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("UPDATE cbplanpagos a SET a.totalnetobsd = (SELECT SUM(montoneto) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda = 'VED') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalnetousd = (SELECT SUM(montoneto) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda = 'USD') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalsaldobsd = (SELECT SUM(montosaldo) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda = 'VED') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalsaldousd = (SELECT SUM(montosaldo) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda = 'USD') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalautorizadobsd = (SELECT SUM(montoautorizado) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND monedaautorizada = 'VED') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalautorizadousd = (SELECT SUM(montoautorizado) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND monedaautorizada = 'USD') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalpagadobsd = (SELECT SUM(monto_pago) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda_pago = 'VED') WHERE a.planpagonumero = $num;UPDATE cbplanpagos a SET a.totalpagadousd = (SELECT SUM(monto_pago) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda_pago = 'USD') WHERE a.planpagonumero = $num;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar plan de pagos"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Plan de pagos actualizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateFinalPlanNumber($num,$usuario) { $errors = array(); $database = new database("dbprosge"); //if (!empty($result = $database->queryUdp("UPDATE mvplanpagos SET planpagonumero = $num WHERE empresa = '" .$empresa. "' AND planpagonumero = 0;"))) { if (!empty($result = $database->queryUdp("UPDATE mvplanpagos SET planpagonumero = $num WHERE autorizadopor = '" .$usuario. "';"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar plan de pagos."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Plan de pagos actualizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createFinalPlanDetails($num,$usuario) { $errors = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("INSERT INTO dtplanpagos (planpagonumero,autorizadonumero,unidad,empresa,tipodocumento,numerodocumento,codigobeneficiario, beneficiario,titularcuenta,cuentabanco,banco,codigobanco,codigoswift,tipocuenta,tipoproveedor,rifproveedor,monedaproveedor,autorizadopagar,registradopor,fechaemision, fechavencimiento,fecharegistro,numerofactura,observacion,tasacambio,moneda,montoneto,montosaldo,metodopago,fechaautorizadopor,autorizadopor,tasaautorizada,montoautorizado, monedaautorizada,empresapagadora,clasegasto,bancopagador, codigounico,origenhes,cantidadSKU,unidades,origen,numeroPOOdoo,linkproforma,linkseleccion,categoria,temporada, estatuscompras,fechacompras,estatuslogistico,fechalogistico,owneruser) SELECT planpagonumero,autorizadonumero,unidad,empresa,tipodocumento,numerodocumento,codigobeneficiario, beneficiario,titularcuenta,cuentabanco,banco,codigobanco,codigoswift,tipocuenta,tipoproveedor,rifproveedor,monedaproveedor,autorizadopagar,registradopor,fechaemision, fechavencimiento,fecharegistro,numerofactura,observacion,tasacambio,moneda,montoneto,montosaldo,metodopago,fechaautorizadopor,autorizadopor,tasaautorizada,montoautorizado, monedaautorizada,empresapagadora,clasegasto,bancopagador,codigounico,origenhes,cantidadSKU,unidades,origen,numeroPOOdoo,linkproforma,linkseleccion,categoria,temporada, estatuscompras,fechacompras,estatuslogistico,fechalogistico,owneruser FROM mvplanpagos WHERE planpagonumero = $num AND autorizadopor = '" .$usuario. "'; DELETE FROM mvplanpagos WHERE planpagonumero = $num AND autorizadopor = '" .$usuario. "';UPDATE dtplanpagos SET titularcuenta = beneficiario WHERE titularcuenta IS NULL;"))) { $data = $result; } else { $errors[] = "No se ha podido crear detalles plan de pagos"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Plan de pagos creado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateFinalPlanOwneruser($num) { $errors = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("UPDATE cbplanpagos a SET a.owneruser = (SELECT owneruser FROM dtplanpagos WHERE planpagonumero = a.planpagonumero LIMIT 1) WHERE a.planpagonumero = $num;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar plan de pagos."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Plan de pagos actualizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateFinalPlanDetail($parameters) { $errors = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $tasaautorizada = $parameters['tasaautorizada']; $montoautorizado = $parameters['montoautorizado']; $monedaautorizada = $parameters['monedaautorizada']; $metodopago = $parameters['metodopago']; $empresapagadora = $parameters['empresapagadora']; $bancopagador = $parameters['bancopagador']; $codigounico = $parameters['codigounico']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos a SET metodopago = '" .$metodopago. "',tasaautorizada = $tasaautorizada,montoautorizado = $montoautorizado, monedaautorizada = '" .$monedaautorizada. "',empresapagadora = '" .$empresapagadora. "',bancopagador = '" .$bancopagador. "',codigounico = $codigounico WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND conciliadopago = false;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar plan de pagos"; } $this->updateFinalPlanAmounts($plannumID); if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Plan de pagos actualizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllPaymentsClx() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT DISTINCT 'FRIGILUX' AS Unidad,'EMDOM II' AS Empresa,a.cob_num,tp_doc_cob,doc_num,CASE b.moneda WHEN 'US$' THEN CAST(ROUND((neto / a.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(b.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,a.tasa,fec_emis,0 AS origenhes FROM TECH_A.dbo.reng_pag a LEFT JOIN TECH_A.dbo.pagos b ON b.cob_num = a.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') UNION SELECT DISTINCT 'FRIGILUX' AS Unidad,'EMDOM' AS Empresa,c.cob_num,tp_doc_cob,doc_num,CASE d.moneda WHEN 'US$' THEN CAST(ROUND((neto / c.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(d.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,c.tasa,fec_emis,0 AS origenhes FROM ENDOM.dbo.reng_pag c LEFT JOIN ENDOM.dbo.pagos d ON d.cob_num = c.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') UNION SELECT DISTINCT 'FRIGILUX' AS Unidad,'LUXEM' AS Empresa,e.cob_num,tp_doc_cob,doc_num,CASE f.moneda WHEN 'US$' THEN CAST(ROUND((neto / e.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(f.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,e.tasa,fec_emis,0 AS origenhes FROM LUXEM_A.dbo.reng_pag e LEFT JOIN LUXEM_A.dbo.pagos f ON f.cob_num = e.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') UNION SELECT DISTINCT 'FRIGILUX' AS Unidad,'TECHNICAL SERVICE LUX' AS Empresa,g.cob_num,tp_doc_cob,doc_num,CASE h.moneda WHEN 'US$' THEN CAST(ROUND((neto / g.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(h.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,g.tasa,fec_emis,0 AS origenhes FROM TECHN_A.dbo.reng_pag g LEFT JOIN TECHN_A.dbo.pagos h ON h.cob_num = g.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') ORDER BY tp_doc_cob,doc_num;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllPaymentsFdc() { $errors = array(); $data = array(); $database = new externalDatabaseFdc(); if (!empty($result = $database->query("SELECT DISTINCT 'FUNDACION' AS Unidad,'FUNDACION FRIGILUX' AS Empresa,a.cob_num,tp_doc_cob,doc_num,CASE b.moneda WHEN 'US$' THEN CAST(ROUND((neto / a.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(b.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,a.tasa,fec_emis,0 AS origenhes FROM FUNDA_FI.dbo.reng_pag a LEFT JOIN FUNDA_FI.dbo.pagos b ON b.cob_num = a.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') UNION SELECT DISTINCT 'FUNDACION' AS Unidad,'INMOBILIARIA LUX' AS Empresa,c.cob_num,tp_doc_cob,doc_num,CASE d.moneda WHEN 'US$' THEN CAST(ROUND((neto / c.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(d.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,c.tasa,fec_emis,0 AS origenhes FROM INMOLU_A.dbo.reng_pag c LEFT JOIN INMOLU_A.dbo.pagos d ON d.cob_num = c.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') UNION SELECT DISTINCT 'FUNDACION' AS Unidad,'SUMINISTROS' AS Empresa,e.cob_num,tp_doc_cob,doc_num,CASE f.moneda WHEN 'US$' THEN CAST(ROUND((neto / e.tasa),2) AS DECIMAL(18,2)) ELSE neto END AS monto_pago,CASE RTRIM(f.moneda) WHEN 'BSD' THEN 'VED' WHEN 'US$' THEN 'USD' END AS moneda,e.tasa,fec_emis,0 AS origenhes FROM SUMI_A.dbo.reng_pag e LEFT JOIN SUMI_A.dbo.pagos f ON f.cob_num = e.cob_num WHERE YEAR(fec_emis) > 2023 AND tp_doc_cob IN ('FACT','AJPM') ORDER BY tp_doc_cob,doc_num;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getNonConciliateOrders($plannumID) //NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT planpagonumero,unidad,empresa,tipodocumento,numerodocumento,moneda,montoautorizado,monedaautorizada, conciliadopago,origenhes FROM dtplanpagos WHERE planpagonumero = $plannumID AND conciliadopago = false;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setConciliateMassive($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $monedapago = $parameters['monedapago']; $cobronum = $parameters['cobronum']; $montopago = $parameters['montopago']; $fechapagado = $parameters['fechapagado']; $origenhes = $parameters['origenhes']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos SET pagado = true,conciliadopago = true,moneda_pago = '" .$monedapago. "',cob_num = '" .$cobronum. "', monto_pago = monto_pago + $montopago,fechapagado = '" .$fechapagado. "' WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND origenhes = 0;"))) { // AND conciliadopago = false; $data = $result; } else { $errors[] = "No se ha podido actualizar conciliado pago en documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Conciliado pago de documento actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setConciliateManual($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $montopago = $parameters['montopago']; $montoreal = $parameters['montoreal']; $monedapago = $parameters['monedapago']; $fechapagado = date("Y-m-d"); $origenhes = $parameters['origenhes']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos SET pagado = 1,conciliadopago = 1,moneda_pago = monedaautorizada,cob_num = 0, monto_pago = $montoreal,fechapagado = '" .$fechapagado. "' WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID; UPDATE hsplanpagos a SET a.montosaldo = a.montoneto - (SELECT SUM(CASE WHEN moneda <> moneda_pago AND moneda_pago = 'VED' THEN monto_pago / tasaautorizada ELSE CASE WHEN moneda <> moneda_pago AND moneda_pago <> 'VED' THEN monto_pago * tasaautorizada ELSE CASE WHEN moneda = moneda_pago THEN monto_pago END END END) FROM dtplanpagos WHERE conciliadopago = 1 AND unidad = a.unidad AND empresa = a.empresa AND tipodocumento = a.tipodocumento AND numerodocumento = a.numerodocumento AND origenhes = 1) WHERE a.unidad = '" .$unidad. "' AND a.empresa = '" .$empresa. "' AND a.tipodocumento = '" .$docuID. "' AND a.numerodocumento = $numID;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar conciliado pago en documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Conciliado pago de documento actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllFinalPlanned($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $userID = $parameters['userID']; $guardID = $parameters['guardID']; //$empresa = json_encode($parameters['filter']); $empresa = $parameters['filter']; //var_dump($empresa); if (!empty($result = $database->query("SELECT planpagonumero,unidad AS Unidad,empresa AS Empresa,DATE_FORMAT(fechapagoautorizada, '%a %d %M %Y') AS fechapagoautorizadaStr, fechapagoautorizada,descripcionplan,fechaautorizadopor,DATE_FORMAT(fechaautorizadopor, '%a %d %M %Y') AS fechaautorizadoporStr,autorizadopor,generadotxt,conciliadopago, totalnetobsd,totalnetousd,totalsaldobsd,totalsaldousd,totalautorizadobsd,totalautorizadousd,totalpagadobsd,totalpagadousd,totalxpagarbsd,totalxpagarusd,'VED' AS moneda, 'USD' AS divisa,0 AS cuenta FROM cbplanpagos WHERE (owneruser = $userID OR owneruser IN (" .$guardID. ")) AND empresa IN (" .$empresa. ") ORDER BY planpagonumero DESC;"))) { // WHERE Empresa IN (" .$empresa. ") AND (owneruser = $userID OR owneruser IN (" .$guardID. ")) //WHERE conciliado = 0 $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getOrdersFinalPlan($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $userID = $parameters['userID']; $guardID = $parameters['guardID']; $empresa = $parameters['filter']; if (!empty($result = $database->query("SELECT planpagonumero,autorizadonumero,unidad AS Unidad,empresa AS Empresa,tipodocumento,numerodocumento, codigobeneficiario,beneficiario AS Beneficiario,titularcuenta,cuentabanco,banco AS Banco,codigobanco,codigoswift,tipocuenta,tipoproveedor AS Tipo_proveedor, rifproveedor,RTRIM(monedaproveedor) AS Moneda_Proveedor,autorizadopagar,registradopor,fechaemision,DATE_FORMAT(fechaemision, '%d %M %Y') AS fechaemisionStr, fechavencimiento,DATE_FORMAT(fechavencimiento, '%d %M %Y') AS fechavencimientoStr,fecharegistro,DATE_FORMAT(fecharegistro, '%d %M %Y') AS fecharegistroStr, numerofactura,observacion,tasacambio,moneda,montoneto,montosaldo,metodopago AS Forma_Pago,fechaautorizadopor,DATE_FORMAT(fechaautorizadopor, '%a %d %M %Y') AS fechaautorizadoporStr,autorizadopor,tasaautorizada,montoautorizado,monedaautorizada,empresapagadora AS Empresa_Pagadora,pagado,cob_num,fechapagado, DATE_FORMAT(fechapagado, '%d %M %Y') AS fechapagadoStr,monto_pago,moneda_pago,clasegasto AS Area_Gasto,codigounico,bancopagador AS Banco_Pagador, origenhes,generadotxt,enviadocajachica,conciliadopago,cantidadSKU,unidades,origen,numeroPOOdoo,linkproforma,linkseleccion,categoria,temporada,estatuscompras, DATE_FORMAT(fecharegistro, '%d %M %Y') AS fechacomprasXml,fechacompras,estatuslogistico,DATE_FORMAT(fechalogistico, '%d %M %Y') AS fechalogisticoXml, fechalogistico FROM dtplanpagos WHERE planpagonumero = $plannumID AND (owneruser = $userID OR owneruser IN (" .$guardID. ")) AND empresa IN (" .$empresa. ") ORDER by planpagonumero;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getSuppliers() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT DISTINCT a.co_cli AS codprov,RTRIM(b.prov_des) AS provdes FROM TECH_A.dbo.docum_cp a LEFT JOIN TECH_A.dbo.prov b ON b.co_prov = a.co_cli WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 UNION SELECT DISTINCT c.co_cli AS codprov,RTRIM(d.prov_des) AS provdes FROM ENDOM.dbo.docum_cp c LEFT JOIN ENDOM.dbo.prov d ON d.co_prov = c.co_cli WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND c.saldo > 0 ORDER BY provdes;"))) { $data = $result; } else { $errors[] = "Ningún proveedor encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getExpenseType() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT DISTINCT RTRIM(a.campo1) AS areagasto FROM TECH_A.dbo.docum_cp a LEFT JOIN TECH_A.dbo.prov b ON b.co_prov = a.co_cli WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 AND a.campo1 <> '' UNION SELECT DISTINCT RTRIM(c.campo1) AS areagasto FROM ENDOM.dbo.docum_cp c LEFT JOIN ENDOM.dbo.prov d ON d.co_prov = c.co_cli WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND c.saldo > 0 AND c.campo1 <> '' ORDER BY areagasto;"))) { $data = $result; } else { $errors[] = "Ningún proveedor encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getBanksSuppliers() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT DISTINCT RTRIM(b.nit) AS Banco FROM TECH_A.dbo.docum_cp a LEFT JOIN TECH_A.dbo.prov b ON b.co_prov = a.co_cli WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 AND b.nit <> '' UNION SELECT DISTINCT RTRIM(d.nit) AS Banco FROM ENDOM.dbo.docum_cp c LEFT JOIN ENDOM.dbo.prov d ON d.co_prov = c.co_cli WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND c.saldo > 0 AND d.nit <> '';"))) { $data = $result; } else { $errors[] = "Ningún banco de proveedor encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getTypeofSuppliers() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT DISTINCT RTRIM(c.des_tipo) AS Tipo_proveedor FROM TECH_A.dbo.docum_cp a LEFT JOIN TECH_A.dbo.prov b ON b.co_prov = a.co_cli LEFT JOIN TECH_A.dbo.tipo_pro c ON c.tip_pro = b.tipo WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND a.saldo > 0 UNION SELECT DISTINCT RTRIM(f.des_tipo) AS Tipo_proveedor FROM ENDOM.dbo.docum_cp d LEFT JOIN ENDOM.dbo.prov e ON e.co_prov = d.co_cli LEFT JOIN ENDOM.dbo.tipo_pro f ON f.tip_pro = e.tipo WHERE anulado = 0 AND tipo_doc IN ('AJPM','FACT') AND d.saldo > 0;"))) { $data = $result; } else { $errors[] = "Ningún banco de proveedor encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPaymentMethod() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT codigoforma,formapago,monedaautorizada,pordefecto,a.pagoporbanco,empresapagadora,rifpagadora,bancopago, numerocuenta,ultimonumerolote,numeronegociacion,codigobanco,codigoforma * orden AS codigounico FROM clformapago a LEFT JOIN clbancopago b ON monedapago = monedaautorizada AND a.esavanti = b.esavanti WHERE (codigoforma * orden) NOT IN (72, 77) ORDER BY formapago,pordefecto,empresapagadora;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ninguna forma de pago."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getSwiftCodes() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT codigobanco,codigoswift,tipocuenta,nombrecorto FROM clbancoswift ORDER BY codigobanco;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún código swift de bancos"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } /*public function getAllPayerCompany() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT DISTINCT empresapagadora FROM clbancopago ORDER BY orden ASC;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ninguna empresa pagadora."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } */ public function getPayerCompany() //NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT DISTINCT empresapagadora FROM clbancopago ORDER BY orden ASC;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ninguna empresa pagadora"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPayerBank() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT codigobanco,CONCAT(empresapagadora,' ',bancopago,' ',numerocuenta) AS bancodescripcion,bancopago,empresapagadora, rifpagadora,titularcuenta,numerocuenta,numeronegociacion,ultimonumerolote FROM clbancopago WHERE pagoporbanco = true ORDER BY orden ASC;"))) { //WHERE rifpagadora IS NOT NULL $data = $result; } else { $errors[] = "No se ha encontrado ningún banco pagador"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getConversionFactor($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $moneda = $parameters['moneda']; $monedaautorizada = $parameters['monedaautorizada']; if (!empty($result = $database->query("SELECT codigofactor,factorpago,monedaautorizada,monedadocum,factorconversion,metodocalculo,ultimatasacambio, permitircambio FROM clfactorpago WHERE monedaautorizada = '" .$monedaautorizada. "' AND monedadocum = '" .$moneda. "';"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún factor de pago"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setLastExchangeRate($parameters) //NO USADO { $errors = array(); $database = new database("dbprosge"); $tasacambio = $parameters['tasadocumento']; $tasaautorizada = $parameters['tasaautorizada']; $docummoneda = $parameters['monedadocum']; $monedaautorizada = $parameters['monedaautorizada']; //SET ultimatasacambio = CASE WHEN $tasaautorizada > $tasadocumento THEN $tasaautorizada ELSE $tasadocumento if (!empty($result = $database->queryUdp("UPDATE clfactorpago SET ultimatasacambio = $tasaautorizada WHERE monedaautorizada = '" .$monedaautorizada. "' AND monedadocum = '" .$docummoneda. "' AND permitircambio = true;UPDATE clfactorpago SET factorconversion = CASE metodocalculo WHEN '1 div' THEN 1 / ultimatasacambio ELSE ultimatasacambio END WHERE monedaautorizada = '" .$monedaautorizada. "' AND monedadocum = '" .$docummoneda. "' AND permitircambio = true;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar última tasa de cambio"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Última tasa de cambio actualizada exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getNextPlan($unidad,$empresa) { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT CASE WHEN MAX(planpagonumero) IS NOT NULL THEN MAX(planpagonumero) + 1 ELSE 1 END AS nextnum FROM cbplanpagos;"))) { $data = $result; } else { $errors[] = "No se ha encontrado plan de pagos"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setLastReferenceLot($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $codigobanco = $parameters['codigobanco']; $empresapagadora = $parameters['empresapagadora']; $numerolote = $parameters['numerolote']; if (!empty($result = $database->queryUdp("UPDATE clbancopago SET ultimonumerolote = '" .$numerolote. "' WHERE codigobanco = '" .$codigobanco. "' AND empresapagadora = '" .$empresapagadora. "';"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar número de lote en banco"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Número de lote en banco actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setNewReferenceLot($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $cuentapagadoraID = $parameters['cuentapagadoraID']; $numerolote = $parameters['numerolote']; if (!empty($result = $database->queryUdp("UPDATE clbancopago SET ultimonumerolote = '" .$numerolote. "' WHERE numerocuenta = '" .$cuentapagadoraID. "';"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar número de lote en banco"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Número de lote en banco actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setPaidPlanResume($plannumID) { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("UPDATE cbplanpagos a SET a.totalpagadobsd = (SELECT SUM(monto_pago) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda_pago = 'VED') WHERE a.planpagonumero = $plannumID;UPDATE cbplanpagos a SET a.totalpagadousd = (SELECT SUM(monto_pago) FROM dtplanpagos WHERE planpagonumero = a.planpagonumero AND moneda_pago = 'USD') WHERE a.planpagonumero = $plannumID;UPDATE cbplanpagos c SET c.conciliadopago = CASE WHEN (SELECT COUNT(conciliadopago) FROM dtplanpagos WHERE planpagonumero = c.planpagonumero AND conciliadopago = false) > 0 THEN false ELSE true END WHERE c.planpagonumero = $plannumID;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar los montos pagados"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Montos pagados actualizados exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setGeneratedTxtOrderBank($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos SET generadotxt = true WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID;UPDATE cbplanpagos SET generadotxt = true WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "';"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar estatus generado txt en documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Estatus generado txt en documento actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setNonGeneratedTxtOrderBank($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos SET generadotxt = false WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND generadotxt = true AND conciliadopago = false;UPDATE cbplanpagos c SET c.generadotxt = CASE WHEN (SELECT COUNT(generadotxt) FROM dtplanpagos WHERE planpagonumero = c.planpagonumero AND generadotxt = true) > 0 THEN true ELSE false END WHERE c.planpagonumero = $plannumID;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar estatus generado txt en documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Estatus generado txt en documento actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setDisapproveOrderPayment($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; if (!empty($result = $database->delete("DELETE FROM dtplanpagos WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND pagado = false AND generadotxt = false AND conciliadopago = false;"))) { return responses::create(array( 'status' => 200, 'message' => 'Desautorizado el pago del documento.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setDiscardFinalPlan($plannumID) { $errors = array(); $data = array(); $database = new database("dbprosge"); //$plannumID = $parameters['plannumID']; if (!empty($result = $database->delete("DELETE FROM cbplanpagos WHERE planpagonumero = $plannumID AND generadotxt = false AND conciliadopago = false; DELETE FROM dtplanpagos WHERE planpagonumero = $plannumID AND NOT EXISTS (SELECT * FROM cbplanpagos WHERE planpagonumero = $plannumID);"))) { return responses::create(array( 'status' => 200, 'message' => 'Descartado el plan de pago.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getActivePettyCashNumber($unidad) { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT numcaja FROM cbcajachica WHERE unidad = '" .$unidad. "' AND moneda = 'VED' AND cerrada = false AND anulada = false;",))) { $data = $result; } else { $errors[] = "No se han encontrado ninguna caja chica"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setPaymentOrderPaid($parameters) //NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $numeroautorizado = $parameters['numeroautorizado']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos SET enviadocajachica = true WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND planpagonumero = $plannumID AND autorizadonumero = $numeroautorizado;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar enviado a caja chica en documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Enviado a caja chica de documento actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function insertSupplierClx() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("INSERT INTO cpproveedor SELECT DISTINCT codigobeneficiario,beneficiario,rifproveedor,b.unidad FROM dtplanpagos b WHERE NOT EXISTS (SELECT codprov FROM cpproveedor a WHERE a.unidad = b.unidad AND codprov = codigobeneficiario);"))) { $data = $result; } else { $errors[] = "No se han podido actualizar los proveedores de Profit."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Actualización de proveedores finalizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function insertDivisionClx() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("INSERT INTO cpccosto SELECT DISTINCT clasegasto,b.unidad FROM dtplanpagos b WHERE NOT EXISTS (SELECT desceco FROM cpccosto a WHERE a.unidad = b.unidad AND desceco = b.clasegasto);"))) { $data = $result; } else { $errors[] = "No se han podido actualizar las divisiones"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Actualización de divisiones finalizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function insertAccountHolder() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->queryUdp("INSERT INTO clbancoprov (beneficiario,titularcuenta,cuentabanco,banco,codigobanco,codigoswift,tipocuenta, rifproveedor) SELECT DISTINCT c.beneficiario,c.titularcuenta,c.cuentabanco,c.banco,c.codigobanco,c.codigoswift,c.tipocuenta,c.rifproveedor FROM dtplanpagos c WHERE NOT EXISTS (SELECT b.cuentabanco FROM clbancoprov b WHERE b.cuentabanco = c.cuentabanco) AND c.cuentabanco <> '';"))) { $data = $result; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Actualización de cuentas bancarias proveedores finalizado exitosamente.", 'data' => $data )); } else { return responses::create(array( 'status' => 4001, 'message' => $errors )); } } public function createHESRecordPayment($parameters) { $errors = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $beneficiario = $parameters['beneficiario']; $cuentabanco = $parameters['cuentabanco']; $banco = $parameters['banco']; $rifproveedor = $parameters['rifproveedor']; $tipoproveedor = $parameters['tipoproveedor']; $monedaproveedor = $parameters['monedaproveedor']; $fechaemision = $parameters['fechaemision']; $fechavencimiento = $parameters['fechavencimiento']; $fecharegistro = $parameters['fecharegistro']; $registradopor = $parameters['registradopor']; $numerofactura = $parameters['numerofactura']; $observacion = $parameters['observacion']; $tasacambio = $parameters['tasacambio']; $moneda = $parameters['moneda']; $montoneto = $parameters['montoneto']; $montosaldo = $parameters['montosaldo']; $clasegasto = $parameters['clasegasto']; $cantidadSKU = $parameters['cantidadSKU']; $unidades = $parameters['unidades']; $origen = $parameters['origen']; $numeroPOOdoo = $parameters['numeroPOOdoo']; $linkproforma = $parameters['linkproforma']; $linkseleccion = $parameters['linkseleccion']; $categoria = $parameters['categoria']; $temporada = $parameters['temporada']; $estatuscompras = $parameters['estatuscompras']; $fechacompras = $parameters['fechacompras']; $estatuslogistico = $parameters['estatuslogistico']; $fechalogistico = $parameters['fechalogistico']; $owneruser = $parameters['owneruser']; $fechahoy = date("Y-m-d"); if (empty($errors)) { if (!empty($result = $database->insert('hsplanpagos', array( 'unidad' => $unidad, 'empresa' => $empresa, 'tipodocumento' => $docuID, 'numerodocumento' => $numID, 'beneficiario' => $beneficiario, 'cuentabanco' => $cuentabanco, 'banco' => $banco, 'rifproveedor' => $rifproveedor, 'tipoproveedor' => $tipoproveedor, 'monedaproveedor' => $monedaproveedor, 'fechaemision' => $fechaemision, 'fechavencimiento' => $fechavencimiento, 'fecharegistro' => $fecharegistro, 'registradopor' => $registradopor, 'numerofactura' => $numerofactura, 'observacion' => $observacion, 'tasacambio' => $tasacambio, 'moneda' => $moneda, 'montoneto' => $montoneto, 'montosaldo' => $montosaldo, 'clasegasto' => $clasegasto, 'cantidadSKU' => $cantidadSKU, 'unidades' => $unidades, 'origen' => $origen, 'numeroPOOdoo' => $numeroPOOdoo, 'linkproforma' => $linkproforma, 'linkseleccion' => $linkseleccion, 'categoria' => $categoria, 'temporada' => $temporada, 'estatuscompras' => $estatuscompras, 'fechacompras' => $fechacompras, 'estatuslogistico' => $estatuslogistico, 'fechalogistico' => $fechalogistico, 'owneruser' => $owneruser, ), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s', '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Se ha creado el documento por pagar.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createAccountHolder($parameters) { $errors = array(); $database = new database("dbprosge"); $beneficiario = $parameters['beneficiario']; $titularcuenta = $parameters['titularcuenta']; $cuentabanco = $parameters['cuentabanco']; $banco = $parameters['banco']; $codigobanco = $parameters['codigobanco']; $codigoswift = $parameters['codigoswift']; $tipocuenta = $parameters['tipocuenta']; $rifproveedor = $parameters['rifproveedor']; $rifproveedor = $parameters['rifproveedor']; if (empty($errors)) { if (!empty($result = $database->insert('clbancoprov', array( 'beneficiario' => $beneficiario, 'titularcuenta' => $titularcuenta, 'cuentabanco' => $cuentabanco, 'banco' => $banco, 'codigobanco' => $codigobanco, 'codigoswift' => $codigoswift, 'tipocuenta' => $tipocuenta, 'rifproveedor' => $rifproveedor ), array('%s','%s','%s','%s','%s','%s','%s','%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Se ha creado el documento por pagar.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setAccountHolder($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $plannumID = $parameters['plannumID']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $banco = $parameters['banco']; $codigobanco = $parameters['codigobanco']; $codigoswift = $parameters['codigoswift']; $cuentabanco = $parameters['cuentabanco']; $rifproveedor = $parameters['rifproveedor']; $tipocuenta = $parameters['tipocuenta']; $titularcuenta = $parameters['titularcuenta']; if (!empty($result = $database->queryUdp("UPDATE dtplanpagos SET banco = '" .$banco. "',codigobanco = '" .$codigobanco. "',codigoswift = '" .$codigoswift. "',cuentabanco = '" .$cuentabanco. "', rifproveedor = '" .$rifproveedor. "',tipocuenta = '" .$tipocuenta. "',titularcuenta = '" .$titularcuenta. "' WHERE planpagonumero = $plannumID AND unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND generadotxt = false AND conciliadopago = false;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar cuenta bancaria en documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Cuenta bancaria en documento actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createHeaderValidation($parameters) { $errors = array(); $database = new database("dbprosge"); $archivotexto = $parameters['archivotexto']; $banco = $parameters['banco']; $empresa = $parameters['empresa']; $numerocuenta = $parameters['numerocuenta']; $rif = $parameters['rif']; $negociacion = $parameters['negociacion']; $operacion = $parameters['operacion']; $fechaenvio = $parameters['fechaenvio']; $fechapago = $parameters['fechapago']; $montototal = $parameters['montototal']; $cantidaddebitos = $parameters['cantidaddebitos']; $cantidadcreditos = $parameters['cantidadcreditos']; $usuario = $parameters['usuario']; $contenido = $parameters['contenido']; if (empty($errors)) { if (!empty($result = $database->insert('cbvalidatxt', array( 'archivotexto' => $archivotexto, 'banco' => $banco, 'empresa' => $empresa, 'numerocuenta' => $numerocuenta, 'rif' => $rif, 'negociacion' => $negociacion, 'operacion' => $operacion, 'fechaenvio' => $fechaenvio, 'fechapago' => $fechapago, 'montototal' => $montototal, 'cantidaddebitos' => $cantidaddebitos, 'cantidadcreditos' => $cantidadcreditos, 'validadopor' => $usuario, 'contenido' => $contenido ), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Registro de validación archivo texto creado exitosamente.' )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el registro de validación archivo texto.' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createDetailValidation($parameters) { $errors = array(); $database = new database("dbprosge"); $beneficiario = $parameters['beneficiario']; $rif = $parameters['rif']; $numerocuenta = $parameters['numerocuenta']; $tipocuenta = $parameters['tipocuenta']; $referencia = $parameters['referencia']; $montopago = $parameters['montopago']; $moneda = $parameters['moneda']; $planpagonumero = $parameters['planpagonumero']; $tipodocumento = $parameters['tipodocumento']; $numerodocumento = $parameters['numerodocumento']; $montoautorizado = $parameters['montoautorizado']; if (empty($errors)) { $num = $this->getNextIndex(); $num = json_decode($num, true); $num = $num['data']; $num = $num[0]['nextnum']; //$num = $num+1; if (!empty($result = $database->insert('dtvalidatxt', array( 'numerovalidacion' => $num, 'beneficiario' => $beneficiario, 'rif' => $rif, 'numerocuenta' => $numerocuenta, 'tipocuenta' => $tipocuenta, 'referencia' => $referencia, 'montopago' => $montopago, 'moneda' => $moneda, 'planpagonumero' => $planpagonumero, 'tipodocumento' => $tipodocumento, 'numerodocumento' => $numerodocumento, 'montoautorizado' => $montoautorizado ), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Registro detalle de validación archivo texto creado exitosamente', 'data' => array( array( "insertedID" => $num ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el registro detalle de validación archivo texto' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getNextIndex() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT `AUTO_INCREMENT` AS nextnum FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbprosge' AND TABLE_NAME = 'cbvalidatxt';"))) { $data = $result; } else { $errors[] = "No se ha encontrado número próximo de validación"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getGeneratedBankOrder() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT planpagonumero,tipodocumento,numerodocumento,cuentabanco,montoautorizado FROM dtplanpagos WHERE generadotxt = true AND conciliadopago = false;"))) { $data = $result; } else { //$errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllValidations() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($results = $database->query("SELECT numerovalidacion AS Numero,archivotexto,banco AS Banco,empresa AS Empresa,numerocuenta,rif,negociacion,operacion, CAST(CONCAT(fechaenvio+' T00:00:00') AS DATETIME) AS fechaenvio,CAST(CONCAT(fechapago+' T00:00:00') AS DATETIME) AS fechapago,montototal,cantidaddebitos,cantidadcreditos, validadopor,CAST(CONCAT(fechavalidado+' T00:00:00') AS DATETIME) AS fechavalidado,contenido FROM cbvalidatxt ORDER by numerovalidacion DESC;"))) { $data = $results; } else { $errors[] = "No se ha encontrado ninguna solicitud de material"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getDetailValidation($numeroID) { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($results = $database->query("SELECT numerovalidacion,beneficiario,rif,numerocuenta,tipocuenta,referencia,montopago,moneda,planpagonumero,tipodocumento, numerodocumento,montoautorizado,(SELECT CONCAT(codigoswift,' - ',nombrecorto) FROM clbancoswift WHERE SUBSTR(dtvalidatxt.numerocuenta,1,4) = codigobanco) AS banco FROM dtvalidatxt WHERE numerovalidacion = $numeroID ORDER BY referencia;"))) { $data = $results; } else { $errors[] = "No se ha encontrado los renglones de detalle de la validación"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateOrderPayment($parameters) //NO USADO { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $montoneto = $parameters['montoneto']; $montosaldo = $parameters['montosaldo']; if (!empty($result = $database->queryUdp("UPDATE hsplanpagos SET montoneto = $montoneto,montosaldo = $montosaldo WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar montos en documento."; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Montos en documento actualizados exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateRecordPayment($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $areagasto = $parameters['areagasto']; $beneficiario = $parameters['beneficiario']; $origenhes = $parameters['origenhes']; $montoneto = $parameters['montoneto']; $montosaldo = $parameters['montosaldo']; $tasacambio = $parameters['tasacambio']; $monedaproveedor = $parameters['monedaproveedor']; $observacion = $parameters['observacion']; $rifproveedor = $parameters['rifproveedor']; $banco = $parameters['banco']; $cuentabanco = $parameters['cuentabanco']; //$linkproforma = $parameters['linkproforma']; //$codigobanco = $parameters['codigobanco']; //$codigoswift = $parameters['codigoswift']; if (!empty($result = $database->queryUdp("UPDATE hsplanpagos SET clasegasto = '" .$areagasto. "',beneficiario = '" .$beneficiario. "',montoneto = $montoneto,montosaldo = $montosaldo, tasacambio = $tasacambio,monedaproveedor = '" .$monedaproveedor. "',observacion = '" .$observacion. "',rifproveedor = '" .$rifproveedor. "',banco = '" .$banco. "', cuentabanco = '" .$cuentabanco. "' WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar documento de pago"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Se ha actualizado el documento de pago exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getExchangeRate() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($results = $database->query("SELECT DISTINCT DATE_FORMAT(fechaautorizadopor, '%a %d %M %Y') AS fechaautorizado,tasaautorizada AS tasaautorizada FROM dtplanpagos WHERE tasaautorizada > 1 UNION SELECT DISTINCT DATE_FORMAT(fechaautorizadopor, '%a %d %M %Y') AS fechaautorizado,tasaautorizada AS tasaautorizada FROM mvplanpagos WHERE tasaautorizada > 1 UNION SELECT DISTINCT DATE_FORMAT(fechaemision, '%a %d %M %Y') AS fechaautorizado,tasacambio AS tasaautorizada FROM mvplanpagos WHERE moneda = 'USD' ORDER BY tasaautorizada DESC, fechaautorizado;"))) { $data = $results; } else { $errors[] = "No se han encontrado tasas autorizadas en documentos"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function deleteRecordHESPayment($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; if (!empty($result = $database->delete("DELETE FROM hsplanpagos WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID;"))) { return responses::create(array( 'status' => 200, 'message' => 'Se ha eliminado el material de la solicitud.' )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getOrdersInPlanning($plannumID) //NO USAR { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($result = $database->query("SELECT planpagonumero,unidad AS Unidad,empresa AS Empresa,moneda,montoneto,montosaldo,montoautorizado,monedaautorizada, monto_pago,moneda_pago,clasegasto AS Area_Gasto FROM dtplanpagos WHERE planpagonumero = $plannumID ORDER by planpagonumero;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún documento por pagar"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPlanSummary($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $userID = $parameters['userID']; $guardID = $parameters['guardID']; if (!empty($results = $database->query("SELECT unidad,empresa,fechaautorizacion AS fechapagoautorizada,moneda,montoneto,montosaldo,montoautorizado,monedaautorizada, monto_pago,moneda_pago,clasegasto,owneruser FROM rsplanpagos WHERE owneruser = $userID OR owneruser IN (" .$guardID. ") ORDER BY unidad,empresa,fechaautorizacion;"))) { $data = $results; } else { $errors[] = "No se han encontrado resumen planificación pagos"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateAttachPayment($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $linkproforma = $parameters['linkproforma']; if (!empty($result = $database->queryUdp("UPDATE hsplanpagos SET linkproforma = '" .$linkproforma. "' WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID;"))) { $data = $result; } else { $errors[] = "No se ha podido actualizar documento de pago"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Se ha actualizado el documento de pago exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function insertLinkProforma($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $nombre = $parameters['nombre']; $tamano = $parameters['tamano']; $tipo = $parameters['tipo']; $clase = $parameters['clase']; $modificado = $parameters['modificado']; $base64 = $parameters['base64']; $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $origenhes = $parameters['origenhes']; $numID = $parameters['numID']; $fecha = $parameters['fecha']; $usuario = $parameters['usuario']; $userID = $parameters['userID']; $num = false; if (!empty($result = $database->queryUdp("DELETE FROM dtproforma WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND origenhes = $origenhes;INSERT INTO dtproforma (dtproforma.filename,filesize,filetype,fileclass,modifieddate,hexbase64,unidad,empresa,tipodocumento, numerodocumento,origenhes,fecharegistro,registradopor,owneruser) VALUES ('" .$nombre. "',$tamano,'" .$tipo. "','" .$clase. "', '" .$modificado. "','" .$base64. "','" .$unidad. "','" .$empresa. "','" .$docuID. "',$numID,$origenhes,'" .$fecha. "','" .$usuario. "',$userID);SELECT MAX(keyfile) AS numID FROM dtproforma;"))) { $data = $result; $num = $this->getLinkNumber(); $num = json_decode($num, true); $num = $num['data']; $num = $num[0]['numID']; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Actualización de enlace proforma finalizado exitosamente.", 'data' => array( array( "insertedID" => $num ) ) )); } else { return responses::create(array( 'status' => 4001, 'message' => $errors )); } } public function getLinkNumber() { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($results = $database->query("SELECT MAX(keyfile) AS numID FROM dtproforma;"))) { //SELECT `AUTO_INCREMENT` AS nextnum FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbprosge' AND TABLE_NAME = 'dtproforma'; $data = $results; } else { $errors[] = "Ningún correlativo encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getLinkProforma($fileID) { $errors = array(); $data = array(); $database = new database("dbprosge"); if (!empty($results = $database->query("SELECT keyfile,filetype,fileclass,hexbase64 FROM dtproforma WHERE keyfile = $fileID;"))) { $data = $results; } else { $errors[] = "No se han encontrado en archivo proforma del documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllLinkProforma($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $userID = $parameters['userID']; $guardID = $parameters['guardID']; if (!empty($results = $database->query("SELECT keyfile,dtproforma.filename,filetype,fileclass,hexbase64,unidad,empresa,tipodocumento,numerodocumento,origenhes FROM dtproforma WHERE owneruser = $userID OR owneruser IN (" .$guardID. ");"))) { $data = $results; } else { $errors[] = "No se han encontrado en archivo proforma del documento"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getRecordStatus($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $unidad = $parameters['unidad']; $empresa = $parameters['empresa']; $docuID = $parameters['docuID']; $numID = $parameters['numID']; $origenhes = $parameters['origenhes']; if (!empty($results = $database->query("SELECT autorizadopagar FROM mvplanpagos WHERE unidad = '" .$unidad. "' AND empresa = '" .$empresa. "' AND tipodocumento = '" .$docuID. "' AND numerodocumento = $numID AND origenhes = $origenhes;"))) { $data = $results; } else { $errors[] = "Ningún correlativo encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { //return responses::create(array( //'status' => 400, //'message' => $errors //)); } } public function urlHelperDocument($urltext) { //$base64String = json_decode($_POST['urltext'], true); $base64String = $urltext; // URL base64 //if (strpos($base64String, 'data:application/pdf;base64,') !== 0) { //die("El contenido no es un PDF válido."); //} else { $base64Data = explode(',', $base64String)[1]; $pdfContent = base64_decode($base64Data); // Decodificar el contenido base64 // Enviar encabezados al navegador header('Content-Type: application/pdf'); // Especifica el tipo de contenido header('Content-Disposition: inline; filename="documento.pdf"'); // Forzar vista inline echo $pdfContent; //} } public function getAllDocumentsProc($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $userID = $parameters['userID']; $guardID = $parameters['guardID']; $empresa = $parameters['filter']; if (!empty($results = $database->query("SELECT unidad AS Unidad,empresa AS Empresa,tipodocumento,numerodocumento,null AS codigoproveedor, beneficiario AS Beneficiario,cuentabanco,banco AS Banco,rifproveedor,null AS titularcuenta,tipoproveedor AS Tipo_proveedor,false AS autorizadopagar, null AS profite,registradopor,fechaemision,fechavencimiento,fecharegistro,numerofactura,observacion,tasacambio,moneda,montoneto, montosaldo,monedaproveedor AS Moneda_Proveedor,'00' AS tipocuenta,clasegasto AS Area_Gasto,null AS Planificado,true AS origenhes, null AS linkproforma,owneruser, 'Por pagar' AS cxpagar, 'hsplanpagos' AS tabla, 0 AS planpagonumero, 0 AS autorizadonumero, categoria AS Categoria, 0 AS tasaautorizada, 0 AS montoautorizado, null AS monedaautorizada, null AS metodopago, null AS Empresa_Pagadora, false AS pagado, null AS fechapagado, null AS Banco_Pagador, null AS codigoswift, false AS enabledhes, null AS autorizadopor, null AS fechaautorizadopor, null AS fechaautorizadoporStr, null AS Forma_Pago, null AS codigounico, 0 AS cob_num, null AS moneda_pago, 0 AS monto_pago FROM hsplanpagos WHERE montosaldo > 0 AND (owneruser = $userID OR owneruser IN (" .$guardID. ")) AND empresa IN (" .$empresa. ") UNION ALL SELECT unidad AS Unidad,empresa AS Empresa,tipodocumento,numerodocumento,null AS codigoproveedor,beneficiario AS Beneficiario,cuentabanco, banco AS Banco,rifproveedor,titularcuenta,tipoproveedor AS Tipo_proveedor,autorizadopagar,null AS profite,registradopor,fechaemision, fechavencimiento,fecharegistro,numerofactura,observacion,tasacambio,moneda,montoneto,montosaldo,monedaproveedor AS Moneda_Proveedor, tipocuenta,clasegasto AS Area_Gasto,true AS Planificado,origenhes,linkproforma,owneruser, CASE pagado WHEN true THEN 'Pagado' ELSE 'Planificado' END AS cxpagar, 'dtplanpagos' AS tabla, planpagonumero, autorizadonumero, categoria AS Categoria, tasaautorizada, montoautorizado, monedaautorizada, metodopago, empresapagadora AS Empresa_Pagadora, pagado, fechapagado, bancopagador AS Banco_Pagador, codigoswift, false AS enabledhes, autorizadopor, fechaautorizadopor, DATE_FORMAT(fechaautorizadopor, '%d %M %Y') AS fechaautorizadoporStr, metodopago AS Forma_Pago, codigounico, cob_num, moneda_pago, monto_pago FROM dtplanpagos WHERE (owneruser = $userID OR owneruser IN (" .$guardID. ")) AND empresa IN (" .$empresa. ") ORDER BY beneficiario,tipodocumento,numerodocumento DESC;"))) { $data = $results; } else { $errors[] = "Ninguna registro encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createLinkProforma($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $base64String = $parameters['base64']; $filename = $parameters['nombre']; // Decodificar la cadena base64 $pdfContent = base64_decode($base64String); if (!$base64String || !$pdfContent) { die("Error: La cadena base64 es inválida o está vacía."); } // Guardar como archivo PDF //file_put_contents("C:\\xampp\\htdocs\\SGE\\docs\\" . $filename, $pdfContent); if (!empty($results = file_put_contents("C:\\xampp\\htdocs\\SGE\\docs\\" . $filename, $pdfContent))) { $data = $results; } else { $errors[] = "Error en creación archivo pdf"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } }