예제 #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;
            }
        }
예제 #2
0
        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
        }
예제 #3
0
        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;
        }
예제 #4
0
        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;
        }
예제 #5
0
        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;
        }
예제 #6
0
        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;
        }
예제 #7
0
        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, "");
                }
            }
        }
예제 #8
0
        private void btnNova_Click(object sender, EventArgs e)
        {
            if (btnNova.Text.Equals("Nova"))
            {
                bool ok = false;
                using (Formularios.FormNova f = new Formularios.FormNova(FindForm()))
                {
                    ok = f.ShowDialog() == DialogResult.OK;

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

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

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

                    if (!EmpresaValidada)
                    {
                        return;
                    }

                    if (grava)
                    {
                        currentEmpresa.RemoveEndSlash();

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

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

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

                        ValidarPastaBackup();

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

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

                    if (Convert.ToInt16(btnNova.Tag) == 1)//inclusao
                    {
                        ///
                        /// exclui as pastas criadas na inclusao
                        ///
                        try
                        {
                            currentEmpresa.ExcluiPastas();
                        }
                        catch { }
                    }
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "");
                }
            }
        }
예제 #9
0
        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
        }
예제 #10
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;
            }
        }
        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);
        }
예제 #12
0
        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);
        }
예제 #13
0
        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);
        }
예제 #14
0
        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
        }