예제 #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 textBox_PastaEnvioXML_Validated(object sender, EventArgs e)
        {
            if (!textBox_PastaEnvioXML.Modified)
            {
                return;
            }

            if (MessageBox.Show(this, "Deseja redefinir os outros diretórios para que tenham a mesma estrutura do diretório de envio?",
                                "Alterar diretórios?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue;

                stopChangedEvent = true;
                string[] dirs    = textBox_PastaEnvioXML.Text.Split(new char[] { '\\' });
                string   baseDir = dirs.Join('\\', dirs.Length - 1);

                SetNewDir(textBox_PastaRetornoXML, baseDir, "Retorno");
                SetNewDir(textBox_PastaXmlErro, baseDir, "Erro");
                SetNewDir(textBox_PastaValidar, baseDir, "Validar");
                if (servico != TipoAplicativo.Nfse)
                {
                    SetNewDir(textBox_PastaEnviados, baseDir, "Enviados");
                    SetNewDir(textBox_PastaBackup, baseDir, "Backup");
                    SetNewDir(textBox_PastaLote, baseDir, "EnvioEmLote");
                    SetNewDir(textBox_PastaDownload, baseDir, "DownloadNFe");
                }

                stopChangedEvent = false;
            }

            textBox_PastaEnvioXML.Modified = false;
        }
예제 #3
0
        private void ChangeVersao(TipoAplicativo Servico)
        {
            switch (Servico)
            {
            case TipoAplicativo.Todos:
                this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLStatusServico;
                this.cbVersao.Enabled      = this.cbServico.Enabled = true;
                break;

            case TipoAplicativo.Nfe:
                this.cbVersao.Enabled      = true;
                this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLStatusServico;
                //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                break;

            case TipoAplicativo.NFCe:
                this.cbVersao.Enabled      = true;
                this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLStatusServico;
                //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                break;

            case TipoAplicativo.Cte:
                this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLCTeStatusServico;
                this.cbVersao.Enabled      = false;
                //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                break;

            case TipoAplicativo.MDFe:
                this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLMDFeStatusServico;
                this.cbVersao.Enabled      = false;
                //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                break;
            }
        }
예제 #4
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
        }
예제 #5
0
 private void cbServico_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cbServico.SelectedValue != null)
     {
         TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue;
         this.cbVersao.Enabled = (servico == TipoAplicativo.Nfe || Empresas.Configuracoes[this.Emp].Servico == TipoAplicativo.Todos);
     }
 }
예제 #6
0
        public ucConfiguracao(UpdateText updateText)
        {
            InitializeComponent();

            this.updateText = updateText;
            cnpjCurrent     = "";
            servicoCurrent  = TipoAplicativo.Nulo;
        }
예제 #7
0
 private void cbServico_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cbServico.SelectedValue != null)
     {
         TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue;
         this.ChangeVersao(servico);
     }
 }
예제 #8
0
        public userConfiguracao_diversos()
        {
            InitializeComponent();

            this.loading = true;

            if (!DesignMode)
            {
                this.cbServico.SelectedIndexChanged -= cbServico_SelectedIndexChanged;
                servicoCurrent = TipoAplicativo.Nulo;

                #region Montar Array DropList da UF

                try
                {
                    arrUF         = Functions.CarregaEstados();
                    arrMunicipios = Functions.CarregaMunicipios();
                }
                catch (Exception ex)
                {
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "");
                }

                #endregion

                #region Montar Array DropList do Ambiente
                comboBox_Ambiente.DataSource    = EnumHelper.ToList(typeof(TipoAmbiente), true, true);
                comboBox_Ambiente.DisplayMember = "Value";
                comboBox_Ambiente.ValueMember   = "Key";
                #endregion

                #region Montar array DropList dos tipos de serviços
                this.cbServico.DataSource    = uninfeDummy.DatasouceTipoAplicativo(true);
                this.cbServico.DisplayMember = "Value";
                this.cbServico.ValueMember   = "Key";
                #endregion

                #region Montar Array DropList do Tipo de Emissão da NF-e
                if (Propriedade.TipoAplicativo == TipoAplicativo.Todos)//.Nfe)
                {
                    comboBox_tpEmis.DataSource = EnumHelper.ToList(typeof(TipoEmissao), true, true);
                }
                else
                {
                    ArrayList arrTpEmis = new ArrayList();
                    arrTpEmis.Add(new KeyValuePair <int, string>((int)NFe.Components.TipoEmissao.teNormal, EnumHelper.GetDescription(NFe.Components.TipoEmissao.teNormal)));
                    comboBox_tpEmis.DataSource = arrTpEmis;
                }
                comboBox_tpEmis.DisplayMember = "Value";
                comboBox_tpEmis.ValueMember   = "Key";
                #endregion

                this.cbServico.SelectedIndexChanged += cbServico_SelectedIndexChanged;

                loc_1 = lbl_udDiasLimpeza.Location;
                loc_2 = udDiasLimpeza.Location;
            }
        }
