Subversion Repositories public

Rev

Rev 44 | Rev 52 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
43 root 1
/***************************************************************************
2
 *   Copyright (C) 2007 by Andreas Theofilu   *
3
 *   andreas@TheoSys.at   *
4
 *                                                                         *
5
 *   This program is free software; you can redistribute it and/or modify  *
6
 *   it under the terms of the GNU General Public License as published by  *
7
 *   the Free Software Foundation; either version 2 of the License, or     *
8
 *   (at your option) any later version.                                   *
9
 *                                                                         *
10
 *   This program is distributed in the hope that it will be useful,       *
11
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13
 *   GNU General Public License for more details.                          *
14
 *                                                                         *
15
 *   You should have received a copy of the GNU General Public License     *
16
 *   along with this program; if not, write to the                         *
17
 *   Free Software Foundation, Inc.,                                       *
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19
 ***************************************************************************/
20
 
21
#include <klineedit.h>
22
#include <kmessagebox.h>
23
#include <klocale.h>
24
#include <kdatewidget.h>
25
#include <kcombobox.h>
26
#include <knuminput.h>
27
#include <qcheckbox.h>
28
 
29
#include <stdlib.h>
30
#include <iostream.h>
31
#include "helper.h"
32
#include "tilgungsplanwidget.h"
33
#include "ziaendwidget.h"
34
 
35
tilgungsplanWidget::tilgungsplanWidget ( QWidget* parent, const char* name, WFlags fl )
36
		: tilgungsplanWidgetBase ( parent,name,fl )
37
{
38
QDate dt;
39
 
40
	// Maske mit sinnvollen Parametern versorgen
41
	comboBox_tageber->setCurrentItem(3);
42
	comboBox_Ratart->setCurrentItem(1);
43
	comboBox_Abschl->setCurrentItem(10);
44
	kDoubleNumInput_Zinssatz->setValue(5.5);
45
	kDateWidget_Auszahlung->setDate(QDate::currentDate());
46
	// Datum: Der 5. des nächsten Monats
47
	dt = QDate::currentDate();
48
	dt = dt.addMonths(1);
49
	dt.setYMD(dt.year(), dt.month(), 5);
50
	kDateWidget_RaVon->setDate(dt);
51
	dt = dt.addYears(1);
52
	kDateWidget_RaBis->setDate(dt);
53
	kDateWidget_ZiGiltAb->setDate(QDate::currentDate());
54
	kDoubleNumInput_Betrag->setValue(100000.0);
44 andreas 55
	checkBox_RaJan->setChecked(TRUE);
56
	checkBox_RaFeb->setChecked(TRUE);
57
	checkBox_RaMar->setChecked(TRUE);
58
	checkBox_RaApr->setChecked(TRUE);
59
	checkBox_RaMai->setChecked(TRUE);
60
	checkBox_RaJun->setChecked(TRUE);
61
	checkBox_RaJul->setChecked(TRUE);
62
	checkBox_RaAug->setChecked(TRUE);
63
	checkBox_RaSep->setChecked(TRUE);
64
	checkBox_RaOkt->setChecked(TRUE);
65
	checkBox_RaNov->setChecked(TRUE);
66
	checkBox_RaDez->setChecked(TRUE);
43 root 67
}
68
 
69
tilgungsplanWidget::~tilgungsplanWidget()
70
{}
71
 
