public frmAPagarQuitar(objAPagar pag, Form formOrigem) { InitializeComponent(); _formOrigem = formOrigem; _apagar = pag; propSaida = new objMovimentacao(null); CarregaComboMes(); HandlerKeyDownControl(this); numSaidaAno.KeyDown += control_KeyDown; numSaidaAno.Enter += Control_Enter; numSaidaDia.KeyDown += control_KeyDown; numSaidaDia.Enter += Control_Enter; // get default Conta and Setor ContaSelected = ContaPadrao(); // get SETOR if (SetorPadrao().IDSetor == pag.IDSetor) { SetorSelected = SetorPadrao(); } else { SetorSelected = GetSetor(pag.IDSetor); } if (ContaSelected == null | SetorSelected == null) { return; } DefineValoresIniciais(); }
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 objMovimentacao recItem = (objMovimentacao)dgvListagem.Rows[hit.RowIndex].DataBoundItem; // mnuVerPagamentos /* * 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)); }
// INSERT MOVIMENTACAO ACRESCIMO //------------------------------------------------------------------------------------------------------------ private void InsertMovimentacaoAcrescimo(objMovimentacao mov, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@IDMovimentacao", mov.IDMovimentacao); dbTran.AdicionarParametros("@AcrescimoValor", mov.AcrescimoValor); dbTran.AdicionarParametros("@IDAcrescimoMotivo", mov.IDAcrescimoMotivo); //--- convert null parameters dbTran.ConvertNullParams(); string query = "INSERT INTO tblMovAcrescimo " + "(IDMovimentacao, AcrescimoValor, IDAcrescimoMotivo) " + "VALUES " + "(@IDMovimentacao, @AcrescimoValor, @IDAcrescimoMotivo)"; //--- execute INSERT dbTran.ExecutarManipulacao(CommandType.Text, query); } catch (Exception ex) { throw ex; } }
// CONVERT ROW IN CLASS //------------------------------------------------------------------------------------------------------------ public objMovimentacao ConvertRowInClass(DataRow row, bool hasAcrescimo) { objMovimentacao Movimentacao = new objMovimentacao((long)row["IDMovimentacao"]) { MovTipo = (byte)row["MovTipo"], // 1: ENTRADA | 2: SAIDA | 3: TRANSFERENCIA MovTipoDescricao = (string)row["MovTipoDescricao"], Origem = (EnumMovOrigem)row["Origem"], IDOrigem = (long)row["IDOrigem"], MovData = (DateTime)row["MovData"], MovValor = (decimal)row["MovValor"], MovValorAbsoluto = (decimal)row["MovValorAbsoluto"], IDConta = row["IDConta"] == DBNull.Value ? null : (int?)row["IDConta"], Conta = row["Conta"] == DBNull.Value ? null : (string)row["Conta"], IDSetor = row["IDSetor"] == DBNull.Value ? null : (int?)row["IDSetor"], Setor = row["Setor"] == DBNull.Value ? null : (string)row["Setor"], IDCaixa = row["IDCaixa"] == DBNull.Value ? null : (long?)row["IDCaixa"], DescricaoOrigem = (string)row["DescricaoOrigem"], Consolidado = (bool)row["Consolidado"], }; if (hasAcrescimo) // ADD ACRESCIMO and IMAGEM { Movimentacao.AcrescimoValor = row["AcrescimoValor"] == DBNull.Value ? null : (decimal?)row["AcrescimoValor"]; Movimentacao.AcrescimoMotivo = row["AcrescimoMotivo"] == DBNull.Value ? string.Empty : (string)row["AcrescimoMotivo"]; Movimentacao.IDAcrescimoMotivo = row["IDAcrescimoMotivo"] == DBNull.Value ? null : (byte?)row["IDAcrescimoMotivo"]; Movimentacao.Imagem.ImagemPath = row["ImagemPath"] == DBNull.Value ? string.Empty : (string)row["ImagemPath"]; Movimentacao.Imagem.ImagemFileName = row["ImagemFileName"] == DBNull.Value ? string.Empty : (string)row["ImagemFileName"]; } return(Movimentacao); }
// ESTORNAR private void btnEstornar_Click(object sender, EventArgs e) { //--- check selecteded item if (dgvListagem.SelectedRows.Count == 0) { AbrirDialog("Favor selecionar um registro de Pagamento para Estornar...", "Selecionar Registro", DialogType.OK, DialogIcon.Information); return; } try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; //--- verifica USER PERMIT if (!CheckAuthorization(EnumAcessoTipo.Usuario_Senior, $"Estornar a Saída de APagar", this)) { return; } //--- Pergunta ao USER objMovimentacao saida = (objMovimentacao)dgvListagem.SelectedRows[0].DataBoundItem; var resp = AbrirDialog($"Você deseja realmente ESTORNAR este registro de PAGAMENTO selecionado?\n" + $"DATA: {saida.MovData.ToShortDateString()}\nVALOR: {saida.MovValorAbsoluto:c}\n{saida.Conta}", "Estornar Pagamento", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp == DialogResult.No) { return; } // EXECUTE pBLL.EstornarAPagar(_apagar, saida, ContaSaldoLocalUpdate, SetorSaldoLocalUpdate); // binding bindSaida.RemoveCurrent(); DefineValueLabels(); // MESSAGE AbrirDialog("Pagamento Estornado com sucesso...", "Estorno"); btnQuitar.Enabled = true; btnConcederDesconto.Enabled = true; } catch (AppException ex) { AbrirDialog("Estorno não pôde ser realizado...\n" + ex.Message, "Conta Data Bloqueada", DialogType.OK, DialogIcon.Information); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Estornar Pagamento..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
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 objMovimentacao item = (objMovimentacao)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; } }
//--- 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 objMovimentacao item = (objMovimentacao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; /* * Entradas.frmContribuicao frm = new Entradas.frmContribuicao(item.IDContribuicao); * Visible = false; * frm.ShowDialog(); * DesativaMenuPrincipal(); * Visible = true; */ } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Abrir a Origem..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// QUITAR A PAGAR AND INSERT NEW SAIDA //------------------------------------------------------------------------------------------------------------ public long QuitarAPagar( objAPagar apagar, objMovimentacao saida, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate) { AcessoDados dbTran = null; try { dbTran = new AcessoDados(); dbTran.BeginTransaction(); // Verifica CONTA SALDO ContaBLL cBLL = new ContaBLL(); decimal saldoAtual = cBLL.ContaSaldoGet((int)saida.IDConta, dbTran); if (Math.Abs(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); } // Inserir SAIDA saida.DescricaoOrigem = apagar.DespesaDescricao; long newID = new MovimentacaoBLL().InsertMovimentacao(saida, ContaSldLocalUpdate, SetorSldLocalUpdate, dbTran); saida.IDMovimentacao = newID; // Change APAGAR decimal DoValor = Math.Abs(saida.MovValor) - (saida.AcrescimoValor ?? 0); apagar.ValorAcrescimo += saida.AcrescimoValor ?? 0; apagar.ValorPago += DoValor; if (apagar.ValorPago >= apagar.APagarValor - apagar.ValorDesconto) { apagar.PagamentoData = saida.MovData; apagar.IDSituacao = 2; apagar.Situacao = "Quitada"; } // Update APAGAR UpdateAPagar(apagar, dbTran); dbTran.CommitTransaction(); return(newID); } catch (Exception ex) { dbTran.RollBackTransaction(); throw ex; } }
// 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); }
// ESTORNAR A PAGAR AND DELETE SAIDA //------------------------------------------------------------------------------------------------------------ public bool EstornarAPagar( objAPagar apagar, objMovimentacao saida, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate) { AcessoDados dbTran = null; try { dbTran = new AcessoDados(); dbTran.BeginTransaction(); // Verifica CONTA BLOQUEIO ContaBLL cBLL = new ContaBLL(); if (!cBLL.ContaDateBlockPermit((int)saida.IDConta, saida.MovData, dbTran)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data proposta...", 2); } // CHECK SOURCE DESPESA IS DESPESA COMUM AND CHANGE SITUACAO if (apagar.DespesaOrigem == 1) { var dBLL = new DespesaComumBLL(); dBLL.ChangeSituacaoDespesa(apagar.IDDespesa, 1, dbTran); } // DELETE REMOVE SAIDA new MovimentacaoBLL().DeleteMovimentacao((long)saida.IDMovimentacao, ContaSldLocalUpdate, SetorSldLocalUpdate, dbTran); // Change APAGAR decimal DoValor = saida.MovValor - (saida.AcrescimoValor ?? 0); apagar.ValorAcrescimo -= saida.AcrescimoValor ?? 0; apagar.ValorPago += DoValor; apagar.PagamentoData = null; apagar.IDSituacao = 1; apagar.Situacao = "Em Aberto"; // Update APAGAR UpdateAPagar(apagar, dbTran); dbTran.CommitTransaction(); return(true); } catch (Exception ex) { dbTran.RollBackTransaction(); throw ex; } }
// INSERT //------------------------------------------------------------------------------------------------------------ public long InsertEntrada( objEntrada cont, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate) { AcessoDados db = new AcessoDados(); long? newID = null; objMovimentacao entrada = null; try { db.BeginTransaction(); //--- Check Conta Bloqueio if (!new ContaBLL().ContaDateBlockPermit(cont.IDConta, cont.EntradaData, db)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Crédito proposta...", 2); } //--- Insert Entrada newID = AddEntrada(cont, db); //--- Create NEW Entrada entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = cont.IDConta, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Entrada, MovData = cont.EntradaData, MovValor = cont.EntradaValor, Consolidado = true, DescricaoOrigem = "ENTRADA: " + cont.EntradaOrigem.OrigemDescricao, }; //--- Insert MOVIMENTACAO Entrada new MovimentacaoBLL().InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); if (newID == 0) { throw new Exception("Não foi possível inserir um novo registro de Entrada..."); } db.CommitTransaction(); return((long)newID); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// CONTROLA AS CORES DA LISTAGEM //------------------------------------------------------------------------------------------------------------ private void dgvListagem_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == clnMovTipoDescricao.Index) { objMovimentacao mov = (objMovimentacao)dgvListagem.Rows[e.RowIndex].DataBoundItem; if (mov.MovTipoDescricao == "SAÍDA") { 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 (mov.MovTipoDescricao == "ENTRADA") { dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.FromArgb(227, 231, 234); dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = SystemColors.Highlight; } else if (mov.MovTipoDescricao == "TRANSFERÊNCIA") { dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Honeydew; dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = Color.DarkSeaGreen; //dgvListagem.Rows[e.RowIndex].DefaultCellStyle.Font = clnFont; e.CellStyle.Font = clnFont; e.CellStyle.ForeColor = Color.DarkGreen; e.CellStyle.SelectionForeColor = Color.Honeydew; } } else if (e.ColumnIndex == clnValorReal.Index) { objMovimentacao mov = (objMovimentacao)dgvListagem.Rows[e.RowIndex].DataBoundItem; if (mov.MovValor >= 0) { e.CellStyle.ForeColor = Color.DarkBlue; e.CellStyle.SelectionForeColor = Color.White; e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } else { e.CellStyle.ForeColor = Color.Red; e.CellStyle.SelectionForeColor = Color.Yellow; e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } } else if (e.ColumnIndex == clnDescricaoOrigem.Index) { e.CellStyle.Font = clnFont; e.CellStyle.WrapMode = DataGridViewTriState.False; } }
//--- OPEN FORM ORIGEM --> CONTRIBUICAO //------------------------------------------------------------------------------------------------------- private void VerOrigemContribuicao(objMovimentacao item) { try { //--- open CONTRIBUICAO form var frm = new Contribuicao.frmContribuicao(item.IDOrigem, this); frm.ShowDialog(); //--- get DATA ObterDados(); } catch (Exception ex) { throw ex; } }
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 objMovimentacao item = (objMovimentacao)dgvListagem.SelectedRows[0].DataBoundItem; DialogResult resp; resp = AbrirDialog("Deseja realmente REMOVER ou DESASSOCIAR a imagem da Movimentação de Saída 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; } }
//--- OPEN FORM ORIGEM --> ARECEBER //------------------------------------------------------------------------------------------------------- private void VerOrigemAReceber(objMovimentacao item) { try { //--- get ARECEBER object objAReceber receber = new AReceberBLL().GetAReceber(item.IDOrigem); AbrirDialog("Movimentação de Entrada de AReceber:\n\n" + $"Forma de Entrada: {receber.EntradaForma.ToUpper()}\n" + $"Data de Compensação: {receber.CompensacaoData:d}\n" + $"Data de Entrada: {item.MovData:d}\n" + $"Valor Recebido: {receber.ValorRecebido:c}", "Entrada de AReceber"); } catch (Exception ex) { 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 objMovimentacao mov = (objMovimentacao)dgvListagem.Rows[hit.RowIndex].DataBoundItem; // mnuImagem if (mov.IDMovimentacao != null) { mnuImagem.Enabled = true; bool IsThereImagem = mov.Imagem != null && !string.IsNullOrEmpty(mov.Imagem.ImagemFileName); mnuImagemRemover.Enabled = IsThereImagem; mnuImagemInserir.Text = IsThereImagem ? "Alterar Imagem" : "Inserir Imagem"; mnuImagemVisualizar.Enabled = IsThereImagem; } else { mnuImagem.Enabled = false; } // revela menu mnuOperacoes.Show(c.PointToScreen(e.Location)); }
// 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; } }
// DEFINE SAIDA TO SAVE //------------------------------------------------------------------------------------------------------------ private objMovimentacao DefineSaida(DateTime PagData, int IDContaEscolhida, int IDSetorEscolhido, decimal Total, string obs) { var saida = new objMovimentacao(null) { IDConta = IDContaEscolhida, IDSetor = IDSetorEscolhido, MovTipo = 2, AcrescimoValor = 0, IDCaixa = null, Origem = EnumMovOrigem.APagar, Observacao = obs, MovData = PagData, MovValor = Total, DescricaoOrigem = "COMISSAO: ", Consolidado = true, }; return(saida); }
//--- OPEN FORM ORIGEM --> TRANSFERENCIA DE CONTA //------------------------------------------------------------------------------------------------------- private void VerOrigemTransferenciaConta(objMovimentacao item) { try { //--- get APAGAR object objTransfConta transfConta = new TransfContaBLL().GetTransfContaByID(item.IDOrigem); //--- open APAGAR form var frm = new Transferencias.frmTransferencia(transfConta, this); frm.ShowDialog(); //--- get DATA ObterDados(); } catch (Exception ex) { throw ex; } }
//--- OPEN FORM ORIGEM --> APAGAR //------------------------------------------------------------------------------------------------------- private void VerOrigemAPagar(objMovimentacao item) { try { //--- get APAGAR object objAPagar pagar = new APagarBLL().GetAPagar(item.IDOrigem); //--- open APAGAR form APagar.frmAPagarSaidas frm = new APagar.frmAPagarSaidas(pagar, this); frm.ShowDialog(); //--- get DATA ObterDados(); } catch (Exception ex) { throw ex; } }
// INSERT TRANSFERENCIA SETOR //------------------------------------------------------------------------------------------------------------ public long InsertTransferenciaSetor(objTransfSetor Transf, Action <int, decimal> SetorSdlUpdate) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); //--- 1. INSERT TRANSF SETOR //------------------------------------------------------------------------------------------------------------ //--- clear Params db.LimparParametros(); //--- params db.AdicionarParametros("@IDSetorEntrada", Transf.IDSetorEntrada); db.AdicionarParametros("@IDSetorSaida", Transf.IDSetorSaida); db.AdicionarParametros("@Descricao", Transf.Descricao); db.AdicionarParametros("@TransfData", Transf.TransfData); db.AdicionarParametros("@TransfValor", Transf.TransfValor); //--- convert null parameters db.ConvertNullParams(); //--- create insert string string query = db.CreateInsertSQL("tblTransfSetor"); //--- insert and Get new ID long newID = db.ExecutarInsertAndGetID(query); //--- 2. INSERT TRANSF ENTRADA //------------------------------------------------------------------------------------------------------------ MovimentacaoBLL mBLL = new MovimentacaoBLL(); //--- create transferencia de entrada objMovimentacao entrada = new objMovimentacao(null) { IDSetor = Transf.IDSetorEntrada, IDCaixa = null, IDConta = null, Origem = EnumMovOrigem.TransfSetor, IDOrigem = newID, MovData = Transf.TransfData, MovValor = Transf.TransfValor, DescricaoOrigem = $"TRANSFERÊNCIA: entrada de {Transf.SetorSaida}", }; //--- execute INSERT ENTRADA MOVIMENTACAO mBLL.InsertMovimentacao(entrada, SetorSdlUpdate, null, db); //--- 3. INSERT TRANSF SAIDA //------------------------------------------------------------------------------------------------------------ //--- create transferencia de entrada objMovimentacao saida = new objMovimentacao(null) { IDSetor = Transf.IDSetorSaida, IDCaixa = null, IDConta = null, Origem = EnumMovOrigem.TransfSetor, IDOrigem = newID, MovData = Transf.TransfData, MovValor = Transf.TransfValor * (-1), DescricaoOrigem = $"TRANSFERÊNCIA: saída para {Transf.SetorEntrada}", }; //--- execute INSERT SAIDA MOVIMENTACAO mBLL.InsertMovimentacao(entrada, null, SetorSdlUpdate, db); //--- COMMIT and RETURN db.CommitTransaction(); return(newID); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// 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 //------------------------------------------------------------------------------------------------------------ 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; } }
// INSERT //------------------------------------------------------------------------------------------------------------ public long InsertMovimentacao( objMovimentacao mov, Action <int, decimal> ContaSdlUpdate, Action <int, decimal> SetorSdlUpdate, object dbTran = null) { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; try { if (dbTran == null) { db.BeginTransaction(); } //--- Check DescricaoOrigem if (string.IsNullOrEmpty(mov.DescricaoOrigem)) { throw new AppException("A Descrição da origem não pode estar vazia..."); } //--- 1. Check if is SAIDA and check Positive Value //------------------------------------------------------------------------------------------------------------ if (mov.MovTipo == 2 && mov.MovValor > 0) { mov.MovValor *= -1; } //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@MovTipo", mov.MovTipo); db.AdicionarParametros("@Origem", mov.Origem); db.AdicionarParametros("@IDOrigem", mov.IDOrigem); db.AdicionarParametros("@MovData", mov.MovData); db.AdicionarParametros("@MovValor", mov.MovValor); db.AdicionarParametros("@IDConta", mov.IDConta); db.AdicionarParametros("@IDSetor", mov.IDSetor); db.AdicionarParametros("@DescricaoOrigem", mov.DescricaoOrigem); db.AdicionarParametros("@Consolidado", mov.Consolidado); db.AdicionarParametros("@IDCaixa", mov.IDCaixa); //--- convert null parameters db.ConvertNullParams(); string query = db.CreateInsertSQL("tblMovimentacao"); //--- insert and Get new ID long newID = db.ExecutarInsertAndGetID(query); mov.IDMovimentacao = newID; //--- insert IN tblMovAcrescimo IF is necessary if (mov.AcrescimoValor != null && mov.AcrescimoValor != 0) { InsertMovimentacaoAcrescimo(mov, db); } //--- insert OBSERVACAO new ObservacaoBLL().SaveObservacao(1, newID, mov.Observacao, db); //--- altera o saldo da CONTA if (ContaSdlUpdate != null) { new ContaBLL().ContaSaldoChange((int)mov.IDConta, mov.MovValor, db, ContaSdlUpdate); } //--- altera o saldo do SETOR if (SetorSdlUpdate != null && mov.IDSetor != null) { new SetorBLL().SetorSaldoChange((int)mov.IDSetor, mov.MovValor, db, SetorSdlUpdate); } if (dbTran == null) { db.CommitTransaction(); } return(newID); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } 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 objMovimentacao item = (objMovimentacao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; switch (item.Origem) { case EnumMovOrigem.Contribuicao: VerOrigemContribuicao(item); break; case EnumMovOrigem.AReceber: VerOrigemAReceber(item); break; case EnumMovOrigem.APagar: VerOrigemAPagar(item); break; case EnumMovOrigem.CaixaAjuste: AbrirDialog($"Ajuste inicial da Conta: {item.Conta.ToUpper()}\n" + $"Valor do Ajuste: {item.MovValorAbsoluto:c}\n" + $"Data do Ajuste: {item.MovData:d}", "Ajuste Inicial Informação"); break; case EnumMovOrigem.TransfConta: VerOrigemTransferenciaConta(item); break; case EnumMovOrigem.TransfSetor: AbrirDialog("Ainda não foi implementado...", "", DialogType.OK, DialogIcon.Exclamation); break; default: break; } } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Abrir a Origem..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// 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; } }
// 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; } }
// INSERT AJUSTE //------------------------------------------------------------------------------------------------------------ public objMovimentacao InsertAjuste( objCaixaAjuste ajuste, Action <int, decimal> ContaSldUpdate, Action <int, decimal> SetorSldUpdate, long?IDCaixa = null, object dbTran = null) { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; try { if (dbTran == null) { db.BeginTransaction(); } // 1. INSERT AJUSTE //------------------------------------------------------ //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@AjusteDescricao", ajuste.AjusteDescricao); db.AdicionarParametros("@IDAjusteTipo", ajuste.IDAjusteTipo); db.AdicionarParametros("@IDUserAuth", ajuste.IDUserAuth); //--- convert null parameters db.ConvertNullParams(); //--- create query string query = db.CreateInsertSQL("tblCaixaAjuste"); //--- insert AJUSTE var newID = (int)db.ExecutarInsertAndGetID(query); ajuste.IDAjuste = newID; // 2. INSERT MOVIMENTACAO //------------------------------------------------------ var movimentacao = new objMovimentacao(null) { MovTipo = ajuste.MovValor >= 0 ? (byte)1 : (byte)2, MovTipoDescricao = ajuste.MovValor >= 0 ? "E" : "S", Consolidado = true, IDConta = ajuste.IDConta, IDSetor = ajuste.IDSetor, Setor = ajuste.Setor, MovData = ajuste.MovData, MovValor = ajuste.MovValor, IDOrigem = (long)ajuste.IDAjuste, Origem = EnumMovOrigem.CaixaAjuste, // origem ajuste DescricaoOrigem = ajuste.AjusteDescricao, IDCaixa = IDCaixa, }; //--- insert MOVIMENTACAO var movID = new MovimentacaoBLL().InsertMovimentacao(movimentacao, ContaSldUpdate, SetorSldUpdate, dbTran); movimentacao.IDMovimentacao = movID; // 3. COMMIT AND RETURN //------------------------------------------------------ if (dbTran == null) { db.CommitTransaction(); } return(movimentacao); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } throw ex; } }
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 objMovimentacao item = (objMovimentacao)dgvListagem.SelectedRows[0].DataBoundItem; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; objImagem imagem = new objImagem() { IDOrigem = (long)item.IDMovimentacao, Origem = EnumImagemOrigem.Movimentacao, ImagemFileName = item.Imagem == null ? string.Empty : item.Imagem.ImagemFileName, ImagemPath = item.Imagem == null ? string.Empty : item.Imagem.ImagemPath, ReferenceDate = item.MovData, }; // 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; } }
//================================================================================================= // DELETE | REMOVE //================================================================================================= // REMOVE MOVIMENTACAO (AND ACRESCIMO AND IMAGEM IF NECESSARY) //------------------------------------------------------------------------------------------------------------ public bool DeleteMovimentacao( long IDMov, Action <int, decimal> ContaSdlUpdate, Action <int, decimal> SetorSdlUpdate, object dbTran = null) { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; try { if (dbTran == null) { db.BeginTransaction(); } //--- get MOVIMENTACAO by ID to discover MOVVALOR //------------------------------------------------------------------------------------------------------------ objMovimentacao mov = GetMovimentacao(IDMov, true, db); //--- check MOVIMENTACAO //------------------------------------------------------------------------------------------------------------ //--- 1. Check is Caixa if (mov.IDCaixa != null) { throw new AppException("A MOVIMENTAÇÃO de CAIXA não pôde ser removida porque já se encontra anexada a um caixa..."); } //--- 2. Check is ContaDateBlock if (!new ContaBLL().ContaDateBlockPermit((int)mov.IDConta, mov.MovData)) { throw new AppException("A MOVIMENTAÇÃO de CAIXA não pode ser removida porque a Data se encontra bloqueada..."); } //--- 3. Check Imagem if (mov.Imagem != null && !string.IsNullOrEmpty(mov.Imagem.ImagemFileName)) { string errMessage = "Favor remover/desassociar as imagens das Saídas se deseja EXCLUIR."; throw new AppException(errMessage); } //--- DELETE REMOVE MOVIMENTACAO (AND ACRESCIMO) //------------------------------------------------------------------------------------------------------------ string query = ""; //--- 1. check DELETE tblMovAcrescimo //------------------------------------------------------------------------------------------------------------ if (mov.AcrescimoValor != null && mov.AcrescimoValor != 0) { //--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDMovimentacao", mov.IDMovimentacao); query = "DELETE tblMovAcrescimo WHERE IDMovimentacao = @IDMovimentacao"; //--- DELETE db.ExecutarManipulacao(CommandType.Text, query); } //--- 2. check DELETE tblMovImagem //------------------------------------------------------------------------------------------------------------ /* * if (mov.ImagemPath != String.Empty) * { * //--- clear Params * db.LimparParametros(); * * //--- define Params * db.AdicionarParametros("@IDMovimentacao", mov.IDMovimentacao); * query = "DELETE tblMovImagem WHERE IDMovimentacao = @IDMovimentacao"; * * //--- DELETE * db.ExecutarManipulacao(CommandType.Text, query); * } */ //--- 3. DELETE tblMovimentacao //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDMovimentacao", mov.IDMovimentacao); query = "DELETE tblMovimentacao WHERE IDMovimentacao = @IDMovimentacao"; //--- DELETE db.ExecutarManipulacao(CommandType.Text, query); //--- 4. DELETE OBSERVACAO //------------------------------------------------------------------------------------------------------------ new ObservacaoBLL().DeleteObservacao(1, (long)mov.IDMovimentacao, db); //--- 5. CHANGE SALDOS //------------------------------------------------------------------------------------------------------------ new ContaBLL().ContaSaldoChange((int)mov.IDConta, mov.MovValor * (-1), db, ContaSdlUpdate); new SetorBLL().SetorSaldoChange((int)mov.IDSetor, mov.MovValor * (-1), db, SetorSdlUpdate); if (dbTran == null) { db.CommitTransaction(); } return(true); } catch (Exception ex) { if (dbTran == null) { db.RollBackTransaction(); } throw ex; } }