Пример #1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            ConfiguracaoApp.CarregarDadosSobre();

            metroLink_unimake.Visible = !string.IsNullOrEmpty(NFe.Settings.ConfiguracaoApp.Site);
            metroLink_unimake.Text    = NFe.Settings.ConfiguracaoApp.Site;
            uninfeDummy.mainForm.Text = NFe.Components.Propriedade.NomeAplicacao + "  (" + NFe.Components.Propriedade.Versao + ")";
            //metroTile_sobre.Text = "Sobre o " + NFe.Components.Propriedade.NomeAplicacao;
            metroTile_update.Text = "Atualizar o " + NFe.Components.Propriedade.NomeAplicacao;

            this.metroTile_doc.Enabled =
                System.IO.File.Exists(System.IO.Path.Combine(NFe.Components.Propriedade.PastaExecutavel, NFe.Components.Propriedade.NomeAplicacao + ".pdf"));

            var Components = this.Controls.Cast <object>()
                             .Where(obj => !ReferenceEquals(obj, this))
                             .OfType <MetroFramework.Controls.MetroTile>();

            foreach (var c in Components)
            {
                c.Style = (MetroFramework.MetroColorStyle)uninfeDummy.xmlParams.ReadValue(this.Name + "\\" + c.Name, "color", Convert.ToInt16(c.Style));
            }

            //string _style = uninfeDummy.uStyle;
            //this.cbStyles.DataSource = estilos;
            //this.cbStyles.DisplayMember = "display_style";
            //this.cbStyles.ValueMember = "internal_style";
            //this.cbStyles.SelectedValue = _style;

            UpdateControles();
        }
Пример #2
0
        public override void Execute(Empresa empresa)
        {
            //Definir o serviço que será executado para a classe
            Servico = Servicos.ConsultarURLNfse;

            oDadosPedURLNfse = new DadosPedSitNfse(empresa);
            //Ler o XML para pegar parâmetros de envio
            PedURLNfse(NomeArquivoXML);

            //Criar objetos das classes dos serviços dos webservices do SEFAZ
            WebServiceProxy wsProxy    = null;
            object          pedURLNfse = null;
            string          cabecMsg   = "";
            PadroesNFSe     padraoNFSe = Functions.PadraoNFSe(/*ler.*/ oDadosPedURLNfse.cMunicipio);

            switch (padraoNFSe)
            {
            case PadroesNFSe.ISSNET:
            case PadroesNFSe.GIF:
                wsProxy    = ConfiguracaoApp.DefinirWS(Servico, empresa, oDadosPedURLNfse.cMunicipio, oDadosPedURLNfse.tpAmb, oDadosPedURLNfse.tpEmis);
                pedURLNfse = wsProxy.CriarObjeto(NomeClasseWS(Servico, oDadosPedURLNfse.cMunicipio));
                break;

            default:
                throw new Exception("Não foi possível detectar o padrão da NFS-e.");
            }

            //Assinar o XML
            AssinaturaDigital ad = new AssinaturaDigital();

            ad.Assinar(NomeArquivoXML, empresa, Convert.ToInt32(oDadosPedURLNfse.cMunicipio));

            //Invocar o método que envia o XML para o SEFAZ
            oInvocarObj.InvocarNFSe(wsProxy, pedURLNfse, NomeMetodoWS(Servico, oDadosPedURLNfse.cMunicipio, empresa.tpAmb), cabecMsg, this, "-ped-urlnfse", "-urlnfse", padraoNFSe, Servico, empresa);
        }
Пример #3
0
        private void metroTile_wsdl_Click(object sender, EventArgs e)
        {
            string XMLVersoesWSDL = Propriedade.PastaExecutavel + "\\VersoesWSDLs.xml";
            string msg            = string.Format("Após confirmada esta função o {0} irá sobrepor todos os WSDLs e Schemas com as versões originais da versão do {0}" +
                                                  ", sobrepondo assim possíveis arquivos que tenham sido atualizados manualmente.\r\n\r\nTem certeza que deseja continuar?",
                                                  Propriedade.NomeAplicacao);

            if (MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, msg, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {
                    if (File.Exists(XMLVersoesWSDL))
                    {
                        File.Delete(XMLVersoesWSDL);
                    }
                    ConfiguracaoApp.ForceUpdateWSDL(false);

                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "WSDLs e Schemas atualizados com sucesso.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Salvar as configurações realizadas no XML
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 30/07/2010
        /// </remarks>
        private void Salvar()
        {
            //Atualizar as propriedades das configurações da empresa
            AtualizarPropriedadeEmpresa();

            //Atualizar as propriedades das configurações gerais
            ConfiguracaoApp.Proxy         = this.cbProxy.Checked;
            ConfiguracaoApp.ProxyPorta    = (int)this.nudPorta.Value;
            ConfiguracaoApp.ProxySenha    = this.tbSenha.Text;
            ConfiguracaoApp.ProxyServidor = tbServidor.Text;
            ConfiguracaoApp.ProxyUsuario  = tbUsuario.Text;

            //Salvar as configurações
            ConfiguracaoApp oConfig = new ConfiguracaoApp();

            try
            {
                oConfig.GravarConfig();

                this.Salvos = true;
                this.Close();   //danasa 20-9-2010 - força a entrada em "Configuracao_FormClosed"
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Advertência", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        /// <summary>
        /// Executa o serviço solicitado
        /// </summary>
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            try
            {
                dadosPedSta = new DadosPedSta();
                //Ler o XML para pegar parâmetros de envio
                PedSta(emp, dadosPedSta);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedSta.cUF, dadosPedSta.tpAmb, dadosPedSta.tpEmis, 0);
                System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedSta.cUF, dadosPedSta.tpAmb, dadosPedSta.tpEmis, Servico);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                var statusServico = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);
                var cabecMsg      = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedSta.cUF, Servico));

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(cabecMsg, TpcnResources.cUF.ToString(), dadosPedSta.cUF.ToString());
                wsProxy.SetProp(cabecMsg, TpcnResources.versaoDados.ToString(), dadosPedSta.versao);

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy, statusServico, wsProxy.NomeMetodoWS[0], cabecMsg, this,
                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML,
                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).RetornoXML,
                                    true,
                                    securityProtocolType);
            }
            catch (Exception ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML,
                                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML,
                                                    Propriedade.ExtRetorno.Sta_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de solicitação do serviço,
                    //infelizmente não posso fazer mais nada, o UniNFe vai tentar mandar
                    //o arquivo novamente para o webservice
                    //Wandrey 09/03/2010
                }
            }
        }
