return res;
}
+/*
+ * Prepare a record A according to the specs.
+ * See dtaus.txt for explanation
+ */
void dtaus_prepareA (char *buf)
{
int i;
buf[2] = '2';
buf[3] = '8';
buf[4] = 'A';
- for (i=15;i<15+8; i++) buf[i] = '0';
+ for (i=15;i<15+8; i++) buf[i] = '0'; /* A5 */
sprintf(tmp, "%02d%02d%02d", loctime->tm_mday, loctime->tm_mon+1, loctime->tm_year % 100);
- for (i=0; i<6; i++) buf[50+i] = tmp[i];
- for (i=56;i<56+4; i++) buf[i] = ' ';
- for (i=70;i<70+10; i++) buf[i] = '0';
- for (i=80;i<80+48; i++) buf[i] = ' ';
+ for (i=0; i<6; i++) buf[50+i] = tmp[i]; /* A7 (Date) */
+ for (i=56;i<56+4; i++) buf[i] = ' '; /* A8 */
+ for (i=70;i<70+10; i++) buf[i] = '0'; /* A10 */
+ for (i=80;i<80+48; i++) buf[i] = ' '; /* A11 */
+ buf[127] = ' '; /* A12 (Currency) */
}
+/*
+ * Prepare a record C according to the specs.
+ * See dtaus.txt for explanation
+ */
void dtaus_prepareC (char *buf, int normaltext, int maxtext)
{
int i;
i = 187 + (appendix * 29);
/* Bail out if the number is too large, shouldn't be possible though */
- if (i>1000)
+ if (i >= 1000)
exit (1);
buf[1] = (i/100)+48;i-=(i/100)*100;
buf[3] = i+48;
buf[4] = 'C';
- for (i=31;i<31+13; i++) buf[i] = '0';
- buf[49] = ' ';
- for (i=79;i<79+11; i++) buf[i] = '0';
- for (i=90;i<90+3; i++) buf[i] = ' ';
- for (i=120;i<120+8; i++) buf[i] = ' ';
- for (i=182;i<182+3; i++) buf[i] = ' ';
- for (i=185;i<185+2; i++) buf[i] = '0';
- for (i=187;i<187+(29*2); i++) buf[i] = ' ';
- for (i=245;i<245+11; i++) buf[i] = ' ';
+ 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=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 */
+ buf[182] = ' '; /* C17a (Currency) */
+ for (i=183;i<183+2; i++) buf[i] = ' '; /* C17b */
+ for (i=185;i<185+2; i++) buf[i] = '0'; /* C18 (#Extension) */
+ for (i=187;i<187+(29*2); i++) buf[i] = ' '; /* C19-C22 (misc text) */
+ for (i=245;i<245+11; i++) buf[i] = ' '; /* C23 */
}
+/*
+ * Prepare a record E according to the specs.
+ * See dtaus.txt for explanation
+ */
void dtaus_prepareE (char *buf)
{
int i;
buf[2] = '2';
buf[3] = '8';
buf[4] = 'E';
- for (i=5;i<5+5; i++) buf[i] = ' ';
- for (i=64;i<64+13; i++) buf[i] = '0';
- for (i=77;i<77+51; i++) buf[i] = ' ';
+ for (i=5;i<5+5; i++) buf[i] = ' '; /* E3 */
+ for (i=17;i<17+13; i++) buf[i] = '0'; /* E8 (Check Betrag) */
+ for (i=64;i<64+13; i++) buf[i] = '0'; /* E8 (Check Euro) */
+ for (i=77;i<77+51; i++) buf[i] = ' '; /* E9 */
}
int dtaus_writeA(FILE *f, char **values)
* instead of 00 we should let it in so it can read its own
* old files... *sigh*
*/
- while (extC > 0 && dtaus_char(buf,4) != 'C') {
+ while (extC > 0 && dtaus_char(buf,4) != 'C' && dtaus_char(buf,4) != 'E') {
for (index=0; index < 4; index++) {
if ((dtaus_char(buf,index*29) != ' ')) {
bufp = buf + index*29;
fprintf (fcheck, "\n\n\n");
if (valA[recindex][0] == 'L')
- fprintf (fcheck, " Sammeleinzeiehungsauftrag\n\n");
+ fprintf (fcheck, " Sammeleinziehungsauftrag\n\n");
else if (valA[recindex][0] == 'G')
fprintf (fcheck, " Sammelueberweisungsauftrag\n\n");
else