Subversion Repositories public

Rev

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

Rev 60 Rev 64
Line 545... Line 545...
545
	// und keine Endfälligkeit, werden 100 Jahre im voraus gesetzt.
545
	// und keine Endfälligkeit, werden 100 Jahre im voraus gesetzt.
546
	// Das ist die maximale Laufzeit.
546
	// Das ist die maximale Laufzeit.
547
 
547
 
548
	if (TpPars->dbis == 0L)
548
	if (TpPars->dbis == 0L)
549
	{
549
	{
-
 
550
	   QDate dt;
-
 
551
	   date_int(&day, &mon, &year, TpPars->ragab);
-
 
552
	   dt.setYMD(year, mon, day);
550
	   tage = (99L * 365L) + (99L / 4L);	// 99 Jahre ist maximale Laufzeit
553
	   dt = dt.addYears(99);		// 99 Jahre ist maximale Laufzeit
551
	   TpPars->dbis = DayToDate (tage + DateToDay (TpPars->ragab));
554
	   TpPars->dbis = dt.year() * 10000L + dt.month() * 100L + dt.day();
552
	}
555
	}
553
 
556
 
554
	// Wenn auf Ultimo gerechnet wird, muß der Tag der letzten
557
	// Wenn auf Ultimo gerechnet wird, muß der Tag der letzten
555
	// Einschränkung auf den letzten des Monats gesetzt werden.
558
	// Einschränkung auf den letzten des Monats gesetzt werden.
556
	// Einzige Ausnahme: Verzinsungsart 7. Hier muß der Tag auf den
559
	// Einzige Ausnahme: Verzinsungsart 7. Hier muß der Tag auf den
Line 1039... Line 1042...
1039
	         tg = tageber (Zi.Datum) - tageber (TpPars->ragab);
1042
	         tg = tageber (Zi.Datum) - tageber (TpPars->ragab);
1040
 
1043
 
1041
	      aZins = kap * (double)tg * TpPars->zssoll / divisor;
1044
	      aZins = kap * (double)tg * TpPars->zssoll / divisor;
1042
	      kap += runden (aZins, rund_fakt);
1045
	      kap += runden (aZins, rund_fakt);
1043
              LastAend = Zi.Datum;
1046
              LastAend = Zi.Datum;
-
 
1047
	      DTable.rate = Zi.Zins;
1044
	      DekZiAend (fdZins, &zoff, sbuf.st_size, &Zi);
1048
	      DekZiAend (fdZins, &zoff, sbuf.st_size, &Zi);
1045
	      kap = DTable.kapital;
1049
	      kap = DTable.kapital;
1046
	      DTable.rate = Zi.Zins;
-
 
1047
	   }
1050
	   }
1048
	   else if ((rat_dat[r_ind] <= ab_dat[a_ind] && r_ind < max_rat) || a_ind >= max_abs)
1051
	   else if ((rat_dat[r_ind] <= ab_dat[a_ind] && r_ind < max_rat) || a_ind >= max_abs)
1049
#else
1052
#else
1050
	   if ((rat_dat[r_ind] <= ab_dat[a_ind] && r_ind < max_rat) || a_ind >= max_abs)
1053
	   if ((rat_dat[r_ind] <= ab_dat[a_ind] && r_ind < max_rat) || a_ind >= max_abs)
1051
#endif
1054
#endif
Line 1237... Line 1240...
1237
	DTable.rkapi = TpPars->lrate;
1240
	DTable.rkapi = TpPars->lrate;
1238
 
1241
 
1239
	if (!TpPars->effekt)
1242
	if (!TpPars->effekt)
1240
	   write (fd, &DTable, sizeof (DTABLE));
1243
	   write (fd, &DTable, sizeof (DTABLE));
1241
#ifdef _ZINSAENDERUNG
1244
#ifdef _ZINSAENDERUNG
1242
	if (TpPars->gewicht > 0.0)
1245
//	if (TpPars->gewicht > 0.0)
1243
	   TpPars->zssoll = TpPars->gewicht;
1246
//	   TpPars->zssoll = TpPars->gewicht;
1244
 
1247
 
1245
	zaf.close();
1248
	zaf.close();
1246
#endif
1249
#endif
-
 
1250
	tmpFile.flush();
-
 
1251
 
1247
	if (!TpPars->effekt)
1252
	if (!TpPars->effekt)
1248
	{
1253
	{
1249
	   tmpFile.flush();
-
 
1250
	   lseek (fd, 0L, 0);
1254
	   lseek (fd, 0L, 0);
1251
	   write (fd, TpPars, sizeof (TPPARS));
1255
	   write (fd, TpPars, sizeof (TPPARS));
1252
	}
1256
	}
-
 
1257
	else
-
 
1258
	{
-
 
1259
	   // Zinsen nach einem Jahr ermitteln
-
 
1260
	   tmpFile.flush();
-
 
1261
	   lseek (fd, (long)sizeof(TPPARS), 0);
-
 
1262
	   zins = 0.0;
-
 
1263
 
-
 
1264
	   while (read (fd, &DTable, sizeof(DTABLE)) >= sizeof(DTABLE))
-
 
1265
	   {
-
 
1266
	      if (DTable.kz == 'R' && DTable.datum >= effend)
-
 
1267
		 break;
-
 
1268
 
-
 
1269
	      if (DTable.kz == 'R')
-
 
1270
		 zins += DTable.zinsen;
-
 
1271
	   }
-
 
1272
 
-
 
1273
	   TpPars->effformel = 100.0 - (100.0 / TpPars->ezins * zins);
-
 
1274
	}
1253
 
1275
 
1254
	tmpFile.close ();
1276
	tmpFile.close ();
1255
	return 0;
1277
	return 0;
1256
}
1278
}
1257
 
1279