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> AddTransH(OeTransHView trans) { //string test = codeview.SrcCode.ToUpper(); //var cekFirst = _context.CbSrcCodes.Where(x => x.SrcCode == test).ToList(); decimal mQty5 = 0; OeTransH transH = new OeTransH { NoLpb = trans.Status == "Tax" ? GetNumberTax() : GetNumber(), Customer = trans.Customer.ToUpper(), NamaCust = trans.NamaCust, Lokasi = trans.Lokasi.ToUpper(), Tanggal = trans.Tanggal, Keterangan = trans.Keterangan, Jumlah = trans.Jumlah, Ongkos = trans.Ongkos, Ppn = trans.Ppn, PpnPersen = trans.PpnPersen, TtlJumlah = trans.TtlJumlah, DPayment = trans.DPayment, Tagihan = trans.Tagihan, TotalQty = trans.TotalQty, Status = trans.Status, Kode = "94", Cek = "1", OeTransDs = new List <OeTransD>() }; foreach (var item in trans.OeTransDs) { if (item.Qty != 0) { if (transH.TotalQty != 0) { mQty5 = (item.Jumlah - item.Discount) - (item.Qty / transH.TotalQty * transH.Ppn) + (item.Qty / transH.TotalQty * transH.Ongkos); } IcItem cekItem = _context.IcItems.Where(x => x.ItemCode == item.ItemCode).FirstOrDefault(); if (cekItem != null) { IcAltItem cekLokasi1 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == trans.Lokasi).FirstOrDefault(); if (cekLokasi1 == null) { IcAltItem Produk = new IcAltItem() { ItemCode = cekItem.ItemCode.ToUpper(), NamaItem = cekItem.NamaItem, Satuan = cekItem.Satuan, Lokasi = trans.Lokasi, Qty = -1 * item.Qty }; _context.IcAltItems.Add(Produk); } else { cekLokasi1.Qty -= item.Qty; _context.IcAltItems.Update(cekLokasi1); } cekItem.HrgJual = item.Harga; if (cekItem.JnsBrng.Equals("Stock")) // jika stock { cekItem.Qty -= item.Qty; } if (cekItem.CostMethod.Equals("Moving Avarage")) // jika moving avarage { cekItem.Cost -= item.Cost; } transH.OeTransDs.Add(new OeTransD() { ItemCode = item.ItemCode.ToUpper(), NamaItem = item.NamaItem, Satuan = item.Satuan, Lokasi = transH.Lokasi, Harga = item.Harga, Qty = item.Qty, Persen = item.Persen, Discount = item.Discount, Jumlah = item.Jumlah, Kode = "94", NoLpb = transH.NoLpb, Tanggal = trans.Tanggal, HrgCost = item.HrgCost, Cost = item.Cost, JumDpp = mQty5 }); _context.IcItems.Update(cekItem); } } _context.OeTransHs.Add(transH); } var customer = GetCustomerId(transH.Customer); ArPiutng piutang = new ArPiutng { Kode = "OE", Dokumen = transH.NoLpb, Tanggal = transH.Tanggal, DueDate = transH.Tanggal.AddDays(customer.Termin), Customer = transH.Customer, Keterangan = transH.Keterangan, Jumlah = transH.Jumlah, Sisa = transH.Jumlah, SldSisa = transH.Jumlah, KodeTran = transH.Kode }; _context.ArPiutngs.Add(piutang); customer.Piutang += transH.Jumlah; _context.ArCusts.Update(customer); 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); }