home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga ACS 1998 #4
/
amigaacscoverdisc1998-041998.iso
/
utilities
/
commercialdemos
/
gestacomptedemo
/
scripts_arexx
/
exportstd.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1998-03-11
|
9KB
|
228 lines
/** $VER: Export2 1.0 (05.01.98)
** Auteur: Fabrice SABATIER
**
** Commande ARexx sous GestaLivre V2.0.
**
** Export des transactions vers GestaCompte Banque V2.1 sans calculer le cumul
** des sommes.
**
**/
OPTIONS RESULTS
NL = '0a'x
Poste.1 ="215000" /* Définition de la correspondance entre les comptes comptable */
Poste.2 ="218300" /* de GestaLivre et les postes de GestaBanque */
Poste.3 ="310000"
Poste.4 ="321000"
Poste.5 ="322000"
Poste.6 ="401000"
Poste.7 ="411000"
Poste.8 ="421000"
Poste.9 ="431000"
Poste.10="601000"
Poste.11="602100"
Poste.12="602200"
Poste.13="605000"
Poste.14="606300"
Poste.15="606400"
Poste.16="606800"
Poste.17="607000"
Poste.18="613000"
Poste.19="614000"
Poste.20="615000"
Poste.21="625000"
Poste.22="626000"
Poste.23="641000"
Poste.24="645000"
Poste.25="645100"
Poste.26="645300"
Poste.27="645400"
Poste.28="704000"
Poste.29="705000"
Poste.30="706000"
/***************** Définit les variables d'environnement ***********************/
ADDRESS COMMAND "SYS:Rexxc/rx ENV:GestaCompte.ARexxPréfs" /* exécute le script de définitions des préférences */
NOM_PORT_LIVRE =GETCLIP('Port_Livre')
NOM_PORT_BANQUE1 =GETCLIP('Port_Banque1')
NOM_PORT_BANQUE2 =GETCLIP('Port_Banque2')
NOM_BANQUE1 =GETCLIP('Banque1')
NOM_BANQUE2 =GETCLIP('Banque2')
NOM_ECRAN1 =GETCLIP('Ecran_Banque1')
NOM_ECRAN2 =GETCLIP('Ecran_Banque2')
/************************************************************************/
SIGNAL ON SYNTAX /* détourne les messages d'erreurs */
IF~SHOW(L,"rexxsupport.library")THEN DO
IF~ADDLIB("rexxsupport.library",0,-30,0) THEN DO
SAY "rexxsupport.library est introuvable !"
EXIT
END
END
/* ouvre la library rexxreqtools.library pour les messages d'erreurs */
call addlib("rexxreqtools.library",0,-30,0)
/* Ouverture de la première banque */
FermerLivre=FALSE
IF~SHOW(p,NOM_PORT_BANQUE1) THEN DO
FermerLivre=TRUE
x=PRAGMA("STACK",10240) /* monte la pile à 10Ko */
ADDRESS COMMAND 'run Gesta:GestaCompte '||NOM_BANQUE1||' s='||NOM_ECRAN1' p='||NOM_PORT_BANQUE1
DO 10
IF SHOW(p,NOM_PORT_BANQUE1) THEN LEAVE
CALL DELAY(100)
END
END
ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx du livre de caisse */
wait 5 /* attent pendant 5 secondes */
showyear /* recupère l'année sélectionnée sous GestaLivre */
AnneeEnCours=result
exportdata ASCII "ram:fichier_export"
display
x=OPEN('infos','ram:fichier_export','R') /* ouvre le fichier exporté */
DO i=1 BY 1 WHILE ~EOF('infos') /* lit ce fichier jusqu'à la fin */
ligne.i=READLN('infos') /* et le place dans le tableau indicé i */
END
ligne.0=i-2 /* place le nombre de lignes du tableau en 0 */
x=CLOSE('infos') /* ferme le fichier */
IF ligne.0=0 THEN DO
ADDRESS VALUE NOM_PORT_BANQUE1 /* adresse du port Arexx de GestaCompte Banque1 */
quit /* ferme si aucune transaction à importer */
ADDRESS COMMAND 'delete ram:fichier_export' /* libère la mémoire */
EXIT
END
enregistre="NON"
ADDRESS VALUE NOM_PORT_BANQUE1 /* adresse du port Arexx de GestaCompte Banque1 */
year AnneeEnCours /* positionne l'année */
load force /* charge le fichier */
display
DO i=1 TO ligne.0 /* passe toutes les lignes du tableau en revue */
PARSE VAR ligne.i Jour '/' Mois '/' Nature '/' Somme '/' Libelle '/' Compte '/' NoCheque '/' . '/' . '/' Paiement
IF Nature="Bank1Input" THEN DO /* Entrées en banque 1 */
IF Paiement="CHEQ" THEN BankNature="DELIVE" /* paiement par chèque */
ELSE BankNature="TRANSF"
DO Index=1 TO 30 /* conversion des comptes en poste pour GestaBanque */
IF Compte=Poste.Index THEN LEAVE
END
enter Jour'|'Mois'|'BankNature'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
enregistre="OUI"
month mois
display /* affiche la transaction */
END
IF Nature="Bank1Outflow" THEN DO /* Sorties banque 1 */
DO Index=1 TO 30 /* conversion des comptes en poste pour GestaBanque */
IF Compte=Poste.Index THEN LEAVE
END
enter Jour'|'Mois'|'Paiement'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
enregistre="OUI"
month mois
display /* affiche la transaction */
END
END
IF enregistre="OUI" THEN save force
IF FermerLivre=TRUE THEN quit /* referme la banque */
ELSE DO
PARSE VAR transaction jour '/' MoisEnCours '/' .
month MoisEnCours
display /* afficher les nouvelles écritures */
END
enregistre="NON"
/* Ouverture de la seconde banque */
FermerLivre=FALSE
IF~SHOW(p,NOM_PORT_BANQUE2) THEN DO
FermerLivre=TRUE
x=PRAGMA("STACK",10240) /* monte la pile à 10Ko */
ADDRESS COMMAND 'run Gesta:GestaCompte '||NOM_BANQUE2||' s='||NOM_ECRAN2' p='||NOM_PORT_BANQUE2
DO 10
IF SHOW(p,NOM_PORT_BANQUE2) THEN LEAVE
CALL DELAY(100)
END
END
ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx du livre de caisse */
wait 5 /* attent pendant 5 secondes */
ADDRESS VALUE NOM_PORT_BANQUE2 /* adresse du port Arexx de GestaCompte Banque2 */
year AnneeEnCours /* positionne l'année */
load force /* charge le fichier */
display
DO i=1 TO ligne.0 /* passe toutes les lignes du tableau en revue */
PARSE VAR ligne.i Jour '/' Mois '/' Nature '/' Somme '/' Libelle '/' Compte '/' NoCheque '/' . '/' . '/' Paiement
IF Nature="Bank2Input" THEN DO /* Entrées en banque 1 */
IF Paiement="CHEQ" THEN BankNature="DELIVE" /* paiement par chèque */
ELSE BankNature="TRANSF"
DO Index=1 TO 30 /* conversion des comptes en poste pour GestaBanque */
IF Compte=Poste.Index THEN LEAVE
END
enter Jour'|'Mois'|'BankNature'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
enregistre="OUI"
month mois
display /* affiche la transaction */
END
IF Nature="Bank2Outflow" THEN DO /* Sorties banque 1 */
DO Index=1 TO 30 /* conversion des comptes en poste pour GestaBanque */
IF Compte=Poste.Index THEN LEAVE
END
enter Jour'|'Mois'|'Paiement'|'NoCheque'|'Somme'|'Libelle'|'Index /* envoi la transaction à GestaCompte */
enregistre="OUI"
month mois
display /* affiche la transaction */
END
END
IF enregistre="OUI" THEN save force
IF FermerLivre=TRUE THEN quit /* referme la banque */
ELSE DO
PARSE VAR transaction jour '/' MoisEnCours '/' .
month MoisEnCours
display /* afficher les nouvelles écritures */
END
ADDRESS VALUE NOM_PORT_LIVRE
exportdata gest "ram:fichier_export" /* efface le marqueur d'export */
ADDRESS COMMAND 'delete ram:fichier_export' /* libère la mémoire */
ADDRESS VALUE NOM_PORT_LIVRE /* adresse du port Arexx du livre de caisse */
display
EXIT
/* Traite les messages d'erreurs */
SYNTAX:
IF RC=13 THEN call rtezrequest( " Environnement serveur non trouvé !!!" || NL ||NL ||,
" Les noms des ports ARexx doivent être :" || NL || NL ||,
" LIVRE : " || NOM_PORT_LIVRE || NL ||,
" BANQUE1 : " || NOM_PORT_BANQUE1 || NL ||,
" BANQUE2 : " || NOM_PORT_BANQUE2 || NL || NL ||,
"-------------------------------------------------" || NL || NL ||,
"Note : Pour réparer ceci, veuillez fermer le module"|| NL ||,
" 'Livre' et modifier le type d'outil 'REXX' des"|| NL ||,
" trois modules, puis le relancer."|| NL || NL ||,
" ATTENTION aux minuscules/majuscules",,
"OK", "Informations","rt_pubscrname="||NOM_ECRAN_PUB "rt_font=Gestacompte.font/8")
ELSE call rtezrequest(errortext(RC),"Terminer","Informations","rt_pubscrname="||NOM_PORT_LIVRE "rt_font=Gestacompte.font/8")
EXIT