Subversion Repositories public

Rev

Rev 44 | Rev 52 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 44 Rev 50
Line 18... Line 18...
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19
 ***************************************************************************/
19
 ***************************************************************************/
20
 
20
 
21
#include <kmessagebox.h>
21
#include <kmessagebox.h>
22
#include <klocale.h>
22
#include <klocale.h>
-
 
23
#include <klistview.h>
-
 
24
#include <kdatewidget.h>
-
 
25
#include <knuminput.h>
-
 
26
#include <qcheckbox.h>
-
 
27
#include <qstring.h>
-
 
28
#include <qfile.h>
-
 
29
#include <qdir.h>
-
 
30
#include <qlistview.h>
-
 
31
 
-
 
32
#include <iostream.h>
-
 
33
 
23
#include "ziaendwidget.h"
34
#include "ziaendwidget.h"
-
 
35
#include "tilgplan.h"
-
 
36
#include "helper.h"
24
 
37
 
25
ziaendWidget::ziaendWidget ( QWidget* parent, const char* name, bool modal, WFlags fl )
38
ziaendWidget::ziaendWidget ( QWidget* parent, const char* name, bool modal, WFlags fl )
26
		: ziaendWidgetBase ( parent,name, modal,fl )
39
		: ziaendWidgetBase ( parent,name, modal,fl )
-
 
40
{
-
 
41
QString hdir = QDir::homeDirPath ();
-
 
42
QFile zaf;
-
 
43
ZIAEND Zi;
-
 
44
char datum[16], prz[24], rate[24], rv[2], ber[2];
-
 
45
int day, mon, year, fd;
-
 
46
 
-
 
47
	kDateWidget_Datum->setDate(QDate::currentDate());
-
 
48
	kListView_Table->setColumnWidth(0, 80);
-
 
49
	kListView_Table->setColumnWidth(1, 90);
-
 
50
	kListView_Table->setColumnAlignment(1, Qt::AlignRight);
-
 
51
	kListView_Table->setColumnWidth(2, 100);
-
 
52
	kListView_Table->setColumnAlignment(2, Qt::AlignRight);
-
 
53
	kListView_Table->setColumnWidth(3, 60);
-
 
54
	kListView_Table->setColumnAlignment(3, Qt::AlignCenter);
-
 
55
	kListView_Table->setColumnWidth(4, 60);
-
 
56
	kListView_Table->setColumnAlignment(4, Qt::AlignCenter);
-
 
57
 
-
 
58
	hdir.append("/.zinsaend.dat");
-
 
59
	zaf.setName(hdir);
-
 
60
 
-
 
61
	if (zaf.open(IO_ReadOnly) != FALSE)
-
 
62
	{
-
 
63
	   fd = zaf.handle();
-
 
64
 
-
 
65
	   while (read(fd, &Zi, sizeof(ZIAEND)) >= sizeof(ZIAEND))
-
 
66
	   {
-
 
67
	      date_int(&day, &mon, &year, Zi.Datum);
-
 
68
	      sprintf (datum, "%02d.%02d.%d", day, mon, year);
-
 
69
	      sprintf (prz, "%.3f", Zi.Zins);
-
 
70
	      sprintf (rate, "%.2f", Zi.NewRate);
-
 
71
	      rv[0] = (Zi.FixRate) ? 'F' : 'N';
-
 
72
	      ber[0] = (Zi.Rate) ? 'B' : 'N';
-
 
73
	      rv[1] = ber[1] = 0;
-
 
74
cout << datum << ", " << prz << ", " << rate << ", " << rv << ", " << ber << endl;
-
 
75
	      QListViewItem *element = new QListViewItem(kListView_Table, i18n(datum), i18n(prz), i18n(rate), i18n(rv), i18n(ber));
-
 
76
	      kListView_Table->insertItem(element);
-
 
77
 	   }
-
 
78
 
-
 
79
	   zaf.close();
27
{}
80
	}
-
 
81
}
28
 
82
 
