Essai de manipulation de dates

BoTTom |
     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


|
     c                   call      'DB2ERRC'
     c                   parm                    data
     c                   endif
     c                   endif
     c                   endif
     C                   endif
     C                   endif
      * boucle jusqu'à F3
     C                   enddo
      *
     C                   move      *on           *inlr




©AF400