public TList_Fixacao_X_Duplicata Select(TpBusca[] vBusca, Int32 vTop, string vNM_Campo) { bool podeFecharBco = false; TList_Fixacao_X_Duplicata lista = new TList_Fixacao_X_Duplicata(); if (Banco_Dados == null) { podeFecharBco = this.CriarBanco_Dados(false); } SqlDataReader reader = this.ExecutarBusca(this.SqlCodeBusca(vBusca, vTop, vNM_Campo)); try { while (reader.Read()) { TRegistro_Fixacao_X_Duplicata reg = new TRegistro_Fixacao_X_Duplicata(); if (!reader.IsDBNull(reader.GetOrdinal("ID_Fixacao"))) { reg.Id_fixacao = reader.GetDecimal(reader.GetOrdinal("ID_Fixacao")); } if (!reader.IsDBNull(reader.GetOrdinal("CD_Empresa"))) { reg.Cd_empresa = reader.GetString(reader.GetOrdinal("CD_Empresa")); } if (!reader.IsDBNull(reader.GetOrdinal("NR_Lancto"))) { reg.Nr_lancto = reader.GetDecimal(reader.GetOrdinal("NR_Lancto")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { this.deletarBanco_Dados(); } } return(lista); }
public static string Excluir(TRegistro_LanFixacao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LanFixacao qtb_fixacao = new TCD_LanFixacao(); try { if (banco == null) { st_transacao = qtb_fixacao.CriarBanco_Dados(true); } else { qtb_fixacao.Banco_Dados = banco; } //Cancelar NF de Fixacao TCN_Fixacao_NF.Buscar(string.Empty, val.Id_fixacao.Value.ToString(), string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, 0, string.Empty, qtb_fixacao.Banco_Dados).ForEach(p => { if (!p.Tp_nota.Trim().ToUpper().Equals("P")) //Nota de Complemento/Devolucao { TCN_LanFaturamento.CancelarFaturamento( TCN_LanFaturamento.BuscarNF(p.Cd_empresa, p.Nr_lanctofiscal.ToString(), qtb_fixacao.Banco_Dados), qtb_fixacao.Banco_Dados); } }); //Cancelar Duplicata val.lDupFixacao.ForEach(p => { //Excluir Fixacao X Duplicata TList_Fixacao_X_Duplicata lFDup = TCN_Fixacao_X_Duplicata.Buscar(val.Id_fixacao.Value.ToString(), p.Cd_empresa, p.Nr_lancto.ToString(), qtb_fixacao.Banco_Dados); if (lFDup.Count > 0) { TCN_Fixacao_X_Duplicata.Excluir(lFDup[0], qtb_fixacao.Banco_Dados); } //Cancelar Duplicata Financeiro.Duplicata.TCN_LanDuplicata.CancelarDuplicata(p, qtb_fixacao.Banco_Dados); }); //Cancelar Fixacao val.St_registro = "C"; qtb_fixacao.Gravar(val); if (st_transacao) { qtb_fixacao.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_fixacao.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro cancelar fixação: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_fixacao.deletarBanco_Dados(); } } }