Пример #6
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            try
            {
                dadosPedSit = new DadosPedSit();
                //Ler o XML para pegar parâmetros de envio
                PedSit(emp, dadosPedSit);// NomeArquivoXML);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedSit.cUF, dadosPedSit.tpAmb, dadosPedSit.tpEmis);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                object oConsulta = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);//NomeClasseWS(Servico, dadosPedSit.cUF));
                object oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedSit.cUF, Servico));

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.cUF.ToString(), dadosPedSit.cUF.ToString());
                wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.versaoDados.ToString(), NFe.ConvertTxt.versoes.VersaoXMLMDFePedSit);

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy,
                                    oConsulta,
                                    wsProxy.NomeMetodoWS[0],//NomeMetodoWS(Servico, dadosPedSit.cUF),
                                    oCabecMsg, this);

                //Efetuar a leitura do retorno da situação para ver se foi autorizada ou não
                //Na versão 1 não posso gerar o -procNfe, ou vou ter que tratar a estrutura do XML de acordo com a versão, a consulta na versão 1 é somente para obter o resultado mesmo.
                LerRetornoSitMDFe(dadosPedSit.chNFe);

                //Gerar o retorno para o ERP
                oGerarXML.XmlRetorno(Propriedade.ExtEnvio.PedSit_XML, Propriedade.ExtRetorno.Sit_XML, this.vStrXmlRetorno);
            }
            catch (Exception ex)
            {
                try
                {
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.PedSit_XML, Propriedade.ExtRetorno.Sit_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de pedido da consulta da situação da NFe, infelizmente
                    //não posso fazser mais nada, o UniNFe vai tentar mantar o arquivo novamente para o webservice, pois ainda não foi excluido.
                    //Wandrey 22/03/2010
                }
            }
        }
Пример #7
0
        /// <summary>
        /// Localiza a empresa da qual o arquivo faz parte para processar com as configurações corretas
        /// </summary>
        /// <param name="fullPath">Nome do arquivo completo (com pasta e tudo)</param>
        /// <returns>Index da empresa dentro da lista de configurações</returns>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 26/04/2011
        /// </remarks>
        private int LocalizaEmpresa(FileInfo fi)
        {
            int empresa = -1;

            try
            {
                ///
                ///danasa 3/11/2011
                string fullName = ConfiguracaoApp.RemoveEndSlash(fi.Directory.FullName.ToLower());
                ///
                /// "EndsWith" é para pegar apenas se terminar com, já que nas empresas pode ter um nome 'temp' no meio das definicoes das pastas
                if (fullName.EndsWith("\\temp"))
                {
                    /// exclui o 'arquivo' temp.
                    fullName = Path.GetDirectoryName(fullName);
                }

                for (int i = 0; i < Empresas.Configuracoes.Count; i++)
                {
                    if (fullName == Empresas.Configuracoes[i].PastaXmlEnvio.ToLower() ||
                        fullName == Empresas.Configuracoes[i].PastaXmlEmLote.ToLower() ||
                        fullName == Empresas.Configuracoes[i].PastaValidar.ToLower() ||
                        fullName == Empresas.Configuracoes[i].PastaContingencia.ToLower())
                    {
                        empresa = i;
                        break;
                    }
                }
            }
            catch
            {
            }

            return(empresa);
        }
Пример #8
0
        /// <summary>
        /// CopiaPastaDaEmpresa
        /// </summary>
        /// <param name="origemCNPJ"></param>
        /// <param name="origemPasta"></param>
        /// <param name="oEmpresa"></param>
        /// <returns></returns>
        private string CopiaPastaDeEmpresa(string origemCNPJ, string origemPasta, Empresa oEmpresa)
        {
            if (string.IsNullOrEmpty(origemPasta))
            {
                return("");
            }

            ///
            /// o usuario pode ter colocado o CNPJ como parte do nome da pasta
            ///
            /// origemPasta: C:\uninfe\CNPJ_antigo\envio
            /// origemCNPJ:  CNPJ_novo
            /// newPasta:    C:\uninfe\CNPJ_novo\envio
            ///
            string newPasta = origemPasta.Replace(origemCNPJ.Trim(), oEmpresa.CNPJ.Trim());

            if (origemPasta.ToLower() == newPasta.ToLower())
            {
                ///
                /// o cnpj nao foi informado como parte da pasta
                ///
                int lastBackSlash = ConfiguracaoApp.RemoveEndSlash(origemPasta).LastIndexOf("\\");
                newPasta = origemPasta.Insert(lastBackSlash, "\\" + oEmpresa.CNPJ);
            }
            return(newPasta);
        }
Пример #9
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            //Definir o serviço que será executado para a classe
            Servico = Servicos.MDFePedidoSituacaoLote;

            try
            {
                #region Parte do código que envia o XML de pedido de consulta do recibo
                dadosPedRec = new DadosPedRecClass();
                PedRec(emp, NomeArquivoXML);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                var oRepRecepcao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);//NomeClasseWS(Servico, dadosPedRec.cUF));
                var oCabecMsg    = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedRec.cUF, Servico));

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.cUF.ToString(), dadosPedRec.cUF.ToString());
                wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.versaoDados.ToString(), NFe.ConvertTxt.versoes.VersaoXMLMDFePedRec);

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy,
                                    oRepRecepcao,
                                    wsProxy.NomeMetodoWS[0],//NomeMetodoWS(Servico, dadosPedRec.cUF),
                                    oCabecMsg, this);
                #endregion

                #region Parte do código que trata o XML de retorno da consulta do recibo
                //Efetuar a leituras das notas do lote para ver se foi autorizada ou não
                LerRetornoLoteMDFe();

                //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP
                //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo
                //Wandrey 18/06/2009
                oGerarXML.XmlRetorno(Propriedade.ExtEnvio.PedRec_XML, Propriedade.ExtRetorno.ProRec_XML, vStrXmlRetorno);
                #endregion
            }
            catch (Exception ex)
            {
                try
                {
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.PedRec_XML, Propriedade.ExtRetorno.ProRec_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Pois ocorreu algum erro de rede, hd, permissão das pastas, etc. Wandrey 22/03/2010
                }
            }
            finally
            {
                //Deletar o arquivo de solicitação do serviço
                Functions.DeletarArquivo(NomeArquivoXML);
            }
        }
