// INSERT DESPESA DATA PERIODO //------------------------------------------------------------------------------------------------------------ private void InsertDespesaDataPeriodo(objDespesaComum desp, AcessoDados dbTran) { try { //--- check DataInicial and DataFinal if (desp.DataInicial == null || desp.DataFinal == null) { return; } //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@IDDespesa", desp.IDDespesa); dbTran.AdicionarParametros("@DataInicial", desp.DataInicial); dbTran.AdicionarParametros("@DataFinal", desp.DataFinal); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateInsertSQL("tblDespesaDataPeriodo"); //--- insert dbTran.ExecutarManipulacao(CommandType.Text, query); } catch (Exception ex) { throw ex; } }
// EDITAR DESPESA ESCOLHIDA //------------------------------------------------------------------------------------------------------------ private void btnVisualizar_Click(object sender, EventArgs e) { if (_formOrigem != null && _formOrigem.Name == "frmProvisorio") { Escolher(); } else { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Editar...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem; frmDespesa frm = new frmDespesa(item, this); frm.MdiParent = Application.OpenForms.OfType <frmPrincipal>().FirstOrDefault(); DesativaMenuPrincipal(); Close(); frm.Show(); } }
// INSERT DESPESA COMUM //------------------------------------------------------------------------------------------------------------ private void InsertDespesaComum(objDespesaComum desp, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@IDDespesa", desp.IDDespesa); dbTran.AdicionarParametros("@DocumentoNumero", desp.DocumentoNumero); dbTran.AdicionarParametros("@IDDocumentoTipo", desp.IDDocumentoTipo); dbTran.AdicionarParametros("@IDSituacao", desp.IDSituacao); dbTran.AdicionarParametros("@Parcelas", desp.Parcelas); dbTran.AdicionarParametros("@Prioridade", desp.Prioridade); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateInsertSQL("tblDespesaComum"); //--- 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 objDespesaComum item = (objDespesaComum)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; } }
// EXCLUIR DESPESA //------------------------------------------------------------------------------------------------------------ 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 objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; // --- ask USER var resp = AbrirDialog("Você deseja realmente EXCLUIR definitivamente a Despesa abaixo?\n" + $"\nREG: {item.IDDespesa:D4}\nDATA: {item.DespesaData.ToShortDateString()}\nVALOR: {item.DespesaValor:c}", "Excluir Despesa", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } //--- EXECUTE DELETE dBLL.DeleteDespesaComum(item); //--- REQUERY LIST ObterDados(); AbrirDialog("Despesa Excluída com Sucesso!", "Despesa Excluída"); } catch (AppException ex) { AbrirDialog("A Despesa 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 Despesa..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// DEFINE DESPESA TO SAVE //------------------------------------------------------------------------------------------------------------ private objDespesaComum DefineDespesa(List <objComissao> comissoes, DateTime PagData, decimal Total) { // create format Identificador string desc = "Pag. Comissão: " + comissoes[0].Credor; if (desc.Length > 200) { desc.Substring(0, 200); } // create format Doc. Numero string Id = ""; comissoes.ForEach(x => Id += ((int)x.IDComissao).ToString("D2") + " | "); Id = Id.Substring(0, Id.Length - 3); if (Id.Length > 30) { Id = Id.Substring(0, 30); } // get dtInicial a dtFinal DateTime despDtInicial = comissoes.Min(x => x.DataInicial); DateTime despDtFinal = comissoes.Max(x => x.DataFinal); var despesa = new objDespesaComum(null) { Credor = comissoes[0].Credor, DespesaData = PagData, CNP = "", DataFinal = despDtFinal, DataInicial = despDtInicial, DespesaDescricao = desc, DespesaOrigem = 1, DespesaTipo = "Comissão Colaborador", DespesaValor = Total, DocumentoNumero = Id, DocumentoTipo = "Recibo Próprio", // recibo proprio IDCredor = comissoes[0].IDCredor, IDDespesa = null, IDDespesaTipo = 1, IDDocumentoTipo = 4, IDSetor = comissoes[0].IDSetor, IDSituacao = 2, IDTitular = null, Parcelas = 1, Setor = comissoes[0].Setor, Situacao = "Quitada", }; return(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 objDespesaComum item = (objDespesaComum)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; } }
// CHECK DESPESA REALIZADA BEFORE ANEXAR //------------------------------------------------------------------------------------------------------------ private bool VerificaDespesaAnexada(objDespesaComum newDesp) { // check data if (newDesp.DespesaData < _provisoria.RetiradaData) { AbrirDialog("A despesa realizada não pode ter uma data anterior à data da despesa provisória...\n" + $"Favor escolher uma despesa com data igual ou depois de {_provisoria.RetiradaData.ToShortDateString()}.", "Anexar Despesa Realizada", DialogType.OK, DialogIcon.Information); return(false); } // check situacao if (newDesp.IDSituacao == 1) { AbrirDialog("A despesa realizada não pode estar em aberto, precisa estar quitada..." + "\nFavor escolher uma despesa quitada.", "Anexar Despesa Realizada", DialogType.OK, DialogIcon.Information); return(false); } // check Despesa Already Anexada try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; if (provBLL.DespesaAlreadyVinculada((long)newDesp.IDDespesa)) { AbrirDialog("Essa despesa escolhida já está anexada/vinculada com uma Despesa Provisória..." + "\nFavor escolher outra despesa realizada.", "Anexar Despesa Realizada", DialogType.OK, DialogIcon.Information); return(false); } } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao verifica se a despesa já estava vinculada..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } return(true); }
// VERIFICA A SITUACAO DA DESPESA BY SITUACAO APAGAR //------------------------------------------------------------------------------------------------------------ private void mnuVerificaSituacao_Click(object sender, EventArgs e) { //--- check selected item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro para Verificar a Situação...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } //--- get Selected item objDespesaComum item = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; var result = dBLL.CheckSituacaoDespesa(item); if (result) { ObterDados(); AbrirDialog("Situação da Despesa foi verificada." + "\nA Situação da Despesa foi corrigida.", "Situação Corrigida"); } else { AbrirDialog("Situação da Despesa verificada..." + "\nNão foi encontrado nenhum erro.", "Situação Verificada"); } } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Verificar a situação da despesa..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// PAGAR LIST OF COMISSAO AND CHANGE SITUATION //------------------------------------------------------------------------------------------------------------ public long ComissoesPagamento( List <objComissao> list, objDespesaComum despesa, objAPagar pagar, objMovimentacao saida, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate) { AcessoDados dbTran = null; try { dbTran = new AcessoDados(); dbTran.BeginTransaction(); // insert new Despesa Realizada | Gasto var despBLL = new DespesaComumBLL(); long newID = despBLL.InsertDespesaRealizada(despesa, pagar, saida, ContaSldLocalUpdate, SetorSldLocalUpdate, dbTran); // update all comissoes to PAGO string query = "UPDATE tblComissoes SET " + "IDSituacao = 3, " + "IDDespesa = @IDDespesa " + "WHERE IDComissao = @IDComissao"; foreach (var comissao in list) { dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", newID); dbTran.AdicionarParametros("@IDComissao", comissao.IDComissao); dbTran.ExecutarManipulacao(CommandType.Text, query); } dbTran.CommitTransaction(); return(newID); } catch (Exception ex) { dbTran.RollBackTransaction(); throw ex; } }
// INSERT DESPESA COMUM //------------------------------------------------------------------------------------------------------------ public long InsertDespesaComum(objDespesaComum desp, ref List <objAPagar> listAPagar, object dbTran = null) { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; try { //--- Init Transaction if (dbTran == null) { db.BeginTransaction(); } //--- insert Despesa var newID = new DespesaBLL().InsertDespesa(desp, db); //--- insert Despesa Comum desp.IDDespesa = newID; InsertDespesaComum(desp, db); //--- insert DespesaDataPeriodo if necessary InsertDespesaDataPeriodo(desp, db); //--- insert IDDespesa in APagar List items listAPagar.ForEach(x => x.IDDespesa = newID); //--- save APagar items new APagarBLL().InsertAPagarList(listAPagar, db); if (dbTran == null) { db.CommitTransaction(); } return(newID); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } throw ex; } }
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 objDespesaComum desp = (objDespesaComum)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)); }
// ANEXAR DESPESA //------------------------------------------------------------------------------------------------------------ private void btnAnexarDespesa_Click(object sender, EventArgs e) { var frm = new frmDespesaListagem(this); frm.ShowDialog(); if (frm.DialogResult != DialogResult.OK) { return; } objDespesaComum newDesp = frm.propEscolha; if (VerificaDespesaAnexada(newDesp) == false) { return; } //--- save SaveAttachDespesa(newDesp); _provisoria.EndEdit(); Sit = EnumFlagEstado.RegistroSalvo; }
// INSERIR NOVA DESPESA GASTO //------------------------------------------------------------------------------------------------------------ private void btnInserirDespesa_Click(object sender, EventArgs e) { try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; frmGasto frm = new frmGasto(new objDespesaComum(null), _provisoria.IDConta, _provisoria.RetiradaData); frm.ShowDialog(); //--- check inserted Despesa if (frm.DialogResult != DialogResult.OK) { return; } //--- check Despesa Realizada objDespesaComum newDesp = frm.propDespesa; if (VerificaDespesaAnexada(newDesp) == false) { return; } //--- save SaveAttachDespesa(newDesp); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Abrir o formulário de Despesa Realizada..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// CONVERT ROW IN CLASS //------------------------------------------------------------------------------------------------------------ public objDespesaComum ConvertRowInClass(DataRow row) { objDespesaComum despesa = new objDespesaComum((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"], IDDocumentoTipo = (byte)row["IDDocumentoTipo"], DocumentoTipo = (string)row["DocumentoTipo"], DespesaValor = (decimal)row["DespesaValor"], DocumentoNumero = (string)row["DocumentoNumero"], IDSetor = (int)row["IDSetor"], Setor = (string)row["Setor"], IDSituacao = (byte)row["IDSituacao"], Situacao = (string)row["Situacao"], Parcelas = (byte)row["Parcelas"], Prioridade = (byte)row["Prioridade"], IDTitular = row["IDTitular"] == DBNull.Value ? null : (int?)row["IDTitular"], Titular = row["Titular"] == DBNull.Value ? null : (string)row["Titular"], CNP = row["CNP"] == DBNull.Value ? null : (string)row["CNP"], DataFinal = row["DataFinal"] == DBNull.Value ? null : (DateTime?)row["DataFinal"], DataInicial = row["DataInicial"] == DBNull.Value ? null : (DateTime?)row["DataInicial"], }; // 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); }
// CRIAR DESPESA DE PAGAMENTO | SAIDA //------------------------------------------------------------------------------------------------------------ private void PagarComissoesSelected() { // create list of selected comissao //--------------------------------------------------------------------- List <objComissao> selected = new List <objComissao>(); foreach (DataGridViewRow row in dgvListagem.Rows) { bool marked = row.Cells[0].Value == null ? false : (bool)row.Cells[0].Value; if (marked) { selected.Add((objComissao)row.DataBoundItem); } } // check same colaborador //--------------------------------------------------------------------- if (selected.GroupBy(x => x.IDCredor).Count() > 1) { AbrirDialog("As Comissões selecionadas pertencem a diversos COLABORADORES diferentes..." + "\nAs Comissões selecionadas devem ser de um ÚNICO Colaborador." + "\nFavor selecionar comissões do mesmo colaborador." , "Diversos Colaboradores", DialogType.OK, DialogIcon.Exclamation); return; } // check total //--------------------------------------------------------------------- decimal total = selected.Sum(x => x.ValorComissao); // --- ask USER //--------------------------------------------------------------------- string mesage = nItemsSelected > 1 ? $"das {nItemsSelected:00} Comissões selecionadas?" : "da Comissão selecionada?"; var resp = AbrirDialog("Você deseja realmente REALIZAR O PAGAMENTO " + mesage + $"\n\nCOLABORADOR: {selected[0].Credor}" + $"\nVALOR TOTAL: {total:C}", "Quitar Comissões", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } try { // open form to get info: CONTA and DATE var frm = new frmComissaoQuitarInfo(selected[0], total, this); frm.ShowDialog(); if (frm.DialogResult != DialogResult.OK) { return; } // create apagar and saida objDespesaComum despesa = DefineDespesa(selected, frm.propDataEscolhida, total); objAPagar pagar = DefineAPagar(selected, frm.propDataEscolhida, total); objMovimentacao saida = DefineSaida( frm.propDataEscolhida, (int)frm.propContaEscolhida.IDConta, selected[0].IDSetor, total, frm.propObservacao); // create Gasto: Despesa quitada long newID = cBLL.ComissoesPagamento ( selected, despesa, pagar, saida, ContaSaldoLocalUpdate, SetorSaldoLocalUpdate ); ObterDados(); // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //--- message resp = AbrirDialog("Pagamento efetuado com sucesso na conta e data informados..." + "\nDeseja CONFERIR a Despesa criada?", "Sucesso", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp == DialogResult.Yes) { var frmGt = new Saidas.frmGasto(newID); frmGt.MdiParent = Application.OpenForms[0]; Close(); frmGt.Show(); } } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Efetuar a Finalização das Comissões Selecionadas..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } 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 objDespesaComum item = (objDespesaComum)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; } }
// INSERT DESPESA REALIZADA | GASTO | DESPESA QUITADA //------------------------------------------------------------------------------------------------------------ public long InsertDespesaRealizada( objDespesaComum despesa, objAPagar pagar, objMovimentacao saida, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate, object dbTran = null) { bool IsTran = dbTran != null; try { // create transaction if (!IsTran) { dbTran = new AcessoDados(); } if (!IsTran) { ((AcessoDados)dbTran).BeginTransaction(); } // Verifica CONTA SALDO ContaBLL cBLL = new ContaBLL(); decimal saldoAtual = cBLL.ContaSaldoGet((int)saida.IDConta, dbTran); if (saida.MovValor > saldoAtual) { throw new AppException("Não existe SALDO SUFICIENTE na conta para realizar esse débito...", 1); } // Verifica CONTA BLOQUEIO if (!cBLL.ContaDateBlockPermit((int)saida.IDConta, saida.MovData, dbTran)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Débito proposto...", 2); } // create APagar list List <objAPagar> listPag = new List <objAPagar>(); listPag.Add(pagar); // insert Despesa AND APagar despesa.IDSituacao = 2; // quitada long newID = InsertDespesaComum(despesa, ref listPag, dbTran); // insert Saida saida.MovTipo = 2; saida.Origem = EnumMovOrigem.APagar; saida.IDOrigem = (long)listPag[0].IDAPagar; saida.DescricaoOrigem = $"DESPESA: {despesa.DespesaDescricao}"; if (saida.DescricaoOrigem.Length > 250) { saida.DescricaoOrigem = saida.DescricaoOrigem.Substring(0, 250); } new MovimentacaoBLL().InsertMovimentacao(saida, ContaSldLocalUpdate, SetorSldLocalUpdate, dbTran); // commit and return if (!IsTran) { ((AcessoDados)dbTran).CommitTransaction(); } return(newID); } catch (Exception ex) { if (!IsTran) { ((AcessoDados)dbTran).RollBackTransaction(); } throw ex; } }
// DELETE //------------------------------------------------------------------------------------------------------------ public bool DeleteDespesaComum(objDespesaComum 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 - delete ALL APAGAR //------------------------------------------------------------------------------------------------------------ if (listAPagar.Count > 0) { APagarBLL pBLL = new APagarBLL(); foreach (objAPagar pagar in listAPagar) { pBLL.DeleteAPagar(pagar, dbTran); } } // 3 - delete DESPESA COMUM //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query string query = "DELETE tblDespesaComum WHERE IDDespesa = @IDDespesa"; //--- DELETE dbTran.ExecutarManipulacao(CommandType.Text, query); // 4 - delete DESPESA DATA PERIODO //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query query = "DELETE tblDespesaDataPeriodo 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 - UPDATE REMOVE DESPESA COMISSAO reference //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query query = "UPDATE tblComissoes SET IDDespesa = null WHERE IDDespesa = @IDDespesa"; //--- UPDATE dbTran.ExecutarManipulacao(CommandType.Text, query); // 7 - COMMIT AND RETURN //------------------------------------------------------------------------------------------------------------ dbTran.CommitTransaction(); return(true); } catch (AppException ex) { dbTran.RollBackTransaction(); throw ex; } catch (Exception ex) { dbTran.RollBackTransaction(); throw ex; } }
// VERIFY DESPESA BEFORE DELETE //------------------------------------------------------------------------------------------------------------ public bool VerifyBeforeDelete(objDespesaComum 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; } }
private void Escolher() { //--- get Selected item propEscolha = (objDespesaComum)dgvListagem.SelectedRows[0].DataBoundItem; DialogResult = DialogResult.OK; }
// DELETE //------------------------------------------------------------------------------------------------------------ public bool DeleteDespesaPeriodica(objDespesaPeriodica periodica) { AcessoDados dbTran = null; //--- get despesa from periodica objDespesaComum despesa = new objDespesaComum(periodica.IDDespesa) { DespesaDescricao = periodica.DespesaDescricao, DespesaOrigem = periodica.DespesaOrigem, DespesaValor = periodica.DespesaValor, DespesaData = periodica.DespesaData, IDCredor = periodica.IDCredor, IDSetor = periodica.IDSetor, IDDespesaTipo = periodica.IDDespesaTipo, }; try { dbTran = new AcessoDados(); dbTran.BeginTransaction(); // 1 - CHECK APagar and Movimentacao Saida //------------------------------------------------------------------------------------------------------------ List <objAPagar> listAPagar = new List <objAPagar>(); List <objMovimentacao> listMovSaidas = new List <objMovimentacao>(); DespesaComumBLL dBLL = new DespesaComumBLL(); if (!dBLL.VerifyBeforeDelete(despesa, ref listAPagar, ref listMovSaidas, dbTran)) { return(false); } // 2 - delete ALL APAGAR //------------------------------------------------------------------------------------------------------------ if (listAPagar.Count > 0) { APagarBLL pBLL = new APagarBLL(); foreach (objAPagar pagar in listAPagar) { pBLL.DeleteAPagar(pagar, dbTran); } } // 3 - delete DESPESA COMUM //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query string query = "DELETE tblDespesaPeriodica WHERE IDDespesa = @IDDespesa"; //--- DELETE dbTran.ExecutarManipulacao(CommandType.Text, query); // 4 - delete DESPESA DATA PERIODO //------------------------------------------------------------------------------------------------------------ //--- define Params dbTran.LimparParametros(); dbTran.AdicionarParametros("@IDDespesa", despesa.IDDespesa); dbTran.ConvertNullParams(); //--- create query query = "DELETE tblDespesaDataPeriodo 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); // 7 - COMMIT AND RETURN //------------------------------------------------------------------------------------------------------------ dbTran.CommitTransaction(); return(true); } catch (AppException ex) { dbTran.RollBackTransaction(); throw ex; } catch (Exception ex) { dbTran.RollBackTransaction(); throw ex; } }
// CRIAR DESPESA DE PAGAMENTO | SAIDA //------------------------------------------------------------------------------------------------------------ private void PagarComissao() { // create list of comissao //--------------------------------------------------------------------- List <objComissao> selected = new List <objComissao>(); selected.Add(_comissao); // check total //--------------------------------------------------------------------- decimal total = _comissao.ValorComissao; // --- ask USER //--------------------------------------------------------------------- var resp = AbrirDialog("Você deseja realmente REALIZAR O PAGAMENTO da Comissão selecionada?" + $"\n\nCOLABORADOR: {_comissao.Credor}" + $"\nVALOR TOTAL: {total:C}", "Quitar Comissões", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } try { // open form to get info: CONTA and DATE var frm = new frmComissaoQuitarInfo(selected[0], total, this); frm.ShowDialog(); if (frm.DialogResult != DialogResult.OK) { return; } // create apagar and saida objDespesaComum despesa = DefineDespesa(selected, frm.propDataEscolhida, total); objAPagar pagar = DefineAPagar(selected, frm.propDataEscolhida, total); objMovimentacao saida = DefineSaida( frm.propDataEscolhida, (int)frm.propContaEscolhida.IDConta, selected[0].IDSetor, total, frm.propObservacao); // create Gasto: Despesa quitada long newID = cBLL.ComissoesPagamento ( selected, despesa, pagar, saida, ContaSaldoLocalUpdate, SetorSaldoLocalUpdate ); _comissao.IDDespesa = newID; _comissao.IDSituacao = 3; _comissao.EndEdit(); DefineSituacao(); // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //--- message resp = AbrirDialog("Pagamento efetuado com sucesso na conta e data informados..." + "\nDeseja CONFERIR a Despesa criada?", "Sucesso", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp == DialogResult.Yes) { var frmGt = new Saidas.frmGasto(newID); frmGt.MdiParent = Application.OpenForms[0]; Close(); frmGt.Show(); } } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Efetuar a Finalização das Comissões Selecionadas..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// VERIFY DESPESA SITUACAO BY LIST OF APAGAR //------------------------------------------------------------------------------------------------------------ public bool CheckSituacaoDespesa(objDespesaComum despesa) { // return TRUE when IDSitucao is Changed | FALSE when nothing changed try { var dbTran = new AcessoDados(); var lstAPagar = new APagarBLL().GetListAPagarByDespesa((long)despesa.IDDespesa, dbTran); if (lstAPagar.Count == 0) { throw new Exception("Não foram encontrados registros de APagar referentes a essa Despesa..."); } byte?newSituacao = null; foreach (objAPagar item in lstAPagar) { switch (item.IDSituacao) { case 1: // EM ABERTO if (newSituacao == null || newSituacao == 2) { newSituacao = 1; } break; case 2: // QUITADA if (newSituacao == null) { newSituacao = 2; } break; case 3: // CANCELADA if (newSituacao == null || newSituacao < 3) { newSituacao = 3; } break; case 4: // NEGOCIADA if (newSituacao == null || newSituacao < 4) { newSituacao = 4; } break; case 5: // NEGATIVADA if (newSituacao == null || newSituacao < 5) { newSituacao = 5; } break; default: break; } } if ((byte)newSituacao != despesa.IDSituacao) { despesa.IDSituacao = (byte)newSituacao; // change situacao ChangeSituacaoDespesa((long)despesa.IDDespesa, (byte)newSituacao, dbTran); // return return(true); } else { // return nothing changed return(false); } } catch (Exception ex) { throw ex; } }