72
/*$SPECIALIZATION$*/
73
void tilgungsplanWidget::mnCalcTPSumSlot()
74
{
75
QDate dt, dt1;
76
QString str, zia;
77
TRech *tp;
78
int ret, day1, day2, mon1, mon2, year1, year2;
79
char hv0[255];
80
 
81
	// Zuweisen der Inhalte der Widgets zur internen Parameterstruktur.
82
	TpPars.effformel = 0.0;
83
	TpPars.gewicht = 0.0;
84
	TpPars.tageb = comboBox_tageber->currentItem();
85
	TpPars.verzart = comboBox_verzart->currentItem();
86
	TpPars.ratenart = comboBox_Ratart->currentItem();
87
	TpPars.valuta = comboBox_valuta->currentItem();
88
	TpPars.zssoll = kDoubleNumInput_Zinssatz->value();
46 andreas 89
	TpPars.zuschfix = kDoubleNumInput_ZuschFix->value();
90
	TpPars.zuschprz = kDoubleNumInput_ZiZuschuss->value();
43 root 91
	TpPars.zuschannu = kDoubleNumInput_AnnZuschuss->value();
92
	dt = kDateWidget_Auszahlung->date();
93
	TpPars.ragab = make_date(dt.day(), dt.month(), dt.year());
94
	dt = kDateWidget_Abschluss->date();
95
	TpPars.abschl = make_date(dt.day(), dt.month(), dt.year());
96
	TpPars.ultimo = checkBox_RechUltimo->isChecked();
97
	TpPars.anzraten = kIntNumInput_AnzRaten->value();
98
	ret = comboBox_Abschl->currentItem();
99
 
100
	switch (ret)
101
	{
102
           case 0: TpPars.abschlry = 0; break;
103
	   case 1: TpPars.abschlry = 1; break;
104
	   case 2: TpPars.abschlry = 3; break;
105
	   case 3: TpPars.abschlry = 6; break;
106
	   case 4: TpPars.abschlry = 12; break;
107
	   case 5: TpPars.abschlry = 41; break;
108
	   case 6: TpPars.abschlry = 43; break;
109
	   case 7: TpPars.abschlry = 46; break;
110
	   case 8: TpPars.abschlry = 47; break;
111
	   case 9: TpPars.abschlry = 48; break;
112
	   case 10: TpPars.abschlry = 52; break;
113
        }
114
 
115
	TpPars.zuschver = 0;		// Zuschuss Verrechnung ??
116
	TpPars.spesen = kDoubleNumInput_Fixspesen->value();
117
	TpPars.rahmen = kDoubleNumInput_Betrag->value();
118
	TpPars.kapital = 0.0;
44 andreas 119
	TpPars.raplan[0] = checkBox_RaJan->isChecked();
120
	TpPars.raplan[1] = checkBox_RaFeb->isChecked();
121
	TpPars.raplan[2] = checkBox_RaMar->isChecked();
122
	TpPars.raplan[3] = checkBox_RaApr->isChecked();
123
	TpPars.raplan[4] = checkBox_RaMai->isChecked();
124
	TpPars.raplan[5] = checkBox_RaJun->isChecked();
125
	TpPars.raplan[6] = checkBox_RaJul->isChecked();
126
	TpPars.raplan[7] = checkBox_RaAug->isChecked();
127
	TpPars.raplan[8] = checkBox_RaSep->isChecked();
128
	TpPars.raplan[9] = checkBox_RaOkt->isChecked();
129
	TpPars.raplan[10] = checkBox_RaNov->isChecked();
130
	TpPars.raplan[11] = checkBox_RaDez->isChecked();
43 root 131
	TpPars.rate = kDoubleNumInput_Rate->value();
132
	dt = kDateWidget_RaVon->date();
133
	TpPars.dvon = make_date(dt.day(), dt.month(), dt.year());
134
	dt = kDateWidget_RaBis->date();
135
	TpPars.dbis = make_date(dt.day(), dt.month(), dt.year());
136
	dt = kDateWidget_Endfael->date();
137
	TpPars.endfaell = make_date(dt.day(), dt.month(), dt.year());
138
	TpPars.runden = checkBox_Runden->isChecked();
139
	TpPars.mehrfach = FALSE;
140
	TpPars.laufstop = FALSE;
141
	TpPars.ziaend = FALSE;
142
	TpPars.effekt = TRUE;
143
	TpPars.fixrate = checkBox_Rate->isChecked();
144
 
145
	if (TpPars.dbis > TpPars.endfaell)
146
	   TpPars.endfaell = TpPars.dbis;
147
 
148
	// Berechnung anstossen
149
	tp = new TRech (&TpPars);
150
 
151
	if ((ret = tp->tilgpl()) != 0)
152
	{
153
	   switch (ret)
154
	   {
155
	      case 1: str = QString::fromUtf8("Fehler beim Erzeugen einer Temporärdatei!"); break;
156
	      case 2: str = QString::fromUtf8("Erste Einschränkung nicht vorhanden!"); break;
157
	      case 3:
158
		 date_int (&day1, &mon1, &year1, TpPars.ragab);
159
		 date_int (&day2, &mon2, &year2, TpPars.dvon);
160
		 sprintf (hv0, "Das Auszahlungsdatum (%02d.%02d.%d) muss kleiner als das Datum der ersten Einschränkung sein (%02d.%02d.%d)!",
161
			day1, mon1, year1, day2, mon2, year2);
162
		 str = QString::fromUtf8(hv0); break;
163
	      case 4:
164
		 date_int (&day1, &mon1, &year1, TpPars.abschl);
165
		 date_int (&day2, &mon2, &year2, TpPars.ragab);
166
		 sprintf (hv0, "Das Abschlussdatum (%02d.%02d.%d) darf nicht kleiner als das Auszahlungsdatum (%02d, %02d.%d) sein!",
167
			day1, mon1, year1, day2, mon2, year2);
168
		 str = QString::fromUtf8(hv0); break;
169
	      case 5:
170
		 date_int (&day1, &mon1, &year1, TpPars.dvon);
171
		 date_int (&day2, &mon2, &year2, TpPars.dbis);
172
		 sprintf (hv0, "Die erste Einschränkung (%02d.%02d.%d) darf nicht größer als die letzte Einschränkung (%02d.%02d.%d) sein!",
173
			day1, mon1, year1, day2, mon2, year2);
174
		 str = QString::fromUtf8(hv0); break;
175
	      case 6:
176
		 date_int (&day1, &mon1, &year1, TpPars.dbis);
177
		 date_int (&day2, &mon2, &year2, TpPars.endfaell);
178
		 sprintf (hv0, "Die letzte Einschränkung (%02d.%02d.%d) darf nicht größer die Endfälligkeit (%02d.%02d.%d) sein!",
179
			day1, mon1, year1, day2, mon2, year2);
180
		 str = QString::fromUtf8(hv0); break;
181
	      case 7: str = QString::fromUtf8("Es wurde keine Rate angegeben!"); break;
182
	      case 8: str = QString::fromUtf8("Kein, oder ungültiges Auszahlungsdatum!"); break;
183
	      case 9: str = QString::fromUtf8("Die Verzinsung in Bezug auf den Abschlussrythmus ist ungültig!"); break;
184
	      case 10: str = QString::fromUtf8("Das Abschlussdatum fehlt oder ist ungültig!"); break;
185
	      case 11:
186
		 sprintf(hv0, "Der Abschlussrythmus ist ungültig! (%d)",TpPars.abschlry);
187
		 str = QString::fromUtf8(hv0); break;
188
	      case 12: str = QString::fromUtf8("Die Verzinsungsart ist ungültig!"); break;
189
	      case 13: str = QString::fromUtf8("Die Ratenart ist ungültig!"); break;
190
	      case 14: str = QString::fromUtf8("Die Laufzeit ist über 100 Jahre!"); break;
191
	      case 15: str = QString::fromUtf8("Es wurde keine Rate vorgegeben!"); break;
192
	      case 16: str = QString::fromUtf8("Die vorgegebene Rate darf nicht kleiner als 0 sein!"); break;
193
	      case 18: str = QString::fromUtf8("Die erste Einschränkung oder die Ratenleiste ist ungültig!"); break;
194
	      case 19: str = QString::fromUtf8("Die letzte Einschränkung oder die Ratenleiste ist ungültig!"); break;
195
	      case 22: str = QString::fromUtf8("Nicht genügend Speicher!"); break;
196
	      case 23: str = QString::fromUtf8("\"Antizipativ\" erlaubt keine Zinssatzänderung!"); break;
44 andreas 197
	      case 24: 
198
	      case 25: str = QString::fromUtf8("Fehler beim Lesen der Zinssatzänderungen!"); break;
43 root 199
	      default:
200
		 sprintf (hv0, "Unbekannter Fehler \"%d\"! Prüfen Sie die Eingaben.", ret);
201
	         str = QString::fromUtf8(hv0);
202
	   }
203
 
204
	   KMessageBox::error(0, str, i18n("Fehler"));
205
	   lineEdit_EffZi->clear();
206
	   lineEdit_GesBelast->clear();
44 andreas 207
	   lineEdit_ErgRate->clear();
208
	   lineEdit_ErgLRate->clear();
209
	   lineEdit_ErgZinsen->clear();
210
	   lineEdit_ErgZiZusch->clear();
211
	   lineEdit_ErgAnnZusch->clear();
212
	   lineEdit_ErgSumAnnZusch->clear();
43 root 213
	   return;
214
	}
215
// cout << "Effektivzinssätze: " << TpPars.effformel << ", " << TpPars.gewicht << endl;
216
	PointNumber(TpPars.effformel, 3, &hv0[0]);
217
	lineEdit_EffZi->clear();
218
	lineEdit_EffZi->insert(hv0);
44 andreas 219
 
43 root 220
	PointNumber(TpPars.gesamt, 2, &hv0[0]);
221
	lineEdit_GesBelast->clear();
222
	lineEdit_GesBelast->insert(hv0);
44 andreas 223
 
224
//	kDoubleNumInput_Rate->setValue(TpPars.ergrate);
43 root 225
	kIntNumInput_AnzRaten->setValue(TpPars.anzraten);
44 andreas 226
 
43 root 227
	date_int(&day1, &mon1, &year1, TpPars.dbis);
228
	dt.setYMD(year1, mon1, day1);
229
	kDateWidget_RaBis->setDate(dt);
44 andreas 230
 
43 root 231
	date_int(&day1, &mon1, &year1, TpPars.endfaell);
232
	dt.setYMD(year1, mon1, day1);
233
	kDateWidget_Endfael->setDate(dt);
44 andreas 234
 
235
	PointNumber(TpPars.ergrate, 2, hv0);
236
	lineEdit_ErgRate->clear();
237
	lineEdit_ErgRate->insert(hv0);
238
 
239
	PointNumber(TpPars.lrate, 2, hv0);
240
	lineEdit_ErgLRate->clear();
241
	lineEdit_ErgLRate->insert(hv0);
242
 
243
	PointNumber(TpPars.ezins, 2, hv0);
244
	lineEdit_ErgZinsen->clear();
245
	lineEdit_ErgZinsen->insert(hv0);
246
 
247
	PointNumber(TpPars.zuschuss, 2, hv0);
248
	lineEdit_ErgZiZusch->clear();
249
	lineEdit_ErgZiZusch->insert(hv0);
250
 
251
	PointNumber(TpPars.anzuschuss, 2, hv0);
252
	lineEdit_ErgAnnZusch->clear();
253
	lineEdit_ErgAnnZusch->insert(hv0);
254
 
255
	PointNumber(TpPars.antotal, 2, hv0);
256
	lineEdit_ErgSumAnnZusch->clear();
257
	lineEdit_ErgSumAnnZusch->insert(hv0);
43 root 258
}
259
 
