Example #1
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        var payment = AccountManager.GetPaymentMethod(Convert.ToInt32(cboPaymentMethod.SelectedValue));

        if (payment != null)
        {
            if (String.IsNullOrEmpty(txtMembershipNUmber.Text) || String.IsNullOrEmpty(txtOperationNumber.Text))
            {
                if (payment.PaymentMethodId == PaymentMethod.MasterCard || payment.PaymentMethodId == PaymentMethod.Visa)
                {
                    ShowError("O numero de afiliação e código de operação são obrigatórios!");
                    return;
                }
            }
        }

        var financierOperation = new FinancierOperation();

        if (IsLoaded)
        {
            financierOperation.CopyPropertiesFrom(OriginalFinancierOperation);

            if (OriginalFinancierOperation.PaymentMethodId != Convert.ToInt32(cboPaymentMethod.SelectedValue) && VerifyUniquePaymentMethod())
            {
                ShowError("Já existe uma operação financeira com o método de pagamento fornecido!");
                return;
            }
        }

        financierOperation.CompanyId        = Company.CompanyId;
        financierOperation.AdminTax         = Convert.ToDecimal(ucCurrFieldAdminTax.CurrencyValue);
        financierOperation.AdminTaxUnit     = Convert.ToDecimal(ucCurrFieldAdminTaxUnit.CurrencyValue);
        financierOperation.Discount         = Convert.ToDecimal(ucCurrFieldDiscount.CurrencyValue);
        financierOperation.PaymentMethodId  = Convert.ToInt32(cboPaymentMethod.SelectedValue);
        financierOperation.MembershipNumber = txtMembershipNUmber.Text;
        financierOperation.OperationNumber  = txtOperationNumber.Text;
        financierOperation.AccountId        = Convert.ToInt32(cboAccount.SelectedValue);


        if (IsLoaded)
        {
            AccountManager.UpdateFinancierOperation(OriginalFinancierOperation, financierOperation);
        }
        else
        {
            if (VerifyUniquePaymentMethod())
            {
                ShowError("Já existe uma operação financeira com o método de pagamento fornecido!");
                return;
            }

            AccountManager.InsertFinancierOperation(financierOperation);
            Page.ViewState["FinancierOperationId"] = financierOperation.FinancierOperationId;
            pnlFinancierCondition.Visible          = true;
            return;
        }
        //if (financierOperation.PaymentProvider != null)
        //  financierOperation.PaymentProvider.SaveConfiguration(financierOperation.MembershipNumber, financierOperation.OperationNumber);

        Response.Redirect("~/InfoControl/Accounting/FinancierOperations.aspx");
    }
Example #2
0
    protected void btnAddParcel_Click(object sender, ImageClickEventArgs e)
    {
        btnAddParcel.Focus();

        DateTime dueDate = DateTime.Now.Sql2005MinValue();

        PaymentMethod paymentMethod = new AccountManager(this).GetPaymentMethod(Convert.ToInt32(cboPaymentMethod.SelectedValue));

        decimal amount = Decimal.Zero;

        if (ucAmount.CurrencyValue.HasValue)
        {
            amount = ucAmount.CurrencyValue.Value;
        }

        int qtdParcels = ucCurrFieldQtdParcel.IntValue;

        if (ucDtDueDate.DateTime.HasValue)
        {
            dueDate = ucDtDueDate.DateTime.Value;
        }

        //
        // Clear fields for infinite loop in get_DataSource
        //
        ucDtDueDate.DateTime               = null;
        ucAmount.CurrencyValue             = null;
        ucCurrFieldQtdParcel.CurrencyValue = null;

        //pManager = new ParcelsManager(this);
        Int32?accountId = null;

        if (!String.IsNullOrEmpty(cboAccount.SelectedValue))
        {
            accountId = Convert.ToInt32(cboAccount.SelectedValue);
        }

        Parcel             parcel;
        FinancierOperation financierOperation = null;

        if (paymentMethod.PaymentMethodId == PaymentMethod.Boleto)
        {
            financierOperation = AccountManager.GetFinancierOperationBoleto(Page.Company.CompanyId);
        }

        //verify the value of each parcel
        for (int idx = 1; idx <= qtdParcels; idx++)
        {
            parcel                 = new Parcel();
            parcel.Amount          = Math.Round(amount / qtdParcels, 2);
            parcel.DueDate         = dueDate;
            parcel.Description     = idx + "/" + qtdParcels;
            parcel.PaymentMethodId = paymentMethod.PaymentMethodId;
            //parcel.IdentificationNumber = txtIdentificationNumber.Text;
            parcel.AccountId = accountId;

            if (financierOperation != null)
            {
                parcel.FinancierOperationId = financierOperation.FinancierOperationId;
            }

            //
            // Se tem conta então já cadastra como quitada
            //
            if (accountId.HasValue)
            {
                parcel.EffectedAmount = parcel.Amount;
                parcel.EffectedDate   = parcel.DueDate;
            }

            parcel.CompanyId = Page.Company.CompanyId;

            if (Page.ViewState["BillId"] != null)
            {
                parcel.BillId = Convert.ToInt32(Page.ViewState["BillId"]);
            }
            else if (Page.ViewState["InvoiceId"] != null)
            {
                parcel.InvoiceId = Convert.ToInt32(Page.ViewState["InvoiceId"]);
            }

            //esta condicional verifica se a parcela corrente é a primeira, se a condição for satisfeita
            //ele calcula a parcela. fez se necessário esta condicional para o caso do valor da parcela
            // der uma dizima periodica. o codigo calcula todas as parcelas e verifica a diferença entre o valor total
            // e o somatório da parcela, essa diferença é somada ao valor da primeira parcela
            if (idx == 1)
            {
                parcel.Amount += (amount - (parcel.Amount * qtdParcels));
            }

            DataSource.Add(parcel);

            switch (Convert.ToInt32(cboPeriod.SelectedValue))
            {
            case 30:
                dueDate = dueDate.AddMonths(1); break;

            case 60:
                dueDate = dueDate.AddMonths(2); break;

            case 7:
                dueDate = dueDate.AddDays(7); break;

            case 15:
                dueDate = dueDate.AddDays(15); break;

            case 10:
                dueDate = dueDate.AddDays(10); break;
                //default:
                //    dueDate = dueDate.AddDays(Convert.ToInt32(cboPeriod.SelectedValue) / 30); break;
            }
        }
        BindGrid(-1);
        grdParcel.Visible        = true;
        cboAccount.SelectedValue = String.Empty;
        //   txtIdentificationNumber.Text = String.Empty;
    }