7400-Contador-asientos-contables #2459
|
@ -20,7 +20,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`xdiario_new`(
|
|||
NO SQL
|
||||
BEGIN
|
||||
IF vBookNumber IS NULL THEN
|
||||
CALL ledger_next(YEAR(vDated), vCompanyFk, vBookNumber);
|
||||
CALL ledger_next(YEAR(vDated), vBookNumber);
|
||||
END IF;
|
||||
|
||||
INSERT INTO XDiario
|
||||
|
|
|
@ -5,15 +5,14 @@ BEGIN
|
|||
DECLARE vBookDated DATE;
|
||||
DECLARE vDiff DECIMAL(10,2);
|
||||
DECLARE vApunte BIGINT;
|
||||
DECLARE vCompanyFk INT;
|
||||
|
||||
SELECT ASIEN, IFNULL(bookEntried, util.VN_CURDATE()), companyFk
|
||||
INTO vBookNumber, vBookDated, vCompanyFk
|
||||
SELECT ASIEN, IFNULL(bookEntried, util.VN_CURDATE())
|
||||
INTO vBookNumber, vBookDated
|
||||
FROM dua
|
||||
WHERE id = vDuaFk;
|
||||
|
||||
IF vBookNumber IS NULL OR NOT vBookNumber THEN
|
||||
CALL ledger_next(YEAR(vBookDated), vCompanyFk, vBookNumber);
|
||||
CALL ledger_next(YEAR(vBookDated), vBookNumber);
|
||||
END IF;
|
||||
|
||||
-- Apunte de la aduana
|
||||
|
@ -33,7 +32,7 @@ BEGIN
|
|||
CONCAT('DUA ',d.`code`),
|
||||
sum(dt.base * dt.rate / 100) EUROHABER,
|
||||
'R',
|
||||
vCompanyFk,
|
||||
d.companyFk,
|
||||
vDuaFk,
|
||||
vDuaFk
|
||||
FROM duaTax dt
|
||||
|
@ -94,7 +93,7 @@ BEGIN
|
|||
IF(c.code = 'ES', 1, 4) TERIDNIF,
|
||||
s.nif TERNIF,
|
||||
s.name TERNOM,
|
||||
vCompanyFk,
|
||||
d.companyFk,
|
||||
d.booked FECREGCON
|
||||
FROM duaTax dt
|
||||
JOIN dua d ON dt.duaFk = d.id
|
||||
|
|
|
@ -3,7 +3,6 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`invoiceIn_booking`(
|
|||
BEGIN
|
||||
DECLARE vBookNumber INT;
|
||||
DECLARE vFiscalYear INT;
|
||||
DECLARE vCompanyFk INT;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tInvoiceIn
|
||||
ENGINE = MEMORY
|
||||
|
@ -58,8 +57,8 @@ BEGIN
|
|||
LEFT JOIN sage.taxType tt ON tt.id = ti.CodigoIva
|
||||
WHERE ii.id = vSelf;
|
||||
|
||||
SELECT YEAR(bookEntried), companyFk INTO vFiscalYear, vCompanyFk FROM tInvoiceIn;
|
||||
CALL ledger_next(vFiscalYear, vCompanyFk, vBookNumber);
|
||||
SELECT YEAR(bookEntried) INTO vFiscalYear FROM tInvoiceIn;
|
||||
CALL ledger_next(vFiscalYear, vBookNumber);
|
||||
|
||||
-- Apunte del proveedor
|
||||
INSERT INTO XDiario(
|
||||
|
|
|
@ -11,7 +11,6 @@ BEGIN
|
|||
DECLARE vSpainCountryFk INT;
|
||||
DECLARE vOldBookNumber INT;
|
||||
DECLARE vFiscalYear INT;
|
||||
DECLARE vCompanyFk INT;
|
||||
|
||||
SELECT id INTO vSpainCountryFk FROM country WHERE `code` = 'ES';
|
||||
|
||||
|
@ -61,8 +60,8 @@ BEGIN
|
|||
LEFT JOIN invoiceOut ior ON ior.id = ic.correctedFk
|
||||
WHERE io.id = vInvoice;
|
||||
|
||||
SELECT YEAR(FECHA), companyFk INTO vFiscalYear, vCompanyFk FROM rs;
|
||||
CALL ledger_next(vFiscalYear, vCompanyFk, vBookNumber);
|
||||
SELECT YEAR(FECHA) INTO vFiscalYear FROM rs;
|
||||
CALL ledger_next(vFiscalYear, vBookNumber);
|
||||
-- Linea del cliente
|
||||
INSERT INTO XDiario(
|
||||
ASIEN,
|
||||
|
@ -80,7 +79,7 @@ BEGIN
|
|||
rs.simpleConcept,
|
||||
rs.FECHA_EX,
|
||||
rs.FECHA_OP,
|
||||
vCompanyFk
|
||||
rs.companyFk
|
||||
FROM rs;
|
||||
|
||||
-- Lineas de gasto
|
||||
|
@ -102,7 +101,7 @@ BEGIN
|
|||
rs.Concept,
|
||||
rs.FECHA_EX,
|
||||
rs.FECHA_OP,
|
||||
vCompanyFk
|
||||
rs.companyFk
|
||||
FROM rs
|
||||
JOIN invoiceOutExpense ioe
|
||||
WHERE ioe.invoiceOutFk = vInvoice;
|
||||
|
@ -174,7 +173,7 @@ BEGIN
|
|||
rs.TIPONOSUJE,
|
||||
rs.TIPOFACT,
|
||||
rs.TIPORECTIF,
|
||||
vCompanyFk
|
||||
rs.companyFk
|
||||
FROM rs
|
||||
JOIN invoiceOutTax iot
|
||||
JOIN pgc ON pgc.code = iot.pgcFk
|
||||
|
|
|
@ -28,7 +28,7 @@ BEGIN
|
|||
DECLARE vIsOriginalAClient BOOL;
|
||||
DECLARE vPayMethodCompensation INT;
|
||||
|
||||
CALL ledger_next(YEAR(vDated), vCompanyFk, vNewBookEntry);
|
||||
CALL ledger_next(YEAR(vDated), vNewBookEntry);
|
||||
|
||||
SELECT COUNT(id) INTO vIsOriginalAClient
|
||||
FROM client
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ledger_next`(
|
||||
IN vFiscalYear INT,
|
||||
IN vCompanyFk INT,
|
||||
OUT vNewBookEntry INT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE vLastBookEntry INT;
|
||||
DECLARE vHasStarTransaction BOOLEAN;
|
||||
DECLARE vHasStartTransaction BOOLEAN;
|
||||
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
|
||||
IF vHasStarTransaction THEN
|
||||
IF vHasStartTransaction THEN
|
||||
ROLLBACK TO sp;
|
||||
RESIGNAL;
|
||||
ELSE
|
||||
|
@ -20,41 +19,36 @@ BEGIN
|
|||
END IF;
|
||||
END;
|
||||
|
||||
IF vFiscalYear IS NULL OR vCompanyFk IS NULL THEN
|
||||
CALL util.throw('Fiscal year and company are required');
|
||||
IF vFiscalYear IS NULL THEN
|
||||
CALL util.throw('Fiscal year is required');
|
||||
END IF;
|
||||
|
||||
SELECT @@in_transaction INTO vHasStarTransaction;
|
||||
SELECT @@in_transaction INTO vHasStartTransaction;
|
||||
|
||||
IF NOT vHasStarTransaction THEN
|
||||
IF NOT vHasStartTransaction THEN
|
||||
START TRANSACTION;
|
||||
ELSE
|
||||
SAVEPOINT sp;
|
||||
END IF;
|
||||
|
||||
SELECT bookEntry INTO vLastBookEntry
|
||||
FROM ledgerCounter
|
||||
FROM ledgerCompany
|
||||
WHERE fiscalYear = vFiscalYear
|
||||
AND companyFk = vCompanyFk
|
||||
FOR UPDATE;
|
||||
|
||||
IF vLastBookEntry IS NULL THEN
|
||||
INSERT INTO ledgerCounter
|
||||
INSERT INTO ledgerCompany
|
||||
SET fiscalYear = vFiscalYear,
|
||||
companyFk = vCompanyFk,
|
||||
bookEntry = 1;
|
||||
|
||||
SET vLastBookEntry = 0;
|
||||
END IF;
|
||||
|
||||
SET vNewBookEntry = vLastBookEntry + 1;
|
||||
SET vNewBookEntry = IFNULL(vLastBookEntry, 0) + 1;
|
||||
|
||||
UPDATE ledgerCounter
|
||||
UPDATE ledgerCompany
|
||||
SET bookEntry = vNewBookEntry
|
||||
WHERE fiscalYear = vFiscalYear
|
||||
AND companyFk = vCompanyFk;
|
||||
WHERE fiscalYear = vFiscalYear;
|
||||
|
||||
IF vHasStarTransaction THEN
|
||||
IF vHasStartTransaction THEN
|
||||
RELEASE SAVEPOINT sp;
|
||||
ELSE
|
||||
COMMIT;
|
||||
|
|
|
@ -3,7 +3,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`payment_beforeInsert`
|
|||
BEFORE INSERT ON `payment`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE vBankAccount, vSupplierAccount DOUBLE;
|
||||
DECLARE vBankAccount DOUBLE;
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
2 linies 2 linies
|
||||
DECLARE vSupplierAccount DOUBLE;
|
||||
DECLARE vNewBookEntry INT;
|
||||
DECLARE vIsCash BOOLEAN;
|
||||
DECLARE vIsSupplierActive BOOLEAN;
|
||||
|
|
|
@ -1,15 +1,8 @@
|
|||
CREATE OR REPLACE TABLE vn.ledgerCounter (
|
||||
fiscalYear INT UNSIGNED NOT NULL COMMENT 'Año del ejercicio contable',
|
||||
bookEntry INT UNSIGNED DEFAULT 1 NOT NULL COMMENT 'Contador asiento contable',
|
||||
companyFk INT UNSIGNED DEFAULT 442 NOT NULL,
|
||||
PRIMARY KEY (fiscalYear),
|
||||
CONSTRAINT ledgerCounterCompanyFk_Fk FOREIGN KEY (companyFk)
|
||||
REFERENCES vn.company (id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
)
|
||||
ENGINE=InnoDB
|
||||
DEFAULT CHARSET=utf8mb3
|
||||
COLLATE=utf8mb3_unicode_ci
|
||||
COMMENT='Contador para asientos contables';
|
||||
|
||||
carlosap marked this conversation as resolved
jgallego
commented
ledgerCompany ledgerCompany
|
||||
CREATE INDEX ledgerCounter_fiscalYear_IDX
|
||||
USING BTREE ON vn.ledgerCounter (fiscalYear);
|
||||
CREATE OR REPLACE TABLE vn.ledgerCompany (
|
||||
jgallego marked this conversation as resolved
Outdated
jgallego
commented
añadir id autoincrement añadir id autoincrement
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`fiscalYear` int(10) unsigned NOT NULL COMMENT 'Año del ejercicio contable',
|
||||
`bookEntry` int(10) unsigned NOT NULL DEFAULT 1 COMMENT 'Contador asiento contable',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci
|
||||
COMMENT='Contador para asientos contables';
|
Loading…
Reference in New Issue
start