public IHttpActionResult GenerateRemittance(RemittanceDTO RemiteRequest) { if (!ModelState.IsValid) { return(GetErrorMsg(1, "Parameter Missing")); } RemittanceDTO RemitResponse = utility.GetRemittance(RemiteRequest); if (RemitResponse == null) { return(GetErrorMsg(2, "Parameter Missing")); } if (RemitResponse.Message == 1) { return(GetErrorMsg(2, "Pending Remittance")); } if (RemitResponse.Message == 2) { return(GetErrorMsg(2, "No Pending Collection")); } utility.UpdateCollection(RemitResponse); return(Ok(RemitResponse)); }
//generating remittance public RemittanceDTO GetRemittance(RemittanceDTO RemitRequest) { var UserVerify = _db.aspnetusers.Where(o => o.Id == RemitRequest.USER_ID).SingleOrDefault(); var PosVerify = _db.pos.Where(o => o.POS_ID == RemitRequest.POS_ID).SingleOrDefault(); if (UserVerify == null || PosVerify == null) { return(null); } var RemitStatus = _db.remittances.Where(o => o.USER_ID == RemitRequest.USER_ID && o.remittance_status == 0 && o.MDAStation_ID == RemitRequest.MDAStation_ID) .SingleOrDefault(); if (RemitStatus != null) { RemitRequest.Message = 1; return(RemitRequest); } var collection = _db.pos_collections.Where(o => o.USER_ID == RemitRequest.USER_ID && o.CollectionStatus == 0 && o.MDAStation_ID == RemitRequest.MDAStation_ID) .FirstOrDefault(); if (collection == null) { RemitRequest.Message = 2; return(RemitRequest); } var collectionAmount = _db.pos_collections.Where(o => o.USER_ID == RemitRequest.USER_ID && o.CollectionStatus == 0 && o.MDAStation_ID == RemitRequest.MDAStation_ID) .Select(o => o.Amount).Sum(); remittance RemiteMap = Mapper.Map <RemittanceDTO, remittance>(RemitRequest); RemiteMap.amount = collectionAmount; RemiteMap.remittance_id = "RE" + RandomNumber(); RemiteMap.create_at = GetCurrentDateTime(); var RemiteResponse = _db.remittances.Add(RemiteMap); _db.SaveChanges(); RemittanceDTO RemiteResponseDTO = Mapper.Map <remittance, RemittanceDTO>(RemiteResponse); return(RemiteResponseDTO); }
//updating pos collection status public void UpdateCollection(RemittanceDTO RemitRequest) { var CollectionRemite = _db.pos_collections.Where(o => o.USER_ID == RemitRequest.USER_ID && o.CollectionStatus == 0 && o.MDAStation_ID == RemitRequest.MDAStation_ID) .ToList(); foreach (var item in CollectionRemite) { item.remittance_id = RemitRequest.remittance_id; item.CollectionStatus = CollectionStatus.Remitted; _db.SaveChanges(); } }