Пример #10
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            //Definir o serviço que será executado para a classe
            Servico = Servicos.CTeConsultaStatusServico;

            try
            {
                dadosPedSta = new DadosPedSta();
                //Ler o XML para pegar parâmetros de envio
                PedSta(emp, dadosPedSta);//NomeArquivoXML);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedSta.cUF, dadosPedSta.tpAmb, dadosPedSta.tpEmis);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                var oStatusServico = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);
                var oCabecMsg      = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedSta.cUF, Servico, dadosPedSta.tpEmis));

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedSta.cUF.ToString());
                wsProxy.SetProp(oCabecMsg, NFe.Components.TpcnResources.versaoDados.ToString(), NFe.ConvertTxt.versoes.VersaoXMLCTeStatusServico);

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy, oStatusServico, wsProxy.NomeMetodoWS[0], oCabecMsg, this, "-ped-sta", "-sta");
            }
            catch (Exception ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.ExtEnvio.PedSta_XML, Propriedade.ExtRetorno.Sta_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de solicitação do serviço,
                    //infelizmente não posso fazer mais nada, o UniNFe vai tentar mandar
                    //o arquivo novamente para o webservice
                    //Wandrey 09/03/2010
                }
            }
        }
Пример #11
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            try
            {
                dadosPedInut = new DadosPedInut(emp);
                PedInut(emp);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedInut.cUF, dadosPedInut.tpAmb, dadosPedInut.tpEmis, 0);
                System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedInut.cUF, dadosPedInut.tpAmb, dadosPedInut.tpEmis, Servico);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                object oInutilizacao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);//NomeClasseWS(Servico, dadosPedInut.cUF));
                object oCabecMsg     = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedInut.cUF, Servico));

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedInut.cUF.ToString());
                wsProxy.SetProp(oCabecMsg, TpcnResources.versaoDados.ToString(), dadosPedInut.versao);

                //Criar objeto da classe de assinatura digita
                AssinaturaDigital oAD = new AssinaturaDigital();

                //Assinar o XML
                oAD.Assinar(ConteudoXML, emp, Convert.ToInt32(dadosPedInut.cUF));

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy,
                                    oInutilizacao,
                                    wsProxy.NomeMetodoWS[0],//NomeMetodoWS(Servico, dadosPedInut.cUF),
                                    oCabecMsg,
                                    this,
                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedInu).EnvioXML,
                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedInu).RetornoXML,
                                    true,
                                    securityProtocolType);

                //Ler o retorno do webservice
                this.LerRetornoInut();
            }
            catch (Exception ex)
            {
                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedInu).EnvioXML,
                                                    Propriedade.ExtRetorno.Inu_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
        }
Пример #12
0
        /// <summary>
        /// Popular os campos de configurações gerais
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 30/07/2010
        /// </remarks>
        private void PopulateConfGeral()
        {
            ConfiguracaoApp oCarrega = new ConfiguracaoApp();

            ConfiguracaoApp.CarregarDados();

            cbProxy.Checked = ConfiguracaoApp.Proxy;
            tbServidor.Text = ConfiguracaoApp.ProxyServidor;
            tbUsuario.Text  = ConfiguracaoApp.ProxyUsuario;
            tbSenha.Text    = ConfiguracaoApp.ProxySenha;
            nudPorta.Value  = ConfiguracaoApp.ProxyPorta;
        }
Пример #13
0
        private void onCloseMunicipios(object sender, EventArgs e)
        {
            m.Dispose();
            m = null;

            ///
            /// reloadWebServicesList carrega as URL's com base no XML de municipios.
            if (WebServiceProxy.reloadWebServicesList())
            {
                ConfiguracaoApp.loadResouces();
            }
        }
Пример #14
0
        private void iniciarServicosUniNFe()
        {
            Propriedade.TipoAplicativo = TipoAplicativo.Nfe;
            ConfiguracaoApp.StartVersoes();

            string filenameWS1 = Propriedade.NomeArqXMLMunicipios;
            string filenameWS2 = Propriedade.NomeArqXMLWebService_NFSe;
            string filenameWS3 = Propriedade.NomeArqXMLWebService_NFe;
            string msg         = "";

            bool error = false;

            error = !System.IO.File.Exists(filenameWS1) || !System.IO.File.Exists(filenameWS2) || !System.IO.File.Exists(filenameWS3);
            msg   = "Arquivos '" + filenameWS1 + "', '" + filenameWS2 + "' e '" + filenameWS3 + "' não encontrados";

            if (error)
            {
                this.WriteLog(msg);
            }
            else
            {
                foreach (Empresa empresa in Empresas.Configuracoes)
                {
                    if (empresa.X509Certificado == null && empresa.UsaCertificado)
                    {
                        msg = "Não pode ler o certificado da empresa: " + empresa.CNPJ + "=>" + empresa.Nome + "=>" + empresa.Servico.ToString();

                        string f = Path.Combine(empresa.PastaXmlRetorno,
                                                "uninfeServico_" + DateTime.Now.ToString("yyyy-MMM-dd_hh-mm-ss") + ".txt");
                        System.IO.File.WriteAllText(f, msg, Encoding.UTF8);
                        error = true;

                        WriteLog(msg);
                    }
                }
            }

            if (!error)
            {
                // Executar as conversões de atualizações de versão quando tiver
                Auxiliar.ConversaoNovaVersao(string.Empty);

                ThreadService.Start();

                new ThreadControlEvents();
            }
            else
            {
                WriteLog("Servico do UniNFe não está sendo executado ");
            }
        }
