private async Task <AgreementResponse> SaveSpotAndForwardAgreement(PriceHedgeFormModel formModel, Customer customer) { var spotAgreement = new SpotAndForwardAgreement { PriceArea = formModel.PriceArea, HarvestYear = formModel.HarvestYear, ValidTo = formModel.ValidTo, ValidFrom = formModel.ValidFrom, ModeOfDelivery = formModel.DeliveryMode, Quantity = formModel.CommitQuantity, ProductItemId = formModel.ProductItemId, //AgreementType = formModel.AgreementTypeCode, PriceType = formModel.PriceType, GrainType = formModel.GrainType, WatchDate = formModel.PriceWatchEndDate, Price = formModel.UpperPrice, //From Orri - Price as WatchPriceMaximum WatchPriceMinimum = formModel.LowerPrice, WatchAction = formModel.TargetAction, CustomerId = customer.CustomerId, //CustomerName = customer.CustomerName }; return(await _agreementRepository.SaveSpotAndForwardAgreementAsync(spotAgreement)); }
public async Task <ActionResult> Index(PriceHedgePage currentPage, string pArea, string period, string priskey, string grain, string pItemId, string pItem, string agreement, string pid, string agreementId = "") { var supplier = UserManager.GetActiveCustomer(HttpContext); if (SiteUser == null || supplier == null) { ViewData["NotLoggedIn"] = true; return(View("~/Views/AppPages/PriceHedgePage/PriceHedge.cshtml", new PriceHedgeViewModel(currentPage))); } if (string.IsNullOrEmpty(pArea) || string.IsNullOrEmpty(period) || string.IsNullOrEmpty(priskey) || string.IsNullOrEmpty(pid)) { ViewData["IncorrectParams"] = true; return(View("~/Views/AppPages/PriceHedgePage/PriceHedge.cshtml", new PriceHedgeViewModel(currentPage))); } agreement = string.IsNullOrWhiteSpace(agreement) ? AgreementType.SportAndForwardAvtal : agreement; var purchaseDateObject = GenerateFromDatePeriod(period); int agrId; int.TryParse(agreementId, out agrId); var model = new PriceHedgeViewModel(currentPage) { PriceLow = SettingPage.PurchasePriceLow, CommitQuantityMin = 12, //Need to get from service instead of TimeWithClock = $"{DateTime.Now:dd MMM yyyy} klockan {DateTime.Now:HH:mm}", SelectedPriceArea = (await _agreementRepository.GetSelectedPriceArea(supplier.CustomerNo)), AgreementTypeName = GetAgreementTypeName(priskey, agreement), AgreementHeading = GetAgreementHeading(agreement), ProductItemName = pItem, DeliveryPeriod = $"{purchaseDateObject.ValidFrom:yyyy-MM-dd} - {purchaseDateObject.ValidTo:yyyy-MM-dd}", RegisterDate = $"{DateTime.Now:yyyy-MM-dd}", Customer = (await _agreementRepository.GetCustomerAsync(supplier.CustomerNo)) ?? new Customer(), PurchaseAgreementUrl = string.IsNullOrEmpty(pid) ? "#" : GetPurchaseAgreementPageUrl(pid), PriceHedgeForm = new PriceHedgeFormModel { PriceArea = int.Parse(pArea), ProductItemId = pItemId, GrainType = grain, PriceType = priskey, PriceWatchEndDate = DateTime.Now, HarvestYear = purchaseDateObject.HarvestYear, ValidTo = purchaseDateObject.ValidTo, ValidFrom = purchaseDateObject.ValidFrom, AgreementType = string.IsNullOrEmpty(agreement) ? AgreementType.SportAndForwardAvtal : agreement, AgreementId = agrId }, User = SiteUser, }; return(View("~/Views/AppPages/PriceHedgePage/PriceHedge.cshtml", model)); }
private async Task <AgreementResponse> SavePriceProtectedStorageAgreement(PriceHedgeFormModel formModel, Customer customer) { var storageAgreement = new PriceProtectStorageAgreement() { CustomerUserName = customer.CustomerName, WatchDate = formModel.PriceWatchEndDate, WatchPrice = formModel.UpperPrice, WatchPriceMinimum = formModel.LowerPrice, WatchAction = formModel.TargetAction, AgreementId = formModel.AgreementId.ToString() }; //TODO: waiting Olle to update the service, saving method should return AgreementResponse obj ==>done! return(await _agreementRepository.SavePriceProtectedStorageAgreementAsync(storageAgreement)); }
public async Task <ActionResult> Index(PriceHedgePage currentPage, PriceHedgeFormModel formModel, string purchaseAgreementUrl) { var supplier = UserManager.GetActiveCustomer(HttpContext); if (SiteUser == null || supplier == null) { return(HttpNotFound()); } var customer = await _agreementRepository.GetCustomerAsync(supplier.CustomerNo); var model = new PriceHedgeViewModel(currentPage) { Customer = customer, PurchaseAgreementUrl = purchaseAgreementUrl, PriceHedgeForm = formModel, ConfiramtionText = GetConfirmationText(currentPage, formModel.AgreementType) }; AgreementResponse result = null; if (formModel.AgreementType.Equals(AgreementType.SportAndForwardAvtal)) { result = await SaveSpotAndForwardAgreement(formModel, customer); } else if (formModel.AgreementType.Equals(AgreementType.Depaavtal)) { result = await SaveStorageAgreementAgreement(formModel, customer); } else if (formModel.AgreementType.Equals(AgreementType.Poolavtal)) { result = await SavePoolAgreement(formModel, customer); } else if (formModel.AgreementType.Equals(AgreementType.PrissakringDepaavtal)) { result = await SavePriceProtectedStorageAgreement(formModel, customer); } if (result?.Id != null) { return(View("~/Views/AppPages/PriceHedgePage/PriceWatchStep3.cshtml", model)); } TempData["Error"] = true; return(View("~/Views/AppPages/PriceHedgePage/PriceWatchStep3.cshtml", model)); }
private async Task <AgreementResponse> SaveStorageAgreementAgreement(PriceHedgeFormModel formModel, Customer customer) { var storageAgreement = new StorageAgreement() { //AgreementId = CustomerId = customer.CustomerId, GrainType = formModel.GrainType, HarvestYear = formModel.HarvestYear, ModeOfDelivery = formModel.DeliveryMode, PriceArea = formModel.PriceArea, ProductItemId = formModel.ProductItemId, Quantity = formModel.CommitQuantity, ValidFrom = formModel.ValidFrom, ValidTo = formModel.ValidTo, }; return(await _agreementRepository.SaveStorageAgreementAsync(storageAgreement)); }
private async Task <AgreementResponse> SavePoolAgreement(PriceHedgeFormModel formModel, Customer customer) { var spotAgreement = new PoolAgreement() { PriceArea = formModel.PriceArea, PriceType = formModel.PriceType, HarvestYear = formModel.HarvestYear, ValidTo = formModel.ValidTo, ValidFrom = formModel.ValidFrom, ModeOfDelivery = formModel.DeliveryMode, Quantity = formModel.CommitQuantity, ProductItemId = formModel.ProductItemId, GrainType = formModel.GrainType, CustomerId = customer.CustomerId, //CustomerName = customer.CustomerName }; return(await _agreementRepository.SavePoolAgreement(spotAgreement)); }