Exemplo n.º 1
0
        private Titular BuscarPrincipal(EnderecoPessoa enderecoPessoa, Emissao emissao, Produto produto, Pessoa pessoa, ItemOutRiscPess itemOutRiscPess, int cdconseg, int nrcer, int cditeseg)
        {
            string plano  = null;
            var    lstMov = new List <MovCoberturaVidaDTO>();

            using (var db = new SqlConnection(ConfigurationManager.ConnectionStrings["kitDigitalJson"].ConnectionString))
            {
                plano = db.Query <string>("select p.dsplnind from PlanoIndGrupo p inner join ItemOutRiscPess i on p.cdprodut = i.cdprodut and p.nrseqplnind = i.nrseqplnind and p.dtinivig = i.dtinivig " +
                                          "where i.cdconseg = @cdconseg and i.cditeseg = @cditeseg", new { cdconseg = cdconseg, cditeseg = cditeseg }).FirstOrDefault();

                lstMov = db.Query <MovCoberturaVidaDTO>("PR_BuscarMovCoberturaVida_DTO_KitDigital", new { cdconseg = cdconseg, cditeseg = cditeseg }, commandType: CommandType.StoredProcedure).ToList();
            }
            Titular principal = new Titular();

            principal.certificado    = nrcer;
            principal.contrato       = cdconseg;
            principal.proposta       = emissao.nrppscor;
            principal.emissao        = emissao.cdemi;
            principal.item           = cditeseg;
            principal.nome           = pessoa.nmpes.TrimEnd();
            principal.dataNascimento = pessoa.dtnas.ToString();
            principal.cpf            = pessoa.nrcgccpf.ToString().Count() > 11 ? Convert.ToUInt64(pessoa.nrcgccpf).ToString(@"00\.000\.000\/0000\-00").TrimEnd() : Convert.ToUInt64(pessoa.nrcgccpf).ToString(@"000\.000\.000\-00").TrimEnd();
            principal.numeroSegurado = cdconseg + " " + emissao.nrppscor + " " + nrcer;
            principal.plano          = string.IsNullOrEmpty(plano) ? null : plano.TrimEnd();
            principal.dadosComplementares.endereco = Mapper.Map <Endereco>(enderecoPessoa);
            principal.email = BuscarEmail(enderecoPessoa.cdpes, enderecoPessoa.nrseqend);
            principal.dadosComplementares.telefone = Mapper.Map <List <Telefone> >(BuscarTelefone(pessoa.cdpes));

            if (lstMov.Count() > 0)
            {
                principal.coberturasContratadas = new List <CoberturasContratada>();
                foreach (var item in lstMov)
                {
                    principal.coberturasContratadas.Add(Mapper.Map <CoberturasContratada>(item));
                }
            }

            //principal.dps = BuscarDPS(produto.cdprodut, cdconseg, emissao);
            return(principal);
        }