Пример #15
0
        private void CreateControles()
        {
            #region --CreateControles

            cbEmpresas.Visible = metroLabel2.Visible = true;

            if (uc_geral == null)
            {
                tc_empresa.TabPages.Add(_tpEmpresa_divs                = createtpage(0));
                tc_empresa.TabPages.Add(_tpEmpresa_pastas              = createtpage(1));
                tc_empresa.TabPages.Add(_tpEmpresa_cert                = createtpage(2));
                tc_empresa.TabPages.Add(_tpEmpresa_ftp                 = createtpage(3));
                tc_empresa.TabPages.Add(_tpEmpresa_danfe               = createtpage(4));
                tc_empresa.TabPages.Add(_tpEmpresa_sat                 = createtpage(5));
                tc_empresa.TabPages.Add(_tpEmpresa_resptecnico         = createtpage(6));
                tc_empresa.TabPages.Add(_tpEmpresa_outrasconfiguracoes = createtpage(7));
                uc_geral = new Formularios.userConfiguracao_geral();
                tpGeral.Controls.Add(uc_geral);
            }

            tc_main.SelectedTab    = tpGeral;
            tc_empresa.SelectedTab = _tpEmpresa_divs;

            cbEmpresas.SelectedIndexChanged -= cbEmpresas_SelectedIndexChanged;
            cbEmpresas.DataSource            = null;
            cbEmpresas.DisplayMember         = NFeStrConstants.Nome;
            cbEmpresas.ValueMember           = "Key";
            cbEmpresas.DataSource            = Auxiliar.CarregaEmpresa(false);
            btnExcluir.Visible = cbEmpresas.Items.Count > 0;

            ConfiguracaoApp.CarregarDados();
            uc_geral.PopulateConfGeral();

            userConfiguracoes_Resize(null, null);

            if (cbEmpresas.Items.Count > 0)
            {
                tc_empresa.Enabled               =
                    btnExcluir.Enabled           =
                        cbEmpresas.Enabled       = true;
                cbEmpresas.SelectedIndex         = 0;
                cbEmpresas.SelectedIndexChanged += cbEmpresas_SelectedIndexChanged;
                cbEmpresas_SelectedIndexChanged(null, null);
            }
            else
            {
                CopiaDadosDaEmpresaParaControls(new Empresa(), true);
            }

            #endregion --CreateControles
        }
Пример #16
0
        /// <summary>
        /// CopiaPastaDeEmpresa
        /// </summary>
        /// <param name="empresa"></param>
        /// <param name="oempresa"></param>
        private void CopiaPastaDeEmpresa(Empresa empresa, Empresa oempresa)
        {
            oempresa.PastaXmlEnvio   = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaXmlEnvio, oempresa);
            oempresa.PastaXmlRetorno = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaXmlRetorno, oempresa);
            oempresa.PastaXmlErro    = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaXmlErro, oempresa);
            oempresa.PastaValidar    = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaValidar, oempresa);
            if (oempresa.Servico != TipoAplicativo.Nfse)
            {
                if (empresa.Servico != TipoAplicativo.Nfse)
                {
                    oempresa.PastaXmlEmLote       = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaXmlEmLote, oempresa);
                    oempresa.PastaXmlEnviado      = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaXmlEnviado, oempresa);
                    oempresa.PastaBackup          = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaBackup, oempresa);
                    oempresa.PastaDownloadNFeDest = CopiaPastaDeEmpresa(empresa.CNPJ, empresa.PastaDownloadNFeDest, oempresa);
                }
                else
                {
                    string folder = Path.GetDirectoryName(ConfiguracaoApp.RemoveEndSlash(oempresa.PastaXmlEnvio));

                    oempresa.PastaXmlEnviado      = Path.Combine(folder, "Enviado");
                    oempresa.PastaXmlEmLote       = Path.Combine(folder, "EnvioEmLote");
                    oempresa.PastaDownloadNFeDest = Path.Combine(folder, "DownloadNFe");
                    oempresa.PastaBackup          = Path.Combine(folder, "Backup");
                }
            }
            oempresa.ConfiguracaoDanfe   = empresa.ConfiguracaoDanfe;
            oempresa.ConfiguracaoCCe     = empresa.ConfiguracaoCCe;
            oempresa.PastaConfigUniDanfe = empresa.PastaConfigUniDanfe;
            oempresa.PastaExeUniDanfe    = empresa.PastaExeUniDanfe;
            oempresa.PastaDanfeMon       = empresa.PastaDanfeMon;
            oempresa.XMLDanfeMonNFe      = empresa.XMLDanfeMonNFe;
            oempresa.XMLDanfeMonProcNFe  = empresa.XMLDanfeMonProcNFe;

            oempresa.GravarRetornoTXTNFe                         = empresa.GravarRetornoTXTNFe;
            oempresa.GravarEventosNaPastaEnviadosNFe             = empresa.GravarEventosNaPastaEnviadosNFe;
            oempresa.GravarEventosCancelamentoNaPastaEnviadosNFe = empresa.GravarEventosCancelamentoNaPastaEnviadosNFe;
            oempresa.GravarEventosDeTerceiros                    = empresa.GravarEventosDeTerceiros;
            oempresa.CompactarNfe = empresa.CompactarNfe;
            oempresa.IndSinc      = empresa.IndSinc;

            oempresa.CodigoAtivacaoSAT   = empresa.CodigoAtivacaoSAT;
            oempresa.MarcaSAT            = empresa.MarcaSAT;
            oempresa.UtilizaConversaoCFe = empresa.UtilizaConversaoCFe;
            oempresa.CNPJSoftwareHouse   = empresa.CNPJSoftwareHouse;
            oempresa.SignACSAT           = empresa.SignACSAT;
            oempresa.NumeroCaixa         = empresa.NumeroCaixa;
            oempresa.IndRatISSQNSAT      = empresa.IndRatISSQNSAT;
            oempresa.RegTribISSQNSAT     = empresa.RegTribISSQNSAT;

            oempresa.CriaPastasAutomaticamente = true;
        }
