예제 #1
0
        public void Populate(Empresa empresa)
        {
            this.empresa = empresa;
            uninfeDummy.ClearControls(this, true, false);

            ConfigurarPastas(empresa);

            textBox_PastaXmlEnvio.Text        = empresa.PastaXmlEnvio;
            textBox_PastaXmlRetorno.Text      = empresa.PastaXmlRetorno;
            textBox_PastaXmlEnviado.Text      = empresa.PastaXmlEnviado;
            textBox_PastaXmlErro.Text         = empresa.PastaXmlErro;
            textBox_PastaXmlEmLote.Text       = empresa.PastaXmlEmLote;
            textBox_PastaValidar.Text         = empresa.PastaValidar;
            textBox_PastaDownloadNFeDest.Text = empresa.PastaDownloadNFeDest;
            textBox_PastaBackup.Text          = empresa.PastaBackup;
            cbCriaPastas.Checked = empresa.CriaPastasAutomaticamente;

            var Components = this.Controls.Cast <object>()
                             .OfType <MetroFramework.Controls.MetroTextBox>();

            foreach (var c in Components)
            {
                if (!__oldvalues.ContainsKey(c))
                {
                    __oldvalues.Add(c, c.Text);
                }
                else
                {
                    __oldvalues[c] = c.Text;
                }
            }

            AlinharControles();
        }
예제 #2
0
        public void Populate(NFe.Settings.Empresa empresa)
        {
            this.empresa = empresa;
            uninfeDummy.ClearControls(this, true, false);

            textBox_PastaXmlEmLote.Visible                   = lbl_textBox_PastaLote.Visible =
                textBox_PastaBackup.Visible                  = lbl_textBox_PastaBackup.Visible =
                    textBox_PastaXmlEnviado.Visible          = lbl_textBox_PastaEnviados.Visible =
                        textBox_PastaDownloadNFeDest.Visible = lbl_textBox_PastaDownload.Visible = (empresa.Servico != TipoAplicativo.Nfse);

            if (empresa.Servico == TipoAplicativo.Nfse)
            {
                lbl_textBox_PastaRetornoXML.Location = new Point(lbl_textBox_PastaBackup.Location.X, 67);
                textBox_PastaXmlRetorno.Location     = new Point(lbl_textBox_PastaBackup.Location.X, 86);

                lbl_textBox_PastaXmlErro.Location = new Point(lbl_textBox_PastaBackup.Location.X, 110);
                textBox_PastaXmlErro.Location     = new Point(lbl_textBox_PastaBackup.Location.X, 129);

                lbl_textBox_PastaValidar.Location = new Point(lbl_textBox_PastaBackup.Location.X, 153);
                textBox_PastaValidar.Location     = new Point(lbl_textBox_PastaBackup.Location.X, 172);
            }
            else
            {
                lbl_textBox_PastaRetornoXML.Location = loc1;
                textBox_PastaXmlRetorno.Location     = loc2;

                lbl_textBox_PastaXmlErro.Location = loc3;
                textBox_PastaXmlErro.Location     = loc4;

                lbl_textBox_PastaValidar.Location = loc5;
                textBox_PastaValidar.Location     = loc6;
            }
            textBox_PastaXmlEnvio.Text        = empresa.PastaXmlEnvio;
            textBox_PastaXmlRetorno.Text      = empresa.PastaXmlRetorno;
            textBox_PastaXmlEnviado.Text      = empresa.PastaXmlEnviado;
            textBox_PastaXmlErro.Text         = empresa.PastaXmlErro;
            textBox_PastaXmlEmLote.Text       = empresa.PastaXmlEmLote;
            textBox_PastaValidar.Text         = empresa.PastaValidar;
            textBox_PastaDownloadNFeDest.Text = empresa.PastaDownloadNFeDest;
            textBox_PastaBackup.Text          = empresa.PastaBackup;
            cbCriaPastas.Checked = empresa.CriaPastasAutomaticamente;

            var Components = this.Controls.Cast <object>()
                             .OfType <MetroFramework.Controls.MetroTextBox>();

            foreach (var c in Components)
            {
                if (!__oldvalues.ContainsKey(c))
                {
                    __oldvalues.Add(c, c.Text);
                }
                else
                {
                    __oldvalues[c] = c.Text;
                }
            }
        }
예제 #3
0
        public void Populate(NFe.Settings.Empresa empresa)
        {
            this.empresa = empresa;
            uninfeDummy.ClearControls(this, true, false);

            System.Windows.Forms.ToolTip tltBuscarProvider = new System.Windows.Forms.ToolTip();
            tltBuscarProvider.SetToolTip(btnBuscarProvider, "Pesquisar provider válido automaticamente");

            System.Windows.Forms.ToolTip tltValidarProvider = new System.Windows.Forms.ToolTip();
            tltValidarProvider.SetToolTip(btnValidarProvider, "Validar provider selecionado");

            textBox_dadoscertificado.BackColor = txtArquivoCertificado.BackColor;
            textBox_dadoscertificado.Height    = 160;
            ckbTemCertificadoInstalado.Checked = empresa.UsaCertificado;
            ckbTemCertificadoInstalado.Enabled = (empresa.Servico == TipoAplicativo.Nfse);

            oMeuCert = null;

            if (empresa.UsaCertificado)
            {
                if (!string.IsNullOrEmpty(empresa.CNPJ))
                {
                    try
                    {
                        empresa.X509Certificado = empresa.BuscaConfiguracaoCertificado();
                    }
                    catch
                    {
                        //Se der algum erro na hora de buscar o certificado, o sistema tem que permitir o usuário continuar com a configuração para que ele acerte o erro. Wandrey 19/09/2014
                    }
                    oMeuCert = empresa.X509Certificado;
                }

                ckbCertificadoInstalado.Checked = empresa.CertificadoInstalado;
                if (empresa.CertificadoInstalado)
                {
                    DemonstraDadosCertificado();
                    txtPinCertificado.Text = empresa.CertificadoPIN;
                    ProvidersCertificado();
                }
                else
                {
                    txtArquivoCertificado.Text = empresa.CertificadoArquivo;
                    txtSenhaCertificado.Text   = empresa.CertificadoSenha;
                }
                ckbCertificadoInstalado_CheckedChanged(null, null);
            }
            else
            {
                oMeuCert = null;
            }
        }
예제 #4
0
        public void Populate(NFe.Settings.Empresa empresa)
        {
            this.empresa = empresa;
            uninfeDummy.ClearControls(this, true, false);

            edtFTP_Ativo.Checked = empresa.FTPAtivo;
            edtFTP_GravaXMLPastaUnica.Checked = empresa.FTPGravaXMLPastaUnica;
            edtFTP_Password.Text      = empresa.FTPSenha;
            edtFTP_PastaDestino.Text  = empresa.FTPPastaAutorizados;
            edtFTP_PastaRetornos.Text = empresa.FTPPastaRetornos;
            edtFTP_Porta.Text         = empresa.FTPPorta.ToString();
            edtFTP_Server.Text        = empresa.FTPNomeDoServidor;
            edtFTP_UserName.Text      = empresa.FTPNomeDoUsuario;

            edtFTP_PastaDestino.Visible               =
                lbl_edtFTP_PastaDestino.Visible       =
                    edtFTP_GravaXMLPastaUnica.Visible = (empresa.Servico == TipoAplicativo.Nfe || empresa.Servico == TipoAplicativo.Todos);
        }
예제 #5
0
        public void Populate(NFe.Settings.Empresa empresa)
        {
            this.empresa = empresa;
            uninfeDummy.ClearControls(this, true, false);

            edtFTP_Ativo.Checked = empresa.FTPAtivo;
            edtFTP_Passivo.Checked = empresa.FTPPassivo;
            edtFTP_GravaXMLPastaUnica.Checked = empresa.FTPGravaXMLPastaUnica;
            edtFTP_Password.Text = empresa.FTPSenha;
            edtFTP_PastaDestino.Text = empresa.FTPPastaAutorizados;
            edtFTP_PastaRetornos.Text = empresa.FTPPastaRetornos;
            edtFTP_Porta.Text = empresa.FTPPorta.ToString();
            edtFTP_Server.Text = empresa.FTPNomeDoServidor;
            edtFTP_UserName.Text = empresa.FTPNomeDoUsuario;

            edtFTP_PastaDestino.Visible =
                lbl_edtFTP_PastaDestino.Visible =
                edtFTP_GravaXMLPastaUnica.Visible = (empresa.Servico == TipoAplicativo.Nfe || empresa.Servico == TipoAplicativo.Todos);
        }
예제 #6
0
 void AddEmpresaNaListaDeComparacao(List<FolderCompare> fc, int i, Empresa empresa)
 {
     fc.Add(new FolderCompare(i, empresa.PastaXmlEnvio));
     fc.Add(new FolderCompare(i + 1, empresa.PastaXmlRetorno));
     fc.Add(new FolderCompare(i + 2, empresa.PastaXmlErro));
     fc.Add(new FolderCompare(i + 3, empresa.PastaValidar));
     if (empresa.Servico != TipoAplicativo.Nfse)
     {
         fc.Add(new FolderCompare(i + 4, empresa.PastaXmlEnviado));
         fc.Add(new FolderCompare(i + 5, empresa.PastaXmlEmLote));
         fc.Add(new FolderCompare(i + 6, empresa.PastaBackup));
         fc.Add(new FolderCompare(i + 7, empresa.PastaDownloadNFeDest));
     }
 }