예제 #9
0
        public userConfiguracao_diversos()
        {
            InitializeComponent();

            this.loading = true;

            if (!DesignMode)
            {
                this.cbServico.SelectedIndexChanged -= cbServico_SelectedIndexChanged;
                servicoCurrent = TipoAplicativo.Nulo;

                #region Montar Array DropList da UF

                try
                {
                    arrUF = Functions.CarregaEstados();
                    arrMunicipios = Functions.CarregaMunicipios();
                }
                catch (Exception ex)
                {
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "");
                }

                #endregion

                #region Montar Array DropList do Ambiente
                comboBox_Ambiente.DataSource = EnumHelper.ToList(typeof(TipoAmbiente), true, true);
                comboBox_Ambiente.DisplayMember = "Value";
                comboBox_Ambiente.ValueMember = "Key";
                #endregion

                #region Montar array DropList dos tipos de serviços
                this.cbServico.DataSource = uninfeDummy.DatasouceTipoAplicativo(true);
                this.cbServico.DisplayMember = "Value";
                this.cbServico.ValueMember = "Key";
                #endregion

                #region Montar Array DropList do Tipo de Emissão da NF-e
                if (Propriedade.TipoAplicativo == TipoAplicativo.Todos)//.Nfe)
                {
                    comboBox_tpEmis.DataSource = EnumHelper.ToList(typeof(TipoEmissao), true, true);
                }
                else
                {
                    ArrayList arrTpEmis = new ArrayList();
                    arrTpEmis.Add(new KeyValuePair<int, string>((int)NFe.Components.TipoEmissao.teNormal, EnumHelper.GetDescription(NFe.Components.TipoEmissao.teNormal)));
                    comboBox_tpEmis.DataSource = arrTpEmis;
                }
                comboBox_tpEmis.DisplayMember = "Value";
                comboBox_tpEmis.ValueMember = "Key";
                #endregion

                this.cbServico.SelectedIndexChanged += cbServico_SelectedIndexChanged;

                loc_1 = lbl_udDiasLimpeza.Location;
                loc_2 = udDiasLimpeza.Location;
            }
        }
예제 #10
0
        /// <summary>
        /// Procurar o cnpj na coleção das empresas
        /// </summary>
        /// <param name="cnpj">CNPJ a ser pesquisado</param>
        /// <param param name="servico">Serviço a ser pesquisado</param>
        /// <returns>objeto empresa localizado, null se nada for localizado</returns>
        public static Empresa FindConfEmpresa(string cnpj, TipoAplicativo servico)
        {
            Empresa retorna = null;

            foreach (Empresa empresa in Empresas.Configuracoes)
            {
                if (empresa.CNPJ.Equals(cnpj) && empresa.Servico.Equals(servico))
                {
                    retorna = empresa;
                    break;
                }
            }
            return(retorna);
        }
        public userConfiguracao_diversos()
        {
            InitializeComponent();

            loading = true;

            if (!DesignMode)
            {
                cbServico.SelectedIndexChanged -= cbServico_SelectedIndexChanged;
                servicoCurrent = TipoAplicativo.Nulo;

                #region Montar Array DropList da UF

                try
                {
                    arrUF         = Functions.CarregaEstados();
                    arrMunicipios = Functions.CarregaMunicipios();
                }
                catch (Exception ex)
                {
                    MetroFramework.MetroMessageBox.Show(uninfeDummy.mainForm, ex.Message, "");
                }

                #endregion Montar Array DropList da UF

                #region Montar Array DropList do Ambiente

                comboBox_Ambiente.DataSource    = EnumHelper.ToList(typeof(TipoAmbiente), true, true);
                comboBox_Ambiente.DisplayMember = "Value";
                comboBox_Ambiente.ValueMember   = "Key";
                #endregion Montar Array DropList do Ambiente

                #region Montar array DropList dos tipos de serviços

                cbServico.DataSource    = uninfeDummy.DatasouceTipoAplicativo(false);
                cbServico.DisplayMember = "Value";
                cbServico.ValueMember   = "Key";
                #endregion Montar array DropList dos tipos de serviços

                #region Montar Array DropList do Tipo de Emissão da NF-e

                comboBox_tpEmis.DataSource    = EnumHelper.ToList(typeof(TipoEmissao), true, true);
                comboBox_tpEmis.DisplayMember = "Value";
                comboBox_tpEmis.ValueMember   = "Key";
                #endregion Montar Array DropList do Tipo de Emissão da NF-e

                cbServico.SelectedIndexChanged += cbServico_SelectedIndexChanged;
            }
        }
예제 #12
0
        private string AtribuirVlr_cbServico(TipoAplicativo servico)
        {
            string retorna = "";

            for (int i = 0; i < arrServico.Count; i++)
            {
                if (((ComboElem)(new System.Collections.ArrayList(arrServico))[i]).Codigo == (int)servico)
                {
                    retorna = ((ComboElem)(new System.Collections.ArrayList(arrServico))[i]).Valor;
                    break;
                }
            }

            return(retorna);
        }
예제 #13
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;
        }
예제 #14
0
        private void GerarConsulta(int emp, TipoAplicativo servico, int tpEmis, int cUF, int amb, string versao, List <ConsultaRealizada> consultasRealizadas)
        {
            GerarXML oGerar = new GerarXML(emp);

            string XmlNfeDadosMsg = Empresas.Configuracoes[emp].PastaXmlEnvio + "\\" + oGerar.StatusServico(servico, tpEmis, cUF, amb, versao);

            consultasRealizadas.Add(new ConsultaRealizada
            {
                ArquivoRetorno = XmlNfeDadosMsg,
                Empresa        = Empresas.Configuracoes[emp],
                Emp            = emp,
                Servico        = servico
            });

            Thread.Sleep(1000);
        }