29
ziaendWidget::~ziaendWidget()
83
ziaendWidget::~ziaendWidget()
30
{}
84
{}
31
 
85
 
32
/*$SPECIALIZATION$*/
86
/*$SPECIALIZATION$*/
33
void ziaendWidget::tbSelectSlot()
87
void ziaendWidget::tbSelectSlot(QListViewItem *item)
-
 
88
{
-
 
89
//QListViewItem *item = kListView_Table->selectedItem();
-
 
90
long datum;
-
 
91
int day, mon, year;
-
 
92
QString str;
-
 
93
QDate dt;
-
 
94
 
-
 
95
	datum = get_date((char *)item->text(0).ascii());
-
 
96
	date_int (&day, &mon, &year, datum);
-
 
97
	dt.setYMD(year, mon, day);
-
 
98
	kDateWidget_Datum->setDate(dt);
-
 
99
	kDoubleNumInput_Zinssatz->setValue(item->text(1).toDouble());
-
 
100
	kDoubleNumInput_Rate->setValue(item->text(2).toDouble());
-
 
101
	str = item->text(3);
-
 
102
 
-
 
103
	if (!str.compare(i18n("N")))
-
 
104
	   checkBox_Rate->setChecked(FALSE);
-
 
105
	else
-
 
106
	   checkBox_Rate->setChecked(TRUE);
-
 
107
 
-
 
108
	str = item->text(4);
-
 
109
 
-
 
110
	if (!str.compare(i18n("N")))
-
 
111
	   checkBox_KalkRate->setChecked(FALSE);
-
 
112
	else
-
 
113
	   checkBox_KalkRate->setChecked(TRUE);
34
{}
114
}
35
 
115
 
36
void ziaendWidget::pbSaveSlot()
116
void ziaendWidget::pbSaveSlot()
37
{
117
{
-
 
118
QString hdir = QDir::homeDirPath ();
-
 
119
QString str;
-
 
120
QFile zaf;
-
 
121
QListViewItem *item;
-
 
122
int fd, men, i;
-
 
123
ZIAEND Zi;
-
 
124
 
-
 
125
	hdir.append("/.zinsaend.dat");
-
 
126
	zaf.setName(hdir);
-
 
127
 
-
 
128
	if (zaf.open(IO_ReadWrite | IO_Truncate) == FALSE)
-
 
129
	{
-
 
130
	   KMessageBox::error(0, QString("Could not open file for reading: %1").arg(zaf.errorString()));
-
 
131
	   done(QDialog::Rejected);
-
 
132
	}
-
 
133
	
-
 
134
	fd = zaf.handle();
-
 
135
	// wegschreiben der Daten in der ListBox
-
 
136
	men = kListView_Table->childCount();
-
 
137
	item->firstChild();
-
 
138
 
-
 
139
	for (i = 0; i < men; i++)
-
 
140
	{
-
 
141
	   item = kListView_Table->itemAtIndex(i);
-
 
142
	   Zi.Datum = get_date ((char *)item->text(0).ascii());
-
 
143
	   Zi.Zins = item->text(1).toDouble();
-
 
144
	   Zi.NewRate = item->text(2).toDouble();
-
 
145
	   Zi.Rate = (!strcmp(item->text(3).ascii(), "N")) ? 0 : 1;
-
 
146
	   Zi.FixRate = (!strcmp(item->text(4).ascii(), "N")) ? 0 : 1;
-
 
147
 
-
 
148
	   write (fd, &Zi, sizeof(ZIAEND));
-
 
149
	}
-
 
150
 
-
 
151
	zaf.close ();
38
	done(QDialog::Accepted);
152
	done(QDialog::Accepted);
39
}
153
}
40
 
154
 