예제 #7
0
파일: Empresa.cs 프로젝트: akretion/uninfe
        public void SalvarConfiguracao(bool validaCertificado, bool validarConfig)
        {
            bool empresaNova = false;
            try
            {
                if (Empresas.FindConfEmpresaIndex(this.CNPJ, this.Servico) == -1)
                {
                    empresaNova = true;
                    Empresas.Configuracoes.Add(this);
                }
                else
                {
                    int emp = Empresas.FindConfEmpresaIndex(this.CNPJ, this.Servico);
                    this.CopyObjectTo(Empresas.Configuracoes[emp]);
                }


                //Criptografar a senha do certificado digital para gravar no XML. Wandrey 23/09/2014
                if (validarConfig)
                    new ConfiguracaoApp().ValidarConfig(validaCertificado, this);

                if (!Directory.Exists(this.PastaEmpresa))
                    Directory.CreateDirectory(this.PastaEmpresa);

                this.CriarPastasDaEmpresa();

                Empresa dados = new Empresa();
                this.CopyObjectTo(dados);
                if (dados.UsaCertificado)
                    dados.CertificadoSenha = Criptografia.criptografaSenha(dados.CertificadoSenha);

                dados.CertificadoPIN = Criptografia.criptografaSenha(dados.CertificadoPIN);

                ObjectXMLSerializer objObjectXMLSerializer = new ObjectXMLSerializer();
                objObjectXMLSerializer.Save(dados, dados.NomeArquivoConfig);

                Empresas.FindConfEmpresa(this.CNPJ, this.Servico).Nome = this.Nome;
            }
            catch (Exception ex)
            {
                if (empresaNova)
                    Empresas.Configuracoes.Remove(this);
                throw ex;
            }
        }
예제 #8
0
파일: Empresas.cs 프로젝트: akretion/uninfe
        /// <summary>
        /// Retorna se o objeto da coleção que foi pesquisado é valido ou não
        /// </summary>
        /// <param name="empresa">Objeto da empresa</param>
        /// <returns>Retorna true or false</returns>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 30/07/2010
        /// </remarks>
        public static bool Valid(Empresa empresa)
        {
            bool retorna = true;
            if (empresa.Equals(null))
                retorna = false;

            return retorna;
        }
예제 #9
0
파일: Empresas.cs 프로젝트: akretion/uninfe
        /// <summary>
        /// Carregar as configurações de todas as empresas na coleção "Configuracoes" 
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 29/07/2010
        /// </remarks>
        public static void CarregaConfiguracao()
        {
            Empresas.Configuracoes.Clear();
            ExisteErroDiretorio = false;


            if (File.Exists(Propriedade.NomeArqEmpresas))
            {
                try
                {
                    XElement axml = XElement.Load(Propriedade.NomeArqEmpresas);
                    var b1 = axml.Descendants(NFe.Components.NFeStrConstants.Registro);
                    foreach (var item in b1)
                    {
                        Empresa empresa = new Empresa();

                        empresa.CNPJ = item.Attribute(NFe.Components.TpcnResources.CNPJ.ToString()).Value;
                        empresa.Nome = item.Element(NFe.Components.NFeStrConstants.Nome).Value.Trim();
                        empresa.Servico = Propriedade.TipoAplicativo;
                        if (item.Attribute(NFe.Components.NFeStrConstants.Servico) != null)
                            empresa.Servico = (TipoAplicativo)Convert.ToInt16(item.Attribute(NFe.Components.NFeStrConstants.Servico).Value.Trim());

                        string cArqErro = null;

                        try
                        {
                            empresa.BuscaConfiguracao();
                            string uf = GetUF(empresa.UnidadeFederativaCodigo);
                            if (uf != null)
                                empresa.URLConsultaDFe = ConfiguracaoApp.CarregarURLConsultaDFe(uf);                            
                        }
                        catch (Exception ex)
                        {
                            try
                            {
                                ///
                                /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa
                                /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada
                                /// as thread's
                                cArqErro = CriaArquivoDeErro(empresa, cArqErro);

                                //Grava arquivo de ERRO para o ERP
                                File.WriteAllText(cArqErro, ex.Message, Encoding.Default);
                            }
                            catch { }
                        }
                        ///
                        /// mesmo com erro, adicionar a lista para que o usuário possa altera-la
                        empresa.ChecaCaminhoDiretorio();

                        if (!string.IsNullOrEmpty(Empresas.ErroCaminhoDiretorio) && Empresas.ExisteErroDiretorio)
                        {
                            try
                            {
                                if (cArqErro == null)
                                {
                                    cArqErro = CriaArquivoDeErro(empresa, cArqErro);
                                }
                                //Grava arquivo de ERRO para o ERP
                                File.AppendAllText(cArqErro, "Erros de diretorios:\r\n\r\n" + Empresas.ErroCaminhoDiretorio, Encoding.Default);
                            }
                            catch { }
                        }
                        Configuracoes.Add(empresa);
                    }
                }
                catch
                {
                    throw;
                }
            }
            if (!ExisteErroDiretorio)
                Empresas.CriarPasta();
        }
예제 #10
0
        public void Populate(NFe.Settings.Empresa empresa)
        {
            if (this.Tag == null)
            {
                loc1 = lbl_textBox_PastaRetornoXML.Location;
                loc2 = textBox_PastaXmlRetorno.Location;

                loc3 = lbl_textBox_PastaXmlErro.Location;
                loc4 = textBox_PastaXmlErro.Location;

                loc5 = lbl_textBox_PastaValidar.Location;
                loc6 = textBox_PastaValidar.Location;
            }
            this.Tag = 1;
            this.empresa = empresa;
            uninfeDummy.ClearControls(this, true, false);

            textBox_PastaXmlEmLote.Visible = lbl_textBox_PastaLote.Visible =
                textBox_PastaBackup.Visible = lbl_textBox_PastaBackup.Visible =
                textBox_PastaXmlEnviado.Visible = lbl_textBox_PastaEnviados.Visible =
                textBox_PastaDownloadNFeDest.Visible = lbl_textBox_PastaDownload.Visible = (empresa.Servico != TipoAplicativo.Nfse);

            if (empresa.Servico == TipoAplicativo.Nfse)
            {
                lbl_textBox_PastaRetornoXML.Location = new Point(lbl_textBox_PastaBackup.Location.X, 67);
                textBox_PastaXmlRetorno.Location = new Point(lbl_textBox_PastaBackup.Location.X, 86);

                lbl_textBox_PastaXmlErro.Location = new Point(lbl_textBox_PastaBackup.Location.X, 110);
                textBox_PastaXmlErro.Location = new Point(lbl_textBox_PastaBackup.Location.X, 129);

                lbl_textBox_PastaValidar.Location = new Point(lbl_textBox_PastaBackup.Location.X, 153);
                textBox_PastaValidar.Location = new Point(lbl_textBox_PastaBackup.Location.X, 172);
            }
            else
            {
                lbl_textBox_PastaRetornoXML.Location = loc1;
                textBox_PastaXmlRetorno.Location = loc2;

                lbl_textBox_PastaXmlErro.Location = loc3;
                textBox_PastaXmlErro.Location = loc4;

                lbl_textBox_PastaValidar.Location = loc5;
                textBox_PastaValidar.Location = loc6;
            }
            textBox_PastaXmlEnvio.Text = empresa.PastaXmlEnvio;
            textBox_PastaXmlRetorno.Text = empresa.PastaXmlRetorno;
            textBox_PastaXmlEnviado.Text = empresa.PastaXmlEnviado;
            textBox_PastaXmlErro.Text = empresa.PastaXmlErro;
            textBox_PastaXmlEmLote.Text = empresa.PastaXmlEmLote;
            textBox_PastaValidar.Text = empresa.PastaValidar;
            textBox_PastaDownloadNFeDest.Text = empresa.PastaDownloadNFeDest;
            textBox_PastaBackup.Text = empresa.PastaBackup;
            cbCriaPastas.Checked = empresa.CriaPastasAutomaticamente;

            var Components = this.Controls.Cast<object>()
                                       .OfType<MetroFramework.Controls.MetroTextBox>();
            foreach (var c in Components)
            {
                if (!__oldvalues.ContainsKey(c))
                    __oldvalues.Add(c, c.Text);
                else
                    __oldvalues[c] = c.Text;
            }
        }
예제 #11
0
        private void cbEmpresas_SelectedIndexChanged(object sender, EventArgs e)
        {
            #region

            this.currentEmpresa = null;

            var list = (this.cbEmpresas.DataSource as System.Collections.ArrayList)[this.cbEmpresas.SelectedIndex] as NFe.Components.ComboElem;
            var empresa = Empresas.FindConfEmpresa(list.Valor, NFe.Components.EnumHelper.StringToEnum<TipoAplicativo>(list.Servico));
            if (empresa == null)
            {
                CopiaDadosDaEmpresaParaControls(new Empresa(), true);
                MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "Não pode acessar os dados da empresa selecionada", "");
            }
            else
            {
                this.currentEmpresa = new Empresa();
                empresa.CopyObjectTo(currentEmpresa);
                empcnpj = this.currentEmpresa.CNPJ;
                servico = this.currentEmpresa.Servico;

                CopiaDadosDaEmpresaParaControls(this.currentEmpresa, false);

                this.btnNova.Tag = 0;
            }
            #endregion
        }
