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 objContribuicao contribuicao = (objContribuicao)dgvListagem.Rows[hit.RowIndex].DataBoundItem; // mnuDefinir Setor mnuDefinirSetor.Enabled = contribuicao.IDSetor == null; // revela menu mnuOperacoes.Show(c.PointToScreen(e.Location)); }
// CONVERT ROW IN CLASS //------------------------------------------------------------------------------------------------------------ public objContribuicao ConvertRowInClass(DataRow row) { objContribuicao entrada = new objContribuicao((long)row["IDContribuicao"]) { ContribuicaoData = (DateTime)row["ContribuicaoData"], IDEntradaForma = (byte)row["IDEntradaForma"], EntradaForma = (string)row["EntradaForma"], ValorBruto = (decimal)row["ValorBruto"], IDContribuicaoTipo = (byte)row["IDContribuicaoTipo"], ContribuicaoTipo = (string)row["ContribuicaoTipo"], IDSetor = row["IDSetor"] == DBNull.Value ? null : (int?)row["IDSetor"], Setor = row["Setor"] == DBNull.Value ? "A DEFINIR" : (string)row["Setor"], IDConta = (int)row["IDConta"], Conta = (string)row["Conta"], IDContribuinte = row["IDContribuinte"] == DBNull.Value ? null : (int?)row["IDContribuinte"], Contribuinte = row["Contribuinte"] == DBNull.Value ? null : (string)row["Contribuinte"], OrigemDescricao = row["OrigemDescricao"] == DBNull.Value ? null : (string)row["OrigemDescricao"], IDReuniao = row["IDReuniao"] == DBNull.Value ? null : (int?)row["IDReuniao"], Reuniao = row["Reuniao"] == DBNull.Value ? null : (string)row["Reuniao"], IDCampanha = row["IDCampanha"] == DBNull.Value ? null : (int?)row["IDCampanha"], Campanha = row["Campanha"] == DBNull.Value ? null : (string)row["Campanha"], ValorRecebido = (decimal)row["ValorRecebido"], Realizado = (bool)row["Realizado"], }; return(entrada); }
// UPDATE UNDEFINED SETOR //------------------------------------------------------------------------------------------------------------ public bool UpdateContribuicaoSetor(objContribuicao entrada) { try { AcessoDados db = new AcessoDados(); //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDContribuicao", entrada.IDContribuicao); db.AdicionarParametros("@IDSetor", entrada.IDSetor); //--- convert null parameters db.ConvertNullParams(); //--- create query string query = db.CreateUpdateSQL("tblContribuicao", "@IDContribuicao"); //--- update db.ExecutarManipulacao(CommandType.Text, query); return(true); } catch (Exception ex) { throw ex; } }
// EXCLUIR CONTRIBUICAO //------------------------------------------------------------------------------------------------------------ private void btnExcluir_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Excluir...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objContribuicao item = (objContribuicao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; // --- ask USER var resp = AbrirDialog("Você deseja realmente EXCLUIR definitivamente a Contribuição abaixo?\n" + $"\nREG: {item.IDContribuicao:D4}\nDATA: {item.ContribuicaoData.ToShortDateString()}\nVALOR: {item.ValorBruto:c}", "Excluir Contribuição", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } //--- EXECUTE DELETE cBLL.DeleteContribuicao((long)item.IDContribuicao, ContaSaldoLocalUpdate, SetorSaldoLocalUpdate); //--- REQUERY LIST ObterDados(); } catch (AppException ex) { AbrirDialog("A contribuição está protegida de exclusão porque:\n" + ex.Message, "Bloqueio de Exclusão", DialogType.OK, DialogIcon.Exclamation); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Excluir Contribuição..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// ABRIR CONTRIBUICAO ESCOLHIDA //------------------------------------------------------------------------------------------------------------ private void btnVisualizar_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Visualizar...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objContribuicao item = (objContribuicao)dgvListagem.SelectedRows[0].DataBoundItem; Contribuicao.frmContribuicao frm = new Contribuicao.frmContribuicao(item); frm.MdiParent = Application.OpenForms.OfType <frmPrincipal>().FirstOrDefault(); DesativaMenuPrincipal(); Close(); frm.Show(); }
// GET CONTRIBUICAO LIST BY SETOR WITH NOT IN COMISSAO COMISSIONADA //------------------------------------------------------------------------------------------------------------ public List <objContribuicao> GetContribuicaoComissaoList(int IDSetor) { try { AcessoDados db = new AcessoDados(); db.LimparParametros(); db.AdicionarParametros("@IDSetor", IDSetor); string query = "SELECT * FROM qryContribuicao AS C " + "JOIN tblContribuicaoTipo AS T " + "ON C.IDContribuicaoTipo = T.IDContribuicaoTipo " + "WHERE " + "IDSetor = @IDSetor " + "AND Realizado = 'TRUE' " + "AND T.ComComissao = 'TRUE' " + "AND IDContribuicao " + "NOT IN (SELECT IDContribuicao FROM tblContribuicaoComissionada)"; DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { return(null); } //--- convert row to Contribuicao var list = new List <objContribuicao>(); var cBLL = new ContribuicaoBLL(); foreach (DataRow row in dt.Rows) { objContribuicao contribuicao = cBLL.ConvertRowInClass(row); list.Add(contribuicao); } return(list); } catch (Exception ex) { throw ex; } }
// UPDATE //------------------------------------------------------------------------------------------------------------ public bool UpdateContribuicao(objContribuicao entrada) { try { AcessoDados db = new AcessoDados(); //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDContribuicao", entrada.IDContribuicao); db.AdicionarParametros("@ContribuicaoData", entrada.ContribuicaoData); db.AdicionarParametros("@IDEntradaForma", entrada.IDEntradaForma); db.AdicionarParametros("@ValorBruto", entrada.ValorBruto); db.AdicionarParametros("@IDContribuicaoTipo", entrada.IDContribuicaoTipo); db.AdicionarParametros("@IDSetor", entrada.IDSetor); db.AdicionarParametros("@IDConta", entrada.IDConta); db.AdicionarParametros("@IDContribuinte", entrada.IDContribuinte); db.AdicionarParametros("@OrigemDescricao", entrada.OrigemDescricao); db.AdicionarParametros("@IDReuniao", entrada.IDReuniao); db.AdicionarParametros("@IDCampanha", entrada.IDCampanha); db.AdicionarParametros("@ValorRecebido", entrada.ValorRecebido); db.AdicionarParametros("@Realizado", entrada.Realizado); //--- convert null parameters db.ConvertNullParams(); //--- create query string query = db.CreateUpdateSQL("tblContribuicao", "@IDContribuicao"); //--- update db.ExecutarManipulacao(CommandType.Text, query); return(true); } catch (Exception ex) { throw ex; } }
// GET CONTRIBUICAO LIST INSERTED CONTRIBUICAO IN COMISSAO //------------------------------------------------------------------------------------------------------------ public List <objContribuicao> GetInsertedContribuicaoList(int IDComissao) { try { AcessoDados db = new AcessoDados(); db.LimparParametros(); db.AdicionarParametros("@IDComissao", IDComissao); string query = "SELECT * FROM qryContribuicao WHERE " + "IDContribuicao IN " + "(SELECT IDContribuicao FROM tblContribuicaoComissionada WHERE IDComissao = @IDComissao)"; DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { return(null); } //--- convert row to Contribuicao var list = new List <objContribuicao>(); var cBLL = new ContribuicaoBLL(); foreach (DataRow row in dt.Rows) { objContribuicao contribuicao = cBLL.ConvertRowInClass(row); list.Add(contribuicao); } return(list); } catch (Exception ex) { throw ex; } }
// INSERT CONTRIBUICAO SIMPLES //------------------------------------------------------------------------------------------------------------ private long AddContribuicao(objContribuicao cont, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@ContribuicaoData", cont.ContribuicaoData); dbTran.AdicionarParametros("@IDEntradaForma", cont.IDEntradaForma); dbTran.AdicionarParametros("@ValorBruto", cont.ValorBruto); dbTran.AdicionarParametros("@IDContribuicaoTipo", cont.IDContribuicaoTipo); dbTran.AdicionarParametros("@IDSetor", cont.IDSetor); dbTran.AdicionarParametros("@IDConta", cont.IDConta); dbTran.AdicionarParametros("@IDContribuinte", cont.IDContribuinte); dbTran.AdicionarParametros("@OrigemDescricao", cont.OrigemDescricao); dbTran.AdicionarParametros("@IDReuniao", cont.IDReuniao); dbTran.AdicionarParametros("@IDCampanha", cont.IDCampanha); dbTran.AdicionarParametros("@ValorRecebido", cont.ValorRecebido); dbTran.AdicionarParametros("@Realizado", cont.Realizado); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateInsertSQL("tblContribuicao"); //--- insert and Get new ID long newID = dbTran.ExecutarInsertAndGetID(query); return(newID); } catch (Exception ex) { throw ex; } }
private void mnuDefinirSetor_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Definir o Setor...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objContribuicao item = (objContribuicao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; Setores.frmSetorProcura frm = new Setores.frmSetorProcura(this, item.IDSetor); frm.ShowDialog(); //--- check return if (frm.DialogResult != DialogResult.OK) { return; } item.IDSetor = frm.propEscolha.IDSetor; item.Setor = frm.propEscolha.Setor; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao abrir o formulário de procura de setor..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } DialogResult resp; resp = AbrirDialog("Deseja realmente DEFINIR o SETOR na contribuição selecionada?" + $"\nSetor Escolhido: {item.Setor.ToUpper()}" + "\nEssa ação será definitiva...", "Definir Setor", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { item.CancelEdit(); return; } try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; cBLL.UpdateContribuicaoSetor(item); ObterDados(); AbrirDialog("Setor Definido com sucesso!", "Setor Definido", DialogType.OK, DialogIcon.Information); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Definir o Setor..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// 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; } }