Ejemplo n.º 1
0
        public List <PerfilUsuarioEmpresa> ListarPerfilUsuarioEmpresa(Int64 CodigoPerfil)
        {
            try
            {
                List <PerfilUsuarioEmpresa> listaPermissao = new List <PerfilUsuarioEmpresa>();
                List <Empresa> listaPerfis = new List <Empresa>();
                EmpresaDAL     p1          = new EmpresaDAL();
                listaPerfis = p1.ListarEmpresas("", "", "", "");

                AbrirConexao();
                foreach (Empresa p in listaPerfis)
                {
                    PerfilUsuarioEmpresa pue = new PerfilUsuarioEmpresa();

                    pue.CodigoPflUsuario = CodigoPerfil;
                    pue.CodigoEmpresa    = p.CodigoEmpresa;
                    pue.NomeEmpresa      = p.NomeEmpresa;
                    pue.Liberado         = false;

                    strSQL = "Select Top 1 1 ";
                    strSQL = strSQL + " From PERFIL_DO_USUARIO_NA_EMPRESA ";
                    strSQL = strSQL + " Where CD_EMPRESA = " + Convert.ToString(p.CodigoEmpresa);
                    strSQL = strSQL + " and   CD_PFL_USUARIO =  " + Convert.ToString(CodigoPerfil);

                    Cmd = new SqlCommand(strSQL, Con);
                    Dr  = Cmd.ExecuteReader();
                    if (Dr.Read())
                    {
                        pue.Liberado = true;
                    }
                    Dr.Close();

                    listaPermissao.Add(pue);
                }

                return(listaPermissao);
            }

            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar Perfil de Usuário: " + ex.Message.ToString());
            }

            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 2