예제 #12
0
        void CopiaDadosDaEmpresaParaControls(Empresa oempresa, bool empty)
        {
            bool _modificado = false;
            bool _nova = string.IsNullOrEmpty(oempresa.PastaXmlEnvio);
            
            stopChangedEvent = true;
            try
            {
                this.servicoCurrent = oempresa.Servico;
                oempresa.CriaPastasAutomaticamente = false;

                if (string.IsNullOrEmpty(oempresa.PastaXmlEnvio) && !empty)
                {
                    oempresa.CriaPastasAutomaticamente = true;
                    _modificado = true;

                    ///
                    /// tenta definir as pastas na mesma arvore do CNPJ
                    /// 
                    foreach (Empresa rr in (from x in Empresas.Configuracoes
                                            where x.CNPJ.Equals(oempresa.CNPJ)
                                            select x))
                    {
                        string temp = CopiaPastaDeEmpresa(rr.CNPJ, rr.PastaXmlEnvio, oempresa);
                        if (!Directory.Exists(temp))
                        {
                            CopiaPastaDeEmpresa(rr, oempresa);
                            break;
                        }
                    }
                    if (string.IsNullOrEmpty(oempresa.PastaXmlEnvio))
                    {
                        ///
                        /// acha uma configuracao valida
                        /// 
                        foreach (Empresa rr in (from x in Empresas.Configuracoes
                                                where !x.CNPJ.Equals(oempresa.CNPJ)
                                                select x))
                        {
                            string temp = CopiaPastaDeEmpresa(rr.CNPJ, rr.PastaXmlEnvio, oempresa);
                            if (!Directory.Exists(temp))
                            {
                                CopiaPastaDeEmpresa(rr, oempresa);
                                break;
                            }
                        }
                    }
                    if (string.IsNullOrEmpty(oempresa.PastaXmlEnvio))
                    {
                        ///
                        /// se mesmo assim não encontrou nenhuma configuracao valida, assume a pasta do UniNFe
                        /// 
                        string subpasta = oempresa.CNPJ;
                        switch (oempresa.Servico)
                        {
                            case TipoAplicativo.Todos:
                            case TipoAplicativo.Nfe:
                                break;

                            default:
                                subpasta += "\\" + oempresa.Servico.ToString().ToLower();
                                break;
                        }
                        oempresa.PastaXmlEnvio = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\Envio");
                        oempresa.PastaXmlRetorno = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\Retorno");
                        oempresa.PastaXmlErro = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\Erro");
                        oempresa.PastaValidar = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\Validar");
                        if (oempresa.Servico != TipoAplicativo.Nfse)
                        {
                            oempresa.PastaXmlEnviado = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\Enviado");
                            oempresa.PastaXmlEmLote = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\EnvioEmLote");
                            oempresa.PastaDownloadNFeDest = Path.Combine(Propriedade.PastaExecutavel, subpasta + "\\DownloadNFe");
                        }
                    }
                }
                uce_divs.Populate(oempresa, _nova);
                uce_pastas.Populate(oempresa);
                uce_ftp.Populate(oempresa);
                uce_cert.Populate(oempresa);

                if (oempresa.Servico != TipoAplicativo.Nfse)
                {
                    _tpEmpresa_danfe.Parent = tc_empresa;
                    uce_danfe.Populate(oempresa);
                }
                else
                {
                    if (_tpEmpresa_danfe != null)
                        _tpEmpresa_danfe.Parent = null;
                }
            }
            finally
            {
                tc_empresa.Enabled = !empty;

                stopChangedEvent = false;
                Modificado = _modificado;
            }
        }
예제 #13
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.CriaPastasAutomaticamente = true;
        }
예제 #14
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;
        }