260
void tilgungsplanWidget::txRaDezSlot()
44 andreas 261
{}
43 root 262
 
263
void tilgungsplanWidget::txRaNovSlot()
44 andreas 264
{}
43 root 265
 
266
void tilgungsplanWidget::txRaOktSlot()
44 andreas 267
{}
43 root 268
 
269
void tilgungsplanWidget::txRaSepSlot()
44 andreas 270
{}
43 root 271
 
272
void tilgungsplanWidget::txRaAugSlot()
44 andreas 273
{}
43 root 274
 
275
void tilgungsplanWidget::txRaJulSlot()
44 andreas 276
{}
43 root 277
 
278
void tilgungsplanWidget::txRaJunSlot()
44 andreas 279
{}
43 root 280
 
281
void tilgungsplanWidget::txRaMaiSlot()
44 andreas 282
{}
43 root 283
 
284
void tilgungsplanWidget::txRaMarSlot()
44 andreas 285
{}
43 root 286
 
287
void tilgungsplanWidget::txRaFebSlot()
44 andreas 288
{}
43 root 289
 
290
void tilgungsplanWidget::txRaJanSlot()
44 andreas 291
{}
43 root 292
 
293
void tilgungsplanWidget::txRaAprSlot()
44 andreas 294
{}
43 root 295
 
