home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / commercialdemos / gestacomptedemo / scripts_arexx / exportstd.rexx < prev    next >
OS/2 REXX Batch file  |  1998-03-11  |  9KB  |  228 lines

  1. /** $VER: Export2 1.0 (05.01.98)
  2.  ** Auteur: Fabrice SABATIER
  3.  **
  4.  ** Commande ARexx sous GestaLivre V2.0.
  5.  **
  6.  ** Export des transactions vers GestaCompte Banque V2.1 sans calculer le cumul
  7.  ** des sommes.
  8.  **
  9.  **/
  10.  
  11. OPTIONS RESULTS
  12.  
  13. NL = '0a'x
  14.  
  15. Poste.1 ="215000"  /* Définition de la correspondance entre les comptes comptable */
  16. Poste.2 ="218300"  /* de GestaLivre et les postes de GestaBanque */
  17. Poste.3 ="310000"
  18. Poste.4 ="321000"
  19. Poste.5 ="322000"
  20. Poste.6 ="401000"
  21. Poste.7 ="411000"
  22. Poste.8 ="421000"
  23. Poste.9 ="431000"
  24. Poste.10="601000"
  25. Poste.11="602100"
  26. Poste.12="602200"
  27. Poste.13="605000"
  28. Poste.14="606300"
  29. Poste.15="606400"
  30. Poste.16="606800"
  31. Poste.17="607000"
  32. Poste.18="613000"
  33. Poste.19="614000"
  34. Poste.20="615000"
  35. Poste.21="625000"
  36. Poste.22="626000"
  37. Poste.23="641000"
  38. Poste.24="645000"
  39. Poste.25="645100"
  40. Poste.26="645300"
  41. Poste.27="645400"
  42. Poste.28="704000"
  43. Poste.29="705000"
  44. Poste.30="706000"
  45.  
  46. /*****************  Définit les variables d'environnement   ***********************/
  47.  
  48. ADDRESS COMMAND "SYS:Rexxc/rx ENV:GestaCompte.ARexxPréfs" /* exécute le script de définitions des préférences */
  49. NOM_PORT_LIVRE   =GETCLIP('Port_Livre')
  50. NOM_PORT_BANQUE1 =GETCLIP('Port_Banque1')
  51. NOM_PORT_BANQUE2 =GETCLIP('Port_Banque2')
  52. NOM_BANQUE1      =GETCLIP('Banque1')
  53. NOM_BANQUE2      =GETCLIP('Banque2')
  54. NOM_ECRAN1       =GETCLIP('Ecran_Banque1')
  55. NOM_ECRAN2       =GETCLIP('Ecran_Banque2')
  56. /************************************************************************/
  57.  
  58. SIGNAL ON SYNTAX            /* détourne les messages d'erreurs */
  59.  
  60. IF~SHOW(L,"rexxsupport.library")THEN DO
  61.  IF~ADDLIB("rexxsupport.library",0,-30,0) THEN DO
  62.      SAY "rexxsupport.library est introuvable !"
  63.      EXIT
  64.  END
  65. END
  66. /* ouvre la library rexxreqtools.library pour les messages d'erreurs */
  67. call addlib("rexxreqtools.library",0,-30,0)
  68.  
  69. /* Ouverture de la première banque */
  70. FermerLivre=FALSE
  71. IF~SHOW(p,NOM_PORT_BANQUE1) THEN DO
  72.  FermerLivre=TRUE
  73.  x=PRAGMA("STACK",10240)           /* monte la pile à 10Ko */
  74.  ADDRESS COMMAND 'run Gesta:GestaCompte '||NOM_BANQUE1||' s='||NOM_ECRAN1' p='||NOM_PORT_BANQUE1
  75.  DO 10
  76.   IF SHOW(p,NOM_PORT_BANQUE1) THEN LEAVE
  77.   CALL DELAY(100)
  78.  END
  79. END
  80.  
  81. ADDRESS VALUE NOM_PORT_LIVRE   /* adresse du port Arexx du livre de caisse */
  82. wait 5                         /* attent pendant 5 secondes */
  83. showyear                       /* recupère l'année sélectionnée sous GestaLivre */
  84. AnneeEnCours=result
  85.  
  86. exportdata ASCII "ram:fichier_export"
  87. display
  88.  
  89. x=OPEN('infos','ram:fichier_export','R')  /* ouvre le fichier exporté */
  90. DO i=1 BY 1 WHILE ~EOF('infos')           /* lit ce fichier jusqu'à la fin */
  91. ligne.i=READLN('infos')                   /* et le place dans le tableau indicé i */
  92. END
  93. ligne.0=i-2            /* place le nombre de lignes du tableau en 0 */
  94. x=CLOSE('infos')       /* ferme le fichier */
  95.  
  96. IF ligne.0=0 THEN DO
  97.    ADDRESS VALUE NOM_PORT_BANQUE1  /* adresse du port Arexx de GestaCompte Banque1 */
  98.    quit                            /* ferme si aucune transaction à importer */
  99.  
  100.    ADDRESS COMMAND 'delete ram:fichier_export'  /* libère la mémoire */
  101.    EXIT
  102. END
  103.  
  104. enregistre="NON"
  105.  
  106.  
  107. ADDRESS VALUE NOM_PORT_BANQUE1  /* adresse du port Arexx de GestaCompte Banque1 */
  108.  
  109. year AnneeEnCours               /* positionne l'année */
  110. load force                      /* charge le fichier */
  111. display
  112.  
  113. DO i=1 TO ligne.0               /* passe toutes les lignes du tableau en revue */
  114.  PARSE VAR ligne.i Jour '/' Mois '/' Nature '/' Somme '/' Libelle '/' Compte '/' NoCheque '/' . '/' . '/' Paiement
  115.  
  116.  IF Nature="Bank1Input" THEN DO /* Entrées en banque 1 */
  117.                             IF Paiement="CHEQ" THEN BankNature="DELIVE" /* paiement par chèque */
  118.                             ELSE BankNature="TRANSF"
  119.                             DO Index=1 TO 30          /* conversion des comptes en poste pour GestaBanque */
  120.                                IF Compte=Poste.Index THEN LEAVE
  121.                             END
  122.                             enter Jour'|'Mois'|'BankNature'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
  123.                             enregistre="OUI"
  124.                             month mois
  125.                             display                            /* affiche la transaction */
  126.                            END
  127.  IF Nature="Bank1Outflow" THEN DO /* Sorties banque 1 */
  128.                             DO Index=1 TO 30          /* conversion des comptes en poste pour GestaBanque */
  129.                                IF Compte=Poste.Index THEN LEAVE
  130.                             END
  131.                             enter Jour'|'Mois'|'Paiement'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
  132.                             enregistre="OUI"
  133.                             month mois
  134.                             display                            /* affiche la transaction */
  135.                            END
  136.  END
  137.  
  138. IF enregistre="OUI" THEN save force
  139.  
  140. IF FermerLivre=TRUE THEN quit    /* referme la banque */
  141. ELSE DO
  142.       PARSE VAR transaction jour '/' MoisEnCours  '/' .
  143.       month MoisEnCours
  144.       display                    /* afficher les nouvelles écritures */
  145.      END
  146.  
  147. enregistre="NON"
  148.  
  149. /* Ouverture de la seconde banque */
  150. FermerLivre=FALSE
  151. IF~SHOW(p,NOM_PORT_BANQUE2) THEN DO
  152.  FermerLivre=TRUE
  153.  x=PRAGMA("STACK",10240)          /* monte la pile à 10Ko */
  154.  ADDRESS COMMAND 'run Gesta:GestaCompte '||NOM_BANQUE2||' s='||NOM_ECRAN2' p='||NOM_PORT_BANQUE2
  155.  DO 10
  156.   IF SHOW(p,NOM_PORT_BANQUE2) THEN LEAVE
  157.   CALL DELAY(100)
  158.  END
  159. END
  160.  
  161. ADDRESS VALUE NOM_PORT_LIVRE    /* adresse du port Arexx du livre de caisse */
  162. wait 5                          /* attent pendant 5 secondes */
  163.  
  164. ADDRESS VALUE NOM_PORT_BANQUE2  /* adresse du port Arexx de GestaCompte Banque2 */
  165.  
  166. year AnneeEnCours               /* positionne l'année */
  167. load force                      /* charge le fichier */
  168. display
  169.  
  170. DO i=1 TO ligne.0                    /* passe toutes les lignes du tableau en revue */
  171.  PARSE VAR ligne.i Jour '/' Mois '/' Nature '/' Somme '/' Libelle '/' Compte '/' NoCheque '/' . '/' . '/' Paiement
  172.  
  173.  IF Nature="Bank2Input" THEN DO /* Entrées en banque 1 */
  174.                             IF Paiement="CHEQ" THEN BankNature="DELIVE" /* paiement par chèque */
  175.                             ELSE BankNature="TRANSF"
  176.                             DO Index=1 TO 30          /* conversion des comptes en poste pour GestaBanque */
  177.                                IF Compte=Poste.Index THEN LEAVE
  178.                             END
  179.                             enter Jour'|'Mois'|'BankNature'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
  180.                             enregistre="OUI"
  181.                             month mois
  182.                             display                            /* affiche la transaction */
  183.                            END
  184.  IF Nature="Bank2Outflow" THEN DO /* Sorties banque 1 */
  185.                             DO Index=1 TO 30          /* conversion des comptes en poste pour GestaBanque */
  186.                                IF Compte=Poste.Index THEN LEAVE
  187.                             END
  188.                             enter Jour'|'Mois'|'Paiement'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
  189.                             enregistre="OUI"
  190.                             month mois
  191.                             display                            /* affiche la transaction */
  192.                            END
  193. END
  194.  
  195. IF enregistre="OUI" THEN save force
  196.  
  197. IF FermerLivre=TRUE THEN quit  /* referme la banque */
  198. ELSE DO
  199.       PARSE VAR transaction jour '/' MoisEnCours  '/' .
  200.       month MoisEnCours
  201.       display                     /* afficher les nouvelles écritures */
  202.      END
  203.  
  204. ADDRESS VALUE NOM_PORT_LIVRE 
  205.  
  206. exportdata gest "ram:fichier_export" /* efface le marqueur d'export */
  207. ADDRESS COMMAND 'delete ram:fichier_export'  /* libère la mémoire */
  208.  
  209. ADDRESS VALUE NOM_PORT_LIVRE  /* adresse du port Arexx du livre de caisse */
  210. display
  211. EXIT
  212.  
  213. /* Traite les messages d'erreurs */
  214. SYNTAX:
  215. IF RC=13 THEN call rtezrequest( "       Environnement serveur non trouvé !!!" || NL ||NL ||,
  216.                                 "     Les noms des ports ARexx doivent être :" || NL || NL ||,
  217.                                 "           LIVRE   :  " || NOM_PORT_LIVRE || NL ||,
  218.                                 "           BANQUE1 :  " || NOM_PORT_BANQUE1 || NL ||,
  219.                                 "           BANQUE2 :  " || NOM_PORT_BANQUE2 || NL || NL ||,
  220.                 "-------------------------------------------------" || NL || NL ||,
  221.                                 "Note : Pour réparer ceci, veuillez fermer le module"|| NL ||,
  222.                 "       'Livre' et modifier le type d'outil 'REXX' des"|| NL ||,
  223.                 "       trois modules, puis le relancer."|| NL || NL ||,
  224.                 "       ATTENTION aux minuscules/majuscules",,
  225.                 "OK", "Informations","rt_pubscrname="||NOM_ECRAN_PUB "rt_font=Gestacompte.font/8")
  226. ELSE call rtezrequest(errortext(RC),"Terminer","Informations","rt_pubscrname="||NOM_PORT_LIVRE "rt_font=Gestacompte.font/8")
  227. EXIT
  228.