// UPDATE ARECEBER SITUACAO || VALOR LIQUIDO || COMPENSACAO DATA //------------------------------------------------------------------------------------------------------------ public bool UpdateAReceber(objAReceber rec, object dbTran = null) { try { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDAReceber", rec.IDAReceber); db.AdicionarParametros("@IDSituacao", rec.IDSituacao); db.AdicionarParametros("@ValorLiquido", rec.ValorLiquido); db.AdicionarParametros("@ValorRecebido", rec.ValorRecebido); db.AdicionarParametros("@CompensacaoData", rec.CompensacaoData); //--- convert null parameters db.ConvertNullParams(); //--- create query string query = db.CreateUpdateSQL("tblAReceber", "@IDAReceber"); //--- update db.ExecutarManipulacao(CommandType.Text, query); return(true); } catch (Exception ex) { throw ex; } }
//--- MENU VER ORIGEM //------------------------------------------------------------------------------------------------------- private void mnuItemVerOrigem_Click(object sender, EventArgs e) { //--- verifica se existe alguma cell if (dgvListagem.SelectedRows.Count == 0) { return; } //--- Get A Pagar on list objAReceber item = (objAReceber)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; Contribuicao.frmContribuicao frm = new Contribuicao.frmContribuicao(item.IDContribuicao); Visible = false; frm.ShowDialog(); DesativaMenuPrincipal(); Visible = true; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Abrir a Contribuição..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
//--- MENU ALTERAR ITEM //------------------------------------------------------------------------------------------------------------ private void mnuItemAlterar_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Alterar...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } unCheckListagem(); //--- get Selected item objAReceber item = (objAReceber)dgvListagem.SelectedRows[0].DataBoundItem; frmAReceberAlterar frm = new frmAReceberAlterar(item, this); frm.ShowDialog(); if (frm.DialogResult != DialogResult.OK) { bindRec.CancelEdit(); } else { bindRec.EndEdit(); // save persist DB SalvarRegistro(item); CalculaTotais(); } }
// VERIFICA DADOS E EMITE MENSAGEM //------------------------------------------------------------------------------------------------------------ private objAReceber CheckAlteraSituacao(string acao) { //--- verifica se existe alguma cell if (dgvListagem.SelectedRows.Count == 0) { return(null); } //--- verifica USER PERMIT if (!CheckAuthorization(EnumAcessoTipo.Usuario_Senior, $"{acao} a Receber", this)) { return(null); } //--- Pergunta ao USER var resp = AbrirDialog($"Você deseja realmente {acao.ToUpper()} este registro de AReceber selecionado?", $"{acao} AReceber", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp == DialogResult.No) { return(null); } //--- Get A Pagar on list objAReceber item = (objAReceber)dgvListagem.SelectedRows[0].DataBoundItem; return(item); }
// CALC CHECKED VALUES LABELS //------------------------------------------------------------------------------------------------------------ private void dgvListagem_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0 && e.RowIndex >= 0) { var row = dgvListagem.Rows[e.RowIndex]; objAReceber pag = (objAReceber)row.DataBoundItem; if ((bool)row.Cells[0].Value == true) { nItemsSelected += 1; _vlBrutoSelected += pag.ValorBruto; _vlRecebidoSelected += pag.ValorRecebido; _vlLiquidoSelected += pag.ValorLiquido; } else { nItemsSelected -= 1; _vlBrutoSelected -= pag.ValorBruto; _vlRecebidoSelected -= pag.ValorRecebido; _vlLiquidoSelected -= pag.ValorLiquido; } CalculaTotaisSelected(); } }
// INSERT ENTRADA | ARECEBER CHEQUE //------------------------------------------------------------------------------------------------------------ private objAReceber insertAReceberCheque( objAReceber receber, objMovimentacao entrada, Action <int, decimal> contaSaldoUpdate, AcessoDados dbTran) { // create TRANSFER SAIDA objMovimentacao transfSaida = new objMovimentacao(null) { MovTipo = 3, // TRANSFERENCIA Origem = EnumMovOrigem.AReceber, // tblAReceber IDOrigem = (long)receber.IDAReceber, IDConta = receber.IDContaProvisoria, IDSetor = null, MovData = entrada.MovData, MovValor = entrada.MovValor * (-1), DescricaoOrigem = "TRANSFERÊNCIA: Depósito de Cheque", }; // create TRANSFER ENTRADA objMovimentacao transfEntrada = new objMovimentacao(null) { MovTipo = 3, // TRANSFERENCIA Origem = EnumMovOrigem.AReceber, // tblAReceber IDOrigem = (long)receber.IDAReceber, IDConta = entrada.IDConta, IDSetor = null, MovData = entrada.MovData, MovValor = entrada.MovValor, DescricaoOrigem = "TRANSFERÊNCIA: Compensação de Cheque", }; try { MovimentacaoBLL mBLL = new MovimentacaoBLL(); // Update FIRST Entrada: CONSOLIDADO = TRUE mBLL.UpdateConsolidado(receber.IDMovProvisoria, true, dbTran); // Insert transf saida mBLL.InsertMovimentacao(transfSaida, contaSaldoUpdate, null, dbTran); // Insert transf entrada mBLL.InsertMovimentacao(transfEntrada, contaSaldoUpdate, null, dbTran); // update AReceber UpdateAReceber(receber, dbTran); } catch (Exception ex) { throw ex; } return(receber); }
// INSERT //------------------------------------------------------------------------------------------------------------ public long InsertAReceber(objAReceber entrada, object dbTran = null) { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; try { if (dbTran == null) { db.BeginTransaction(); } //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@CompensacaoData", entrada.CompensacaoData); db.AdicionarParametros("@IDContribuicao", entrada.IDContribuicao); db.AdicionarParametros("@ValorBruto", entrada.ValorBruto); db.AdicionarParametros("@ValorLiquido", entrada.ValorLiquido); db.AdicionarParametros("@ValorRecebido", 0); db.AdicionarParametros("@IDContaProvisoria", entrada.IDContaProvisoria); db.AdicionarParametros("@IDMovProvisoria", entrada.IDMovProvisoria); db.AdicionarParametros("@IDSituacao", 1); //--- convert null parameters db.ConvertNullParams(); string query = db.CreateInsertSQL("tblAReceber"); //--- insert and Get new ID long newID = db.ExecutarInsertAndGetID(query); //--- altera o saldo da CONTA PROVISORIA //new ContaBLL().ContaSaldoChange(entrada.IDContaProvisoria, entrada.ValorBruto, db, ContaSldUpdate); if (dbTran == null) { db.CommitTransaction(); } return(newID); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } throw ex; } }
//--- MENU ESTORNAR PAGAMENTOS //------------------------------------------------------------------------------------------------------- private void mnuItemEstornar_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Estornar...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; objAReceber recItem = (objAReceber)dgvListagem.SelectedRows[0].DataBoundItem; var resp = AbrirDialog("Você deseja realmente ESTORNAR o recebimento do AReceber selecionado?", "Estornar Recebimento", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } //--- execute rBLL.estornaAReceber(recItem, ContaSaldoLocalUpdate, SetorSaldoLocalUpdate); //--- get Dados ObterDados(); //--- message AbrirDialog("Recebimento estornado com sucesso!", "Estorno"); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao ESTORNAR o Recebimento..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
public frmAReceberAlterar(objAReceber pag, Form formOrigem) { InitializeComponent(); _formOrigem = formOrigem; _areceber = pag; bind.DataSource = _areceber; BindingCreator(); HandlerKeyDownControl(this); _areceber.PropertyChanged += (a, b) => btnAlterar.Enabled = true; if (_areceber.IDEntradaForma != 3) { txtValorLiquido.KeyPress += (a, e) => e.Handled = true; } }
// ESTORNA ARECEBER //------------------------------------------------------------------------------------------------------------ public objAReceber estornaAReceber(objAReceber receber, Action <int, decimal> contaSaldoUpdate, Action <int, decimal> setorSaldoUpdate) { AcessoDados db = null; // UPDATE CONSOLIDADO ENTRADA = FALSE // DELETE TRANSFER ENTRADA / SAIDA // DELETE COMISSAO SAIDA // UPDATE A RECEBER try { db = new AcessoDados(); db.BeginTransaction(); MovimentacaoBLL mBLL = new MovimentacaoBLL(); // Update FIRST Entrada: CONSOLIDADO = FALSE mBLL.UpdateConsolidado(receber.IDMovProvisoria, false, db); // REMOVE transf saida entrada mBLL.DeleteMovsByOrigem(EnumMovOrigem.AReceber, (long)receber.IDAReceber, contaSaldoUpdate, setorSaldoUpdate, db); // UPDATE Contribuicao var cBLL = new ContribuicaoBLL(); cBLL.UpdateValorRecebidoEstorno(receber.IDContribuicao, receber.ValorRecebido, db); // UPDATE AReceber receber.ValorRecebido = 0; receber.IDSituacao = 1; receber.Situacao = "Em Aberto"; UpdateAReceber(receber, db); // COMMIT db.CommitTransaction(); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } return(receber); }
// QUITAR A RECEBER LIST //------------------------------------------------------------------------------------------------------------ public List <objAReceber> AReceberConsolidacaoList( List <objAReceber> listRec, List <objMovimentacao> entradas, Action <int, decimal> contaSaldoUpdate, Action <int, decimal> setorSaldoUpdate) { List <objAReceber> retorno = new List <objAReceber>(); AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); ContribuicaoBLL contBLL = new ContribuicaoBLL(); foreach (objMovimentacao entrada in entradas) { objAReceber receber = listRec.First(r => r.IDAReceber == entrada.IDOrigem); if (receber.IDEntradaForma == 3) // IDEntradaForma : CARTAO { objAReceber newRec = insertAReceberCartao(receber, entrada, contaSaldoUpdate, setorSaldoUpdate, db); retorno.Add(newRec); } else { objAReceber newRec = insertAReceberCheque(receber, entrada, contaSaldoUpdate, db); retorno.Add(newRec); } // update Contribuicao contBLL.UpdateValorRecebidoAndCheckRealizado(receber.IDContribuicao, entrada.MovValor, db); } db.CommitTransaction(); return(retorno); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// PERSISTIR ALTERAR SITUACAO NO BD //------------------------------------------------------------------------------------------------------------ private void SalvarRegistro(objAReceber rec) { try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; rBLL.UpdateAReceber(rec); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Salvar a alteração do Registro..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// CONVERT ROW IN CLASS //------------------------------------------------------------------------------------------------------------ public objAReceber ConvertRowInClass(DataRow row) { objAReceber entrada = new objAReceber((long)row["IDAReceber"]) { CompensacaoData = (DateTime)row["CompensacaoData"], IDContribuicao = (long)row["IDContribuicao"], ValorBruto = (decimal)row["ValorBruto"], ValorLiquido = (decimal)row["ValorLiquido"], ValorRecebido = (decimal)row["ValorRecebido"], IDContaProvisoria = (int)row["IDContaProvisoria"], IDMovProvisoria = (long)row["IDMovProvisoria"], Conta = (string)row["Conta"], IDSituacao = (byte)row["IDSituacao"], Situacao = (string)row["Situacao"], IDEntradaForma = (byte)row["IDEntradaForma"], EntradaForma = (string)row["EntradaForma"], IDSetor = row["IDSetor"] == DBNull.Value ? null : (int?)row["IDSetor"], }; return(entrada); }
//--- MENU NORMALIZAR //------------------------------------------------------------------------------------------------------- private void mnuItemNormalizar_Click(object sender, EventArgs e) { // check and ask to user objAReceber item = CheckAlteraSituacao("Normalizar"); if (item == null) { return; } //--- EXECUTE try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; item.IDSituacao = 1; item.Situacao = "Em Aberto"; // save aPagar SalvarRegistro(item); // Confirm AND CalcTotais //--- update list bindRec.RemoveCurrent(); CalculaTotais(); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Normalizar o a Pagar..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// CONTROLA AS CORES DA LISTAGEM //------------------------------------------------------------------------------------------------------------ private void dgvListagem_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == clnSituacao.Index) { objAReceber pagar = (objAReceber)dgvListagem.Rows[e.RowIndex].DataBoundItem; if (pagar.Situacao == "Vencida") { dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.MistyRose; dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Firebrick; e.CellStyle.ForeColor = Color.Red; e.CellStyle.SelectionForeColor = Color.Yellow; } else { if ((e.RowIndex + 1) % 2 != 0) // row ODD (impar) { dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.OldLace; dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = SystemColors.Highlight; } else // row EVEN (par) { dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White; dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = SystemColors.Highlight; } } } else if (e.ColumnIndex == clnCompensacaoData.Index) { objAReceber pagar = (objAReceber)dgvListagem.Rows[e.RowIndex].DataBoundItem; if (pagar.Situacao == "Vencida") { e.CellStyle.ForeColor = Color.Red; e.CellStyle.SelectionForeColor = Color.Yellow; } } }
// INSERT //------------------------------------------------------------------------------------------------------------ public long InsertContribuicao( objContribuicao cont, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate, object forma = null) { AcessoDados db = new AcessoDados(); long? newID = null; long? newMovID = null; objMovimentacao entrada = null; try { db.BeginTransaction(); //--- Check Conta Bloqueio if (!new ContaBLL().ContaDateBlockPermit(cont.IDConta, cont.ContribuicaoData, db)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Crédito proposta...", 2); } switch (cont.IDEntradaForma) { case 1: // DINHEIRO //--- Insert Contribuicao cont.Realizado = true; cont.ValorRecebido = cont.ValorBruto; newID = AddContribuicao(cont, db); //--- Create NEW Entrada entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = cont.IDConta, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Contribuicao, MovData = cont.ContribuicaoData, MovValor = cont.ValorBruto, Consolidado = true, DescricaoOrigem = "CONTRIBUIÇÃO: " + cont.OrigemDescricao, }; //--- Insert MOVIMENTACAO Entrada new MovimentacaoBLL().InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); break; case 2: // CHEQUE if (forma == null || forma.GetType() != typeof(objContribuicaoCheque)) { throw new Exception("Não há registro de informação do cheque..."); } //--- Insert Contribuicao cont.Realizado = false; cont.ValorRecebido = 0; newID = AddContribuicao(cont, db); cont.IDContribuicao = newID; //--- Insert ContribuicaoCheque objContribuicaoCheque cheque = (objContribuicaoCheque)forma; cheque.IDContribuicao = newID; AddContribuicaoCheque(cheque, db); //--- Create NEW MOVIMENTACAO ENTRADA entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = cont.IDConta, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Contribuicao, MovData = cont.ContribuicaoData, MovValor = cont.ValorBruto, Consolidado = false, DescricaoOrigem = $"CONTRIBUIÇÃO: Cheque no. {cheque.ChequeNumero} {cheque.Banco}", }; //--- Insert MOVIMENTACAO Entrada newMovID = new MovimentacaoBLL().InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); //--- Create AReceber var areceber = new objAReceber(null) { CompensacaoData = cheque.DepositoData, IDContaProvisoria = cont.IDConta, IDContribuicao = (long)cont.IDContribuicao, IDSituacao = 1, Situacao = "Em Aberto", ValorBruto = cont.ValorBruto, ValorLiquido = cont.ValorBruto, ValorRecebido = 0, IDMovProvisoria = (long)newMovID, }; //--- Insert AReceber Parcela new AReceberBLL().InsertAReceber(areceber, db); break; case 3: // CARTAO if (forma == null || forma.GetType() != typeof(objContribuicaoCartao)) { throw new Exception("Não há registro de informação do cartão..."); } //--- Check Conta Bloqueio objContribuicaoCartao cartao = (objContribuicaoCartao)forma; if (!new ContaBLL().ContaDateBlockPermit(cartao.IDContaProvisoria, cont.ContribuicaoData, db)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Crédito proposta...", 2); } //--- Insert Contribuicao cont.Realizado = false; cont.ValorRecebido = 0; newID = AddContribuicao(cont, db); cont.IDContribuicao = newID; //--- Insert ContribuicaoCartao cartao.IDContribuicao = newID; AddContribuicaoCartao(cartao, db); //--- Insert ListOf AReceber var listAReceber = new List <objAReceber>(); int parcelas = cartao.Parcelas == 0 ? 1 : cartao.Parcelas; // create PARCELAS for (int i = 0; i < parcelas; i++) { var parcela = new objAReceber(null) { CompensacaoData = cont.ContribuicaoData.AddDays(cartao.Prazo * (i + 1)), IDContaProvisoria = cartao.IDContaProvisoria, IDContribuicao = (long)cont.IDContribuicao, IDSituacao = 1, Situacao = "Em Aberto", ValorBruto = cont.ValorBruto / parcelas, ValorLiquido = (cont.ValorBruto / parcelas) * (100 - cartao.TaxaAplicada) / 100, ValorRecebido = 0 }; listAReceber.Add(parcela); } var rBLL = new AReceberBLL(); var mBLL = new MovimentacaoBLL(); int numParcela = 1; //--- Insert ListOf AReceber Parcelas foreach (var parcela in listAReceber) { //--- Create NEW MOVIMENTACAO Entrada entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = parcela.IDContaProvisoria, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Contribuicao, MovData = cont.ContribuicaoData, MovValor = parcela.ValorBruto, Consolidado = false, }; //--- define descricao origem of movimentacao if (cartao.Parcelas == 0) { entrada.DescricaoOrigem = $"CONTRIBUIÇÃO: Cartão de Débito {cartao.CartaoBandeira}"; } else if (cartao.Parcelas == 1) { entrada.DescricaoOrigem = $"CONTRIBUIÇÃO: Cartão de Crédito {cartao.CartaoBandeira}"; } else { entrada.DescricaoOrigem = $"CONTRIBUIÇÃO: Cartão Parcelado {cartao.CartaoBandeira} parcela {numParcela:D2}"; } //--- add Parcela numParcela += 1; //--- Insert Entrada newMovID = mBLL.InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); //--- Insert AReceber parcela.IDMovProvisoria = (long)newMovID; rBLL.InsertAReceber(parcela, db); } break; default: break; } if (newID == 0) { throw new Exception("Não foi possível inserir um novo registro de Contribuição..."); } db.CommitTransaction(); return((long)newID); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
private void dgvListagem_MouseDown(object sender, MouseEventArgs e) { // check button if (e.Button != MouseButtons.Right) { return; } Control c = (Control)sender; DataGridView.HitTestInfo hit = dgvListagem.HitTest(e.X, e.Y); dgvListagem.ClearSelection(); if (hit.Type != DataGridViewHitTestType.Cell) { return; } // seleciona o ROW dgvListagem.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgvListagem.CurrentCell = dgvListagem.Rows[hit.RowIndex].Cells[2]; dgvListagem.Rows[hit.RowIndex].Selected = true; // mostra o MENU ativar e desativar objAReceber recItem = (objAReceber)dgvListagem.Rows[hit.RowIndex].DataBoundItem; // mnuVerPagamentos mnuItemEstornar.Enabled = recItem.ValorRecebido > 0; switch (recItem.IDSituacao) { case 1: // EM ABERTO mnuItemAlterar.Enabled = true; mnuItemAlterar.Text = "Alterar"; mnuItemCancelar.Enabled = true; mnuItemNormalizar.Enabled = false; mnuItemReceber.Enabled = true; mnuItemEstornar.Enabled = false; break; case 2: // RECEBIDAS mnuItemAlterar.Enabled = false; mnuItemCancelar.Enabled = false; mnuItemNormalizar.Enabled = false; mnuItemReceber.Enabled = false; mnuItemEstornar.Enabled = true; break; case 3: // CANCELADAS mnuItemAlterar.Enabled = false; mnuItemCancelar.Enabled = false; mnuItemNormalizar.Enabled = true; mnuItemReceber.Enabled = false; mnuItemEstornar.Enabled = false; break; default: break; } // revela menu mnuOperacoes.Show(c.PointToScreen(e.Location)); }