Exemplo n.º 2
0
        private Seguro BuscarSeguro(Ramo ramo, Emissao emissao, Produto produto, Pessoa pessoa, string orgaoProdutor, int cdemi, int nrcer, int cdconseg, int cditeseg)
        {
            Pessoa pes = new Pessoa();
            List <TelefonePessoa> telefonePessoa = null;
            string tipoPagamento = null;
            var    corretor      = new Corretor();
            string periodicidade = null;

            using (var db = new SqlConnection(ConfigurationManager.ConnectionStrings["kitDigitalJson"].ConnectionString))
            {
                pes = db.Query <Pessoa>("select * from Pessoa where cdpes = (select cdpes from ContratoSeguro where cdconseg = @cdconseg)", new { cdconseg = emissao.cdconseg }).FirstOrDefault();

                telefonePessoa = db.Query <TelefonePessoa>("select * from TelefonePessoa where cdpes = @cdpes and (idValido='S' OR idValido IS NULL OR idValido = '')", new { cdpes = pes.cdpes }).ToList();

                tipoPagamento = RecuperarTipoPagamento(emissao.cdconseg, emissao.cdemi, pessoa.cdpes);

                corretor = db.Query <Corretor>("PR_BuscarCorretorKitDigital", new { cdconseg = emissao.cdconseg, cdemi = emissao.cdemi }, commandType: CommandType.StoredProcedure).FirstOrDefault();

                periodicidade = db.Query <string>("select ds_sgncam from TB_DOMINIO_CAMPO where nm_cam = 'tpfreqpl' and nm_tab = 'Certificado' and ds_vlrdmn = (select tpfreqpl from Certificado where cdconseg = @cdconseg and cdemi = @cdemi and nrcer = @nrcer)", new { cdconseg = cdconseg, cdemi = cdemi, nrcer = nrcer }).FirstOrDefault();
            }

            Seguro seguro = new Seguro();

            seguro.codigoRamo      = ramo.cdramosg.ToString().PadLeft(4, '0');
            seguro.ramo            = ramo.nmramseg.TrimEnd();
            seguro.sucursal        = orgaoProdutor.TrimEnd();
            seguro.produto         = produto.nmprodut.TrimEnd();
            seguro.inicioVigencia  = emissao.dtinivig > emissao.dtfimvig.AddYears(-1) ? emissao.dtinivig.ToString() : emissao.dtfimvig.AddYears(-1).ToString();
            seguro.fimVigencia     = emissao.dtfimvig.ToString();
            seguro.ingressoApolice = emissao.dtbasecalc.ToString();
            seguro.apolice         = emissao.cdorgprtsuc + "/" + ramo.cdramosg + "/" + emissao.nrapo;
            seguro.proLabore       = "0,00";
            seguro.tipoPagamento   = string.IsNullOrEmpty(tipoPagamento) ? null : tipoPagamento.TrimEnd();
            if (corretor != null)
            {
                seguro.corretor    = string.IsNullOrEmpty(corretor.nmpes) ? null : corretor.nmpes.TrimEnd();
                seguro.codigoSUSEP = string.IsNullOrEmpty(corretor.cdregsus) ? null : corretor.cdregsus.TrimEnd();
            }
            seguro.periodicidade = string.IsNullOrEmpty(periodicidade) ? null : periodicidade.TrimEnd();
            seguro.vencimento    = emissao.dtinivig.Day.ToString();

            decimal valorPremioLiquido = BuscarValorPremioLiquido(cdconseg, cditeseg);

            seguro.valorPremioLiquido     = valorPremioLiquido.ToString("N");
            seguro.adicionalFracionamento = "0,00";
            seguro.custoApolice           = "0,00";

            decimal valorIOF = BuscarValorIOF(cdconseg, cditeseg);

            seguro.valorIOF = valorIOF.ToString("N");

            decimal valorPremioTotal = valorPremioLiquido + valorIOF;

            seguro.valorPremioTotal = valorPremioTotal.ToString("N");

            seguro.estipulante      = new Estipulante();
            seguro.estipulante.nome = pes.nmpes.TrimEnd();
            seguro.estipulante.cnpj = pes.nrcgccpf.ToString().Count() > 11 ? Convert.ToUInt64(pes.nrcgccpf).ToString(@"00\.000\.000\/0000\-00").TrimEnd() : Convert.ToUInt64(pes.nrcgccpf).ToString(@"000\.000\.000\-00").TrimEnd();

            seguro.estipulante.dadosComplementares.email = BuscarEnderecoPessoaKit((int)pes.cdpes).nmemail;
            //seguro.estipulante.dadosComplementares.telefone =  Mapper.Map<List<TelefonePessoa>, List<Telefone>>(telefonePessoa);
            seguro.estipulante.dadosComplementares.telefone = Mapper.Map <List <Telefone> >(BuscarTelefone(pes.cdpes));
            seguro.estipulante.dadosComplementares.endereco = Mapper.Map <EnderecoPessoa, Endereco>(BuscarEnderecoPessoaKit((int)pes.cdpes));

            seguro.dps = BuscarDPS(produto.cdprodut, cdconseg, emissao);

            return(seguro);
        }
