public static string Gravar(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; } string retorno = qtb_lote.Gravar(val); val.Id_lotefis = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_LOTEFIS")); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar lote fiscal: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
public static void ProcessarImposto(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; } if (VerificarLoteImposto(val.Cd_empresa, val.Cd_impostostr, val.Dt_lotestr, qtb_lote.Banco_Dados)) { throw new Exception("Imposto ja se encontra processado para a data: " + val.Dt_lotestr); } //Gravar lote fiscal Gravar(val, qtb_lote.Banco_Dados); //Buscar registros fiscais para processar CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImp = CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.Buscar(string.Empty, val.Cd_empresa, string.Empty, string.Empty, string.Empty, val.Cd_impostostr, string.Empty, string.Empty, string.Empty, val.Dt_lotestr, string.Empty, true, string.Empty, qtb_lote.Banco_Dados); lImp.ForEach(p => { p.Id_lotefis = val.Id_lotefis; CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.Gravar(p, qtb_lote.Banco_Dados); }); //Buscar Outros Creditos/Debitos CamadaDados.Fiscal.TList_LanctoImposto lOutrosImp = new CamadaDados.Fiscal.TCD_LanctoImposto().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.cd_imposto", vOperador = "=", vVL_Busca = val.Cd_impostostr }, new Utils.TpBusca() { vNM_Campo = "a.dt_lancto", vOperador = "<=", vVL_Busca = "'" + string.Format(new System.Globalization.CultureInfo("en-US", true), val.Dt_lote.Value.ToString("yyyyMMdd")) + " 23:59:59'" }, new Utils.TpBusca() { vNM_Campo = "a.id_lotefis", vOperador = "is", vVL_Busca = "null" } }, 0, string.Empty); lOutrosImp.ForEach(p => { p.Id_lotefis = val.Id_lotefis; CamadaNegocio.Fiscal.TCN_LanctoImposto.Processar(p, qtb_lote.Banco_Dados); }); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar registros fiscais: " + ex.Message); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }
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(); } } }