/** Update Department wise item list **/ public bool updateDepartmentWiseList(String departmentName, String itemCode, int actualQty, int requiredQty, int retrievalID) { if (vailidateActulaQty(requiredQty, actualQty)) { var q = (from sd in context.StationeryRetrievalDepts where (sd.RetrievalID == retrievalID) && (sd.Department.DeptName.Equals(departmentName)) && (sd.ItemCode.Equals(itemCode)) && (sd.DeletedFlag == false) select sd).FirstOrDefault(); if (q != null) { StationeryRetrievalDept updateStationeryRetrievalDept = (StationeryRetrievalDept)q; updateStationeryRetrievalDept.ActualQty = actualQty; try { context.SaveChanges(); } catch (Exception ex) { errorState = true; errorMsg = "Failed to generate Stationery Retrieval Form"; throw new UpdateFailedException(errorMsg); } } } else { errorState = true; errorMsg = "The actual quantity cannot be greater than requested quantity"; throw new UpdateFailedException(errorMsg); } return(errorState); }
/** Create Department wise Stationery retrieval list **/ public void createDepartmentWiseList(List <RequestDetail> rdList, ArrayList itemList, int RetrievalID) { String itemCode; String deptCode; int requestedQty; int availableQty; int actualQty; try { List <String> dpc = rdList.Select(x => x.Request.Employee1.DeptCode.ToString()).Distinct().ToList(); ArrayList deptList = new ArrayList(dpc.ToArray()); /**check the department for each item in Request detail**/ foreach (var i in itemList) { itemCode = i.ToString(); var avbQty = (from a in context.StationeryRetrievalDetails where a.ItemCode.Equals(itemCode) && (a.RetrievalID == RetrievalID) select a.AvailableQty).FirstOrDefault();; availableQty = Convert.ToInt32(avbQty); foreach (var d in deptList) { deptCode = d.ToString(); requestedQty = 0; actualQty = 0; foreach (RequestDetail rd in rdList) { if (rd.ItemCode.Equals(itemCode)) { if (rd.Request.Employee1.Department.DeptCode.Equals(deptCode)) { requestedQty += Convert.ToInt32(rd.Quantity); } } } /** Distribute available quantity **/ if (!(requestedQty == 0)) { if (!(availableQty <= 0)) { if (requestedQty <= availableQty) { actualQty = requestedQty; } else if (requestedQty > availableQty) { actualQty = availableQty; } availableQty = availableQty - actualQty; } /** Create Department wise item list **/ StationeryRetrievalDept addStationeryRetrievalDept = new StationeryRetrievalDept(); addStationeryRetrievalDept.RetrievalID = RetrievalID; addStationeryRetrievalDept.DeptCode = deptCode; addStationeryRetrievalDept.ItemCode = itemCode; addStationeryRetrievalDept.RequestedQty = requestedQty; addStationeryRetrievalDept.ActualQty = actualQty; addStationeryRetrievalDept.DeletedFlag = false; context.AddToStationeryRetrievalDepts(addStationeryRetrievalDept); context.SaveChanges(); } } } } catch (Exception ex) { errorState = true; errorMsg = "Failed to generate Stationery Retrieval Form"; throw new CreateFailedException(errorMsg); } }