public ActionResult SaveSalesDeliveryInternal(SlsSalesOrderViewModel objS) { int soId = objS.Id; decimal discount = objS.Discount; decimal total = objS.Total; SlsDeliveryViewModel objT = new SlsDeliveryViewModel(); int userId = Convert.ToInt32(Session["userId"]); int companyId = Convert.ToInt32(Session["companyId"]); int employeeId = Convert.ToInt32(Session["employeeId"]); SecCompany objCmnCompany = _SecCompanyService.GetById(companyId); SlsOffice office = _officeService.GetById((int)_hrmEmployeeService.GetById(employeeId).SlsOfficeId); string challanNo = _DeliveryService.GetChallanNo(objCmnCompany.Prefix, office.Code); string invoiceNo = _DeliveryService.GetInvoiceNo(objCmnCompany.Prefix, office.Code); Operation objOperation = new Operation { Success = false }; if (ModelState.IsValid) { if (objT.Id == 0) { if ((bool)Session["Add"]) { objT.SlsSalesOrderId = soId; objT.DeliveryDate = DateTime.Now; objT.ChallanNo = challanNo; objT.InvoiceNo = invoiceNo; objT.VehicleNo = ""; objT.Remarks = ""; objT.Discount = discount; objT.Total = total; objT.ReceivedStatus = 1; objT.ReceivedDate = DateTime.Now; objT.ReceivedRemarks = ""; objT.CreatedBy = userId; objT.CreatedDate = DateTime.Now.Date; //map details of sales items to delivery items. IList<SlsDeliverDetailViewModel> details = new List<SlsDeliverDetailViewModel>(); foreach(var det in objS.SalesOrderDetails) { SlsDeliverDetailViewModel dObj = new SlsDeliverDetailViewModel(); dObj.SlsProductId = det.SlsProductId; dObj.Quantity = det.SalesOrderQuantity; dObj.SlsUnitId = det.SlsUnitId; dObj.Rate = det.Rate; dObj.Price = det.Price; dObj.Discount = det.Discount; dObj.Total = det.Total; dObj.SalesOrderQuantity = det.SalesOrderQuantity; dObj.SlsProductName = det.SlsProductName; dObj.SlsUnitName = det.SlsUnitName; details.Add(dObj); } objT.SlsDeliverDetails = details; objOperation = _DeliveryService.Save(objT); } else { objOperation.OperationId = -1; } } else { if ((bool)Session["Edit"]) { //Normally not required till now - as this will perform once upon a time objT.ModifiedBy = userId; objT.ModifiedDate = DateTime.Now.Date; objOperation = _DeliveryService.Update(objT); } else { objOperation.OperationId = -2; } } } return Json(objOperation, JsonRequestBehavior.DenyGet); }
public ActionResult SaveSalesDelivery(SlsDeliveryViewModel objT) { int userId = Convert.ToInt32(Session["userId"]); Operation objOperation = new Operation { Success = false }; if (ModelState.IsValid) { if (objT.Id == 0) { if ((bool)Session["Add"]) { objT.CreatedBy = userId; objT.CreatedDate = DateTime.Now.Date; objOperation = _DeliveryService.Save(objT); } else { objOperation.OperationId = -1; } } else { if ((bool)Session["Edit"]) { objT.ModifiedBy = userId; objT.ModifiedDate = DateTime.Now.Date; objOperation = _DeliveryService.Update(objT); } else { objOperation.OperationId = -2; } } } return Json(objOperation, JsonRequestBehavior.DenyGet); }
public Operation Update(SlsDeliveryViewModel objVM) { Operation objOperation = new Operation { Success = false }; using (var dbContextTransaction = _DeliveryRepository.BeginTransaction()) { try { //set status objVM.ReceivedStatus = IsDeliveryComplete(objVM.SlsDeliverDetails, objVM.Id); SlsDelivery objT = _DeliveryRepository.GetById(objVM.Id); objT = SlsSalesDeliveryMapVMToModel.MapToSlsSalesDelivery(objVM, objT); objOperation = new Operation { Success = true, OperationId = objT.Id }; _DeliveryRepository.Update(objT); _DeliveryRepository.SaveChanges(); //add or update categories to each item IList<SlsDeliverDetail> detailList = new List<SlsDeliverDetail>(); foreach (SlsDeliverDetailViewModel detail in objVM.SlsDeliverDetails) { SlsDeliverDetail objD = SlsSalesDeliveryMapVMToModel.MapToSlsSalesDeliveryDetail(detail); objD.SlsDeliveryId = objT.Id; //calculations objD.Price = objD.Rate * objD.Quantity; if (objD.Id <= 0) detailList.Add(objD); else _DeliveryDetailRepository.Update(objD); } //Add detail list - new if (detailList != null && detailList.Count > 0) { _DeliveryDetailRepository.AddEntityList(detailList); } ////To delete removed items //IList<int> savedItems = _DeliveryDetailRepository.GetAll().Where(j => j.SlsDeliveryId == objT.Id).Select(i => i.Id).ToList(); //foreach (int savedId in savedItems) //{ // var addedOrUpdatedObj = detailList.Where(i => i.Id == savedId).FirstOrDefault(); // if (addedOrUpdatedObj == null) // { // //this saved id item removed from UI // var removedObj = _DeliveryDetailRepository.GetById(savedId); // _DeliveryDetailRepository.Delete(removedObj); // } //} ////end of deletion action _DeliveryDetailRepository.SaveChanges(); try { //_unitOfWork.Commit(); _DeliveryRepository.Commit(dbContextTransaction); } catch (Exception ex) { objOperation.Success = false; throw ex; } } catch (Exception ex) { _DeliveryRepository.Rollback(dbContextTransaction); } } return objOperation; }
public static SlsDelivery MapToSlsSalesDelivery(SlsDeliveryViewModel obj, SlsDelivery model) { if (model == null) model = new SlsDelivery(); model.Id = obj.Id; model.SlsSalesOrderId = obj.SlsSalesOrderId; model.DeliveryDate = obj.DeliveryDate; model.ChallanNo = obj.ChallanNo; model.InvoiceNo = obj.InvoiceNo; model.VehicleNo = obj.VehicleNo; model.Remarks = obj.Remarks; model.Discount = obj.Discount; model.Total = obj.Total; model.ReceivedStatus = obj.ReceivedStatus; model.ReceivedDate = obj.ReceivedDate; model.ReceivedRemarks = obj.ReceivedRemarks; model.CreatedBy = obj.CreatedBy; model.CreatedDate = obj.CreatedDate; model.ModifiedBy = obj.ModifiedBy; model.ModifiedDate = obj.ModifiedDate; return model; }
public Operation Save(SlsDeliveryViewModel objVM) { Operation objOperation = new Operation { Success = false }; using (var dbContextTransaction = _DeliveryRepository.BeginTransaction()) { try { objOperation = new Operation { Success = true }; SlsDelivery objT = SlsSalesDeliveryMapVMToModel.MapToSlsSalesDelivery(objVM, null); //set status objT.ReceivedStatus = IsDeliveryComplete(objVM.SlsDeliverDetails, objT.Id); int Id = _DeliveryRepository.AddEntity(objT); _DeliveryRepository.SaveChanges(); objOperation.OperationId = Id; objT.Id = Id; //add or update categories to each item IList<SlsDeliverDetail> detailList = new List<SlsDeliverDetail>(); foreach (SlsDeliverDetailViewModel detail in objVM.SlsDeliverDetails) { SlsDeliverDetail objD = SlsSalesDeliveryMapVMToModel.MapToSlsSalesDeliveryDetail(detail); objD.SlsDeliveryId = objT.Id; //calculations objD.Price = objD.Rate * objD.Quantity; if (objD.Id <= 0) detailList.Add(objD); else _DeliveryDetailRepository.Update(objD); } //Add detail list - new if (detailList != null && detailList.Count > 0) { _DeliveryDetailRepository.AddEntityList(detailList); } _DeliveryDetailRepository.SaveChanges(); try { _DeliveryRepository.Commit(dbContextTransaction); } catch (Exception ex) { objOperation.Success = false; throw ex; } } catch (Exception ex) { _DeliveryRepository.Rollback(dbContextTransaction); } } return objOperation; }