{"BLZ", 7, 8, REQ},
{"Referenz", 70, 10, OPT},
{"Datum", 50, 6, IGN},
+ {"Ausfuehrung", 95, 8, OPT},
{"Euro", 127, 1, OPT},
{NULL, 0, 0}
};
#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},
size_t dtaus_nextrec (void **buf, FILE *f)
{
- bzero (buf, 128);
+ memset (buf, 0, 128);
return fread(buf, 128, 1, f);
}
char *cp;
int i;
- bzero (line, sizeof(line));
- bzero (buf, len);
+ memset (line, 0, sizeof(line));
+ memset (buf, 0, len);
cp = line;
while (!strlen(line) && (cp = fgets(line, 100, f))) {
struct tm *loctime;
char tmp[10];
- bzero (buf, 129);
+ memset (buf, 0, 129);
timer = time ( NULL );
loctime = localtime(&timer);
for (i=70;i<70+10; i++) buf[i] = '0'; /* A10 */
for (i=80;i<80+48; i++) buf[i] = ' '; /* A11 */
#ifdef DEFAULT_EURO
- buf[127] = '1'; /* A12 (Currency) */
+ buf[recA[A_EURO].pos] = '1'; /* A12 (Currency) */
#else
if (use_euro)
- buf[127] = '1'; /* A12 (Currency) */
+ buf[recA[A_EURO].pos] = '1'; /* A12 (Currency) */
else
- buf[127] = ' '; /* A12 (Currency) */
+ buf[recA[A_EURO].pos] = ' '; /* A12 (Currency) */
#endif
}
int i;
int appendix = 0;
- bzero (buf, 257);
+ memset (buf, 0, 257);
if (normaltext)
appendix = 1;
for (i=31;i<31+13; i++) buf[i] = '0'; /* C6 */
buf[49] = ' '; /* C8 */
for (i=50;i<50+11; i++) buf[i] = '0'; /* C9 (Betrag) */
- for (i=79;i<79+11; i++) buf[i] = '0'; /* C12 (Euro) */
+ for (i=79;i<79+11; i++) buf[i] = '0'; /* C12 (Betrag Euro) */
for (i=90;i<90+3; i++) buf[i] = ' '; /* C13 */
for (i=93;i<90+27; i++) buf[i] = ' '; /* C14a (Kunde) */
for (i=120;i<120+8; i++) buf[i] = ' '; /* C14b */
#ifdef DEFAULT_EURO
- buf[182] = '1'; /* C17a (Currency) */
+ buf[recC[C_EURO].pos] = '1'; /* C17a (Currency) */
#else
if (use_euro)
- buf[182] = '1'; /* C17a (Currency) */
+ buf[recC[C_EURO].pos] = '1'; /* C17a (Currency) */
else
- buf[182] = ' '; /* C17a (Currency) */
+ buf[recC[C_EURO].pos] = ' '; /* C17a (Currency) */
#endif
for (i=183;i<183+2; i++) buf[i] = ' '; /* C17b */
for (i=187;i<187+(29*2); i++) buf[i] = ' '; /* C19-C22 (misc text) */
{
int i;
- bzero (buf, 129);
+ memset (buf, 0, 129);
buf[0] = '0';
buf[1] = '1';
buf[2] = '2';
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;
fprintf(fcontrol, "BEGIN {\n");
bufp = buf;
- for (index=A_TRANS; index < A_DATE; index++) {
+#ifndef DEFAULT_EURO
+ for (index=A_TRANS; index <= A_EURO; index++) {
+#else
+ for (index=A_TRANS; index < A_EURO; index++) {
+#endif
bufp = buf + recA[index].pos;
memcpy(tmp, bufp, recA[index].len); tmp[recA[index].len] = '\0';
printctln(fcontrol, recA[index].name, strip_zeros(strip_spaces(tmp)));
}
- index = A_DATE; bufp = buf + recA[index].pos;
- memcpy(tmp, bufp, recA[index].len); tmp[recA[index].len] = '\0';
- printctln(fcontrol, recA[index].name, strip_spaces(tmp));
-
- index = A_EURO; bufp = buf + recA[index].pos;
- memcpy(tmp, bufp, recA[index].len); tmp[recA[index].len] = '\0';
- printctln(fcontrol, recA[index].name, strip_zeros(strip_spaces(tmp)));
+#ifndef DEFAULT_EURO
+ if (tmp[recA[index].pos] == '1')
+ use_euro = 1;
+#endif
fprintf(fcontrol, "}\n\n");
} else {
} else {
fprintf(fcontrol, "{\n");
- for (index=C_NAME; index <= C_EURO; index++) {
+ for (index=C_NAME; index < C_EURO; index++) {
+#ifndef DEFAULT_EURO
+ if (use_euro && index == C_VAL)
+ index = C_EUR;
+#endif
bufp = buf + recC[index].pos;
memcpy(tmp, bufp, recC[index].len); tmp[recC[index].len] = '\0';
+#ifndef DEFAULT_EURO
+ if (index == C_VAL || index == C_EUR)
+#else
if (index == C_VAL)
+#endif
printctln(fcontrol, recC[index].name, strip_zeros(string2real(tmp)));
else if (index == C_TRANS)
printctln(fcontrol, recC[index].name, strip_zeros(string2trans(tmp)));
else
printctln(fcontrol, recC[index].name, strip_zeros(strip_spaces(tmp)));
+#ifndef DEFAULT_EURO
+ if (use_euro && index == C_EUR)
+ index = C_VAL;
+#endif
}
for (index=C_TEXT; index <= C_EXT; index++) {
}
}
if (dtaus_nextrec(buf, fdtaus) != 1)
- bzero (buf, sizeof(buf));
+ memset (buf, 0, sizeof(buf));
/*
* Are there extension records that we have to check?
}
}
if (dtaus_nextrec(buf, fdtaus) != 1)
- bzero (buf, sizeof(buf));
+ memset (buf, 0, sizeof(buf));
extC--;
}
fprintf(fcontrol, "}\n");
fprintf(fcontrol, "\nEND {\n");
for (index=E_COUNT; index <= E_BLZ; index++) {
+#ifndef DEFAULT_EURO
+ if (use_euro && index == E_VAL)
+ index = E_EUR;
+#endif
bufp = buf + recE[index].pos;
memcpy(tmp, bufp, recE[index].len); tmp[recE[index].len] = '\0';
+#ifndef DEFAULT_EURO
+ if (index == E_VAL || index == E_EUR)
+#else
if (index == E_VAL)
+#endif
printctln(fcontrol, recE[index].name, strip_zeros(string2real(tmp)));
else
printctln(fcontrol, recE[index].name, strip_zeros(tmp));
+#ifndef DEFAULT_EURO
+ if (use_euro && index == E_EUR)
+ index = E_VAL;
+#endif
}
fprintf(fcontrol, "}\n");
/*
* Record A lesen
*/
- bzero(valA, sizeof(valA));
+ memset (valA, 0, sizeof(valA));
control_nextline ((void *)line, 100, fcontrol);
ident = extract_ident(line);
if (!strcmp(ident, "begin") && (line[0] == '{')) {
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");
sum_val = bigint_int(0);
sum_blz = bigint_int(0);
sum_kto = bigint_int(0);
- bzero(valC, sizeof(valC));
+ memset (valC, 0, sizeof(valC));
control_nextline ((void *)line, 100, fcontrol);
if (line[0] == '{') {
while (strlen(line) && line[0] == '{') {
for (recindex=0; recindex<C_LEN; recindex++)
if (valC[recindex])
free(valC[recindex]);
- bzero(valC, sizeof(valC));
+ memset (valC, 0, sizeof(valC));
control_nextline ((void *)line, 100, fcontrol);
}
} else {