예제 #15
0
        public string BuscaConfiguracao(ref int tipoerro)
        {
            tipoerro = 0;

            if (!Directory.Exists(this.PastaEmpresa))
            {
                Directory.CreateDirectory(this.PastaEmpresa);
            }

            LimparPropriedades(this);

            if (File.Exists(this.NomeArquivoConfig))
            {
                try
                {
                    ObjectXMLSerializer objObjectXMLSerializer = new ObjectXMLSerializer();
                    ///
                    /// verifica se precisa de conversao para que a Deserializacao funcione
                    string temp = File.ReadAllText(this.NomeArquivoConfig, Encoding.UTF8);

                    if (temp.Contains("<nfe_configuracoes>") || temp.Contains("<CertificadoDigital>"))
                    {
                        File.WriteAllText(this.NomeArquivoConfig + ".old", temp);

                        //this.BuscaConfiguracao(this);
                        //objObjectXMLSerializer.Save(this, this.NomeArquivoConfig);

                        temp = temp.Replace("<nfe_configuracoes>", "<Empresa xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
                        temp = temp.Replace("</nfe_configuracoes>", "</Empresa>");
                        temp = temp.Replace(">False<", ">false<").Replace(">True<", ">true<");
                        if (!temp.Contains("<diretorioSalvarComo>"))
                        {
                            temp = temp.Replace("<DiretorioSalvarComo>", "<diretorioSalvarComo>").Replace("</DiretorioSalvarComo>", "</diretorioSalvarComo>");
                        }
                        temp = temp.Replace("<CertificadoDigital>", "<Certificado>").Replace("</CertificadoDigital>", "</Certificado>");
                        File.WriteAllText(this.NomeArquivoConfig, temp);
                    }
                    Empresa t = new Empresa();
                    t = (Empresa)objObjectXMLSerializer.Load(typeof(Empresa), this.NomeArquivoConfig);

                    if (!temp.Contains("<UsaCertificado>"))
                    {
                        t.UsaCertificado = true;
                    }
                    if (!temp.Contains("<FTPPassivo>"))
                    {
                        t.FTPPassivo = false;
                    }

                    if (t.UsaCertificado)
                    {
                        if (!t.CertificadoInstalado && !string.IsNullOrEmpty(t.CertificadoSenha))
                        {
                            t.CertificadoSenha = Criptografia.descriptografaSenha(t.CertificadoSenha);
                        }
                    }

                    t.CertificadoPIN    = Criptografia.descriptografaSenha(t.CertificadoPIN);
                    t.FTPNomeDoServidor = Criptografia.descriptografaSenha(t.FTPNomeDoServidor);
                    t.FTPNomeDoUsuario  = Criptografia.descriptografaSenha(t.FTPNomeDoUsuario);
                    t.FTPSenha          = Criptografia.descriptografaSenha(t.FTPSenha);

                    t.Nome    = this.Nome;
                    t.CNPJ    = this.CNPJ;
                    t.Servico = this.Servico;
                    if (t.Servico != TipoAplicativo.Nfse)
                    {
                        t.UsaCertificado = true;
                    }

                    t.CopyObjectTo(this);

                    if (t.UnidadeFederativaCodigo == 35)
                    {
                        t.IndSinc = false;
                    }

                    CriarPastasDaEmpresa();

                    X509Certificado = BuscaConfiguracaoCertificado();
                }
                catch (Exception ex)
                {
                    //Não vou mais fazer isso pois estava gerando problemas com Certificados A3 - Renan 18/06/2013
                    //empresa.Certificado = string.Empty;
                    //empresa.CertificadoThumbPrint = string.Empty;
                    tipoerro = 2;
                    return("Ocorreu um erro ao efetuar a leitura das configurações da empresa " +
                           this.CNPJ + "=" + this.Nome.Trim() + ". Por favor entre na tela de configurações desta empresa e reconfigure.\r\n\r\nErro: " + ex.Message);
                }
                return(null);
            }
            else
            {
                tipoerro = 1;
                return("Arquivo [" + this.NomeArquivoConfig + "] de configuração da empresa [" + this.CNPJ + "=" + this.Nome.Trim() + "] não encontrado");
            }
        }
예제 #16
0
        /// <summary>
        /// Verifica se algumas das informações das configurações tem algum problema ou falha
        /// </summary>
        /// <param name="validarCertificado">Se valida se tem certificado informado ou não nas configurações</param>
        public void ValidarConfig(bool validarCertificado, Empresa empresaValidada)
        {
            string erro = string.Empty;
            bool validou = true;

            _folders = new Dictionary<string, int>();

            foreach (Empresa emp in Empresas.Configuracoes)
            {

                #region Remover End Slash
                emp.RemoveEndSlash();
                #endregion

                #region Verificar a duplicação de nome de pastas que não pode existir
                if ((erro = this.AddEmpresaNaLista(emp.PastaXmlEnvio)) == "")
                    if ((erro = this.AddEmpresaNaLista(emp.PastaXmlRetorno)) == "")
                        if ((erro = this.AddEmpresaNaLista(emp.PastaXmlErro)) == "")
                            if ((erro = this.AddEmpresaNaLista(emp.PastaValidar)) == "")
                                if (emp.Servico != TipoAplicativo.Nfse)
                                    if ((erro = this.AddEmpresaNaLista(emp.PastaXmlEnviado)) == "")
                                        if ((erro = this.AddEmpresaNaLista(emp.PastaXmlEmLote)) == "")
                                            if ((erro = this.AddEmpresaNaLista(emp.PastaBackup)) == "")
                                                erro = this.AddEmpresaNaLista(emp.PastaDownloadNFeDest);

                if (erro != "")
                {
                    erro += "\r\nNa empresa: " + emp.Nome + "\r\n" + emp.CNPJ;
                    validou = false;
                    break;
                }
                #endregion
            }

            //substitui pq para debugar dava muito trabalho
#if f

            #region Verificar a duplicação de nome de pastas que não pode existir
            List<FolderCompare> fc = new List<FolderCompare>();

            for (int i = 0; i < Empresas.Configuracoes.Count; i++)
            {
                AddEmpresaNaListaDeComparacao(fc, i, Empresas.Configuracoes[i]);
            }

            foreach (FolderCompare fc1 in fc)
            {
                if (string.IsNullOrEmpty(fc1.folder))
                    continue;

                var fCount = fc.Count(fc2 => fc2.id != fc1.id && fc1.folder.ToLower().Equals(fc2.folder.ToLower()));
                if (fCount > 0)
                {
                    erro = "Não é permitido a utilização de pasta idênticas na mesma ou entre empresas. \r\nPasta utilizada: \r\n" + fc1.folder.Trim();
                    validou = false;
                    break;
                }
                /*

                foreach (FolderCompare fc2 in fc)
                {
                    if (fc1.id != fc2.id)
                    {
                        if (fc1.folder.ToLower().Equals(fc2.folder.ToLower()))
                        {
                            erro = "Não é permitido a utilização de pasta idênticas na mesma ou entre empresas. \r\nPasta utilizada: \r\n" + fc1.folder.Trim();
                            validou = false;
                            break;
                        }
                    }
                }*/
                if (!validou)
                    break;
            }
            #endregion
#endif

            if (validou)
            {
                int empFrom = 0;
                int empTo = Empresas.Configuracoes.Count;

                if (empresaValidada != null)
                {
                    ///
                    /// quando alterada uma configuracao pelo visual, valida apenas a empresa sendo alterada
                    /// 
                    empFrom = empTo = Empresas.FindConfEmpresaIndex(empresaValidada.CNPJ, empresaValidada.Servico);
                    if (empFrom == -1)
                        throw new Exception("Não foi possivel encontrar a empresa para validação");

                    ++empTo;
                }

                if (empresaValidada.Servico == TipoAplicativo.NFCe)
                {
                    if (!string.IsNullOrEmpty(empresaValidada.IndentificadorCSC) && string.IsNullOrEmpty(empresaValidada.TokenCSC))
                    {
                        throw new Exception("É obrigatório informar o IDToken quando informado o CSC.");
                    }
                    else if (string.IsNullOrEmpty(empresaValidada.IndentificadorCSC) && ! string.IsNullOrEmpty(empresaValidada.TokenCSC))
                    {
                        throw new Exception("É obrigatório informar o CSC quando informado o IDToken.");
                    }
                }

                for (int i = empFrom; i < empTo; i++)
                {
                    Empresa empresa = Empresas.Configuracoes[i];

                    string xNomeCNPJ = "\r\n" + empresa.Nome + "\r\n" + empresa.CNPJ;

                    #region Verificar se tem alguma pasta em branco
                    List<xValid> _xValids = new List<xValid>();
                    _xValids.Add(new xValid(empresa.PastaXmlEnvio, "Informe a pasta de envio dos arquivos XML.", "A pasta de envio dos arquivos XML informada não existe.", true));
                    _xValids.Add(new xValid(empresa.PastaXmlRetorno, "Informe a pasta de envio dos arquivos XML.", "A pasta de retorno dos arquivos XML informada não existe.", true));
                    _xValids.Add(new xValid(empresa.PastaXmlErro, "Informe a pasta para arquivamento temporário dos arquivos XML que apresentaram erros.", "A pasta para arquivamento temporário dos arquivos XML com erro informada não existe.", true));
                    _xValids.Add(new xValid(empresa.PastaValidar, "Informe a pasta onde será gravado os arquivos XML somente para ser validado pela aplicação.", "A pasta para validação de XML´s informada não existe.", true));
                    if (empresa.Servico != TipoAplicativo.Nfse)
                    {
                        _xValids.Add(new xValid(empresa.PastaXmlEmLote, "Informe a pasta de envio dos arquivos XML em lote.", "A pasta de envio das notas fiscais eletrônicas em lote informada não existe.", true));
                        _xValids.Add(new xValid(empresa.PastaXmlEnviado, "Informe a pasta para arquivamento dos arquivos XML enviados.", "A pasta para arquivamento dos arquivos XML enviados informada não existe.", true));

                        _xValids.Add(new xValid(empresa.PastaBackup, "", "A pasta para backup dos XML enviados informada não existe.", false));
                        _xValids.Add(new xValid(empresa.PastaDownloadNFeDest, "", "A pasta para arquivamento das NFe de destinatários informada não existe.", false));
                        _xValids.Add(new xValid(empresa.PastaDanfeMon, "", "A pasta informada para gravação do XML da NFe para o DANFeMon não existe.", false));
                        _xValids.Add(new xValid(empresa.PastaExeUniDanfe, "", "A pasta do executável do UniDANFe informada não existe.", false));
                        _xValids.Add(new xValid(empresa.PastaConfigUniDanfe, "", "A pasta do arquivo de configurações do UniDANFe informada não existe.", false));
                    }
                    foreach (var val in _xValids)
                    {
                        if (val.valid && string.IsNullOrEmpty(val.folder))
                        {
                            erro = val.msg1 + xNomeCNPJ;
                            validou = false;
                            break;
                        }
                        else
                            if (!string.IsNullOrEmpty(val.folder))
                                if (!Directory.Exists(val.folder))
                                    if (empresa.CriaPastasAutomaticamente)
                                    {
                                        Directory.CreateDirectory(val.folder);
                                    }
                                    else
                                    {
                                        erro = val.msg2 + xNomeCNPJ;
                                        validou = false;
                                        break;
                                    }
                    }

#if f
                    List<string> diretorios = new List<string>();
                    List<string> mensagens = new List<string>();

                    diretorios.Add(empresa.PastaXmlEnvio); mensagens.Add("Informe a pasta de envio dos arquivos XML.");
                    diretorios.Add(empresa.PastaXmlRetorno); mensagens.Add("Informe a pasta de retorno dos arquivos XML.");
                    diretorios.Add(empresa.PastaXmlErro); mensagens.Add("Informe a pasta para arquivamento temporário dos arquivos XML que apresentaram erros.");
                    diretorios.Add(empresa.PastaValidar); mensagens.Add("Informe a pasta onde será gravado os arquivos XML somente para ser validado pela Aplicação.");
                    if (empresa.Servico != TipoAplicativo.Nfse)
                    {
                        diretorios.Add(empresa.PastaXmlEmLote); mensagens.Add("Informe a pasta de envio dos arquivos XML em lote.");
                        diretorios.Add(empresa.PastaXmlEnviado); mensagens.Add("Informe a pasta para arquivamento dos arquivos XML enviados.");
                    }

                    for (int b = 0; b < diretorios.Count; b++)
                    {
                        if (diretorios[b].Equals(string.Empty))
                        {
                            erro = mensagens[b] + xNomeCNPJ;
                            validou = false;
                            break;
                        }
                    }
#endif
                    ///
                    /// informacoes do FTP
                    /// danasa 7/7/2011
                    if (empresa.FTPIsAlive && validou)
                    {
                        if (empresa.Servico != TipoAplicativo.Nfse)
                        {
                            if (string.IsNullOrEmpty(empresa.FTPPastaAutorizados))
                            {
                                erro = "Informe a pasta do FTP de destino dos autorizados" + xNomeCNPJ;
                                validou = false;
                            }
                        }
                        else
                            if (string.IsNullOrEmpty(empresa.FTPPastaRetornos))
                            {
                                erro = "Informe a pasta do FTP de destino dos retornos" + xNomeCNPJ;
                                validou = false;
                            }
                    }
                    #endregion

                    #region Verificar se o certificado foi informado
                    if (validarCertificado && empresa.UsaCertificado && validou)
                    {
                        if (empresa.CertificadoInstalado && empresa.CertificadoDigitalThumbPrint.Equals(string.Empty))
                        {
                            erro = "Selecione o certificado digital a ser utilizado na autenticação dos serviços." + xNomeCNPJ;
                            validou = false;
                        }
                        if (!empresa.CertificadoInstalado && validou)
                        {
                            if (empresa.CertificadoArquivo.Equals(string.Empty))
                            {
                                erro = "Informe o local de armazenamento do certificado digital a ser utilizado na autenticação dos serviços." + xNomeCNPJ;
                                validou = false;
                            }
                            else if (!File.Exists(empresa.CertificadoArquivo))
                            {
                                erro = "Arquivo do certificado digital a ser utilizado na autenticação dos serviços não foi encontrado." + xNomeCNPJ;
                                validou = false;
                            }
                            else if (empresa.CertificadoSenha.Equals(string.Empty))
                            {
                                erro = "Informe a senha do certificado digital a ser utilizado na autenticação dos serviços." + xNomeCNPJ;
                                validou = false;
                            }
                            else
                            {
                                try
                                {
                                    using (FileStream fs = new FileStream(empresa.CertificadoArquivo, FileMode.Open, FileAccess.Read))
                                    {
                                        byte[] buffer = new byte[fs.Length];
                                        fs.Read(buffer, 0, buffer.Length);
                                        empresa.X509Certificado = new X509Certificate2(buffer, empresa.CertificadoSenha);
                                    }
                                }
                                catch (System.Security.Cryptography.CryptographicException ex)
                                {
                                    erro = ex.Message + "." + xNomeCNPJ;
                                    validou = false;
                                }
                                catch (Exception ex)
                                {
                                    erro = ex.Message + "." + xNomeCNPJ;
                                    validou = false;
                                }
                            }
                        }
                    }
                    #endregion

                    #region Verificar se as pastas informadas existem
                    if (validou)
                    {
                        //Fazer um pequeno ajuste na pasta de configuração do unidanfe antes de verificar sua existência
                        if (empresa.PastaConfigUniDanfe.Trim() != string.Empty)
                        {
                            if (!string.IsNullOrEmpty(empresa.PastaConfigUniDanfe))
                            {
                                while (empresa.PastaConfigUniDanfe.Substring(empresa.PastaConfigUniDanfe.Length - 6, 6).ToLower() == @"\dados" &&
                                    !string.IsNullOrEmpty(empresa.PastaConfigUniDanfe))
                                {
                                    empresa.PastaConfigUniDanfe = empresa.PastaConfigUniDanfe.Substring(0, empresa.PastaConfigUniDanfe.Length - 6);
                                }
                            }
                            empresa.PastaConfigUniDanfe = empresa.PastaConfigUniDanfe.Replace("\r\n", "").Trim();
                            //empresa.PastaConfigUniDanfe = empresa.PastaConfigUniDanfe;
                        }

                        if (empresa.PastaXmlEnvio.ToLower().EndsWith("geral"))
                        {
                            erro = "Pasta de envio não pode terminar com a subpasta 'geral'." + xNomeCNPJ;
                            validou = false;
                        }
                        else
                            if (empresa.PastaXmlEmLote.ToLower().EndsWith("geral"))
                            {
                                erro = "Pasta de envio em lote não pode terminar com a subpasta 'geral'." + xNomeCNPJ;
                                validou = false;
                            }
                            else
                                if (empresa.PastaValidar.ToLower().EndsWith("geral"))
                                {
                                    erro = "Pasta de validação não pode terminar com a subpasta 'geral'." + xNomeCNPJ;
                                    validou = false;
                                }
                                else
                                    if (empresa.PastaXmlEnvio.ToLower().EndsWith("temp"))
                                    {
                                        erro = "Pasta de envio não pode terminar com a subpasta 'temp'." + xNomeCNPJ;
                                        validou = false;
                                    }
                                    else
                                        if (empresa.PastaXmlEmLote.ToLower().EndsWith("temp"))
                                        {
                                            erro = "Pasta de envio em lote não pode terminar com a subpasta 'temp'." + xNomeCNPJ;
                                            validou = false;
                                        }
                                        else
                                            if (empresa.PastaValidar.ToLower().EndsWith("temp"))
                                            {
                                                erro = "Pasta de validação não pode terminar com a subpasta 'temp'." + xNomeCNPJ;
                                                validou = false;
                                            }
                                            else
                                                if (empresa.PastaXmlErro.ToLower().EndsWith("temp"))
                                                {
                                                    erro = "Pasta de XML's com erro na tentativa de envio não pode terminar com a subpasta 'temp'." + xNomeCNPJ;
                                                    validou = false;
                                                }

#if f

                        if (validou)
                        {
                            diretorios.Clear(); mensagens.Clear();
                            diretorios.Add(empresa.PastaXmlEnvio.Trim()); mensagens.Add("A pasta de envio dos arquivos XML informada não existe.");
                            diretorios.Add(empresa.PastaXmlRetorno.Trim()); mensagens.Add("A pasta de retorno dos arquivos XML informada não existe.");
                            diretorios.Add(empresa.PastaXmlErro.Trim()); mensagens.Add("A pasta para arquivamento temporário dos arquivos XML com erro informada não existe.");
                            diretorios.Add(empresa.PastaValidar.Trim()); mensagens.Add("A pasta para validação de XML´s informada não existe.");
                            if (empresa.Servico != TipoAplicativo.Nfse)
                            {
                                diretorios.Add(empresa.PastaXmlEnviado.Trim()); mensagens.Add("A pasta para arquivamento dos arquivos XML enviados informada não existe.");
                                diretorios.Add(empresa.PastaBackup.Trim()); mensagens.Add("A pasta para backup dos XML enviados informada não existe.");
                                diretorios.Add(empresa.PastaDownloadNFeDest.Trim()); mensagens.Add("A pasta para arquivamento das NFe de destinatários informada não existe.");
                                diretorios.Add(empresa.PastaXmlEmLote.Trim()); mensagens.Add("A pasta de envio das notas fiscais eletrônicas em lote informada não existe.");
                                diretorios.Add(empresa.PastaDanfeMon.Trim()); mensagens.Add("A pasta informada para gravação do XML da NFe para o DANFeMon não existe.");
                                diretorios.Add(empresa.PastaExeUniDanfe.Trim()); mensagens.Add("A pasta do executável do UniDANFe informada não existe.");
                                diretorios.Add(empresa.PastaConfigUniDanfe.Trim()); mensagens.Add("A pasta do arquivo de configurações do UniDANFe informada não existe.");
                            }

                            for (int b = 0; b < diretorios.Count; b++)
                            {
                                if (!string.IsNullOrEmpty(diretorios[b]))
                                {
                                    if (!Directory.Exists(diretorios[b]))
                                    {
                                        if (empresa.CriaPastasAutomaticamente)
                                        {
                                            Directory.CreateDirectory(diretorios[b]);
                                        }
                                        else
                                        {
                                            erro = mensagens[b].Trim() + xNomeCNPJ;
                                            validou = false;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
#endif

                        #region Criar pasta Temp dentro da pasta de envio, envio em lote e validar
                        //Criar pasta Temp dentro da pasta de envio, envio em Lote e Validar. Wandrey 03/08/2011
                        if (validou)
                        {
                            if (Directory.Exists(empresa.PastaXmlEnvio.Trim()))
                            {
                                if (!Directory.Exists(empresa.PastaXmlEnvio.Trim() + "\\Temp"))
                                {
                                    Directory.CreateDirectory(empresa.PastaXmlEnvio.Trim() + "\\Temp");
                                }
                            }

                            if (Directory.Exists(empresa.PastaXmlEmLote.Trim()) && Propriedade.TipoAplicativo != TipoAplicativo.Nfse)
                            {
                                if (!Directory.Exists(empresa.PastaXmlEmLote.Trim() + "\\Temp"))
                                {
                                    Directory.CreateDirectory(empresa.PastaXmlEmLote.Trim() + "\\Temp");
                                }
                            }

                            if (Directory.Exists(empresa.PastaValidar.Trim()))
                            {
                                if (!Directory.Exists(empresa.PastaValidar.Trim() + "\\Temp"))
                                {
                                    Directory.CreateDirectory(empresa.PastaValidar.Trim() + "\\Temp");
                                }
                            }
                        }
                        #endregion
                    }
                    #endregion

                    #region Verificar se as pastas configuradas do unidanfe estão corretas
                    if (empresa.Servico != TipoAplicativo.Nfse && validou)
                    {
                        if (empresa.PastaExeUniDanfe.Trim() != string.Empty)
                        {
                            if (!File.Exists(empresa.PastaExeUniDanfe + "\\unidanfe.exe"))
                            {
                                erro = "O executável do UniDANFe não foi localizado na pasta informada." + xNomeCNPJ;
                                validou = false;
                            }
                        }

                        if (validou && empresa.PastaConfigUniDanfe.Trim() != string.Empty)
                        {
                            //Verificar a existência o arquivo de configuração
                            if (!File.Exists(empresa.PastaConfigUniDanfe + "\\dados\\config.tps"))
                            {
                                erro = "O arquivo de configuração do UniDANFe não foi localizado na pasta informada." + xNomeCNPJ;
                                validou = false;
                            }
                        }
                    }
                    #endregion

                    #region Verificar se o IDToken informado é menor que 6 caracteres
                    if (!string.IsNullOrEmpty(empresa.TokenCSC) && empresa.TokenCSC.Length < 6)
                    {
                        erro = "O IDToken deve ter 6 caracteres." + xNomeCNPJ;
                        validou = false;
                    }
                    #endregion
                }
            }

            #region Ticket: #110
            /* Validar se já existe uma instancia utilizando estes diretórios
             * Marcelo
             * 03/06/2013
             */
            if (validou)
            {
                //Se encontrar algum arquivo de lock nos diretórios, não permitir que seja executado
                try
                {
                    Empresas.CanRun();
                }
                catch (NFe.Components.Exceptions.AppJaExecutando ex)
                {
                    erro = ex.Message;
                }

                validou = String.IsNullOrEmpty(erro);
            }
            #endregion

            if (!validou)
                throw new Exception(erro);
        }
예제 #17
0
        private int CadastrarEmpresa(string arqXML, int emp)
        {
            string cnpj = "";
            string nomeEmp = "";
            string servico = "";
            bool temEmpresa = false;

            if (Path.GetExtension(arqXML).ToLower() == ".xml")
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(arqXML);

                XmlElement dadosEmpresa = (XmlElement)doc.GetElementsByTagName("DadosEmpresa")[0];

                if (dadosEmpresa != null)
                {
                    #region Nome da empresa
                    if (dadosEmpresa.GetElementsByTagName("Nome")[0] != null)
                    {
                        nomeEmp = dadosEmpresa.GetElementsByTagName("Nome")[0].InnerText;
                        temEmpresa = true;
                    }
                    else if (dadosEmpresa.GetElementsByTagName("nome")[0] != null)
                    {
                        nomeEmp = dadosEmpresa.GetElementsByTagName("nome")[0].InnerText;
                        temEmpresa = true;
                    }
                    #endregion

                    #region CNPJ
                    if (!String.IsNullOrEmpty(dadosEmpresa.GetAttribute(NFe.Components.TpcnResources.CNPJ.ToString())))
                    {
                        cnpj = dadosEmpresa.GetAttribute(NFe.Components.TpcnResources.CNPJ.ToString());
                        temEmpresa = true;
                    }
                    else if (!String.IsNullOrEmpty(dadosEmpresa.GetAttribute("cnpj")))
                    {
                        cnpj = dadosEmpresa.GetAttribute("cnpj");
                        temEmpresa = true;
                    }
                    else if (!String.IsNullOrEmpty(dadosEmpresa.GetAttribute("Cnpj")))
                    {
                        cnpj = dadosEmpresa.GetAttribute("Cnpj");
                        temEmpresa = true;
                    }
                    #endregion

                    #region Servico
                    if (!String.IsNullOrEmpty(dadosEmpresa.GetAttribute("Servico")))
                    {
                        servico = dadosEmpresa.GetAttribute("Servico");
                        temEmpresa = true;
                    }
                    else if (!String.IsNullOrEmpty(dadosEmpresa.GetAttribute("servico")))
                    {
                        servico = dadosEmpresa.GetAttribute("servico");
                        temEmpresa = true;
                    }
                    #endregion
                }
            }
            else
            {
                List<string> cLinhas = Functions.LerArquivo(arqXML);

                foreach (string texto in cLinhas)
                {
                    string[] dados = texto.Split('|');
                    int nElementos = dados.GetLength(0);
                    if (nElementos <= 1)
                        continue;

                    switch (dados[0].ToLower())
                    {
                        case "nome":
                            nomeEmp = dados[1].Trim();
                            temEmpresa = true;
                            break;
                        case "cnpj":
                            cnpj = dados[1].Trim();
                            temEmpresa = true;
                            break;
                        case "servico":
                            servico = dados[1].Trim();
                            temEmpresa = true;
                            break;
                    }
                }
            }

            if (temEmpresa)
            {
                if (string.IsNullOrEmpty(cnpj) || string.IsNullOrEmpty(nomeEmp) || string.IsNullOrEmpty(servico))
                {
                    throw new Exception("Não foi possível localizar os dados da empresa no arquivo de configuração. (CNPJ/Nome ou Tipo de Serviço)");
                }

                if (Char.IsLetter(servico, 0))
                {
                    var lista = NFe.Components.EnumHelper.ToStrings(typeof(TipoAplicativo));
                    if (!lista.Contains(servico))
                        throw new Exception(string.Format("Serviço deve ser ({0}, {1}, {2}, {3}, {4} ou {5})",
                            NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Nfe),
                            NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Cte),
                            NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Nfse),
                            NFe.Components.EnumHelper.GetDescription(TipoAplicativo.MDFe),
                            NFe.Components.EnumHelper.GetDescription(TipoAplicativo.NFCe),
                            NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Todos)));

                    ///
                    /// veio como 'NFe, NFCe, CTe, MDFe ou NFSe
                    /// converte para numero correspondente
                    servico = ((int)NFe.Components.EnumHelper.StringToEnum<TipoAplicativo>(servico)).ToString();
                }
                else
                {
                    if (!("0,1,2,3,4,10").Contains(servico))
                    {
                        throw new Exception(string.Format("Serviço deve ser ({0} p/{1}, {2} p/{3}, {4} p/{5}, {6} p/{7}, {8} p/{9} ou {10} p/{11})",
                            (int)TipoAplicativo.Nfe, NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Nfe),
                            (int)TipoAplicativo.Cte, NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Cte),
                            (int)TipoAplicativo.Nfse, NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Nfse),
                            (int)TipoAplicativo.MDFe, NFe.Components.EnumHelper.GetDescription(TipoAplicativo.MDFe),
                            (int)TipoAplicativo.NFCe, NFe.Components.EnumHelper.GetDescription(TipoAplicativo.NFCe),
                            (int)TipoAplicativo.Todos, NFe.Components.EnumHelper.GetDescription(TipoAplicativo.Todos)));
                    }
                }
                if (Empresas.FindConfEmpresa(cnpj.Trim(), (TipoAplicativo)Convert.ToInt16(servico)) == null)
                {
                    Empresa empresa = new Empresa();
                    empresa.CNPJ = cnpj;
                    empresa.Nome = nomeEmp;
                    empresa.Servico = (TipoAplicativo)Convert.ToInt16(servico);
                    Empresas.Configuracoes.Add(empresa);

                    //GravarArqEmpresas();  //tirado daqui pq ele somente grava quando a empresa for gravada com sucesso
                }

                return Empresas.FindConfEmpresaIndex(cnpj, (TipoAplicativo)Convert.ToInt16(servico));
            }
            else
            {
                return emp;
            }
        }
