public async Task <JsonResult> GetWarehouseWhenDateChanged(string action, string customerNumber, string itemName, string deliveryDateStr) { DateTime deliveryDate; if (!string.IsNullOrEmpty(itemName) && DateTime.TryParse(deliveryDateStr, out deliveryDate)) { var deliveryAssurance = new Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance() { Item = DeliveryAssuranceHelper.ParseItemValue(itemName), Sort = DeliveryAssuranceHelper.ParseSortValue(itemName), Leveransdatum = deliveryDate, SupplierNumber = customerNumber }; var wareHouseList = await GetWarehouseList(deliveryAssurance); if (!action.Equals(DeliveryAssuranceAction.Approve)) { var depaAvtals = await GetDepaAvtalDelAssAsync(deliveryAssurance, action); return(Json(new { warehouses = wareHouseList, depaAvtals = depaAvtals }, JsonRequestBehavior.AllowGet)); } return(Json(new { warehouses = wareHouseList }, JsonRequestBehavior.AllowGet)); } return(Json(new { warehouses = new List <KeyValuePair <string, string> >() }, JsonRequestBehavior.AllowGet)); }
private async Task <List <KeyValuePair <string, string> > > GetWarehouseList( Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance deliveryAssurance) { var warehouses = await _deliveryNoteRepository.GetWarehouseListAsync(deliveryAssurance.Item, deliveryAssurance.Sort, deliveryAssurance.Leveransdatum); if (SettingPage.IsInternal) { return(warehouses.Select(i => new KeyValuePair <string, string>(i.Keyvalue, i.Description)).ToList()); } var filteredWarehouses = from singleWarehouse in warehouses let warehouseName = singleWarehouse.Description where !warehouseName.Contains("z(") select singleWarehouse; return(filteredWarehouses.Select(i => new KeyValuePair <string, string>(i.Keyvalue, i.Description)).ToList()); }
private static string GetDatePickerCssClass(string action, Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance deliveryAssurance) { if (action.Equals(DeliveryAssuranceAction.Approve)) { if (SettingPage.IsInternal || (DeliveryAssuranceHelper.IsInStoragePeriod() && deliveryAssurance.OrderTyp == "206")) { return(string.Empty); } if (!DeliveryAssuranceHelper.IsInHarvestPeriod()) { return(DeliveryDateCssClass.DateRange); } if (deliveryAssurance.OrderTyp == "206") { return(DeliveryDateCssClass.DateHarvest206); } if (deliveryAssurance.Status < 45) { return(DeliveryDateCssClass.DateHarvestRange); } return(DeliveryDateCssClass.DateRange); } else if (action.Equals(DeliveryAssuranceAction.Change) && deliveryAssurance != null) { if (SettingPage.IsInternal) { return(DeliveryDateCssClass.DateHigherThanToday); } if (DeliveryAssuranceHelper.IsInStoragePeriod() && deliveryAssurance.OrderTyp == "206") { return(string.Empty); } if (!DeliveryAssuranceHelper.IsInHarvestPeriod()) { return($"{DeliveryDateCssClass.DateRange} {DeliveryDateCssClass.DateHigherThanToday}"); } if (deliveryAssurance.OrderTyp == "206") //Utsäde (_earlierAssurance.OrderTyp != 204) 204 = spannmål { return(DeliveryDateCssClass.DateHarvest206); } if (deliveryAssurance.Status < 45) //När det inte är transportplanerat { return(DeliveryDateCssClass.DateHarvestRange); } return($"{DeliveryDateCssClass.DateRange} {DeliveryDateCssClass.DateHigherThanToday}"); } else if (action.Equals(DeliveryAssuranceAction.Create) && deliveryAssurance != null && string.IsNullOrWhiteSpace(deliveryAssurance.IONumber)) { if (SettingPage.IsInternal) { return(DeliveryDateCssClass.DateHigherThanToday); } return($"{DeliveryDateCssClass.DateHarvestRange} {DeliveryDateCssClass.DateHigherThanToday}"); } return(string.Empty); }
private async Task <List <KeyValuePair <string, string> > > GetDepaAvtalDelAssAsync(Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance deliveryAssurance, string action) { var deliveryDate = deliveryAssurance.Leveransdatum; if (action.Equals(DeliveryAssuranceAction.Approve)) { deliveryDate = deliveryAssurance.RequestDate; } var depaAvtals = await _deliveryNoteRepository.GetDepaAvtalDelAssAsync(deliveryAssurance.SupplierNumber, deliveryAssurance.Item, deliveryAssurance.Sort, deliveryDate); return(depaAvtals?.Select(i => new KeyValuePair <string, string>(i.Keyvalue, i.Description)).ToList()); }
private async Task <DeliveryAssuranceOverviewViewModel> PopulateOverviewModel( DeliveryAssuranceListPage currentPage, Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance deliveryAssurance, bool isGeneratePdf = false) { var urlHelper = ServiceLocator.Current.GetInstance <UrlHelper>(); var deliveryAssuranceUrl = urlHelper.ContentUrl(currentPage.ContentLink); var lorryType = _deliveryNoteRepository.GetLorryTypes() .FirstOrDefault(x => x.Keyvalue.Equals(deliveryAssurance.Levsatt)); var deliveryAddress = _deliveryNoteRepository.GetDeliveryAdresses(deliveryAssurance.SupplierNumber) .FirstOrDefault(x => x.AddressNumber.Equals(deliveryAssurance.DeliveryAddress)); var mergedItem = _deliveryNoteRepository.GetMergedItems(deliveryAssurance.SupplierNumber, isGeneratePdf ? DateTime.Now : deliveryAssurance.Leveransdatum, !SettingPage.IsInternal)? .FirstOrDefault(i => DeliveryAssuranceHelper.GetItemSort(deliveryAssurance.Item, deliveryAssurance.Sort) == i.Keyvalue); var warehouse = (await _deliveryNoteRepository.GetWarehouseListAsync(deliveryAssurance.Item, deliveryAssurance.Sort, deliveryAssurance.Leveransdatum))? .FirstOrDefault(w => w.Keyvalue == deliveryAssurance.Warehouse); var depaAvtals = await _deliveryNoteRepository.GetDepaAvtalAsync(deliveryAssurance.SupplierNumber, deliveryAssurance.Item, deliveryAssurance.Sort); var depaAvtal = depaAvtals.FirstOrDefault(d => d.Keyvalue == deliveryAssurance.Depaavtal); var model = new DeliveryAssuranceOverviewViewModel(currentPage) { DeliveryAssurance = new DeliveryAssuranceOverview() { CustomerName = GetCustomerName(deliveryAssurance.SupplierNumber), CustomerNumber = deliveryAssurance.SupplierNumber, IONumber = deliveryAssurance.IONumber, KundorderNr = deliveryAssurance.KundorderNr, GHGvarde = deliveryAssurance.GHGvarde, KundsOrderNr = deliveryAssurance.KundsOrderNr, TermAndCondition = deliveryAssurance.Leveransvillkor, Gardshamtning = deliveryAssurance.Gardshamtning, TransportType = GetTransportType(deliveryAssurance.Gardshamtning, deliveryAssurance.Leveransvillkor), LorryTypeDesc = lorryType?.Description, Address = deliveryAddress ?? new DeliveryAddress(), DeliveryAddress = deliveryAddress != null ? $"{deliveryAddress.Street}, {deliveryAddress.City}" : string.Empty, ItemName = mergedItem?.Description ?? deliveryAssurance.ItemName, Quantity = deliveryAssurance.Quantity.ConvertToTon(), SlamDesc = await _deliveryNoteRepository.GetM3DescriptionAsync(DeliveryAssuranceRadioButtons.Slam, deliveryAssurance.SLAM), StraforkortatDesc = await _deliveryNoteRepository.GetM3DescriptionAsync(DeliveryAssuranceRadioButtons.Straforkortat, deliveryAssurance.Straforkortat), TorkatDesc = await _deliveryNoteRepository.GetM3DescriptionAsync(DeliveryAssuranceRadioButtons.Torkat, deliveryAssurance.Torkat), RedDesc = await _deliveryNoteRepository.GetM3DescriptionAsync(DeliveryAssuranceRadioButtons.Red, deliveryAssurance.RED), OtherInfo = deliveryAssurance.Ovrigt, HarvestYear = deliveryAssurance.Skordear, WarehouseDesc = warehouse?.Description, DepaAvtal = !string.IsNullOrWhiteSpace(depaAvtal?.Keyvalue) ? depaAvtal.Description : string.Empty, DeliveryDate = DeliveryAssuranceHelper.GetValidDate(deliveryAssurance.Leveransdatum), DeliveryTypeDesc = depaAvtals.Length > 1 ? DeliveryTypes.Depa : DeliveryTypes.Spon, Status = deliveryAssurance.Status }, ChangeUrl = DeliveryAssuranceHelper.BuildQueryUrl($"{deliveryAssuranceUrl}Change", new Dictionary <string, string>() { { "a", deliveryAssurance.IONumber }, { "l", deliveryAssurance.LineNumber.ToString() } }) }; return(model); }
private async Task <DeliveryAssuranceViewModel> CreateDeliveryAssuranceViewModel(DeliveryAssuranceListPage currentPage, Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance deliveryAssurance, string action) { var depaAvtals = await GetDepaAvtalDelAssAsync(deliveryAssurance, action); var sessionKey = $"{nameof(DeliveryAssuranceDetail)}-{action}-{deliveryAssurance.IONumber}"; var deliveryAssuranceDetail = Session[sessionKey] as DeliveryAssuranceDetail; var savedDeliveryAssurance = deliveryAssuranceDetail != null ? new Core.DataModels.DeliveryAssuranceDtos.DeliveryAssurance() { SupplierNumber = deliveryAssuranceDetail.CustomerNumber, IONumber = deliveryAssuranceDetail.IONumber, Item = deliveryAssuranceDetail.Item, Sort = deliveryAssuranceDetail.Sort, Leveransdatum = Convert.ToDateTime(deliveryAssuranceDetail.DeliveryDate), RequestDate = Convert.ToDateTime(deliveryAssuranceDetail.DeliveryDate), OrderTyp = deliveryAssuranceDetail.OrderType, Levsatt = deliveryAssuranceDetail.LorryType, Gardshamtning = deliveryAssuranceDetail.Gardshamtning == "1", Status = deliveryAssuranceDetail.Status }: deliveryAssurance; var model = new DeliveryAssuranceViewModel(currentPage) { DeliveryAssurance = deliveryAssuranceDetail ?? new DeliveryAssuranceDetail() { CustomerName = GetCustomerName(deliveryAssurance.SupplierNumber), CustomerNumber = deliveryAssurance.SupplierNumber, IONumber = deliveryAssurance.IONumber, LineNumber = deliveryAssurance.LineNumber, TermAndCondition = deliveryAssurance.Leveransvillkor, Gardshamtning = deliveryAssurance.Gardshamtning ? "1" : "0", LorryType = deliveryAssurance.Levsatt, DeliveryAddress = deliveryAssurance.DeliveryAddress, ItemName = deliveryAssurance.ItemName, Item = deliveryAssurance.Item, Sort = deliveryAssurance.Sort, Quantity = deliveryAssurance.Quantity.ConvertToTon(), Slam = deliveryAssurance.SLAM, Straforkortat = deliveryAssurance.Straforkortat, Torkat = deliveryAssurance.Torkat, Red = deliveryAssurance.RED, OtherInfo = !string.IsNullOrWhiteSpace(deliveryAssurance.Ovrigt) ? deliveryAssurance.Ovrigt.ReplaceBrToReturn() : string.Empty, HarvestYear = deliveryAssurance.Skordear, Warehouse = deliveryAssurance.Warehouse != null && deliveryAssurance.Warehouse.Equals(DefaultWarehouse) ? string.Empty : deliveryAssurance.Warehouse, DepaAvtal = deliveryAssurance.Depaavtal, OrderType = deliveryAssurance.OrderTyp, DeliveryType = depaAvtals.Count > 1 ? nameof(DeliveryTypes.Depa) : nameof(DeliveryTypes.Spon), RequestDate = $"{deliveryAssurance.RequestDate:yyyy-MM-dd}", DeliveryDate = action.Equals(DeliveryAssuranceAction.Approve) ? $"{deliveryAssurance.RequestDate:yyyy-MM-dd}" : $"{deliveryAssurance.Leveransdatum:yyyy-MM-dd}", Article = !string.IsNullOrWhiteSpace(deliveryAssurance.Item) && !string.IsNullOrWhiteSpace(deliveryAssurance.Sort) ? $"{deliveryAssurance.Item};-;{deliveryAssurance.Sort}" : string.Empty, Action = action, CurrentUrl = Request?.Url?.PathAndQuery ?? string.Empty, Status = deliveryAssurance.Status }, IsInternal = SettingPage.IsInternal, IsNew = action.Equals(DeliveryAssuranceAction.Create), LorryTypes = GetLorryTypes(), DeliveryAddresses = GetDeliveryAddresses(savedDeliveryAssurance.SupplierNumber), WarehouseList = !string.IsNullOrWhiteSpace(savedDeliveryAssurance.Item) && !string.IsNullOrWhiteSpace(savedDeliveryAssurance.Sort) ? await GetWarehouseList(savedDeliveryAssurance) : new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("", "-- Välj mottagningsplats--") }, //WarehouseList = await GetWarehouseList(savedDeliveryAssurance), DepaAvtals = depaAvtals, DeliveryValues = GetDeliveryValues(), HarvestYears = await GetYears(), M3RedValues = await _deliveryNoteRepository.GetM3ValuesAsync(DeliveryAssuranceRadioButtons.Red), M3SlamValues = await _deliveryNoteRepository.GetM3ValuesAsync(DeliveryAssuranceRadioButtons.Slam), M3StraforkValues = await _deliveryNoteRepository.GetM3ValuesAsync(DeliveryAssuranceRadioButtons.Straforkortat), M3TorkatValues = await _deliveryNoteRepository.GetM3ValuesAsync(DeliveryAssuranceRadioButtons.Torkat), Articles = GetMergedItems(savedDeliveryAssurance.SupplierNumber, DateTime.Now) }; if (!string.IsNullOrWhiteSpace(model.DeliveryAssurance.IONumber)) //for create from existed delivery, update, approve { var enalbedDeliveryDate = (SettingPage.IsInternal || model.DeliveryAssurance.OrderType != "206" || !DeliveryAssuranceHelper.IsInStoragePeriod()); model.EnabledLorryType = model.DeliveryAssurance.OrderType != "206" && model.DeliveryAssurance.LorryType != "630"; model.EnabledWarehouse = deliveryAssuranceDetail != null ? deliveryAssuranceDetail.EnabledWarehouse == "1" : ((SettingPage.IsInternal && model.DeliveryAssurance.OrderType != "206") || (!SettingPage.IsInternal && !savedDeliveryAssurance.Gardshamtning && DeliveryAssuranceHelper.IsInHarvestPeriod())); model.EnalbedDeliveryDate = enalbedDeliveryDate; model.DeliveryDateCssClass = enalbedDeliveryDate ? GetDatePickerCssClass(action, savedDeliveryAssurance) : string.Empty; } else //for create new one { model.EnabledLorryType = model.EnabledWarehouse = model.EnalbedDeliveryDate = true; model.DeliveryDateCssClass = GetDatePickerCssClass(action, savedDeliveryAssurance); } Session.Remove(sessionKey); return(model); }