Exemplo n.º 3
0
        private List <DPS> BuscarDPS(int codigoProduto, int cdconseg, Emissao emissao)
        {
            var lista = new List <DPS>();

            using (var db = new SqlConnection(ConfigurationManager.ConnectionStrings["kitDigitalJson"].ConnectionString))
            {
                var listaOrdemPerguntaDps = db.Query <OrdemPerguntaDps>("PR_BuscarOrdemPerguntaDpsKitDigital", new { codigoProduto = codigoProduto, dtcotpps = emissao.dtcotpps }, commandType: CommandType.StoredProcedure).ToList();

                if (listaOrdemPerguntaDps.Count() > 0)
                {
                    var listaResposta  = db.Query <PerguntaRespostaDPS>("PR_BuscarPerguntaRespostaDpsKitDigital", new { codigoProduto = codigoProduto, dtcotpps = emissao.dtcotpps, cdconseg = cdconseg, cdemi = emissao.cdemi }, commandType: CommandType.StoredProcedure).ToList();
                    var listaPrincipal = listaOrdemPerguntaDps.Where(x => x.tipoSegurado.Equals("P")).OrderBy(x => x.numeroPergunta).ToList();
                    var listaConjuge   = listaOrdemPerguntaDps.Where(x => x.tipoSegurado.Equals("C")).OrderBy(x => x.numeroPergunta).ToList();

                    if (listaPrincipal.Count() > 0)
                    {
                        DPS dps = new DPS();
                        if (listaResposta.Count() > 0)
                        {
                            dps.perguntaRespostaDPS = new List <PerguntaRespostaDPS>();
                            foreach (var i in listaPrincipal)
                            {
                                PerguntaRespostaDPS perguntaRespostaDPS = listaResposta.Where(x => x.codigoPergunta == i.codigoPergunta).Select(x => new PerguntaRespostaDPS()
                                {
                                    resposta = x.resposta.TrimEnd(), codigoPergunta = i.numeroPergunta
                                }).FirstOrDefault();
                                if (perguntaRespostaDPS != null)
                                {
                                    dps.tipoSegurado = "Principal";
                                    dps.perguntaRespostaDPS.Add(perguntaRespostaDPS);
                                }
                            }
                        }

                        lista.Add(dps);
                    }

                    //Verifica se o Titular tem Conjuge, senão não vem DPS
                    if (VerificaExisteConjuge(cdconseg, emissao.cdemi) > 0)
                    {
                        if (listaConjuge.Count() > 0)
                        {
                            DPS dps = new DPS();
                            if (listaResposta.Count() > 0)
                            {
                                dps.perguntaRespostaDPS = new List <PerguntaRespostaDPS>();
                                foreach (var i in listaConjuge)
                                {
                                    PerguntaRespostaDPS perguntaRespostaDPS = listaResposta.Where(x => x.codigoPergunta == i.codigoPergunta).Select(x => new PerguntaRespostaDPS()
                                    {
                                        resposta = x.resposta.TrimEnd(), codigoPergunta = i.numeroPergunta
                                    }).FirstOrDefault();
                                    if (perguntaRespostaDPS != null)
                                    {
                                        dps.tipoSegurado = "Cônjuge";
                                        dps.perguntaRespostaDPS.Add(perguntaRespostaDPS);
                                    }
                                }
                            }

                            lista.Add(dps);
                        }
                    }
                }
            }
            return(lista);
        }