예제 #18
0
        private void btnNova_Click(object sender, EventArgs e)
        {
            if (this.btnNova.Text.Equals("Nova"))
            {
                bool ok = false;
                using (Formularios.FormNova f = new Formularios.FormNova(this.FindForm()))
                {
                    ok = f.ShowDialog() == DialogResult.OK;

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

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

                    this.btnNova.Tag = 1;
                    this.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 (!this.EmpresaValidada)
                        return;

                    if (grava)
                    {
                        currentEmpresa.RemoveEndSlash();

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

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

                        this.currentEmpresa.SalvarConfiguracao(true, true);


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

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

                    if (Convert.ToInt16(this.btnNova.Tag) == 1)//inclusao
                    {
                        ///
                        /// exclui as pastas criadas na inclusao
                        /// 
                        try
                        {
                            this.currentEmpresa.ExcluiPastas();
                        }
                        catch { }
                    }
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "");
                }
            }
        }
예제 #19
0
        public void Populate(NFe.Settings.Empresa empresa, bool novaempresa)
        {
            this.loading = true;
            try
            {
                uninfeDummy.ClearControls(this, true, false);

                this.empresa = empresa;

                if (empresa.Servico == TipoAplicativo.Nfse)
                {
                    labelUF.Text = "Município";
                    lbl_udDiasLimpeza.Location = new Point(this.lbl_udTempoConsulta.Location.X, this.lbl_udTempoConsulta.Location.Y);
                    udDiasLimpeza.Location     = new Point(this.udTempoConsulta.Location.X, this.udTempoConsulta.Location.Y);
                }
                else
                {
                    labelUF.Text = "Unidade Federativa (UF)";
                    lbl_udDiasLimpeza.Location = loc_1;
                    udDiasLimpeza.Location     = loc_2;
                }
                this.lbl_CodMun.Visible             =
                    this.edtCodMun.Visible          =
                        this.edtPadrao.Visible      =
                            this.lbl_Padrao.Visible = (empresa.Servico == TipoAplicativo.Nfse);

                cboDiretorioSalvarComo.Visible      =
                    lbl_DiretorioSalvarComo.Visible =
                        comboBox_tpEmis.Visible     =
                            metroLabel11.Visible    =
                                checkBoxGravarEventosNaPastaEnviadosNFe.Visible =
                                    checkBoxRetornoNFETxt.Visible =
                                        checkBoxGravarEventosDeTerceiros.Visible =
                                            checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Visible =
                                                checkBoxCompactaNFe.Visible =
                                                    udTempoConsulta.Visible = lbl_udTempoConsulta.Visible =
                                                        cbIndSinc.Visible   = !(empresa.Servico == TipoAplicativo.Nfse);

                /*
                 *
                 * if (empresa.Servico == TipoAplicativo.Nfe || empresa.Servico == TipoAplicativo.NFCe || empresa.Servico == TipoAplicativo.Todos)
                 * {
                 *  grpQRCode.Visible =
                 *  edtIdentificadorCSC.Visible =
                 *  edtTokenCSC.Visible = true;
                 * }
                 * else
                 * {
                 *  grpQRCode.Visible =
                 *  edtIdentificadorCSC.Visible =
                 *  edtTokenCSC.Visible = false;
                 * }
                 */

                if (empresa.Servico == TipoAplicativo.Nfse)
                {
                    comboBox_UF.DataSource = arrMunicipios;
                }
                else
                {
                    comboBox_UF.DataSource = arrUF;
                }

                comboBox_UF.DisplayMember = NFe.Components.NFeStrConstants.Nome;
                comboBox_UF.ValueMember   = "Codigo";

                cnpjCurrent       = this.edtCNPJ.Text = empresa.CNPJ;
                this.edtNome.Text = empresa.Nome;

                if (!string.IsNullOrEmpty(empresa.CNPJ))
                {
                    this.edtCNPJ.Text = uninfeDummy.FmtCnpjCpf(this.edtCNPJ.Text, true);
                }

                comboBox_tpEmis.SelectedValue   = this.empresa.tpEmis;
                comboBox_Ambiente.SelectedValue = this.empresa.AmbienteCodigo;
                comboBox_UF.SelectedValue       = this.empresa.UnidadeFederativaCodigo;
                cbServico.SelectedValue         = (int)this.empresa.Servico;

                if (empresa.Servico == TipoAplicativo.Nfse && this.empresa.UnidadeFederativaCodigo == 0)
                {
                    comboBox_UF.SelectedIndex = 0;
                }

                checkBoxRetornoNFETxt.Checked                               = this.empresa.GravarRetornoTXTNFe;
                checkBoxGravarEventosDeTerceiros.Checked                    = this.empresa.GravarEventosDeTerceiros;
                checkBoxGravarEventosNaPastaEnviadosNFe.Checked             = this.empresa.GravarEventosNaPastaEnviadosNFe;
                checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked = this.empresa.GravarEventosCancelamentoNaPastaEnviadosNFe;
                checkBoxCompactaNFe.Checked = this.empresa.CompactarNfe;
                cbIndSinc.Checked           = this.empresa.IndSinc;
                edtIdentificadorCSC.Text    = this.empresa.IdentificadorCSC;
                edtTokenCSC.Text            = this.empresa.TokenCSC;

                cboDiretorioSalvarComo.Text = this.empresa.DiretorioSalvarComo;
                udDiasLimpeza.Text          = this.empresa.DiasLimpeza.ToString();
                udTempoConsulta.Text        = this.empresa.TempoConsulta.ToString();

                this.txtSenhaWS.Text   = this.empresa.SenhaWS;
                this.txtUsuarioWS.Text = this.empresa.UsuarioWS;

                HabilitaUsuarioSenhaWS(this.empresa.UnidadeFederativaCodigo);
                servicoCurrent = this.empresa.Servico;

                HabilitaOpcaoCompactar(this.empresa.Servico == TipoAplicativo.Nfe);

                this.edtCNPJ.ReadOnly  = !string.IsNullOrEmpty(empresa.CNPJ);
                this.cbServico.Enabled = !this.edtCNPJ.ReadOnly;

                if (this.empresa.Servico != TipoAplicativo.Nfse && !novaempresa)
                {
                    this.cbServico.Enabled = true;
                }
            }
            finally
            {
                this.loading = false;
                cbServico_SelectedIndexChanged(null, null);
                comboBox_UF_SelectedIndexChanged(null, null);
            }
        }