예제 #15
0
        /// <summary>
        /// Procurar o cnpj na coleção das empresas
        /// </summary>
        /// <param name="cnpj">CNPJ a ser pesquisado</param>
        /// <param name="servico">Serviço a ser pesquisado</param>
        /// <returns>Retorna o index do objeto localizado ou null se nada for localizado</returns>
        public static int FindConfEmpresaIndex(string cnpj, TipoAplicativo servico)
        {
            int retorna = -1;

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

                if (empresa.CNPJ.Equals(cnpj) && empresa.Servico.Equals(servico))
                {
                    retorna = i;
                    break;
                }
            }
            return(retorna);
        }
예제 #16
0
        private void ChangeVersao(TipoAplicativo Servico)
        {
            switch (Servico)
            {
            case TipoAplicativo.Todos:
                cbVersao.Enabled = cbServico.Enabled = true;
                cbVersao.Items.Clear();
                cbVersao.Items.AddRange(new object[] { "4.00", "3.00" });
                cbVersao.SelectedItem = "4.00";
                break;

            case TipoAplicativo.Nfe:
                cbVersao.Enabled = true;
                cbVersao.Items.Clear();
                cbVersao.Items.AddRange(new object[] { "4.00" });
                cbVersao.SelectedItem = "4.00";
                break;

            case TipoAplicativo.NFCe:
                cbVersao.Enabled = true;
                cbVersao.Items.Clear();
                cbVersao.Items.AddRange(new object[] { "4.00" });
                cbVersao.SelectedItem = "4.00";
                break;

            case TipoAplicativo.Cte:
                cbVersao.Enabled = true;
                cbVersao.Items.Clear();
                cbVersao.Items.AddRange(new object[] { "3.00" });
                cbVersao.SelectedItem = "3.00";
                break;

            case TipoAplicativo.MDFe:
                cbVersao.Enabled = true;
                cbVersao.Items.Clear();
                cbVersao.Items.AddRange(new object[] { "3.00" });
                cbVersao.SelectedItem = "3.00";
                break;

            case TipoAplicativo.SAT:
                cbVersao.Enabled = false;
                break;
            }
        }
예제 #17
0
        private void cbServico_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (stopChangedEvent)
            {
                return;
            }

            TipoAplicativo Servico = (TipoAplicativo)cbServico.SelectedValue;

            if (Servico == TipoAplicativo.Nfe || Servico == TipoAplicativo.Todos) // Somente NFe habilita este campo
            {
                HabilitaOpcaoCompactar(true);
            }
            else
            {
                HabilitaOpcaoCompactar(false);
                checkBoxCompactaNFe.Checked = false;
            }
        }
예제 #18
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;
        }
예제 #19
0
        private void MudarPastas(string cnpj, TipoAplicativo servico)
        {
            Modificado = true;

            string subpasta = "";

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

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

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

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

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

                if (!string.IsNullOrEmpty(textBox_PastaBackup.Text))
                {
                    textBox_PastaBackup.Text = Path.Combine(Propriedade.PastaExecutavel, cnpj + subpasta + "\\Backup");
                }
            }
        }
예제 #20
0
파일: Enums.cs 프로젝트: Klegy/uninfe
 public AttributeTipoAplicacao(TipoAplicativo aplicacao)
     : base()
 {
     this.aplicacao = aplicacao;
 }
예제 #21
0
        void CopiaDadosDaEmpresaParaControls(Empresa oempresa, bool empty)
        {
            bool _modificado = false;
            bool _nova = string.IsNullOrEmpty(oempresa.PastaXmlEnvio);
            
            stopChangedEvent = true;
            try
            {
                this.servicoCurrent = oempresa.Servico;
                oempresa.CriaPastasAutomaticamente = false;

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

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

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

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

                stopChangedEvent = false;
                Modificado = _modificado;
            }
        }
예제 #22
0
파일: Empresas.cs 프로젝트: akretion/uninfe
        /// <summary>
        /// Procurar o cnpj na coleção das empresas
        /// </summary>
        /// <param name="cnpj">CNPJ a ser pesquisado</param>
        /// <param name="servico">Serviço a ser pesquisado</param>
        /// <returns>Retorna o index do objeto localizado ou null se nada for localizado</returns>
        public static int FindConfEmpresaIndex(string cnpj, TipoAplicativo servico)
        {
            int retorna = -1;

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

                if (empresa.CNPJ.Equals(cnpj) && empresa.Servico.Equals(servico))
                {
                    retorna = i;
                    break;
                }
            }
            return retorna;
        }
