Detailed description |
|
Bravo pour les contraintes de saisie en base de données ... mais :
La contrainte dans la base qui n accepte pas de durée supérieure à 0 pour une concession à perpétuité est insufisament protégé dans le module tarif.class.php.
En effet, en création, je mets temporaire, je mets un chiffre dans le terme puis je reviens et je mets perpétuité.
Cela sort une erreur non explicite (une erreur s est produite)
La contrainte en base de données sur tarif suivante n'est pas respectée :
CONSTRAINT check_tarif_terme_duree CHECK (((((terme)::text = 'temporaire'::text) AND (duree > (0)::double precision)) OR (((terme)::text = 'perpetuite'::text) AND (duree = (0)::double precision))))
car la requete envoyée en base de données
INSERT INTO opencimetiere.tarif (tarif,annee,origine,terme,duree,nature,sepulture_type,montant,monnaie) VALUES ('3','2020','achat','perpetuite','10','concession','8','850','euro')
et on a un retour DEBUG
database::isError():
SGBD ERROR => nativecode = ERROR: new row for relation "tarif" violates check constraint "check_tarif_terme_duree"
DETAIL:
Failing row contains (3, 2020, achat, perpetuite, 10, concession, 8, 850.00, euro). DEBUG
database::isError():
PEAR ERROR => DB Error: constraint violation
A mon avis une remise à 0 du terme en cas de concession à prepetuité dans un trigger_ajouter pourrait résoudre le pb.
|
|