// Rechnungserstellungsprogramm
// 1-8-2006 (c) by Marco Matthias Franke
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>
using namespace std;
struct artikel
{
int menge;
string name;
string nummer;
float preis;
};
struct rechnung
{
string mitarbeiter;
string versandart;
string bezug;
string lieferbedingungen;
string empfaenger;
string estrasse;
string epostleitzahl;
int rechnungsnummer;
int kundennummer;
};
void main()
{
char auswahl=' ';
int x=1,i,n;
float endpreis=0;
string kdata,adata;
artikel *daten, *dat;
rechnung *rdaten;
system("mkdir Daten\\save");
system("cls");
// In Datei schreiben
ofstream outadata("Daten\\save\\artikel.con", ios::out | ios::app);
ofstream outrdata("Daten\\save\\daten.con", ios::out | ios::app);
ofstream outr("Daten\\Rechnung.html", ios::out);
// Aus Datei lesen
ifstream inadata("Daten\\save\\artikel.con", ios::in);
ifstream inrdata("Daten\\save\\daten.con", ios::in);
SYSTEMTIME tm;
GetLocalTime(&tm);
do
{
cout<<"\n\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB";
cout<<"\n\t\t\xBA "<<tm.wHour<<":"<<tm.wMinute<<" Uhr \t\t\t "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<" \xBA";
cout<<"\n\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC"<<endl;
// Menü
cout<<"\n\t <1> Artikel hinzuf\x81gen/\x84ndern";
cout<<"\n\t <2> Artikel ansehen";
cout<<"\n\t <3> Kundendaten eingeben";
cout<<"\n\t <4> Einkauf laut Liste";
cout<<"\n\t <5> Rechnung in Datei ausgeben (Rechnung.html)";
cout<<"\n\t<ESC> Programm beenden";
//Menü
cout<<"\n\n\tWas moechten Sie tun? \n\t\xAF "<<flush;
auswahl=getche();
auswahl=auswahl+'\0';
switch(auswahl)
{
case '1': system("cls");
cout<<"\n\t <1> Artikel hinzuf\x81gen/\x84ndern"<<endl;
cout<<"\n\n\tWieviele Artikel wollen Sie einlesen ? \n\t\xAF ";
cin>>n;
daten=new artikel[n];
for(i=0;i<n;i++)
{
cout<<"\n\tWelchen Artikel wollen Sie eingeben? \n\t\xAF ";
cin>>daten[i].name;
cout<<"\n\tWelche Nummer hat der Artikel \""<<daten[i].name<<"\"? \n\t\xAF ";
cin>>daten[i].nummer;
cout<<"\n\tWie viel kostet der Artikel \""<<daten[i].name<<"\" (in Euro)? \n\t\xAF ";
cin>>daten[i].preis;
cout<<"\n\tWie viel wollen Sie von dem Artikel \""<<daten[i].name<<"\" einkaufen? \n\t\xAF ";
cin>>daten[i].menge;
}
for(i=0;i<n;i++)
{
outadata<<daten[i].name<<" "<<daten[i].nummer<<" "<<daten[i].menge<<" "<<daten[i].preis<<" \n";
}
outadata.close();
break;
case '2': cout<<"\n\t <2> Artikel Ansehen";
dat=new artikel[n];
for(i=0;i<n;i++)
{
inadata >> dat[i].menge >> dat[i].name >> dat[i].nummer >> dat[i].preis;
if(inadata.eof())
break;
cout << i << "." << endl;
cout << " Menge: " << dat[i].menge << endl;
cout << " Name: " << dat[i].name << endl;
cout << " Nummer: " << dat[i].nummer << endl;
cout << " Preis: " << dat[i].preis << endl;
cout << endl;
}
inadata.close();
cout<<adata;
cout<<"\n\tDr\x81 cken Sie <Enter> um fortzufahren"<<endl;
cin.get();
break;
case '3': system("cls");
cout<<"\n\t <3> Kundendaten eingeben"<<endl<<endl;
break;
case '4': system("cls");
cout<<"\n\t <4> Einkauf laut Liste"<<endl<<endl;
break;
case '5': system("cls");
cout<<"\n\t <5> Rechnung drucken"<<endl<<endl;
outr<<"\n<html>";
outr<<"\n<head>";
outr<<"\n<title>Rechnung</title>";
outr<<"\n<style type=\"text/css\">";
outr<<"\n<!--";
outr<<"\nbody {font-family: Verdana;text-align: left;color: #000000;background: #FFFFFF;bold}";
outr<<"\n-->";
outr<<"\n</style><body><table width=\"100%\"><tr>";
outr<<"\n <td width=\"75%\" valign=\"middle\">";
outr<<"\n <br><br><br><br>";
outr<<"\n Franke, Heinz-Jürgen<br>";
outr<<"\n PC Notdienst<br>";
outr<<"\n Kopernikusweg 3<br><br>";
outr<<"\n 41751 Viersen<br></td> <td width=\"25%\" align=\"right\">";
outr<<"\n reaL-Insanity PC-Systeme GmbH<br>";
outr<<"\n Kopernikusweg 3 41751 Viersen<br> ";
outr<<"\n Telefon: 02153/1399610<br>";
outr<<"\n E-Mai: info@real-insanity.de<br><br><br>";
outr<<"\n<u> Bankverbindung:</u><br>";
outr<<"\n Sparkasse Krefeld<br>";
outr<<"\n Kto: 1344167 Blz: 320 500 00";
outr<<"\n </td></tr></table>";
outr<<"\n<br><br><hr><b><font size=\"+1\">Rechnungsnummer:</font></b><br><hr>";
outr<<"\n<table width=\"100%\">";
outr<<"\n<tr>";
outr<<"\n <td width=\"33%\">Kundennummer:</td>";
outr<<"\n <td width=\"33%\">Ihr Zeichen:</td>";
outr<<"\n <td width=\"33%\">Bearbeiter </td>";
outr<<"\n</tr>";
outr<<"\n<tr>";
outr<<"\n <td width=\"33%\">Belegnummer:</td>";
outr<<"\n <td width=\"33%\">Ihr Beleg:</td>";
outr<<"\n <td width=\"33%\">Ihre UStIDNr: </td>";
outr<<"\n</tr>";
outr<<"\n<tr>";
outr<<"\n <td width=\"33%\">Datum: "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<"</td>";
outr<<"\n <td width=\"33%\">Bezug: </td>";
outr<<"\n <td width=\"33%\">Unsere UStIDNr: </td>";
outr<<"\n</tr>";
outr<<"\n<tr>";
outr<<"\n <td width=\"33%\">Versandart:</td>";
outr<<"\n <td width=\"33%\">Lieferbedingungen: </td>";
outr<<"\n <td width=\"33%\">Steuer-Nr: 102/5011/0504 </td>";
outr<<"\n</tr>";
outr<<"\n</table>";
outr<<"\n<br><br>Aufgrund unserergeleisteten Lieferung berechnen wir Ihnen zu unseren Allgemeinen Geschäftsbedingungen wie folgt:";
outr<<"\n<br><br><br><table width=\"100%\" border=\"0\">";
outr<<"\n<tr bgcolor=\"#C0C0C0\">";
outr<<"\n <td width=\"5%\"> Position:</td>";
outr<<"\n <td width=\"16%\"> Artikelnummer:</td>";
outr<<"\n <td width=\"25%\"> Bezeichnung:</td>";
outr<<"\n <td width=\"*%\"> Menge:</td>";
outr<<"\n <td width=\"16%\"> Einzelpreis:</td>";
outr<<"\n <td width=\"16%\"> Gesamtpreis:</td>";
outr<<"\n</tr>";
for(i=0;i<n;i++)
{
outr<<"\n<tr>";
outr<<"\n <td>"<<i+1<<"</td>";
outr<<"\n <td>"<<daten[i].nummer<<"</td>";
outr<<"\n <td>"<<daten[i].name<<"</td>";
outr<<"\n <td>"<<daten[i].menge<<"</td>";
outr<<"\n <td>"<<daten[i].preis<<"</td>";
outr<<"\n <td>"<<daten[i].preis*daten[i].menge<<"</td>";
outr<<"\n</tr>";
}
outr<<"\n<tr bgcolor=\"#C0C0C0\">";
outr<<"\n <td> </td>";
outr<<"\n <td> </td>";
outr<<"\n <td> </td>";
outr<<"\n <td> Zwischensumme in EUR</td>";
outr<<"\n <td> </td>";
for(i=0;i<n;i++)
{
endpreis=(daten[i].preis*daten[i].menge)+endpreis;
}
outr<<"\n <td>"<<endpreis<<"</td>";
outr<<"\n</tr>";
outr<<"\n<tr>";
outr<<"\n <td> </td>";
outr<<"\n <td> </td>";
outr<<"\n <td> zzgl. MwSt. von</td>";
outr<<"\n <td> 19,00 % </td>";
outr<<"\n <td> </td>";
outr<<"\n <td>"<<(endpreis/1.19)<<"</td>";
outr<<"\n</tr>";
outr<<"\n<tr bgcolor=\"#C0C0C0\">";
outr<<"\n <td> </td>";
outr<<"\n <td> </td>";
outr<<"\n <td> </td>";
outr<<"\n <td> Endsumme in EUR</td>";
outr<<"\n <td> </td>";
outr<<"\n <td>"<<endpreis*1.19<<"</td>";
outr<<"\n</tr>";
outr<<"\n</table>";
outr<<"\n </font>";
outr<<"\n</body>";
outr<<"\n</html>";
cout<<"\n\tDie Datei wurde in dem Order gespeicher´t!";
outr.close();
cout<<"\n\tDr\x81 cken Sie <Enter> um fortzufahren"<<endl;
cin.get();
break;
case '\x1B':cout<<"\n\tDas Programm wird beendet..."<<endl<<endl;
exit(0);
break;
default: cout<<"\n\tEs wurde ene falsche Eingabe get\x84tigt!"<<endl<<endl;
cout<<"\n\tDr\x81 cken Sie <Enter> um fortzufahren"<<endl;
cin.get();
break;
}
system("cls");
}
while(x!=0);
};