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 cbEmpresas_SelectedIndexChanged(object sender, EventArgs e) { #region currentEmpresa = null; var list = (cbEmpresas.DataSource as System.Collections.ArrayList)[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 { currentEmpresa = new Empresa(); empresa.CopyObjectTo(currentEmpresa); empcnpj = currentEmpresa.CNPJ; servico = currentEmpresa.Servico; CopiaDadosDaEmpresaParaControls(currentEmpresa, false); btnNova.Tag = 0; } #endregion }
private void metroButton1_Click(object sender, EventArgs e) { this.edtCNPJ.Focus(); string cnpj = NFe.Components.Functions.OnlyNumbers(this.edtCNPJ.Text, ".,-/").ToString().PadLeft(14, '0'); this.edtCNPJ.Text = uninfeDummy.FmtCnpjCpf(cnpj, true); if (!NFe.Components.CNPJ.Validate(cnpj) || cnpj.Equals("00000000000000")) { if (cnpj.Equals("00000000000000")) { this.edtCNPJ.Clear(); } MetroFramework.MetroMessageBox.Show(this, "CNPJ inválido", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.edtNome.Text.Trim().Length == 0) { this.edtNome.Focus(); MetroFramework.MetroMessageBox.Show(this, "Nome deve ser informado", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } NFe.Components.TipoAplicativo servico = (NFe.Components.TipoAplicativo)cbServico.SelectedValue; Empresa empresa = null; switch (servico) { case TipoAplicativo.Todos: case TipoAplicativo.Nfe: //Serviço todos e NFe utilizam a mesma pasta de configurações, então não posso permitir configurar o mesmo CNPJ para os dois serviços. Wandrey if ((empresa = Empresas.FindConfEmpresa(cnpj, TipoAplicativo.Todos)) == null) { empresa = Empresas.FindConfEmpresa(cnpj, TipoAplicativo.Nfe); } break; default: empresa = Empresas.FindConfEmpresa(cnpj, servico); break; } if (empresa != null) { string msgErro = "Já existe uma Empresa/CNPJ configurada para atender este serviço, conforme dados abaixo: " + "\r\n\r\nEmpresa configurada: " + empresa.Nome + "\r\nServiço configurado: " + NFe.Components.EnumHelper.GetDescription(empresa.Servico); MetroFramework.MetroMessageBox.Show(this, msgErro, "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.DialogResult = System.Windows.Forms.DialogResult.OK; }
private void metroButton1_Click(object sender, EventArgs e) { if (!ValidarDocumento(comboDocumento.SelectedItem.ToString())) { return; } string cnpj = Functions.OnlyNumbers(edtCNPJ.Text, ".-/").ToString(); if (this.edtNome.Text.Trim().Length == 0) { this.edtNome.Focus(); MetroFramework.MetroMessageBox.Show(this, "Nome deve ser informado", "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue; Empresa empresa = null; switch (servico) { case TipoAplicativo.Todos: case TipoAplicativo.Nfe: //Serviço todos e NFe utilizam a mesma pasta de configurações, então não posso permitir configurar o mesmo CNPJ para os dois serviços. Wandrey if ((empresa = Empresas.FindConfEmpresa(cnpj, TipoAplicativo.Todos)) == null) { empresa = Empresas.FindConfEmpresa(cnpj, TipoAplicativo.Nfe); } break; default: empresa = Empresas.FindConfEmpresa(cnpj, servico); break; } if (empresa != null) { string msgErro = "Já existe uma Empresa/CNPJ configurada para atender este serviço, conforme dados abaixo: " + "\r\n\r\nEmpresa configurada: " + empresa.Nome + "\r\nServiço configurado: " + NFe.Components.EnumHelper.GetDescription(empresa.Servico); MetroFramework.MetroMessageBox.Show(this, msgErro, "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.DialogResult = DialogResult.OK; }
private void button1_Click(object sender, EventArgs e) { string cnpj = Functions.OnlyNumbers(this.edtCNPJ.Text, ".,-/").ToString(); TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue; if (!CNPJ.Validate(cnpj)) { this.edtCNPJ.Focus(); MessageBox.Show("CNPJ inválido", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Empresa empresa = null; switch (servico) { case TipoAplicativo.Todos: case TipoAplicativo.Nfe: //Serviço todos e NFe utilizam a mesma pasta de configurações, então não posso permitir configurar o mesmo CNPJ para os dois serviços. Wandrey if ((empresa = Empresas.FindConfEmpresa(cnpj, TipoAplicativo.Todos)) == null) { empresa = Empresas.FindConfEmpresa(cnpj, TipoAplicativo.Nfe); } break; default: empresa = Empresas.FindConfEmpresa(cnpj, servico); break; } if (empresa != null) { string msgErro = "Já existe uma Empresa/CNPJ configurada para atender este serviço, conforme dados abaixo: " + "\r\n\r\nEmpresa configurada: " + empresa.Nome + "\r\nServiço configurado: " + NFe.Components.EnumHelper.GetDescription(empresa.Servico); MessageBox.Show(msgErro, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DialogResult = System.Windows.Forms.DialogResult.OK; }
private void toolStripButton2_Click(object sender, EventArgs e) { int ativa = this.tabControl4.SelectedIndex; if (ativa == 0) { return; } ucConfiguracao control = (ucConfiguracao)this.tabControl4.TabPages[this.tabControl4.SelectedIndex].Controls[0]; if (control != null) { if (MessageBox.Show("Exclui esta empresa?", "Exclusão", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { if (Empresas.FindConfEmpresa(control.oEmpresa.CNPJ, control.oEmpresa.Servico) != null) { Empresas.Configuracoes.Remove(control.oEmpresa); this.Modificado = true; } control.Dispose(); // this.tabControl4.TabPages.RemoveAt(ativa); if (this.tabControl4.TabPages[ativa] is TabPage) { this.tabControl4.TabPages.Remove(this.tabControl4.TabPages[ativa]); } if (ativa >= this.tabControl4.TabPages.Count) { this.tabControl4.SelectedIndex = this.tabControl4.TabPages.Count - 1; } else { this.tabControl4.SelectedIndex = ativa; } } } tbAdd.Enabled = true; }
private void btnExcluir_Click(object sender, EventArgs e) { if (btnExcluir.Text.Equals("Excluir")) { if (MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "Deseja realmente excluir esta empresa?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { try { var list = (cbEmpresas.DataSource as System.Collections.ArrayList)[cbEmpresas.SelectedIndex] as ComboElem; var _Empresa = Empresas.FindConfEmpresa(list.Valor, EnumHelper.StringToEnum <TipoAplicativo>(list.Servico)); if (_Empresa != null) { Empresas.Configuracoes.Remove(_Empresa); new ConfiguracaoApp().GravarArqEmpresas(); CreateControles(); Auxiliar.WriteLog("Empresa '" + _Empresa.CNPJ + "' - Serviço: '" + _Empresa.Servico.ToString() + "' excluída", false); /* * if (MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "Deseja excluir as pastas desta empresa?\r\n\r\nExcluindo-as, serão eliminadas todos os XML's autorizados/denegados/eventos", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) * { * /// * /// exclui as pastas criadas * /// * try * { * _Empresa.ExcluiPastas(); * } * catch { } * } */ } else { MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "Não foi possível acessar a empresa para excluí-la"); } } catch (Exception ex) { MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, ""); } } } else { /// /// compara o que foi mudado /// try { bool pergunta = DadosMudaramDaEmpresa(false); if (EmpresaValidada) { if (pergunta) { pergunta = !(MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, constAbandono, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes); } if (!pergunta) { Modificado = false; empcnpj = ""; if (Empresas.Configuracoes.Count > 0) { cbEmpresas_SelectedIndexChanged(sender, e); } else { /// /// as propriedades gerais mudou? if (uc_geral.Modificado) { new ConfiguracaoApp().GravarConfigGeral(); uc_geral.PopulateConfGeral(); } /// /// como nao tem nenhuma empresa, fecha este processo voltando ao menu principal BackFuncao(); } cbEmpresas.Visible = metroLabel2.Visible = true; btnExcluir.Visible = cbEmpresas.Items.Count > 0; } } } catch (Exception ex) { MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, ""); } } }
private void btnNova_Click(object sender, EventArgs e) { if (btnNova.Text.Equals("Nova")) { bool ok = false; using (Formularios.FormNova f = new Formularios.FormNova(FindForm())) { ok = f.ShowDialog() == DialogResult.OK; if (ok) { currentEmpresa = new Empresa(); currentEmpresa.CNPJ = NFe.Components.Functions.OnlyNumbers(f.edtCNPJ.Text, ".,-/").ToString().PadLeft(14, '0'); currentEmpresa.Nome = f.edtNome.Text; currentEmpresa.Servico = (TipoAplicativo)f.cbServico.SelectedValue; if (currentEmpresa.Servico == TipoAplicativo.Nfse) { currentEmpresa.UnidadeFederativaCodigo = 0; } else { currentEmpresa.UnidadeFederativaCodigo = 41; } } } if (ok) { cbEmpresas.Visible = metroLabel2.Visible = false; CopiaDadosDaEmpresaParaControls(currentEmpresa, false); tc_main.SelectedIndex = 1; tc_empresa.SelectedIndex = 0; btnNova.Tag = 1; Modificado = true; } } else { /// /// salva a lista de empresas List <Empresa> temp = new List <Empresa>(Empresas.Configuracoes); try { /// /// compara o que foi mudado /// bool grava = DadosMudaramDaEmpresa(true); if (!EmpresaValidada) { return; } if (grava) { currentEmpresa.RemoveEndSlash(); if (servicoCurrent != currentEmpresa.Servico) { var oe = Empresas.FindConfEmpresa(currentEmpresa.CNPJ, servicoCurrent); if (oe != null) { Empresas.Configuracoes.Remove(oe); } } string _key = currentEmpresa.CNPJ + currentEmpresa.Servico.ToString(); /// /// salva a configuracao da empresa /// currentEmpresa.SalvarConfiguracao((currentEmpresa.Servico == TipoAplicativo.SAT ? false : true), true); ValidarPastaBackup(); var app = new ConfiguracaoApp(); /// /// salva o arquivo da lista de empresas /// app.GravarArqEmpresas(); if (uc_geral.Modificado) { /// /// salva as configuracoes gerais app.GravarConfigGeral(); } /// /// reload a lista de empresas Empresas.CarregaConfiguracao(); /// /// reload o ambiente p/ manutencao CreateControles(); /// /// reposiciona a empresa no combobox /// for (int item = 0; item < cbEmpresas.Items.Count; ++item) { ComboElem empr = cbEmpresas.Items[item] as ComboElem; if (empr.Key.Equals(_key)) { cbEmpresas.SelectedIndex = item; break; } } } else { /// /// a empresa nao mudou mas as propriedades gerais mudaram? if (uc_geral.Modificado) { new ConfiguracaoApp().GravarConfigGeral(); uc_geral.PopulateConfGeral(); } } Modificado = false; cbEmpresas.Visible = metroLabel2.Visible = true; } catch (Exception ex) { /// /// restaura a lista de empresas Empresas.Configuracoes = new List <Empresa>(temp); if (Convert.ToInt16(btnNova.Tag) == 1)//inclusao { /// /// exclui as pastas criadas na inclusao /// try { currentEmpresa.ExcluiPastas(); } catch { } } MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, ""); } } }
private bool DadosMudaramDaEmpresa(bool exibeerro) { #region --DadosMudaramDaEmpresa EmpresaValidada = true; if (currentEmpresa == null || !Modificado) { return(false); } try { uc_geral.Validar(); if (!uce_divs.Validar(exibeerro, Convert.ToInt16(btnNova.Tag) == 1)) { EmpresaValidada = false; return(false); } uce_pastas.Validar(); switch (currentEmpresa.Servico) { case TipoAplicativo.SAT: uce_danfe.Validar(); uce_ftp.Validar(); uce_sat.Validar(); break; case TipoAplicativo.Nfse: case TipoAplicativo.EFDReinf: case TipoAplicativo.eSocial: case TipoAplicativo.EFDReinfeSocial: uce_cert.Validar(); break; case TipoAplicativo.Nfe: case TipoAplicativo.Cte: case TipoAplicativo.MDFe: case TipoAplicativo.NFCe: case TipoAplicativo.Todos: case TipoAplicativo.Nulo: default: uce_cert.Validar(); uce_danfe.Validar(); uce_ftp.Validar(); break; } } catch (Exception ex) { if (exibeerro) { throw ex; } } if (Convert.ToInt16(btnNova.Tag) == 1) //se inclusao nao precisa verificar se mudou algo, já que nao tem classe existente { return(Modificado); } var _Empresa = Empresas.FindConfEmpresa(empcnpj, servico); if (_Empresa == null) { return(Modificado); } PropertyInfo[] allClassToProperties = _Empresa.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var pi in allClassToProperties) { if (pi.CanWrite) { var pii = currentEmpresa.GetType().GetProperty(pi.Name, BindingFlags.Instance | BindingFlags.Public); if (pii != null) { object ob1 = pi.GetValue(_Empresa, null); object ob2 = pii.GetValue(currentEmpresa, null); if (ob1 == null || ob2 == null) { continue; } if (!ob1.Equals(ob2)) { Console.WriteLine("{0}: old:{1} x new:{2}", pi.Name, ob1.ToString(), ob2.ToString()); return(true); } } } } return(false); #endregion }
/// <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; } }
public bool Validar(bool exibeerro, bool novaempresa) { string cnpj = (string)Functions.OnlyNumbers(edtCNPJ.Text, ".-/"); if (Convert.ToInt32("0" + udTempoConsulta.Text) < 2 || Convert.ToInt32("0" + udTempoConsulta.Text) > 15) { throw new Exception(lbl_udTempoConsulta.Text + " inválido"); } if (comboBox_UF.SelectedValue == null) { throw new Exception(labelUF.Text + " deve ser informado"); } ValidadeCNPJ(true); if (string.IsNullOrEmpty(edtNome.Text)) { throw new Exception("Nome da empresa deve ser informado"); } if (servicoCurrent != (TipoAplicativo)cbServico.SelectedValue && !novaempresa && exibeerro) { if ((TipoAplicativo)cbServico.SelectedValue == TipoAplicativo.Nfse) { throw new Exception("Não pode mudar para esse tipo de serviço (NFSe)"); } if ((TipoAplicativo)cbServico.SelectedValue == TipoAplicativo.SAT) { throw new Exception("Não pode mudar para esse tipo de serviço (SAT)"); } Empresa e = Empresas.FindConfEmpresa(cnpj, (TipoAplicativo)cbServico.SelectedValue); if (e != null) { throw new Exception("A empresa '" + e.Nome + "' já está monitorando esse tipo de serviço"); } if (MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "Confirma a alteração do tipo de serviço?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return(false); } } switch ((TipoAplicativo)cbServico.SelectedValue) { case TipoAplicativo.NFCe: if (!string.IsNullOrEmpty(edtIdentificadorCSC.Text) && string.IsNullOrEmpty(edtTokenCSC.Text)) { throw new Exception("É obrigatório informar o IDToken quando informado o CSC."); } else if (string.IsNullOrEmpty(edtIdentificadorCSC.Text) && !string.IsNullOrEmpty(edtTokenCSC.Text)) { throw new Exception("É obrigatório informar o CSC quando informado o IDToken."); } break; } empresa.AmbienteCodigo = (int)comboBox_Ambiente.SelectedValue; empresa.CNPJ = cnpj; empresa.ArqNSU = checkBoxArqNSU.Checked; empresa.DiasLimpeza = Math.Abs(Convert.ToInt32("0" + udDiasLimpeza.Text)); empresa.DiretorioSalvarComo = cboDiretorioSalvarComo.Text; empresa.GravarRetornoTXTNFe = checkBoxRetornoNFETxt.Checked; empresa.GravarEventosDeTerceiros = checkBoxGravarEventosDeTerceiros.Checked; empresa.GravarEventosNaPastaEnviadosNFe = checkBoxGravarEventosNaPastaEnviadosNFe.Checked; empresa.GravarEventosCancelamentoNaPastaEnviadosNFe = checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked; empresa.Nome = edtNome.Text; empresa.IndSinc = cbIndSinc.Checked; empresa.TempoConsulta = Math.Abs(Convert.ToInt32("0" + udTempoConsulta.Text)); empresa.tpEmis = (int)comboBox_tpEmis.SelectedValue; empresa.UnidadeFederativaCodigo = (int)comboBox_UF.SelectedValue; empresa.Servico = (TipoAplicativo)cbServico.SelectedValue; empresa.SenhaWS = txtSenhaWS.Text; empresa.UsuarioWS = txtUsuarioWS.Text; empresa.IdentificadorCSC = edtIdentificadorCSC.Text; empresa.TokenCSC = edtTokenCSC.Text; empresa.CompararDigestValueDFeRetornadoSEFAZ = checkBoxValidarDigestValue.Checked; //Configurações para o município de Florianópolis-SC #if _fw46 if (edtCodMun.Text.Equals("4205407")) { if (string.IsNullOrEmpty(txtUsuarioWS.Text) || string.IsNullOrEmpty(txtSenhaWS.Text) || string.IsNullOrEmpty(txtClienteID.Text) || string.IsNullOrEmpty(txtClientSecret.Text)) { throw new Exception("As seguintes informações tem que estarem todas informadas: Usuário, Senha, ClientID e ClientSecret"); } IWebProxy proxy = null; if (ConfiguracaoApp.Proxy) { if (ConfiguracaoApp.Proxy) { proxy = Proxy.DefinirProxy(ConfiguracaoApp.ProxyServidor, ConfiguracaoApp.ProxyUsuario, ConfiguracaoApp.ProxySenha, ConfiguracaoApp.ProxyPorta, ConfiguracaoApp.DetectarConfiguracaoProxyAuto); } } string url = ""; if ((TipoAmbiente)comboBox_Ambiente.SelectedValue == TipoAmbiente.taHomologacao) { url = @"https://nfps-e-hml.pmf.sc.gov.br/api/v1/"; } else { url = @"https://nfps-e.pmf.sc.gov.br/api/v1/"; } Token token = Token.GerarToken(proxy, txtUsuarioWS.Text, txtSenhaWS.Text, txtClienteID.Text, txtClientSecret.Text, url); DateTime tokenNFSeExpire = DateTime.Now.AddSeconds(token.ExpiresIn); empresa.SalvarConfiguracoesNFSeSoftplan(txtUsuarioWS.Text, txtSenhaWS.Text, txtClienteID.Text, txtClientSecret.Text, token.AccessToken, tokenNFSeExpire, edtCNPJ.Text); } #endif return(true); }
public bool Validar(bool exibeerro, bool novaempresa) { string cnpj = (string)Functions.OnlyNumbers(this.edtCNPJ.Text, ".-/"); if (Convert.ToInt32("0" + udTempoConsulta.Text) < 2 || Convert.ToInt32("0" + udTempoConsulta.Text) > 15) { throw new Exception(lbl_udTempoConsulta.Text + " inválido"); } if (this.comboBox_UF.SelectedValue == null) { throw new Exception(labelUF.Text + " deve ser informado"); } ValidadeCNPJ(true); if (string.IsNullOrEmpty(edtNome.Text)) { throw new Exception("Nome da empresa deve ser informado"); } if (servicoCurrent != (TipoAplicativo)this.cbServico.SelectedValue && !novaempresa && exibeerro) { if ((TipoAplicativo)this.cbServico.SelectedValue == TipoAplicativo.Nfse) { throw new Exception("Não pode mudar para esse tipo de serviço (NFSe)"); } var e = Empresas.FindConfEmpresa(cnpj, (TipoAplicativo)this.cbServico.SelectedValue); if (e != null) { throw new Exception("A empresa '" + e.Nome + "' já está monitorando esse tipo de serviço"); } if (MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, "Confirma a alteração do tipo de serviço?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return(false); } } switch ((TipoAplicativo)this.cbServico.SelectedValue) { case TipoAplicativo.NFCe: if (!string.IsNullOrEmpty(this.edtIdentificadorCSC.Text) && string.IsNullOrEmpty(this.edtTokenCSC.Text)) { throw new Exception("É obrigatório informar o IDToken quando informado o CSC."); } else if (string.IsNullOrEmpty(this.edtIdentificadorCSC.Text) && !string.IsNullOrEmpty(this.edtTokenCSC.Text)) { throw new Exception("É obrigatório informar o CSC quando informado o IDToken."); } break; } this.empresa.AmbienteCodigo = (int)comboBox_Ambiente.SelectedValue; this.empresa.CNPJ = cnpj; this.empresa.CompactarNfe = checkBoxCompactaNFe.Checked; this.empresa.DiasLimpeza = Math.Abs(Convert.ToInt32("0" + this.udDiasLimpeza.Text)); this.empresa.DiretorioSalvarComo = cboDiretorioSalvarComo.Text; this.empresa.GravarRetornoTXTNFe = checkBoxRetornoNFETxt.Checked; this.empresa.GravarEventosDeTerceiros = checkBoxGravarEventosDeTerceiros.Checked; this.empresa.GravarEventosNaPastaEnviadosNFe = checkBoxGravarEventosNaPastaEnviadosNFe.Checked; this.empresa.GravarEventosCancelamentoNaPastaEnviadosNFe = checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked; this.empresa.Nome = this.edtNome.Text; this.empresa.IndSinc = this.cbIndSinc.Checked; this.empresa.TempoConsulta = Math.Abs(Convert.ToInt32("0" + this.udTempoConsulta.Text)); this.empresa.tpEmis = (int)comboBox_tpEmis.SelectedValue; this.empresa.UnidadeFederativaCodigo = (int)comboBox_UF.SelectedValue; this.empresa.Servico = (TipoAplicativo)this.cbServico.SelectedValue; this.empresa.SenhaWS = this.txtSenhaWS.Text; this.empresa.UsuarioWS = this.txtUsuarioWS.Text; this.empresa.IdentificadorCSC = this.edtIdentificadorCSC.Text; this.empresa.TokenCSC = this.edtTokenCSC.Text; return(true); }
public bool Salvar() { if (cbProxy.Checked && (nudPorta.Value == 0 || string.IsNullOrEmpty(tbServidor.Text) || string.IsNullOrEmpty(tbUsuario.Text) || string.IsNullOrEmpty(tbSenha.Text))) { MessageBox.Show(NFeStrConstants.proxyError, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (this.tabControl4.TabPages.Count == 1) { MessageBox.Show("É necessário cadastrar e configurar a(s) empresa(s) que será(ão) gerenciada(s) pelo aplicativo.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } //Verificar se as senhas são idênticas if (tbSenhaConfig.Text.Trim() != tbSenhaConfig2.Text.Trim()) { MessageBox.Show("As senhas de acesso a tela de configurações devem ser idênticas.", "Senhas diferentes", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } //Atualizar as propriedades das configurações da empresa foreach (TabPage page in this.tabControl4.TabPages) { if (page.Controls[0] is ucConfiguracao) { ucConfiguracao dados = (ucConfiguracao)page.Controls[0]; dados.AtualizarPropriedadeEmpresa(); if (string.IsNullOrEmpty(dados.oEmpresa.CNPJ)) { this.tabControl4.SelectedTab = page; MessageBox.Show("CNPJ deve ser informado", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (string.IsNullOrEmpty(dados.oEmpresa.Nome)) { this.tabControl4.SelectedTab = page; MessageBox.Show("Nome da empresa deve ser informado", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } if (dados.Tag.ToString() == "new" && Empresas.FindConfEmpresa(dados.oEmpresa.CNPJ, dados.oEmpresa.Servico) != null) { this.tabControl4.SelectedTab = page; MessageBox.Show("Empresa/CNPJ já existe", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } } //Salvar as configurações ConfiguracaoApp oConfig = new ConfiguracaoApp(); try { //inclui a(s) empresa(s) incluida(s) na lista de empresas foreach (TabPage page in this.tabControl4.TabPages) { if (page.Controls[0] is ucConfiguracao) { ucConfiguracao dados = (ucConfiguracao)page.Controls[0]; if (Empresas.FindConfEmpresa(dados.oEmpresa.CNPJ, dados.oEmpresa.Servico) == null) { page.Controls[0].Tag = dados.oEmpresa.CNPJ; Empresas.Configuracoes.Add(dados.oEmpresa); } } } //Atualizar as propriedades das configurações gerais ConfiguracaoApp.Proxy = this.cbProxy.Checked; ConfiguracaoApp.ProxyPorta = (int)this.nudPorta.Value; ConfiguracaoApp.ProxySenha = this.tbSenha.Text; ConfiguracaoApp.ProxyServidor = tbServidor.Text; ConfiguracaoApp.ProxyUsuario = tbUsuario.Text; ConfiguracaoApp.ChecarConexaoInternet = cbChecaConexaoInternet.Checked; ConfiguracaoApp.GravarLogOperacoesRealizadas = chkGravarLogOperacao.Checked; if (string.IsNullOrEmpty(tbSenhaConfig.Text)) { ConfiguracaoApp.SenhaConfig = string.Empty; } else { //a geracao do MD5 ficará no metodo que grava a configuracao ConfiguracaoApp.SenhaConfig = tbSenhaConfig.Text; } oConfig.GravarConfig(true, true); ///<<<<<danasa 1-5-2011 this.Salvos = true; } catch (Exception ex) { MessageBox.Show(ex.Message, "Advertência", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return(this.Salvos); }
private bool DadosMudaramDaEmpresa(bool exibeerro) { #region --DadosMudaramDaEmpresa this.EmpresaValidada = true; if (this.currentEmpresa == null || !this.Modificado) { return(false); } try { this.uc_geral.Validar(); if (!this.uce_divs.Validar(exibeerro, Convert.ToInt16(this.btnNova.Tag) == 1)) { this.EmpresaValidada = false; return(false); } this.uce_pastas.Validar(); this.uce_cert.Validar(); if (this.currentEmpresa.Servico != TipoAplicativo.Nfse) { this.uce_danfe.Validar(); } this.uce_ftp.Validar(); } catch (Exception ex) { if (exibeerro) { throw ex; } } if (Convert.ToInt16(this.btnNova.Tag) == 1) //se inclusao nao precisa verificar se mudou algo, já que nao tem classe existente { return(this.Modificado); } var _Empresa = Empresas.FindConfEmpresa(this.empcnpj, this.servico); if (_Empresa == null) { return(this.Modificado); } PropertyInfo[] allClassToProperties = _Empresa.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var pi in allClassToProperties) { if (pi.CanWrite) { var pii = this.currentEmpresa.GetType().GetProperty(pi.Name, BindingFlags.Instance | BindingFlags.Public); if (pii != null) { object ob1 = pi.GetValue(_Empresa, null); object ob2 = pii.GetValue(this.currentEmpresa, null); if (ob1 == null || ob2 == null) { continue; } if (!ob1.Equals(ob2)) { Console.WriteLine("{0}: old:{1} x new:{2}", pi.Name, ob1.ToString(), ob2.ToString()); return(true); } } } } return(false); #endregion }