Beispiel #1
0
        public async void CargarScoreSeguimientoAsync()
        {
            OpaServicioFachada Fa = new OpaServicioFachada();

            this.StatusTask = Status.Running;
            short  ValorEnum = 0;
            string nombre    = "ResultadosScore";



            try
            {
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                // Guardo el log funcional de ejecucion de este proceso
                red = new DatosRedFacade().ObtenerDatosDeRed();
                new OpaAuditoriaFachada().GuardarLogFuncionalWFAsync("Servicio windows para carga de informacion <ResultadosScore>",
                                                                     "Not Gui required",
                                                                     "<root><NoData>Not data is required to execution</NoData></root>",
                                                                     new DatosUsuarioAuditoria
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                });


                // 0: otorgamiento masivo  1: seguimiento
                string Estado = ConfigurationManager.AppSettings["Estado"];

                if (Estado == "0")
                {
                    OpaServicioFachada FachadaServicio = new OpaServicioFachada();
                    OpaSarcFachada     bd = new OpaSarcFachada();


                    List <DatosGeneralPersona> EntidadCreditosPersona = bd.BuscarListaDatosGeneralesPersona().ToList();


                    List <Opa.Sarc.Entidades.ResultadosScore> EntidadResultado = new List <ResultadosScore>();



                    ////  el proceso normal es que se envie false solo se envia true para el efecto de que se cree Otorgamiento para todos los productos
                    bool CargarHistoria = true;
                    //bool CargarHistoria = true;

                    foreach (DatosGeneralPersona Registro in EntidadCreditosPersona)
                    {
                        decimal CedulaPersona = Convert.ToDecimal(Registro.IdentificacionPersona);

                        string Numerosolicitud = null;

                        try
                        {
                            ArrayList ArrayCentral = new ArrayList();
                            //consultacentrales 1: SI 2:NO
                            //List<ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociadoServicio(CedulaPersona, Numerosolicitud, 0, 0, CargarHistoria);
                            List <ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociado(CedulaPersona, Numerosolicitud, 1, ArrayCentral, CargarHistoria, false, false);

                            if (EntidadModeloCalificacion != null && EntidadModeloCalificacion.Count > 0)
                            {
                                CapacidadPago(CedulaPersona, Numerosolicitud, EntidadModeloCalificacion.FirstOrDefault(), EntidadModeloCalificacion.FirstOrDefault().EgresosExternos);
                            }
                        }
                        catch (Exception ex)
                        {
                            string exe = ex.Message.ToString();
                        }
                    }
                }

                //cuando es seguimiento
                else
                {
                    if (Estado == "1")
                    {
                        OpaServicioFachada FachadaServicio = new OpaServicioFachada();

                        List <Sarc_ViewCreditosParaSeguimiento> EntidadCreditosPersona = new List <Sarc_ViewCreditosParaSeguimiento>();

                        EntidadCreditosPersona = new OpaSarcFachada().BuscarListaCreditosParaSeguimiento();

                        //List<ResultadosScore> EntidadCreditosPersona = new List<ResultadosScore>();

                        //List<Opa.Sarc.Entidades.ResultadosScore> EntidadResultado = new Opa.Sarc.Negocio.Logica.ResultadosScoreBL().BuscarListarResultadosScore();



                        //EntidadCreditosPersona = (from c in EntidadResultado
                        //                          where c.ScoreInicial = true
                        //                          select c).ToList();


                        bool CargarHistoria = false;
                        //bool CargarHistoria = true;
                        OpaTransaccionalFachada FachadaTransaccional = new OpaTransaccionalFachada();
                        List <ResultadosScore>  List = new List <ResultadosScore>();
                        //new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF2().CargarDatos();
                        foreach (Sarc_ViewCreditosParaSeguimiento Registro in EntidadCreditosPersona)
                        {
                            string  NroSolicitud  = Registro.NroSolicitudOtorgamiento == 0 ? "" : Registro.NroSolicitudOtorgamiento.ToString();
                            decimal CedulaPersona = Convert.ToDecimal(Registro.IdentificacionPersona);
                            try
                            {
                                ArrayList ArrayCentral = new ArrayList();
                                List <ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociado(CedulaPersona, NroSolicitud, 1, ArrayCentral, CargarHistoria, false, false);

                                if (EntidadModeloCalificacion != null && EntidadModeloCalificacion.Count > 0)
                                {
                                    CapacidadPago(CedulaPersona, EntidadModeloCalificacion.FirstOrDefault().NroSolicitud, EntidadModeloCalificacion.FirstOrDefault(), EntidadModeloCalificacion.FirstOrDefault().EgresosExternos);
                                }

                                decimal NroSol = Convert.ToDecimal(EntidadModeloCalificacion.FirstOrDefault().NroSolicitud);
                                bool    existe = new OpaTransaccionalFachada().BuscarLiquidaCreditosPersonaPorSolicitud(NroSol);
                                if (!existe)
                                {
                                    CreditosPersona CreditoPersona = new OpaSarcFachada().BuscarUnCreditosPersonaPorPagare(Convert.ToInt32(Registro.NroPagare));
                                    string          numeroPagare   = CreditoPersona.NumeroPagare.ToString();
                                    decimal         nroSolicitud   = FachadaTransaccional.BuscarLiquidaCreditosPagare(numeroPagare);

                                    FachadaTransaccional.GuardarLiquidaCreditosPersona(new LiquidacreditosPersonas()
                                    {
                                        CedulaPersona               = Convert.ToInt64(CedulaPersona),
                                        NumeroSolicitud             = nroSolicitud,
                                        Plazo                       = CreditoPersona.Plazo.ToString(),
                                        coddestino                  = CreditoPersona.Coddestino,
                                        NumeroSolicitudOtorgamiento = Convert.ToDecimal(EntidadModeloCalificacion.FirstOrDefault().NroSolicitud),
                                        Valor                       = CreditoPersona.CapitalInicial,
                                        Fecha                       = CreditoPersona.FechaCargoPrestamo,
                                        Codlinea                    = CreditoPersona.Codlinea,
                                        Obligatorio                 = false,
                                        Reestructuracion            = false,
                                        CreditosReestructurados     = "",
                                        ExigeCodeudor               = false,
                                        Codeudores                  = "",
                                        IncluyeExtras               = false,
                                        CuotasExtras                = "",
                                        IncluyeCostos               = false,
                                        Tasa = CreditoPersona.TasaColocacion,
                                        CostosAdicionales    = "",
                                        EsOtorgamientoMasivo = true
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                string exe = ex.Message.ToString();
                            }
                        }

                        //List<ResultadosScore> Lista = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF2().ListarTodosResultadosScore();
                        //List<ResultadoScorePartial> ListaAux = Lista.Select((x, index) => new ResultadoScorePartial
                        //{
                        //    IdResultadosScore = x.IdResultadosScore,
                        //    CedulaPersona = (long)x.CedulaPersona,
                        //    NombrePersona = x.NombrePersona,
                        //    NroSolicitud = x.NroSolicitud,
                        //    FechaScore = (DateTime)x.FechaScore,
                        //    PesoCuantitativo = (short)x.PesoCuantitativo,
                        //    PesoCualitativo = (short)x.PesoCualitativo,
                        //    Calificacion = x.Calificacion,
                        //    ResultadosVariables = x.ResultadosVariables,
                        //    ResultadosCapacidad = x.ResultadosCapacidad,
                        //    Limites = x.Limites,
                        //    ScoreInicial = x.ScoreInicial,
                        //    IdConsultasCentral = (Guid)x.IdConsultasCentral,
                        //    IdSegmento = (Guid)x.IdSegmento,
                        //    IdentificadorOrdenador = index + 1
                        //}).ToList();
                        //InsertarRegistrosBulkInsert(ListaAux, List);
                    }
                }
            }
            catch (Exception ex)
            {
                DatosUsuarioAuditoria d = new DatosUsuarioAuditoria()
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                };

                // Loggin error
                Guid idlog = OpaExceptionHandling.Handle(ex, d);
                this.StatusTask = Status.Error;
                ValorEnum       = (short)StatusTask;
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                return;
            }


            this.StatusTask = Status.Ok;
            ValorEnum       = (short)StatusTask;
            Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
            Task.Factory.StartNew(() => CalificacionCartera());
        }
Beispiel #2
0
        //public async void CargarPerdidaEsperadaAsync()
        //{
        //    OpaServicioFachada Fa = new OpaServicioFachada();
        //    this.StatusTask = Status.Running;
        //    short ValorEnum = 0;
        //    string nombre = "PerdidaEsperada";
        //    try
        //    {
        //        Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");

        //        // Guardo el log funcional de ejecucion de este proceso
        //        red = new DatosRedFacade().ObtenerDatosDeRed();
        //        new OpaAuditoriaFachada().GuardarLogFuncionalWFAsync("Servicio windows para carga de informacion <PerdidaEsperada>",
        //                                                             "Not Gui required",
        //                                                             "<root><NoData>Not data is required to execution</NoData></root>",
        //                                                             new DatosUsuarioAuditoria
        //                                                             {
        //                                                                 NombreUsuario = "User is not required",
        //                                                                 CodigoUsuario = "",
        //                                                                 DireccionIp = red.Ip,

        //                                                             });


        //        OpaServicioFachada FachadaServicio = new OpaServicioFachada();

        //        List<Opa.Sarc.Entidades.ResultadosScore> EntidadResultado = new Opa.Sarc.Negocio.Logica.ResultadosScoreBL().BuscarListarResultadosScore();

        //        List<CreditosPersona> EntidadCreditosPersona = new Opa.Sarc.Negocio.Logica.CreditosPersonaBL().BuscarListaCreditosPersona();

        //        EntidadCreditosPersona = (from c in EntidadCreditosPersona
        //                                  join d in EntidadResultado on c.IdentificacionPersona equals d.CedulaPersona
        //                                  where d.ScoreInicial = true
        //                                  select c).ToList();



        //        XDocument xdoc = new XDocument(new XElement("Credito",
        //        from pag in EntidadCreditosPersona
        //        select new XElement("NumeroPagare", pag.NumeroPagare)
        //                                      ));

        //        Opa.Sarc.Negocio.Fachada.OpaSarcFachada fachadasarc = new Opa.Sarc.Negocio.Fachada.OpaSarcFachada();
        //        List<PerdidaEsperadaPersona> entidadperdidaesperado = fachadasarc.DevolverPerdidaEsperadaPorXml(xdoc);

        //    }
        //    catch (Exception ex)
        //    {
        //        DatosUsuarioAuditoria d = new DatosUsuarioAuditoria()
        //        {
        //            NombreUsuario = "User is not required",
        //            CodigoUsuario = "",
        //            DireccionIp = red.Ip,
        //        };

        //        // Loggin error
        //        Guid idlog = OpaExceptionHandling.Handle(ex, d);
        //        this.StatusTask = Status.Error;
        //        ValorEnum = (short)StatusTask;
        //        Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
        //        return;
        //    }


        //    this.StatusTask = Status.Ok;
        //    ValorEnum = (short)StatusTask;
        //    Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
        //}



        #endregion


        #region nuevoSeguimiento

        public async void CargarScoreSeguimientoAsyncNuevoSeguimiento()
        {
            OpaServicioFachada Fa = new OpaServicioFachada();

            this.StatusTask = Status.Running;
            short  ValorEnum = 0;
            string nombre    = "ResultadosScore";



            try
            {
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                // Guardo el log funcional de ejecucion de este proceso
                red = new DatosRedFacade().ObtenerDatosDeRed();
                new OpaAuditoriaFachada().GuardarLogFuncionalWFAsync("Servicio windows para carga de informacion <ResultadosScore>",
                                                                     "Not Gui required",
                                                                     "<root><NoData>Not data is required to execution</NoData></root>",
                                                                     new DatosUsuarioAuditoria
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                });


                string Estado = ConfigurationManager.AppSettings["Estado"];

                OpaServicioFachada FachadaServicio = new OpaServicioFachada();

                //List<Sarc_ViewCreditosParaSeguimiento> EntidadCreditosPersona = new List<Sarc_ViewCreditosParaSeguimiento>();

                //EntidadCreditosPersona = new OpaSarcFachada().BuscarListaCreditosParaSeguimiento();

                //EntidadCreditosPersona = EntidadCreditosPersona.Skip(1335).ToList();


                List <ResultadosScore> EntidadCreditosPersona = new List <ResultadosScore>();

                List <Opa.Sarc.Entidades.ResultadosScore> EntidadResultado = new Opa.Sarc.Negocio.Logica.ResultadosScoreBL().BuscarListarResultadosScore();


                EntidadCreditosPersona = (from c in EntidadResultado
                                          where c.ScoreInicial = true
                                                                 select c).Distinct().ToList();



                bool CargarHistoria = false;
                //bool CargarHistoria = true;
                OpaTransaccionalFachada FachadaTransaccional = new OpaTransaccionalFachada();
                List <ResultadosScore>  List = new List <ResultadosScore>();
                //new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF2().CargarDatos();


                //foreach (Sarc_ViewCreditosParaSeguimiento Registro in EntidadCreditosPersona)
                //{
                //    string NroSolicitud = Registro.NroSolicitudOtorgamiento == 0 ? "" : Registro.NroSolicitudOtorgamiento.ToString();
                //    decimal CedulaPersona = Convert.ToDecimal(Registro.IdentificacionPersona);
                //    try
                //    {
                //        ArrayList ArrayCentral = new ArrayList();
                //        List<ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociado(CedulaPersona, NroSolicitud, 1, ArrayCentral, CargarHistoria, false, false);

                //        if (EntidadModeloCalificacion != null && EntidadModeloCalificacion.Count > 0)
                //        {
                //            CapacidadPago(CedulaPersona, EntidadModeloCalificacion.FirstOrDefault().NroSolicitud, EntidadModeloCalificacion.FirstOrDefault(), EntidadModeloCalificacion.FirstOrDefault().EgresosExternos);
                //        }

                //        decimal NroSol = Convert.ToDecimal(EntidadModeloCalificacion.FirstOrDefault().NroSolicitud);
                //        bool existe = new OpaTransaccionalFachada().BuscarLiquidaCreditosPersonaPorSolicitud(NroSol);
                //        if (!existe)
                //        {
                //            CreditosPersona CreditoPersona = new OpaSarcFachada().BuscarUnCreditosPersonaPorPagare(Convert.ToInt32(Registro.NroPagare));
                //            string numeroPagare = CreditoPersona.NumeroPagare.ToString();
                //            decimal nroSolicitud = FachadaTransaccional.BuscarLiquidaCreditosPagare(numeroPagare);

                //            FachadaTransaccional.GuardarLiquidaCreditosPersona(new LiquidacreditosPersonas()
                //            {
                //                CedulaPersona = Convert.ToInt64(CedulaPersona),
                //                NumeroSolicitud = nroSolicitud,
                //                Plazo = CreditoPersona.Plazo.ToString(),
                //                coddestino = CreditoPersona.Coddestino,
                //                NumeroSolicitudOtorgamiento = Convert.ToDecimal(EntidadModeloCalificacion.FirstOrDefault().NroSolicitud),
                //                Valor = CreditoPersona.CapitalInicial,
                //                Fecha = CreditoPersona.FechaCargoPrestamo,
                //                Codlinea = CreditoPersona.Codlinea,
                //                Obligatorio = false,
                //                Reestructuracion = false,
                //                CreditosReestructurados = "",
                //                ExigeCodeudor = false,
                //                Codeudores = "",
                //                IncluyeExtras = false,
                //                CuotasExtras = "",
                //                IncluyeCostos = false,
                //                Tasa = CreditoPersona.TasaColocacion,
                //                CostosAdicionales = "",
                //                EsOtorgamientoMasivo = true

                //            });
                //        }
                //    }
                //    catch (Exception ex)
                //    {
                //        string exe = ex.Message.ToString();

                //    }
                //}
            }
            catch (Exception ex)
            {
                DatosUsuarioAuditoria d = new DatosUsuarioAuditoria()
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                };

                // Loggin error
                Guid idlog = OpaExceptionHandling.Handle(ex, d);
                this.StatusTask = Status.Error;
                ValorEnum       = (short)StatusTask;
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                return;
            }

            this.StatusTask = Status.Ok;
            ValorEnum       = (short)StatusTask;
            Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
            Task.Factory.StartNew(() => CalificacionCartera());
        }