296
void tilgungsplanWidget::txGesBelastSlot()
297
{}
298
 
299
void tilgungsplanWidget::txEffZiSlot()
300
{}
301
 
302
void tilgungsplanWidget::intAnzRatenSlot()
303
{}
304
 
305
void tilgungsplanWidget::numAnnZuschSlot()
306
{}
307
 
308
void tilgungsplanWidget::dtZiGiltAbSlot()
309
{}
310
 
311
void tilgungsplanWidget::dtRaVonSlot()
312
{}
313
 
314
void tilgungsplanWidget::dtRaBisSlot()
315
{}
316
 
317
void tilgungsplanWidget::dtEndfaelSlot()
318
{}
319
 
320
void tilgungsplanWidget::dtAuszahlSlot()
321
{}
322
 
323
void tilgungsplanWidget::dtAbschlussSlot()
324
{}
325
 
326
void tilgungsplanWidget::lbRatartSlot()
327
{}
328
 
329
void tilgungsplanWidget::cbZiChangeSlot()
330
{}
331
 
332
void tilgungsplanWidget::cbUltimoSlot()
333
{}
334
 
335
void tilgungsplanWidget::cbRateSlot()
336
{}
337
 
338
void tilgungsplanWidget::mnCalcTPSlot()
339
{}
340
 