41
void ziaendWidget::pbRemoveSlot()
155
void ziaendWidget::pbRemoveSlot()
42
{}
156
{
-
 
157
QListViewItem *item = kListView_Table->selectedItem();
-
 
158
long datum;
-
 
159
int day, mon, year;
-
 
160
QString str;
-
 
161
QDate dt;
-
 
162
 
-
 
163
	datum = get_date((char *)item->text(0).ascii());
-
 
164
	date_int (&day, &mon, &year, datum);
-
 
165
	dt.setYMD(year, mon, day);
-
 
166
	kDateWidget_Datum->setDate(dt);
-
 
167
	kDoubleNumInput_Zinssatz->setValue(item->text(1).toDouble());
-
 
168
	kDoubleNumInput_Rate->setValue(item->text(2).toDouble());
-
 
169
	str = item->text(3);
-
 
170
 
-
 
171
	if (!str.compare(i18n("N")))
-
 
172
	   checkBox_Rate->setChecked(FALSE);
-
 
173
	else
-
 
174
	   checkBox_Rate->setChecked(TRUE);
-
 
175
 
-
 
176
	str = item->text(4);
-
 
177
 
-
 
178
	if (!str.compare(i18n("N")))
-
 
179
	   checkBox_KalkRate->setChecked(FALSE);
-
 
180
	else
-
 
181
	   checkBox_KalkRate->setChecked(TRUE);
-
 
182
 
-
 
183
	kListView_Table->takeItem(kListView_Table->currentItem());
-
 
184
}
43
 
185
 
44
void ziaendWidget::pbInsertSlot()
186
void ziaendWidget::pbInsertSlot()
-
 
187
{
-
 
188
QString datum, prz, rate, rv, ber;
-
 
189
QDate dt;
-
 
190
double dr, dp;
-
 
191
char hv0[128];
-
 
192
 
-
 
193
	dt = kDateWidget_Datum->date();
-
 
194
 
-
 
195
	if (dt <= QDate::currentDate())
-
 
196
	{
-
 
197
	   KMessageBox::error(0, i18n("Das Datum muss größer als das aktuelle Datum sein!"));
-
 
198
	   return;
45
{}
199
	}
-
 
200
 
-
 
201
	dp = kDoubleNumInput_Zinssatz->value();
-
 
202
	dr = kDoubleNumInput_Rate->value();
-
 
203
 
-
 
204
	if (dp <= 0.0 && !checkBox_Rate->isChecked())
-
 
205
	{
-
 
206
	   KMessageBox::error(0, i18n("Der Zinssatz darf nicht Null sein!"));
-
 
207
	   return;
-
 
208
	}
-
 
209
 
-
 
210
	if (dp < 0.0 || dp > 100.0)
-
 
211
	{
-
 
212
	   KMessageBox::error(0, i18n("Der Zinnsatz darf nicht kleiner als Null oder größer als 100 sein!"));
-
 
213
	   return;
-
 
214
	}
-
 
215
 
-
 
216
	if (checkBox_Rate->isChecked() && dr <= 0.0)
-
 
217
	{
-
 
218
	   KMessageBox::error(0, i18n("Die Rate muss größer als Null sein!"));
-
 
219
	   return;
-
 
220
	}
-
 
221
	
-
 
222
	sprintf (hv0, "%02d.%02d.%d", dt.day(), dt.month(), dt.year());
-
 
223
	datum = QString::fromUtf8(hv0);
-
 
224
	prz = prz.setNum (dp, 'f', 3);
-
 
225
	rate = rate.setNum (dr, 'f', 2);
-
 
226
	rv = QString::fromUtf8(checkBox_Rate->isChecked() ? "F" : "N");
-
 
227
	ber = QString::fromUtf8(checkBox_KalkRate->isChecked() ? "B" : "N");
-
 
228
	QListViewItem *element = new QListViewItem(kListView_Table, datum, prz, rate, rv, ber);
-
 
229
	kListView_Table->clearSelection();
-
 
230
	kListView_Table->insertItem(element);
-
 
231
}
46
 
232
 
47
void ziaendWidget::pbCancelSlot()
233
void ziaendWidget::pbCancelSlot()
48
{
234
{
49
	done(QDialog::Rejected);
235
	done(QDialog::Rejected);
50
}
236
}