Beispiel #1
0
        private void cbServico_Leave(object sender, EventArgs e)
        {
            TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue;

            if (servico != servicoCurrent)
            {
                if (Empresas.FindConfEmpresa(cnpjCurrent, servico) != null)
                {
                    this.tabControl3.SelectedIndex = 0;
                    this.cbServico.Focus();
                    MessageBox.Show("Empresa/CNPJ para atender o serviço de " + servico.ToString() + " já existe", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                bool mudaPastas = true;
                if (!string.IsNullOrEmpty(textBox_PastaEnvioXML.Text))
                {
                    mudaPastas = MessageBox.Show("Serviço foi alterado e você já tem as pastas definidas. Deseja mudá-las para o novo Serviço?", "Serviço alterado", MessageBoxButtons.YesNo) == DialogResult.Yes;
                }

                if (mudaPastas)
                {
                    MudarPastas(cnpjCurrent, servico);
                }

                servicoCurrent = servico;
            }
        }
Beispiel #2
0
        private void MudarPastas(string cnpj, TipoAplicativo servico)
        {
            Modificado = true;

            string subpasta = "";

            switch (servico)
            {
            case TipoAplicativo.Todos:
            case TipoAplicativo.Nfe:
                break;

            default:
                subpasta = "\\" + servico.ToString().ToLower();
                break;
            }

            this.textBox_PastaEnvioXML.Text   = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Envio");
            this.textBox_PastaRetornoXML.Text = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Retorno");
            this.textBox_PastaXmlErro.Text    = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Erro");
            this.textBox_PastaValidar.Text    = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Validar");

            if (servico != TipoAplicativo.Nfse)
            {
                this.textBox_PastaLote.Text     = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\EnvioEmLote");
                this.textBox_PastaEnviados.Text = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Enviado");

                if (!string.IsNullOrEmpty(textBox_PastaDownload.Text))
                {
                    this.textBox_PastaDownload.Text = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\DownloadNFe");
                }

                if (!string.IsNullOrEmpty(textBox_PastaBackup.Text))
                {
                    textBox_PastaBackup.Text = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Backup");
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Popular campos das configurações por empresa
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 29/07/2010
        /// </remarks>
        public void PopulateConfEmpresa(string cnpj, TipoAplicativo servico)
        {
            stopChangedEvent = true;
            try
            {
                #region Definir um texto explicativo sobre a impressão do DANFE. Wandrey 02/02/2010
                tbTextoDANFE.Text = "Você pode automatizar o processo de geração/impressão do documento fiscal eletrônico através do UniDANFe ou do DANFeMon, bastando preencher os campos abaixo." +
                                    "\r\n\r\n" +
                                    "As configurações adicionais devem ser definidas no UniDANFe ou no arquivo XML auxiliar. Para maiores detalhes, consulte a documentação do UniDANFe.";
                #endregion

                #region Montar Array DropList da UF
                ArrayList arrUF = new ArrayList();

                try
                {
                    if (servico == TipoAplicativo.Nfse)
                    {
                        arrUF = Functions.CarregaMunicipios();
                    }
                    else
                    {
                        arrUF = Functions.CarregaEstados();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

                comboBox_UF.DataSource    = arrUF;
                comboBox_UF.DisplayMember = NFe.Components.NFeStrConstants.Nome;
                comboBox_UF.ValueMember   = "Codigo";
                #endregion

                #region Montar Array DropList do Ambiente

                // atribuido "TipoEmbiente"
                ArrayList arrAmb = new ArrayList();
                arrAmb.Add(new ComboElem("Produção", (int)NFe.Components.TipoAmbiente.taProducao));
                arrAmb.Add(new ComboElem("Homologação", (int)NFe.Components.TipoAmbiente.taHomologacao));

                comboBox_Ambiente.DataSource    = arrAmb;
                comboBox_Ambiente.DisplayMember = "valor";
                comboBox_Ambiente.ValueMember   = "codigo";
                #endregion

                #region Montar array DropList dos tipos de serviços
                if (servico != TipoAplicativo.Nfse)
                {
                    arrServico.Add(new ComboElem("NF-e, NFC-e, CT-e e MDF-e", (int)TipoAplicativo.Todos));
                    arrServico.Add(new ComboElem("NF-e e NFC-e", (int)TipoAplicativo.Nfe));
                    arrServico.Add(new ComboElem("CT-e", (int)TipoAplicativo.Cte));
                    arrServico.Add(new ComboElem("MDF-e", (int)TipoAplicativo.MDFe));
                    arrServico.Add(new ComboElem("NFC-e", (int)TipoAplicativo.NFCe));
                }
                else
                {
                    arrServico.Add(new ComboElem("NFS-e", (int)TipoAplicativo.Nfse));
                }

                cbServico.DataSource    = arrServico;
                cbServico.DisplayMember = "valor";
                cbServico.ValueMember   = "codigo";
                #endregion

                #region Montar Array DropList do Tipo de Emissão da NF-e
                ArrayList arrTpEmis = new ArrayList();
                ArrayList.Synchronized(arrTpEmis);

                // atribuido "TipoEmissao.
                arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teNormal), (int)NFe.Components.TipoEmissao.teNormal));

                if (servico != TipoAplicativo.Nfse)
                {
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teFS), (int)NFe.Components.TipoEmissao.teFS));
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teEPECeDPEC), (int)NFe.Components.TipoEmissao.teEPECeDPEC));
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teFSDA), (int)NFe.Components.TipoEmissao.teFSDA));
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teSVCAN), (int)NFe.Components.TipoEmissao.teSVCAN));
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teSVCRS), (int)NFe.Components.TipoEmissao.teSVCRS));
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teSVCSP), (int)NFe.Components.TipoEmissao.teSVCSP));
                    arrTpEmis.Add(new ComboElem(EnumHelper.GetDescription(NFe.Components.TipoEmissao.teOffLine), (int)NFe.Components.TipoEmissao.teOffLine));
                }

                comboBox_tpEmis.DataSource    = arrTpEmis;
                comboBox_tpEmis.DisplayMember = "Valor";
                comboBox_tpEmis.ValueMember   = "Codigo";
                #endregion

                #region Carregar as configurações da empresa selecionada
                textBox_dadoscertificado.Height = 287;
                textBox_dadoscertificado.Refresh();

                oEmpresa = Empresas.FindConfEmpresa(cnpj.Trim(), servico);
                if (oEmpresa == null)
                {
                    oEmpresa                         = new Empresa();
                    oEmpresa.CNPJ                    = cnpj;
                    oEmpresa.tpEmis                  = (int)NFe.Components.TipoEmissao.teNormal;
                    oEmpresa.AmbienteCodigo          = (int)NFe.Components.TipoAmbiente.taHomologacao;
                    oEmpresa.Servico                 = servico;
                    oEmpresa.UnidadeFederativaCodigo = 41;
                    oEmpresa.DiretorioSalvarComo     = "AM";
                    string subpasta = oEmpresa.CNPJ;
                    switch (servico)
                    {
                    case TipoAplicativo.Todos:
                    case TipoAplicativo.Nfe:
                        break;

                    default:
                        subpasta += "\\" + 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");
                    }
                    oEmpresa.CriaPastasAutomaticamente = true;
                    ///
                    /// tenta achar uma configuracao valida
                    ///
                    foreach (Empresa empresa in Empresas.Configuracoes)
                    {
                        if (empresa.CNPJ.Trim() != oEmpresa.CNPJ.Trim() && !string.IsNullOrEmpty(empresa.PastaXmlEnvio))
                        {
                            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)
                            {
                                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);
                            }

                            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;
                            break;
                        }
                    }
                }
                edtNome.Text = oEmpresa.Nome;
                try
                {
                    oEmpresa.X509Certificado = oEmpresa.BuscaConfiguracaoCertificado();
                }
                catch
                {
                    //Se o certificado der algum problema, não posso abortar este processo,
                    //tem que abrir a tela de configuração para que o usuário possa fazer os ajustes necessários. Wandrey 19/09/2014
                }

                oMeuCert = oEmpresa.X509Certificado;

                ckbCertificadoInstalado.Checked = oEmpresa.CertificadoInstalado;
                if (oEmpresa.CertificadoInstalado)
                {
                    DemonstraDadosCertificado();
                    txtPinCertificado.Text = oEmpresa.CertificadoPIN;
                }
                else
                {
                    txtArquivoCertificado.Text = oEmpresa.CertificadoArquivo;
                    txtSenhaCertificado.Text   = oEmpresa.CertificadoSenha;
                }


                edtCNPJ.Text   = oEmpresa.CNPJ;
                cbServico.Text = AtribuirVlr_cbServico(oEmpresa.Servico);

                cboDiretorioSalvarComo.Visible            = lbl_DiretorioSalvarComo.Visible =
                    textBox_PastaLote.Visible             = lbl_textBox_PastaLote.Visible = button_SelectPastaLote.Visible =
                        textBox_PastaBackup.Visible       = lbl_textBox_PastaBackup.Visible = button_SelectPastaBackup.Visible =
                            textBox_PastaEnviados.Visible = lbl_textBox_PastaEnviados.Visible = button_SelectPastaXmlEnviado.Visible =
                                checkBoxGravarEventosNaPastaEnviadosNFe.Visible =
                                    checkBoxRetornoNFETxt.Visible =
                                        checkBoxGravarEventosDeTerceiros.Visible =
                                            checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Visible =
                                                udTempoConsulta.Visible               = lbl_udTempoConsulta.Visible =
                                                    edtFTP_PastaDestino.Visible       = lbl_edtFTP_PastaDestino.Visible = edtFTP_GravaXMLPastaUnica.Visible =
                                                        textBox_PastaDownload.Visible = lbl_textBox_PastaDownload.Visible =
                                                            button_SelecionarPastaDownload.Visible =
                                                                cbIndSinc.Visible = (oEmpresa.Servico != TipoAplicativo.Nfse);

                textBox_PastaEnvioXML.Text   = oEmpresa.PastaXmlEnvio;
                textBox_PastaRetornoXML.Text = oEmpresa.PastaXmlRetorno;
                textBox_PastaEnviados.Text   = oEmpresa.PastaXmlEnviado;
                textBox_PastaXmlErro.Text    = oEmpresa.PastaXmlErro;
                textBox_PastaLote.Text       = oEmpresa.PastaXmlEmLote;
                textBox_PastaValidar.Text    = oEmpresa.PastaValidar;
                textBox_PastaDownload.Text   = oEmpresa.PastaDownloadNFeDest;
                textBox_PastaBackup.Text     = (oEmpresa.PastaBackup == string.Empty ? string.Empty : oEmpresa.PastaBackup);

                chkAddEmailDANFE.Checked                                    = oEmpresa.AdicionaEmailDanfe;
                edtEmailDANFE.Text                                          = oEmpresa.EmailDanfe;
                tbConfiguracaoDanfe.Text                                    = oEmpresa.ConfiguracaoDanfe;
                tbConfiguracaoCCe.Text                                      = oEmpresa.ConfiguracaoCCe;
                tbPastaConfigUniDanfe.Text                                  = (oEmpresa.PastaConfigUniDanfe == string.Empty ? string.Empty : oEmpresa.PastaConfigUniDanfe);
                tbPastaExeUniDanfe.Text                                     = (oEmpresa.PastaExeUniDanfe == string.Empty ? string.Empty : oEmpresa.PastaExeUniDanfe);
                tbPastaXmlParaDanfeMon.Text                                 = (oEmpresa.PastaDanfeMon == string.Empty ? string.Empty : oEmpresa.PastaDanfeMon);
                cbDanfeMonNfe.Checked                                       = oEmpresa.XMLDanfeMonNFe;
                cbDanfeMonProcNfe.Checked                                   = oEmpresa.XMLDanfeMonProcNFe;
                checkBoxRetornoNFETxt.Checked                               = oEmpresa.GravarRetornoTXTNFe;
                checkBoxGravarEventosDeTerceiros.Checked                    = oEmpresa.GravarEventosDeTerceiros;
                checkBoxGravarEventosNaPastaEnviadosNFe.Checked             = oEmpresa.GravarEventosNaPastaEnviadosNFe;
                checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked = oEmpresa.GravarEventosCancelamentoNaPastaEnviadosNFe;
                checkBoxCompactaNFe.Checked                                 = oEmpresa.CompactarNfe;
                HabilitaOpcaoCompactar(oEmpresa.Servico == TipoAplicativo.Nfe || oEmpresa.Servico == TipoAplicativo.Todos);
                cbIndSinc.Checked    = oEmpresa.IndSinc;
                cbCriaPastas.Checked = oEmpresa.CriaPastasAutomaticamente;

                cboDiretorioSalvarComo.Text = oEmpresa.DiretorioSalvarComo;
                udDiasLimpeza.Value         = oEmpresa.DiasLimpeza;
                udTempoConsulta.Value       = (oEmpresa.TempoConsulta >= udTempoConsulta.Minimum && oEmpresa.TempoConsulta <= udTempoConsulta.Maximum ? oEmpresa.TempoConsulta : udTempoConsulta.Minimum);

                edtFTP_Ativo.Checked = oEmpresa.FTPAtivo;
                edtFTP_GravaXMLPastaUnica.Checked = oEmpresa.FTPGravaXMLPastaUnica;
                edtFTP_Password.Text      = oEmpresa.FTPSenha;
                edtFTP_PastaDestino.Text  = oEmpresa.FTPPastaAutorizados;
                edtFTP_PastaRetornos.Text = oEmpresa.FTPPastaRetornos;
                edtFTP_Porta.Value        = oEmpresa.FTPPorta;
                edtFTP_Server.Text        = oEmpresa.FTPNomeDoServidor;
                edtFTP_UserName.Text      = oEmpresa.FTPNomeDoUsuario;

                txtUsuarioWS.Text = oEmpresa.UsuarioWS;
                txtSenhaWS.Text   = oEmpresa.SenhaWS;

                cnpjCurrent    = oEmpresa.CNPJ;
                servicoCurrent = oEmpresa.Servico;

                if (servico == TipoAplicativo.Nfse)
                {
                    edtCodMun.Text = oEmpresa.UnidadeFederativaCodigo.ToString();
                    edtPadrao.Text = EnumHelper.GetEnumItemDescription(Functions.PadraoNFSe(oEmpresa.UnidadeFederativaCodigo));
                    //edtPadrao.Text = Functions.GetEnumDescription(Functions.PadraoNFSe(oEmpresa.UnidadeFederativaCodigo));
                }

                //Carregar o conteúdo do droplist do tipo de emissão para forçar demonstrar
                //o conteúdo já informado pelo usuário. Wandrey 30/10/2008
                for (int i = 0; i < arrTpEmis.Count; i++)
                {
                    if (((ComboElem)(new System.Collections.ArrayList(arrTpEmis))[i]).Codigo == oEmpresa.tpEmis)
                    {
                        this.comboBox_tpEmis.Text = ((ComboElem)(new System.Collections.ArrayList(arrTpEmis))[i]).Valor;
                        break;
                    }
                }

                //Carregar o conteúdo do droplist da Unidade Federativa (UF) para forçar demonstrar
                //o conteúdo já informado pelo usuário. Wandrey 30/10/2008
                for (int i = 0; i < arrUF.Count; i++)
                {
                    if (((ComboElem)(new System.Collections.ArrayList(arrUF))[i]).Codigo == oEmpresa.UnidadeFederativaCodigo)
                    {
                        this.comboBox_UF.Text = ((ComboElem)(new System.Collections.ArrayList(arrUF))[i]).Nome;
                        break;
                    }
                }

                //Carregar o conteúdo do droplist do Ambiente para forçar demonstrar
                //o conteúdo já informado pelo usuário. Wandrey 30/10/2008
                for (int i = 0; i < arrAmb.Count; i++)
                {
                    if (((ComboElem)(new System.Collections.ArrayList(arrAmb))[i]).Codigo == oEmpresa.AmbienteCodigo)
                    {
                        this.comboBox_Ambiente.Text = ((ComboElem)(new System.Collections.ArrayList(arrAmb))[i]).Valor;
                        break;
                    }
                }
                #endregion

                HabilitaUsuarioSenhaWS(oEmpresa.UnidadeFederativaCodigo);
                this.Modificado = false;

                if (servico == TipoAplicativo.Nfse)
                {
                    ///danasa 1-2012
                    this.tabControl3.TabPages.Remove(this.tabPageDanfe);
                    labelUF.Text = "Município/Cidade:";
                }

                labelCodMun.Visible           =
                    labelPadrao.Visible       =
                        edtCodMun.Visible     =
                            edtPadrao.Visible = (servico == TipoAplicativo.Nfse);
            }
            finally
            {
                stopChangedEvent         = false;
                this.cbServico.Enabled   =
                    this.edtCNPJ.Enabled = false;
            }
        }