*==============================================================* * DCTBCO: Calcula els dĄgits de control bancaris * * ------------------------------------------ * * Operativa: * * - Calcula per separat el dĄgit corresponent a la entitat * * mes la sucursal i el corresponent en el compte. * * ------------------------------------------ * * Par…metres: * * <--- Entitat ( 4/A) * * <--- Sucursal ( 4/A) * * <--- Compte (10/A) * * ---> DĄgit entitat + sucursal ( 1/A) * * ---> DĄgit compte ( 1/A) * * ------------------------------------------ * * Autor: Joan Llobet * * Data: Gener 2000 * *==============================================================* /SPACE *--------------------------------------------------------------* * Definicią d'estructures de dades: * * DSBANC: Separacią en dĄgits del Banc + Sucursal * * DSCTA: Separacią en dĄgits del Compte * *--------------------------------------------------------------* IDSBANC IDS I 1 4 W$BANC I 5 8 W$SUCU I 1 10DSBS01 I 2 20DSBS02 I 3 30DSBS03 I 4 40DSBS04 I 5 50DSBS05 I 6 60DSBS06 I 7 70DSBS07 I 8 80DSBS08 IDSCTA IDS I 1 10 W$CTA I 1 10DSCT01 I 2 20DSCT02 I 3 30DSCT03 I 4 40DSCT04 I 5 50DSCT05 I 6 60DSCT06 I 7 70DSCT07 I 8 80DSCT08 I 9 90DSCT09 I 10 100DSCT10 /SPACE *--------------------------------------------------------------* * Inici del procŠs * *--------------------------------------------------------------* * C EXSR @INICI C EXSR @DBANC C EXSR @DCTA C EXSR @FINAL /SPACE *--------------------------------------------------------------* * @DBANC: Calcul del dĄgit de control del banc + sucursal * *--------------------------------------------------------------* C @DBANC BEGSR * C DSBS08 MULT 6 W$UNID C DSBS07 MULT 3 W$DESE C DSBS06 MULT 7 W$CENT C DSBS05 MULT 9 W$UMIL C DSBS04 MULT 10 W$DMIL C DSBS03 MULT 5 W$CMIL C DSBS02 MULT 8 W$UMMI C DSBS01 MULT 4 W$DMMI * C Z-ADDW$UNID W$SUMA C ADD W$DESE W$SUMA C ADD W$CENT W$SUMA C ADD W$UMIL W$SUMA C ADD W$DMIL W$SUMA C ADD W$CMIL W$SUMA C ADD W$UMMI W$SUMA C ADD W$DMMI W$SUMA * C W$SUMA DIV 11 W$RESU C MVR W$REST * C 11 SUB W$REST W$RES1 B01 C SELEC W01 C W$RES1 WHLT 10 C MOVE W$RES1 W$DBCO W02 C W$RES1 WHEQ 11 C MOVE '0' W$DBCO W03 C W$RES1 WHEQ 10 C MOVE '1' W$DBCO E01 C ENDSL * C ENDSR /SPACE *--------------------------------------------------------------* * @DCTA: Calcul del dĄgit de control del compte * *--------------------------------------------------------------* C @DCTA BEGSR * C DSCT10 MULT 6 W$UNID C DSCT09 MULT 3 W$DESE C DSCT08 MULT 7 W$CENT C DSCT07 MULT 9 W$UMIL C DSCT06 MULT 10 W$DMIL C DSCT05 MULT 5 W$CMIL C DSCT04 MULT 8 W$UMMI C DSCT03 MULT 4 W$DMMI C DSCT02 MULT 2 W$CMMI C DSCT01 MULT 1 W$UMMM * C Z-ADDW$UNID W$SUMA C ADD W$DESE W$SUMA C ADD W$CENT W$SUMA C ADD W$UMIL W$SUMA C ADD W$DMIL W$SUMA C ADD W$CMIL W$SUMA C ADD W$UMMI W$SUMA C ADD W$DMMI W$SUMA C ADD W$CMMI W$SUMA C ADD W$UMMM W$SUMA * C W$SUMA DIV 11 W$RESU C MVR W$REST * C 11 SUB W$REST W$RES1 B01 C SELEC W01 C W$RES1 WHLT 10 C MOVE W$RES1 W$DCTA W02 C W$RES1 WHEQ 11 C MOVE '0' W$DCTA W03 C W$RES1 WHEQ 10 C MOVE '1' W$DCTA E01 C ENDSL * C ENDSR /SPACE *--------------------------------------------------------------* * @FINAL: Rutina de finalitzacią del programa * *--------------------------------------------------------------* C @FINAL BEGSR * C RETRN * C ENDSR /SPACE *--------------------------------------------------------------* * @INICI: Rutina inicial del programa * *--------------------------------------------------------------* C @INICI BEGSR * C CLEARW$DBCO C CLEARW$DCTA * C ENDSR /SPACE *--------------------------------------------------------------* * *INZSR: Rutina d'inicialitzacią del programa * *--------------------------------------------------------------* C *INZSR BEGSR * C MOVE P$BANC P$BANC 4 C MOVE P$CTA P$CTA 10 C MOVE P$DBCO P$DBCO 1 C MOVE P$DCTA P$DCTA 1 C MOVE P$SUCU P$SUCU 4 * C Z-ADDW$CENT W$CENT 20 C Z-ADDW$CMIL W$CMIL 20 C *LIKE DEFN P$DBCO W$DBCO C *LIKE DEFN P$DCTA W$DCTA C Z-ADDW$DESE W$DESE 20 C Z-ADDW$DMIL W$DMIL 20 C Z-ADDW$DMMI W$DMMI 20 C Z-ADDW$CMMI W$CMMI 20 C Z-ADDW$REST W$REST 20 C Z-ADDW$RESU W$RESU 20 C Z-ADDW$RES1 W$RES1 20 C Z-ADDW$SUMA W$SUMA 40 C Z-ADDW$UMIL W$UMIL 20 C Z-ADDW$UMMI W$UMMI 20 C Z-ADDW$UMMM W$UMMM 20 C Z-ADDW$UNID W$UNID 20 * *------------------------------------* * * *ENTRY: Par…metres rebuts/tornats * * * P$BANC: Codi del banc * * * P$SUCU: Codi de la sucursal * * * P$CTA: NŁmero del compte * * * P$DBCO: DĄgit control Banc + Sucu * * * P$DCTA: DĄgit control compte * * *------------------------------------* C *ENTRY PLIST C W$BANC PARM P$BANC C W$SUCU PARM P$SUCU C W$CTA PARM P$CTA C PARM W$DBCO P$DBCO C PARM W$DCTA P$DCTA * C ENDSR