Advertisement
maskofa

Generate Payment Schedule

Oct 29th, 2019
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.07 KB | None | 0 0
  1. procedure TfrmLeasePaymentSchedule.btnGenerateClick(Sender: TObject);
  2. var
  3.   sbb: Real;
  4.   bul: Int64;
  5.   jmp: Integer;
  6.   prd: Integer;
  7.   hrg: Real;
  8.   ssa: Real;
  9.   ssb: Real;
  10.   anp: Real;
  11.   anb: Real;
  12.   tgl: Integer;
  13.   iii: Integer;
  14.   car: Integer;
  15.   dep: Real;
  16.   wkt: Integer;
  17.   rat: Real;
  18.   sis: Real;
  19.   net: Real;
  20.   vpm: Real;
  21. begin
  22.   hrg := edhargaBarang.Float;
  23.   net := edNetFinance.Float;
  24.   dep := edUangMuka.Float;
  25.   sis := edNilaiSisa.Float;
  26.   prd := cbPeriode.CurrentID;
  27.   rat := edTingkatBunga.Float / 12 / prd / 100;
  28.   wkt := edJangkaWaktu.Integer;
  29.   jmp := trunc(wkt / prd);
  30.   car := 2 - cbTypePembayaran.Index;
  31.   tgl := trunc(dtAcc.Date);
  32.   tgl := trunc(ifthen(cbTypePembayaran.Index = 1, IncMonth(tgl, -1), tgl));
  33.   vpm := PMT(hrg, dep, sis, wkt, rat, car);
  34.   bul := PembulatanLease(vpm);
  35.   ssb := bul * wkt - net;
  36.   ssa := bul * wkt;
  37.  
  38.   edAngsuran.Float     := vpm;
  39.   edPembulatan.Integer := bul;
  40.  
  41.  
  42.   Grid1.RowCount    := jmp + 2;
  43.   Grid1.Cells[5, 1] := edNetFinance.Text;
  44.   Grid1.Cells[6, 1] := FloatToDec(ssb, 2);
  45.   Grid1.Cells[7, 1] := FloatToDec(ssa, 2);
  46.  
  47.   for iii := 2 to Grid1.RowCount - 1 do
  48.   begin
  49.     sbb := DecToFloat(Grid1.Cells[6, iii - 1]);
  50.     anb := round(net * rat);//angsuran bunga;
  51.     anb := ifthen((car = 1) and (iii = 2), 0, anb);
  52.     anp := bul - anb;
  53.     tgl := Trunc(IncMonth(tgl));
  54.     ssb := ssb - anb;
  55.     ssb := ifthen(ssb  <= 0, 0, ssb);
  56.     ssa := ssa - bul;
  57.     net := net - anp;
  58.     net := ifthen(ssb  =  0, ssa, net);
  59.     anb := ifthen(ssb  =  0, sbb, anb);
  60.     anb := ifthen(ssa  <= 0, sbb, anb);
  61.     anp := bul - anb;
  62.     net := ifthen(ssa <= 0, 0, net);
  63.     ssb := ifthen(ssa <= 0, 0, ssb);
  64.  
  65.     Grid1.Cells[0, iii] := IntToStr(iii - 1);
  66.     Grid1.Cells[1, iii] := FormatDateTime('dd-MM-YYYY', tgl);
  67.     Grid1.Cells[2, iii] := FloatToDec(anp, 2);
  68.     Grid1.Cells[3, iii] := FloatToDec(anb, 2);
  69.     Grid1.Cells[4, iii] := FloatToDec(bul, 2);
  70.     Grid1.Cells[5, iii] := FloatToDec(net, 2);
  71.     Grid1.Cells[6, iii] := FloatToDec(ssb, 2);
  72.     Grid1.Cells[7, iii] := FloatToDec(ssa, 2);
  73.   end;
  74. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement