public TList_LoteImposto Select(Utils.TpBusca[] vBusca, Int32 vTop, string vNM_Campo, string vOrder) { TList_LoteImposto lista = new TList_LoteImposto(); System.Data.SqlClient.SqlDataReader reader; bool podeFecharBco = false; if (Banco_Dados == null) { this.CriarBanco_Dados(false); podeFecharBco = true; } reader = this.ExecutarBusca(this.SqlCodeBusca(vBusca, Convert.ToInt16(vTop), vNM_Campo, vOrder)); try { while (reader.Read()) { TRegistro_LoteImposto reg = new TRegistro_LoteImposto(); if (!reader.IsDBNull(reader.GetOrdinal("ID_LoteFIS"))) { reg.Id_lotefis = reader.GetDecimal(reader.GetOrdinal("ID_LoteFIS")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_imposto"))) { reg.Cd_imposto = reader.GetDecimal(reader.GetOrdinal("cd_imposto")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_imposto"))) { reg.Ds_imposto = reader.GetString(reader.GetOrdinal("ds_imposto")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_empresa"))) { reg.Cd_empresa = reader.GetString(reader.GetOrdinal("cd_empresa")); } if (!reader.IsDBNull(reader.GetOrdinal("nm_empresa"))) { reg.Nm_empresa = reader.GetString(reader.GetOrdinal("nm_empresa")); } if (!reader.IsDBNull(reader.GetOrdinal("DT_Lote"))) { reg.Dt_lote = reader.GetDateTime(reader.GetOrdinal("DT_Lote")); } if (!reader.IsDBNull(reader.GetOrdinal("DS_Observacao"))) { reg.Ds_observacao = reader.GetString(reader.GetOrdinal("DS_Observacao")); } if (!reader.IsDBNull(reader.GetOrdinal("Vl_Credito"))) { reg.Vl_credito = reader.GetDecimal(reader.GetOrdinal("Vl_Credito")); } if (!reader.IsDBNull(reader.GetOrdinal("Vl_Debito"))) { reg.Vl_debito = reader.GetDecimal(reader.GetOrdinal("Vl_Debito")); } if (!reader.IsDBNull(reader.GetOrdinal("ST_Registro"))) { reg.St_registro = reader.GetString(reader.GetOrdinal("ST_Registro")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { this.deletarBanco_Dados(); } } return(lista); }
public static string Excluir(TRegistro_LoteImposto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteImposto qtb_lote = new TCD_LoteImposto(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Buscar lotes a excluir TList_LoteImposto lFechamento = Buscar(string.Empty, val.Cd_impostostr, val.Cd_empresa, val.Dt_lotestr, string.Empty, string.Empty, qtb_lote.Banco_Dados); if (lFechamento.Exists(p => p.St_registro.Trim().ToUpper().Equals("P"))) { throw new Exception("Não é permitido excluir lote fiscal processado.\r\n" + "Necessario antes cancelar o pedido faturado."); } lFechamento.ForEach(p => { //Buscar todos os lancamentos de impostos pertencentes ao lote CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImp = CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.Buscar(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, p.Id_lotefis.Value.ToString(), qtb_lote.Banco_Dados); lImp.ForEach(v => { v.Id_lotefis = null; CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.Gravar(v, qtb_lote.Banco_Dados); }); //Buscar todos os lancamentos avulsos do lote CamadaDados.Fiscal.TList_LanctoImposto lImpAvulso = CamadaNegocio.Fiscal.TCN_LanctoImposto.Buscar(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, p.Id_lotefis.Value.ToString(), qtb_lote.Banco_Dados); lImpAvulso.ForEach(v => { v.Id_lotefis = null; CamadaNegocio.Fiscal.TCN_LanctoImposto.Gravar(v, qtb_lote.Banco_Dados); }); qtb_lote.Excluir(p); }); qtb_lote.Excluir(val); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir lote fiscal: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }