示例#1
0
        public static MDFEletronico Assina(this MDFEletronico mdfe, EventHandler <string> eventHandlerChaveMdfe = null, object quemInvocouEventoChaveMDFe = null)
        {
            if (mdfe == null)
            {
                throw new ArgumentException("Erro de assinatura, MDFe esta null");
            }

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

            var dadosChave = ChaveFiscal.ObterChave(estado, dataEHoraEmissao, cnpj, modeloDocumentoFiscal, serie, numeroDocumento, tipoEmissao, codigoNumerico);

            mdfe.InfMDFe.Id = "MDFe" + dadosChave.Chave;

            if (eventHandlerChaveMdfe != null)
            {
                eventHandlerChaveMdfe.Invoke(quemInvocouEventoChaveMDFe, dadosChave.Chave);
            }

            mdfe.InfMDFe.Versao  = MDFeConfiguracao.VersaoWebService.VersaoLayout;
            mdfe.InfMDFe.Ide.CDV = dadosChave.DigitoVerificador;

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

            mdfe.Signature = assinatura;

            return(mdfe);
        }
示例#2
0
        public static infMDFeSupl QrCode(this MDFEletronico mdfe, X509Certificate2 certificadoDigital,
                                         Encoding encoding = null)
        {
            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            var qrCode = new StringBuilder(@"https://dfe-portal.svrs.rs.gov.br/mdfe/qrCode");

            qrCode.Append("?");
            qrCode.Append("chMDFe=").Append(mdfe.Chave());
            qrCode.Append("&");
            qrCode.Append("tpAmb=").Append(mdfe.AmbienteSefazInt());

            switch (mdfe.InfMDFe.Ide.TpEmis)
            {
            case MDFeTipoEmissao.Contingencia:
                var assinatura = Convert.ToBase64String(CreateSignaturePkcs1(certificadoDigital, encoding.GetBytes(mdfe.Chave())));
                qrCode.Append("&sign=");
                qrCode.Append(assinatura);
                break;
            }

            return(new infMDFeSupl
            {
                qrCodMDFe = qrCode.ToString()
            });
        }
示例#3
0
        public MDFeRetEventoMDFe MDFeEventoCancelar(MDFeEletronica mdfe, byte sequenciaEvento, string protocolo,
                                                    string justificativa)
        {
            var eventoCancelamento = new EventoCancelar();

            return(eventoCancelamento.MDFeEventoCancelar(mdfe, sequenciaEvento, protocolo, justificativa));
        }
示例#4
0
        public void EventoEncerramento()
        {
            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));
        }
示例#5
0
        private string BuscarChaveMDFe()
        {
            var chave             = string.Empty;
            var caminhoArquivoXml = BuscarArquivoXmlMDFe();

            if (caminhoArquivoXml != null)
            {
                try
                {
                    var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoArquivoXml);

                    chave = enviMDFe.MDFe.Chave();
                }
                catch
                {
                    try
                    {
                        chave = MDFeEletronico.LoadXmlArquivo(caminhoArquivoXml).Chave();
                    }
                    catch
                    {
                        var proc = FuncoesXml.ArquivoXmlParaClasse <MDFeProcMDFe>(caminhoArquivoXml);
                        chave = proc.MDFe.Chave();
                    }
                }
            }
            return(chave);
        }
示例#6
0
        public MDFeRetEventoMDFe MDFeEventoPagamentoOperacaoTransporte(MDFeEletronica mdfe, byte sequenciaEvneto,
                                                                       string protocolo, infViagens infViagens, List <infPag> infPagamentos)
        {
            var eventoPagamentoOperacao = new EventoPagamentoOperacao();

            return(eventoPagamentoOperacao.MDFeEventoPagamentoOperacao(mdfe, sequenciaEvneto, protocolo,
                                                                       infViagens, infPagamentos));
        }
示例#7
0
        public MDFeRetEventoMDFe MDFeEventoIncluirDFe(
            MDFeEletronica mdfe, byte sequenciaEvento, string protocolo,
            string codigoMunicipioCarregamento, string nomeMunicipioCarregamento, List <MDFeInfDocInc> informacoesDocumentos)
        {
            var eventoIncluirDFe = new EventoInclusaoDFe();

            return(eventoIncluirDFe.MDFeEventoIncluirDFe(mdfe, sequenciaEvento, protocolo, codigoMunicipioCarregamento, nomeMunicipioCarregamento, informacoesDocumentos));
        }
