public ActionResult Save(SlsSalesReturnViewModel objT) { int userId = Convert.ToInt32(Session["userId"]); int companyId = Convert.ToInt32(Session["companyId"]); Operation objOperation = new Operation { Success = false }; if (ModelState.IsValid) { //Get store id of logged in user. var dbfactory = new DatabaseFactory(); IOfficeService offservice = new OfficeService(new OfficeRepository(dbfactory), new UnitOfWork(dbfactory)); SlsOffice off = offservice.GetUserOffice(userId); int officeId = off.Id; IStoreService storeservice = new StoreService(new InvStoreRepository(dbfactory), new UnitOfWork(dbfactory)); InvStore store = storeservice.GetStoresForOffice(officeId); int storeId = store.Id; if (objT.Id == 0) { if ((bool)Session["Add"]) { objT.CreatedBy = userId; objT.CreatedDate = DateTime.Now.Date; objT.SecCompanyId = companyId; objOperation = _SalesReturnService.Save(objT, storeId); } else { objOperation.OperationId = -1; } } else { if ((bool)Session["Edit"]) { objT.ModifiedBy = userId; objT.ModifiedDate = DateTime.Now.Date; objOperation = _SalesReturnService.Update(objT, storeId); } else { objOperation.OperationId = -2; } } } return Json(objOperation, JsonRequestBehavior.DenyGet); }
public static SlsSalesReturn MapToSlsSalesReturn(SlsSalesReturnViewModel obj) { SlsSalesReturn model = new SlsSalesReturn(); model.Id = obj.Id; model.PartyType = obj.PartyType; model.Party = obj.Party; model.RefNo = obj.RefNo; model.Reason = obj.Reason; if (!obj.IsAdjusted) { //Means no amount to be adjusted model.AdjustedAmount = 0; } else { model.AdjustedAmount = CalculateAdjustedAmount(obj.DetailList); } model.SecCompanyId = obj.SecCompanyId; model.CreatedBy = obj.CreatedBy; model.CreatedDate = obj.CreatedDate; model.ModifiedBy = obj.ModifiedBy; model.ModifiedDate = obj.ModifiedDate; return model; }
public static SlsSalesReturnViewModel MapToSlsSalesReturn(SlsSalesReturn obj) { SlsSalesReturnViewModel model = new SlsSalesReturnViewModel(); model.Id = obj.Id; model.PartyType = obj.PartyType; model.Party = obj.Party; model.RefNo = obj.RefNo; model.Reason = obj.Reason; model.AdjustedAmount = obj.AdjustedAmount; model.SecCompanyId = obj.SecCompanyId; model.CreatedBy = obj.CreatedBy; model.CreatedDate = obj.CreatedDate; model.ModifiedBy = obj.ModifiedBy; model.ModifiedDate = obj.ModifiedDate; //calculative if (model.AdjustedAmount != null && model.AdjustedAmount > 0) { model.IsAdjusted = true; } return model; }
public Operation Update(SlsSalesReturnViewModel objVM, int storedId) { Operation objOperation = new Operation { Success = false }; using (var dbContextTransaction = _SalesReturnRepository.BeginTransaction()) { try { SlsSalesReturn objT = SlsSalesReturnMapVMToModel.MapToSlsSalesReturn(objVM); objOperation = new Operation { Success = true, OperationId = objT.Id }; _SalesReturnRepository.Update(objT); _SalesReturnRepository.SaveChanges(); //add or update categories to each item IList<SlsSalesReturnDetail> adddOrUpdateList = new List<SlsSalesReturnDetail>(); IList<SlsSalesReturnDetail> detailList = new List<SlsSalesReturnDetail>(); foreach (SlsSalesReturnDetailViewModel detail in objVM.DetailList) { SlsSalesReturnDetail objD = SlsSalesReturnMapVMToModel.MapToSlsSalesReturnDetail(detail); objD.SlsReturnId = objT.Id; //calculations if (objD.Id <= 0) { detailList.Add(objD); adddOrUpdateList.Add(objD); } else { _SalesReturnDetailRepository.Update(objD); ManageStockForSalesReturn(storedId, objT.Id, objT.CreatedDate, objD, "Update"); adddOrUpdateList.Add(objD); } } //Add detail list - new if (detailList != null && detailList.Count > 0) { _SalesReturnDetailRepository.AddEntityList(detailList); foreach (var slrDetail in detailList) { ManageStockForSalesReturn(storedId, objT.Id, objT.CreatedDate, slrDetail, "Add"); } } //To delete removed items IList<int> savedItems = _SalesReturnDetailRepository.GetAll().Where(j => j.SlsReturnId == objT.Id).Select(i => i.Id).ToList(); foreach (int savedId in savedItems) { var addedOrUpdatedObj = adddOrUpdateList.Where(i => i.Id == savedId).FirstOrDefault(); if (addedOrUpdatedObj == null) { //this saved id item removed from UI var removedObj = _SalesReturnDetailRepository.GetById(savedId); _SalesReturnDetailRepository.Delete(removedObj); ManageStockForSalesReturn(storedId, objT.Id, objT.CreatedDate, removedObj, "Delete"); } } //end of deletion action _SalesReturnDetailRepository.SaveChanges(); try { //_unitOfWork.Commit(); _SalesReturnRepository.Commit(dbContextTransaction); } catch (Exception ex) { objOperation.Success = false; throw ex; } } catch (Exception ex) { _SalesReturnRepository.Rollback(dbContextTransaction); } } return objOperation; }
public Operation Save(SlsSalesReturnViewModel objVM, int storedId) { Operation objOperation = new Operation { Success = false }; using (var dbContextTransaction = _SalesReturnRepository.BeginTransaction()) { try { objOperation = new Operation { Success = true }; SlsSalesReturn objT = SlsSalesReturnMapVMToModel.MapToSlsSalesReturn(objVM); int Id = _SalesReturnRepository.AddEntity(objT); _SalesReturnRepository.SaveChanges(); objOperation.OperationId = Id; objT.Id = Id; //add or update categories to each item IList<SlsSalesReturnDetail> detailList = new List<SlsSalesReturnDetail>(); foreach (SlsSalesReturnDetailViewModel detail in objVM.DetailList) { SlsSalesReturnDetail objD = SlsSalesReturnMapVMToModel.MapToSlsSalesReturnDetail(detail); objD.SlsReturnId = objT.Id; //calculations if (objD.Id <= 0) detailList.Add(objD); else { _SalesReturnDetailRepository.Update(objD); ManageStockForSalesReturn(storedId, objT.Id, objT.CreatedDate, objD, "Update"); } } //Add detail list - new if (detailList != null && detailList.Count > 0) { _SalesReturnDetailRepository.AddEntityList(detailList); foreach (var slrDetail in detailList) { ManageStockForSalesReturn(storedId, objT.Id, objT.CreatedDate, slrDetail, "Add"); } } _SalesReturnDetailRepository.SaveChanges(); try { _SalesReturnRepository.Commit(dbContextTransaction); } catch (Exception ex) { objOperation.Success = false; throw ex; } } catch (Exception ex) { _SalesReturnRepository.Rollback(dbContextTransaction); } } return objOperation; }