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"); }
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; }