Пример #17
0
 /// <summary>
 /// RemoveEndSlash
 /// </summary>
 public void RemoveEndSlash()
 {
     PastaXmlEnvio        = ConfiguracaoApp.RemoveEndSlash(PastaXmlEnvio);
     PastaXmlErro         = ConfiguracaoApp.RemoveEndSlash(PastaXmlErro);
     PastaXmlRetorno      = ConfiguracaoApp.RemoveEndSlash(PastaXmlRetorno);
     PastaValidar         = ConfiguracaoApp.RemoveEndSlash(PastaValidar);
     PastaXmlEnviado      = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaXmlEnviado);
     PastaBackup          = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaBackup);
     PastaXmlEmLote       = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaXmlEmLote);
     PastaDownloadNFeDest = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaDownloadNFeDest);
     PastaDanfeMon        = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaDanfeMon);
     PastaExeUniDanfe     = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaExeUniDanfe);
     PastaConfigUniDanfe  = this.Servico == TipoAplicativo.Nfse ? "" : ConfiguracaoApp.RemoveEndSlash(PastaConfigUniDanfe);
 }
Пример #18
0
        /// <summary>
        /// Popular os campos de configurações gerais
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 30/07/2010
        /// </remarks>
        private void PopulateConfGeral()
        {
            //ConfiguracaoApp oCarrega = new ConfiguracaoApp();
            ConfiguracaoApp.CarregarDados();
            //ConfiguracaoApp.CarregarDadosSobre();

            cbProxy.Checked                = ConfiguracaoApp.Proxy;
            tbServidor.Text                = ConfiguracaoApp.ProxyServidor;
            tbUsuario.Text                 = ConfiguracaoApp.ProxyUsuario;
            tbSenha.Text                   = ConfiguracaoApp.ProxySenha;
            nudPorta.Value                 = ConfiguracaoApp.ProxyPorta;
            tbSenhaConfig.Text             = ConfiguracaoApp.SenhaConfig;
            tbSenhaConfig2.Text            = ConfiguracaoApp.SenhaConfig;
            cbChecaConexaoInternet.Checked = ConfiguracaoApp.ChecarConexaoInternet;
            chkGravarLogOperacao.Checked   = ConfiguracaoApp.GravarLogOperacoesRealizadas;
        }
Пример #19
0
        public PerfilViewCS(PostViewModel postViewModel, ConfiguracaoApp config)
        {
            UsuarioViewModel = new UsuarioViewModel();

            PostViewModel = postViewModel;

            Title = "perfil";

            CrossMedia.Current.Initialize();

            Usuario = postViewModel.Usuario;

            BindingContext = Usuario;

            Content = ObterConteudo();
        }
Пример #20
0
        private void CreateControles()
        {
            #region --CreateControles

            this.cbEmpresas.Visible = this.metroLabel2.Visible = true;

            if (uc_geral == null)
            {
                this.tc_empresa.TabPages.Add(this._tpEmpresa_divs   = this.createtpage(0));
                this.tc_empresa.TabPages.Add(this._tpEmpresa_pastas = this.createtpage(1));
                this.tc_empresa.TabPages.Add(this._tpEmpresa_cert   = this.createtpage(2));
                this.tc_empresa.TabPages.Add(this._tpEmpresa_ftp    = this.createtpage(3));
                this.tc_empresa.TabPages.Add(this._tpEmpresa_danfe  = this.createtpage(4));
                uc_geral = new Formularios.userConfiguracao_geral();
                this.tpGeral.Controls.Add(uc_geral);
            }

            this.tc_main.SelectedTab    = this.tpGeral;
            this.tc_empresa.SelectedTab = this._tpEmpresa_divs;

            this.cbEmpresas.SelectedIndexChanged -= cbEmpresas_SelectedIndexChanged;
            this.cbEmpresas.DataSource            = null;
            this.cbEmpresas.DisplayMember         = NFe.Components.NFeStrConstants.Nome;
            this.cbEmpresas.ValueMember           = "Key";
            this.cbEmpresas.DataSource            = Auxiliar.CarregaEmpresa(false);

            ConfiguracaoApp.CarregarDados();
            uc_geral.PopulateConfGeral();

            userConfiguracoes_Resize(null, null);

            if (this.cbEmpresas.Items.Count > 0)
            {
                this.tc_empresa.Enabled               =
                    this.btnExcluir.Enabled           =
                        this.cbEmpresas.Enabled       = true;
                this.cbEmpresas.SelectedIndex         = 0;
                this.cbEmpresas.SelectedIndexChanged += cbEmpresas_SelectedIndexChanged;
                cbEmpresas_SelectedIndexChanged(null, null);
            }
            else
            {
                this.CopiaDadosDaEmpresaParaControls(new Empresa(), true);
            }

            #endregion
        }
