Пример #1
0
    protected void ButtonSaveChanges_Click(object sender, EventArgs e)
    {
        // If the values in the controls are not valid, abort:

        if (!Page.IsValid)
        {
            return;
        }

        // Move on and parse values.

        double           newAmount      = Double.Parse(this.TextAmount.Text, new CultureInfo("sv-SE"));
        FinancialAccount newAccount     = this.DropAccounts.SelectedFinancialAccount;
        string           newDescription = this.TextDescription.Text;
        DateTime         newDate        = (DateTime)this.DateExpense.SelectedDate;

        if (newDescription != _expenseClaim.Description)
        {
            _expenseClaim.Description = newDescription;
            // Nothing invalidated because description updated

            // Should it?
        }

        if (newAccount.Identity != _expenseClaim.BudgetId)
        {
            if (_expenseClaim.Attested)
            {
                _expenseClaim.Attested = false;
            }

            if (_expenseClaim.BudgetYear == 0)
            {
                _expenseClaim.BudgetYear = _expenseClaim.CreatedDateTime.Year;
            }

            _expenseClaim.SetBudget(newAccount, _currentUser);
        }

        if (newAmount != (double)_expenseClaim.Amount)
        {
            if (_expenseClaim.Attested)
            {
                if (newAmount > _expenseClaim.PreApprovedAmount && newAmount > (double)_expenseClaim.Amount)
                {
                    _expenseClaim.Attested = false;
                }
            }

            _expenseClaim.SetAmountCents((Int64)newAmount * 100, _currentUser);
        }

        if (newDate != _expenseClaim.ExpenseDate)
        {
            if (_expenseClaim.Validated)
            {
                _expenseClaim.Validated = false;
            }

            _expenseClaim.ExpenseDate = newDate;
        }

        // The financial transaction is now updated in ExpenseClaim.

        // Close and rebind

        ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);
    }