Exemplo n.º 4
0
 private Lamina BuscarLamina(int codigoContrato, int codigoEmissao, int numeroParcela, int nrcer, Emissao emissao, Lamina lamina)
 {
     using (var db = new SqlConnection(ConfigurationManager.ConnectionStrings["kitDigitalJson"].ConnectionString))
     {
         var item = db.Query <LaminaBoleto>("PR_BuscarLaminaKitDigital", new { codigoContrato = codigoContrato, nrcer = nrcer, numeroParcela = numeroParcela }, commandType: CommandType.StoredProcedure).FirstOrDefault();
         if (item != null)
         {
             lamina.agencia            = item.agencia;
             lamina.codigoBeneficiario = item.codBeneficiario.Insert(item.codBeneficiario.Count() - 1, "-");
             item.banco = item.banco.TrimEnd();
             if (item.banco.Equals("BRADESCO"))
             {
                 lamina.numeroDocumento = emissao.cdorgprtsuc.ToString() + "/" + emissao.nrapo.ToString("00000");
             }
             else if (item.banco.Equals("CAIXA"))
             {
                 lamina.numeroDocumento = nrcer.ToString();
             }
             else
             {
                 lamina.numeroDocumento = emissao.cdorgprtsuc.ToString() + "/" + emissao.cdrmoseg.ToString() + "/" + emissao.nrapo.ToString("00000");
             }
         }
         return(lamina);
     }
 }