Пример #21
0
        public NFeViewModel()
        {
            try
            {
                _configuracoes = new ConfiguracaoApp();
                ConfiguraNfe();

                ContentPresenterTabDados = new ContentPresenter();
                ListaNFe = new ObservableCollection <NfeCabecalhoDTO>();

                using (ServidorClient Servico = new ServidorClient())
                {
                    Empresa = Servico.SelectObjetoEmpresa("Id=1");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #22
0
        private void Form_Main_ControlRemoved(object sender, ControlEventArgs e)
        {
            if (e.Control != null && !Propriedade.EncerrarApp)
            {
                if (e.Control.GetType().Equals(typeof(userConfiguracoes)))
                {
                    this.RestartServicos();
                }

                if (e.Control.GetType().Equals(typeof(Formularios.userMunicipios)))
                {
                    this.Refresh();
                    ///
                    /// reloadWebServicesList carrega as URL's com base no XML de municipios.
                    if (WebServiceProxy.reloadWebServicesList())
                    {
                        ConfiguracaoApp.loadResouces();
                    }
                }
            }
        }
Пример #23
0
        public void ConfiguraNfe()
        {
            // Exercício: carregue as configurações a partir do banco de dados
            var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            try
            {
                _configuracoes = !File.Exists(path + ArquivoConfiguracao) ? new ConfiguracaoApp() : FuncoesXml.ArquivoXmlParaClasse <ConfiguracaoApp>(path + ArquivoConfiguracao);
                if (_configuracoes.CfgServico.TimeOut == 0)
                {
                    _configuracoes.CfgServico.TimeOut = 100;//mínimo
                }
            }
            catch (Exception ex)
            {
                if (!String.IsNullOrEmpty(ex.Message))
                {
                    MessageBox.Show(ex.Message, "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
Пример #24
0
        /// <summary>
        /// CopiaPastaDaEmpresa
        /// </summary>
        /// <param name="origemCNPJ"></param>
        /// <param name="origemPasta"></param>
        /// <param name="oEmpresa"></param>
        /// <returns></returns>
        private string CopiaPastaDeEmpresa(string origemCNPJ, string origemPasta, Empresa destino)
        {
            if (string.IsNullOrEmpty(origemPasta))
            {
                return("");
            }

            ///
            /// o usuario pode ter colocado o CNPJ como parte do nome da pasta
            ///
            /// origemPasta: C:\uninfe\CNPJ_antigo\envio
            /// origemCNPJ:  CNPJ_novo
            /// newPasta:    C:\uninfe\CNPJ_novo\envio
            ///
            string newPasta = origemPasta.Replace(origemCNPJ.Trim(), destino.CNPJ.Trim());

            if (origemPasta.Equals(newPasta, StringComparison.InvariantCultureIgnoreCase))
            {
                foreach (string sp in new string[] { "\\nfse\\", "\\nfce\\", "\\cte\\", "\\mdfe\\", "\\" })
                {
                    origemPasta = origemPasta.Replace(destino.CNPJ + sp, "");
                }

                int lastBackSlash = ConfiguracaoApp.RemoveEndSlash(origemPasta).LastIndexOf("\\");

                string subpasta = destino.CNPJ;
                switch (destino.Servico)
                {
                case TipoAplicativo.Todos:
                case TipoAplicativo.Nfe:
                    break;

                default:
                    subpasta += "\\" + destino.Servico.ToString().ToLower();
                    break;
                }
                newPasta = origemPasta.Insert(lastBackSlash, "\\" + subpasta);
            }
            return(newPasta);
        }
Пример #25
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            ConfiguracaoApp.CarregarDadosSobre();

            metroLink_unimake.Visible = !string.IsNullOrEmpty(ConfiguracaoApp.Site);
            metroLink_unimake.Text    = ConfiguracaoApp.Site;
            uninfeDummy.mainForm.Text = Propriedade.NomeAplicacao + " - Monitor DF-e";
            metroTile_update.Text     = "Atualizar o " + Propriedade.NomeAplicacao;

            var Components = Controls.Cast <object>()
                             .Where(obj => !ReferenceEquals(obj, this))
                             .OfType <MetroFramework.Controls.MetroTile>();

            foreach (var c in Components)
            {
                c.Style = (MetroFramework.MetroColorStyle)uninfeDummy.xmlParams.ReadValue(Name + "\\" + c.Name, "color", Convert.ToInt16(c.Style));
            }

            UpdateControles();
        }
Пример #26
0
        public override void Execute()
        {
            switch (Servico)
            {
            case Servicos.DFeEnviar:
                ExtEnvioDFe      = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFe).EnvioXML;
                ExtEnvioDFeTXT   = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFe).EnvioTXT;
                ExtRetornoDFe    = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFe).RetornoXML;
                ExtRetEnvDFe_ERR = Propriedade.ExtRetorno.retEnvDFe_ERR;
                break;

            case Servicos.CTeDistribuicaoDFe:
                ExtEnvioDFe      = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFeCTe).EnvioXML;
                ExtEnvioDFeTXT   = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFeCTe).EnvioTXT;
                ExtRetornoDFe    = Propriedade.Extensao(Propriedade.TipoEnvio.EnvDFeCTe).RetornoXML;
                ExtRetEnvDFe_ERR = Propriedade.ExtRetorno.retEnvDFeCTe_ERR;
                break;
            }

            int        emp         = Empresas.FindEmpresaByThread();
            distDFeInt _distDFeInt = new distDFeInt();

            try
            {
                if (!this.vXmlNfeDadosMsgEhXML)
                {
                    ///versao|1.00
                    ///tpAmb|1
                    ///cUFAutor|35
                    ///CNPJ|
                    /// ou
                    ///CPF|
                    ///ultNSU|123456789012345
                    /// ou
                    ///NSU|123456789012345
                    List <string> cLinhas = Functions.LerArquivo(NomeArquivoXML);
                    Functions.PopulateClasse(_distDFeInt, cLinhas);

                    string f = Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml";

                    if (NomeArquivoXML.IndexOf(Empresas.Configuracoes[emp].PastaValidar, StringComparison.InvariantCultureIgnoreCase) >= 0)
                    {
                        f = Path.Combine(Empresas.Configuracoes[emp].PastaValidar, f);
                    }
                    // Gerar o XML de envio de DFe a partir do TXT gerado pelo ERP
                    oGerarXML.RecepcaoDFe(f, _distDFeInt);
                }
                else
                {
                    XmlNodeList consdistDFeIntList = ConteudoXML.GetElementsByTagName("distDFeInt");

                    foreach (XmlNode consdistDFeIntNode in consdistDFeIntList)
                    {
                        XmlElement consdistDFeIntElemento = (XmlElement)consdistDFeIntNode;
                        Functions.PopulateClasse(_distDFeInt, consdistDFeIntElemento);
                    }

                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico,
                                                                        emp,
                                                                        991,
                                                                        _distDFeInt.tpAmb, 0);

                    System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(991, _distDFeInt.tpAmb, 1, Servico);

                    object oConsNFDestEvento = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy,
                                        oConsNFDestEvento,
                                        wsProxy.NomeMetodoWS[0],
                                        null,
                                        this,
                                        ExtEnvioDFe,
                                        ExtRetornoDFe,
                                        true,
                                        securityProtocolType);

                    LeRetornoDFe(emp, ConteudoXML);
                }
            }
            catch (Exception ex)
            {
                WriteLogError(ex);
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                }
            }
        }