示例#8
0
        public MDFeRetEventoMDFe MDFeEventoIncluirCondutor(
            MDFeEletronica mdfe, byte sequenciaEvento, string nome,
            string cpf)
        {
            var eventoIncluirCondutor = new EventoInclusaoCondutor();

            return(eventoIncluirCondutor.MDFeEventoIncluirCondutor(mdfe, sequenciaEvento, nome, cpf));
        }
示例#9
0
        public static MDFeEnviMDFe CriaEnviMDFe(long lote, MDFeEletronico mdfe)
        {
            var enviMdfe = new MDFeEnviMDFe
            {
                MDFe   = mdfe,
                IdLote = lote.ToString(),
                Versao = MDFeConfiguracao.VersaoWebService.VersaoLayout
            };

            return(enviMdfe);
        }
示例#10
0
        public static string CNPJouCPFEmitente(this MDFEletronico mdfe)
        {
            var cnpj = CNPJEmitente(mdfe);

            if (cnpj != null)
            {
                return(cnpj);
            }

            return(CPFEmitente(mdfe).PadLeft(14, '0'));
        }
示例#11
0
 public static MDFeEventoContainer CriaEvPagtoOperMDFe(string protocolo, MDFeEletronico mdfe, int qtdViagens, int nroViagem)
 {
     return(new MDFeEvPagtoOperMDFe()
     {
         NProt = protocolo,
         InfViagens = new MDFeInfViagensMDFe()
         {
             QtdViagens = qtdViagens,
             NroViagem = nroViagem
         },
         InfPag = ((MDFeRodo)mdfe.InfMDFe.InfModal.Modal).infANTT.InfPag
     });
 }
示例#12
0
        public static MDFeEvEncMDFe CriaEvEncMDFe(MDFeEletronico mdfe, string protocolo)
        {
            var encerramento = new MDFeEvEncMDFe
            {
                CUF        = mdfe.UFEmitente(),
                DtEnc      = DateTime.Now,
                DescEvento = "Encerramento",
                CMun       = mdfe.CodigoIbgeMunicipioEmitente(),
                NProt      = protocolo
            };

            return(encerramento);
        }
示例#13
0
        public void EventoIncluirCondutor()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);


            var evento = new ServicoMDFeEvento();

            MDFeEletronico mdfe;
            var            caminhoXml = BuscarArquivoXmlMDFe();

            try
            {
                var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoXml);

                mdfe = enviMDFe.MDFe;
            }
            catch
            {
                try
                {
                    mdfe = MDFeEletronico.LoadXmlArquivo(caminhoXml);
                }
                catch
                {
                    var proc = FuncoesXml.ArquivoXmlParaClasse <MDFeProcMDFe>(caminhoXml);
                    mdfe = proc.MDFe;
                }
            }

            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));
        }
示例#14
0
        public void EventoCancelar()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);

            var evento = new ServicoMDFeEvento();

            MDFeEletronico mdfe;
            var            caminhoXml = BuscarArquivoXmlMDFe();

            try
            {
                var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoXml);

                mdfe = enviMDFe.MDFe;
            }
            catch
            {
                try
                {
                    mdfe = MDFeEletronico.LoadXmlArquivo(caminhoXml);
                }
                catch
                {
                    var proc = FuncoesXml.ArquivoXmlParaClasse <MDFeProcMDFe>(caminhoXml);
                    mdfe = proc.MDFe;
                }
            }

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

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

            var justificativa = InputBoxTuche("Digite uma justificativa (minimo 15 digitos)");

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

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

            OnSucessoSync(new RetornoEEnvio(retorno));
        }
示例#15
0
        public static void SalvarXmlEmDisco(this MDFEletronico mdfe, string nomeArquivo = null)
        {
            if (MDFeConfiguracao.NaoSalvarXml())
            {
                return;
            }

            if (string.IsNullOrEmpty(nomeArquivo))
            {
                nomeArquivo = Path.Combine(MDFeConfiguracao.CaminhoSalvarXml, mdfe.Chave() + "-mdfe.xml");
            }

            FuncoesXml.ClasseParaArquivoXml(mdfe, nomeArquivo);
        }
