X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fkasse.c;h=f286d0c306bd9250e03c2475e13f85fc1a8836e6;hb=117205cc830683431fe014211a38d5b3e4778ee2;hp=b1ac476035fba04c3277810abaaea181a6dd3493;hpb=5518f80ec8e6b2ee21fc0f92fac33dd81c801e55;p=c128-kasse diff --git a/src/kasse.c b/src/kasse.c index b1ac476..f286d0c 100644 --- a/src/kasse.c +++ b/src/kasse.c @@ -106,17 +106,21 @@ static char retry_or_quit() { } /* Prints a line and logs it to file */ -static void print_log(char *name, int item_price, int einheiten, char *nickname) { +static void print_log(char *name, int item_price, int einheiten, char *nickname, char *rest) { BYTE c; char *time = get_time(); char price[10]; /* Format: - Transaction-ID (Anzahl verkaufter Einträge, inklusive des zu druckenden!) - Uhrzeit - Eintragname (= Getränk) - Preis (in Cents) - Anzahl - Nickname (falls es vom Guthaben abgezogen wird) + Transaction-ID (Anzahl verkaufter Einträge, inklusive des zu druckenden!) -- 6-stellig + Uhrzeit -- 8-stellig + Eintragname (= Getränk) -- 9-stellig + Preis (in Cents) -- 7-stellig + Anzahl -- 2-stellig + Nickname (falls es vom Guthaben abgezogen wird) -- 10-stellig + restguthaben (9-stellig) + + + 7 leerzeichen + --> 48 zeichen */ if (format_euro(price, 10, item_price) == NULL) { cprintf("Preis %d konnte nicht umgerechnet werden\r\n", item_price); @@ -158,8 +162,12 @@ BYTE buy(char *name, unsigned int price) { int einheiten; char *input; char nickname[11]; + char rest[9]; struct credits_t *credit; + memset(rest, ' ', sizeof(rest)); + rest[8] = '\0'; + cprintf("Wieviel Einheiten \"%s\"? [1] \r\n", name); while (1) { c = getchar(); @@ -202,10 +210,16 @@ BYTE buy(char *name, unsigned int price) { } /* substract money */ credit->credit -= (price * einheiten); - cprintf("\r\nVerbleibendes Guthaben fuer %s: %d Cents. Druecke RETURN...\r\n", - nickname, credit->credit); + + if (format_euro(rest, 10, credit->credit) == NULL) { + cprintf("Preis %d konnte nicht umgerechnet werden\r\n", credit->credit); + exit(1); + } + + cprintf("\r\nVerbleibendes Guthaben fuer %s: %s. Druecke RETURN...\r\n", + nickname, rest); toggle_videomode(); - cprintf("\r\nDein verbleibendes Guthaben betraegt %d Cents.\r\n", credit->credit); + cprintf("\r\nDein verbleibendes Guthaben betraegt %s.\r\n", rest); toggle_videomode(); get_input(); matches++; @@ -222,7 +236,7 @@ BYTE buy(char *name, unsigned int price) { money += price * einheiten; items_sold += einheiten; if (printing == 1) - print_log(name, price, einheiten, nickname); + print_log(name, price, einheiten, nickname, rest); return einheiten; }