. Made some length values indirect through our data definition
authorJoey Schulze <joey@infodrom.org>
Sat, 17 Nov 2001 20:00:09 +0000 (20:00 +0000)
committerJoey Schulze <joey@infodrom.org>
Sat, 17 Nov 2001 20:00:09 +0000 (20:00 +0000)
 . Added support for ``Ausf├╝hrungsdatum'' ("Ausfuehrung"), the date
   when this transfer should be started instead of the receiption
   date.  Users have to take care of its restrictions, though.

dtaus.c

diff --git a/dtaus.c b/dtaus.c
index 7376627..e19732d 100644 (file)
--- a/dtaus.c
+++ b/dtaus.c
@@ -60,6 +60,7 @@ dtaus_record recA[] = {
   {"BLZ", 7, 8, REQ},
   {"Referenz", 70, 10, OPT},
   {"Datum", 50, 6, IGN},
+  {"Ausfuehrung", 95, 8, OPT},
   {"Euro", 127, 1, OPT},
   {NULL, 0, 0}
 };
@@ -70,8 +71,9 @@ dtaus_record recA[] = {
 #define A_BLZ  3
 #define A_REF  4
 #define A_DATE 5
-#define A_EURO 6
-#define A_LEN  7
+#define A_TODO 6
+#define A_EURO 7
+#define A_LEN  8
 
 dtaus_record recC[] = {
   {"Name", 93, 27, REQ},
@@ -609,12 +611,16 @@ int dtaus_writeA(FILE *f, char **values)
   dtaus_prepareA(buf);
   buf[5] = values[A_TRANS][0];
   buf[6] = values[A_TRANS][1];
-  sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_BLZ]),8));
-  for (i=0; i<8; i++) buf[recA[A_BLZ].pos+i] = tmp[i];
+  sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_BLZ]),recA[A_BLZ].len));
+  for (i=0; i<recA[A_BLZ].len; i++) buf[recA[A_BLZ].pos+i] = tmp[i];
   sprintf (tmp, "%-27.27s", upcase(values[A_NAME]));
   for (i=0; i<27; i++) buf[recA[A_NAME].pos+i] = tmp[i];
-  sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_KTO]),10));
-  for (i=0; i<10; i++) buf[recA[A_KTO].pos+i] = tmp[i];
+  if (values[A_TODO]) {
+    sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_TODO]),recA[A_TODO].len));
+    for (i=0; i<recA[A_TODO].len; i++) buf[recA[A_TODO].pos+i] = tmp[i];
+  }
+  sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_KTO]),recA[A_KTO].len));
+  for (i=0; i<recA[A_KTO].len; i++) buf[recA[A_KTO].pos+i] = tmp[i];
 
   fputs(buf, f);
   return 1;
@@ -1049,6 +1055,9 @@ int control2dtaus (char *ccontrol, char *cdtaus, char *cbeleg, char *ccheck)
        fprintf(fbeleg, "\n    Sammelauftrag\n\n");
       fprintf(fbeleg, "\n    VOL ........................:\n");
       fprintf(fbeleg, "\n    Erstellungsdatum ...........: %s\n", get_date());
+      if (valA[A_TODO]) {
+       fprintf(fbeleg, "\n    Ausfuehrugsdatum ...........: %s\n", valA[A_TODO]);
+      }
 #ifndef DEFAULT_EURO
       if (use_euro)
        fprintf(fbeleg, "\n    Waehrung ...................: Euro\n");