예제 #23
0
        private void buttonPesquisa_Click(object sender, EventArgs e)
        {
            this.Refresh();
            txtMensagem.Clear();
            metroGridSituacao.Rows.Clear();

            bool todasEmpresas = cbEmpresa.SelectedValue.Equals("Todos");

            try
            {
                TipoEmissao    tpEmis  = (TipoEmissao)this.cbEmissao.SelectedValue;
                int            amb     = (int)cbAmbiente.SelectedValue;
                string         versao  = this.cbVersao.SelectedItem.ToString();
                TipoAplicativo servico = TipoAplicativo.Nulo;
                int            cUF     = 0;

                if (!todasEmpresas)
                {
                    servico = (TipoAplicativo)cbServico.SelectedValue;
                    cUF     = Functions.UFParaCodigo(this.comboUf.SelectedValue.ToString());

                    switch (servico)
                    {
                    case TipoAplicativo.Cte:
                        if (tpEmis == TipoEmissao.teSVCAN)    // this.cbEmissao.SelectedIndex == 4)
                        {
                            throw new Exception("CT-e não dispõe do tipo de contingência SVCAN.");
                        }
                        break;

                    case TipoAplicativo.Nfe:
                        if (tpEmis == TipoEmissao.teSVCSP)    // this.cbEmissao.SelectedIndex == 3)
                        {
                            throw new Exception("NF-e não dispõe do tipo de contingência SVCSP.");
                        }
                        break;

                    case TipoAplicativo.MDFe:
                        if (tpEmis != TipoEmissao.teNormal)
                        {
                            throw new Exception("MDF-e só dispõe do tipo de emissão Normal.");
                        }
                        break;

                    case TipoAplicativo.NFCe:
                        if (tpEmis != TipoEmissao.teNormal)
                        {
                            throw new Exception("NFC-e só dispõe do tipo de emissão Normal.");
                        }
                        break;
                    }
                }

                Formularios.Wait.Show("Consulta a situação do serviço...");

                List <ConsultaRealizada> consultasRealizadas = new List <ConsultaRealizada>();

                if (todasEmpresas)
                {
                    tpEmis = TipoEmissao.teNormal;

                    for (int i = 0; i < Empresas.Configuracoes.Count; i++)
                    {
                        int emp = Empresas.FindConfEmpresaIndex(Empresas.Configuracoes[i].CNPJ, Empresas.Configuracoes[i].Servico);
                        cUF = Empresas.Configuracoes[emp].UnidadeFederativaCodigo;

                        switch (Empresas.Configuracoes[emp].Servico)
                        {
                        case TipoAplicativo.Todos:
                            GerarConsulta(emp, TipoAplicativo.Nfe, (int)tpEmis, cUF, amb, "4.00", consultasRealizadas);
                            GerarConsulta(emp, TipoAplicativo.NFCe, (int)tpEmis, cUF, amb, "4.00", consultasRealizadas);
                            GerarConsulta(emp, TipoAplicativo.MDFe, (int)tpEmis, cUF, amb, "3.00", consultasRealizadas);
                            GerarConsulta(emp, TipoAplicativo.Cte, (int)tpEmis, cUF, amb, "3.00", consultasRealizadas);
                            break;

                        case TipoAplicativo.Nfe:
                            GerarConsulta(emp, TipoAplicativo.Nfe, (int)tpEmis, cUF, amb, "4.00", consultasRealizadas);
                            break;

                        case TipoAplicativo.Cte:
                            GerarConsulta(emp, TipoAplicativo.Cte, (int)tpEmis, cUF, amb, "3.00", consultasRealizadas);
                            break;

                        case TipoAplicativo.MDFe:
                            GerarConsulta(emp, TipoAplicativo.MDFe, (int)tpEmis, cUF, amb, "3.00", consultasRealizadas);
                            break;

                        case TipoAplicativo.NFCe:
                            GerarConsulta(emp, TipoAplicativo.NFCe, (int)tpEmis, cUF, amb, "4.00", consultasRealizadas);
                            break;
                        }
                    }
                }
                else
                {
                    GerarConsulta(Emp, servico, (int)tpEmis, cUF, amb, versao, consultasRealizadas);
                }

                //Demonstrar o status do serviço
                for (int i = 0; i < consultasRealizadas.Count; i++)
                {
                    string nomeEmpresa = consultasRealizadas[i].Empresa.Nome;
                    string tipoServico = consultasRealizadas[i].Servico.ToString();
                    string uf          = Functions.CodigoParaUF(consultasRealizadas[i].Empresa.UnidadeFederativaCodigo);
                    string result      = VerStatusServico(consultasRealizadas[i].ArquivoRetorno, consultasRealizadas[i].Emp);

                    metroGridSituacao.Rows.Add(new object[] { nomeEmpresa, uf, tipoServico, result });
                }
            }
            catch (Exception ex)
            {
                Formularios.Wait.Close();
                txtMensagem.Text = ex.Message;
            }
        }
예제 #24
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;
            }
        }
예제 #25
0
        public void Populate(Empresa empresa, bool novaempresa)
        {
            this.loading = true;
            try
            {
                uninfeDummy.ClearControls(this, true, false);

                this.empresa = empresa;

                Configurar(empresa, novaempresa);

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

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

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

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

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

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

                checkBoxRetornoNFETxt.Checked                               = this.empresa.GravarRetornoTXTNFe;
                checkBoxGravarEventosDeTerceiros.Checked                    = this.empresa.GravarEventosDeTerceiros;
                checkBoxGravarEventosNaPastaEnviadosNFe.Checked             = this.empresa.GravarEventosNaPastaEnviadosNFe;
                checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked = this.empresa.GravarEventosCancelamentoNaPastaEnviadosNFe;
                checkBoxCompactaNFe.Checked = this.empresa.CompactarNfe;
                checkBoxArqNSU.Checked      = this.empresa.ArqNSU;

                // São Paulo não possui processo síncrono
                if (this.empresa.UnidadeFederativaCodigo == 35)
                {
                    cbIndSinc.Checked     =
                        cbIndSinc.Enabled = false;
                }
                else
                {
                    cbIndSinc.Enabled = true;
                    cbIndSinc.Checked = this.empresa.IndSinc;
                }

                edtIdentificadorCSC.Text = this.empresa.IdentificadorCSC;
                edtTokenCSC.Text         = this.empresa.TokenCSC;

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

                this.txtSenhaWS.Text      = this.empresa.SenhaWS;
                this.txtUsuarioWS.Text    = this.empresa.UsuarioWS;
                this.txtClienteID.Text    = this.empresa.ClientID;
                this.txtClientSecret.Text = this.empresa.ClientSecret;

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

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

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

                if (this.empresa.Servico != TipoAplicativo.Nfse && !novaempresa)
                {
                    this.cbServico.Enabled = true;
                }
            }
            finally
            {
                this.loading = false;
                cbServico_SelectedIndexChanged(null, null);
                comboBox_UF_SelectedIndexChanged(null, null);
            }
        }
