1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| CREATE TRIGGER contacts_cstm_onInsert BEFORE INSERT ON contacts_cstm
FOR EACH ROW
BEGIN
IF (NEW.password_c ="") OR (NEW.password_c IS NULL) THEN
SET NEW.password_c = SUBSTRING(UUID(), 1, 6);
END IF;
END;
CREATE TRIGGER contacts_cstm_onUpdate BEFORE UPDATE ON contacts_cstm
FOR EACH ROW
BEGIN
IF (NEW.password_c ="") OR (NEW.password_c IS NULL) THEN
SET NEW.password_c = SUBSTRING(UUID(), 1, 6);
END IF;
END;
CREATE TRIGGER factures_onUpdate BEFORE UPDATE ON factures
FOR EACH ROW
BEGIN
SET NEW.locked=(IF(NEW.statut>1,1,0));
END;
CREATE TRIGGER opportunities_onUpdate BEFORE UPDATE ON opportunities
FOR EACH ROW
BEGIN
SET NEW.name=REPLACE(NEW.name," ","");
END;
CREATE TRIGGER opportunities_onInsert BEFORE INSERT ON opportunities
FOR EACH ROW
BEGIN
SET NEW.name=REPLACE(NEW.name," ","");
END;
CREATE FUNCTION FACTURE_SUMALLMONTANT (contactid CHAR(36))
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT SUM(IF(fl1.type_ligne=0,fl1.prix_unitaire*fl1.quantite*(1+fl1.tva),0)) INTO x
FROM factures fac
LEFT JOIN facture_ligne fl1 ON fl1.facture_id=fac.id AND fl1.deleted=0 AND fac.statut not in (1,9)
WHERE fac.deleted=0 AND fac.destinataire=contactid;
IF x IS NULL THEN SELECT 0 INTO x;
END IF ;
RETURN x;
END;
CREATE FUNCTION REGLEMENT_SUMALLMONTANT (contactid CHAR(36))
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT SUM(montant) INTO x
FROM reglements reg,contacts_reglements conreg
WHERE reg.id=conreg.reglement_id
AND reg.deleted=0
AND conreg.deleted=0
AND reg.statut IN ("BANK_DEPOSIT","CHECK_OK","DRAFT")
AND conreg.contact_id=contactid;
IF x IS NULL THEN SELECT 0 INTO x;
END IF ;
RETURN x;
END;
CREATE FUNCTION BALANCE (contactid CHAR(36))
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT FACTURE_SUMALLMONTANT(contactid)-REGLEMENT_SUMALLMONTANT(contactid) INTO x;
IF x IS NULL THEN SELECT 0 INTO x;
END IF ;
RETURN x;
END;
CREATE FUNCTION BALANCE_CONTENTIEUX (contactid CHAR(36))
RETURNS DOUBLE
DETERMINISTIC
BEGIN
DECLARE x DOUBLE;
SELECT BALANCE(contactid)-SUM(IF(type_ligne=0,prix_unitaire*quantite*(1+tva),0)) INTO x
FROM factures fac, facture_ligne fl
WHERE fl.facture_id=fac.id
AND fac.destinataire=contactid
AND fl.deleted=0 AND fac.deleted=0
AND MONTH(fac.date_facture)=MONTH(CURDATE())
AND YEAR(fac.date_facture)=YEAR(CURDATE());
IF x IS NULL THEN SELECT 0 INTO x;
END IF ;
RETURN x;
END; |
Partager