//create the disbursement public static DisbursementModel CreateDisbursement(DisbursementModel dism, out string error) { // initialize the error variable to return only blank if there is no error error = ""; //initialize the entities , dibursement LUSSISEntities entities = new LUSSISEntities(); disbursement disb = new disbursement(); try { //add the data to the disbursement database disb.reqid = dism.Reqid; disb.ackby = dism.Ackby; disb = entities.disbursements.Add(disb); entities.SaveChanges(); //get the newly added disbursement dism = GetDisbursementByDisbursementId(disb.disid, out error); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(dism); }
// update the disbursement public static DisbursementModel UpdateDisbursement(DisbursementModel dism, out string error) { error = ""; // declare and initialize new LUSSISEntities to perform update LUSSISEntities entities = new LUSSISEntities(); disbursement ndism = new disbursement(); try { // finding the inventory object using Inventory API model ndism = entities.disbursements.Where(p => p.disid == dism.Disid).First <disbursement>(); // transfering data from API model to DB Model ndism.disid = dism.Disid; ndism.reqid = dism.Reqid; ndism.ackby = dism.Ackby; // saving the update entities.SaveChanges(); // return the updated model dism = GetDisbursementByDisbursementId(ndism.disid, out error); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(dism); }
public void createDibursement(Disbursement disbursement) { if (disbursement.DisbursementDetailsCollection.Count != 0) { disbursement dis = new disbursement(); dis.disbursementId = disbursement.DisbursementId; dis.departmentId = disbursement.DepartmentId; dis.date = disbursement.Date; dis.status = disbursement.Status; dis.deliveryDate = disbursement.Date; ctx.disbursements.Add(dis); ctx.SaveChanges(); List<DisbursementDetails> disD = disbursement.DisbursementDetailsCollection; foreach (DisbursementDetails ds in disD) { disbursementDetail dl = new disbursementDetail(); dl.disbursementId = disbursement.DisbursementId; dl.itemId = ds.ItemId; dl.requestQty = ds.RequestedQty; dl.deliveredQty = 0; ctx.disbursementDetails.Add(dl); ctx.SaveChanges(); } } }
// Convert From Auto Generated DB Model to APIModel for Requisition private static DisbursementModel CovertDBDisbursementtoAPIDisbursement(disbursement disb) { DisbursementModel reqm = new DisbursementModel(disb.disid, disb.reqid, disb.ackby, disb.requisition.reqdate, disb.requisition.status, disb.requisition.collectionpoint.cpname, disb.user.username, disb.user.department.deptname, new List <DisbursementDetailsModel>()); return(reqm); }
//Create new Disbursement with Detials public static DisbursementModel CreateDisbursementwithDetails(DisbursementModel disb, List <DisbursementDetailsModel> disdm, out string error) { // initialize the error variable to return only blank if there is no error error = ""; //initialize the entities , dibursement and disbursement list LUSSISEntities entities = new LUSSISEntities(); disbursement dis = new disbursement(); List <disbursementdetail> dbdlist = new List <disbursementdetail>(); try { // add the data to the disbursement dis.reqid = disb.Reqid; dis.ackby = disb.Ackby; dis = entities.disbursements.Add(dis); entities.SaveChanges(); // add the arrary data to the disbursement details list foreach (DisbursementDetailsModel dbdm in disdm) { disbursementdetail dbm = new disbursementdetail { disid = dis.disid, itemid = dbdm.Itemid, qty = dbdm.Qty }; dbm = entities.disbursementdetails.Add(dbm); entities.SaveChanges(); dbdlist.Add(dbm); } //get the added disbursement disb = GetDisbursementByDisbursementId(dis.disid, out error); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(disb); }
public void createEmergencyDisbursement(List<DisbursementDetails> DBList, string depName) { disbursement d = new disbursement(); d.disbursementId = "DB"+sFacade.getCodeGeneratorValue_Lingna("DB"); d.departmentId = departmentFacade.getDepartment_Lingna(depName).departmentId; d.date = Convert.ToDateTime(System.DateTime.Now.ToShortDateString()); d.deliveryDate = Convert.ToDateTime(System.DateTime.Now.ToShortDateString()); d.status = "Completed"; dFacade.createDisbursement(d); foreach(DisbursementDetails ds in DBList) { disbursementDetail n = new disbursementDetail(); n.deliveredQty = ds.DeliveredQty; n.disbursementId = d.disbursementId; n.itemId = ds.ItemId; n.requestQty = ds.RequestedQty; cataFacade.updateStockAfterDisbursement_Lingna(ds.DeliveredQty, ds.ItemId); dFacade.createDisbursementDetail(n, d); } sFacade.updateCodeGeneratorValue_Lingna("DB"); }
// to get the Disbursement by the DisbursementId public static DisbursementModel GetDisbursementByDisbursementId(int disid, out string error) { LUSSISEntities entities = new LUSSISEntities(); error = ""; disbursement disbursement = new disbursement(); DisbursementModel dism = new DisbursementModel(); try { disbursement = entities.disbursements.Where(p => p.disid == disid).FirstOrDefault <disbursement>(); dism = CovertDBDisbursementtoAPIDisbursementwithDetails(disbursement); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(dism); }
public void createDisbursementDetail(disbursementDetail dd, disbursement d) { var dis = ctx.disbursements.First(o => o.disbursementId == d.disbursementId); dis.disbursementDetails.Add(dd); ctx.SaveChanges(); }
public void createDisbursement(disbursement d) { ctx.disbursements.Add(d); 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(); }
//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(); } }
// Convert From Auto Generated DB Model to APIModel for Requsition with Requisition Details data private static DisbursementModel CovertDBDisbursementtoAPIDisbursementwithDetails(disbursement disb) { List <DisbursementDetailsModel> reqdm = new List <DisbursementDetailsModel>(); foreach (disbursementdetail rqdm in disb.disbursementdetails) { reqdm.Add(new DisbursementDetailsModel(rqdm.disid, rqdm.itemid, rqdm.item.description, rqdm.qty, rqdm.item.category.name, rqdm.item.uom)); } DisbursementModel reqm = new DisbursementModel(disb.disid, disb.reqid, disb.ackby, disb.requisition.reqdate, disb.requisition.status, disb.requisition.collectionpoint.cpname, disb.user.username, disb.user.department.deptname, reqdm); return(reqm); }
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(); }