64 lines
1.9 KiB
MySQL
64 lines
1.9 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`xdiario_new`(
|
||
|
vBookNumber INT,
|
||
|
vDated DATE,
|
||
|
vSubaccount VARCHAR(12),
|
||
|
vAccount VARCHAR(12),
|
||
|
vConcept VARCHAR(25),
|
||
|
vDebit DOUBLE,
|
||
|
vCredit DOUBLE,
|
||
|
vEuro DOUBLE,
|
||
|
vSerie CHAR(1),
|
||
|
vInvoice VARCHAR(8),
|
||
|
vVat DOUBLE,
|
||
|
vRe DOUBLE,
|
||
|
vAux TINYINT,
|
||
|
vCompanyFk INT,
|
||
|
OUT vNewBookNumber INT
|
||
|
)
|
||
|
/**
|
||
|
* Este procedimiento se encarga de la inserción de registros en la tabla XDiario.
|
||
|
* Si el número de asiento (vBookNumber) no está definido, se genera uno nuevo utilizando
|
||
|
* vn.ledger_next.
|
||
|
*
|
||
|
* @param vBookNumber Número de asiento. Si es NULL, se generará uno nuevo.
|
||
|
* @param vDated Fecha utilizada para generar un nuevo número de libro si vBookNumber es NULL.
|
||
|
* @param vSubaccount Subcuenta para la transacción.
|
||
|
* @param vAccount Cuenta para la transacción.
|
||
|
* @param vConcept Concepto de la transacción.
|
||
|
* @param vDebit Monto del débito para la transacción.
|
||
|
* @param vCredit Monto del crédito para la transacción.
|
||
|
* @param vEuro Monto en euros para la transacción.
|
||
|
* @param vSerie Serie para la transacción.
|
||
|
* @param vInvoice Número de factura para la transacción.
|
||
|
* @param vVat Monto del IVA para la transacción.
|
||
|
* @param vRe Monto del RE para la transacción.
|
||
|
* @param vAux Variable auxiliar para la transacción.
|
||
|
* @param vCompanyFk Clave foránea de la compañía para la transacción.
|
||
|
* @return No retorna un valor, pero realiza una inserción en la tabla XDiario.
|
||
|
*/
|
||
|
BEGIN
|
||
|
IF vBookNumber IS NULL THEN
|
||
|
CALL ledger_next(YEAR(vDated), vBookNumber);
|
||
|
END IF;
|
||
|
|
||
|
INSERT INTO XDiario
|
||
|
SET ASIEN = vBookNumber,
|
||
|
FECHA = vDated,
|
||
|
SUBCTA = vSubaccount,
|
||
|
CONTRA = vAccount,
|
||
|
CONCEPTO = vConcept,
|
||
|
EURODEBE = vDebit,
|
||
|
EUROHABER = vCredit,
|
||
|
BASEEURO = vEuro,
|
||
|
SERIE = vSerie,
|
||
|
FACTURA = vInvoice,
|
||
|
IVA = vVat,
|
||
|
RECEQUIV = vRe,
|
||
|
AUXILIAR = IF(vAux = FALSE, NULL, '*'),
|
||
|
MONEDAUSO = 2,
|
||
|
empresa_id = vCompanyFk;
|
||
|
|
||
|
SET vNewBookNumber = vBookNumber;
|
||
|
END$$
|
||
|
DELIMITER ;
|