public JsonResult ViewDisbursement(int staffId) { StationeryDisbursementEF stationeryDisbursement = rndService.FindDisbursementByStatusAndStaffId(staffId, "Disbursed"); List <StationeryDisbursementDetailsEF> stationeryDisbursementDetails = rndService.FindDisbursementDetailsByDisbursementId(stationeryDisbursement.DisbursementId); List <MobileStationeryDisbursementDetailsDTO> detailsDTO = new List <MobileStationeryDisbursementDetailsDTO>(); foreach (var item in stationeryDisbursementDetails) { detailsDTO.Add(new MobileStationeryDisbursementDetailsDTO { DisbursementDetailsId = item.DisbursementDetailsId, DisbursementId = item.DisbursementId, ItemCode = item.ItemCode, Stock = item.Stock, RequestQuantity = item.RequestQuantity, RetrievedQuantity = item.RetrievedQuantity, DisbursedQuantity = item.DisbursedQuantity } ); } MobileDisbursementItemDTO disbursementInfo = new MobileDisbursementItemDTO { DisbursementDetails = detailsDTO, DisbursementId = stationeryDisbursement.DisbursementId, ClerkId = stationeryDisbursement.StoreClerk.StaffId }; return(Json(disbursementInfo, JsonRequestBehavior.AllowGet)); }
// Get Department with active disbursements public JsonResult GetActiveDepartments() { MobileDisbursementItemDTO disbursementInfo = null; List <StationeryDisbursementEF> activeDisbursements = rndService.FindDisbursementsByStatus("Retrieved"); List <MobileActiveDepartmentDTO> activeDepartments = new List <MobileActiveDepartmentDTO>(); foreach (var item in activeDisbursements) { activeDepartments.Add( new MobileActiveDepartmentDTO { DisbursementId = item.DisbursementId, DepartmentCode = item.DepartmentCode, DepartmentName = item.Department.DepartmentName } ); } if (activeDepartments.Count > 0) { List <StationeryDisbursementDetailsEF> details = rndService.FindDisbursementDetailsByDisbursementId(activeDepartments[0].DisbursementId); List <MobileStationeryDisbursementDetailsDTO> detailsDTO = new List <MobileStationeryDisbursementDetailsDTO>(); foreach (var item in details) { detailsDTO.Add(new MobileStationeryDisbursementDetailsDTO { DisbursementDetailsId = item.DisbursementDetailsId, DisbursementId = item.DisbursementId, ItemCode = item.ItemCode, Stock = item.Stock, RequestQuantity = item.RequestQuantity, RetrievedQuantity = item.RetrievedQuantity, DisbursedQuantity = item.DisbursedQuantity, } ); } List <StaffEF> deptStaff = staffService.FindAllEmployeeByDepartmentCode(activeDepartments[0].DepartmentCode); List <MobileStaffDTO> deptStaffDTO = new List <MobileStaffDTO>(); foreach (var staff in deptStaff) { deptStaffDTO.Add(new MobileStaffDTO { Name = staff.Name, StaffId = staff.StaffId } ); } disbursementInfo = new MobileDisbursementItemDTO { ActiveDepartments = activeDepartments, DepartmentStaff = deptStaffDTO, DisbursementDetails = detailsDTO, CollectionRepId = (int)activeDisbursements[0].CollectionRepId }; } return(Json(disbursementInfo, JsonRequestBehavior.AllowGet)); }
//Get disbursement details from android public JsonResult SetDisbursement(MobileDisbursementItemDTO mobileDisbursementItem) { List <StationeryDisbursementDetailsEF> details = new List <StationeryDisbursementDetailsEF>(); foreach (var item in mobileDisbursementItem.DisbursementDetails) { details.Add(new StationeryDisbursementDetailsEF { DisbursementId = item.DisbursementId, DisbursementDetailsId = item.DisbursementDetailsId, ItemCode = item.ItemCode, StationeryDisbursement = rndService.FindDisbursementById(item.DisbursementId), Stock = item.Stock, RequestQuantity = item.RequestQuantity, DisbursedQuantity = item.DisbursedQuantity, RetrievedQuantity = item.RetrievedQuantity }); } int disbursementId = mobileDisbursementItem.DisbursementId; int collectionRepId = mobileDisbursementItem.CollectionRepId; int storeClerkId = mobileDisbursementItem.ClerkId; // update disbursement details' Disbursed Quantity and disbursement status to disbursed rndService.UpdateDisbursedQuantities(details, disbursementId, collectionRepId, storeClerkId); // update request details rndService.UpdateRequestAfterDisbursement(details, disbursementId); // log any stock transaction (damaged goods) - compare retrievedQty with disbursedqty stockService.LogTransactionsForActualDisbursement(disbursementId); // email collection rep for acknowledgement of disbursement string collectionRepEmail = staffService.FindStaffById(collectionRepId).Email; string subject = "Disbursement #" + disbursementId + " : Request for Acknowledgement"; string body = "Disbursement #" + disbursementId + " has been disbursed. Please click " + "<a href='http://localhost/StationeryStore/ViewDisbursement/ViewDisbursement/?disbursementId=" + disbursementId + "'>" + "here</a> to view the details of the disbursement and acknowledge receipt of stationery item(s)."; Email.SendEmail(collectionRepEmail, subject, body); return(Json(new { status = "Received Disbursement" })); }
// Send disbursement details to android public JsonResult GetDepartmentDisbursement(int disbursementId) { //Get Departments with active disbursements List <StationeryDisbursementEF> activeDisbursements = rndService.FindDisbursementsByStatus("Retrieved"); List <MobileActiveDepartmentDTO> activeDepartments = new List <MobileActiveDepartmentDTO>(); foreach (var item in activeDisbursements) { activeDepartments.Add( new MobileActiveDepartmentDTO { DisbursementId = item.DisbursementId, DepartmentCode = item.DepartmentCode, DepartmentName = item.Department.DepartmentName } ); } //Get items in the disbursement for the department //StationeryDisbursementDetailsEF stationeryDisbursement = rndService.FindDisbursementByDepartmentCode(departmentId); List <StationeryDisbursementDetailsEF> details = rndService.FindDisbursementDetailsByDisbursementId(disbursementId); List <MobileStationeryDisbursementDetailsDTO> detailsDTO = new List <MobileStationeryDisbursementDetailsDTO>(); foreach (var item in details) { detailsDTO.Add(new MobileStationeryDisbursementDetailsDTO { DisbursementDetailsId = item.DisbursementDetailsId, DisbursementId = item.DisbursementId, ItemCode = item.ItemCode, Stock = item.Stock, RequestQuantity = item.RequestQuantity, RetrievedQuantity = item.RetrievedQuantity, DisbursedQuantity = item.DisbursedQuantity } ); } // list of staff in that department StationeryDisbursementEF disbursement = rndService.FindDisbursementById(disbursementId); List <StaffEF> deptStaff = staffService.FindAllEmployeeByDepartmentCode(disbursement.DepartmentCode); List <MobileStaffDTO> deptStaffDTO = new List <MobileStaffDTO>(); foreach (var staff in deptStaff) { deptStaffDTO.Add(new MobileStaffDTO { Name = staff.Name, StaffId = staff.StaffId } ); } // Create a DTO for disbursement which includes storeClerkId/Name and EmployeeId/Name MobileDisbursementItemDTO mobileDisbursementItem = new MobileDisbursementItemDTO { ActiveDepartments = activeDepartments, DisbursementDetails = detailsDTO, DisbursementId = disbursementId, DepartmentStaff = deptStaffDTO, CollectionRepId = (int)disbursement.CollectionRepId }; // send a list of disbursements return(Json(mobileDisbursementItem, JsonRequestBehavior.AllowGet)); }