44 andreas 341
void tilgungsplanWidget::mnInputZiSlot()
342
{
343
ziaendWidget *dlg = new ziaendWidget(this, "ziaendWidgetBase", TRUE, 0);
344
QString zia;
345
 
346
	if (dlg->exec() == QDialog::Accepted)
347
	   zia = QString::fromUtf8(".zinstbl.dat");
348
	else
349
	   zia = QString::fromUtf8("");
350
 
351
	delete dlg;
352
}
353
 
43 root 354
void tilgungsplanWidget::lbVerzartSlot()
355
{}
356
 
357
void tilgungsplanWidget::lbTageberSlot()
358
{}
359
 
360
void tilgungsplanWidget::numZuzaehlSlot()
361
{}
362
 
363
void tilgungsplanWidget::numBeaGebSlot()
364
{}
365
 
366
void tilgungsplanWidget::numZisatzSlot()
367
{}
368
 
369
void tilgungsplanWidget::numZiZuschSlot()
370
{}
371
 
372
void tilgungsplanWidget::numRateSlot()
373
{}
374
 
375
void tilgungsplanWidget::numFixspesenSlot()
376
{}
377
 
378
void tilgungsplanWidget::cbRundenSlot()
379
{}
380
 
381
void tilgungsplanWidget::numBetragSlot()
382
{}
383
 
384
void tilgungsplanWidget::helpAbout()
385
{}
386
 
387
void tilgungsplanWidget::helpContents()
388
{}
389
 
390
void tilgungsplanWidget::helpIndex()
391
{}
392
 
393
void tilgungsplanWidget::editFind()
394
{}
395
 
396
void tilgungsplanWidget::editPaste()
397
{}
398
 
399
void tilgungsplanWidget::editCopy()
400
{}
401
 
402
void tilgungsplanWidget::editCut()
403
{}
404
 
405
void tilgungsplanWidget::editRedo()
406
{}
407
 
408
void tilgungsplanWidget::editUndo()
409
{}
410
 
411
void tilgungsplanWidget::fileExit()
44 andreas 412
{
43 root 413
 
44 andreas 414
}
415
 
43 root 416
void tilgungsplanWidget::filePrint()
417
{}
418
 
419
void tilgungsplanWidget::fileSaveAs()
420
{}
421
 
422
void tilgungsplanWidget::fileSave()
423
{}
424
 
425
void tilgungsplanWidget::fileOpen()
426
{}
427
 
428
void tilgungsplanWidget::fileNew()
429
{}
430
 
431
void tilgungsplanWidget::lbValutaSlot()
432
{}
433
 
434
void tilgungsplanWidget::cbAbschlSlot()
435
{
436
int item = comboBox_Abschl->currentItem();
437
char hv0[256];
438
 
439
	switch (item)
440
	{
441
           case 0: TpPars.abschlry = 0; break;
442
	   case 1: TpPars.abschlry = 1; break;
443
	   case 2: TpPars.abschlry = 3; break;
444
	   case 3: TpPars.abschlry = 6; break;
445
	   case 4: TpPars.abschlry = 12; break;
446
	   case 5: TpPars.abschlry = 41; break;
447
	   case 6: TpPars.abschlry = 43; break;
448
	   case 7: TpPars.abschlry = 46; break;
449
	   case 8: TpPars.abschlry = 47; break;
450
	   case 9: TpPars.abschlry = 48; break;
451
	   case 10: TpPars.abschlry = 52; break;
452
	   default:
453
	      sprintf (hv0, "Gewähltes Item: %d", item);
454
	      KMessageBox::information(0, i18n(hv0));
455
        }
456
}
457
 
458
#include "tilgungsplanwidget.moc"
459