56 lines
1.5 KiB
PL/PgSQL
56 lines
1.5 KiB
PL/PgSQL
|
|
--Fonction pour créer une fiche si celle-ci n'existe pas
|
|
CREATE OR REPLACE FUNCTION newRemboursement(userId CHAR(10), monthFile CHAR(10)) RETURNS int AS $$
|
|
DECLARE
|
|
returnValue INT;
|
|
forfaitRecord RECORD;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO returnValue
|
|
FROM remboursement
|
|
WHERE "rVisiteur" = userId AND "rMois" = monthFile;
|
|
|
|
IF returnValue = 0 THEN
|
|
-- Ajoute une nouvelle ligne à la table remboursement
|
|
INSERT INTO remboursement
|
|
VALUES(userId, monthFile, 0, 0, CURRENT_DATE, 'CR');
|
|
|
|
-- Parcours des lignes de la table forfait pour insérer dans ligne_hors_forfait
|
|
FOR forfaitRecord IN SELECT * FROM forfait LOOP
|
|
INSERT INTO ligne_forfait
|
|
VALUES(userId, monthFile, forfaitRecord."fId", 0, 0);
|
|
END LOOP;
|
|
|
|
-- Mettre à jour la valeur de returnValue après l'insertion
|
|
returnValue := 1; -- Valeur pour indiquer qu'une ligne a été insérée
|
|
END IF;
|
|
|
|
RETURN returnValue;
|
|
END;
|
|
$$ LANGUAGE 'plpgsql';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--AJOUTE LES LIGNES HF
|
|
INSERT ligne_hors_forfait
|
|
("lhVisiteur", "lhMois", "lhLibelle", "lhDate", "lhMontant", "lhJustificatif", "lhRefus")
|
|
VALUES (:userId, :monthF, :libelle, :dateL, :mttF, 'true', 'false');
|
|
|
|
--UPDATE LES LIGNES HF SI REFUS
|
|
UPDATE ligne_hors_forfait
|
|
SET "lhRefus" = 'true'
|
|
WHERE "rVisiteur" = '' AND "rMois" = '' AND "lhId" = '';
|
|
|
|
--UPDATE LES LIGNE FORFAIT
|
|
UPDATE ligne_forfait
|
|
SET "lfQuantite" = :qttF,
|
|
"lfMontant" = :mttF
|
|
WHERE "rVisiteur" = :userId AND "rMois" = :monthF AND "lfForfait" = :idForfait;
|
|
|
|
|
|
|