Ejemplo n.º 1
0
        internal static TNFeInfNFeDest GetDestinatario(NotaFiscal notaFiscal)
        {
            var dest = new TNFeInfNFeDest();

            dest.Item = notaFiscal.Destinatario.Documento;

            switch (notaFiscal.Destinatario.TipoDestinatario)
            {
            case TipoDestinatario.PessoaFisica:
                dest.ItemElementName = ItemChoiceType3.CPF;
                break;

            case TipoDestinatario.PessoaJuridica:
                dest.ItemElementName = ItemChoiceType3.CNPJ;
                break;

            case TipoDestinatario.Estrangeiro:
                dest.ItemElementName = ItemChoiceType3.idEstrangeiro;
                break;
            }

            dest.xNome = notaFiscal.Destinatario.NomeRazao;

            if (notaFiscal.Destinatario.IsIsentoICMS)
            {
                dest.indIEDest = TNFeInfNFeDestIndIEDest.Item2;
            }
            else if (notaFiscal.Identificacao.Modelo == Modelo.Modelo65)
            {
                dest.indIEDest = TNFeInfNFeDestIndIEDest.Item9;
            }
            else
            {
                dest.indIEDest = TNFeInfNFeDestIndIEDest.Item1;
            }

            dest.IE    = notaFiscal.Destinatario.InscricaoEstadual;
            dest.email = notaFiscal.Destinatario.Email;

            if (notaFiscal.Destinatario.Endereco != null)
            {
                dest.enderDest = new TEndereco();

                dest.enderDest.xLgr    = notaFiscal.Destinatario.Endereco.Logradouro;
                dest.enderDest.nro     = notaFiscal.Destinatario.Endereco.Numero;
                dest.enderDest.xBairro = notaFiscal.Destinatario.Endereco.Bairro;
                dest.enderDest.cMun    = notaFiscal.Destinatario.Endereco.CodigoMunicipio;
                dest.enderDest.xMun    = notaFiscal.Destinatario.Endereco.Municipio;
                dest.enderDest.UF      = TUfDestConversor.TUf(notaFiscal.Destinatario.Endereco.UF);
                dest.enderDest.CEP     = notaFiscal.Destinatario.Endereco.Cep;
                dest.enderDest.cPais   = "1058";
                dest.enderDest.xPais   = "Brasil";
                dest.enderDest.fone    = notaFiscal.Destinatario.Telefone;
            }

            return(dest);
        }
Ejemplo n.º 2
0
        private Destinatario GetDestinatario(Retorno.TNFe nfe)
        {
            var nfeDest = nfe.infNFe.dest;

            if (nfeDest == null)
            {
                return(null);
            }

            TipoDestinatario tipoDestinatario;

            switch (nfeDest.ItemElementName)
            {
            case Retorno.ItemChoiceType3.CPF:
                tipoDestinatario = TipoDestinatario.PessoaFisica;
                break;

            case Retorno.ItemChoiceType3.CNPJ:
                tipoDestinatario = TipoDestinatario.PessoaJuridica;
                break;

            case Retorno.ItemChoiceType3.idEstrangeiro:
                tipoDestinatario = TipoDestinatario.Estrangeiro;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (nfeDest.enderDest != null)
            {
                var uf       = TUfDestConversor.ToUfString((TUf)(int)nfeDest.enderDest.UF);
                var endereco = new Endereco(nfeDest.enderDest.xLgr, nfeDest.enderDest.nro,
                                            nfeDest.enderDest.xBairro, nfeDest.enderDest.xMun, nfeDest.enderDest.CEP, uf);

                var ambiente = (Ambiente)(int)nfe.infNFe.ide.tpAmb;
                var modelo   = nfe.infNFe.ide.mod == Retorno.TMod.Item55 ? Modelo.Modelo55 : Modelo.Modelo65;

                return(new Destinatario(ambiente, modelo, nfeDest.enderDest.fone, nfeDest.email, endereco,
                                        tipoDestinatario, nfeDest.IE, nomeRazao: nfeDest.xNome, documento: nfeDest.Item));
            }
            else
            {
                var ambiente = (Ambiente)(int)nfe.infNFe.ide.tpAmb;
                var modelo   = nfe.infNFe.ide.mod == Retorno.TMod.Item55 ? Modelo.Modelo55 : Modelo.Modelo65;

                return(new Destinatario(ambiente, modelo, null, nfeDest.email, null, tipoDestinatario, nfeDest.IE,
                                        nomeRazao: nfeDest.xNome, documento: nfeDest.Item));
            }
        }