// GET LIST APAGAR OF CARTAO CREDITO //------------------------------------------------------------------------------------------------------------ public List <objAPagar> ListAPagarCartaoVinculadas(long IDDespesaCartao, object dbTran = null) { try { AcessoDados db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran; string query = "SELECT * FROM qryDespesaCartaoAPagar WHERE IDDespesaCartao = @IDDespesaCartao"; // add params db.LimparParametros(); db.AdicionarParametros("@IDDespesaCartao", IDDespesaCartao); DataTable dt = db.ExecutarConsulta(CommandType.Text, query); var list = new List <objAPagar>(); if (dt.Rows.Count == 0) { return(list); } var pBLL = new APagarBLL(); foreach (DataRow row in dt.Rows) { list.Add(pBLL.ConvertRowInClass(row)); } return(list); } catch (Exception ex) { throw ex; } }
// GET LIST APAGAR OF CARTAO CREDITO //------------------------------------------------------------------------------------------------------------ public List <objAPagar> ListAPagarCartaoEmAberto(int IDCartaoCredito) { try { AcessoDados db = new AcessoDados(); string query = "SELECT * FROM qryAPagar WHERE IDCartaoCredito = @IDCartaoCredito AND IDSituacao = 1"; // add params db.LimparParametros(); db.AdicionarParametros("@IDCartaoCredito", IDCartaoCredito); DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { return(null); } var pBLL = new APagarBLL(); var list = new List <objAPagar>(); foreach (DataRow row in dt.Rows) { list.Add(pBLL.ConvertRowInClass(row)); } return(list); } catch (Exception ex) { 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; } }
// 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; } }
// 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; } }
// 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; } }