示例#1
0
        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));
        }
示例#2
0
        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"));
        }
示例#3
0
        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));
        }
示例#4
0
        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));
        }