public void SetUp()
        {
            this.financialYear = "2018/19";
            this.account       = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 1, "one"))
            {
                DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1"
            };
            var band = new ProposedTurnoverBand
            {
                SalesAccount              = this.account,
                FinancialYear             = this.financialYear,
                SalesValueCurrency        = 1,
                CalculatedTurnoverBandUri = "/tb/2",
                ProposedTurnoverBandUri   = "/tb/2",
            };

            band.ExcludeFromUpdate();
            this.proposedTurnoverBands = new List <ProposedTurnoverBand>
            {
                band
            };
            this.ProposedTurnoverBandRepository.GetAllForFinancialYear(this.financialYear)
            .Returns(this.proposedTurnoverBands);
            this.results = this.Sut.ApplyTurnoverBandProposal(this.financialYear, "/employees/100").ProposedTurnoverBands;
        }
Exemple #2
0
 public void SetUp()
 {
     this.proposedTurnoverBand = new ProposedTurnoverBand {
         Id = 808
     };
     this.ProposedTurnoverBandRepository.GetById(808).Returns(this.proposedTurnoverBand);
     this.Result = this.Sut.GetProposedTurnoverBand(808);
 }
Exemple #3
0
 public void SetUp()
 {
     this.proposedTurnoverBand =
         new ProposedTurnoverBand
     {
         Id = 808,
         CalculatedTurnoverBandUri = "/tb/1",
         ProposedTurnoverBandUri   = "/tb/1"
     };
     this.ProposedTurnoverBandRepository.GetById(808).Returns(this.proposedTurnoverBand);
     this.Result = this.Sut.OverrideTurnoverBand(808, "/tb/123");
 }
Exemple #4
0
 public void SetUpContext()
 {
     this.Sut = new ProposedTurnoverBand
     {
         CalculatedTurnoverBandUri = "/tb/1",
         ProposedTurnoverBandUri   = "/tb/1",
         FinancialYear             = "2018/19",
         Id                 = 1,
         SalesAccount       = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 1, "one")),
         SalesValueCurrency = 1m,
         SalesValueBase     = 1m
     };
 }
Exemple #5
0
 public void SetUp()
 {
     this.proposedTurnoverBand = new ProposedTurnoverBand
     {
         SalesAccount = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 1, "one")),
         CalculatedTurnoverBandUri = "/tb/1"
     };
     this.TurnoverBandService.GetProposedTurnoverBand(88)
     .Returns(new SuccessResult <ProposedTurnoverBand>(this.proposedTurnoverBand));
     this.Response = this.Browser.Get(
         "/sales/accounts/turnover-band-proposals/details/88",
         with =>
     {
         with.Header("Accept", "application/json");
     }).Result;
 }
        private void AddOrUpdateProposedTurnoverBand(
            IList <ProposedTurnoverBand> proposedTurnoverBands,
            SalesAccount salesAccount,
            string turnoverBandUri,
            SalesDataDetail salesForAccount,
            string financialYear)
        {
            if (string.IsNullOrEmpty(turnoverBandUri) && string.IsNullOrEmpty(salesAccount.TurnoverBandUri))
            {
                return;
            }

            var proposedTurnoverBand = proposedTurnoverBands.FirstOrDefault(t => t.SalesAccount.Id == salesAccount.Id);

            if (proposedTurnoverBand == null)
            {
                proposedTurnoverBand = new ProposedTurnoverBand
                {
                    SalesAccount              = salesAccount,
                    FinancialYear             = financialYear,
                    CalculatedTurnoverBandUri = turnoverBandUri,
                    ProposedTurnoverBandUri   = turnoverBandUri,
                    AppliedToAccount          = false,
                    SalesValueBase            = salesForAccount.BaseValue,
                    CurrencyCode              = salesForAccount.CurrencyCode,
                    SalesValueCurrency        = salesForAccount.CurrencyValue
                };
                proposedTurnoverBands.Add(proposedTurnoverBand);
                this.proposedTurnoverBandRepository.Add(proposedTurnoverBand);
            }
            else
            {
                if (!proposedTurnoverBand.AppliedToAccount)
                {
                    proposedTurnoverBand.CalculatedTurnoverBandUri = turnoverBandUri;
                    proposedTurnoverBand.ProposedTurnoverBandUri   = turnoverBandUri;
                    proposedTurnoverBand.SalesValueBase            = salesForAccount.BaseValue;
                    proposedTurnoverBand.CurrencyCode       = salesForAccount.CurrencyCode ?? proposedTurnoverBand.CurrencyCode;
                    proposedTurnoverBand.SalesValueCurrency = salesForAccount.CurrencyValue;
                    proposedTurnoverBand.IncludeProposalInUpdate();
                }
            }
        }
Exemple #7
0
 public void SetUp()
 {
     this.requestResource = new ProposedTurnoverBandUpdateResource {
         TurnoverBandUri = "/tb/12"
     };
     this.proposedTurnoverBand = new ProposedTurnoverBand
     {
         SalesAccount            = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 1, "one")),
         ProposedTurnoverBandUri = "/tb/12"
     };
     this.TurnoverBandService.ExcludeFromTurnoverBandProposal(88)
     .Returns(new SuccessResult <ProposedTurnoverBand>(this.proposedTurnoverBand));
     this.Response = this.Browser.Delete(
         "/sales/accounts/turnover-band-proposals/details/88",
         with =>
     {
         with.Header("Accept", "application/json");
         with.Header("Content-Type", "application/json");
         with.JsonBody(this.requestResource);
     }).Result;
 }