示例#16
0
        public void EventoPagamentoOperacaoTransporte()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);

            var            evento = new ServicoMDFeEvento();
            MDFeEletronico mdfe;
            var            caminhoXml = BuscarArquivoXmlMDFe();

            try
            {
                var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoXml);
                mdfe = enviMDFe.MDFe;
            }
            catch
            {
                try
                {
                    mdfe = MDFeEletronico.LoadXmlArquivo(caminhoXml);
                }
                catch
                {
                    var proc = FuncoesXml.ArquivoXmlParaClasse <MDFeProcMDFe>(caminhoXml);
                    mdfe = proc.MDFe;
                }
            }
            var protocolo  = InputBoxTuche("Protocolo");
            var qtdViagens = InputBoxTuche("Código do Município de Carregamento");
            var nroViagem  = InputBoxTuche("Nome do Município de Carregamento");

            if (string.IsNullOrEmpty(qtdViagens))
            {
                MessageBoxTuche("A quantidade de viagens não pode ser vazia ou nula");
                return;
            }
            if (string.IsNullOrEmpty(nroViagem))
            {
                MessageBoxTuche("Numero de referencia da viagem não pode ser vazio ou nulo");
                return;
            }

            var retorno = evento.MDFeEventoPagamentoOperacaoTransporte(mdfe, 1, protocolo, int.Parse(qtdViagens), int.Parse(nroViagem));

            OnSucessoSync(new RetornoEEnvio(retorno));
        }
示例#17
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);
        }
示例#18
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);
        }
示例#19
0
        public void GerarESalvar()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);
            var mdfe = new MDFeEletronico();

            #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     = ModeloDocumento.MDFe;
            mdfe.InfMDFe.Ide.Serie   = 751;
            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   = Estado.SP;
            mdfe.InfMDFe.Ide.UFFim   = Estado.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
            if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao100)
            {
                mdfe.InfMDFe.InfModal.VersaoModal = MDFeVersaoModal.Versao100;
                mdfe.InfMDFe.InfModal.Modal       = new MDFeRodo
                {
                    RNTRC      = config.Empresa.RNTRC,
                    VeicTracao = new MDFeVeicTracao
                    {
                        Placa    = "KKK9888",
                        RENAVAM  = "888888888",
                        UF       = Estado.GO,
                        Tara     = 222,
                        CapM3    = 222,
                        CapKG    = 22,
                        Condutor = new List <MDFeCondutor>
                        {
                            new MDFeCondutor
                            {
                                CPF   = "11392381754",
                                XNome = "Ricardão"
                            }
                        },
                        TpRod = MDFeTpRod.Outros,
                        TpCar = MDFeTpCar.NaoAplicavel
                    }
                };
            }


            if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
            {
                mdfe.InfMDFe.InfModal.VersaoModal = MDFeVersaoModal.Versao300;
                mdfe.InfMDFe.InfModal.Modal       = new MDFeRodo
                {
                    infANTT = new MDFeInfANTT
                    {
                        RNTRC = config.Empresa.RNTRC,

                        // não é obrigatorio
                        infCIOT = new List <infCIOT>
                        {
                            new infCIOT
                            {
                                CIOT = "123456789123",
                                CNPJ = "21025760000123"
                            }
                        },
                        valePed = new MDFeValePed
                        {
                            Disp = new List <MDFeDisp>
                            {
                                new MDFeDisp
                                {
                                    CNPJForn = "21025760000123",
                                    CNPJPg   = "21025760000123",
                                    NCompra  = "838388383",
                                    vValePed = 100.33m
                                }
                            }
                        }
                    },

                    VeicTracao = new MDFeVeicTracao
                    {
                        Placa    = "KKK9888",
                        RENAVAM  = "888888888",
                        UF       = Estado.GO,
                        Tara     = 222,
                        CapM3    = 222,
                        CapKG    = 22,
                        Condutor = new List <MDFeCondutor>
                        {
                            new MDFeCondutor
                            {
                                CPF   = "11392381754",
                                XNome = "Ricardão"
                            }
                        },
                        TpRod = MDFeTpRod.Outros,
                        TpCar = MDFeTpCar.NaoAplicavel
                    },

                    lacRodo = new List <MDFeLacre>
                    {
                        new MDFeLacre
                        {
                            NLacre = "lacre01"
                        }
                    }
                };
            }

            #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"
                        }
                    }
                }
            };


            if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
            {
                mdfe.InfMDFe.InfDoc.InfMunDescarga[0].InfCTe[0].Peri = new List <MDFePeri>
                {
                    new MDFePeri
                    {
                        NONU     = "1111",
                        QTotProd = "quantidade 20"
                    }
                };
            }

            #endregion infMunDescarga

            #region seg

            if (MDFeConfiguracao.VersaoWebService.VersaoLayout == VersaoServico.Versao300)
            {
                mdfe.InfMDFe.Seg = new List <MDFeSeg>();

                mdfe.InfMDFe.Seg.Add(new MDFeSeg
                {
                    InfResp = new MDFeInfResp
                    {
                        CNPJ    = "21025760000123",
                        RespSeg = MDFeRespSeg.EmitenteDoMDFe
                    },
                    InfSeg = new MDFeInfSeg
                    {
                        CNPJ = "21025760000123",
                        XSeg = "aaaaaaaaaa"
                    },
                    NApol = "aaaaaaaaaa",
                    NAver = new List <string>
                    {
                        "aaaaaaaa"
                    }
                });
            }

            #endregion

            #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();
        }
