feat: comprobaciones facturas contabilizadas refs #6932 #2091

Merged
carlosap merged 9 commits from 6932-cambios-en-ENT-con-facturas-contabilzadas into dev 2024-02-26 16:22:27 +00:00
2 changed files with 29 additions and 0 deletions
Showing only changes of commit bed4faceb7 - Show all commits

View File

@ -47,5 +47,19 @@ BEGIN
OR NOT (NEW.currencyFk <=> OLD.currencyFk) THEN
SET NEW.commission = entry_getCommission(NEW.travelFk, NEW.currencyFk,NEW.supplierFk);
END IF;
IF NOT (NEW.invoiceInFk <=> OLD.invoiceInFk)THEN
DECLARE vHanAnyInvoiceBooked BOOL;
SELECT COUNT(*) INTO vHanAnyInvoiceBooked
FROM entry e
JOIN invoiceIn ii ON ii.id = e.invoiceInFk
WHERE e.id = NEW.id
AND ii.isBooked;
IF vHanAnyInvoiceBooked THEN

Ademés de que estem repentint codi, crec que teniem un altre cau de fer que en les entrades pasara igual que en tpv que si un ticket esta facturat ja no es pot modificar, es pot fer igual? si el contabilicen mirar quines coses no es poden tocar.
Si vols seguir en la linea que ho has plantejat, jo faria una funcion travel_hasInvoiceBooked o similar que li pases el travel et torna l'error i estos dos triggers que li pasen el travel. La unica diferencia es que en el trigger de entry tu estas sols comprobant l'entrada actual i en el que jo planteje es comprobarien totes les del travel, pero llegint el mensage d'error crec que es lo correcte.

Ademés de que estem repentint codi, crec que teniem un altre cau de fer que en les entrades pasara igual que en tpv que si un ticket esta facturat ja no es pot modificar, es pot fer igual? si el contabilicen mirar quines coses no es poden tocar. Si vols seguir en la linea que ho has plantejat, jo faria una funcion travel_hasInvoiceBooked o similar que li pases el travel et torna l'error i estos dos triggers que li pasen el travel. La unica diferencia es que en el trigger de entry tu estas sols comprobant l'entrada actual i en el que jo planteje es comprobarien totes les del travel, pero llegint el mensage d'error crec que es lo correcte.

Se decide dejar solamente las verificaciones a nivel de travel

Se decide dejar solamente las verificaciones a nivel de travel
CALL util.throw('The travel has entries with booked invoices')
END IF;
END IF;
END$$
DELIMITER ;

View File

@ -17,5 +17,20 @@ BEGIN
IF NOT (NEW.warehouseInFk <=> OLD.warehouseInFk) THEN
CALL travel_checkWarehouseIsFeedStock(NEW.warehouseInFk);
END IF;
IF NOT (NEW.awbFk <=> OLD.awbFk)THEN
DECLARE vHanAnyInvoiceBooked BOOL;
SELECT COUNT(*) INTO vHanAnyInvoiceBooked
carlosap marked this conversation as resolved
Review

duplicat

duplicat
FROM travel t
JOIN entry e ON e.travelFk =t.id
JOIN invoiceIn ii ON ii.id = e.invoiceInFk
WHERE t.id = NEW.id
AND ii.isBooked;
IF vHanAnyInvoiceBooked THEN
CALL util.throw('The travel has entries with booked invoices')
END IF;
END IF;
END$$
DELIMITER ;