//Purchase Order Confirm method. To validate Waiting order public void revalidationForReq(List <item> purchaseitemlist) { foreach (item x in purchaseitemlist) { int totalItemQuantity = 0; var findRelevantRequistion = (from x1 in ctx.items from y1 in ctx.requisitions from z1 in ctx.requsiiton_item where x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId && y1.status == "PendingForOrder" && x1.itemId == x.itemId select y1).ToList(); foreach (requisition req in findRelevantRequistion) { var t2 = (from x1 in ctx.items from y1 in ctx.requisitions from z1 in ctx.requsiiton_item where x1.itemId == x.itemId && x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId select z1.requestQty).FirstOrDefault(); totalItemQuantity = totalItemQuantity + t2; } var tiq = (from x2 in ctx.items where x2.itemId == x.itemId select x2).First(); if (totalItemQuantity <= tiq.balance) { foreach (requisition req in findRelevantRequistion) { var t2 = (from x1 in ctx.items from y1 in ctx.requisitions from z1 in ctx.requsiiton_item where x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId select x1.itemId); int flag = t2.Count(); if (flag < 2) { var m = ( from y1 in ctx.requisitions where y1.requisitionId == req.requisitionId select y1).First(); m.status = "WaitingCollection"; //add disbursement // date and time var coltime = (from m2 in ctx.collectionPoints from m4 in ctx.departments where m2.collectionPointId == m4.collectionPointId && m4.departmentId == req.departmentId select new { m2, m4 }).First(); string collectiontime = coltime.m2.time; DateTime dt = DateTime.Now; int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); int dayspan = (-1) * weeknow + 5; DateTime dt2 = dt.AddMonths(1); DateTime friday = DateTime.Now.AddDays(dayspan); string nhd = (friday.ToShortDateString() + " " + collectiontime); DateTime myDatefriday = Convert.ToDateTime(nhd); // date and time /// update disbursement list disbursement di = new disbursement(); di.departmentId = req.departmentId; di.collectDate = myDatefriday; di.status = "WaitingCollection"; ctx.disbursements.Add(di); ctx.SaveChanges(); //updte disbursement list //get particular requistion item list List <itemValidate> itemidlistAvailable = new List <itemValidate>(); var n = (from x1 in ctx.requisitions from y in ctx.items from z in ctx.requsiiton_item where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == req.requisitionId select new itemValidate { Itemid = z.itemId, RequestQty = z.requestQty, StockBalance = y.balance, Itemreorderlevel = y.reorderlevel }).ToList(); itemidlistAvailable = n; //get particular requistion item list foreach (itemValidate mx in itemidlistAvailable) { disbursement_item disbi = new disbursement_item(); disbi.disbursementId = di.disbursementId; disbi.itemId = mx.Itemid; disbi.collectQty = mx.RequestQty; ctx.disbursement_item.Add(disbi); } ///update disbursement list //add disbursement var t3 = (from x1 in ctx.items from y1 in ctx.requisitions from z1 in ctx.requsiiton_item where x1.itemId == x.itemId && x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId select z1.requestQty).First(); var u = (from x1 in ctx.items where x1.itemId == x.itemId select x1).First(); u.balance = u.balance - t3; } else { var t3 = (from x1 in ctx.items from y1 in ctx.requisitions from z1 in ctx.requsiiton_item where x1.itemId == x.itemId && x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId select z1.requestQty).First(); var u = (from x1 in ctx.items where x1.itemId == x.itemId select x1).First(); u.balance = u.balance - t3; } } var m3 = (from z1 in ctx.items where z1.itemId == x.itemId select z1).First(); m3.flag = "NULL"; } var u1 = (from x1 in ctx.items where x1.itemId == x.itemId select x1).First(); u1.balance = u1.balance; ctx.SaveChanges(); } }
public void approveRequisition(int x) { List<itemValidate> itemidlistAvailable = new List<itemValidate>(); var n = (from x1 in luse.requisitions from y in luse.items from z in luse.requsiiton_item where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag != "needReorderSoon" select new itemValidate { Itemid = z.itemId, RequestQty = z.requestQty, StockBalance = y.balance, Itemreorderlevel = y.reorderlevel }).ToList(); itemidlistAvailable = n; List<itemValidate> itemidlistNotAvailable = new List<itemValidate>(); var m = (from x1 in luse.requisitions from y in luse.items from z in luse.requsiiton_item where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag == "needReorderSoon" select new itemValidate { Itemid = z.itemId, Itemreorderlevel = y.reorderlevel, RequestQty = z.requestQty, StockBalance = y.balance }).ToList(); itemidlistNotAvailable = m; foreach (itemValidate i in itemidlistAvailable) { if (i.StockBalance < i.Itemreorderlevel) { var u = (from x1 in luse.items where x1.itemId == i.Itemid select x1).First(); u.status = "stockout"; } } foreach (itemValidate x5 in itemidlistNotAvailable) { if (x5.StockBalance < x5.Itemreorderlevel) { var u = (from x1 in luse.items where x1.itemId == x5.Itemid select x1).First(); u.status = "stockout"; } } /// update disbursement list if (itemidlistNotAvailable.Count == 0) { var m0 = (from l in luse.requisitions where l.requisitionId == x select l).First(); m0.status = "WaitingCollection"; m0.status_dept = "Approved"; var deptobj = (from m1 in luse.requisitions where m1.requisitionId == x select m1).First(); string dept = deptobj.departmentId; var coltime = (from m2 in luse.collectionPoints from m3 in luse.departments where m2.collectionPointId == m3.collectionPointId && m3.departmentId == dept select new {m2,m3}).First(); string collectiontime = coltime.m2.time; DateTime dt = DateTime.Now; int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); int dayspan = (-1) * weeknow + 5; DateTime dt2 = dt.AddMonths(1); DateTime friday = DateTime.Now.AddDays(dayspan); string nhd = (friday.ToShortDateString() + " " + collectiontime); DateTime myDatefriday = Convert.ToDateTime(nhd); /// update disbursement list disbursement di = new disbursement(); di.departmentId = dept; di.collectDate = myDatefriday; di.status = "WaitingCollection"; luse.disbursements.Add(di); luse.SaveChanges(); foreach (itemValidate mx in itemidlistAvailable) { disbursement_item disbi = new disbursement_item(); disbi.disbursementId = di.disbursementId; disbi.itemId = mx.Itemid; disbi.collectQty = mx.RequestQty; luse.disbursement_item.Add(disbi); } ///update disbursement list } else { var m1 = (from l in luse.requisitions where l.requisitionId == x select l).First(); m1.status = "PendingForOrder"; m1.status_dept = "Approved"; } luse.SaveChanges(); }
public void approveRequisition(int x) { List <itemValidate> itemidlistAvailable = new List <itemValidate>(); var n = (from x1 in luse.requisitions from y in luse.items from z in luse.requsiiton_item where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag != "needReorderSoon" select new itemValidate { Itemid = z.itemId, RequestQty = z.requestQty, StockBalance = y.balance, Itemreorderlevel = y.reorderlevel }).ToList(); itemidlistAvailable = n; List <itemValidate> itemidlistNotAvailable = new List <itemValidate>(); var m = (from x1 in luse.requisitions from y in luse.items from z in luse.requsiiton_item where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag == "needReorderSoon" select new itemValidate { Itemid = z.itemId, Itemreorderlevel = y.reorderlevel, RequestQty = z.requestQty, StockBalance = y.balance }).ToList(); itemidlistNotAvailable = m; foreach (itemValidate i in itemidlistAvailable) { if (i.StockBalance < i.Itemreorderlevel) { var u = (from x1 in luse.items where x1.itemId == i.Itemid select x1).First(); u.status = "stockout"; } } foreach (itemValidate x5 in itemidlistNotAvailable) { if (x5.StockBalance < x5.Itemreorderlevel) { var u = (from x1 in luse.items where x1.itemId == x5.Itemid select x1).First(); u.status = "stockout"; } } /// update disbursement list if (itemidlistNotAvailable.Count == 0) { var m0 = (from l in luse.requisitions where l.requisitionId == x select l).First(); m0.status = "WaitingCollection"; m0.status_dept = "Approved"; var deptobj = (from m1 in luse.requisitions where m1.requisitionId == x select m1).First(); string dept = deptobj.departmentId; var coltime = (from m2 in luse.collectionPoints from m3 in luse.departments where m2.collectionPointId == m3.collectionPointId && m3.departmentId == dept select new { m2, m3 }).First(); string collectiontime = coltime.m2.time; DateTime dt = DateTime.Now; int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); int dayspan = (-1) * weeknow + 5; DateTime dt2 = dt.AddMonths(1); DateTime friday = DateTime.Now.AddDays(dayspan); string nhd = (friday.ToShortDateString() + " " + collectiontime); DateTime myDatefriday = Convert.ToDateTime(nhd); /// update disbursement list disbursement di = new disbursement(); di.departmentId = dept; di.collectDate = myDatefriday; di.status = "WaitingCollection"; luse.disbursements.Add(di); luse.SaveChanges(); foreach (itemValidate mx in itemidlistAvailable) { disbursement_item disbi = new disbursement_item(); disbi.disbursementId = di.disbursementId; disbi.itemId = mx.Itemid; disbi.collectQty = mx.RequestQty; luse.disbursement_item.Add(disbi); } ///update disbursement list } else { var m1 = (from l in luse.requisitions where l.requisitionId == x select l).First(); m1.status = "PendingForOrder"; m1.status_dept = "Approved"; } luse.SaveChanges(); }