0
        public List <Doca> ListarDocasCompleto(List <DBTabelaCampos> ListaFiltros)
        {
            try
            {
                AbrirConexao();
                string strValor = "";
                string strSQL   = "Select * from [DOCA]";

                strValor = MontaFiltroIntervalo(ListaFiltros);

                strSQL = strSQL + strValor;
                Cmd    = new SqlCommand(strSQL, Con);

                Dr = Cmd.ExecuteReader();

                List <Doca> lista = new List <Doca>();

                while (Dr.Read())
                {
                    Doca       p          = new Doca();
                    Empresa    empresa    = new Empresa();
                    EmpresaDAL empresaDAL = new EmpresaDAL();


                    p.CodigoDoca      = Convert.ToInt32(Dr["CD_DOCA"]);
                    p.DescricaoDoca   = Convert.ToString(Dr["DS_DOCA"]);
                    p.CodigoSituacao  = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.CodigoEmpresa   = Convert.ToInt64(Dr["CD_EMPRESA"]);
                    empresa           = empresaDAL.PesquisarEmpresa(Convert.ToInt64(Dr["CD_EMPRESA"]));
                    p.Cpl_NomeEmpresa = empresa.NomeEmpresa;
                    lista.Add(p);
                }

                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar Todas as Docas: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 3
0
        public void EnviarDesacordo()
        {
            try
            {
                DBTabelaCampos rowp2 = new DBTabelaCampos();
                rowp2.Filtro = "IN_REG_DEVOLVIDO";
                rowp2.Inicio = "0";
                rowp2.Fim    = "0";
                rowp2.Tipo   = "SMALLINT";
                listaT.Add(rowp2);

                IntegraDocumentoEletronicoDAL integraDAL = new IntegraDocumentoEletronicoDAL();
                ListaIntegracaoDocEletronico = integraDAL.ListarIntegracaoDocEletronicoCompleto(listaT);
                int Contador = 0;
                foreach (IntegraDocumentoEletronico integracao in ListaIntegracaoDocEletronico)
                {
                    if (integracao.CodigoAcao == 124 && integracao.IntegracaoProcessando == 0 && integracao.IntegracaoRecebido == 0 && integracao.IntegracaoRetorno == 0 && integracao.RegistroDevolvido == 0 && integracao.RegistroEnviado == 1 && integracao.Mensagem == "")
                    {
                        Doc_CTe    doc    = new Doc_CTe();
                        Doc_CTeDAL docDAL = new Doc_CTeDAL();
                        doc = docDAL.PesquisarDocumento(integracao.CodigoDocumento);

                        Empresa    empresa    = new Empresa();
                        EmpresaDAL empresaDAL = new EmpresaDAL();
                        empresa = empresaDAL.PesquisarEmpresa(doc.CodigoEmpresa);

                        Pessoa    pes    = new Pessoa();
                        PessoaDAL pesDAL = new PessoaDAL();
                        pes = pesDAL.PesquisarViewPessoa(empresa.CodigoPessoa);

                        Pessoa pesEmitente = new Pessoa();
                        pesEmitente = pesDAL.PesquisarViewPessoa(doc.Cpl_CodigoTransportador);

                        GerandoArquivoLog("Carregando .INI", 1);
                        string DiretorioEXE = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory.ToString()) + @"\..\..\..\..\Modulos";
                        _spdCTeX.LoadConfig(DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteConfig.ini");

                        GerandoArquivoLog("Configurando .INI", 1);
                        if (pesEmitente.Cpl_Estado.Length >= 2)
                        {
                            _spdCTeX.UF = pesEmitente.Cpl_Estado.Substring(0, 2);//UF do Emitente
                        }
                        _spdCTeX.DiretorioEsquemas       = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Esquemas";
                        _spdCTeX.DiretorioTemplates      = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates";
                        _spdCTeX.ArquivoServidoresHom    = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteServidoresHom.ini";
                        _spdCTeX.ArquivoServidoresProd   = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteServidoresProd.ini";
                        _spdCTeX.ImpressaoModeloRetrato  = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates\3.00\DACTE\Retrato.rtm";
                        _spdCTeX.ImpressaoModeloPaisagem = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates\cce\Impressao\modeloCCe.rtm";
                        _spdCTeX.CNPJ = pes.Cpl_Inscricao;
                        string      c  = _spdCTeX.VersaoManual.ToString();
                        DBTabelaDAL db = new DBTabelaDAL();

                        List <EventoEletronicoDocumento> ListaEventoDocEletronico = new List <EventoEletronicoDocumento>();
                        EventoEletronicoDocumentoDAL     eventosEletronicosDAL    = new EventoEletronicoDocumentoDAL();
                        ListaEventoDocEletronico = eventosEletronicosDAL.ObterEventosEletronicos(doc.CodigoDocumento);

                        foreach (var evento in ListaEventoDocEletronico)
                        {
                            if (Contador == 0)
                            {
                                if (evento.CodigoSituacao != 121 && evento.CodigoTipoEvento == 120)
                                {
                                    Contador++;
                                    try
                                    {
                                        integracao.IntegracaoRecebido = 1;
                                        integraDAL.AtualizarIntegraDocEletronico(integracao);

                                        string consultaCTE            = _spdCTeX.ConsultarCT(doc.ChaveAcesso);
                                        string CodigoSituacaoConsulta = BuscarValorTagXML(consultaCTE, "infProt", "cStat");
                                        GerandoArquivoLog("Fazendo consulta do CT-e " + doc.ChaveAcesso, 1);

                                        if (CodigoSituacaoConsulta == "100")
                                        {
                                            // _spdCTeX.UF = pes.Cpl_Estado.Substring(0, 2);//UF do remetente
                                            GerandoArquivoLog("CT-e está Autorizado...", 1);
                                            doc.CodigoSituacao = 40;

                                            string XML = _spdCTeX.EnviarDesacordo(doc.ChaveAcesso,
                                                                                  evento.DataHoraEvento.ToString("yyyy-MM-ddTHH:mm:ss") + "-03:00",
                                                                                  evento.Motivo,
                                                                                  evento.NumeroSequencia.ToString());

                                            GerandoArquivoLog("Evento Eletronico do documento " + evento.CodigoEvento + " enviado... aguardando retorno ", 1);
                                            integracao.IntegracaoProcessando = 1;
                                            integraDAL.AtualizarIntegraDocEletronico(integracao);


                                            evento.Retorno = BuscarValorTagXML(XML, "infEvento", "xMotivo");
                                            string CodigoRetorno = BuscarValorTagXML(XML, "infEvento", "cStat");

                                            GerandoArquivoLog("Evento enviado... retorno - " + evento.Retorno, 1);
                                            integracao.IntegracaoRetorno = 1;
                                            integraDAL.AtualizarIntegraDocEletronico(integracao);

                                            if (CodigoRetorno == "135" || CodigoRetorno == "134" || CodigoRetorno == "136")
                                            {
                                                evento.CodigoSituacao = 121;
                                                byte[] XMLRetorno = null;
                                                XMLRetorno = Encoding.UTF8.GetBytes(XML);
                                                DBTabelaDAL dt = new DBTabelaDAL();
                                                SalvarAnexos(doc.CodigoDocumento, XMLRetorno, dt.ObterDataHoraServidor(), integracao, "Retorno do Envio de Desacordo!");
                                                GerandoArquivoLog("Salvando XML em anexo...", 1);
                                            }
                                            else
                                            {
                                                evento.CodigoSituacao = 122;
                                            }
                                        }
                                        else if (CodigoSituacaoConsulta == "218")
                                        {
                                            GerandoArquivoLog("Impossível efetuar o desacordo, CT-e está CANCELADO", 1);
                                            GerandoArquivoLog("CT-e " + doc.ChaveAcesso + " está CANCELADO...", 1);
                                            evento.CodigoSituacao = 122;
                                            doc.CodigoSituacao    = 41;
                                        }
                                        else if (CodigoSituacaoConsulta == "")
                                        {
                                            evento.Retorno        = BuscarValorTagXML(consultaCTE, "retConsSitCTe", "xMotivo");
                                            evento.CodigoSituacao = 122;
                                            doc.CodigoSituacao    = 39;
                                        }
                                        else
                                        {
                                            GerandoArquivoLog("Impossível efetuar o desacordo, CT-e não AUTORIZADO", 1);
                                            GerandoArquivoLog("CT-e " + doc.ChaveAcesso + " não está autorizada...", 1);

                                            evento.CodigoSituacao = 122;
                                            doc.CodigoSituacao    = 39;
                                        }
                                        //docDAL.Atualizar,
                                    }
                                    catch (Exception ex)
                                    {
                                        evento.Retorno = ex.ToString();
                                        GerandoArquivoLog("ERRO - " + ex.ToString(), 1);
                                    }

                                    //ListaEventoDocEletronico.RemoveAll(x => x.CodigoEvento == evento.CodigoEvento);
                                    //EventoEletronicoDocumento NovoEvento = new EventoEletronicoDocumento();
                                    //NovoEvento = evento;
                                    //ListaEventoDocEletronico.Add(NovoEvento);
                                }
                            }
                            eventosEletronicosDAL.AtualizarEventoEletronico(evento);
                            GerandoArquivoLog("Evento eletronico do documento " + doc.CodigoDocumento + " atualizado com sucesso", 1);
                            integracao.Mensagem          = evento.Retorno;
                            integracao.RegistroDevolvido = 1;
                            integraDAL.AtualizarIntegraDocEletronico(integracao);
                        }

                        integraDAL.AtualizarSituacaoDocumentoCTe(doc);
                        GerandoArquivoLog("Documento " + doc.CodigoDocumento + " Atualizado com sucesso", 1);
                    }
                }
                if (Contador == 0)
                {
                    GerandoArquivoLog("Nenhum desacordo enviado para CT-e", 1);
                }
            }
            catch (Exception ex)
            {
                GerandoArquivoLog("ERRO: " + ex.ToString(), 1);
            }
        }