private void ShowDataBPPiutang() { var bpPiutang = _bpPiutangBL.GetData(KasBonIDText.Text); if (bpPiutang == null) { ClearForm(); return; } PihakKeduaIDText.Text = bpPiutang.PihakKeduaID; PihakKeduaNameText.Text = bpPiutang.PihakKeduaName; KeteranganText.Text = bpPiutang.Keterangan; NilaiSisaPiutangText.Value = bpPiutang.NilaiPiutang - bpPiutang.NilaiLunas; ListLunasGrid.Focus(); }
public void Save(LunasPiutangModel model) { if (model is null) { throw new ArgumentNullException(nameof(model)); } // validasi customer var customer = _pihakKeduaDal.GetData(model.PihakKeduaID); if (customer == null) { throw new ArgumentException("CustomerID invalid"); } model.PihakKeduaName = customer.PihakKeduaName; // validasi jenisbayar var jenisBayar = _jenisBayarDal.GetData(model.JenisBayarID); if (jenisBayar == null) { throw new ArgumentException("JenisBayarID invalid"); } model.JenisBayarName = jenisBayar.JenisBayarName; // pelunasan piutang tidak boleh dengan piutang if (jenisBayar.TipeKas == TIPE_KAS_PIUTANG) { throw new ArgumentException("Pelunasan tidak boleh menggunakan Piutang"); } // cek list piutang apakah benar milik customer ini; // serta validasi nilai piutang vs nilai bayar foreach (var item in model.ListPiutangBayar) { var bpPiutang = _bpPiutangBL.GetData(item.PiutangID); if (bpPiutang == null) { throw new ArgumentException("PiutangID not found"); } if (bpPiutang.PihakKeduaID != model.PihakKeduaID) { throw new ArgumentException("PiutangID invalid Customer"); } if (bpPiutang.NilaiPiutang - bpPiutang.NilaiLunas < item.NilaiBayar) { throw new ArgumentException("Nilai Bayar melebihi piutang"); } } using (var trans = TransHelper.NewScope()) { if (model.LunasPiutangID.Trim() == "") { model.LunasPiutangID = GenNewID(); } var noUrut = 1; foreach (var item in model.ListPiutangBayar) { item.LunasPiutangID = model.LunasPiutangID; var id2 = string.Format("{0}-{1}", item.LunasPiutangID, noUrut.ToString().PadLeft(2, '0')); item.LunasPiutangID2 = id2; noUrut++; } // hapus data lama _lunasPiutangDetilDal.Delete(model.LunasPiutangID); _lunasPiutangDal.Delete(model.LunasPiutangID); // insert data baru _lunasPiutangDal.Insert(model); foreach (var item in model.ListPiutangBayar) { _lunasPiutangDetilDal.Insert(item); } trans.Complete(); } }