public async Task <ActionResult <SkemaKpr> > PostSkemaKpr(SkemaKpr data) { _context.SkemaKpr.Add(data); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetSkemaKpr), new { Id = data.Idskema }, data)); }
//public async Task<ActionResult<SkemaDetail>> calculateSkemaKPR(decimal harga, decimal dp, decimal bunga, int tenor) //public async Task<ActionResult<Guid>> calculateSkemaKPR(SkemaKPR inputForm) public async Task <ActionResult <SkemaKpr> > calculateSkemaKPR(SkemaKpr inputForm) { var input = new SkemaKpr { Harga = inputForm.Harga, Dp = inputForm.Dp, Bunga = inputForm.Bunga, Tenor = inputForm.Tenor }; _Context.SkemaKpr.Add(input); await _Context.SaveChangesAsync(); //Menghitung Uang Muka decimal SisaKredit = (inputForm.Harga - (inputForm.Harga * (inputForm.Dp / 100))); //perhitungan tagihan tahapan angsuran tetap decimal Tagihan = 0; //menghitung besaran bunga perbulan decimal BungaPerBulan = (inputForm.Bunga / 12) / 100; //menhitung total tahapan angsuran dalam bulan int TahapanAngsuran = inputForm.Tenor * 12; //menghitung sisa pokok ditambah bunga per bulan decimal CalculateDPPlusBunga = SisaKredit * BungaPerBulan; //menghitung (1 + bunga perbulan) decimal CalculateOnePlusBunga = 1 + BungaPerBulan; //menghitung pangkat atas (1 + buanga perbulan) dipangkat total tahapan angsuran double CalculatePow1 = Math.Pow((double)CalculateOnePlusBunga, TahapanAngsuran); //menghitung pangkat bawah (1 + buanga perbulan) dipangkat total tahapan angsuran dikurang 1 double CalculatePow2 = CalculatePow1 - 1; //menghitung pemangkatan atas dibagi pemangkatan bawah double CalculateX = CalculatePow1 / CalculatePow2; //menghitung tagihan angsuran tetap Tagihan = CalculateDPPlusBunga * (decimal)CalculateX; //declarasi sisa kredit decimal PokokKredit = SisaKredit; for (int i = 1; i <= TahapanAngsuran; i++) { decimal Bungakredit = PokokKredit * BungaPerBulan; decimal TagihanPokok = Tagihan - Bungakredit; decimal SisaTagihanPokok = PokokKredit - TagihanPokok; var inputanKPRDetail = new SkemaDetail { Bulan = i, Pokok = PokokKredit, Bunga = Bungakredit, Pelunasanpokok = TagihanPokok, Tagihan = Tagihan, Sisapokok = SisaTagihanPokok }; inputanKPRDetail.Idskema = input.Idskema; _Context.SkemaDetail.Add(inputanKPRDetail); PokokKredit = SisaTagihanPokok; await _Context.SaveChangesAsync(); } //parameter = new { IDSkemaTest = input.IDSkema }; var inputResult = new SkemaKpr { Idskema = input.Idskema, Harga = inputForm.Harga, Dp = inputForm.Dp, Bunga = inputForm.Bunga, Tenor = inputForm.Tenor }; //var test = new SkemaKPR { IDSkema = input.IDSkema }; return(inputResult); }