public GRNItemModel Add(Product product, DiscriminatorPengirimanBarang discriminator, int qty) { GRNItemModel item = null; item = FindByBarcode(product.Barcode, product.TenanId,discriminator); if (item != null) { item.Qty = qty; item.CalculateTotal(); } else { Unit defaultUnit = MasterDataRepository.FindAllUnits(product.TenanId).Where(u => u.UnitId == product.UnitId).FirstOrDefault(); item = new GRNItemModel() { UserId = context.User.Identity.Name, ProductId = product.ProductId, Barcode = product.Barcode, Code = product.Kode, TenanId = product.TenanId, NamaBarang = product.Nama, Qty = qty, Unit = product.UnitName, Harga = product.HargaJual, Jumlah = product.HargaJual * qty, UnitId = defaultUnit == null ? Guid.Empty : defaultUnit.ModelGuid, Discriminator = Enum.GetName(typeof(DiscriminatorPengirimanBarang), discriminator) }; ap1Db.GRNItem.Add(item); } ap1Db.SaveChanges(); return item; }
public void Kirim(GRNModel grn,int tenanId, DiscriminatorPengirimanBarang discriminator) { Ccy ccy = MasterDataRepository.FindAllCurrencies(tenanId).Where(c => c.CcyId == grn.CcyId).FirstOrDefault(); PengirimanBarangMessage msg = new PengirimanBarangMessage { Guid = Guid.NewGuid(), TenanId = tenanId, CcyCode = ccy == null ? "" : ccy.Kode, KodeTransaksi = grn.KodeTransaksi, TanggalTransaksi = grn.TanggalTransaksi, NamaPengirim = grn.NamaPengirim, Referensi = grn.Referensi, Keterangan = grn.Keterangan, Discriminator = Enum.GetName(typeof(DiscriminatorPengirimanBarang), discriminator) }; IList<Unit> units = MasterDataRepository.FindAllUnits(tenanId); IList<GRNItemMessage> itemMessages = new List<GRNItemMessage>(); List<GRNItemModel> grnItems = (List<GRNItemModel>)GetItems(tenanId,discriminator); grnItems.ForEach(item => { Product product = MasterDataRepository.FindProductById(tenanId, item.ProductId); if (item.Items != null) { productGuid = JsonConvert.DeserializeObject<Items>(item.Items); } itemMessages.Add(new GRNItemMessage { Guid = Guid.NewGuid(), UnitGuid = item.UnitId, ProductGuid = item.ProductId == 0 ? productGuid.ProductGuid : product.ModelGuid, Qty = item.Qty, Harga = item.Harga, Jumlah = item.Jumlah, Items = item.Items }); }); msg.Items = itemMessages.ToArray(); new RabbitHelper().SendPengirimanBarangExchange<PengirimanBarangMessage>(msg); grnItems.ForEach(item => ap1Db.GRNItem.Remove(item)); ap1Db.SaveChanges(); }
public GRNItemModel FindByBarcode(string barcode, int tenanId, DiscriminatorPengirimanBarang discriminator) { string _discriminator = Enum.GetName(typeof(DiscriminatorPengirimanBarang), discriminator); return ap1Db.GRNItem.Where(item => item.Barcode == barcode && item.UserId == context.User.Identity.Name && item.TenanId == tenanId && item.Discriminator == _discriminator).FirstOrDefault(); }
public IList<GRNItemModel> GetItems(int tenanId, DiscriminatorPengirimanBarang discriminator) { string _discriminator = Enum.GetName(typeof(DiscriminatorPengirimanBarang), discriminator); return ap1Db.GRNItem.Where(item => item.UserId == context.User.Identity.Name && item.TenanId == tenanId && item.Discriminator == _discriminator).ToList(); }
public void DeleteAll(int tenanId, DiscriminatorPengirimanBarang discriminator) { string _discriminator = Enum.GetName(typeof(DiscriminatorPengirimanBarang), discriminator); IList<GRNItemModel> deleteItem = ap1Db.GRNItem.Where(item => item.UserId == context.User.Identity.Name && item.TenanId == tenanId && item.Discriminator == _discriminator).ToList(); if (deleteItem.Count != 0) { foreach(GRNItemModel item in deleteItem) { ap1Db.GRNItem.Remove(item); } ap1Db.SaveChanges(); } }