示例#20
0
        public void EventoIncluirDFe()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoesMDFe(config);

            var            evento = new ServicoMDFeEvento();
            MDFeEletronico mdfe;
            var            caminhoXml = BuscarArquivoXmlMDFe();

            try
            {
                var enviMDFe = MDFeEnviMDFe.LoadXmlArquivo(caminhoXml);
                mdfe = enviMDFe.MDFe;
            }
            catch
            {
                try
                {
                    mdfe = MDFeEletronico.LoadXmlArquivo(caminhoXml);
                }
                catch
                {
                    var proc = FuncoesXml.ArquivoXmlParaClasse <MDFeProcMDFe>(caminhoXml);
                    mdfe = proc.MDFe;
                }
            }
            var protocolo = InputBoxTuche("Protocolo");
            var codigoMunicipioCarregamento = InputBoxTuche("Código do Município de Carregamento");
            var nomeMunicipioCarregamento   = InputBoxTuche("Nome do Município de Carregamento");
            var cmunDescarga = InputBoxTuche("Código do Município de Descarga");
            var xmunDescarga = InputBoxTuche("Nome do Município de Descarga");
            var chNFe        = InputBoxTuche("Chave da NFe");

            if (string.IsNullOrEmpty(codigoMunicipioCarregamento))
            {
                MessageBoxTuche("Código do Município de Carregamento não pode ser vazio ou nulo");
                return;
            }
            if (string.IsNullOrEmpty(nomeMunicipioCarregamento))
            {
                MessageBoxTuche("Nome do Município de Carregamento não pode ser vazio ou nulo");
                return;
            }
            if (string.IsNullOrEmpty(cmunDescarga))
            {
                MessageBoxTuche("Nome do Município de Descarga não pode ser vazio ou nulo");
                return;
            }
            if (string.IsNullOrEmpty(xmunDescarga))
            {
                MessageBoxTuche("Nome do Município de Descarga não pode ser vazio ou nulo");
                return;
            }
            if (string.IsNullOrEmpty(chNFe))
            {
                MessageBoxTuche("Chave NFe não pode ser vazio ou nulo");
                return;
            }
            var informacoesDocumentos = new List <MDFeInfDocInc>
            {
                new MDFeInfDocInc
                {
                    CMunDescarga = cmunDescarga,
                    XMunDescarga = xmunDescarga,
                    ChNFe        = chNFe
                }
            };
            var retorno = evento.MDFeEventoIncluirDFe(mdfe, 1, protocolo, codigoMunicipioCarregamento, nomeMunicipioCarregamento, informacoesDocumentos);

            OnSucessoSync(new RetornoEEnvio(retorno));
        }
