Ejemplo n.º 1
0
        public static MDFEletronico Assina(this MDFEletronico mdfe)
        {
            if (mdfe == null)
            {
                throw new ArgumentException("Erro de assinatura, MDFe esta null");
            }

            var modeloDocumentoFiscal = (int)mdfe.InfMDFe.Ide.Mod;
            var tipoEmissao           = (int)mdfe.InfMDFe.Ide.TpEmis;
            var codigoNumerico        = mdfe.InfMDFe.Ide.CMDF;
            var codigoIbgeUf          = (int)mdfe.InfMDFe.Ide.CUF;
            var dataEHoraEmissao      = mdfe.InfMDFe.Ide.DhEmi;
            var documentoUnico        = long.Parse(mdfe.InfMDFe.Emit.CNPJ);
            var numeroDocumento       = mdfe.InfMDFe.Ide.NMDF;
            int serie = mdfe.InfMDFe.Ide.Serie;

            var gerarChave = new GerarChaveFiscal(modeloDocumentoFiscal, tipoEmissao, codigoNumerico,
                                                  codigoIbgeUf, dataEHoraEmissao, documentoUnico, numeroDocumento, serie);

            mdfe.InfMDFe.Id      = "MDFe" + gerarChave.Chave;
            mdfe.InfMDFe.Versao  = VersaoServico.Versao100;
            mdfe.InfMDFe.Ide.CDV = gerarChave.DigitoVerificador;

            var assinatura = AssinaturaDigital.Assina(mdfe, mdfe.InfMDFe.Id, MDFeConfiguracao.X509Certificate2);

            mdfe.Signature = assinatura;

            return(mdfe);
        }
Ejemplo n.º 2
0
        public void EventoEncerramento1_0()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);

            MDFeEletronico mdfe;
            var            caminhoXml = BuscarArquivoXmlMDFe();

            if (caminhoXml.Contains("completo"))
            {
                var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoXml);

                mdfe = enviMDFe.MDFe;
            }
            else
            {
                mdfe = MDFeEletronico.LoadXmlArquivo(caminhoXml);
            }

            var evento = new ServicoMDFeEvento();

            var protocolo = InputBoxTuche("Digite um protocolo");

            if (string.IsNullOrEmpty(protocolo))
            {
                MessageBoxTuche("O protocolo não pode ser vazio ou nulo");
                return;
            }

            var retorno = evento.MDFeEventoEncerramentoMDFeEventoEncerramento(mdfe, 1, protocolo);

            OnSucessoSync(new RetornoEEnvio(retorno));
        }
Ejemplo n.º 3
0
        public static void SalvarXmlEmDisco(this MDFEletronico mdfe)
        {
            if (MDFeConfiguracao.NaoSalvarXml())
            {
                return;
            }

            var arquivoSalvar = MDFeConfiguracao.CaminhoSalvarXml + @"\" + mdfe.Chave() + "-mdfe.xml";

            FuncoesXml.ClasseParaArquivoXml(mdfe, arquivoSalvar);
        }
Ejemplo n.º 4
0
        public static void SalvarXmlEmDisco(this MDFEletronico mdfe, string nomeArquivo = null)
        {
            if (MDFeConfiguracao.NaoSalvarXml())
            {
                return;
            }

            if (string.IsNullOrEmpty(nomeArquivo))
            {
                nomeArquivo = MDFeConfiguracao.CaminhoSalvarXml + @"\" + mdfe.Chave() + "-mdfe.xml";
            }

            FuncoesXml.ClasseParaArquivoXml(mdfe, nomeArquivo);
        }
Ejemplo n.º 5
0
        public void EventoIncluirCondutor1_0()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);


            var evento = new ServicoMDFeEvento();

            MDFeEletronico mdfe;
            var            caminhoXml = BuscarArquivoXmlMDFe();

            if (caminhoXml.Contains("completo"))
            {
                var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoXml);

                mdfe = enviMDFe.MDFe;
            }
            else
            {
                mdfe = MDFeEletronico.LoadXmlArquivo(caminhoXml);
            }

            var nomeCondutor = InputBoxTuche("Nome condutor");
            var cpfCondutor  = InputBoxTuche("Cpf condutor");

            if (string.IsNullOrEmpty(nomeCondutor))
            {
                MessageBoxTuche("Nome do condutor não pode ser vazio ou nulo");
                return;
            }

            if (string.IsNullOrEmpty(cpfCondutor))
            {
                MessageBoxTuche("CPF do condutor não pode ser vazio ou nulo");
                return;
            }

            var retorno = evento.MDFeEventoIncluirCondutor(mdfe, 1, nomeCondutor, cpfCondutor);

            OnSucessoSync(new RetornoEEnvio(retorno));
        }
