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; } }
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"); } } }
/// <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; } }