Hdatfmt(*dmy/)
Fcdeentp1 o e disk
Fessaidatd cf e workstn
Dnbm S 3 0
Dwdate S d
Dmsg C 'date de livraison ne peut pas dépas+
D ser le : '
Ddatchar S 8
* faire jusqu'à F3
c dou *in03
C exfmt fmt
* f3 = fin du pgm
c if not *in03
* test de la validité des deux variables alpha contenant des dates
* (doivent contenir "jj/mm/aa", séparateurs compris)
c test(d) wdatcde 60
c test(d) wdatliv 61
* si ok ==> conversion vers variables de type date
* (définies avec type "L" dans le fichier base de donnée)
c if *in60 = *off and *in61 = *off
c move wdatcde datcde
c move wdatliv datliv
* date de livraison ne peut pas être < à date de cde
c if datliv < datcde
c eval *in62 = *on
c else
* date de livraison ne peut pas dépasser de plus de 13 mois
* la date de commande
c datcde adddur 13:*M wdate
c if datliv > wdate
c eval *in63 = *on
* affichage d'un message contenant la date maxi.
c move wdate datchar
c eval data = msg + datchar
c else
* ecriture dans le PF (les test d'unicité et d'existence du client
* n'ont pas étés effectués).
* on prévoit donc une erreur possible ----------------------------V
C write cdeentf1 55
* ==> en cas d'erreur
* 1/ clé dupliquée (intégrité *PRIKEY)
* 2/ Intégrité référentielle violée (*REFCST)
c if *in55 = *on
* récupération du texte de l'erreur via routine
|