Exemplo n.º 5
0
        public IEnumerable <Kitdigital> BuscarCertificado(List <int> lstKit, string usuario, string nomeArquivo)
        {
            try
            {
                var dao = new ListaKitIndividualListaLogListaTotal();
                var retornoLogProcessamento = dao.AddLogProcessamento(usuario);
                var lista    = new ConcurrentBag <Kitdigital>();
                var listaDto = new ConcurrentBag <Kitdigital>();
                Mapeamento.Instance();
                foreach (var tipoKit in lstKit)
                {
                    Console.WriteLine();
                    Console.Write("Processando KIT ");
                    Console.WriteLine(tipoKit);


                    using (var db = new SqlConnection(ConfigurationManager.ConnectionStrings["kitDigitalJson"].ConnectionString))
                    {
                        db.Open();
                        var range = db.Query <Controle2Via>("PR_BuscarControle2ViaArquivoDigital", new { tipoKit = tipoKit }, commandType: CommandType.StoredProcedure).ToList();
                        db.Close();
                        if (range.Count() > 0)
                        {
                            Console.WriteLine();
                            Console.Write("Quantidade de Certificados a Processar: ");
                            Console.WriteLine(range.Count());
                            try
                            {
                                Parallel.For(0, range.Count(), item =>
                                {
                                    Kitdigital kitDigital           = new Kitdigital();
                                    kitDigital.externalKey          = range[item].cdc2v;
                                    kitDigital.tipoKit              = tipoKit;
                                    kitDigital.digital              = range[item].iddig.TrimEnd();
                                    ItemOutRiscPess itemOutRiscPess = BuscarItemOutRiscPess(range[item].cdconseg, (int)range[item].cditeseg);
                                    Pessoa pessoa = BuscarPessoaKit((int)range[item].nrcer, range[item].cdconseg);
                                    EnderecoPessoa enderecoPessoa = BuscarEnderecoPessoaKit(pessoa.cdpes);
                                    Produto produto      = BuscarProduto(range[item].cdconseg);
                                    Ramo ramo            = BuscarRamo(produto.cdramosg);
                                    Emissao emissao      = BuscarEmissao(range[item].cdconseg, range[item].cdemi);
                                    string orgaoProdutor = BuscarOrgaoProdutor((int)emissao.cdorgprtsuc).TrimEnd();
                                    var certificados     = BuscarCertificados(tipoKit, range[item].cdconseg, range[item].iddig);
                                    if (certificados.Count() > 0)
                                    {
                                        foreach (var i in certificados)
                                        {
                                            switch (i.nomeDocumento)
                                            {
                                            case "CERTIFICADO":
                                                kitDigital.certificado               = new Certificado();
                                                kitDigital.certificado.seguro        = BuscarSeguro(ramo, emissao, produto, pessoa, orgaoProdutor, range[item].cdemi, (int)range[item].nrcer, range[item].cdconseg, (int)range[item].cditeseg);
                                                kitDigital.certificado.titular       = BuscarPrincipal(enderecoPessoa, emissao, produto, pessoa, itemOutRiscPess, range[item].cdconseg, (int)range[item].nrcer, (int)range[item].cditeseg);
                                                kitDigital.certificado.dependentes   = BuscarDependentes(range[item].cdconseg, (int)range[item].cditeseg);
                                                kitDigital.certificado.beneficiarios = BuscarBeneficiarios(range[item].cdconseg, (int)range[item].cditeseg);
                                                kitDigital.certificado.dataEmissao   = BuscarDataEmissao().ToString();
                                                kitDigital.certificado.processoSUSEP = BuscarProcessoSusep(produto.cdprodut);


                                                kitDigital.certificado.titular.dadosComplementares.email         = enderecoPessoa.nmemail;
                                                kitDigital.certificado.titular.dadosComplementares.endereco      = Mapper.Map <EnderecoPessoa, Endereco>(enderecoPessoa);
                                                kitDigital.certificado.titular.dadosComplementares.telefone      = Mapper.Map <IEnumerable <TelefonePessoa>, IEnumerable <Telefone> >(BuscarTelefone(enderecoPessoa.cdpes));
                                                kitDigital.certificado.titular.dadosComplementares.tipoPagamento = RecuperarTipoPagamento(emissao.cdconseg, emissao.cdemi, pessoa.cdpes);


                                                kitDigital.certificado.observacaoCarencia = "A carência para efeitos deste seguro, a contar da data de início de vigência, será de 120 (cento e vinte) dias. Não haverá carência para acidentes pessoais. A carência para Assistência Desemprego, quando inclusa no seguro, será de 180 (cento e oitenta) dias. Em caso de inclusão do cônjuge após o início de vigência do seguro deverá ser cumprida a carência estabelecida, a contar da data de inclusão do mesmo. A carência para Dependentes Agregados será contada a partir da data de início de vigência da cobertura do dependente.";
                                                break;

                                            case "CARNÊ":
                                                kitDigital.boleto = new Boleto();

                                                kitDigital.boleto.dadosComplementares.email    = enderecoPessoa.nmemail;
                                                kitDigital.boleto.dadosComplementares.endereco = Mapper.Map <EnderecoPessoa, Endereco>(enderecoPessoa);
                                                kitDigital.boleto.dadosComplementares.telefone = Mapper.Map <IEnumerable <TelefonePessoa>, IEnumerable <Telefone> >(BuscarTelefone(enderecoPessoa.cdpes));

                                                if (kitDigital.tipoKit != 123)
                                                {
                                                    kitDigital.boleto.dadosComplementares.tipoPagamento = RecuperarTipoPagamento(emissao.cdconseg, emissao.cdemi, pessoa.cdpes);
                                                }

                                                kitDigital.boleto.laminas = new List <Lamina>();
                                                var lstkitCarne           = BuscarKitCarne(range[item].cdc2v);

                                                if (lstkitCarne.Count() > 0)
                                                {
                                                    //Inclusão para Recuperar o Meio de Pagamento da Parcela da Teimosinha
                                                    if (kitDigital.tipoKit == 123)
                                                    {
                                                        kitDigital.boleto.dadosComplementares.tipoPagamento = RecuperarTipoPagamentoParcela(lstkitCarne[0].codigoContrato, lstkitCarne[0].codigoEmissao, lstkitCarne[0].numeroParcela);

                                                        //Caso não encontre o valor da parcela anterior, recupera do certificado
                                                        if (kitDigital.boleto.dadosComplementares.tipoPagamento == null)
                                                        {
                                                            kitDigital.boleto.dadosComplementares.tipoPagamento = RecuperarTipoPagamento(emissao.cdconseg, emissao.cdemi, pessoa.cdpes);
                                                        }
                                                    }

                                                    foreach (var kit in lstkitCarne)
                                                    {
                                                        ParcelaPremio pp = BuscarParcelaPremio(kit.codigoContrato, kit.codigoEmissao, kit.numeroParcela);

                                                        if (pp.tplqdparpre == 0)     //Ficha de Compensação
                                                        {
                                                            if ((pp.stparpre != 4) && (pp.stparpre != 5) && (pp.stparpre != 12))
                                                            {
                                                                Lamina lamina = Mapper.Map <Lamina>(BuscarTBDadosBoleto(kit.codigoContrato, kit.codigoEmissao, kit.numeroParcela));

                                                                if (lamina != null)
                                                                {
                                                                    lamina.nossoNumero         = lamina.nossoNumero.Replace("-", "").Insert(lamina.nossoNumero.Count() - 2, "-");
                                                                    lamina                     = BuscarLamina(kit.codigoContrato, kit.codigoEmissao, kit.numeroParcela, (int)range[item].nrcer, emissao, lamina);
                                                                    lamina.vencimento          = pp.dtven > pp.dtvenprg ? pp.dtven.ToString() : pp.dtvenprg.ToString();
                                                                    lamina.dataProcessamento   = BuscarDataEmissao().ToString();
                                                                    lamina.dataDocumento       = lamina.dataProcessamento;
                                                                    lamina.dataLimitePagamento = kitDigital.tipoKit != 123 ? Convert.ToDateTime(lamina.vencimento).AddDays(15).ToString() : Convert.ToDateTime(lamina.vencimento).ToString();
                                                                    lamina.carencia            = BuscarCarencia(kit.codigoContrato, kit.codigoEmissao, kit.numeroParcela);
                                                                    kitDigital.boleto.laminas.Add(lamina);
                                                                }
                                                                else
                                                                {
                                                                    Lamina laminaInvalida  = new Lamina();
                                                                    laminaInvalida.parcela = -1;
                                                                    kitDigital.boleto.laminas.Add(laminaInvalida);
                                                                }
                                                            }
                                                        }
                                                    }
                                                }

                                                if (kitDigital.boleto.laminas.Count > 0)
                                                {
                                                    kitDigital.boleto.certificado = (int)range[item].nrcer;
                                                    kitDigital.boleto.nome        = pessoa.nmpes.TrimEnd();
                                                    kitDigital.boleto.cpf         = pessoa.nrcgccpf.ToString().Count() > 11 ? Convert.ToUInt64(pessoa.nrcgccpf).ToString(@"00\.000\.000\/0000\-00").TrimEnd() : Convert.ToUInt64(pessoa.nrcgccpf).ToString(@"000\.000\.000\-00").TrimEnd();
                                                    kitDigital.boleto.apolice     = emissao.cdorgprtsuc + "/" + ramo.cdramosg + "/" + emissao.nrapo;
                                                    kitDigital.boleto.dadosComplementares.endereco = Mapper.Map <Endereco>(enderecoPessoa);
                                                }
                                                else
                                                {
                                                    //Não houve recuperação de nenhuma lâmina
                                                    kitDigital.boleto = null;
                                                }
                                                break;

                                            case "CARTEIRINHA":
                                                kitDigital.carteirinha = new Carteirinha()
                                                {
                                                    certificado = (int)range[item].nrcer,
                                                    contrato    = range[item].cdconseg,
                                                    nome        = pessoa.nmpes.TrimEnd()
                                                };

                                                kitDigital.carteirinha.dadosComplementares.email    = enderecoPessoa.nmemail;
                                                kitDigital.carteirinha.dadosComplementares.endereco = Mapper.Map <EnderecoPessoa, Endereco>(enderecoPessoa);
                                                kitDigital.carteirinha.dadosComplementares.telefone = Mapper.Map <IEnumerable <TelefonePessoa>, IEnumerable <Telefone> >(BuscarTelefone(enderecoPessoa.cdpes));

                                                break;
                                            }
                                        }
                                    }
                                    lista.Add(kitDigital);
                                });
                            }
                            catch (Exception ex)
                            {
                                throw ex;
                            }
                        }
                    }
                }
                using (TransactionScope scope = new TransactionScope())
                {
                    listaDto = dao.AddControleImpKitItem(lstKit, usuario, lista, retornoLogProcessamento, nomeArquivo);
                    scope.Complete();
                    scope.Dispose();
                }
                return(listaDto);
            }
            catch (Exception e)
            {
                throw e;
            }
        }