public PurchaseList AddItem(PurchaseList temppo, string a, int b) { AuthContext db = new AuthContext(); List <TempPO> listtemp = new List <TempPO>(); if (temppo != null) { var purId = 0; PurchaseOrderMaster pom = db.DPurchaseOrderMaster.Where(c => c.PurchaseOrderId == temppo.PurchaseOrderId).SingleOrDefault(); if (pom == null) { PurchaseOrderMaster pm = new PurchaseOrderMaster(); pm.SupplierId = temppo.SupplierId.GetValueOrDefault(); pm.SupplierName = temppo.Supplier; pm.Warehouseid = temppo.WareHouseId; pm.WarehouseName = temppo.WareHouseName; pm.Status = "pending"; pm.Acitve = true; pm.CreationDate = indianTime; db.DPurchaseOrderMaster.Add(pm); int id = db.SaveChanges(); purId = pm.PurchaseOrderId; } else { purId = pom.PurchaseOrderId; } var item = db.itemMasters.Where(z => z.PurchaseSku == temppo.PurchaseSku).FirstOrDefault(); PurchaseOrderDetail pd = new PurchaseOrderDetail(); pd.PurchaseOrderId = purId; pd.ItemId = item.ItemId; pd.ItemName = item.itemname; pd.TotalQuantity = int.Parse(temppo.qty.ToString()); pd.CreationDate = indianTime; pd.Status = "ordered"; pd.MOQ = item.PurchaseMinOrderQty; pd.Price = Convert.ToDouble(item.PurchasePrice); pd.Warehouseid = temppo.WareHouseId; pd.WarehouseName = temppo.WareHouseName; pd.SupplierId = temppo.SupplierId.GetValueOrDefault(); pd.SupplierName = temppo.Supplier; //pd.TotalQuantity = Convert.ToInt16(temppo.qty); pd.PurchaseName = temppo.name; pd.PurchaseSku = temppo.PurchaseSku; pd.ConversionFactor = Convert.ToInt16(temppo.conversionfactor); pd.PurchaseQty = temppo.finalqty; db.DPurchaseOrderDeatil.Add(pd); int idd = db.SaveChanges(); } else { return(null); } return(temppo); }
public IList <PurchaseList> Get(int wid) { try//|| a.Status == "Process" { var poList = (from a in db.DbOrderDetails where (a.Status == "Pending" || a.Status == "Process") && a.Deleted == false join i in db.itemMasters on a.ItemId equals i.ItemId select new PurchaseOrderList { OrderDetailsId = a.OrderDetailsId, Warehouseid = a.Warehouseid, WarehouseName = a.WarehouseName, OrderDate = a.OrderDate, SupplierId = i.SupplierId, PurchaseSku = i.PurchaseSku, SupplierName = i.SupplierName, OrderId = a.OrderId, ItemId = a.ItemId, SKUCode = i.Number, ItemName = i.itemname, PurchaseUnitName = i.PurchaseUnitName, Unit = i.SellingUnitName, Conversionfactor = i.PurchaseMinOrderQty, Discription = "", qty = a.qty, //CurrentInventory = c == null ? 0 : c.CurrentInventory, StoringItemName = i.StoringItemName, Price = i.PurchasePrice, NetAmmount = a.NetAmmount, TaxPercentage = a.TaxPercentage, TaxAmount = a.TaxAmmount, TotalAmountIncTax = a.TotalAmt, PurchaseMinOrderQty = i.PurchaseMinOrderQty, Status = a.Status, CreationDate = a.CreatedDate, Deleted = a.Deleted }).ToList(); List <PurchaseList> uniquelist = new List <PurchaseList>(); foreach (PurchaseOrderList item in poList) { int count = 0; //01AE101110 PurchaseList l = uniquelist.Where(x => x.PurchaseSku == item.PurchaseSku).SingleOrDefault(); if (l == null) { count += 1; l = new PurchaseList(); l.name = item.PurchaseUnitName; l.conversionfactor = item.Conversionfactor; l.Supplier = item.SupplierName; l.SupplierId = item.SupplierId; l.WareHouseId = item.Warehouseid; l.WareHouseName = item.WarehouseName; l.OrderDetailsId = item.OrderDetailsId; l.itemNumber = item.SKUCode; l.PurchaseSku = item.PurchaseSku; l.orderIDs = item.OrderDetailsId + "," + l.orderIDs; l.ItemId = item.ItemId; l.ItemName = item.ItemName; l.qty = l.qty + item.qty; l.currentinventory = item.CurrentInventory; l.Price = item.Price; uniquelist.Add(l); } else { l.orderIDs = item.OrderDetailsId + "," + l.orderIDs; l.qty = l.qty + item.qty; uniquelist.First(d => d.PurchaseSku == item.PurchaseSku).qty = l.qty; uniquelist.First(d => d.PurchaseSku == item.PurchaseSku).orderIDs = l.orderIDs; } } List <PurchaseList> cc = new List <PurchaseList>(); foreach (PurchaseList l in uniquelist) { CurrentStock cs = db.DbCurrentStock.Where(k => k.ItemNumber == l.itemNumber && k.Deleted == false && k.Warehouseid == l.WareHouseId).SingleOrDefault(); if (cs != null) { l.currentinventory = cs.CurrentInventory; if (l.qty > cs.CurrentInventory) { l.qty = l.qty - cs.CurrentInventory; List <PurchaseOrderDetailRecived> po = db.PurchaseOrderRecivedDetails.Where(x => x.ItemId == l.ItemId && x.Status != "Received").ToList(); List <PurchaseOrderDetail> po1 = db.DPurchaseOrderDeatil.Where(x => x.ItemId == l.ItemId && x.Status == "ordered").ToList(); if (po.Count != 0 && po1.Count != 0) { foreach (var p in po) { l.qty = l.qty - Convert.ToInt32((p.PurchaseQty - p.QtyRecived) * p.MOQ); } foreach (var p1 in po1) { l.qty = l.qty - Convert.ToInt32(p1.PurchaseQty * p1.MOQ); } if (l.qty > 0) { cc.Add(l); } } else if (po.Count != 0 && po1.Count == 0) { foreach (var p in po) { l.qty = l.qty - Convert.ToInt32((p.PurchaseQty - p.QtyRecived) * p.MOQ); } if (l.qty > 0) { cc.Add(l); } } else if (po.Count == 0 && po1.Count != 0) { foreach (var p in po1) { l.qty = l.qty - Convert.ToInt32(p.PurchaseQty * p.MOQ); } if (l.qty > 0) { cc.Add(l); } } else { cc.Add(l); } } } } return(cc); } catch (Exception ex) { logger.Error("Error in getting Company " + ex.Message); return(null); } }