예제 #20
0
        /// <summary>
        /// Pega algumas informações do certificado digital informado por parâmetro para o método e disponibiliza em propriedades para utilização
        /// </summary>
        /// <param name="empresa">Objeto com os dados da empresa</param>
        /// <returns>Retorna se localizou o certificado ou não (True or False)</returns>
        public bool PrepInfCertificado(Empresa empresa)
        {
            bool localizouCertificado;
            X509Certificate2 x509Cert = empresa.BuscaConfiguracaoCertificado();

            if (x509Cert == null)
                localizouCertificado = false;
            else
            {
                sSubject = x509Cert.Subject;
                dValidadeInicial = x509Cert.NotBefore;
                dValidadeFinal = x509Cert.NotAfter;
                localizouCertificado = true;
            }

            return localizouCertificado;
        }
예제 #21
0
파일: Auxiliar.cs 프로젝트: Klegy/uninfe
        /// <summary>
        /// Carrega as Empresas que foram cadastradas e estão gravadas no XML
        /// </summary>
        /// <param name="sonfe"></param>
        /// <param name="pedidoSituacao">Se verdadeiro, está sendo chamado pela tela de pedido de situação</param>
        /// <returns>Retorna uma ArrayList das empresas cadastradas</returns>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 28/07/2010
        /// </remarks>
        public static ArrayList CarregaEmpresa(bool sonfe, bool pedidoSituacao = false)
        {
            ArrayList empresa = new ArrayList();

            string arqXML = Propriedade.NomeArqEmpresas;
            int    codEmp = 0;

            if (File.Exists(arqXML))
            {
                //Carregar os dados do arquivo XML de configurações da Aplicação
                XElement axml = XElement.Load(arqXML);
                var      b1   = axml.Descendants(NFeStrConstants.Registro);
                foreach (var item in b1)
                {
                    string cnpj    = item.Attribute(TpcnResources.CNPJ.ToString()).Value;
                    string nome    = item.Element(NFeStrConstants.Nome).Value;
                    string servico = "";
                    if (item.Attribute(NFeStrConstants.Servico) != null)
                    {
                        servico = item.Attribute(NFeStrConstants.Servico).Value;
                        if (!string.IsNullOrEmpty(servico))
                        {
                            servico = ((TipoAplicativo)Convert.ToInt16(servico)).ToString();
                        }
                    }
                    if (string.IsNullOrEmpty(servico))
                    {
                        servico = Propriedade.TipoAplicativo.ToString();
                    }

                    Empresa emp = new Empresa()
                    {
                        Nome    = nome,
                        CNPJ    = cnpj,
                        Servico = (TipoAplicativo)Enum.Parse(typeof(TipoAplicativo), servico, true)
                    };

                    if (File.Exists(emp.NomeArquivoConfig))
                    {
                        if (sonfe && (servico.Equals(TipoAplicativo.Nfse.ToString()) ||
                                      servico.Equals(TipoAplicativo.eSocial.ToString()) ||
                                      servico.Equals(TipoAplicativo.EFDReinf.ToString()) ||
                                      servico.Equals(TipoAplicativo.EFDReinfeSocial.ToString())))
                        {
                            codEmp++;
                            continue;
                        }

                        empresa.Add(new ComboElem
                        {
                            Valor   = cnpj,
                            Codigo  = codEmp,
                            Nome    = nome + "  <" + servico + ">",
                            Servico = servico
                        });

                        codEmp++;
                    }
                }
            }

            if (pedidoSituacao)
            {
                empresa.Add(new ComboElem
                {
                    Valor   = string.Empty,
                    Codigo  = codEmp,
                    Nome    = "Todas as empresas",
                    Servico = TipoAplicativo.Todos.ToString()
                });
            }

            empresa.Sort(new OrdenacaoPorNome());

            return(empresa);
        }