Пример #27
0
        public void Execute(int emp)
        {
            try
            {
                #region Parte do código que envia o XML de pedido de consulta do recibo

                dadosPedRec = new DadosPedRecClass();
                PedRec(emp);

                //Definir o objeto do WebService
                WebServiceProxy wsProxy = ConfiguracaoApp.DefinirWS(Servico, emp, dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis, 0);
                System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedRec.cUF, dadosPedRec.tpAmb, dadosPedRec.tpEmis, Servico);

                //Criar objetos das classes dos serviços dos webservices do SEFAZ
                var oRepRecepcao = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);
                var oCabecMsg    = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedRec.cUF, Servico, dadosPedRec.tpEmis));

                //Atribuir conteúdo para duas propriedades da classe nfeCabecMsg
                wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedRec.cUF.ToString());
                wsProxy.SetProp(oCabecMsg, TpcnResources.versaoDados.ToString(), dadosPedRec.versao);

                //Invocar o método que envia o XML para o SEFAZ
                oInvocarObj.Invocar(wsProxy,
                                    oRepRecepcao,
                                    wsProxy.NomeMetodoWS[0],
                                    oCabecMsg,
                                    this,
                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML,
                                    Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML,
                                    false,
                                    securityProtocolType);

                #endregion Parte do código que envia o XML de pedido de consulta do recibo

                #region Parte do código que trata o XML de retorno da consulta do recibo

                //Efetuar a leituras das notas do lote para ver se foi autorizada ou não
                LerRetornoLoteCTe(emp);

                //Gravar o XML retornado pelo WebService do SEFAZ na pasta de retorno para o ERP
                //Tem que ser feito neste ponto, pois somente aqui terminamos todo o processo
                //Wandrey 18/06/2009
                oGerarXML.XmlRetorno(Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).RetornoXML, vStrXmlRetorno);

                #endregion Parte do código que trata o XML de retorno da consulta do recibo
            }
            catch (Exception ex)
            {
                try
                {
                    TFunctions.GravarArqErroServico(NomeArquivoXML, Propriedade.Extensao(Propriedade.TipoEnvio.PedRec).EnvioXML, Propriedade.ExtRetorno.ProRec_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Pois ocorreu algum erro de rede, hd, permissão das pastas, etc. Wandrey 22/03/2010
                }
            }
            finally
            {
                //Deletar o arquivo de solicitação do serviço
                Functions.DeletarArquivo(NomeArquivoXML);
            }
        }
Пример #28
0
        private void Form1_Load(object sender, EventArgs e)
        {
            bool error = false;

            try
            {
                //
                //SERVICO: danasa 7/2011
                //servico está instalado e rodando?
                this.servicoInstaladoErodando = Propriedade.ServicoRodando;

                this.tbSeparator1.Visible           =
                    this.tbRestartServico.Visible   =
                        this.tbPararServico.Visible = this.servicoInstaladoErodando;

                ///
                /// danasa 9-2009
                ///
                this.MinimumSize = new Size(800, 630);
                this.MaximumSize = new Size(800, 630);
                //Trazer minimizado e no systray
                this.notifyIcon1.Text    = NFe.Components.Propriedade.NomeAplicacao + " - " + NFe.Components.Propriedade.DescricaoAplicacao;
                this.notifyIcon1.Visible = true;
                this.WindowState         = FormWindowState.Minimized;
                this.Visible             = false;
                this.ShowInTaskbar       = false;

                ConfiguracaoApp.StartVersoes();

                _menu = new menu();
                Controls.Add(_menu);
                _menu.Dock = DockStyle.Fill;

                notifyIcon1.Icon = Icon = Properties.Resources.uninfe_icon;

                cmAbrir.Text     = "Abrir " + Propriedade.NomeAplicacao;
                cmFechar.Text    = "Fechar " + Propriedade.NomeAplicacao;
                cmSobre.Text     = "Sobre o " + Propriedade.NomeAplicacao;
                cmManual.Text    = "Manual do " + Propriedade.NomeAplicacao;
                cmManual.Enabled = File.Exists(Path.Combine(Propriedade.PastaExecutavel, Propriedade.NomeAplicacao + ".pdf"));

                string msg = "";
                Propriedade.VerificaArquivos(out error, out msg);
                if (error)
                {
                    MetroFramework.MetroMessageBox.Show(this, msg, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Application.Exit();
                    return;
                }

                if (!this.servicoInstaladoErodando)     //danasa 12/8/2011
                //Definir eventos de controles de execução das thread´s de serviços do UniNFe. Wandrey 26/07/2011
                {
                    new ThreadControlEvents();  //danasa 12/8/2011
                }
                //Executar os serviços do UniNFe em novas threads
                //Tem que ser carregado depois que o formulário da MainForm estiver totalmente carregado para evitar Erros. Wandrey 19/10/2010
                this.ExecutaServicos();
            }
            finally
            {
                if (!error)
                {
                    this.updateControleDoServico();
                }
            }
        }
Пример #29
0
        public override void Execute()
        {
            int emp = Empresas.FindEmpresaByThread();

            try
            {
                dadosPedSta = new DadosPedSta();
                //Ler o XML para pegar parâmetros de envio
                PedSta(emp, dadosPedSta);

                if (vXmlNfeDadosMsgEhXML)  //danasa 12-9-2009
                {
                    //Definir o objeto do WebService
                    WebServiceProxy wsProxy =
                        ConfiguracaoApp.DefinirWS(Servico,
                                                  emp,
                                                  dadosPedSta.cUF,
                                                  dadosPedSta.tpAmb,
                                                  dadosPedSta.tpEmis,
                                                  dadosPedSta.versao,
                                                  dadosPedSta.mod,
                                                  0);

                    System.Net.SecurityProtocolType securityProtocolType = WebServiceProxy.DefinirProtocoloSeguranca(dadosPedSta.cUF, dadosPedSta.tpAmb, dadosPedSta.tpEmis, Servico);

                    //Criar objetos das classes dos serviços dos webservices do SEFAZ
                    var oStatusServico = wsProxy.CriarObjeto(wsProxy.NomeClasseWS);

                    object oCabecMsg = null;
                    if (dadosPedSta.versao != "4.00")
                    {
                        oCabecMsg = wsProxy.CriarObjeto(NomeClasseCabecWS(dadosPedSta.cUF, Servico));
                        wsProxy.SetProp(oCabecMsg, TpcnResources.cUF.ToString(), dadosPedSta.cUF.ToString());
                        wsProxy.SetProp(oCabecMsg, TpcnResources.versaoDados.ToString(), dadosPedSta.versao);
                    }

                    new AssinaturaDigital().CarregarPIN(emp, NomeArquivoXML, Servico);

                    //Invocar o método que envia o XML para o SEFAZ
                    oInvocarObj.Invocar(wsProxy,
                                        oStatusServico,
                                        wsProxy.NomeMetodoWS[0],
                                        oCabecMsg, this,
                                        Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML,
                                        Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).RetornoXML,
                                        true,
                                        securityProtocolType);
                }
                else
                {
                    string f = Path.GetFileNameWithoutExtension(NomeArquivoXML) + ".xml";

                    if (NomeArquivoXML.IndexOf(Empresas.Configuracoes[emp].PastaValidar, StringComparison.InvariantCultureIgnoreCase) >= 0)
                    {
                        f = Path.Combine(Empresas.Configuracoes[emp].PastaValidar, f);
                    }
                    // Gerar o XML de solicitacao de situacao do servico a partir do TXT gerado pelo ERP
                    oGerarXML.StatusServicoNFe(f, dadosPedSta.tpAmb, dadosPedSta.tpEmis, dadosPedSta.cUF, dadosPedSta.versao);
                }
            }
            catch (Exception ex)
            {
                var extRet = vXmlNfeDadosMsgEhXML ? Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioXML :
                             Propriedade.Extensao(Propriedade.TipoEnvio.PedSta).EnvioTXT;

                try
                {
                    //Gravar o arquivo de erro de retorno para o ERP, caso ocorra
                    TFunctions.GravarArqErroServico(NomeArquivoXML, extRet, Propriedade.ExtRetorno.Sta_ERR, ex);
                }
                catch
                {
                    //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada.
                    //Wandrey 09/03/2010
                }
            }
            finally
            {
                try
                {
                    //Deletar o arquivo de solicitação do serviço
                    Functions.DeletarArquivo(NomeArquivoXML);
                }
                catch
                {
                    //Se falhou algo na hora de deletar o XML de solicitação do serviço,
                    //infelizmente não posso fazer mais nada, o UniNFe vai tentar mandar
                    //o arquivo novamente para o webservice
                    //Wandrey 09/03/2010
                }
            }
        }
