// UPDATE //------------------------------------------------------------------------------------------------------------ public bool UpdateDespesa(objDespesa desp, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@IDDespesa", desp.IDDespesa); dbTran.AdicionarParametros("@DespesaDescricao", desp.DespesaDescricao); dbTran.AdicionarParametros("@DespesaOrigem", desp.DespesaOrigem); dbTran.AdicionarParametros("@DespesaValor", desp.DespesaValor); dbTran.AdicionarParametros("@DespesaData", desp.DespesaData); dbTran.AdicionarParametros("@IDCredor", desp.IDCredor); dbTran.AdicionarParametros("@IDSetor", desp.IDSetor); dbTran.AdicionarParametros("@IDDespesaTipo", desp.IDDespesaTipo); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateUpdateSQL("tblDespesa", "@IDDespesa"); //--- UPDATE dbTran.ExecutarManipulacao(CommandType.Text, query); return(true); } catch (Exception ex) { throw ex; } }
//============================================================================= // DESPESA //============================================================================= // INSERT //------------------------------------------------------------------------------------------------------------ public long InsertDespesa(objDespesa desp, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@DespesaDescricao", desp.DespesaDescricao); dbTran.AdicionarParametros("@DespesaOrigem", desp.DespesaOrigem); dbTran.AdicionarParametros("@DespesaValor", desp.DespesaValor); dbTran.AdicionarParametros("@DespesaData", desp.DespesaData); dbTran.AdicionarParametros("@IDCredor", desp.IDCredor); dbTran.AdicionarParametros("@IDSetor", desp.IDSetor); dbTran.AdicionarParametros("@IDDespesaTipo", desp.IDDespesaTipo); dbTran.AdicionarParametros("@IDTitular", desp.IDTitular); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateInsertSQL("tblDespesa"); //--- insert and Get new ID long newID = dbTran.ExecutarInsertAndGetID(query); return(newID); } catch (Exception ex) { throw ex; } }
// DETTACH DESPESA TO PROVISORIA //------------------------------------------------------------------------------------------------------------ public void DettachDespesaToProvisoria(objDespesaProvisoria Provisorio, objDespesa Despesa) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); //--- limpar parametros db.LimparParametros(); db.AdicionarParametros("@IDProvisorio", Provisorio.IDProvisorio); db.AdicionarParametros("@IDDespesa", Despesa.IDDespesa); //--- execute insert tblDespesaProvisoriaRealizado string query = "DELETE tblDespesaProvisoriaRealizado " + "WHERE IDProvisorio = @IDProvisorio AND IDDespesa = @IDDespesa"; db.ExecutarManipulacao(CommandType.Text, query); //--- execute Update Desepesa Provisoria Provisorio.Concluida = false; Provisorio.DevolucaoData = null; Provisorio.ValorRealizado -= Despesa.DespesaValor; Provisorio.EndEdit(); UpdateDespesaProvisoria(Provisorio, db); //--- commit db.CommitTransaction(); } catch (SqlException ex) { db.RollBackTransaction(); if (ex.Number == 2627) { throw new AppException("Já existe um Vínculo criado entre a Despesa Provisória com a Despesa Escolhida..."); } else { throw ex; } } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// ATTACH DESPESA TO PROVISORIA //------------------------------------------------------------------------------------------------------------ public void AttachDespesaToProvisoria(objDespesaProvisoria Provisorio, objDespesa Despesa) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); //--- limpar parametros db.LimparParametros(); db.AdicionarParametros("@IDProvisorio", Provisorio.IDProvisorio); db.AdicionarParametros("@IDDespesa", Despesa.IDDespesa); //--- execute insert tblDespesaProvisoriaRealizado string query = "INSERT INTO tblDespesaProvisoriaRealizado " + "(IDProvisorio, IDDespesa) " + "VALUES (@IDProvisorio, @IDDespesa);"; db.ExecutarManipulacao(CommandType.Text, query); //--- execute Update Desepesa Provisoria Provisorio.ValorRealizado = Provisorio.ValorRealizado == null ? Despesa.DespesaValor : Provisorio.ValorRealizado + Despesa.DespesaValor; Provisorio.EndEdit(); UpdateDespesaProvisoria(Provisorio, db); //--- commit db.CommitTransaction(); } catch (SqlException ex) { db.RollBackTransaction(); if (ex.Number == 2627) { throw new AppException("Já existe um Vínculo criado entre a Despesa Provisória com a Despesa Escolhida..."); } else { throw ex; } } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// INSERT DESPESA IN LIST AND ATTACH ON PROVISORIA //------------------------------------------------------------------------------------------------------------ private void SaveAttachDespesa(objDespesa despesa) { try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; if (_provisoria.IDProvisorio == null || Sit == EnumFlagEstado.NovoRegistro) { throw new Exception("Essa despesa provisória ainda não foi salva..."); } //--- check concluida if (despesa.DespesaValor >= _provisoria.ValorProvisorio - (_provisoria.ValorRealizado ?? 0)) { var resp = AbrirDialog("O Valor total da Despesa a ser inserida é maior que o valor esperado da Despesa Provisória." + "\nDeseja FINALIZAR a despesa provisória após anexar essa Despesa?", "Finalizar Provisório", DialogType.SIM_NAO, DialogIcon.Question); if (resp == DialogResult.Yes) { _provisoria.Concluida = true; _provisoria.DevolucaoData = DateTime.Today; } } provBLL.AttachDespesaToProvisoria(_provisoria, despesa); bindDespesa.Add(despesa); _provisoria.EndEdit(); Sit = EnumFlagEstado.RegistroSalvo; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Anexar Despesa ao Provisório..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
private void mnuItemDesvincular_Click(object sender, EventArgs e) { //--- verifica se existe alguma cell if (dgvListagem.SelectedRows.Count == 0) { return; } //--- Get A Pagar on list objDespesa item = (objDespesa)dgvListagem.SelectedRows[0].DataBoundItem; //--- ask user var resp = AbrirDialog($"Deseja desvincular a despesa realizada: {item.IDDespesa:D4} valor: {item.DespesaValor:c} da despesa Provisória?", "Desvincular", DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second); if (resp != DialogResult.Yes) { return; } try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; provBLL.DettachDespesaToProvisoria(_provisoria, item); bindDespesa.Remove(item); _provisoria.EndEdit(); Sit = EnumFlagEstado.RegistroSalvo; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Desvincular a Despesa..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }