Esempio n. 1
0
        internal static Bens importarDec(Identificador ide, Files.DEC_Intermediate dec)
        {
            var bens = new Bens();

            bens.Itens = new BensItens[dec.BensDireitos.Length];
            for (int i = 0; i < dec.BensDireitos.Length; i++)
            {
                bens.Itens[i] = new BensItens()
                {
                    Descricao     = dec.BensDireitos[i].TX_BEM,
                    ValorAnterior = dec.BensDireitos[i].VR_ANTER,
                    ValorAtual    = dec.BensDireitos[i].VR_ATUAL,
                    CodigoBem     = dec.BensDireitos[i].CD_BEM,
                    Pais          = dec.BensDireitos[i].IN_Exterior ? dec.BensDireitos[i].CD_PAIS : 105,
                    // Não sei o que fazer com os outros dados de bens (RENAVAN, Registrod de imóvel, etc..)
                };
            }
            return(bens);
        }
        public static DeclaracaoIRPF fromArquivoDEC(Files.DEC_Intermediate dec)
        {
            #region Identificador
            var ide = new Identificador()
            {
                CPF                      = dec.Header.CPF_Contribuinte,
                Retificadora             = dec.Header.ehRetificadora(),
                Nome                     = dec.Header.NR_Contribuinte,
                Exercicio                = dec.Header.Exercicio,
                Tipo                     = dec.Header.ehCompleta() ? Identificador.TipoDeclaracao.Completa : Identificador.TipoDeclaracao.Simplificada,
                EnderecoDiferente        = dec.Header.IN_MudaEndereco,
                EnderecoMACRede          = dec.Header.ENDERECO_MAC,
                NumeroReciboAnterior     = dec.Header.NR_ReciboUltimaDecExAnterior,
                NumeroReciboRetificadora = dec.Header.NR_ReciboUltimaDecExAtual // Não tenho certeza
            };
            #endregion
            var irpf = new DeclaracaoIRPF(ide);
            #region Contribuinte
            bool isUfEx = dec.Declarante.SG_UF.Equals("EX", StringComparison.CurrentCultureIgnoreCase);
            irpf.Contribuinte = new Contribuinte()
            {
                DataNascimento      = Datas.Parse(dec.Declarante.DT_Nascim),
                TituloEleitor       = dec.Declarante.NR_TituloEleitor,
                DoencaDeficiencia   = dec.Declarante.ehDoencaDeficiencia(),
                ConjugueCompanheiro = dec.Declarante.ehConjugue(),
                CpfConjuge          = dec.Declarante.NR_CpfConjugue,
                Exterior            = isUfEx,
                TipoLogradouro      = dec.Declarante.TIP_Logradouro,
                Logradouro          = isUfEx ? "" : dec.Declarante.NM_Logradouro,
                Numero         = isUfEx ? "" : dec.Declarante.NR_Numero,
                Complemento    = isUfEx ? "" : dec.Declarante.NM_Complemento,
                Bairro         = isUfEx ? "" : dec.Declarante.NM_Bairro,
                UF             = 0, // Lookup dec.Declarante.SG_UF
                Municipio      = Convert.ToInt32(dec.Declarante.COD_Municipio),
                Cep            = dec.Declarante.NR_CEP,
                DDD            = dec.Declarante.NR_DDDTelefone,
                Telefone       = dec.Declarante.NR_Telefone,
                DDDCelular     = dec.Declarante.NR_DDDCelular,
                Celular        = dec.Declarante.NR_Celular,
                LogradouroExt  = isUfEx ? dec.Declarante.NM_Logradouro : "",
                NumeroExt      = isUfEx ? dec.Declarante.NR_Numero : "",
                ComplementoExt = isUfEx ? dec.Declarante.NM_Complemento : "",
                BairroExt      = isUfEx ? dec.Declarante.NM_Bairro : "",
                CidadeExt      = isUfEx ? dec.Declarante.NM_Municipio : "",
                CodigoExterior = Numeros.Inteiro(dec.Declarante.CD_EX),                  // "",
                Pais           = isUfEx ? Convert.ToInt32(dec.Declarante.CD_Pais) : 105, // 105 => BR
                CepExt         = "",

                EMail                = dec.Declarante.NM_EMail,
                NitPisPasep          = dec.Declarante.NR_NitPisPasep,
                NaturezaOcupacao     = Numeros.Inteiro(dec.Declarante.CD_Natur),
                OcupacaoPrincipal    = Convert.ToInt32(dec.Declarante.CD_Ocup),
                RegistroProfissional = dec.Declarante.NR_Registroprofissional,
            };
            #endregion

            if (ide.Tipo == Identificador.TipoDeclaracao.Simplificada)
            {
                irpf.ModeloSimplificada = ModeloSimplificada.importarDec(ide, dec);
            }
            else
            {
                irpf.ModeloCompleta = ModeloCompleta.importarDec(ide, dec);
            }

            irpf.Pagamentos             = Pagamentos.importarDec(ide, dec);
            irpf.RendPJ                 = RendimentosPJ.importarDec(ide, dec);
            irpf.RendPJComExigibilidade = RendimentosPJComExigibilidade.importarDec(ide, dec);
            irpf.Espolio                = Espolio.importarDec(ide, dec);
            irpf.ImpostoPago            = ImpostoPago.importarDec(ide, dec);
            irpf.Dependentes            = Dependentes.importarDec(ide, dec);
            irpf.RendaVariavel          = RendaVariavel.importarDec(ide, dec);
            irpf.Alimentandos           = Alimentandos.importarDec(ide, dec);
            irpf.Bens                    = Bens.importarDec(ide, dec);
            irpf.Dividas                 = Dividas.importarDec(ide, dec);
            irpf.AtividadeRural          = AtividadeRural.importarDec(ide, dec);
            irpf.GanhosDeCapital         = GanhosCapital.importarDec(ide, dec);
            irpf.MoedaEstrangeira        = MoedaEstrangeira.importarDec(ide, dec);
            irpf.RendPFTitular           = RendimentosPF.importarDec(ide, dec);
            irpf.RendPFDependente        = RendimentosPFDependente.importarDec(ide, dec);
            irpf.RendIsentos             = RendimentosIsentos.importarDec(ide, dec);
            irpf.RendTributacaoExclusiva = RendimentosTributacaoExclusiva.importarDec(ide, dec);
            irpf.Comparativo             = Comparativo.importarDec(ide, dec);
            irpf.Resumo                  = Resumo.importarDec(ide, dec);
            irpf.Doacoes                 = Doacoes.importarDec(ide, dec);

            return(irpf);
        }