public static ItemModel GetItemByReqid(int reqid, out string error) { LUSSISEntities entities = new LUSSISEntities(); error = ""; item item = new item(); requisitiondetail reqdet = new requisitiondetail(); ItemModel im = new ItemModel(); try { reqdet = entities.requisitiondetails.Where(p => p.reqid == reqid).FirstOrDefault <requisitiondetail>(); item = reqdet.item; im = CovertDBItemtoAPIItem(item); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(im); }
// update the Requisition Details public static RequisitionDetailsModel UpdateRequisitionDetail(RequisitionDetailsModel reqdm, out string error) { error = ""; // declare and initialize new LUSSISEntities to perform update LUSSISEntities entities = new LUSSISEntities(); requisitiondetail reqd = new requisitiondetail(); try { // finding the inventory object using Inventory API model reqd = entities.requisitiondetails.Where(p => p.reqid == reqdm.Reqid && p.itemid == reqdm.Itemid).FirstOrDefault <requisitiondetail>(); // transfering data from API model to DB Model reqd.reqid = reqdm.Reqid; reqd.itemid = reqdm.Itemid; reqd.qty = reqdm.Qty; // saving the update entities.SaveChanges(); // return the updated model reqdm = CovertDBRequisitionDetailstoAPIRequisitionDetails(reqd); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(reqdm); }
// create Requistion Details public static List <RequisitionDetailsModel> CreateRequisitionDetails(RequisitionDetailsModel reqd, out string error) { error = ""; LUSSISEntities entities = new LUSSISEntities(); requisitiondetail reqdn = new requisitiondetail(); try { reqdn.reqid = reqd.Reqid; reqdn.itemid = reqd.Itemid; reqdn.qty = reqd.Qty; reqdn = entities.requisitiondetails.Add(reqdn); entities.SaveChanges(); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(GetRequisitionDetailsByRequisitionId(reqdn.reqid, out error)); }
//Create new Requisition with Detials public static RequisitionModel CreateRequisitionwithDetails(RequisitionModel reqm, List <RequisitionDetailsModel> reqd, out string error) { error = ""; LUSSISEntities entities = new LUSSISEntities(); requisition req = new requisition(); List <requisitiondetail> reqlist = new List <requisitiondetail>(); try { req.reqid = reqm.Reqid; req.raisedby = reqm.Raisedby; req.approvedby = reqm.Approvedby; req.deptid = reqm.Depid; req.cpid = reqm.Cpid; req.status = ConRequisition.Status.PENDING; req.reqdate = DateTime.Now; req = entities.requisitions.Add(req); entities.SaveChanges(); foreach (RequisitionDetailsModel rdm in reqd) { requisitiondetail rqd = new requisitiondetail { reqid = req.reqid, itemid = rdm.Itemid, qty = rdm.Qty }; rqd = entities.requisitiondetails.Add(rqd); entities.SaveChanges(); reqlist.Add(rqd); } reqm = GetRequisitionByRequisitionId(req.reqid, out error); NotificationModel nom = new NotificationModel(); nom.Deptid = DepartmentRepo.GetDepartmentByUserid(reqm.Raisedby ?? default(int), out error).Deptid; nom.Role = ConUser.Role.HOD; nom.Title = "Requisition Approval"; nom.NotiType = ConNotification.NotiType.RequisitionApproval; nom.ResID = reqm.Reqid; nom.Remark = "A new requisition has been raised by " + reqm.Rasiedbyname + "!"; nom = NotificationRepo.CreatNotification(nom, out error); } catch (NullReferenceException) { error = ConError.Status.NOTFOUND; } catch (Exception e) { error = e.Message; } return(reqm); }
// Convert From Auto Generated DB Model to APIModel for Requisitiondetail private static RequisitionDetailsModel CovertDBRequisitionDetailstoAPIRequisitionDetails(requisitiondetail reqd) { RequisitionDetailsModel reqdm; try { reqdm = new RequisitionDetailsModel(reqd.reqid, reqd.itemid, reqd.item.description, reqd.qty, reqd.item.category.name, reqd.item.uom, reqd.item.inventories.First().stock); } catch (Exception) { reqdm = new RequisitionDetailsModel(reqd.reqid, reqd.itemid, reqd.item.description, reqd.qty, reqd.item.category.name, reqd.item.uom, 0); } return(reqdm); }