public void Update(LunasKasBonModel model) { var sSql = @" UPDATE LunasKasBon SET Tgl = @Tgl, Jam = @Jam, PihakKeduaID = @PihakKeduaID, KasBonID = @KasBonID, NilaiSisaPiutang = @NilaiSisaPiutang, NilaiTotLunas = @NilaiTotLunas WHERE LunasKasBonID = @LunasKasBonID "; using (var conn = new SqlConnection(_connString)) using (var cmd = new SqlCommand(sSql, conn)) { cmd.AddParam("@LunasKasBonID", model.LunasKasBonID); cmd.AddParam("@Tgl", model.Tgl.ToTglYMD()); cmd.AddParam("@Jam", model.Jam); cmd.AddParam("@PihakKeduaID", model.PihakKeduaID); cmd.AddParam("@KasBonID", model.KasBonID); cmd.AddParam("@NilaiSisaPiutang", model.NilaiSisaPiutang); cmd.AddParam("@NilaiTotLunas", model.NilaiTotLunas); conn.Open(); cmd.ExecuteNonQuery(); } }
public void Insert(LunasKasBonModel model) { var sSql = @" INSERT INTO LunasKasBon ( LunasKasBonID, Tgl, Jam, PihakKeduaID, KasBonID, NilaiSisaPiutang, NilaiTotLunas) VALUES ( @LunasKasBonID, @Tgl, @Jam, @PihakKeduaID, @KasBonID, @NilaiSisaPiutang, @NilaiTotLunas ) "; using (var conn = new SqlConnection(_connString)) using (var cmd = new SqlCommand(sSql, conn)) { cmd.AddParam("@LunasKasBonID", model.LunasKasBonID); cmd.AddParam("@Tgl", model.Tgl.ToTglYMD()); cmd.AddParam("@Jam", model.Jam); cmd.AddParam("@PihakKeduaID", model.PihakKeduaID); cmd.AddParam("@KasBonID", model.KasBonID); cmd.AddParam("@NilaiSisaPiutang", model.NilaiSisaPiutang); cmd.AddParam("@NilaiTotLunas", model.NilaiTotLunas); conn.Open(); cmd.ExecuteNonQuery(); } }
private void Save() { var lunasKasBon = new LunasKasBonModel { LunasKasBonID = LunasKasBonIDText.Text, Tgl = TglText.Value.ToString("dd-MM-yyyy"), Jam = JamText.Text, KasBonID = KasBonIDText.Text, PihakKeduaID = PihakKeduaIDText.Text, NilaiSisaPiutang = NilaiSisaPiutangText.Value, NilaiTotLunas = NilaiTotLunasText.Value }; List <LunasKasBonDetilModel> listLunas = null; foreach (DataRow dr in ListLunasTable.Rows) { if (listLunas == null) { listLunas = new List <LunasKasBonDetilModel>(); } if (dr["KeteranganCol"].ToString().Trim() == "") { continue; } listLunas.Add(new LunasKasBonDetilModel { LunasKasBonID = "", LunasKasBonDetilID = "", JenisLunasID = dr["JenisLunasIDCol"].ToString(), Keterangan = dr["KeteranganCol"].ToString(), NilaiLunas = Convert.ToDecimal(dr["NilaiLunasCol"]), PenjualanID = dr["PenjualanID"].ToString(), }); } lunasKasBon.ListLunas = listLunas; var kasBon = _kasBonBL.GetData(lunasKasBon.KasBonID); using (var trans = TransHelper.NewScope()) { var result = _lunasKasBonBL.Save(lunasKasBon); var bpKas = _bpKasBL.Generate(lunasKasBon, kasBon); var bpPiutang = _bpPiutangBL.GenPiutang(lunasKasBon, kasBon); var biaya = _biayaBL.Generate(lunasKasBon); var listBPHutang = _bpHutangBL.GenHutang(lunasKasBon); trans.Complete(); } }
private LunasKasBonModel LunasKasBonDataFactory() { var result = new LunasKasBonModel { LunasKasBonID = "A1", Tgl = "11-02-2019", Jam = "01:38:00", PihakKeduaID = "B1", PihakKeduaName = "", KasBonID = "C1", NilaiTotLunas = 250000 }; return(result); }
public BPKasModel Generate(LunasKasBonModel lunasKasBon, KasBonModel kasBon) { if (lunasKasBon == null) { throw new ArgumentNullException(nameof(lunasKasBon)); } if (kasBon == null) { throw new ArgumentNullException(nameof(kasBon)); } if (lunasKasBon.KasBonID != kasBon.KasBonID) { throw new ArgumentException("KasBonID invalid"); } // convert lunasKasBon menjadi object kasBon BPKasModel bpKas = new BPKasModel { BPKasID = lunasKasBon.LunasKasBonID, Tgl = lunasKasBon.Tgl, Jam = lunasKasBon.Jam, Keterangan = "Lunas KasBon " + kasBon.Keterangan, NilaiTotalKas = 0, }; BPKasDetilModel detil = new BPKasDetilModel { BPKasID = bpKas.BPKasID, BPKasDetilID = bpKas.BPKasID + '-' + "01", JenisKasID = "K01", NilaiKasMasuk = lunasKasBon.ListLunas .Where(x => x.JenisLunasID == "KAS") .Sum(x => x.NilaiLunas) }; bpKas.ListDetil = new List <BPKasDetilModel> { detil }; var result = Save(bpKas); return(result); }
public IEnumerable <LunasKasBonModel> ListData(string kasBonID) { List <LunasKasBonModel> result = null; var sSql = @" SELECT aa.LunasKasBonID, aa.Tgl, aa.Jam, aa.PihakKeduaID, aa.KasBonID, aa.NilaiTotLunas, ISNULL(bb.PihakKeduaName, '') PihakKeduaName FROM LunasKasBon aa LEFT JOIN PihakKedua bb ON aa.PihakKeduaID = bb.PihakKeduaID WHERE aa.KasBonID BETWEEN @KasBonID "; using (var conn = new SqlConnection(_connString)) using (var cmd = new SqlCommand(sSql, conn)) { cmd.AddParam("@KasBonID", kasBonID); conn.Open(); using (var dr = cmd.ExecuteReader()) { if (!dr.HasRows) { return(null); } result = new List <LunasKasBonModel>(); while (dr.Read()) { var item = new LunasKasBonModel { LunasKasBonID = dr["LunasKasBonID"].ToString(), Tgl = dr["Tgl"].ToString().ToTglDMY(), Jam = dr["Jam"].ToString(), PihakKeduaID = dr["PihakKeduaID"].ToString(), PihakKeduaName = dr["PihakKeduaName"].ToString(), KasBonID = dr["KasBonID"].ToString(), NilaiSisaPiutang = Convert.ToDecimal(dr["NilaiSisaPiutang"]), NilaiTotLunas = Convert.ToDecimal(dr["NilaiTotLunas"]), }; result.Add(item); } } } return(result); }
public BPPiutangModel GenPiutang(LunasKasBonModel lunasKasBon, KasBonModel kasBon) { // ambil data piutang berdasarkan kasBon var bpPiutang = GetData(kasBon.KasBonID); if(bpPiutang == null) { var errMsg = string.Format("Piutang {0} tidak ditemukan ", kasBon.KasBonID); throw new ArgumentException(errMsg); } // hapus detil lunas yang id-nya = lunasKasBonID List<BPPiutangDetilModel> newListLunas = ( from c in bpPiutang.ListLunas where c.ReffID != lunasKasBon.LunasKasBonID select c ).ToList(); // tambahkan pelunasan dari lunasKasBon int noUrut = newListLunas.Count + 1; foreach(var item in lunasKasBon.ListLunas) { newListLunas.Add(new BPPiutangDetilModel { BPPiutangID = bpPiutang.BPPiutangID, BPPiutangDetilID = bpPiutang.BPPiutangID + '-' + noUrut.ToString().PadLeft(2, '0'), Tgl = lunasKasBon.Tgl, Jam = lunasKasBon.Jam, ReffID = item.LunasKasBonID, Keterangan = " Pelunasan " + item.Keterangan, NilaiPiutang = 0, NilaiLunas = item.NilaiLunas }); noUrut++; } bpPiutang.ListLunas = newListLunas; // simpan var result = Save(bpPiutang); return result; }
public IEnumerable <BiayaModel> Generate(LunasKasBonModel lunasKasBon) { List <BiayaModel> result = null; if (lunasKasBon == null) { throw new ArgumentNullException(nameof(lunasKasBon)); } if (lunasKasBon.ListLunas == null) { throw new ArgumentNullException(nameof(lunasKasBon.ListLunas)); } // cek kasbon-nya exist atau tidak var kasBon = _kasBonBL.GetData(lunasKasBon.KasBonID); if (kasBon == null) { throw new ArgumentException("KasBon tidak ditemukasn"); } // cek apakah ada detil ListLunas yang BIAYA IEnumerable <LunasKasBonDetilModel> listDetilLunasKasBonBiaya = from c in lunasKasBon.ListLunas where c.JenisLunasID != "KAS" select c; if (listDetilLunasKasBonBiaya == null) { return(null); } // Generate Biaya var noUrut = 0; foreach (var item in listDetilLunasKasBonBiaya) { var jenisLunas = _jenisLunasBL.GetData(item.JenisLunasID); if (jenisLunas == null) { throw new ArgumentException("Generate Biaya failed. JenisLunas invalid"); } var biaya = new BiayaModel { BiayaID = lunasKasBon.LunasKasBonID + '-' + noUrut.ToString().PadLeft(2, '0'), Tgl = lunasKasBon.Tgl, Jam = lunasKasBon.Jam, JenisBiayaID = jenisLunas.JenisBiayaID, JenisKasID = kasBon.JenisKasID, Keterangan = "[LUNAS-KASBON] " + jenisLunas.JenisLunasName + ' ' + kasBon.Keterangan, NilaiBiaya = item.NilaiLunas }; var itemResult = Save(biaya); if (result == null) { result = new List <BiayaModel>(); } result.Add(itemResult); noUrut++; } return(result); }
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 IEnumerable <BPHutangModel> GenHutang(LunasKasBonModel lunasKasBon) { // list semua penjualan di detil lunas kas bon List <LunasKasBonJualDepositModel> listLunasKasBonJualDeposit = null; foreach (var item in lunasKasBon.ListLunas) { if (item.PenjualanID.Trim() == "") { continue; } var penjualan = _penjualanDal.GetData(item.PenjualanID); if (penjualan == null) { throw new ArgumentException("Penjualan ID invalid"); } if (listLunasKasBonJualDeposit == null) { listLunasKasBonJualDeposit = new List <LunasKasBonJualDepositModel>(); } listLunasKasBonJualDeposit.Add(new LunasKasBonJualDepositModel { LunasKasBonID = lunasKasBon.LunasKasBonID, PenjualanID = penjualan.PenjualanID, NilaiLunas = item.NilaiLunas, Keterangan = " " + item.Keterangan }); } // ambil data deposti dari penjualan tsb if (listLunasKasBonJualDeposit == null) { return(null); } foreach (var item in listLunasKasBonJualDeposit) { var penjualan = _penjualanDal.GetData(item.PenjualanID); if (penjualan.DepositID.Trim() == "") { continue; } var deposit = _depositDal.GetData(penjualan.DepositID); if (deposit == null) { throw new ArgumentException("Deposit ID invalid"); } item.DepositID = deposit.DepositID; } // generate pelunasan atas deposit tsb List <BPHutangModel> result = null; foreach (var item in listLunasKasBonJualDeposit.Where(x => x.DepositID.Trim() != "")) { var bpHutang = GetData(item.DepositID); // hapus detil pelunasan atas id lunasKasBon ini var listDetilHtg = ( from c in bpHutang.ListLunas where c.ReffID != lunasKasBon.LunasKasBonID select c ).ToList(); // tambahkan detil lunas kasbon ini var detilLunas = new BPHutangDetilModel { BPHutangID = bpHutang.BPHutangID, Tgl = lunasKasBon.Tgl, Jam = lunasKasBon.Jam, ReffID = lunasKasBon.LunasKasBonID, Keterangan = item.Keterangan, NilaiHutang = 0, NilaiLunas = item.NilaiLunas }; listDetilHtg.Add(detilLunas); // pindahkan listbaru ke object bpHutang bpHutang.ListLunas = listDetilHtg; // proses simpan Save(bpHutang); if (result == null) { result = new List <BPHutangModel>(); } result.Add(bpHutang); } return(result); }