// INSERT DESPESA CARTAO //------------------------------------------------------------------------------------------------------------ private void InsertDespesaCartao(objDespesaCartao desp, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@IDDespesa", desp.IDDespesa); dbTran.AdicionarParametros("@IDCartaoCredito", desp.IDCartaoCredito); dbTran.AdicionarParametros("@ReferenciaData", desp.ReferenciaData); dbTran.AdicionarParametros("@IDSituacao", desp.IDSituacao); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateInsertSQL("tblDespesaCartao"); //--- insert dbTran.ExecutarManipulacao(CommandType.Text, query); } catch (Exception ex) { throw ex; } }
private void mnuImagemVisualizar_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Visualizar Imagem...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objDespesaCartao item = (objDespesaCartao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; ImagemUtil.ImagemVisualizar(item.Imagem); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Visualizar a imagem..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// CONVERT ROW IN CLASS //------------------------------------------------------------------------------------------------------------ public objDespesaCartao ConvertRowInClass(DataRow row) { var despesa = new objDespesaCartao((long)row["IDDespesa"]) { DespesaDescricao = (string)row["DespesaDescricao"], IDCredor = (int)row["IDCredor"], Credor = (string)row["Credor"], DespesaData = (DateTime)row["DespesaData"], IDDespesaTipo = (int)row["IDDespesaTipo"], DespesaTipo = (string)row["DespesaTipo"], DespesaValor = (decimal)row["DespesaValor"], IDSetor = (int)row["IDSetor"], Setor = (string)row["Setor"], IDSituacao = (byte)row["IDSituacao"], Situacao = (string)row["Situacao"], IDCartaoCredito = (int)row["IDCartaoCredito"], CartaoDescricao = (string)row["CartaoDescricao"], VencimentoDia = (byte)row["VencimentoDia"], ReferenciaData = (DateTime)row["ReferenciaData"], }; // SET IMAGEM despesa.Imagem.IDOrigem = (long)despesa.IDDespesa; despesa.Imagem.Origem = EnumImagemOrigem.Despesa; despesa.Imagem.ImagemFileName = row["ImagemFileName"] == DBNull.Value ? string.Empty : (string)row["ImagemFileName"]; despesa.Imagem.ImagemPath = row["ImagemPath"] == DBNull.Value ? string.Empty : (string)row["ImagemPath"]; // RETURN return(despesa); }
// CONSTRUCTOR WITH DESPESA //------------------------------------------------------------------------------------------------------------ public frmDespesaCartao(objDespesaCartao despesa, Form formOrigem = null) { InitializeComponent(); _formOrigem = formOrigem; ConstructorContinue(despesa); }
private void mnuImagemRemover_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Visualizar Imagem...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objDespesaCartao item = (objDespesaCartao)dgvListagem.SelectedRows[0].DataBoundItem; DialogResult resp; resp = AbrirDialog("Deseja realmente REMOVER ou DESASSOCIAR a imagem da despesa selecionada?" + "\nA imagem não será excluída mas movida para pasta de Imagens Removidas...", "Remover Imagem", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //_despesa.Imagem.ReferenceDate = _despesa.DespesaData; item.Imagem = ImagemUtil.ImagemRemover(item.Imagem); AbrirDialog("Imagem desassociada com sucesso!" + "\nPor segurança a imagem foi guardada na pasta de Imagens Removidas.", "Imagem Removida", DialogType.OK, DialogIcon.Information); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Remover a imagem..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
private void dgvListagem_MouseDown(object sender, MouseEventArgs e) { // check button if (e.Button != MouseButtons.Right) { return; } // check Escolha if (_formOrigem != null && _formOrigem.Name == "frmProvisorio") { 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 objDespesaCartao desp = (objDespesaCartao)dgvListagem.Rows[hit.RowIndex].DataBoundItem; // mnuImagem bool IsThereImagem = desp.Imagem != null && !string.IsNullOrEmpty(desp.Imagem.ImagemFileName); mnuImagemRemover.Enabled = IsThereImagem; mnuImagemInserir.Text = IsThereImagem ? "Alterar Imagem" : "Inserir Imagem"; mnuImagemVisualizar.Enabled = IsThereImagem; // revela menu mnuOperacoes.Show(c.PointToScreen(e.Location)); }
// EDITAR DESPESA 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 objDespesaCartao item = (objDespesaCartao)dgvListagem.SelectedRows[0].DataBoundItem; var frm = new frmDespesaCartao(item, this); frm.MdiParent = Application.OpenForms.OfType <frmPrincipal>().FirstOrDefault(); DesativaMenuPrincipal(); Close(); frm.Show(); }
// CONSTRUCTOR CONTINUE AFTER GET DESPESA //------------------------------------------------------------------------------------------------------------ private void ConstructorContinue(objDespesaCartao despesa) { _despesa = despesa; // binding Despesa bindDespesa.DataSource = typeof(objDespesaCartao); bindDespesa.Add(_despesa); BindingCreator(); // binding APagar bindAPagar.DataSource = typeof(objAPagar); GetAPagarVinculado(); SituacaoAlterada(); // handlers bindAPagar.ListChanged += (a, b) => CalculaTotais(); HandlerKeyDownControl(this); }
private void ObterDadosLastDespesa() { try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //--- Check Conta if (_CartaoSelected == null) { AbrirDialog("Favor selecionar o Cartao de Crédito...", "Cartão Selecionado"); txtCartaoDescricao.Focus(); } _LastDespesa = dBLL.GetLastDespesaCartaoByCartao((int)_CartaoSelected.IDCartaoCredito); if (_LastDespesa == null) { cmbRefMes.SelectedValue = DateTime.Today.Month; numRefAno.Value = DateTime.Today.Year; } else { cmbRefMes.SelectedValue = _LastDespesa.ReferenciaData.AddMonths(1).Month; numRefAno.Value = _LastDespesa.ReferenciaData.AddMonths(1).Year; } btnEfetuar.Enabled = true; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Obter as informações de Cartão de Crédito..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); btnEfetuar.Enabled = false; } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// INSERT IMAGE //------------------------------------------------------------------------------------------------------------ private void mnuImagemInserir_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Inserir Imagem...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objDespesaCartao item = (objDespesaCartao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; objImagem imagem = new objImagem() { IDOrigem = (long)item.IDDespesa, Origem = EnumImagemOrigem.Despesa, ImagemFileName = item.Imagem == null ? string.Empty : item.Imagem.ImagemFileName, ImagemPath = item.Imagem == null ? string.Empty : item.Imagem.ImagemPath, ReferenceDate = item.DespesaData, }; // open form to edit or save image bool IsNew = item.Imagem == null || string.IsNullOrEmpty(item.Imagem.ImagemPath); imagem = ImagemUtil.ImagemGetFileAndSave(imagem, this); // check if isUpdated bool IsUpdated = false; if (item.Imagem != null && imagem != null) { IsUpdated = (item.Imagem.ImagemFileName != imagem.ImagemFileName) || (item.Imagem.ImagemPath != imagem.ImagemPath); } // update imagem object item.Imagem = imagem; // emit message if (IsNew && imagem != null) { AbrirDialog("Imagem associada e salva com sucesso!" + "\nPor segurança a imagem foi transferida para a pasta padrão.", "Imagem Salva", DialogType.OK, DialogIcon.Information); } else if (IsUpdated) { AbrirDialog("Imagem alterada com sucesso!" + "\nPor segurança a imagem anterior foi transferida para a pasta de imagens removidas.", "Imagem Alterada", DialogType.OK, DialogIcon.Information); } } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao obter a imagem..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// CONCLUIR DESPESA CARTAO //------------------------------------------------------------------------------------------------------------ public void ConcluirDespesaCartao(objDespesaCartao despesa) { AcessoDados db = null; try { //--- INIT DATABASE db = new AcessoDados(); db.BeginTransaction(); //--- 1. BLOCK ALL DESPESA CARTAO WITH SAME IDCARTAO string query = "UPDATE tblDespesaCartao " + "SET IDSituacao = 3 " + "WHERE IDCartaoCredito = @IDCartaoCredito AND IDSituacao = 2"; db.LimparParametros(); db.AdicionarParametros("@IDCartaoCredito", despesa.IDCartaoCredito); db.ExecutarManipulacao(CommandType.Text, query); //--- 2. UPDATE TBL DESPESA new DespesaBLL().UpdateDespesa(despesa, db); //--- 3. FINALIZE THIS DESPESA CARTAO query = "UPDATE tblDespesaCartao " + "SET IDSituacao = 2 " + "WHERE IDDespesa = @IDDespesa"; db.LimparParametros(); db.AdicionarParametros("@IDDespesa", despesa.IDDespesa); db.ExecutarManipulacao(CommandType.Text, query); //--- 4. GET CARTAO OBJECT var cartao = new APagarCartaoBLL().GetCartaoCreditoDespesa(despesa.IDCartaoCredito, db); //--- 5. GENERATE NEW APAGAR WITH SUM OF VALUES var newPag = new objAPagar(null) { IDSetor = despesa.IDSetor, IDSituacao = 1, APagarValor = despesa.DespesaValor, IDAPagarForma = cartao.IDAPagarForma, IDCredor = despesa.IDCredor, IDDespesa = (long)despesa.IDDespesa, Identificador = $"{despesa.ReferenciaData.Month:D2}-{despesa.ReferenciaData.Year}", Parcela = 1, Vencimento = despesa.ReferenciaData, ReferenciaMes = despesa.ReferenciaData.Month, ReferenciaAno = despesa.ReferenciaData.Year, }; new APagarBLL().InsertAPagarList(new List <objAPagar>() { newPag }, db); //--- COMMIT TRANSACTION db.CommitTransaction(); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// VERIFY DESPESA BEFORE DELETE //------------------------------------------------------------------------------------------------------------ public bool VerifyBeforeDelete(objDespesaCartao despesa, ref List <objAPagar> listAPagar, ref List <objMovimentacao> listMovSaidas, AcessoDados dbTran) { try { long IDDespesa = (long)despesa.IDDespesa; // VERIFY IMAGEM //------------------------------------------------------------------------------------------------------------ if (despesa.Imagem != null && !string.IsNullOrEmpty(despesa.Imagem.ImagemFileName)) { throw new AppException("A despesa não pode ser excluída pois possui uma imagem vinculada a ela..."); } // GET APAGAR //------------------------------------------------------------------------------------------------------------ listAPagar = new APagarBLL().GetListAPagarByDespesa(IDDespesa, dbTran); // VERIFY APAGAR //------------------------------------------------------------------------------------------------------------ bool err = false; string errMessage = "Os a PAGAR abaixo possuem pagamentos...\n"; Action <objAPagar> addMessage = (pagar) => { errMessage += $"Reg.: {pagar.IDAPagar:D4} {pagar.Vencimento.ToShortDateString()}\n"; err = true; }; listAPagar.Where(x => x.IDSituacao == 2).ToList().ForEach(addMessage); if (err == true) { errMessage += "Favor estornar antes os pagamentos se deseja EXCLUIR a despesa."; throw new AppException(errMessage); } // VERIFY APAGAR IMAGES //------------------------------------------------------------------------------------------------------------ errMessage = "Os APagar abaixo possuem IMAGEM associada\n"; listAPagar.Where(x => x.Imagem != null && !string.IsNullOrEmpty(x.Imagem.ImagemFileName)).ToList().ForEach(addMessage); if (err == true) { errMessage += "Favor remover/desassociar as imagens do APagar se deseja EXCLUIR a despesa."; throw new AppException(errMessage); } // VERIFY MOVIMENTACAO SAIDA FROM APAGAR //------------------------------------------------------------------------------------------------------------ MovimentacaoBLL mBLL = new MovimentacaoBLL(); listMovSaidas = new List <objMovimentacao>(); if (listAPagar.Count > 0) { foreach (objAPagar pagar in listAPagar) { listMovSaidas.AddRange(mBLL.GetMovimentacaoListByOrigem(EnumMovOrigem.APagar, (long)pagar.IDAPagar, true, dbTran)); } } // VERIFY RECEBIMENTOS WITH CAIXA OR BLOCKED //------------------------------------------------------------------------------------------------------------ errMessage = "Essa Despesa possui pagamentos que foram inseridas no caixa...\n"; Action <objMovimentacao> addMessageMov = (saida) => { errMessage += $"Reg.: {saida.IDMovimentacao:D4} | {saida.MovData.ToShortDateString()} | Caixa: {saida.IDCaixa:D4}\n"; err = true; }; listMovSaidas.Where(x => x.IDCaixa != null).ToList().ForEach(addMessageMov); if (err == true) { errMessage += "Favor remover o(s) caixa(s) se desejar EXCLUIR a(s) DESPESA."; throw new AppException(errMessage); } // VERIFY MOVIMENTACAO SAIDA IMAGES //------------------------------------------------------------------------------------------------------------ errMessage = "As Saídas abaixo possuem IMEGEM associada\n"; listMovSaidas.Where(x => x.Imagem != null && !string.IsNullOrEmpty(x.Imagem.ImagemFileName)).ToList().ForEach(addMessageMov); if (err == true) { errMessage += "Favor remover/desassociar as imagens das Saídas se deseja EXCLUIR a despesa."; throw new AppException(errMessage); } return(true); } catch (Exception ex) { throw ex; } }
// DELETE //------------------------------------------------------------------------------------------------------------ public bool DeleteDespesaCartao(objDespesaCartao despesa) { AcessoDados dbTran = null; try { dbTran = new AcessoDados(); dbTran.BeginTransaction(); // 1 - CHECK APagar and Movimentacao Saida //------------------------------------------------------------------------------------------------------------ List <objAPagar> listAPagar = new List <objAPagar>(); List <objMovimentacao> listMovSaidas = new List <objMovimentacao>(); if (!VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran)) { return(false); } // 2 - Return with all APAGAR vinculadas --> convert all to EM ABERTO //------------------------------------------------------------------------------------------------------------ var ListVinculadas = ListAPagarCartaoVinculadas((long)despesa.IDDespesa, dbTran); foreach (var pag in ListVinculadas) { RemoverVinculoAPagarItem((long)pag.IDAPagar, dbTran); } // 3 - delete ALL APAGAR //------------------------------------------------------------------------------------------------------------ if (listAPagar.Count > 0) { APagarBLL pBLL = new APagarBLL(); foreach (objAPagar pagar in listAPagar) { pBLL.DeleteAPagar(pagar, dbTran); } } // 4 - delete DESPESA CARTAO //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query string query = "DELETE tblDespesaCartao WHERE IDDespesa = @IDDespesa"; //--- DELETE dbTran.ExecutarManipulacao(CommandType.Text, query); // 5 - delete DESPESA //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query query = "DELETE tblDespesa WHERE IDDespesa = @IDDespesa"; //--- DELETE dbTran.ExecutarManipulacao(CommandType.Text, query); // 6 - COMMIT AND RETURN //------------------------------------------------------------------------------------------------------------ dbTran.CommitTransaction(); return(true); } catch (AppException ex) { dbTran.RollBackTransaction(); throw ex; } catch (Exception ex) { dbTran.RollBackTransaction(); throw ex; } }
// INSERT DESPESA AND DESPESA CARTAO //------------------------------------------------------------------------------------------------------------ public objDespesaCartao InsertDespesaCartao(objAPagarCartao cartao, DateTime ReferenciaData, object dbTran = null) { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; try { db = new AcessoDados(); if (dbTran == null) { db.BeginTransaction(); } var descricao = $"Fatura de Cartão {cartao.CartaoDescricao}"; if (descricao.Length > 200) { descricao = descricao.Substring(0, 199); } var despesa = new objDespesaCartao(null) { IDCredor = cartao.IDCredorCartao, Credor = cartao.CredorCartao, DespesaDescricao = descricao, DespesaOrigem = 3, // CARTAO DespesaValor = 0, DespesaData = ReferenciaData, IDSetor = cartao.IDSetorCartao, Setor = cartao.SetorCartao, IDDespesaTipo = 0, IDTitular = null, DespesaTipo = "Outras", CartaoDescricao = cartao.CartaoDescricao, IDCartaoCredito = (int)cartao.IDCartaoCredito, VencimentoDia = cartao.VencimentoDia, IDSituacao = 1, Situacao = "Em Aberto", Imagem = null, ReferenciaData = ReferenciaData, }; //--- insert DESPESA and Get new ID long newID = new DespesaBLL().InsertDespesa(despesa, db); despesa.IDDespesa = newID; //--- insert DESPESA CARTAO InsertDespesaCartao(despesa, db); if (dbTran == null) { db.CommitTransaction(); } return(despesa); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } throw ex; } }