Ejemplo n.º 6
0
        private string BuscarChaveMDFe()
        {
            var chave             = string.Empty;
            var caminhoArquivoXml = BuscarArquivoXmlMDFe();

            if (caminhoArquivoXml != null)
            {
                if (caminhoArquivoXml.Contains("completo"))
                {
                    var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoArquivoXml);

                    chave = enviMDFe.MDFe.Chave();
                }
                else
                {
                    var mdfe = MDFeEletronico.LoadXmlArquivo(caminhoArquivoXml);

                    chave = mdfe.Chave();
                }
            }
            return(chave);
        }
Ejemplo n.º 7
0
        public static MDFEletronico Valida(this MDFEletronico mdfe)
        {
            if (mdfe == null)
            {
                throw new ArgumentException("Erro de assinatura, MDFe esta null");
            }

            var xmlMdfe = FuncoesXml.ClasseParaXmlString(mdfe);

            Validador.Valida(xmlMdfe, "MDFe_v1.00.xsd");

            var tipoModal = mdfe.InfMDFe.InfModal.Modal.GetType();
            var xmlModal  = FuncoesXml.ClasseParaXmlString(mdfe.InfMDFe.InfModal);


            if (tipoModal == typeof(MDFeRodo))
            {
                Validador.Valida(xmlModal, "MDFeModalRodoviario_v1.00.xsd");
            }

            if (tipoModal == typeof(MDFeAereo))
            {
                Validador.Valida(xmlModal, "MDFeModalAereo_v1.00.xsd");
            }

            if (tipoModal == typeof(MDFeAquav))
            {
                Validador.Valida(xmlModal, "MDFeModalAquaviario_v1.00.xsd");
            }

            if (tipoModal == typeof(MDFeFerrov))
            {
                Validador.Valida(xmlModal, "MDFeModalFerroviario_v1.00.xsd");
            }

            return(mdfe);
        }