示例#21
0
        public MDFeRetEventoMDFe MDFeEventoEncerramentoMDFeEventoEncerramento(MDFeEletronica mdfe, byte sequenciaEvento, string protocolo)
        {
            var eventoEncerramento = new EventoEncerramento();

            return(eventoEncerramento.MDFeEventoEncerramento(mdfe, sequenciaEvento, protocolo));
        }
示例#22
0
        public MDFeRetEventoMDFe MDFeEventoEncerramentoMDFeEventoEncerramento(MDFeEletronica mdfe, Estado estadoEncerramento, long codigoMunicipioEncerramento, byte sequenciaEvento, string protocolo)
        {
            var eventoEncerramento = new EventoEncerramento();

            return(eventoEncerramento.MDFeEventoEncerramento(mdfe, estadoEncerramento, codigoMunicipioEncerramento, sequenciaEvento, protocolo));
        }
示例#23
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);

            switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
            {
            case VersaoServico.Versao100:
                Validador.Valida(xmlMdfe, "MDFe_v1.00.xsd");
                break;

            case VersaoServico.Versao300:
                Validador.Valida(xmlMdfe, "MDFe_v3.00.xsd");
                break;
            }

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


            if (tipoModal == typeof(MDFeRodo))
            {
                switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
                {
                case VersaoServico.Versao100:
                    Validador.Valida(xmlModal, "MDFeModalRodoviario_v1.00.xsd");
                    break;

                case VersaoServico.Versao300:
                    Validador.Valida(xmlModal, "MDFeModalRodoviario_v3.00.xsd");
                    break;
                }
            }

            if (tipoModal == typeof(MDFeAereo))
            {
                switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
                {
                case VersaoServico.Versao100:
                    Validador.Valida(xmlModal, "MDFeModalAereo_v1.00.xsd");
                    break;

                case VersaoServico.Versao300:
                    Validador.Valida(xmlModal, "MDFeModalAereo_v3.00.xsd");
                    break;
                }
            }

            if (tipoModal == typeof(MDFeAquav))
            {
                switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
                {
                case VersaoServico.Versao100:
                    Validador.Valida(xmlModal, "MDFeModalAquaviario_v1.00.xsd");
                    break;

                case VersaoServico.Versao300:
                    Validador.Valida(xmlModal, "MDFeModalAquaviario_v3.00.xsd");
                    break;
                }
            }

            if (tipoModal == typeof(MDFeFerrov))
            {
                switch (MDFeConfiguracao.VersaoWebService.VersaoLayout)
                {
                case VersaoServico.Versao100:
                    Validador.Valida(xmlModal, "MDFeModalFerroviario_v1.00.xsd");
                    break;

                case VersaoServico.Versao300:
                    Validador.Valida(xmlModal, "MDFeModalFerroviario_v3.00.xsd");
                    break;
                }
            }

            return(mdfe);
        }
示例#24
0
 public static string XmlString(this MDFEletronico mdfe)
 {
     return(FuncoesXml.ClasseParaXmlString(mdfe));
 }
示例#25
0
        public static long CodigoIbgeMunicipioEmitente(this MDFEletronico mdfe)
        {
            var codigo = mdfe.InfMDFe.Emit.EnderEmit.CMun;

            return(codigo);
        }
示例#26
0
        public static Estado UFEmitente(this MDFEletronico mdfe)
        {
            var estadoUf = mdfe.InfMDFe.Emit.EnderEmit.UF;

            return(estadoUf);
        }
示例#27
0
        public static string CPFEmitente(this MDFEletronico mdfe)
        {
            var cpf = mdfe.InfMDFe.Emit.CPF;

            return(cpf);
        }
示例#28
0
        public static string CNPJEmitente(this MDFEletronico mdfe)
        {
            var cnpj = mdfe.InfMDFe.Emit.CNPJ;

            return(cnpj);
        }
示例#29
0
        public static int AmbienteSefazInt(this MDFEletronico mdfe)
        {
            var ambiente = mdfe.InfMDFe.Ide.TpAmb;

            return((int)ambiente);
        }
示例#30
0
        public static string Chave(this MDFEletronico mdfe)
        {
            var chave = mdfe.InfMDFe.Id.Substring(4, 44);

            return(chave);
        }