public void Save(RequisitionPurchaseDTO rpDTO) { PurchaseOrder rp = new PurchaseOrder(); int id; rp.No = rpRepo.GenerateRpNo(rpDTO.Date); rp.Date = rpDTO.Date; rp.CompanyId = Sessions.CompanyId.Value; rp.VendorId = rpDTO.VendorId; rp.ShipTo = Sessions.CompanyId.Value; rp.PreparedBy = Common.GetCurrentUser.Id; rp.ApprovedBy = Common.GetCurrentUser.GeneralManagerId; rp.CheckedBy = rpDTO.CheckedBy; rp.isRP = true; context.PurchaseOrders.Add(rp); context.SaveChanges(); id = rp.Id; rp.ItemPriceLogs = new List <ItemPriceLogs>(); foreach (RequisitionPurchaseDTO.Item item in rpDTO.Items) { ItemPriceLogs itemLogs = new ItemPriceLogs(); itemLogs.PurchaseOrderId = rp.Id; itemLogs.ItemId = item.ItemId; itemLogs.UnitCost = Convert.ToDecimal(item.UnitCost); itemLogs.Qty = item.Quantity; itemLogs.Date = DateTime.Now; rp.ItemPriceLogs.Add(itemLogs); } foreach (RequisitionPurchaseDTO.Item dtoItem in rpDTO.Items) { PurchaseOrderItem rpItem = new PurchaseOrderItem(); rpItem.PurchaseOrderId = rp.Id; rpItem.ItemId = dtoItem.ItemId; rpItem.UnitCost = dtoItem.UnitCost; rpItem.Quantity = dtoItem.Quantity; rpItem.Remarks = dtoItem.Remarks; rpItem.Date = DateTime.Now; context.PurchaseOrderItems.Add(rpItem); context.SaveChanges(); InsertStockCard(rp.Id, dtoItem.ItemId, dtoItem.UnitCost, dtoItem.Quantity); } }
public void Save(PurchaseOrderDTO entry) { PurchaseOrder po = new PurchaseOrder(); //po.No = poRepo.GeneratePoNumber(); po.No = entry.No; po.Date = Convert.ToDateTime(entry.Date); po.VendorId = entry.VendorId; po.ShipTo = entry.ShipTo; po.Terms = vendorRepo.GetById(entry.VendorId).Terms; po.PreparedBy = Common.GetCurrentUser.Id; po.ApprovedBy = Common.GetCurrentUser.GeneralManagerId; po.CheckedBy = entry.CheckedBy; po.isRP = false; po.CompanyId = Sessions.CompanyId.Value; po.PurchaseOrderItems = new List <PurchaseOrderItem>(); foreach (PurchaseOrderDTO.Item item in entry.Items) { PurchaseOrderItem poItem = new PurchaseOrderItem(); poItem.PurchaseOrderId = po.Id; poItem.ItemId = item.Id; Item _item = itemRepo.GetById(item.Id); poItem.UnitCost = Convert.ToDecimal(item.UnitCost); poItem.Quantity = item.Quantity; poItem.Remarks = item.Remarks; poItem.Date = Convert.ToDateTime(entry.Date); poItem.RemainingBalanceDate = null; po.PurchaseOrderItems.Add(poItem); } // for FIFO price po.ItemPriceLogs = new List <ItemPriceLogs>(); foreach (PurchaseOrderDTO.Item item in entry.Items) { ItemPriceLogs itemLogs = new ItemPriceLogs(); Item _item = itemRepo.GetById(item.Id); itemLogs.PurchaseOrderId = po.Id; itemLogs.ItemId = item.Id; itemLogs.UnitCost = Convert.ToDecimal(item.UnitCost); itemLogs.Qty = item.Quantity; itemLogs.Date = DateTime.Now; itemLogs.CompanyId = Sessions.CompanyId.Value; po.ItemPriceLogs.Add(itemLogs); UpdateItemType(item.Id, _item.TypeId, item.TypeId); } poRepo.Save(po); foreach (PurchaseOrderDTO.Item item in entry.Items) { Item _item = context.Items.Find(item.Id); if (_item.TypeId != item.TypeId) { _item.TypeId = item.TypeId; context.SaveChanges(); } } }