Ejemplo n.º 8
0
        public void GerarESalvar1_0()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);
            var mdfe = new ManifestoDocumentoFiscalEletronico.Classes.Informacoes.MDFe();

            #region (ide)
            mdfe.InfMDFe.Ide.CUF     = config.ConfigWebService.UfEmitente;
            mdfe.InfMDFe.Ide.TpAmb   = config.ConfigWebService.Ambiente;
            mdfe.InfMDFe.Ide.TpEmit  = MDFeTipoEmitente.PrestadorServicoDeTransporte;
            mdfe.InfMDFe.Ide.Mod     = MDFeModelo.MDFe;
            mdfe.InfMDFe.Ide.Serie   = 750;
            mdfe.InfMDFe.Ide.NMDF    = ++config.ConfigWebService.Numeracao;
            mdfe.InfMDFe.Ide.CMDF    = GetRandom();
            mdfe.InfMDFe.Ide.Modal   = MDFeModal.Rodoviario;
            mdfe.InfMDFe.Ide.DhEmi   = DateTime.Now;
            mdfe.InfMDFe.Ide.TpEmis  = MDFeTipoEmissao.Normal;
            mdfe.InfMDFe.Ide.ProcEmi = MDFeIdentificacaoProcessoEmissao.EmissaoComAplicativoContribuinte;
            mdfe.InfMDFe.Ide.VerProc = "versao28383";
            mdfe.InfMDFe.Ide.UFIni   = EstadoUF.GO;
            mdfe.InfMDFe.Ide.UFFim   = EstadoUF.MT;


            mdfe.InfMDFe.Ide.InfMunCarrega.Add(new MDFeInfMunCarrega
            {
                CMunCarrega = "5211701",
                XMunCarrega = "JANDAIA"
            });

            mdfe.InfMDFe.Ide.InfMunCarrega.Add(new MDFeInfMunCarrega
            {
                CMunCarrega = "5209952",
                XMunCarrega = "INDIARA"
            });

            mdfe.InfMDFe.Ide.InfMunCarrega.Add(new MDFeInfMunCarrega
            {
                CMunCarrega = "5200134",
                XMunCarrega = "ACREUNA"
            });

            #endregion (ide)

            #region dados emitente (emit)
            mdfe.InfMDFe.Emit.CNPJ  = config.Empresa.Cnpj;
            mdfe.InfMDFe.Emit.IE    = config.Empresa.InscricaoEstadual;
            mdfe.InfMDFe.Emit.XNome = config.Empresa.Nome;
            mdfe.InfMDFe.Emit.XFant = config.Empresa.NomeFantasia;

            mdfe.InfMDFe.Emit.EnderEmit.XLgr    = config.Empresa.Logradouro;
            mdfe.InfMDFe.Emit.EnderEmit.Nro     = config.Empresa.Numero;
            mdfe.InfMDFe.Emit.EnderEmit.XCpl    = config.Empresa.Complemento;
            mdfe.InfMDFe.Emit.EnderEmit.XBairro = config.Empresa.Bairro;
            mdfe.InfMDFe.Emit.EnderEmit.CMun    = config.Empresa.CodigoIbgeMunicipio;
            mdfe.InfMDFe.Emit.EnderEmit.XMun    = config.Empresa.NomeMunicipio;
            mdfe.InfMDFe.Emit.EnderEmit.CEP     = long.Parse(config.Empresa.Cep);
            mdfe.InfMDFe.Emit.EnderEmit.UF      = config.Empresa.SiglaUf;
            mdfe.InfMDFe.Emit.EnderEmit.Fone    = config.Empresa.Telefone;
            mdfe.InfMDFe.Emit.EnderEmit.Email   = config.Empresa.Email;
            #endregion dados emitente (emit)

            #region modal
            mdfe.InfMDFe.InfModal.Modal = new MDFeRodo
            {
                RNTRC      = config.Empresa.RNTRC,
                VeicTracao = new MDFeVeicTracao
                {
                    Placa    = "KKK9888",
                    RENAVAM  = "888888888",
                    UF       = EstadoUF.GO,
                    Tara     = 222,
                    CapM3    = 222,
                    CapKG    = 22,
                    Condutor = new List <MDFeCondutor>
                    {
                        new MDFeCondutor
                        {
                            CPF   = "11392381754",
                            XNome = "Ricardão"
                        }
                    },
                    TpRod = MDFeTpRod.Outros,
                    TpCar = MDFeTpCar.NaoAplicavel
                }
            };
            #endregion modal

            #region infMunDescarga
            mdfe.InfMDFe.InfDoc.InfMunDescarga = new List <MDFeInfMunDescarga>
            {
                new MDFeInfMunDescarga
                {
                    XMunDescarga = "CUIABA",
                    CMunDescarga = "5103403",
                    InfCTe       = new List <MDFeInfCTe>
                    {
                        new MDFeInfCTe
                        {
                            ChCTe = "52161021351378000100577500000000191194518006"
                        }
                    }
                }
            };
            #endregion infMunDescarga

            #region Totais (tot)
            mdfe.InfMDFe.Tot.QCTe   = 1;
            mdfe.InfMDFe.Tot.vCarga = 500.00m;
            mdfe.InfMDFe.Tot.CUnid  = MDFeCUnid.KG;
            mdfe.InfMDFe.Tot.QCarga = 100.0000m;
            #endregion Totais (tot)

            #region informações adicionais (infAdic)
            mdfe.InfMDFe.InfAdic = new MDFeInfAdic
            {
                InfCpl = "aaaaaaaaaaaaaaaa"
            };
            #endregion

            mdfe = mdfe.Assina();
            mdfe = mdfe.Valida();

            mdfe.SalvarXmlEmDisco();
        }
Ejemplo n.º 9
0
        public static long CodigoIbgeMunicipioEmitente(this MDFEletronico mdfe)
        {
            var codigo = mdfe.InfMDFe.Emit.EnderEmit.CMun;

            return(codigo);
        }
Ejemplo n.º 10
0
        public static EstadoUF UFEmitente(this MDFEletronico mdfe)
        {
            var estadoUf = mdfe.InfMDFe.Emit.EnderEmit.UF;

            return(estadoUf);
        }
Ejemplo n.º 11
0
        public static string CNPJEmitente(this MDFEletronico mdfe)
        {
            var cnpj = mdfe.InfMDFe.Emit.CNPJ;

            return(cnpj);
        }
Ejemplo n.º 12
0
        public static string Chave(this MDFEletronico mdfe)
        {
            var chave = mdfe.InfMDFe.Id.Substring(4, 44);

            return(chave);
        }
Ejemplo n.º 13
0
 public static string XmlString(this MDFEletronico mdfe)
 {
     return(FuncoesXml.ClasseParaXmlString(mdfe));
 }