private async Task <AgreementResponse> SaveSpotAndForwardAgreement(PurchasingAgreementFormModel formModel, string customerNo) { var purchasePeriod = GenerateFromDatePeriod(formModel.AgreementPeriod); var spotAgreement = new SpotAndForwardAgreement { PriceArea = formModel.PriceArea, HarvestYear = purchasePeriod.HarvestYear, ValidTo = purchasePeriod.ValidTo, ValidFrom = purchasePeriod.ValidFrom, ModeOfDelivery = formModel.DeliveryMode, Quantity = formModel.CommitQuantity, ProductItemId = formModel.ProductItemId, //AgreementType = formModel.AgreementTypeCode, PriceType = purchasePeriod.PriceType, GrainType = formModel.GrainType, WatchDate = formModel.PriceWatchEndDate, Price = formModel.UpperPrice, //From Orri - Price as WatchPriceMaximum WatchPriceMinimum = formModel.LowerPrice, WatchAction = formModel.TargetAction, CustomerId = customerNo, }; return(await _agreementRepository.SaveSpotAndForwardAgreementAsync(spotAgreement)); }
public async Task <ActionResult> SaveAgreement(PurchasingAgreementPage currentPage, PurchasingAgreementFormModel formModel) { if (formModel == null || (formModel.AgreementId == 0 && currentPage.AgreementType == AgreementType.PrissakringDepaavtal)) { return(RedirectToAction("Index")); } var activeCustomer = UserManager.GetActiveCustomer(HttpContext); if (SiteUser == null || activeCustomer == null) { return(HttpNotFound()); } AgreementResponse savedAgreement = null; if (currentPage.AgreementType == AgreementType.PrissakringDepaavtal) { savedAgreement = await SavePriceProtectedStorageAgreement(formModel, activeCustomer.CustomerName); } else if (currentPage.AgreementType == AgreementType.Poolavtal) { savedAgreement = await SavePoolAgreement(formModel, activeCustomer); } else if (currentPage.AgreementType == AgreementType.Depaavtal) { savedAgreement = await SaveDepaAgreement(formModel, activeCustomer); } else { savedAgreement = await SaveSpotAndForwardAgreement(formModel, activeCustomer.CustomerNo); } if (savedAgreement?.Id == null) { TempData["Saved"] = false; } else { TempData["Saved"] = true; } return(RedirectToAction("Index")); }
private async Task <AgreementResponse> SavePriceProtectedStorageAgreement(PurchasingAgreementFormModel formModel, string customerName) { var purchasePeriod = GenerateFromDatePeriod(formModel.AgreementPeriod); var agreement = new PriceProtectStorageAgreement { CustomerUserName = customerName, WatchPrice = formModel.UpperPrice, WatchPriceMinimum = formModel.LowerPrice, WatchDate = formModel.PriceWatchEndDate, AgreementId = formModel.AgreementId.ToString(), WatchAction = formModel.TargetAction, PriceType = purchasePeriod.PriceType, ValidTo = purchasePeriod.ValidTo, ValidFrom = purchasePeriod.ValidFrom, }; return(await _agreementRepository.SavePriceProtectedStorageAgreementAsync(agreement)); }
private async Task <AgreementResponse> SaveDepaAgreement(PurchasingAgreementFormModel formModel, CustomerBasicInfo customer) { var purchasePeriod = GenerateFromDatePeriod(formModel.AgreementPeriod); var storageAgreement = new StorageAgreement() { CustomerId = customer.CustomerNo, GrainType = formModel.GrainType, HarvestYear = purchasePeriod.HarvestYear, ModeOfDelivery = formModel.DeliveryMode, PriceArea = formModel.PriceArea, ProductItemId = formModel.ProductItemId, Quantity = formModel.CommitQuantity, ValidFrom = purchasePeriod.ValidFrom, ValidTo = purchasePeriod.ValidTo, }; return(await _agreementRepository.SaveStorageAgreementAsync(storageAgreement)); }