-
Notifications
You must be signed in to change notification settings - Fork 1
/
easycashdoc.cpp
93 lines (83 loc) · 2.21 KB
/
easycashdoc.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// EasyCashDoc.cpp : Exzerpt aus der offiziellen EC&T Dokument Klassenfamilie
//
#include "stdafx.h"
#include <ctype.h>
#include "easycashdoc.h"
#define VERSION 9
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma warning( disable : 4996 )
#define _CRT_SECURE_NO_WARNINGS
/////////////////////////////////////////////////////////////////////////////
// CBetrag
CImportBuchung::CImportBuchung()
{
Betrag = 0;
MWSt = 0;
AbschreibungNr = 1;
AbschreibungJahre = 1;
Beschreibung = "";
Datum = CTime(2000, 1, 1, 0, 0, 0);
Konto = "";
Belegnummer = "";
Erweiterung = "";
AbschreibungRestwert = 0;
AbschreibungDegressiv = 0;
AbschreibungSatz = 0;
AbschreibungGenauigkeit = 3;
Bestandskonto = "";
Betrieb = "";
next = NULL;
}
CImportBuchung::~CImportBuchung()
{
if (next) delete next;
}
// ohne next!!!
CImportBuchung& CImportBuchung::operator=(const CImportBuchung& buchungSrc)
{
Betrag = buchungSrc.Betrag; // in Pfennigen
MWSt = buchungSrc.MWSt;
AbschreibungNr = buchungSrc.AbschreibungNr;
AbschreibungJahre = buchungSrc.AbschreibungJahre;
Beschreibung = buchungSrc.Beschreibung;
Datum = buchungSrc.Datum;
Konto = buchungSrc.Konto;
Belegnummer = buchungSrc.Belegnummer;
Erweiterung = buchungSrc.Erweiterung;
AbschreibungRestwert = buchungSrc.AbschreibungRestwert;
AbschreibungDegressiv = buchungSrc.AbschreibungDegressiv;
AbschreibungSatz = buchungSrc.AbschreibungSatz;
AbschreibungGenauigkeit = buchungSrc.AbschreibungGenauigkeit;
Bestandskonto = buchungSrc.Bestandskonto;
Betrieb = buchungSrc.Betrieb;
return *this;
}
long CImportBuchung::GetNetto()
{
long netto;
netto = Betrag;
if (Betrag <= 1000000 && Betrag >= -1000000 && MWSt % 1000 == 0)
{
netto *= 1000;
netto /= (100 + (MWSt / 1000));
if (Betrag >= 0) // halber Pfennig zum Runden
netto += 5;
else
netto -= 5;
netto /= 10;
}
else // bei zu großen Zahlen lieber double-float rechnen!
{
double temp = (double)netto * 100.0;
temp /= (100.0 + ((double)MWSt / 1000.0));
if (Betrag >= 0) // halber Pfennig zum Runden
netto = (long)(temp + 0.5);
else
netto = (long)(temp - 0.5);
}
return netto;
}