Exemple #8
0
 public static ProposedTurnoverBandModel ToModel(
     this ProposedTurnoverBand domain,
     TurnoverBand currentTurnoverBand,
     TurnoverBand calculatedTurnoverBand,
     TurnoverBand proposedTurnoverBand)
 {
     return(new ProposedTurnoverBandModel
     {
         AppliedToAccount = domain.AppliedToAccount,
         IncludeInUpdate = domain.IncludeInUpdate,
         FinancialYear = domain.FinancialYear,
         SalesValueCurrency = domain.SalesValueCurrency,
         CurrencyCode = domain.CurrencyCode,
         SalesValueBase = domain.SalesValueBase,
         SalesAccountId = domain.SalesAccount.Id,
         SalesAccountName = domain.SalesAccount.Name,
         CurrentTurnoverBandName = currentTurnoverBand?.Name,
         CalculatedTurnoverBandName = calculatedTurnoverBand?.Name,
         ProposedTurnoverBandName = proposedTurnoverBand?.Name
     });
 }
Exemple #9
0
        public void SetUp()
        {
            this.financialYear = "2018/19";
            this.account1      = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 1, "one"))
            {
                DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1"
            };
            this.account2 = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 2, "two"))
            {
                DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1"
            };
            this.account3 = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 3, "three"))
            {
                DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1"
            };
            this.account4 = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 4, "four"))
            {
                DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1"
            };
            this.account5 = new SalesAccount(new SalesAccountCreateActivity("/employees/100", 5, "closed"))
            {
                DiscountSchemeUri = "/ds/1", TurnoverBandUri = "/tb/1"
            };
            this.account5.CloseAccount(new SalesAccountCloseActivity("/employees/100", 1.May(2018)));

            this.proposedTurnoverBand5 = new ProposedTurnoverBand
            {
                SalesAccount       = this.account5,
                FinancialYear      = this.financialYear,
                SalesValueCurrency = 1
            };
            var proposedTurnoverBands = new List <ProposedTurnoverBand>
            {
                new ProposedTurnoverBand {
                    SalesAccount = this.account1, FinancialYear = this.financialYear, SalesValueCurrency = 1
                },
                new ProposedTurnoverBand {
                    SalesAccount = this.account2, FinancialYear = this.financialYear, SalesValueCurrency = 1
                },
                new ProposedTurnoverBand {
                    SalesAccount = this.account3, FinancialYear = this.financialYear, SalesValueCurrency = 1
                },
                this.proposedTurnoverBand5
            };

            this.ProposedTurnoverBandRepository.GetAllForFinancialYear(this.financialYear)
            .Returns(proposedTurnoverBands);
            var discountScheme1 = new DiscountScheme {
                DiscountSchemeUri = "/ds/1", TurnoverBandSetUri = "/tbs/1"
            };
            var discountScheme2 = new DiscountScheme {
                DiscountSchemeUri = "/ds/2"
            };

            this.DiscountingService.GetDiscountScheme("/ds/1").Returns(discountScheme1);
            this.DiscountingService.GetDiscountScheme("/ds/2").Returns(discountScheme2);
            this.DiscountingService.GetTurnoverBandForTurnoverValue("/tbs/1", "GBP", 111).Returns("/tb/1");
            this.DiscountingService.GetTurnoverBandForTurnoverValue("/tbs/1", "GBP", 222).Returns("/tb/1");
            this.DiscountingService.GetTurnoverBandForTurnoverValue("/tbs/1", "GBP", 333).Returns("/tb/2");
            this.DiscountingService.GetTurnoverBandForTurnoverValue("/tbs/1", "GBP", 444).Returns("/tb/2");
            this.SalesReportingService.GetSalesByAccount(this.financialYear)
            .Returns(new List <SalesDataDetail>
            {
                new SalesDataDetail {
                    Id = "1", CurrencyValue = 111, CurrencyCode = "GBP", BaseValue = 111
                },
                new SalesDataDetail {
                    Id = "2", CurrencyValue = 222, CurrencyCode = "GBP", BaseValue = 222
                },
                new SalesDataDetail {
                    Id = "4", CurrencyValue = 444, CurrencyCode = "GBP", BaseValue = 444
                },
                new SalesDataDetail {
                    Id = "5", CurrencyValue = 111, CurrencyCode = "GBP", BaseValue = 111
                }
            });
            this.SalesAccountRepository.GetAllOpenAccounts().Returns(new[] { this.account1, this.account2, this.account3, this.account4 });
            this.results = this.Sut.CalculateProposedTurnoverBands(this.financialYear).ProposedTurnoverBands;
        }
 public void Remove(ProposedTurnoverBand proposedTurnoverBand)
 {
     this.serviceDbContext.ProposedTurnoverBands.Remove(proposedTurnoverBand);
 }
 public void Add(ProposedTurnoverBand proposedTurnoverBand)
 {
     this.serviceDbContext.ProposedTurnoverBands.Add(proposedTurnoverBand);
 }