private static Destinatario GetDestinatario(NotaFiscalModel notaFiscal, Ambiente ambiente, Modelo _modelo)
        {
            if (notaFiscal.DestinatarioSelecionado.Documento == null &&
                string.IsNullOrEmpty(notaFiscal.Documento))
            {
                return(null);
            }

            string            documento, nomeRazao, inscricaoEstadual = null;
            DestinatarioModel destinatarioSelecionado = null;
            Endereco          endereco = null;

            if (notaFiscal.DestinatarioSelecionado.Documento != null)
            {
                destinatarioSelecionado = notaFiscal.DestinatarioSelecionado;

                if (notaFiscal.DestinatarioSelecionado.Endereco.Logradouro != null)
                {
                    var enderecoModel = notaFiscal.DestinatarioSelecionado.Endereco;
                    endereco = new Endereco(enderecoModel.Logradouro, enderecoModel.Numero, enderecoModel.Bairro,
                                            enderecoModel.Municipio, enderecoModel.CEP, enderecoModel.UF);
                }

                inscricaoEstadual = notaFiscal.DestinatarioSelecionado?.InscricaoEstadual;
                documento         = notaFiscal.DestinatarioSelecionado.Documento;
                nomeRazao         = notaFiscal.DestinatarioSelecionado.NomeRazao;
            }
            else
            {
                documento = notaFiscal.Documento;
                nomeRazao = "CONSUMIDOR NÃO IDENTIFICADO";
            }

            TipoDestinatario tipoDestinatario;

            if (notaFiscal.IsEstrangeiro)
            {
                tipoDestinatario = TipoDestinatario.Estrangeiro;
            }
            else if (documento.Length == 11)
            {
                tipoDestinatario = TipoDestinatario.PessoaFisica;
            }
            else
            {
                tipoDestinatario = TipoDestinatario.PessoaJuridica;
            }


            var destinatario = new Destinatario(ambiente, _modelo, destinatarioSelecionado?.Telefone,
                                                destinatarioSelecionado?.Email, endereco, tipoDestinatario, inscricaoEstadual, documento: documento,
                                                nomeRazao: nomeRazao);

            return(destinatario);
        }
Esempio n. 2
0
        public NotaFiscal(Emissor emitente, Destinatario destinatario, IdentificacaoNFe identificacao,
                          Transporte transporte, TotalNFe totalNFe,
                          InfoAdicional infoAdicional, List <Produto> produtos, List <Pagamento> pagamentos = null, string xml = null)
        {
            Emitente     = emitente;
            Destinatario = destinatario;

            var codigoUF = (CodigoUfIbge)Enum.Parse(typeof(CodigoUfIbge), emitente.Endereco.UF);

            emitente.InscricaoMunicipal =
                codigoUF == CodigoUfIbge.DF ? emitente.InscricaoEstadual : emitente.InscricaoMunicipal;

            var documentoDanfe = Destinatario != null ? Destinatario.DocumentoDanfe : "CPF";

            Identificacao = identificacao;
            Pagamentos    = pagamentos;
            Transporte    = transporte;
            TotalNFe      = totalNFe;
            InfoAdicional = infoAdicional;
            Produtos      = produtos;
        }