예제 #1
0
        public static string Gravar(TRegistro_LoteRPS val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LoteRPS qtb_lote     = new TCD_LoteRPS();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_lote.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_lote.Banco_Dados = banco;
                }
                val.Id_lote = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_lote.Gravar(val), "@P_ID_LOTE"));
                //Gravar Notas Fiscais do Lote
                val.lNfes.ForEach(p =>
                {
                    TCN_LoteRPS_X_NFES.Gravar(new TRegistro_LoteRPS_X_NFES()
                    {
                        Cd_empresa      = p.Cd_empresa,
                        Nr_lanctofiscal = p.Nr_lanctofiscal,
                        Id_lote         = val.Id_lote
                    }, qtb_lote.Banco_Dados);
                });
                //Gravar Mensagem Lote
                val.lMsgRPS.ForEach(p =>
                {
                    p.Id_lote    = val.Id_lote;
                    p.Cd_empresa = val.Cd_empresa;
                    TCN_MsgRetornoRPS.Gravar(p, qtb_lote.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_lote.Banco_Dados.Commit_Tran();
                }
                return(val.Id_lotestr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_lote.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar lote RPS: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_lote.deletarBanco_Dados();
                }
            }
        }
예제 #2
0
        public static string Excluir(TRegistro_LoteRPS val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LoteRPS qtb_lote     = new TCD_LoteRPS();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_lote.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_lote.Banco_Dados = banco;
                }
                val.lMsgRPS.ForEach(p => TCN_MsgRetornoRPS.Excluir(p, qtb_lote.Banco_Dados));
                val.lNfes.ForEach(p => TCN_LoteRPS_X_NFES.Excluir(
                                      new TRegistro_LoteRPS_X_NFES()
                {
                    Id_lote         = val.Id_lote,
                    Cd_empresa      = p.Cd_empresa,
                    Nr_lanctofiscal = p.Nr_lanctofiscal
                }, qtb_lote.Banco_Dados));
                qtb_lote.Excluir(val);
                if (st_transacao)
                {
                    qtb_lote.Banco_Dados.Commit_Tran();
                }
                return(val.Id_lotestr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_lote.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir lote RPS: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_lote.deletarBanco_Dados();
                }
            }
        }
예제 #3
0
        public static void ReabrirLoteRPS(TRegistro_LoteRPS val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LoteRPS qtb_lote     = new TCD_LoteRPS();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_lote.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_lote.Banco_Dados = banco;
                }
                Excluir(val, 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 reabrir lote RPS: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_lote.deletarBanco_Dados();
                }
            }
        }