public async Task <bool> AddTransH(ArTransHView trans) { //string test = codeview.SrcCode.ToUpper(); //var cekFirst = _context.CbSrcCodes.Where(x => x.SrcCode == test).ToList(); string KdSrc = "AR"; ArTransH transH = new ArTransH { Bukti = GetNumber(), Customer = trans.Customer.ToUpper(), Tanggal = trans.Tanggal, Keterangan = trans.Keterangan, Jumlah = trans.JumBayar, Discount = trans.JumDiskon, Unapplied = trans.UpdateUnapplied, Piutang = trans.JumPiutang, KdBank = trans.KdBank, PPn = 0, PPh = 0, JumPPh = 0, JumPPn = 0, Bruto = 0, Netto = 0, Pajak = false, Kode = "14", ArCustId = trans.ArCustId, ArTransDs = new List <ArTransD>() }; List <ArPiutng> transaksi = new List <ArPiutng>(); transaksi = _context.ArPiutngs.Where(x => x.Customer == trans.Customer && x.Sisa != 0).ToList(); foreach (var item in trans.ArTransDs) { transH.ArTransDs.Add(new ArTransD() { Jumlah = item.Jumlah, Kode = "14", KodeTran = item.KodeTran, Lpb = transH.Bukti, Tanggal = trans.Tanggal, Discount = item.Discount, Bayar = item.Bayar, Sisa = item.UpdateSisa }); transaksi.Where(x => x.Dokumen == item.Lpb).ToList() .ForEach(s => { s.Bayar = item.Bayar + item.Discount; s.Discount = item.Discount; s.Sisa = item.UpdateSisa; }); } transH.ArTransDs.RemoveAll(x => x.Bayar == 0 && x.Discount == 0); transaksi.RemoveAll(x => x.Bayar == 0 && x.Discount == 0); var customer = (from e in _context.ArCusts where e.Customer == trans.Customer select e).FirstOrDefault(); customer.Piutang -= trans.Jumlah; ArPiutng Newtransaksi = new ArPiutng { Kode = "CA", Dokumen = transH.Bukti, Tanggal = transH.Tanggal, Customer = transH.Customer, Keterangan = transH.Keterangan, KodeTran = "14", Jumlah = -1 * trans.JumPiutang, SldSisa = -1 * trans.JumPiutang, Bayar = -1 * trans.JumBayar, Discount = 0, UnApplied = -1 * trans.UpdateUnapplied, Sisa = -1 * trans.UpdateUnapplied, Dpp = 0, PPn = 0, PPh = 0, SldBayar = 0, SldDisc = 0, SldUnpl = 0 }; _context.ArCusts.Update(customer); _context.ArTransHs.Add(transH); _context.ArPiutngs.UpdateRange(transaksi); _context.ArPiutngs.Add(Newtransaksi); await _context.SaveChangesAsync(); var cekBukti = (from e in _context.CbTransHs where e.DocNo == transH.Bukti select e).FirstOrDefault(); if (cekBukti == null) { if (transH.KdBank != null && transH.KdBank.Length != 0) { CbTransH transBank = new CbTransH { DocNo = transH.Bukti, KodeBank = trans.KdBank, Tanggal = trans.Tanggal, Keterangan = trans.Keterangan, Saldo = trans.JumBayar, CbTransDs = new List <CbTransD>() }; foreach (var item in trans.ArTransDs) { transBank.CbTransDs.Add(new CbTransD() { SrcCode = KdSrc, Keterangan = "Pembayaran Piutang" + trans.Customer.ToUpper(), Terima = item.Bayar, Jumlah = item.Bayar, }); } var bank = (from e in _context.Banks where e.KodeBank == trans.KdBank select e).FirstOrDefault(); bank.Saldo += trans.JumBayar; _context.Banks.Update(bank); _context.CbTransHs.Add(transBank); await _context.SaveChangesAsync(); } } return(true); }
public async Task <bool> EditTransH(ArTransHView trans) { //string test = codeview.SrcCode.ToUpper(); //var cekFirst = _context.CbSrcCodes.Where(x => x.SrcCode == test).ToList(); var cekFirst = _context.ArPiutngs.Where(x => x.Dokumen == trans.Bukti).FirstOrDefault(); ArTransH transH = new ArTransH { Customer = trans.Customer.ToUpper(), Tanggal = trans.Tanggal, Keterangan = trans.Keterangan, Jumlah = trans.Jumlah, PPn = 0, PPh = 0, JumPPh = 0, JumPPn = 0, Bruto = trans.Jumlah, Netto = 0, Discount = 0, Piutang = 0, Pajak = false, Unapplied = 0, Kode = "11", ArCustId = trans.ArCustId, ArTransDs = new List <ArTransD>() }; foreach (var item in trans.ArTransDs) { transH.ArTransDs.Add(new ArTransD() { DistCode = item.DistCode, Keterangan = item.Keterangan, Jumlah = item.Jumlah, Kode = "11", KodeTran = "11", Lpb = transH.Bukti, Sisa = item.Jumlah, Discount = 0, Bayar = 0, Tanggal = trans.Tanggal }); } ArPiutng transaksi = new ArPiutng { Kode = "IN", Tanggal = transH.Tanggal, Customer = transH.Customer, Keterangan = transH.Keterangan, KodeTran = "11", Jumlah = transH.Jumlah, Bayar = 0, Discount = 0, UnApplied = 0, Sisa = transH.Jumlah, SldSisa = transH.Jumlah, Dpp = transH.Jumlah, PPn = 0, PPh = 0, SldBayar = 0, SldDisc = 0, SldUnpl = 0 }; try { var ExistingTrans = _context.ArTransHs.Where(x => x.ArTransHId == trans.ArTransHId).FirstOrDefault(); if (ExistingTrans != null) { transH.Bukti = ExistingTrans.Bukti; transaksi.Dokumen = ExistingTrans.Bukti; _context.ArTransHs.Remove(ExistingTrans); var customer = (from e in _context.ArCusts where e.Customer == trans.Customer select e).FirstOrDefault(); customer.Piutang -= ExistingTrans.Jumlah; customer.Piutang += trans.Jumlah; _context.ArCusts.Update(customer); _context.ArPiutngs.Remove(cekFirst); _context.ArTransHs.Add(transH); _context.ArPiutngs.Add(transaksi); await _context.SaveChangesAsync(); return(true); } } catch (Exception ex) { throw ex; } return(false); }