예제 #22
0
파일: Empresa.cs 프로젝트: akretion/uninfe
        public void BuscaConfiguracao()
        {
            if (!Directory.Exists(this.PastaEmpresa))
                Directory.CreateDirectory(this.PastaEmpresa);

            LimparPropriedades(this);

            if (File.Exists(this.NomeArquivoConfig))
            {
                try
                {
                    ObjectXMLSerializer objObjectXMLSerializer = new ObjectXMLSerializer();
                    ///
                    /// verifica se precisa de conversao para que a Deserializacao funcione
                    string temp = File.ReadAllText(this.NomeArquivoConfig, Encoding.UTF8);

                    if (temp.Contains("<nfe_configuracoes>") || temp.Contains("<CertificadoDigital>"))
                    {
                        File.WriteAllText(this.NomeArquivoConfig + ".old", temp);

                        //this.BuscaConfiguracao(this);
                        //objObjectXMLSerializer.Save(this, this.NomeArquivoConfig);

                        temp = temp.Replace("<nfe_configuracoes>", "<Empresa xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
                        temp = temp.Replace("</nfe_configuracoes>", "</Empresa>");
                        temp = temp.Replace(">False<", ">false<").Replace(">True<", ">true<");
                        if (!temp.Contains("<diretorioSalvarComo>"))
                        {
                            temp = temp.Replace("<DiretorioSalvarComo>", "<diretorioSalvarComo>").Replace("</DiretorioSalvarComo>", "</diretorioSalvarComo>");
                        }
                        temp = temp.Replace("<CertificadoDigital>", "<Certificado>").Replace("</CertificadoDigital>", "</Certificado>");
                        File.WriteAllText(this.NomeArquivoConfig, temp);
                    }
                    Empresa t = new Empresa();
                    t = (Empresa)objObjectXMLSerializer.Load(typeof(Empresa), this.NomeArquivoConfig);

                    if (!temp.Contains("<UsaCertificado>"))
                        t.UsaCertificado = true;
                    if (!temp.Contains("<FTPPassivo>"))
                        t.FTPPassivo = false;

                    if (t.UsaCertificado)
                    {
                        if (!t.CertificadoInstalado && !string.IsNullOrEmpty(t.CertificadoSenha))
                            t.CertificadoSenha = Criptografia.descriptografaSenha(t.CertificadoSenha);
                    }

                    t.CertificadoPIN = Criptografia.descriptografaSenha(t.CertificadoPIN);

                    t.Nome = this.Nome;
                    t.CNPJ = this.CNPJ;
                    t.Servico = this.Servico;
                    if (t.Servico != TipoAplicativo.Nfse)
                        t.UsaCertificado = true;

                    t.CopyObjectTo(this);

                    this.CriarPastasDaEmpresa();

                    this.X509Certificado = this.BuscaConfiguracaoCertificado();
                }
                catch (Exception ex)
                {
                    //Não vou mais fazer isso pois estava gerando problemas com Certificados A3 - Renan 18/06/2013
                    //empresa.Certificado = string.Empty;
                    //empresa.CertificadoThumbPrint = string.Empty;
                    throw new Exception("Ocorreu um erro ao efetuar a leitura das configurações da empresa " + this.Nome.Trim() + ". Por favor entre na tela de configurações desta empresa e reconfigure.\r\n\r\nErro: " + ex.Message);
                }
            }
        }
예제 #23
0
파일: Empresas.cs 프로젝트: akretion/uninfe
        private static string CriaArquivoDeErro(Empresa empresa, string cArqErro)
        {
            if (string.IsNullOrEmpty(empresa.PastaXmlRetorno))
                cArqErro = Path.Combine(Propriedade.PastaExecutavel, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")));
            else
                cArqErro = Path.Combine(empresa.PastaXmlRetorno, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")));

            if (!Directory.Exists(Path.GetDirectoryName(cArqErro)))
            {
                cArqErro = Path.Combine(Propriedade.PastaLog, Path.GetFileName(cArqErro));
            }
            return cArqErro;
        }
예제 #24
0
파일: Empresa.cs 프로젝트: akretion/uninfe
        private void LimparPropriedades(Empresa empresa)
        {
            empresa.PastaXmlEnvio =
                empresa.PastaXmlRetorno =
                empresa.PastaXmlEnviado =
                empresa.PastaXmlErro =
                empresa.PastaBackup =
                empresa.PastaXmlEmLote =
                empresa.PastaValidar =
                empresa.PastaDanfeMon =
                empresa.PastaExeUniDanfe =
                empresa.ConfiguracaoDanfe =
                empresa.ConfiguracaoCCe =
                empresa.PastaConfigUniDanfe =
                empresa.PastaDownloadNFeDest =
                empresa.EmailDanfe = string.Empty;

            empresa.X509Certificado = null;
            empresa.UsaCertificado = true;
            empresa.CertificadoInstalado = true;
            empresa.CertificadoArquivo =
                empresa.CertificadoDigitalThumbPrint =
                empresa.CertificadoSenha =
                empresa.CertificadoPIN =
                empresa.ProviderCertificado =
                empresa.ProviderTypeCertificado =
                empresa.Certificado = string.Empty;

            empresa.FTPAtivo = false;
            empresa.FTPPorta = 21;
            empresa.FTPSenha =
                empresa.FTPNomeDoServidor =
                empresa.FTPNomeDoUsuario =
                empresa.FTPPastaRetornos =
                empresa.FTPPastaAutorizados = string.Empty;

            empresa.UnidadeFederativaCodigo = 0;
            empresa.DiasLimpeza = 0;
            empresa.TempoConsulta = 2;

            empresa.CriaPastasAutomaticamente = false;

            empresa.UsuarioWS = string.Empty;
            empresa.SenhaWS = string.Empty;

            empresa.AmbienteCodigo = (int)NFe.Components.TipoAmbiente.taHomologacao; //2
            empresa.tpEmis = (int)NFe.Components.TipoEmissao.teNormal; //1
            if (Propriedade.TipoAplicativo != TipoAplicativo.Nfse)
                empresa.UnidadeFederativaCodigo = 41;

            empresa.GravarRetornoTXTNFe =
                empresa.GravarEventosNaPastaEnviadosNFe =
                empresa.GravarEventosCancelamentoNaPastaEnviadosNFe =
                empresa.GravarEventosDeTerceiros =
                empresa.XMLDanfeMonNFe =
                empresa.XMLDanfeMonProcNFe =
                empresa.XMLDanfeMonDenegadaNFe =
                empresa.IndSinc = false;
            empresa.AdicionaEmailDanfe = true;
            empresa.DiretorioSalvarComo = "AM";
        }
예제 #25
0
파일: Empresas.cs 프로젝트: akretion/uninfe
        public static void verificaPasta(Empresa empresa, XmlElement configElemento, string tagName, string descricao, bool isObrigatoria)
        {
            XmlNode node = configElemento.GetElementsByTagName(tagName)[0];
            if (node != null)
            {
                if (!isObrigatoria && node.InnerText.Trim() == "")
                    return;

                if (isObrigatoria && node.InnerText.Trim() == "")
                {
                    Empresas.ExisteErroDiretorio = true;
                    ErroCaminhoDiretorio += "Empresa: " + empresa.Nome + "   : \"" + descricao + "\"\r\n";
                }
                else
                    if (!Directory.Exists(node.InnerText.Trim()) && node.InnerText.Trim() != "")
                    {
                        Empresas.ExisteErroDiretorio = true;
                        ErroCaminhoDiretorio += "Empresa: " + empresa.Nome + "   Pasta: " + node.InnerText.Trim() + "\r\n";
                    }
            }
            else
            {
                if (isObrigatoria)
                {
                    Empresas.ExisteErroDiretorio = true;
                    ErroCaminhoDiretorio += "Empresa: " + empresa.Nome + "   : \"" + descricao + "\"\r\n";
                }
            }
        }
예제 #26
0
        public void Populate(NFe.Settings.Empresa empresa, bool novaempresa)
        {
            this.loading = true;
            try
            {
                uninfeDummy.ClearControls(this, true, false);

                this.empresa = empresa;

                if (empresa.Servico == TipoAplicativo.Nfse)
                {
                    labelUF.Text = "Município";
                    lbl_udDiasLimpeza.Location = new Point(this.lbl_udTempoConsulta.Location.X, this.lbl_udTempoConsulta.Location.Y);
                    udDiasLimpeza.Location = new Point(this.udTempoConsulta.Location.X, this.udTempoConsulta.Location.Y);
                }
                else
                {
                    labelUF.Text = "Unidade Federativa (UF-Estado)";
                    lbl_udDiasLimpeza.Location = loc_1;
                    udDiasLimpeza.Location = loc_2;
                }
                this.lbl_CodMun.Visible =
                    this.edtCodMun.Visible =
                    this.edtPadrao.Visible =
                    this.lbl_Padrao.Visible = (empresa.Servico == TipoAplicativo.Nfse);

                cboDiretorioSalvarComo.Visible =
                    lbl_DiretorioSalvarComo.Visible =
                    comboBox_tpEmis.Visible =
                    metroLabel11.Visible =
                    checkBoxGravarEventosNaPastaEnviadosNFe.Visible =
                    checkBoxRetornoNFETxt.Visible =
                    checkBoxGravarEventosDeTerceiros.Visible =
                    checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Visible =
                    checkBoxCompactaNFe.Visible =
                    udTempoConsulta.Visible = lbl_udTempoConsulta.Visible =
                    cbIndSinc.Visible = !(empresa.Servico == TipoAplicativo.Nfse);

                /*

                if (empresa.Servico == TipoAplicativo.Nfe || empresa.Servico == TipoAplicativo.NFCe || empresa.Servico == TipoAplicativo.Todos)
                {
                    grpQRCode.Visible =
                    edtIdentificadorCSC.Visible =
                    edtTokenCSC.Visible = true;
                }
                else
                {
                    grpQRCode.Visible =
                    edtIdentificadorCSC.Visible =
                    edtTokenCSC.Visible = false;
                }
                */

                if (empresa.Servico == TipoAplicativo.Nfse)
                    comboBox_UF.DataSource = arrMunicipios;
                else
                    comboBox_UF.DataSource = arrUF;

                comboBox_UF.DisplayMember = NFe.Components.NFeStrConstants.Nome;
                comboBox_UF.ValueMember = "Codigo";

                cnpjCurrent = this.edtCNPJ.Text = empresa.CNPJ;
                this.edtNome.Text = empresa.Nome;

                if (!string.IsNullOrEmpty(empresa.CNPJ))
                    this.edtCNPJ.Text = uninfeDummy.FmtCnpjCpf(this.edtCNPJ.Text, true);

                comboBox_tpEmis.SelectedValue = this.empresa.tpEmis;
                comboBox_Ambiente.SelectedValue = this.empresa.AmbienteCodigo;
                comboBox_UF.SelectedValue = this.empresa.UnidadeFederativaCodigo;
                cbServico.SelectedValue = (int)this.empresa.Servico;

                if (empresa.Servico == TipoAplicativo.Nfse && this.empresa.UnidadeFederativaCodigo == 0)
                    comboBox_UF.SelectedIndex = 0;

                checkBoxRetornoNFETxt.Checked = this.empresa.GravarRetornoTXTNFe;
                checkBoxGravarEventosDeTerceiros.Checked = this.empresa.GravarEventosDeTerceiros;
                checkBoxGravarEventosNaPastaEnviadosNFe.Checked = this.empresa.GravarEventosNaPastaEnviadosNFe;
                checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked = this.empresa.GravarEventosCancelamentoNaPastaEnviadosNFe;
                checkBoxCompactaNFe.Checked = this.empresa.CompactarNfe;
                cbIndSinc.Checked = this.empresa.IndSinc;
                edtIdentificadorCSC.Text = this.empresa.IndentificadorCSC;
                edtTokenCSC.Text = this.empresa.TokenCSC;

                cboDiretorioSalvarComo.Text = this.empresa.DiretorioSalvarComo;
                udDiasLimpeza.Text = this.empresa.DiasLimpeza.ToString();
                udTempoConsulta.Text = this.empresa.TempoConsulta.ToString();

                this.txtSenhaWS.Text = this.empresa.SenhaWS;
                this.txtUsuarioWS.Text = this.empresa.UsuarioWS;

                HabilitaUsuarioSenhaWS(this.empresa.UnidadeFederativaCodigo);
                servicoCurrent = this.empresa.Servico;

                HabilitaOpcaoCompactar(this.empresa.Servico == TipoAplicativo.Nfe);

                this.edtCNPJ.ReadOnly = !string.IsNullOrEmpty(empresa.CNPJ);
                this.cbServico.Enabled = !this.edtCNPJ.ReadOnly;

                if (this.empresa.Servico != TipoAplicativo.Nfse && !novaempresa)
                    this.cbServico.Enabled = true;
            }
            finally
            {
                this.loading = false;
                cbServico_SelectedIndexChanged(null, null);
                comboBox_UF_SelectedIndexChanged(null, null);
            }
        }