feat(db): sql for supplier isPayMethodChecked

This commit is contained in:
Alex Moreno 2021-12-20 08:01:13 +01:00
parent bcc50b0618
commit 9247bc98f1
5 changed files with 51 additions and 33 deletions

View File

@ -1 +1 @@
ALTER TABLE vn.payMethod ADD hasVerified TINYINT(1) DEFAULT 0 NULL;
ALTER TABLE `vn`.`payMethod` ADD hasVerified TINYINT(1) DEFAULT 0 NULL;

View File

@ -1,15 +1,15 @@
DROP TRIGGER IF EXISTS vn.payment_beforeInsert;
DROP TRIGGER IF EXISTS `vn`.`payment_beforeInsert`;
DELIMITER $$
$$
CREATE DEFINER=`root`@`%` TRIGGER `payment_beforeInsert` BEFORE INSERT ON `payment` FOR EACH ROW
CREATE DEFINER=`root`@`%` TRIGGER `vn`.`payment_beforeInsert` BEFORE INSERT ON `payment` FOR EACH ROW
-- Edit trigger body code below this line. Do not edit lines above this one
BEGIN
DECLARE cuenta_banco,cuenta_proveedor DOUBLE;
DECLARE vNewBookEntry INT;
DECLARE bolCASH BOOLEAN;
DECLARE isSupplierActive BOOLEAN;
DECLARE vIsPayMethodChecked BOOLEAN;
DECLARE vIsSupplierActive BOOLEAN;
DECLARE vIsPayMethodChecked BOOLEAN;
-- PAK 10/02/15 No se asientan los pagos directamente, salvo en el caso de las cajas de CASH
SELECT (at2.code = 'cash') INTO bolCASH FROM vn.bank b JOIN vn.accountingType at2 ON at2.id = b.cash WHERE b.id = NEW.bankFk ;
@ -45,16 +45,25 @@ BEGIN
SET NEW.dueDated = IFNULL(NEW.dueDated, NEW.received);
SELECT isActive, isPayMethodChecked INTO vIsSupplierActive, vIsPayMethodChecked
SELECT isActive, isPayMethodChecked INTO vIsSupplierActive, vIsPayMethodChecked
FROM supplier
WHERE id = NEW.supplierFk;
IF isSupplierActive = FALSE THEN
IF vIsSupplierActive = FALSE THEN
CALL util.throw('SUPPLIER_INACTIVE');
END IF;
IF vIsPayMethodChecked = FALSE THEN
CALL util.throw('SUPPLIER_DOES_NOT_HAVE_PAYMETHODCHECKED');
IF vIsPayMethodChecked = FALSE THEN
CALL mail_insert('finanzas@verdnatura.es',
null,
'Pago con método sin verificar',
CONCAT('Se ha realizado el pago ',
LAST_INSERT_ID(),
' al proveedor ',
NEW.supplierFk,
' con el método de pago sin verificar.'
)
);
END IF;
END$$

View File

@ -1,17 +0,0 @@
DELIMITER $$
$$
CREATE DEFINER=`root`@`%` TRIGGER `vn`.`supplier_beforeUpdate`
BEFORE UPDATE ON `vn`.`supplier` FOR EACH ROW
BEGIN
DECLARE vHasChange BOOL;
SET vHasChange = !((NEW.payMethodFk <=> OLD.payMethodFk)
AND (NEW.payDemFk <=> OLD.payDemFk)
AND (NEW.payDay <=> OLD.payDay));
IF vHasChange THEN
SET NEW.isPayMethodChecked = false;
END IF;
END
$$
DELIMITER ;

View File

@ -0,0 +1,26 @@
DROP TRIGGER IF EXISTS `vn`.`supplier_beforeUpdate`;
DELIMITER $$
$$
CREATE DEFINER=`root`@`%` TRIGGER `vn`.`supplier_beforeUpdate`
BEFORE UPDATE ON `vn`.`supplier` FOR EACH ROW
BEGIN
DECLARE vHasChange BOOL DEFAULT FALSE;
DECLARE vPayMethodHasVerified BOOL;
SELECT hasVerified INTO vPayMethodHasVerified
FROM payMethod
WHERE id = NEW.payMethodFk;
SET vHasChange = (NEW.payDemFk <> OLD.payDemFk) OR (NEW.payDay <> OLD.payDay);
IF vPayMethodHasVerified AND !vHasChange THEN
SET vHasChange = (NEW.payMethodFk <> OLD.payMethodFk);
END IF;
IF vHasChange THEN
SET NEW.isPayMethodChecked = FALSE;
END IF;
END$$
DELIMITER ;

View File

@ -217,14 +217,14 @@ UPDATE `vn`.`agencyMode` SET `web` = 1, `reportMail` = 'no-reply@gothamcity.com'
UPDATE `vn`.`agencyMode` SET `code` = 'refund' WHERE `id` = 23;
INSERT INTO `vn`.`payMethod`(`id`,`code`, `name`, `graceDays`, `outstandingDebt`, `isIbanRequiredForClients`, `isIbanRequiredForSuppliers`)
INSERT INTO `vn`.`payMethod`(`id`,`code`, `name`, `graceDays`, `outstandingDebt`, `isIbanRequiredForClients`, `isIbanRequiredForSuppliers`, `hasVerified`)
VALUES
(1, NULL, 'PayMethod one', 0, 001, 0, 0),
(2, NULL, 'PayMethod two', 10, 001, 0, 0),
(3, 'compensation', 'PayMethod three', 0, 001, 0, 0),
(4, NULL, 'PayMethod with IBAN', 0, 001, 1, 0),
(5, NULL, 'PayMethod five', 10, 001, 0, 0),
(8,'wireTransfer', 'WireTransfer', 5, 001, 1, 1);
(1, NULL, 'PayMethod one', 0, 001, 0, 0, 0),
(2, NULL, 'PayMethod two', 10, 001, 0, 0, 1),
(3, 'compensation', 'PayMethod three', 0, 001, 0, 0, 0),
(4, NULL, 'PayMethod with IBAN', 0, 001, 1, 0, 0),
(5, NULL, 'PayMethod five', 10, 001, 0, 0, 0),
(8,'wireTransfer', 'WireTransfer', 5, 001, 1, 1, 0);
INSERT INTO `vn`.`payDem`(`id`, `payDem`)
VALUES