Example #1
0
        private void txtNumberOfPayments_Leave(object sender, EventArgs e)
        {
            int numberOfPayments = 0;

            if (!int.TryParse(txtNumberOfPayments.Text, out numberOfPayments) || numberOfPayments <= 0)
            {
                MessageBox.Show("Invalid number of payments.");
                HighlightControl(txtNumberOfPayments);
                RevertToPreviousNumberOfPayments();
                txtNumberOfPayments.Focus();
                txtNumberOfPayments.SelectAll();
                return;
            }

            if (LayawayPaymentCalculator.NumberOfPayments == numberOfPayments)
            {
                return;
            }

            int maxNumberOfPayments = new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).GetMaxLayawayNumberOfPayments(CDS.CurrentSiteId);

            if (numberOfPayments > maxNumberOfPayments)
            {
                MessageBox.Show(string.Format("Maximum number of payments is {0}", maxNumberOfPayments));
                HighlightControl(txtNumberOfPayments);
                RevertToPreviousNumberOfPayments();
                txtNumberOfPayments.Focus();
                txtNumberOfPayments.SelectAll();
                return;
            }

            if (!LayawayPaymentCalculator.CanDistributeIfNumberOfPaymentsSetTo(numberOfPayments))
            {
                MessageBox.Show(string.Format("This is an invalid value because the layaway amount cannot distribute accross {0} payments.", numberOfPayments));
                HighlightControl(txtNumberOfPayments);
                RevertToPreviousNumberOfPayments();
                txtNumberOfPayments.Focus();
                txtNumberOfPayments.SelectAll();
                return;
            }

            LayawayPaymentCalculator.NumberOfPayments = numberOfPayments;
            UpdateCalculatedValues();
        }