예제 #1
0
 private void ConfirmarComoNoProcesado(RuvConsultaNoValorados nv, DatosDetallados hecho)
 {
     if (hecho != null)
     {
         noprocesados.RemoveAll(q => q.Id_Persona == nv.Id_Persona);
     }
 }
예제 #2
0
        private bool ValidarHechoCompleto(RuvConsultaNoValorados nv, DatosDetallados hecho)
        {
            // se deben cumplir los dos
            if (!ValidarHechoDesplazamentForzado(hecho) || !ValidarEstadoIncluido(hecho))
            {
                return(false);
            }

            if (hecho.FUENTE == "RUV")
            {
                if (!ValidarHechoPorNumeroDeclaracion(hecho, nv) || !ValidarHechoPorFechaValoracion(hecho, nv))
                {
                    return(false);
                }
            }
            else if (hecho.FUENTE == "SIPOD")
            {
                if (!ValidarHechoPorNumeroDeclaracion(hecho, nv) || !ValidarHechoPorFechaDeclaracion(hecho, nv))
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            return(true);
        }
예제 #3
0
        private void GuardarSiSeEncontroHecho(RuvConsultaNoValorados nv, List <DatosBasicos> basicos,
                                              List <DatosDetallados> hechos,
                                              DatosDetallados hecho)
        {
            bool insertado = false;

            try
            {
                if (hecho != null)
                {
                    Declaracion_UnidadesInsertar registro = new Declaracion_UnidadesInsertar()
                    {
                        Fuente          = "WS Vivanto {0}".Fmt(hecho.FUENTE),
                        Id_EstadoUnidad = parProcesamiento.Obtener_Id_EstadoUnidad(hecho.ESTADO),
                        Id_Unidad       = parProcesamiento.Id_Unidad,
                        Fecha_Inclusion = hecho.F_VALORACION.Value,
                        Id_Declaracion  = nv.Id_Declaracion,
                    };
                    ird.Declaracion_UnidadesInsertar(registro);
                    insertado = true;
                }
            }
            catch (Exception ex)
            {
                AgregarNoProcesados(nv);
                IgnorarOLanzarExcepcion(ex);
            }
            finally
            {
                Log.RegistrarProcesado(vivanto.DirInfoLog, nv, basicos, hechos, hecho, insertado, parProcesamiento);
            }
        }
예제 #4
0
        private void ProcesarDatosBasicos(RuvConsultaNoValorados nv, List <DatosBasicos> datosbasicos)
        {
            var hl = new List <DatosDetallados> ();

            DatosDetallados hecho = null;

            foreach (var dato in datosbasicos)
            {
                if (!(dato.FUENTE == "RUV" || dato.FUENTE == "SIPOD"))
                {
                    continue;
                }
                List <DatosDetallados> hechos;
                if (!ConsultarHechosEnVivanto(dato, out hechos))
                {
                    AgregarNoProcesados(nv);
                    continue;
                }
                hl.AddRange(hechos);
                if (ProcesarHechos(nv, hechos, out hecho))
                {
                    // uno de los hechos cumple los requisitos
                    // no es necesario revisar mas los datos basicos de la declaracion
                    break;
                }
            }
            GuardarSiSeEncontroHecho(nv, datosbasicos, hl, hecho);
            ConfirmarComoNoProcesado(nv, hecho);
        }
예제 #5
0
 private bool ProcesarHechos(RuvConsultaNoValorados nv, List <DatosDetallados> hechos, out DatosDetallados hecho)
 {
     hecho = null;
     foreach (var h in hechos)
     {
         if (ValidarHechoCompleto(nv, h))
         {
             hecho = h;
             break; // hecho cumple requisitos no se revisan los otros
         }
     }
     return(hecho != null);
 }
예제 #6
0
        private List <DatosBasicos> ConsultarEnVivanto(RuvConsultaNoValorados nv)
        {
            List <DatosBasicos> db = new List <DatosBasicos>();

            try {
                db = vivanto.ConsultarDatosBasicos(nv.Identificacion);
            }
            catch (Exception ex)
            {
                AgregarNoProcesados(nv);
                IgnorarOLanzarExcepcion(ex);
            }

            return(db);
        }
예제 #7
0
        public static bool NumeroDeclaracion(RuvConsultaNoValorados nv, DatosDetallados hecho)
        {
            var irdFUD = Regex.Replace(nv.Numero_Declaracion ?? "", "[^0-9]", "");
            var fud    = Regex.Replace(hecho.NUM_FUD_NUM_CASO ?? "", "[^0-9]", "");

            long ird = 0;

            long.TryParse(irdFUD, out ird);
            long vivanto = 0;

            long.TryParse(fud, out vivanto);

            Console.WriteLine("irdFud {0}; fud {1};  ird {2}  vivanto {3}; evaluacion {4}",
                              irdFUD, fud, ird, vivanto,
                              ird != 0 && vivanto != 0 && ird == vivanto);

            return(ird != 0 && vivanto != 0 && ird == vivanto);
        }
예제 #8
0
        static bool BuscarHecho(RuvConsultaNoValorados nv, List <DatosDetallados> hechos,
                                ParametrosProcesamiento parProcesamiento,
                                out DatosDetallados hecho)
        {
            hecho = null;

            foreach (var h in hechos)
            {
                if (!FnVal.ValidarHechoDesplazamentForzado(h, parProcesamiento))
                {
                    continue;
                }
                if (FnVal.NumeroDeclaracion(nv, h) ||
                    FnVal.ValidarHechoPorFechaDeclaracion(h, nv) ||
                    FnVal.ValidarHechoPorFechaValoracion(h, nv))
                {
                    hecho = h;
                    break;
                }
            }

            return(hecho != null);
        }
예제 #9
0
 private void AgregarNoProcesados(RuvConsultaNoValorados nv)
 {
     noprocesados.AddIfNotExists(nv);
 }
예제 #10
0
 private bool ValidarHechoPorNumeroDeclaracion(DatosDetallados hecho, RuvConsultaNoValorados nv)
 {
     return(FnVal.NumeroDeclaracion(nv, hecho));
 }
예제 #11
0
 private bool ValidarHechoPorFechaValoracion(DatosDetallados hecho, RuvConsultaNoValorados nv)
 {
     return(FnVal.ValidarHechoPorFechaValoracion(hecho, nv));
 }
예제 #12
0
        public static void RegistrarProcesado(DirectoryInfo dir, RuvConsultaNoValorados nv, List <DatosBasicos> basicos,
                                              List <DatosDetallados> hechos,
                                              DatosDetallados hecho, bool insertado, ParametrosProcesamiento parProcesamiento)
        {
            // valorados
            // actualizado, id_declaracion, regional, TI, documento, declaracion, fecha_declaracion,  fecha_radicacion, fecha_desplazamiento, fecha_atencion,
            // RUV_ESTADO, RUV_FECHA_VALORACION, RUV_FECHA_DECLARACION, RUV_FECHA_SINIESTRO, OK_FechaDeclaracion, OK_numero_declaracion
            // no valorados
            //id_declaracion, regional, TI, documento, declaracion, fecha_declaracion,  fecha_radicacion, fecha_desplazamiento, fecha_atencion

            string fn;
            string encabezado;
            var    linea = "{0};{1};{2};{3};{4};{5};{6};{7};{8}".Fmt(nv.Id_Declaracion,
                                                                     parProcesamiento.ObtenerRegional(nv.Id_Regional),
                                                                     nv.Id_Tipo_Identificacion,
                                                                     nv.Identificacion,
                                                                     nv.Numero_Declaracion,
                                                                     nv.Fecha_Declaracion.CsvFecha(),
                                                                     nv.Fecha_Radicacion.CsvFecha(),
                                                                     nv.Fecha_Desplazamiento.CsvFecha(),
                                                                     nv.Fecha_Valoracion.CsvFecha());

            if (hecho == null)
            {
                fn         = "No_Valorados.txt";
                encabezado = NO_VALORADOS_ENCABEZADO;
                linea      = "{0};{1}".Fmt(linea, (basicos != null && basicos.Count > 0) ? "SI" : "NO");
                DatosDetallados h;
                if (BuscarHecho(nv, hechos, parProcesamiento, out h))
                {
                    linea = "{0};{1};{2};{3};{4};{5};{6};{7}".Fmt(
                        linea,
                        h.ESTADO,
                        h.F_VALORACION.CsvFecha(),
                        h.F_DECLARACION.CsvFecha(),
                        h.FECHA_SINIESTRO.CsvFecha(),
                        h.NUM_FUD_NUM_CASO,
                        h.F_DECLARACION.Date == nv.Fecha_Declaracion.Date ? "SI" : "NO",
                        FnVal.NumeroDeclaracion(nv, h)?"SI" : "NO"
                        );
                }
            }
            else
            {
                fn         = "Valorados.txt";
                encabezado = VALORADOS_ENCABEZADO;
                linea      = "{0};{1};{2};{3};{4};{5};{6};{7};{8}".Fmt(insertado ? "SI" : "NO",
                                                                       linea,
                                                                       hecho.ESTADO,
                                                                       hecho.F_VALORACION.CsvFecha(),
                                                                       hecho.F_DECLARACION.CsvFecha(),
                                                                       hecho.FECHA_SINIESTRO.CsvFecha(),
                                                                       hecho.NUM_FUD_NUM_CASO,
                                                                       hecho.F_DECLARACION.Date == nv.Fecha_Declaracion.Date ? "SI" : "NO",
                                                                       FnVal.NumeroDeclaracion(nv, hecho)?"SI" : "NO"
                                                                       );
            }
            try {
                AsegurarQueExisteEncabezado(dir, fn, encabezado);
                File.AppendAllText(NombreArhivo(dir, fn), linea + Environment.NewLine);
            }
            catch (Exception)
            {
            }
        }
예제 #13
0
 public static bool ValidarHechoPorFechaValoracion(DatosDetallados hecho, RuvConsultaNoValorados nv)
 {
     return((hecho.F_VALORACION.HasValue && nv.Fecha_Valoracion.HasValue)?
            hecho.F_VALORACION.Value.Date > nv.Fecha_Valoracion.Value.Date: false);
 }
예제 #14
0
 public static bool ValidarHechoPorFechaDeclaracion(DatosDetallados hecho, RuvConsultaNoValorados nv)
 {
     return(nv.Fecha_Declaracion.Date == hecho.F_DECLARACION.Date);
 }