7400-Contador-asientos-contables #2459

Closed
carlosap wants to merge 7 commits from 7400-Contador-asientos-contables into test
8 changed files with 35 additions and 50 deletions
Showing only changes of commit f6c84065f0 - Show all commits

View File

@ -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

View File

@ -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

View File

@ -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(

View File

@ -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

View File

@ -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

View File

@ -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;

start

start
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;

View File

@ -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

2 linies

2 linies
DECLARE vSupplierAccount DOUBLE;
DECLARE vNewBookEntry INT;
DECLARE vIsCash BOOLEAN;
DECLARE vIsSupplierActive BOOLEAN;

View File

@ -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
Review

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

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';