public ActionResult StatusUpdate(int Id) { FillCustomer(); FillCurrency(); FillCommissionAgent(); FillWrkDesc(); FillVehicle(); FillUnit(); FillQuerySheet(); FillEmployee(); FillSalesQuotationStatus(); var repo = new SalesQuotationRepository(); var sorepo = new SaleOrderRepository(); SalesQuotation salesquotation = repo.GetSalesQuotation(Id); salesquotation.CustomerAddress = sorepo.GetCusomerAddressByKey(salesquotation.CustomerId); salesquotation.SalesQuotationItems = repo.GetSalesQuotationItems(Id); ViewBag.SubmitAction = "StatusUpdate"; return(View("StatusUpdate", salesquotation)); }
public void FillCustomer() { var repo = new SaleOrderRepository(); var list = repo.FillCustomer(); ViewBag.customerlist = new SelectList(list, "Id", "Name"); }
public void FillCommissionAgent() { var repo = new SaleOrderRepository(); var list = repo.FillCommissionAgent(); ViewBag.commissionagentlist = new SelectList(list, "Id", "Name"); }
public ActionResult ServiceEnquiryProject(ServiceEnquiry model) { try { model.OrganizationId = OrganizationId; model.CreatedBy = UserID.ToString();; model.CreatedDate = System.DateTime.Now; model.IsConfirmed = 0; model.isProjectBased = 1; string ref_no = new SaleOrderRepository().InsertServiceEnquiry(model); if (ref_no.Length > 0) { TempData["success"] = "Saved Successfully. Reference No. is " + ref_no; return(RedirectToAction("ServiceEnquiryProject")); } else { throw new Exception(); } } catch (Exception) { FillDropDowns(); TempData["error"] = "Some error occurred while saving. Please try again."; return(View(model)); } }
public void FillCustomer() { SaleOrderRepository repo = new SaleOrderRepository(); List <Dropdown> list = repo.FillCustomer(); ViewBag.Customer = new SelectList(list, "Id", "Name"); }
public ActionResult ServiceOrder(int id = 0)//ServiceEnquiryId is received here { try { if (id == 0) { TempData["error"] = "That was an invalid request. Please try again."; RedirectToAction("Index", "Home"); } FillDropDowns(); ServiceEnquiry model = new SaleOrderRepository().GetServiceEnquiryDetails(id, OrganizationId); model.SaleOrderRefNo = DatabaseCommonRepository.GetNextDocNo(42, OrganizationId); model.SaleOrderDate = DateTime.Today; model.isProjectBased = 1; model.isService = 1; model.IsConfirmed = 1; model.Items = new List <SaleOrderItem>(); model.Items.Add(new SaleOrderItem()); return(View("ServiceEnquiryProject", model)); } catch (InvalidOperationException) { TempData["error"] = "Requested data could not be found. Please try again."; } catch (Exception) { TempData["error"] = "Some error occurred. Please try again."; } return(RedirectToAction("PendingEnquiries", new { isProjectBased = 1 })); }
public ActionResult Approve(int SalesQuotationId) { DropDowns(); FillVehicle(); FillQuerySheetInQuot(); FillUnit(); FillRateSettings(); ItemDropdown(); FillUnitDoorUnit(); var repo = new SalesQuotationRepository(); var sorepo = new SaleOrderRepository(); SalesQuotation salesquotation = repo.GetSalesQuotation(SalesQuotationId); //salesquotation.SalesQuotationItems[0].UnitName = "Nos"; if (!salesquotation.isProjectBased && !salesquotation.isAfterSales) { FillWrkDesc(); } else if (salesquotation.isProjectBased && !salesquotation.isAfterSales) { FillWrkDescForProject(); } else if (salesquotation.isAfterSales) { FillWrkDescAfterSales(); if (salesquotation.isProjectBased) { salesquotation.ProjectCompleionDetails = new ProjectCompletionRepository().GetProjectCompletion(salesquotation.ProjectCompletionId); } else { salesquotation.DeliveryChallanDetails = new DeliveryChallanRepository().GetDeliveryChallan(salesquotation.DeliveryChallanId); } } salesquotation.CustomerAddress = sorepo.GetCusomerAddressByKey(salesquotation.CustomerId); salesquotation.SalesQuotationItems = repo.GetSalesQuotationItems(SalesQuotationId); salesquotation.Materials = repo.GetSalesQuotationMaterials(SalesQuotationId); //salesquotation.VehicleModelId = salesquotation.SalesQuotationItems[0].VehicleModelId; //FillUnitDoorUnit(); //salesquotation.ProjectRooms = new SaleOrderRepository().GetRoomDetailsFromQuotation(SalesQuotationId); ViewBag.SubmitAction = "Approve"; if (salesquotation.isProjectBased) { return(View("Create", salesquotation)); } else { salesquotation.VehicleModelId = salesquotation.SalesQuotationItems[0].VehicleModelId; } return(View("CreateTransportation", salesquotation)); }
public ActionResult WorkShopRequestPending(int isProjectBased, string saleOrder = "", string customer = "") { var rep = new SaleOrderRepository(); var slist = rep.GetSaleOrdersPendingWorkshopRequest(OrganizationId, isProjectBased, saleOrder.Trim(), customer.Trim()); ViewBag.ProjectBased = isProjectBased; return(PartialView("_PendingGrid", slist)); }
public ActionResult Create(int?Id, int?isProjectBased) //SaleOrderItemId is received here { try { FillEmployee(); JobCardRepository repo = new JobCardRepository(); SaleOrderRepository soRepo = new SaleOrderRepository(); isProjectBased = soRepo.IsProjectOrVehicle(Id ?? 0); JobCard model = repo.GetJobCardDetails(Id ?? 0, isProjectBased ?? 0); model.JobCardNo = DatabaseCommonRepository.GetNextDocNo( model.isService == 1 ? (isProjectBased ?? 0) == 1 ? 40 : 34 : (isProjectBased ?? 0) == 1 ? 39 : 16, OrganizationId); model.isProjectBased = isProjectBased ?? 0; model.JobCardTasks = new List <JobCardTask>(); model.JobCardTasks.Add(new JobCardTask() { TaskDate = DateTime.Now }); model.JobCardDate = DateTime.Now; model.RequiredDate = DateTime.Now; FillBay(model.isService); //FillAllTasks(); FillTasks(model.isProjectBased); //if (model.isService == 1) // FillTaks(model.WorkDescriptionId); //else // FillFreezerAndBoxTasks(Id); //FillTaks(model.WorkDescriptionId); //FillFreezerUnit(); //FillBox(); //FillVehicleRegNo(); return(View(model)); } catch (Exception ex) { string ErrorMessage = ex.Message.ToString(); if (ex.InnerException != null) { if (ex.InnerException.Message != null) { ErrorMessage = ErrorMessage + ex.InnerException.Message.ToString(); } } ViewData["Error"] = ErrorMessage; return(View("ShowError")); } }
//else if (model.isProjectBased == 1) //{ // TempData["Success"] = "Approved Successfully!"; // TempData["QuotationRefNo"] = model.QuotationRefNo; // return RedirectToAction("ListSalesQuotations", new { ProjectBased = 1 }); //} //else if (model.isProjectBased == 2) //{ // TempData["Success"] = "Approved Successfully!"; // TempData["QuotationRefNo"] = model.QuotationRefNo; // return RedirectToAction("ListSalesQuotations", new { ProjectBased = 2 }); //} //else //{ // return View(); //} //} #region Revise Quotation public ActionResult Revise(int Id) { DropDowns(); var repo = new SalesQuotationRepository(); var sorepo = new SaleOrderRepository(); SalesQuotation salesquotation = repo.GetSalesQuotation(Id); if (salesquotation.isAfterSales) { FillWrkDescAfterSales(); ItemDropdown(); } else if (salesquotation.isProjectBased) { FillWrkDescForProject(); ItemDropdown(); } else { FillWrkDesc(); } salesquotation.CustomerAddress = sorepo.GetCusomerAddressByKey(salesquotation.CustomerId); salesquotation.ParentId = salesquotation.SalesQuotationId; salesquotation.IsQuotationApproved = false; if (salesquotation.GrantParentId == null || salesquotation.GrantParentId == 0) { salesquotation.GrantParentId = salesquotation.ParentId; } salesquotation.SalesQuotationItems = repo.GetSalesQuotationItems(Id); try { //each workdescription will have the same vehicle model id salesquotation.VehicleModelId = salesquotation.SalesQuotationItems[0].VehicleModelId; } catch { } salesquotation.Materials = repo.GetSalesQuotationMaterials(Id); if (salesquotation.Materials == null || salesquotation.Materials.Count == 0) { salesquotation.Materials.Add(new SalesQuotationMaterial()); } ViewBag.SubmitAction = "Revise"; return(View(salesquotation)); }
public ActionResult ServiceOrder(ServiceEnquiry model) { try { model.OrganizationId = OrganizationId; model.CreatedBy = UserID.ToString(); string ref_no = new SaleOrderRepository().InsertServiceOrder(model); TempData["success"] = "Saved Successfully. Reference No. is " + ref_no; return(RedirectToAction("PendingEnquiries", new { isProjectBased = 1 })); } catch (Exception) { FillDropDowns(); TempData["error"] = "Some error occurred while saving. Please try again."; return(View("ServiceEnquiryProject", model)); } }
public ActionResult DeleteEnquiry(int id = 0) { try { if (id == 0) { return(RedirectToAction("Index", "Home")); } string ref_no = new SaleOrderRepository().DeleteServiceEnquiry(id); TempData["Success"] = "Deleted Successfully!"; TempData["ServiceEnquiryRefNo"] = ref_no; return(RedirectToAction("EnquiryList", new { isProjectBased = 0 })); } catch (Exception) { TempData["error"] = "Some error occured while deleting. Please try again."; return(RedirectToAction("Edit", new { id = id })); } }
/// <summary> /// 取消销售单 /// </summary> /// <param name="idList"></param> public void CancelOrder(IList <Guid> idList) { if (idList == null || !idList.Any()) { return; } foreach (var Id in idList) { var model = GetModel(Id); if (model == null) { continue; } var order = new FinanceOrder(); order.Code = this.FinanceOrderRepository.GetSequenceNextCode(); SaleOrderRepository.Cancel(model, order); } }
/// <summary> /// 结算销售单 /// </summary> /// <param name="model"></param> public void Settlement(SaleSettlementModel model) { if (model == null) { return; } var order = SaleOrderRepository.GetModel(model.SaleOrderId); if (order == null) { throw new Exception("销售单不存在。"); } if (order.Status != EnumSaleOrderStatus.Outbound) { throw new Exception("只能结算已出库的销售单。"); } if (order.SettlementStatus == EnumSettlementStatus.Completed) { throw new Exception("只能结算未结算的销售单。"); } order.SettlementStatus = model.SettlementStatus; order.SettlementAmount = order.SettlementAmount + model.SettlementAmount; if (order.SettlementAmount >= order.Amount && order.SettlementStatus == EnumSettlementStatus.PartCompleted) { throw new Exception("结算金额已超过销售单总金额,不允许部分结算。"); } var financeOrder = new FinanceOrder(); financeOrder.Code = this.FinanceOrderRepository.GetSequenceNextCode(); financeOrder.Amount = model.SettlementAmount; financeOrder.Remark = model.SettlementRemark; SaleOrderRepository.Settlement(order, financeOrder); }
public ActionResult EditEnquiry(int id)//ServiceEnquiryId is received here { try { if (id != 0) { FillCustomer(); ServiceEnquiry model = new SaleOrderRepository().GetServiceEnquiryDetails(id, OrganizationId); model.IsConfirmed = 0; return(View(model)); } else { TempData["error"] = "That was an invalid/unknown request. Please try again."; TempData["success"] = ""; } } catch (InvalidOperationException iox) { TempData["error"] = "Sorry, we could not find the requested item. Please try again.|" + iox.Message; } catch (SqlException sx) { TempData["error"] = "Some error occured while connecting to database. Please try again after sometime.|" + sx.Message; } catch (NullReferenceException nx) { TempData["error"] = "Some required data was missing. Please try again.|" + nx.Message; } catch (Exception ex) { TempData["error"] = "Some error occured. Please try again.|" + ex.Message; } TempData["success"] = ""; return(RedirectToAction("Index")); }
/// <summary> /// 设置已出库 /// </summary> /// <param name="IdList"></param> public void Outbound(IList <Guid> IdList) { if (IdList == null || !IdList.Any()) { return; } foreach (var item in IdList) { var order = SaleOrderRepository.GetModel(item); if (order == null) { continue; } if (order.Status != EnumSaleOrderStatus.Initial) { throw new Exception("只有对待出库的销售单做出库操作。"); } SaleOrderRepository.Outbound(order); } }
/// <summary> /// 分页查找销售单列表 /// </summary> /// <param name="filter"></param> /// <returns></returns> public PagedQueryResult <SaleOrderModel> FindList(PagedQueryFilter filter) { var result = SaleOrderRepository.FindPaged <SaleOrder>(filter); var modelList = new List <SaleOrderModel>(); var response = new PagedQueryResult <SaleOrderModel>(); foreach (var item in result.Data) { item.Customer = CustomerService.Get(item.CustomerId); item.SaleBy = EmployeeService.Get(item.SaleById); var model = new SaleOrderModel { Id = item.Id, Code = item.Code, Amount = item.Amount, CustomerName = item.Customer == null ? string.Empty : item.Customer.Name, OutboundOn = item.OutboundOn, Remark = item.Remark, SaleByName = item.SaleBy == null ? string.Empty : item.SaleBy.Name, SaleOn = item.SaleOn, SettlementAmount = item.SettlementAmount, SettlementOn = item.SettlementOn, SettlementStatus = item.SettlementStatus, Status = item.Status, }; modelList.Add(model); } response.Data = modelList; response.PageIndex = result.PageIndex; response.PageSize = result.PageSize; response.TotalCount = result.TotalCount; response.TotalPage = result.TotalPage; return(response); }
public SaleOrderController() { repository = new SaleOrderRepository(); }
public ActionResult LoadQuickView() { if (Session["user"] == null) { return(RedirectToAction("LogOff", "Account")); } QuickView view = new QuickView(); view.PendingDirectPurchaseRequests = true; view.PendingTransQuotations = true; view.PendingProjectQuotations = true; view.PendingSupplyOrders = true; view.PendingWorkshopRequests = true; view.PendingProjectSaleOrdersForJobCard = true; view.PendingTransSaleOrdersForJobCard = true; view.MaterialStockBelowMinLevel = true; view.PendingVechicleInpass = true; view.PendingWRForStoreIssue = true; view.PendingJobcardQC = true; view.PendingMaterialReqPRS = true; if (view.PendingProjectQuotations) { SalesQuotationRepository repo = new SalesQuotationRepository(); var res = repo.GetSalesQuotationApproveList(1, 0, OrganizationId); view.NoOfProjectQuotations = res.Count; } if (view.PendingTransQuotations) { SalesQuotationRepository repo = new SalesQuotationRepository(); var res = repo.GetSalesQuotationApproveList(0, 0, OrganizationId); view.NoOfTransQuotations = res.Count; } if (view.PendingSupplyOrders) { var repo = new GRNRepository(); var res = repo.GetGRNPendingList(0); view.NoOfSupplyOrders = res.Count(); } if (view.PendingDirectPurchaseRequests) { var res = new DirectPurchaseRepository().GetUnApprovedRequests(UserID); view.NoOfPurchaseRequests = res.Count; } if (view.PendingWorkshopRequests) { var rep = new SaleOrderRepository(); var slist = rep.GetSaleOrdersPendingWorkshopRequest(OrganizationId, 0); view.NoOfWorkShopRequests = slist.Count; } if (view.PendingProjectSaleOrdersForJobCard) { var list = new JobCardRepository().GetPendingSO(1, OrganizationId, 0); view.NoOfProjectSaleOrdersForJobCard = list.Count(); } if (view.PendingTransSaleOrdersForJobCard) { var list = new JobCardRepository().GetPendingSO(0, OrganizationId, 0); view.NoOfTransSaleOrdersForJobCard = list.Count(); } if (view.MaterialStockBelowMinLevel) { var list = new ItemRepository().GetCriticalMaterialsBelowMinStock(OrganizationId); view.NoOfMaterialStockBelowMinLevel = list.Count(); //view.NoOfMaterialStockBelowMinLevel = new ItemRepository().GetCriticalMaterialsBelowMinStock(OrganizationId); } if (view.PendingVechicleInpass) { var list = new VehicleInPassRepository().PendingVehicleInpassforAlert(OrganizationId); view.NoOfVechicleInpass = list.Count(); } if (view.PendingWRForStoreIssue) { var list = new WorkShopRequestRepository().PendingWorkshopRequests("", "", "", ""); view.NoOfWRForStoreIssue = list.Count(); } if (view.PendingJobcardQC) { var list = new DeliveryChallanRepository().PendingDelivery(OrganizationId); view.NoOfJobcardQC = list.Count(); } if (view.PendingMaterialReqPRS) { var list = new PurchaseRequestRepository().GetWorkShopRequestPending(OrganizationId, 0, "", "all"); view.NoOfPendingMaterialReqPRS = list.Count(); } IEnumerable <ERPAlerts> Alerts; if (Session["alertpermissions"] == null) { UserRepository repo = new UserRepository(); Alerts = repo.GetAlerts(UserID); Session["alertpermissions"] = Alerts; } else { Alerts = (IEnumerable <ERPAlerts>)Session["alertpermissions"]; Session["alertpermissions"] = Alerts; } AlertPermission alertpermission = new AlertPermission(); foreach (var item in Alerts) { if (item.HasPermission == 1) { switch (item.AlertId) { case 1: alertpermission.ProjectQuotApproval = true; break; case 2: alertpermission.TransportQuotApproval = true; break; case 3: alertpermission.PendingSupplyOrdForGrn = true; break; case 4: alertpermission.DirectPurchaseReqDorApproval = true; break; case 5: alertpermission.PendingSOForWorkshopReq = true; break; //case 6: // alertpermission.PendingProjectSaleOrdersForJobCard = true; // break; //case 7: // alertpermission.PendingTransSaleOrdersForJobCard = true; // break; case 6: alertpermission.MaterialStockBelowMinLevel = true; break; case 7: alertpermission.PendingVechicleInpass = true; break; case 8: alertpermission.PendingWRForStoreIssue = true; break; case 9: alertpermission.PendingJobcardQC = true; break; case 10: alertpermission.PendingMaterialReqPRS = true; break; default: break; } } } ViewBag.AlertPermissions = alertpermission; return(PartialView("_QuickView", view)); }
public ActionResult PrintJob(int id)//ServiceEnquiryId is received here { ReportDocument rd = new ReportDocument(); rd.Load(Path.Combine(Server.MapPath("~/Reports"), "JobRepairOrderProject.rpt")); DataSet ds = new DataSet(); ds.Tables.Add("Head"); ds.Tables.Add("Items"); //-------HEAD ds.Tables["Head"].Columns.Add("ServiceEnquiryRefNo"); ds.Tables["Head"].Columns.Add("ServiceEnquiryDate"); ds.Tables["Head"].Columns.Add("CustomerName"); ds.Tables["Head"].Columns.Add("CDoorNo"); ds.Tables["Head"].Columns.Add("CStreet"); ds.Tables["Head"].Columns.Add("CPhone"); ds.Tables["Head"].Columns.Add("CZip"); ds.Tables["Head"].Columns.Add("CState"); ds.Tables["Head"].Columns.Add("CContactPerson"); //ds.Tables["Head"].Columns.Add("VehicleMake"); //ds.Tables["Head"].Columns.Add("VehicleRegNo"); //ds.Tables["Head"].Columns.Add("VehicleChassisNo"); //ds.Tables["Head"].Columns.Add("VehicleKm"); //ds.Tables["Head"].Columns.Add("BoxMake"); //ds.Tables["Head"].Columns.Add("BoxNo"); //ds.Tables["Head"].Columns.Add("BoxSize"); //ds.Tables["Head"].Columns.Add("FreezerMake"); //ds.Tables["Head"].Columns.Add("FreezerModel"); //ds.Tables["Head"].Columns.Add("FreezerSerialNo"); //ds.Tables["Head"].Columns.Add("FreezerHours"); //ds.Tables["Head"].Columns.Add("TailLiftMake"); //ds.Tables["Head"].Columns.Add("TailLiftModel"); //ds.Tables["Head"].Columns.Add("TailLiftSerialNo"); ds.Tables["Head"].Columns.Add("UnitDetails"); ds.Tables["Head"].Columns.Add("Complaints"); ds.Tables["Head"].Columns.Add("DoorNo"); ds.Tables["Head"].Columns.Add("Street"); ds.Tables["Head"].Columns.Add("State"); ds.Tables["Head"].Columns.Add("CountryName"); ds.Tables["Head"].Columns.Add("Zip"); ds.Tables["Head"].Columns.Add("Fax"); ds.Tables["Head"].Columns.Add("Email"); ds.Tables["Head"].Columns.Add("Phone"); ds.Tables["Head"].Columns.Add("ContactPerson"); ds.Tables["Head"].Columns.Add("OrganizationName"); ds.Tables["Head"].Columns.Add("Image1"); ds.Tables["Head"].Columns.Add("CreatedUser"); ds.Tables["Head"].Columns.Add("CreatedUsersig"); ds.Tables["Head"].Columns.Add("CreatedDes"); //-------DT ds.Tables["Items"].Columns.Add("Date"); ds.Tables["Items"].Columns.Add("Description"); ds.Tables["Items"].Columns.Add("TotalHours"); SaleOrderRepository repo = new SaleOrderRepository(); ServiceEnquiry se = new ServiceEnquiry(); var Head = repo.GetJobPrintHD(id, OrganizationId); DataRow dr = ds.Tables["Head"].NewRow(); dr["ServiceEnquiryRefNo"] = Head.ServiceEnquiryRefNo; dr["ServiceEnquiryDate"] = Head.ServiceEnquiryDate.ToString("dd-MMM-yyyy"); dr["CustomerName"] = Head.CustomerName; dr["CDoorNo"] = Head.CDoorNo; dr["CStreet"] = Head.CStreet; dr["CPhone"] = Head.CPhone; dr["CZip"] = Head.CZip; dr["CState"] = Head.CState; dr["CContactPerson"] = Head.CContactPerson; //dr["VehicleMake"] = Head.VehicleMake; //dr["VehicleRegNo"] = Head.VehicleRegNo; //dr["VehicleChassisNo"] = Head.VehicleChassisNo; //dr["VehicleKm"] = Head.VehicleKm; //dr["BoxMake"] = Head.BoxMake; //dr["BoxNo"] = Head.BoxNo; //dr["BoxSize"] = Head.BoxSize; //dr["FreezerMake"] = Head.FreezerMake; //dr["FreezerModel"] = Head.FreezerModel; //dr["FreezerSerialNo"] = Head.FreezerSerialNo; //dr["FreezerHours"] = Head.FreezerHours; //dr["TailLiftMake"] = Head.TailLiftMake; //dr["TailLiftModel"] = Head.TailLiftModel; //dr["TailLiftSerialNo"] = Head.TailLiftSerialNo; dr["UnitDetails"] = Head.UnitDetails; dr["Complaints"] = Head.Complaints; dr["DoorNo"] = Head.DoorNo; dr["Street"] = Head.Street; dr["State"] = Head.State; dr["CountryName"] = Head.CountryName; dr["Zip"] = Head.Zip; dr["Fax"] = Head.Fax; dr["Email"] = Head.Email; dr["Phone"] = Head.Phone; dr["ContactPerson"] = Head.ContactPerson; dr["OrganizationName"] = Head.OrganizationName; dr["Image1"] = Server.MapPath("~/App_images/") + Head.Image1; dr["CreatedUser"] = Head.CreatedUser; dr["CreatedUsersig"] = Server.MapPath("~/App_images/") + Head.CreatedUsersig; dr["CreatedDes"] = Head.CreatedDes; ds.Tables["Head"].Rows.Add(dr); ds.WriteXml(Path.Combine(Server.MapPath("~/XML"), "JobRepairOrderProject.xml"), XmlWriteMode.WriteSchema); rd.SetDataSource(ds); Response.Buffer = false; Response.ClearContent(); Response.ClearHeaders(); try { Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); stream.Seek(0, SeekOrigin.Begin); return(File(stream, "application/pdf")); } catch (Exception ex) { throw; } }
public void CreateAndUpdatePurchaseOrder(SaleOrderContract saleOrderContract) { var saleOrder = SaleOrderRepository.Get(saleOrderContract.Id); if (saleOrder != null) { // Update Order saleOrder.Title = saleOrderContract.Title; for (int i = 0; i < saleOrderContract.SaleOrderItemContracts.Count; i++) { var temp = saleOrderContract.SaleOrderItemContracts[i]; if (saleOrder.SaleOrderItems.Any(x => x.Id == temp.Id)) { // Update OrdetItem .. var InDatabaseOrderItem = saleOrder.SaleOrderItems.FirstOrDefault(x => x.Id == temp.Id); InDatabaseOrderItem.NetPrice = temp.NetPrice; InDatabaseOrderItem.Quantity = temp.Quantity; InDatabaseOrderItem.UnitPrice = temp.UnitPrice; InDatabaseOrderItem.TotalPrice = temp.TotalPrice; InDatabaseOrderItem.Item = IitemRepository.Get(temp.ItemId); InDatabaseOrderItem.Rack = IRackRepository.Get(temp.RackId); } else { // Create OrderItem var InDatabaseOrderItem = new SaleOrderItem(); InDatabaseOrderItem.NetPrice = temp.NetPrice; InDatabaseOrderItem.Quantity = temp.Quantity; InDatabaseOrderItem.UnitPrice = temp.UnitPrice; InDatabaseOrderItem.TotalPrice = temp.TotalPrice; InDatabaseOrderItem.Item = IitemRepository.Get(temp.ItemId); InDatabaseOrderItem.Rack = IRackRepository.Get(temp.RackId); saleOrder.SaleOrderItems.Add(InDatabaseOrderItem); } } //Delete extra orderItems in order(DB) for (int i = 0; i < saleOrder.SaleOrderItems.Count; i++) { var temp = saleOrder.SaleOrderItems[i]; if (!saleOrderContract.SaleOrderItemContracts.Any(x => x.Id == temp.Id)) { saleOrder.SaleOrderItems.Remove(temp); } } SaleOrderRepository.Update(saleOrder); } else { // Create Order saleOrder = new SaleOrder(); saleOrder.Code = saleOrderContract.Code; saleOrder.CreationDate = saleOrderContract.CreationDate; saleOrder.Title = saleOrderContract.Title; for (int i = 0; i < saleOrderContract.SaleOrderItemContracts.Count; i++) { var temp = saleOrderContract.SaleOrderItemContracts[i]; var InDatabaseOrderItem = new SaleOrderItem(); InDatabaseOrderItem.NetPrice = temp.NetPrice; InDatabaseOrderItem.Quantity = temp.Quantity; InDatabaseOrderItem.UnitPrice = temp.UnitPrice; InDatabaseOrderItem.TotalPrice = temp.TotalPrice; InDatabaseOrderItem.Item = IitemRepository.Get(temp.ItemId); InDatabaseOrderItem.Rack = IRackRepository.Get(temp.RackId); saleOrder.SaleOrderItems.Add(InDatabaseOrderItem); } SaleOrderRepository.Insert(saleOrder); } }
public void CreateOrUpdate(SaleOrderContract saleOrderContract) { var saleorder = SaleOrderRepository.Get(saleOrderContract.Id); if (saleorder != null) { saleorder.Code = saleOrderContract.Code; //saleorder.CreationDate = saleOrderContract.CreationDate; saleorder.Title = saleOrderContract.Title; for (int i = 0; i < saleOrderContract.SaleOrderItems.Count; i++) { var temp = saleOrderContract.SaleOrderItems[i]; if (saleorder.SaleOrderItems.Any(s => s.Id == temp.Id)) { var indatabaesaleorder = saleorder.SaleOrderItems.FirstOrDefault(s => s.Id == temp.Id); indatabaesaleorder.NetPrice = temp.NetPrice; indatabaesaleorder.Quantity = temp.Quantity; indatabaesaleorder.TotalPrice = temp.TotalPrice; indatabaesaleorder.UnitPrice = temp.UnitPrice; indatabaesaleorder.Item = ItemRepository.Get(temp.ItemId); indatabaesaleorder.Rack = RackRepository.Get(temp.RackId); } else { var saleorderitem = new SaleOrderItem(); saleorderitem.NetPrice = temp.NetPrice; saleorderitem.Quantity = temp.Quantity; saleorderitem.TotalPrice = temp.TotalPrice; saleorderitem.UnitPrice = temp.UnitPrice; saleorderitem.Item = ItemRepository.Get(temp.ItemId); saleorderitem.Rack = RackRepository.Get(temp.RackId); saleorder.SaleOrderItems.Add(saleorderitem); } } for (int i = 0; i < saleorder.SaleOrderItems.Count; i++) { var temp = saleorder.SaleOrderItems.ToArray()[i]; if (!saleOrderContract.SaleOrderItems.Any(s => s.Id == temp.Id)) { saleorder.SaleOrderItems.Remove(temp); } } SaleOrderRepository.Update(saleorder); } else { saleorder = new SaleOrder(); saleorder.Code = saleOrderContract.Code; saleorder.CreationDate = saleOrderContract.CreationDate; saleorder.Title = saleOrderContract.Title; for (int i = 0; i < saleOrderContract.SaleOrderItems.Count; i++) { var temp = saleOrderContract.SaleOrderItems[i]; var indatabaesaleorder = saleorder.SaleOrderItems.FirstOrDefault(s => s.Id == temp.Id); indatabaesaleorder.NetPrice = temp.NetPrice; indatabaesaleorder.Quantity = temp.Quantity; indatabaesaleorder.TotalPrice = temp.TotalPrice; indatabaesaleorder.UnitPrice = temp.UnitPrice; indatabaesaleorder.Item = ItemRepository.Get(temp.ItemId); indatabaesaleorder.Rack = RackRepository.Get(temp.RackId); } SaleOrderRepository.Insert(saleorder); } }
public void Delete(SaleOrderContract saleOrderContract) { var saleorder = SaleOrderRepository.Get(saleOrderContract.Id); SaleOrderRepository.Delete(saleorder); }
public ActionResult Edit(int id = 0) { if (id == 0) { return(RedirectToAction("Index", "Home")); } DropDowns(); ItemDropdown(); FillVehicle(); //FillQuerySheetInQuot(); FillUnit(); FillRateSettings(); FillUnitDoorUnit(); var repo = new SalesQuotationRepository(); var sorepo = new SaleOrderRepository(); SalesQuotation salesquotation = repo.GetSalesQuotation(id); if (!salesquotation.isProjectBased && !salesquotation.isAfterSales) { FillWrkDesc(); } else if (salesquotation.isProjectBased && !salesquotation.isAfterSales) { FillWrkDescForProject(); } else if (salesquotation.isAfterSales) { FillWrkDescAfterSales(); if (salesquotation.isProjectBased) { salesquotation.ProjectCompleionDetails = new ProjectCompletionRepository().GetProjectCompletion(salesquotation.ProjectCompletionId); } else { salesquotation.DeliveryChallanDetails = new DeliveryChallanRepository().GetDeliveryChallan(salesquotation.DeliveryChallanId); } } salesquotation.CustomerAddress = sorepo.GetCusomerAddressByKey(salesquotation.CustomerId); salesquotation.SalesQuotationItems = repo.GetSalesQuotationItems(id); try { //each workdescription will have the same vehicle model id salesquotation.VehicleModelId = salesquotation.SalesQuotationItems[0].VehicleModelId; } catch { } salesquotation.Materials = repo.GetSalesQuotationMaterials(id); #region getting quotation room, unit and door details if (salesquotation.isProjectBased) { salesquotation.ProjectRooms = new SaleOrderRepository().GetRoomDetailsFromQuotation(id); } #endregion if (salesquotation.Materials == null || salesquotation.Materials.Count == 0) { salesquotation.Materials.Add(new SalesQuotationMaterial()); } if (!salesquotation.isProjectBased) { return(View("EditTransportation", salesquotation)); } FillQuerySheetIncludingCurrent(salesquotation.QuerySheetId, OrganizationId); return(View("Edit", salesquotation)); }