Beispiel #3
0
        public async void CalificacionCartera()
        {
            OpaServicioFachada Fa = new OpaServicioFachada();

            this.StatusTask = Status.Running;
            short  ValorEnum = 0;
            string nombre    = "CalificacionCartera";

            try
            {
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");

                // Guardo el log funcional de ejecucion de este proceso
                red = new DatosRedFacade().ObtenerDatosDeRed();
                new OpaAuditoriaFachada().GuardarLogFuncionalWFAsync("Servicio windows para carga de informacion <CalificacionCartera>",
                                                                     "Not Gui required",
                                                                     "<root><NoData>Not data is required to execution</NoData></root>",
                                                                     new DatosUsuarioAuditoria
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                });



                List <SarcCreditosLiquidados_Result> CreditosLiquidados = new Opa.Transaccional.Negocio.Fachada.OpaTransaccionalFachada().BuscarCreditosLiquidados();


                OpaSarcFachada Fc = new OpaSarcFachada();
                List <SeguimientoCalificacionCartera> ListaSegumiento          = new List <SeguimientoCalificacionCartera>();
                SeguimientoCalificacionCartera        DatosSEguimientoAsociado = new SeguimientoCalificacionCartera();
                string calificacion = string.Empty;

                if (CreditosLiquidados.Count() > 0)
                {
                    int NroComite = 0;
                    ConsecutivosComiteCartera entidadconsecutivo = Fc.buscarconsecutivoComite();
                    if (entidadconsecutivo != null)
                    {
                        NroComite = Convert.ToInt32(entidadconsecutivo.NroComite) + 1;
                        ConsecutivosComiteCartera entidadconsecutivoactualizar = new ConsecutivosComiteCartera
                        {
                            IdConsecutivosComiteCartera = entidadconsecutivo.IdConsecutivosComiteCartera,
                            NroComite = NroComite
                        };
                        Fc.actualizarconsecutivoComite(entidadconsecutivoactualizar);
                    }
                    else
                    {
                        NroComite += 1;
                        Fc.guardarconsecutivoComite();
                    }

                    foreach (SarcCreditosLiquidados_Result item in CreditosLiquidados)
                    {
                        List <ResultadosScore> Scores = Fc.ListaTop2ResultadoScoreAsociado(item.IdentificacionPersona);
                        if (Scores.Count == 2)
                        {
                            DatosSEguimientoAsociado = new Opa.Sarc.Negocio.FlujoTrabajo.GenerarSeguimientoWF().DevolverCalificacionPropuesta(Scores[1], Scores[0], item.IdentificacionPersona.ToString(), NroComite);
                        }
                        else
                        {
                            DatosSEguimientoAsociado = new Opa.Sarc.Negocio.FlujoTrabajo.GenerarSeguimientoWF().DevolverCalificacionPropuesta(null, Scores[0], item.IdentificacionPersona.ToString(), NroComite);
                        }

                        ListaSegumiento.Add(DatosSEguimientoAsociado);
                    }

                    XElement ModeloCalificacionXml = new XElement("root");
                    foreach (SeguimientoCalificacionCartera Fila in ListaSegumiento)
                    {
                        ModeloCalificacionXml.Add(
                            new XElement("SeguimientoCartera",
                                         new XElement("IdSeguimientoCalificacionCartera", Fila.IdSeguimientoCalificacionCartera),
                                         new XElement("FechaSeguimiento", Fila.FechaSeguimiento),
                                         new XElement("IdentificacionPersona", Fila.IdentificacionPersona),
                                         new XElement("NroComite", Fila.NroComite),
                                         new XElement("CalificacionScoringInicial", Fila.CalificacionScoringInicial),
                                         new XElement("CalificacionScoringFinal", Fila.CalificacionScoringFinal),
                                         new XElement("CuberturaGarantia", Fila.CuberturaGarantia),
                                         new XElement("SolvenciaInicial", Fila.SolvenciaInicial),
                                         new XElement("SolvenciaFinal", Fila.SolvenciaFinal),
                                         new XElement("PorcentajeSolvencia", Fila.PorcentajeSolvencia),
                                         new XElement("CapacidadPagoInicial", Fila.CapacidadPagoInicial),
                                         new XElement("CapacidadPagoFinal", Fila.CapacidadPagoFinal),
                                         new XElement("PorcentajeCapacidadPago", Fila.PorcentajeCapacidadPago),
                                         new XElement("NumeroReestructuraciones", Fila.NumeroReestructuraciones),
                                         new XElement("NumeroNovaciones", Fila.NumeroNovaciones),
                                         new XElement("SaldoTotalDeuda", Fila.SaldoTotalDeuda),
                                         new XElement("CalificacionActual", Fila.CalificacionActual),
                                         //new XElement("ProvisionActual", Fila.ProvisionActual),
                                         new XElement("CalificacionPropuesta", Fila.CalificacionPropuesta),
                                         //new XElement("ProvisionPropuesta", Fila.ProvisionPropuesta),
                                         new XElement("CalificacionDefinitiva", Fila.CalificacionDefinitiva),
                                         //new XElement("ProvisionDefinitiva", Fila.ProvisionDefinitiva),
                                         new XElement("FechaCalificacionDefinitiva", Fila.FechaCalificacionDefinitiva),
                                         new XElement("Observaciones", Fila.Observaciones)
                                         ));
                    }
                    ;

                    string xmlEnviar = ModeloCalificacionXml.ToString();

                    Fc.InsertarRegistrosSeguimientoCalificacionCartera(xmlEnviar);
                }
            }
            catch (Exception ex)
            {
                DatosUsuarioAuditoria d = new DatosUsuarioAuditoria()
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                };

                // Loggin error
                Guid idlog = OpaExceptionHandling.Handle(ex, d);
                this.StatusTask = Status.Error;
                ValorEnum       = (short)StatusTask;
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                return;
            }


            this.StatusTask = Status.Ok;
            ValorEnum       = (short)StatusTask;
            Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
        }