예제 #26
0
        private const int _Minutos = 12;  //12 minutos para atender o consumo indevido da SEFAZ

        public void Analisar(int emp)
        {
            oAux = new Auxiliar();

            try
            {
                if (string.IsNullOrEmpty(Empresas.Configuracoes[emp].PastaXmlEnviado) || !Directory.Exists(Empresas.Configuracoes[emp].PastaXmlEnviado))
                {
                    return;
                }

                // le todos os arquivos que estão na pasta em processamento
                string[] files = Directory.GetFiles(Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" +
                                                    PastaEnviados.EmProcessamento.ToString()).Where(w => w.EndsWith(Propriedade.Extensao(Propriedade.TipoEnvio.NFe).EnvioXML, StringComparison.InvariantCultureIgnoreCase) ||
                                                                                                    w.EndsWith(Propriedade.Extensao(Propriedade.TipoEnvio.CTe).EnvioXML, StringComparison.InvariantCultureIgnoreCase) ||
                                                                                                    w.EndsWith(Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML, StringComparison.InvariantCultureIgnoreCase)).ToArray <string>();

                // considera os arquivos em que a data do ultimo acesso é superior a 5 minutos
                DateTime UltimaData = DateTime.Now.AddMinutes(-_Minutos);

                foreach (string file in files)
                {
                    if (!Functions.FileInUse(file))
                    {
                        FileInfo fi = new FileInfo(file);

                        //usar a última data de acesso, e não a data de criação
                        if (fi.LastWriteTime <= UltimaData)
                        {
                            if (oLerXml == null)
                            {
                                oLerXml   = new LerXML();
                                oGerarXml = new GerarXML(emp);
                                fluxo     = new FluxoNfe(emp);
                            }

                            try
                            {
                                XmlDocument doc = new XmlDocument();
                                doc.Load(file);

                                TipoAplicativo tipoArquivo = TipoAplicativo.Nfe;
                                string         extNFe      = Propriedade.Extensao(Propriedade.TipoEnvio.NFe).EnvioXML;
                                string         extProcNFe  = Propriedade.ExtRetorno.ProcNFe;
                                string         arquivoSit  = string.Empty;
                                string         chNFe       = string.Empty;

                                switch (doc.DocumentElement.Name)
                                {
                                case "MDFe":
                                    tipoArquivo = TipoAplicativo.MDFe;
                                    extNFe      = Propriedade.Extensao(Propriedade.TipoEnvio.MDFe).EnvioXML;
                                    extProcNFe  = Propriedade.ExtRetorno.ProcMDFe;

                                    oLerXml.Mdfe(doc);
                                    arquivoSit = oLerXml.oDadosNfe.chavenfe.Substring(4);
                                    chNFe      = oLerXml.oDadosNfe.chavenfe.Substring(4);
                                    break;

                                case "NFe":
                                    tipoArquivo = TipoAplicativo.Nfe;
                                    extNFe      = Propriedade.Extensao(Propriedade.TipoEnvio.NFe).EnvioXML;
                                    extProcNFe  = Propriedade.ExtRetorno.ProcNFe;

                                    oLerXml.Nfe(doc);
                                    arquivoSit = oLerXml.oDadosNfe.chavenfe.Substring(3);
                                    chNFe      = oLerXml.oDadosNfe.chavenfe.Substring(3);
                                    break;

                                case "CTe":
                                    tipoArquivo = TipoAplicativo.Cte;
                                    extNFe      = Propriedade.Extensao(Propriedade.TipoEnvio.CTe).EnvioXML;
                                    extProcNFe  = Propriedade.ExtRetorno.ProcCTe;

                                    oLerXml.Cte(doc);
                                    arquivoSit = oLerXml.oDadosNfe.chavenfe.Substring(3);
                                    chNFe      = oLerXml.oDadosNfe.chavenfe.Substring(3);
                                    break;
                                }

                                //Ler a NFe

                                //Verificar se o -nfe.xml existe na pasta de autorizados
                                bool NFeJaNaAutorizada = oAux.EstaAutorizada(file, oLerXml.oDadosNfe.dEmi, extNFe, extNFe);

                                //Verificar se o -procNfe.xml existe na past de autorizados
                                bool procNFeJaNaAutorizada = oAux.EstaAutorizada(file, oLerXml.oDadosNfe.dEmi, extNFe, extProcNFe);

                                //Se um dos XML´s não estiver na pasta de autorizadas ele força finalizar o processo da NFe.
                                if (!NFeJaNaAutorizada || !procNFeJaNaAutorizada)
                                {
                                    //Verificar se a NFe está no fluxo, se não estiver vamos incluir ela para que funcione
                                    //a rotina de gerar o -procNFe.xml corretamente. Wandrey 21/10/2009
                                    if (!fluxo.NfeExiste(oLerXml.oDadosNfe.chavenfe))
                                    {
                                        fluxo.InserirNfeFluxo(oLerXml.oDadosNfe.chavenfe, oLerXml.oDadosNfe.mod, file);
                                    }

                                    //gera um -ped-sit.xml mesmo sendo autorizada ou denegada, pois assim sendo, o ERP precisaria dele
                                    oGerarXml.Consulta(tipoArquivo, arquivoSit + Propriedade.Extensao(Propriedade.TipoEnvio.PedSit).EnvioXML,
                                                       Convert.ToInt32(oLerXml.oDadosNfe.tpAmb),
                                                       Convert.ToInt32(oLerXml.oDadosNfe.tpEmis),
                                                       chNFe,
                                                       oLerXml.oDadosNfe.versao);
                                }
                                else
                                {
                                    //Move o XML da pasta em processamento para a pasta de XML´s com erro (-nfe.xml)
                                    oAux.MoveArqErro(file);

                                    //Move o XML da pasta em processamento para a pasta de XML´s com erro (-procNFe.xml)
                                    oAux.MoveArqErro(Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.EmProcessamento.ToString() + "\\" + Functions.ExtrairNomeArq(file, extNFe) + extProcNFe);

                                    //Tirar a nota fiscal do fluxo
                                    fluxo.ExcluirNfeFluxo(oLerXml.oDadosNfe.chavenfe);
                                }
                            }
                            catch (Exception ex)
                            {
                                try
                                {
                                    // grava o arquivo com extensao .ERR
                                    oAux.GravarArqErroERP(Path.GetFileNameWithoutExtension(file) + ".err", ex.Message);
                                }
                                catch
                                {
                                    //Se deu erro na hora de gravar o erro para o ERP, infelizmente não posso fazer mais nada. Wandrey 28/04/2011
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                try
                {
                    // grava o arquivo generico
                    oAux.GravarArqErroERP(string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")), ex.Message);
                }
                catch
                {
                    //Se deu erro na hora de gravar o erro para o ERP, infelizmente não posso fazer mais nada. Wandrey 28/04/2011
                }
            }
        }
예제 #27
0
        private void buttonStatusServidor_Click(object sender, EventArgs e)
        {
            this.textResultado.Text = "";
            this.Refresh();

            TipoEmissao    tpEmis  = (TipoEmissao)Enum.Parse(typeof(TipoEmissao), Enum.GetName(typeof(TipoEmissao), ((ComboElem)(new System.Collections.ArrayList(arrTpEmis))[cbEmissao.SelectedIndex]).Codigo));
            TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedIndex;

            if (servico == TipoAplicativo.Cte)
            {
                if (tpEmis == TipoEmissao.teSVCAN)
                {
                    MessageBox.Show("CT-e não dispõe do tipo de contingência SVCAN.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }
            else if (servico == TipoAplicativo.Nfe)
            {
                if (tpEmis == TipoEmissao.teSVCSP)
                {
                    MessageBox.Show("NF-e não dispõe do tipo de contingência SCVSP.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }
            else if (servico == TipoAplicativo.MDFe)
            {
                if (tpEmis != TipoEmissao.teNormal)
                {
                    MessageBox.Show("MDF-e só dispõe do tipo de emissão Normal.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }
            else if (servico == TipoAplicativo.NFCe)
            {
                if (tpEmis != TipoEmissao.teNormal)
                {
                    MessageBox.Show("NFC-e só dispõe do tipo de emissão Normal.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }

            this.toolStripStatusLabel1.Text = _wait;
            this.Refresh();

            this.Cursor = Cursors.WaitCursor;
            try
            {
                GerarXML oGerar = new GerarXML(Emp);

                int cUF = ((ComboElem)(new System.Collections.ArrayList(arrUF))[comboUf.SelectedIndex]).Codigo;
                int amb = ((ComboElem)(new System.Collections.ArrayList(arrAmb))[cbAmbiente.SelectedIndex]).Codigo;

                string XmlNfeDadosMsg = Empresas.Configuracoes[Emp].PastaXmlEnvio + "\\" + oGerar.StatusServico(servico, (int)tpEmis, cUF, amb, this.cbVersao.SelectedItem.ToString());

                //Demonstrar o status do serviço
                this.textResultado.Text = VerStatusServico(XmlNfeDadosMsg);
            }
            catch (Exception ex)
            {
                this.textResultado.Text = ex.Message;
            }
            finally
            {
                this.Cursor = Cursors.Default;
                this.toolStripStatusLabel1.Text = "";
            }
        }
예제 #28
0
        private void CopiaDadosDaEmpresaParaControls(Empresa oempresa, bool empty)
        {
            bool _modificado = false;
            bool _nova       = string.IsNullOrEmpty(oempresa.PastaXmlEnvio);

            stopChangedEvent = true;
            try
            {
                servicoCurrent = oempresa.Servico;
                oempresa.CriaPastasAutomaticamente = false;

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

                    ///
                    /// tenta definir as pastas na mesma arvore do CNPJ
                    ///
                    foreach (Empresa rr in (from x in Empresas.Configuracoes
                                            where x.CNPJ.Equals(oempresa.CNPJ)
                                            select x))
                    {
                        string temp = CopiaPastaDeEmpresa(rr.CNPJ, rr.PastaXmlEnvio, oempresa);
                        if (!Directory.Exists(temp))
                        {
                            CopiaPastaDeEmpresa(rr, oempresa);
                            break;
                        }
                    }
                    if (string.IsNullOrEmpty(oempresa.PastaXmlEnvio))
                    {
                        ///
                        /// acha uma configuracao valida
                        ///
                        foreach (Empresa rr in (from x in Empresas.Configuracoes
                                                where !x.CNPJ.Equals(oempresa.CNPJ)
                                                select x))
                        {
                            string temp = CopiaPastaDeEmpresa(rr.CNPJ, rr.PastaXmlEnvio, oempresa);

                            if (!Directory.Exists(temp))
                            {
                                CopiaPastaDeEmpresa(rr, oempresa);
                                break;
                            }
                        }
                    }
                    if (string.IsNullOrEmpty(oempresa.PastaXmlEnvio))
                    {
                        ///
                        /// se mesmo assim não encontrou nenhuma configuracao valida, assume a pasta do UniNFe
                        ///
                        string subpasta = oempresa.CNPJ;
                        switch (oempresa.Servico)
                        {
                        case TipoAplicativo.Todos:
                        case TipoAplicativo.Nfe:
                            break;

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

                ConfigurarAbas(oempresa, _nova);
            }
            finally
            {
                tc_empresa.Enabled = !empty;

                stopChangedEvent = false;
                Modificado       = _modificado;
            }
        }
예제 #29
0
        public void Populate(NFe.Settings.Empresa empresa, bool novaempresa)
        {
            this.loading = true;
            try
            {
                uninfeDummy.ClearControls(this, true, false);

                this.empresa = empresa;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                if (this.empresa.Servico != TipoAplicativo.Nfse && !novaempresa)
                {
                    this.cbServico.Enabled = true;
                }
            }
            finally
            {
                this.loading = false;
                cbServico_SelectedIndexChanged(null, null);
                comboBox_UF_SelectedIndexChanged(null, null);
            }
        }
예제 #30
0
        public void Populate(NFe.Settings.Empresa empresa, bool novaempresa)
        {
            this.loading = true;
            try
            {
                uninfeDummy.ClearControls(this, true, false);

                this.empresa = empresa;

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

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

                /*

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

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

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

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

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

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

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

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

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

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

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

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

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

                if (this.empresa.Servico != TipoAplicativo.Nfse && !novaempresa)
                    this.cbServico.Enabled = true;
            }
            finally
            {
                this.loading = false;
                cbServico_SelectedIndexChanged(null, null);
                comboBox_UF_SelectedIndexChanged(null, null);
            }
        }
예제 #31
0
        private void buttonPesquisa_Click(object sender, EventArgs e)
        {
            this.textResultado.Clear();
            this.Refresh();

            try
            {
                TipoAplicativo servico = (TipoAplicativo)cbServico.SelectedValue;
                TipoEmissao    tpEmis  = (TipoEmissao)this.cbEmissao.SelectedValue;

                switch (servico)
                {
                case TipoAplicativo.Cte:
                    if (tpEmis == TipoEmissao.teSVCAN)    // this.cbEmissao.SelectedIndex == 4)
                    {
                        throw new Exception("CT-e não dispõe do tipo de contingência SVCAN.");
                    }
                    break;

                case TipoAplicativo.Nfe:
                    if (tpEmis == TipoEmissao.teSVCSP)    // this.cbEmissao.SelectedIndex == 3)
                    {
                        throw new Exception("NF-e não dispõe do tipo de contingência SCVSP.");
                    }
                    break;

                case TipoAplicativo.MDFe:
                    if (tpEmis != TipoEmissao.teNormal)
                    {
                        throw new Exception("MDF-e só dispõe do tipo de emissão Normal.");
                    }
                    break;

                case TipoAplicativo.NFCe:
                    if (tpEmis != TipoEmissao.teNormal)
                    {
                        throw new Exception("NFC-e só dispõe do tipo de emissão Normal.");
                    }
                    break;
                }

                this.textResultado.Text = "Consultando o servidor. Aguarde....";
                this.textResultado.Update();

                GerarXML oGerar = new GerarXML(Emp);

                int    cUF    = NFe.Components.Functions.UFParaCodigo(this.comboUf.SelectedValue.ToString());
                int    amb    = (int)cbAmbiente.SelectedValue;
                string versao = this.cbVersao.SelectedItem.ToString();

                NFe.UI.Formularios.Wait.Show("Consulta a situação do serviço...");

                string XmlNfeDadosMsg = Empresas.Configuracoes[Emp].PastaXmlEnvio + "\\" +
                                        oGerar.StatusServico(servico, (int)tpEmis, cUF, amb, versao);

                //Demonstrar o status do serviço
                this.textResultado.Text = VerStatusServico(XmlNfeDadosMsg);
            }
            catch (Exception ex)
            {
                NFe.UI.Formularios.Wait.Close();
                this.textResultado.Text = ex.Message;
            }
        }
예제 #32
0
        private void cbEmpresas_SelectedIndexChanged(object sender, EventArgs e)
        {
            #region

            this.currentEmpresa = null;

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

                CopiaDadosDaEmpresaParaControls(this.currentEmpresa, false);

                this.btnNova.Tag = 0;
            }
            #endregion
        }
예제 #33
0
파일: Empresas.cs 프로젝트: akretion/uninfe
 /// <summary>
 /// Procurar o cnpj na coleção das empresas
 /// </summary>
 /// <param name="cnpj">CNPJ a ser pesquisado</param>
 /// <param param name="servico">Serviço a ser pesquisado</param>
 /// <returns>objeto empresa localizado, null se nada for localizado</returns>
 public static Empresa FindConfEmpresa(string cnpj, TipoAplicativo servico)
 {
     Empresa retorna = null;
     foreach (Empresa empresa in Empresas.Configuracoes)
     {
         if (empresa.CNPJ.Equals(cnpj) && empresa.Servico.Equals(servico))
         {
             retorna = empresa;
             break;
         }
     }
     return retorna;
 }
        public void Populate(Empresa empresa, bool novaempresa)
        {
            loading = true;
            try
            {
                uninfeDummy.ClearControls(this, true, false);

                this.empresa = empresa;

                Configurar(empresa, novaempresa);

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

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

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

                if (!string.IsNullOrEmpty(empresa.Documento))
                {
                    if (empresa.Documento.Equals("CPF"))
                    {
                        edtCNPJ.Text = ((CPF)edtCNPJ.Text).ToString();
                    }
                    else if (empresa.Documento.Equals("CEI"))
                    {
                        edtCNPJ.Text = ((CEI)edtCNPJ.Text).ToString();
                    }
                    else if (empresa.Documento.Equals("CAEPF"))
                    {
                        edtCNPJ.Text = Convert.ToInt64(edtCNPJ.Text).ToString(@"000\.000\.000\/000\-00");
                    }
                    else
                    {
                        edtCNPJ.Text = ((CNPJ)edtCNPJ.Text).ToString();
                    }
                }
                else
                {
                    if (empresa?.CNPJ?.Length == 11)
                    {
                        edtCNPJ.Text = ((CPF)edtCNPJ.Text).ToString();
                    }
                    else if (empresa?.CNPJ?.Length == 12)
                    {
                        edtCNPJ.Text = ((CEI)edtCNPJ.Text).ToString();
                    }
                    else
                    {
                        edtCNPJ.Text = ((CNPJ)edtCNPJ.Text).ToString();
                    }
                }

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

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

                checkBoxRetornoNFETxt.Checked                               = this.empresa.GravarRetornoTXTNFe;
                checkBoxGravarEventosDeTerceiros.Checked                    = this.empresa.GravarEventosDeTerceiros;
                checkBoxGravarEventosNaPastaEnviadosNFe.Checked             = this.empresa.GravarEventosNaPastaEnviadosNFe;
                checkBoxGravarEventosCancelamentoNaPastaEnviadosNFe.Checked = this.empresa.GravarEventosCancelamentoNaPastaEnviadosNFe;
                checkBoxArqNSU.Checked = this.empresa.ArqNSU;

                //// São Paulo não possui processo síncrono
                //if (this.empresa.UnidadeFederativaCodigo == 35)
                //{
                //    cbIndSinc.Checked =
                //    cbIndSinc.Enabled = false;
                //}
                //else
                //{
                cbIndSinc.Enabled = true;
                cbIndSinc.Checked = this.empresa.IndSinc;
                //}

                edtIdentificadorCSC.Text = this.empresa.IdentificadorCSC;
                edtTokenCSC.Text         = this.empresa.TokenCSC;

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

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

#if _fw46
                if (empresa.UnidadeFederativaCodigo.Equals(4205407))
                {
                    Empresa result = empresa.RecuperarConfiguracaoNFSeSoftplan(empresa.CNPJ);

                    txtClienteID.Text       = result.ClientID;
                    txtClientSecret.Text    = result.ClientSecret;
                    empresa.ClientID        = result.ClientID;
                    empresa.ClientSecret    = result.ClientSecret;
                    empresa.TokenNFse       = result.TokenNFse;
                    empresa.TokenNFSeExpire = result.TokenNFSeExpire;
                }
#endif

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

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

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

                if (this.empresa.Servico != TipoAplicativo.Nfse && !novaempresa)
                {
                    cbServico.Enabled = true;
                }

                if (this.empresa.Servico.Equals(TipoAplicativo.Nfe) ||
                    this.empresa.Servico.Equals(TipoAplicativo.NFCe) ||
                    this.empresa.Servico.Equals(TipoAplicativo.MDFe) ||
                    this.empresa.Servico.Equals(TipoAplicativo.Cte) ||
                    this.empresa.Servico.Equals(TipoAplicativo.Todos))
                {
                    checkBoxValidarDigestValue.Checked = this.empresa.CompararDigestValueDFeRetornadoSEFAZ;
                }
            }
            finally
            {
                loading = false;
                cbServico_SelectedIndexChanged(null, null);
                comboBox_UF_SelectedIndexChanged(null, null);
            }
        }
예제 #35
0
        private void ChangeVersao(TipoAplicativo Servico)
        {
            switch (Servico)
            {
                case TipoAplicativo.Todos:
                    this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLStatusServico;
                    this.cbVersao.Enabled = this.cbServico.Enabled = true;
                    break;

                case TipoAplicativo.Nfe:
                    this.cbVersao.Enabled = true;
                    this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLStatusServico;
                    //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                    break;

                case TipoAplicativo.NFCe:
                    this.cbVersao.Enabled = true;
                    this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLStatusServico;
                    //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                    break;

                case TipoAplicativo.Cte:
                    this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLCTeStatusServico;
                    this.cbVersao.Enabled = false;
                    //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                    break;

                case TipoAplicativo.MDFe:
                    this.cbVersao.SelectedItem = NFe.ConvertTxt.versoes.VersaoXMLMDFeStatusServico;
                    this.cbVersao.Enabled = false;
                    //this.cbServico.Enabled = (Empresas.Configuracoes[Emp].Servico == TipoAplicativo.Todos);
                    break;
            }
        }