Пример #30
0
        private void btnNova_Click(object sender, EventArgs e)
        {
            if (btnNova.Text.Equals("Nova"))
            {
                bool ok = false;
                using (Formularios.FormNova f = new Formularios.FormNova(FindForm()))
                {
                    ok = f.ShowDialog() == DialogResult.OK;

                    if (ok)
                    {
                        currentEmpresa         = new Empresa();
                        currentEmpresa.CNPJ    = NFe.Components.Functions.OnlyNumbers(f.edtCNPJ.Text, ".,-/").ToString().PadLeft(14, '0');
                        currentEmpresa.Nome    = f.edtNome.Text;
                        currentEmpresa.Servico = (TipoAplicativo)f.cbServico.SelectedValue;
                        if (currentEmpresa.Servico == TipoAplicativo.Nfse)
                        {
                            currentEmpresa.UnidadeFederativaCodigo = 0;
                        }
                        else
                        {
                            currentEmpresa.UnidadeFederativaCodigo = 41;
                        }
                    }
                }
                if (ok)
                {
                    cbEmpresas.Visible = metroLabel2.Visible = false;
                    CopiaDadosDaEmpresaParaControls(currentEmpresa, false);

                    tc_main.SelectedIndex    = 1;
                    tc_empresa.SelectedIndex = 0;

                    btnNova.Tag = 1;
                    Modificado  = true;
                }
            }
            else
            {
                ///
                /// salva a lista de empresas
                List <Empresa> temp = new List <Empresa>(Empresas.Configuracoes);
                try
                {
                    ///
                    /// compara o que foi mudado
                    ///
                    bool grava = DadosMudaramDaEmpresa(true);

                    if (!EmpresaValidada)
                    {
                        return;
                    }

                    if (grava)
                    {
                        currentEmpresa.RemoveEndSlash();

                        if (servicoCurrent != currentEmpresa.Servico)
                        {
                            var oe = Empresas.FindConfEmpresa(currentEmpresa.CNPJ, servicoCurrent);
                            if (oe != null)
                            {
                                Empresas.Configuracoes.Remove(oe);
                            }
                        }

                        string _key = currentEmpresa.CNPJ + currentEmpresa.Servico.ToString();
                        ///
                        /// salva a configuracao da empresa
                        ///

                        currentEmpresa.SalvarConfiguracao((currentEmpresa.Servico == TipoAplicativo.SAT ? false : true), true);

                        ValidarPastaBackup();

                        var app = new ConfiguracaoApp();
                        ///
                        /// salva o arquivo da lista de empresas
                        ///
                        app.GravarArqEmpresas();

                        if (uc_geral.Modificado)
                        {
                            ///
                            /// salva as configuracoes gerais
                            app.GravarConfigGeral();
                        }
                        ///
                        /// reload a lista de empresas
                        Empresas.CarregaConfiguracao();
                        ///
                        /// reload o ambiente p/ manutencao
                        CreateControles();
                        ///
                        /// reposiciona a empresa no combobox
                        ///
                        for (int item = 0; item < cbEmpresas.Items.Count; ++item)
                        {
                            ComboElem empr = cbEmpresas.Items[item] as ComboElem;
                            if (empr.Key.Equals(_key))
                            {
                                cbEmpresas.SelectedIndex = item;
                                break;
                            }
                        }
                    }
                    else
                    {
                        ///
                        /// a empresa nao mudou mas as propriedades gerais mudaram?
                        if (uc_geral.Modificado)
                        {
                            new ConfiguracaoApp().GravarConfigGeral();
                            uc_geral.PopulateConfGeral();
                        }
                    }
                    Modificado         = false;
                    cbEmpresas.Visible = metroLabel2.Visible = true;
                }
                catch (Exception ex)
                {
                    ///
                    /// restaura a lista de empresas
                    Empresas.Configuracoes = new List <Empresa>(temp);

                    if (Convert.ToInt16(btnNova.Tag) == 1)//inclusao
                    {
                        ///
                        /// exclui as pastas criadas na inclusao
                        ///
                        try
                        {
                            currentEmpresa.ExcluiPastas();
                        }
                        catch { }
                    }
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "");
                }
            }
        }