Ejemplo n.º 1
0
        /// <summary>
        /// Generates a rebate for every sale in our working sale database.
        /// </summary>
        public void GenerateRebateChecks()
        {
            State = RebateModelState.RebateChecksGenerated;

            foreach (Sale s in _salesDatabase.AllSales())
            {
                if (s.RebateState == RebateState.Rebate)
                {
                    s.RebateState = RebateState.Generated;
                    _rebates.Add(s);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Update's the output view according to the current state.
        /// </summary>
        public void update()
        {
            RebateModelState state = _rebateModel.GetCurrentState();

            switch (state)
            {
            case RebateModelState.Initial:
                uxRebateList.Items.Clear();
                uxRebateCheckList.Items.Clear();
                break;

            case RebateModelState.RebateGenerated:
                List <Sale> rebates = _rebateModel.GetUngeneratedRebates();

                uxRebateList.Items.Clear();
                foreach (Sale sale in rebates)
                {
                    uxRebateList.Items.Add(new ListViewItem(new[] { sale.ID.ToString(), String.Format("{0:c}", sale.Total()), String.Format("{0:c}", sale.RebateAmount) }));
                }
                break;

            case RebateModelState.RebateChecksGenerated:
                MessageBox.Show("Rebate checks generated and sent", "Success");

                uxRebateList.Items.Clear();
                uxRebateCheckList.Items.Clear();

                foreach (Sale sale in _rebateModel.GetGeneratedRebates())
                {
                    uxRebateCheckList.Items.Add(new ListViewItem(new[] { sale.ID.ToString(), String.Format("{0:c}", sale.Total()), String.Format("{0:c}", sale.RebateAmount) }));
                }
                break;

            case RebateModelState.RebateEnterError:
                MessageBox.Show(_rebateModel.Error);

                _rebateModel.State = RebateModelState.Initial;
                update();
                break;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Generates a rebate for the current sale.
        /// </summary>
        /// <param name="salesID">The salesID for the current sale</param>
        /// <param name="date">The entered date.</param>
        public void GenerateRebate(int salesID, DateTime date)
        {
            _currentSale = _salesDatabase.GetSale(salesID);
            DateTime endJuly = new DateTime(2018, 07, 30);

            if (DateTime.Compare(date, endJuly) < 0)
            {
                Error = "Rebate refunds checks are not generated till the end of July!";
                State = RebateModelState.RebateEnterError;
                return;
            }
            if (_currentSale.RebateState == RebateState.Generated)
            {
                Error = "Rebate has already been generated.";
                State = RebateModelState.RebateEnterError;
                return;
            }

            _currentSale.RebateState = RebateState.Rebate;
            State = RebateModelState.RebateGenerated;
            _currentSale.RebateAmount = _currentSale.Total() * 0.11;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Consturcts the RebateModel
 /// </summary>
 /// <param name="sd">The current in use SalesDatabase</param>
 public RebateModel(SalesDatabase sd)
 {
     _salesDatabase = sd;
     State          = RebateModelState.Initial;
     _rebates       = new List <Sale>();
 }