public async Task <bool> EditTransH(IcTransHView trans) { var ExistingTrans = _context.IcTransHs.Where(x => x.IcTransHId == trans.IcTransHId).FirstOrDefault(); /* transaksi lama dikurangi */ if (ExistingTrans != null) { foreach (var item in ExistingTrans.IcTransDs) { IcItem cekItem = _context.IcItems.Where(x => x.ItemCode == item.ItemCode).FirstOrDefault(); if (cekItem != null) { IcAltItem itemlokasi1 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi).FirstOrDefault(); if (itemlokasi1 != null) { itemlokasi1.Qty += item.QtyShp; _context.IcAltItems.Update(itemlokasi1); } IcAltItem itemlokasi2 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi2).FirstOrDefault(); if (itemlokasi2 != null) { itemlokasi2.Qty -= item.QtyShp; _context.IcAltItems.Update(itemlokasi2); } } _context.IcTransHs.Remove(ExistingTrans); } } /* transaksi update */ IcTransH transH = new IcTransH { NoFaktur = ExistingTrans.NoFaktur, Tanggal = trans.Tanggal, Keterangan = trans.Keterangan, Lokasi = trans.Lokasi, Lokasi2 = trans.Lokasi2, Kode = "90", IcTransDs = new List <IcTransD>() }; foreach (var item in trans.IcTransDs) { transH.IcTransDs.Add(new IcTransD() { ItemCode = item.ItemCode, NamaItem = item.NamaItem, QtyShp = item.QtyShp, Kode = "90", Lokasi = transH.Lokasi, Lokasi2 = transH.Lokasi2, NoFaktur = transH.NoFaktur, Tanggal = trans.Tanggal }); 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 == transH.Lokasi).FirstOrDefault(); if (cekLokasi1 == null) { IcAltItem Produk = new IcAltItem() { ItemCode = cekItem.ItemCode.ToUpper(), NamaItem = cekItem.NamaItem, Satuan = cekItem.Satuan, Lokasi = transH.Lokasi, Qty = -1 * item.QtyShp }; _context.IcAltItems.Add(Produk); } else { cekLokasi1.Qty -= item.QtyShp; _context.IcAltItems.Update(cekLokasi1); } /** lokasi 2 **/ IcAltItem cekLokasi2 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == transH.Lokasi2).FirstOrDefault(); if (cekLokasi2 == null) { IcAltItem Produk = new IcAltItem() { ItemCode = cekItem.ItemCode.ToUpper(), NamaItem = cekItem.NamaItem, Satuan = cekItem.Satuan, Lokasi = transH.Lokasi2, Qty = item.QtyShp }; _context.IcAltItems.Add(Produk); } else { cekLokasi2.Qty += item.QtyShp; _context.IcAltItems.Update(cekLokasi2); } } } _context.IcTransHs.Add(transH); await _context.SaveChangesAsync(); return(true); }
public async Task <bool> AddTransH(IcTransHView trans) { //string test = codeview.SrcCode.ToUpper(); //var cekFirst = _context.CbSrcCodes.Where(x => x.SrcCode == test).ToList(); IcTransH transH = new IcTransH { NoFaktur = GetNumber(), Tanggal = trans.Tanggal, Keterangan = trans.Keterangan, Lokasi = trans.Lokasi, Lokasi2 = trans.Lokasi2, Kode = "90", IcTransDs = new List <IcTransD>() }; foreach (var item in trans.IcTransDs) { transH.IcTransDs.Add(new IcTransD() { ItemCode = item.ItemCode, NamaItem = item.NamaItem, QtyShp = item.QtyShp, Kode = "90", Lokasi = item.Lokasi, Lokasi2 = item.Lokasi2, NoFaktur = transH.NoFaktur, Tanggal = trans.Tanggal }); 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 == item.Lokasi).FirstOrDefault(); if (cekLokasi1 == null) { IcAltItem Produk = new IcAltItem() { ItemCode = cekItem.ItemCode.ToUpper(), NamaItem = cekItem.NamaItem, Satuan = cekItem.Satuan, Lokasi = item.Lokasi, Qty = -1 * item.QtyShp }; _context.IcAltItems.Add(Produk); } else { cekLokasi1.Qty -= item.QtyShp; _context.IcAltItems.Update(cekLokasi1); } /** lokasi 2 **/ IcAltItem cekLokasi2 = _context.IcAltItems.Where(x => x.ItemCode == item.ItemCode && x.Lokasi == item.Lokasi2).FirstOrDefault(); if (cekLokasi2 == null) { IcAltItem Produk = new IcAltItem() { ItemCode = cekItem.ItemCode.ToUpper(), NamaItem = cekItem.NamaItem, Satuan = cekItem.Satuan, Lokasi = item.Lokasi2, Qty = item.QtyShp }; _context.IcAltItems.Add(Produk); } else { cekLokasi2.Qty += item.QtyShp; _context.IcAltItems.Update(cekLokasi2); } } } _context.IcTransHs.Add(transH); await _context.SaveChangesAsync(); return(true); }