public void InsertTest() { using (var trans = TransHelper.NewScope()) { // arrange var expected = LunasKasBonDataFactory(); // act _bpPiutangDal.Insert(expected); // assert } }
public LunasKasBonModel Save(LunasKasBonModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var kasBon = _kasBonDal.GetData(model.KasBonID); if (kasBon == null) { throw new ArgumentException("PiutangID invalid"); } // validate pihak kedua var pihakKedua = _pihakKeduaDal.GetData(model.PihakKeduaID); if (pihakKedua == null) { throw new ArgumentException("PihakKeduaID invalid"); } else { model.PihakKeduaName = pihakKedua.PihakKeduaName; } if (kasBon.PihakKeduaID != model.PihakKeduaID) { throw new ArgumentException("PihakKeduaID tidak sama dengan data KasBon"); } if (model.ListLunas == null) { throw new ArgumentException("Detil Pelunasan masih kosong"); } // update nilai total lunas model.NilaiTotLunas = model.ListLunas.Sum(x => x.NilaiLunas); if (model.NilaiSisaPiutang < model.NilaiTotLunas) { throw new ArgumentException("Nilai Pelunasan KasBon terlalu banyak"); } foreach (var item in model.ListLunas) { var jenisLunas = _jenisLunasDal.GetData(item.JenisLunasID); if (jenisLunas == null) { throw new ArgumentException("JenisLunasID invalid : " + item.JenisLunasID); } if (item.NilaiLunas <= 0) { throw new ArgumentException("Pelunasan tidak boleh minus atau nol"); } // jika PelunasanID muncul, cek apakah NoPenjualan valid if (item.PenjualanID.Trim() != "") { var penjualan = _penjualanDal.GetData(item.PenjualanID); if (penjualan == null) { throw new ArgumentException("Penjualan ID invalid"); } // nomor referensi penjualan hanya boleh untuk jenis lunas biaya var jenisBiaya = _jenisBiayaDal.GetData(jenisLunas.JenisBiayaID); if (jenisBiaya == null) { throw new ArgumentException("Penjualan hanya diisi jika Biaya"); } } } using (var trans = TransHelper.NewScope()) { // generate id (jika baru) if (model.LunasKasBonID.Trim() == "") { model.LunasKasBonID = GenNewID(); } // update id di detil; var noUrut = 1; foreach (var item in model.ListLunas) { item.LunasKasBonID = model.LunasKasBonID; item.LunasKasBonDetilID = model.LunasKasBonID + '-' + noUrut.ToString().PadLeft(2, '0'); noUrut++; } // hapus data lama _lunasKasBonDal.Delete(model.LunasKasBonID); _lunasKasBonDetilDal.Delete(model.LunasKasBonID); // simpan data baru _lunasKasBonDal.Insert(model); foreach (var item in model.ListLunas) { _lunasKasBonDetilDal.Insert(item); } // commit changes trans.Complete(); } return(model); }