private PihakKeduaModel _Save(PihakKeduaModel pihakKedua) { // validasi if (string.IsNullOrWhiteSpace(pihakKedua.PihakKeduaID)) { throw new ArgumentException("Pihak Kedua ID kosong"); } if (string.IsNullOrWhiteSpace(pihakKedua.PihakKeduaName)) { throw new ArgumentException("Pihak Kedua Name kosong"); } // save var dummyPihakKedua = _pihakKeduaDal.GetData(pihakKedua.PihakKeduaID); if (dummyPihakKedua == null) { _pihakKeduaDal.Insert(pihakKedua); } else { _pihakKeduaDal.Update(pihakKedua); } return(pihakKedua); }
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); }
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(); } }