//using System; //using System.Linq; //using System.Collections.Generic; //using Microsoft.EntityFrameworkCore; //using bdAsegasa; //using bdAsegasa.db; //namespace Servicio_Gestion_Asegasa.Procesos //{ // public class ProcesosSiniestros // { // public static void IncorporaSiniestrosEIACV6() // { // try // { // using var bd = gestionasegasaEntities.NuevoContexto(); // var ltpa = bd.enumeraciones.Where(x => x.idGrupoEnumeracionNavigation.Grupo == "TIPP").ToList(); // int tipo = (int)ficheroscompanias.TipoFicheroCompania.SINIESTROS_EIAC; // var ficspen = bd.ficheroscompanias // .Where(x => x.FechaProcesado == null && // x.FechaError == null && // x.Tipo == tipo && // x.Version == "6.0") // .OrderBy(x => x.idFichero) // .ToList(); // foreach (var f in ficspen) // { // try // { // // Asumimos ProcesosEIAC_V6 existe y Utilizamos una librería genérica de serialización // dynamic DatosEIAC = tsUtilidades.Utilidades.Deserializa(f.Fichero, Type.GetType("ProcesosEIAC_V6.ProcesosEIAC") ?? typeof(object)); // if (DatosEIAC?.Objetos?.Items != null) // { // IEnumerable items = DatosEIAC.Objetos.Items; // var lSins = items.Where(x => x != null && x.GetType().Name == "tipo_siniestro"); // foreach (var s in lSins) // { // List sins = null; // string idSiniestroEntidad = s.DatosSiniestro.IdSiniestroEntidad; // var seiac = bd.siniestros_eiac.FirstOrDefault(x => x.idSiniestroEntidad == idSiniestroEntidad); // if (seiac == null) // { // seiac = new siniestros_eiac // { // idSiniestroEntidad = idSiniestroEntidad, // idFicheroCompania = f.idFichero, // idCompania = f.idCompania // }; // bd.siniestros_eiac.Add(seiac); // } // seiac.NumeroPoliza = s.DatosPoliza.IdPoliza; // var pol = bd.polizassg // .Where(x => x.NumeroPoliza == seiac.NumeroPoliza && x.idCompania == seiac.idCompania) // .OrderByDescending(x => x.NumeroSuplemento) // .FirstOrDefault(); // if (pol != null) // seiac.idPoliza = pol.idPoliza; // seiac.NumeroSuplemento = s.DatosPoliza.NumeroSuplemento; // seiac.FechaDeclaracion = s.DatosSiniestro.FechaDeclaracion; // seiac.FechaOcurrencia = s.DatosSiniestro.FechaOcurrencia; // seiac.PosicionSiniestro = (int)bdAsegasa.db.siniestros_eiac.ObtienePosicionSiniestroV6((string)s.DatosSiniestro.PosicionSiniestro); // seiac.DescripcionSiniestro = tsUtilidades.Extensiones.StringExtensions.Acortar((string)s.DatosSiniestro.DescripcionSiniestro, 2048); // seiac.TipologiaSiniestro = s.DatosSiniestro.TipologiaSiniestro; // seiac.ImporteIndemnizacion = s.DatosSiniestro.ImporteIndemnizacion; // seiac.ImporteReserva = s.DatosSiniestro.ImporteReserva; // if (s.DatosSiniestro.LugarSiniestro != null) // { // if (seiac.idLugarSiniestroNavigation == null) // { // seiac.idLugarSiniestroNavigation = new direcciones(); // } // seiac.idLugarSiniestroNavigation.Direccion = s.DatosSiniestro.LugarSiniestro.ClaseVia + " " + s.DatosSiniestro.LugarSiniestro.NombreVia + " " + s.DatosSiniestro.LugarSiniestro.OtrosDatosVia; // seiac.idLugarSiniestroNavigation.CodigoPostal = s.DatosSiniestro.LugarSiniestro.CodigoPostal; // string codmun = bd.ObtieneCodigoMunicipioMasCoincidente(seiac.idLugarSiniestroNavigation.CodigoPostal, (string)s.DatosSiniestro.LugarSiniestro.Poblacion, true); // if (string.IsNullOrEmpty(codmun)) // { // seiac.idLugarSiniestroNavigation.Direccion += " " + s.DatosSiniestro.LugarSiniestro.Poblacion; // } // else // { // seiac.idLugarSiniestroNavigation.CodigoMunicipio = codmun; // } // seiac.idLugarSiniestroNavigation.Direccion = tsUtilidades.Extensiones.StringExtensions.Acortar(seiac.idLugarSiniestroNavigation.Direccion, 200); // } // if (s.DatosSiniestro.SituacionesSiniestro != null) // { // var yaincorporados = new List(); // foreach (var sit in s.DatosSiniestro.SituacionesSiniestro) // { // int numeroOrden = sit.NumeroOrden; // if (numeroOrden == 0) numeroOrden = sit.GetHashCode(); // if (!yaincorporados.Contains(numeroOrden)) // { // var est = seiac.estadossiniestros_eiac.FirstOrDefault(x => x.NumeroOrden == numeroOrden); // if (est == null) // { // est = new estadossiniestros_eiac { NumeroOrden = numeroOrden }; // seiac.estadossiniestros_eiac.Add(est); // } // est.SituacionSiniestro = bdAsegasa.estadossiniestros_eiac.ObtieneSituacionSiniestroV6((string)sit.SituacionSiniestro); // est.DescripcionSituacion = tsUtilidades.Extensiones.StringExtensions.Acortar((string)sit.DescripcionSituacion, 45); // yaincorporados.Add(numeroOrden); // } // } // } // if (s.DatosSiniestro.PagosSiniestro != null) // { // var yaincorporados = new List(); // foreach (var pag in s.DatosSiniestro.PagosSiniestro) // { // int numeroOrden = pag.NumeroOrden; // if (numeroOrden == 0) numeroOrden = pag.GetHashCode(); // if (!yaincorporados.Contains(numeroOrden)) // { // var ps = seiac.pagossiniestros_eiac.FirstOrDefault(x => x.NumeroOrden == numeroOrden); // if (ps == null) // { // ps = new pagossiniestros_eiac { NumeroOrden = numeroOrden }; // seiac.pagossiniestros_eiac.Add(ps); // } // ps.FechaPago = pag.FechaPago; // ps.FechaLiquidacion = pag.FechaLiquidacion; // ps.ImportePago = pag.ImportePago; // ps.DescripcionPago = tsUtilidades.Extensiones.StringExtensions.Acortar((string)pag.DescripcionPago, 255); // ps.idTipoPago = bdAsegasa.siniestros_eiac.ObtenerTipoPagoV6((string)pag.FormaPago, ltpa); // if (pag.FormaPago != null && pag.FormaPago.DatosCuentaCorriente != null) // { // ps.IBAN = pag.FormaPago.DatosCuentaCorriente.IBAN; // } // yaincorporados.Add(numeroOrden); // } // } // } // if (s.DatosSiniestro.AccionesSiniestro != null) // { // var yaincorporados = new List(); // foreach (var accs in s.DatosSiniestro.AccionesSiniestro) // { // int numeroOrden = accs.NumeroOrden; // if (numeroOrden == 0) numeroOrden = accs.GetHashCode(); // if (!yaincorporados.Contains(numeroOrden)) // { // var acs = seiac.accionessiniestros_eiac.FirstOrDefault(x => x.NumeroOrden == numeroOrden); // if (acs == null) // { // acs = new accionessiniestros_eiac { NumeroOrden = numeroOrden }; // seiac.accionessiniestros_eiac.Add(acs); // } // acs.AccionSiniestro = bdAsegasa.accionessiniestros_eiac.ObtieneAccionSiniestroV6((string)accs.AccionSiniestro); // acs.FechaAccion = accs.FechaAccion; // acs.DescripcionAccion = accs.DescripcionAccion; // acs.SituacionAccion = bdAsegasa.accionessiniestros_eiac.ObtieneSituacionAccionV6((string)accs.SituacionAccion); // yaincorporados.Add(numeroOrden); // } // } // } // if (s.DatosSiniestro.Expedientes != null) // { // var yaincorporados = new List(); // foreach (var exp in s.DatosSiniestro.Expedientes) // { // string numeroExpediente = exp.NumeroExpediente; // if (string.IsNullOrEmpty(numeroExpediente)) numeroExpediente = exp.GetHashCode().ToString(); // if (!yaincorporados.Contains(numeroExpediente)) // { // var ep = seiac.expedientessiniestros_eiac.FirstOrDefault(x => x.NumeroExpediente == numeroExpediente); // if (ep == null) // { // ep = new expedientessiniestros_eiac { NumeroExpediente = numeroExpediente }; // seiac.expedientessiniestros_eiac.Add(ep); // } // ep.EstadoExpediente = bdAsegasa.expedientessiniestros_eiac.ObtieneEstadoExpedienteV6((string)exp.EstadoExpediente); // ep.ImporteReserva = exp.ImporteReserva; // ep.TotalPagos = exp.TotalPagos; // ep.TotalRecobros = exp.TotalRecobros; // ep.FechaInicio = exp.FechaInicio; // ep.FechaFin = exp.FechaFin; // ep.NumeroOrden = exp.NumeroOrden; // yaincorporados.Add(numeroExpediente); // } // } // } // if (seiac.idSiniestroNavigation == null) // { // var fi = seiac.FechaOcurrencia.AddDays(-5); // var ff = seiac.FechaOcurrencia.AddDays(5); // var fechaInicio = DateOnly.FromDateTime(fi); // var fechaFinal = DateOnly.FromDateTime(ff); // sins = bd.siniestros.Where(x => // x.idPolizaNavigation.NumeroPoliza == seiac.NumeroPoliza && // x.FechaAccidente.HasValue && // x.FechaAccidente >= fechaInicio && // x.FechaAccidente <= fechaFinal).ToList(); // if (sins.Count == 1) // { // seiac.idSiniestroNavigation = sins[0]; // } // } // bool bModificados = false; // if (bd.ChangeTracker.Entries().Any(e => e.State == EntityState.Added)) // { // bModificados = true; // seiac.SituacionAsegasa = (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.NUEVO; // seiac.FechaSituacion = DateTime.Now; // } // else // { // var prmods = bd.ChangeTracker.Entries().Where(e => e.State == EntityState.Modified).ToList(); // if (prmods.Count > 0) // { // foreach (var pr in prmods) // { // var original = pr.OriginalValues; // var nuevosvalores = pr.CurrentValues; // foreach (var prop in original.Properties) // { // var origVal = original[prop]; // var newVal = nuevosvalores[prop]; // if (origVal?.GetHashCode() != newVal?.GetHashCode()) // { // bModificados = true; // break; // } // } // if (bModificados) break; // } // } // } // if (bModificados) // { // if (!seiac.SituacionAsegasa.HasValue || seiac.SituacionAsegasa.Value != (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.DESCARTADO) // { // seiac.SituacionAsegasa = (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.MODIFICADO; // seiac.FechaSituacion = DateTime.Now; // } // var nact = new actualizacionessiniestros_eiac // { // idSiniestroEIACNavigation = seiac, // Fecha = DateTime.Now, // idFicheroCompania = f.idFichero // }; // bd.actualizacionessiniestros_eiac.Add(nact); // if (seiac.SituacionAsegasa.Value != (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.DESCARTADO) // { // if (!seiac.idPoliza.HasValue) // { // seiac.SituacionAsegasa = (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.POLIZA_NO_ENCONTRADA; // } // else // { // if (sins == null || sins.Count == 0) // { // seiac.SituacionAsegasa = (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.SINIESTRO_NO_ENCONTRADO; // } // else if (sins.Count > 1) // { // seiac.SituacionAsegasa = (int)bdAsegasa.siniestros_eiac.SituacionAsegasaENUM.VARIOS_SINIESTROS_POSIBLES; // } // } // } // bd.SaveChanges(); // } // } // } // f.FechaProcesado = DateTime.Now; // bd.SaveChanges(); // } // catch (Exception ex) // { // f.FechaError = DateTime.Now; // bd.SaveChanges(); // tsUtilidades.TsNotificacionesClient.RegistrarAsync("En IncorporaSiniestrosEIACV6.", $"Rutina: IncorporaSiniestrosEIACV6. Fichero:{f.NombreFichero} {ex.Message}", tsUtilidades.TsNotificacionesClient.TipoNotificacionEnum.ERROR); // } // } // } // catch (Exception ex) // { // tsUtilidades.TsNotificacionesClient.RegistrarAsync("En IncorporaSiniestrosEIACV6.", $"Rutina: IncorporaSiniestrosEIACV6. {ex.Message}", tsUtilidades.TsNotificacionesClient.TipoNotificacionEnum.ERROR); // } // } // public static void IncorporaExpSiniestrosEIACV6() // { // try // { // using var bd = tscgestionasegasa.NuevoContexto(); // var ltpa = bd.enumeraciones.Where(x => x.idGrupoEnumeracionNavigation.Grupo == "TIPP").ToList(); // int tipo = (int)ficheroscompanias.TipoFicheroCompania.SINIESTROS_EIAC; // var ficspen = bd.ficheroscompanias // .Where(x => x.Tipo == tipo && x.Version == "6.0") // .OrderBy(x => x.idFichero) // .ToList(); // foreach (var f in ficspen) // { // try // { // // Asumimos ProcesosEIAC_V6 existe y Utilizamos una librería genérica de serialización // dynamic DatosEIAC = tsUtilidades.Utilidades.Deserializa(f.Fichero, Type.GetType("ProcesosEIAC_V6.ProcesosEIAC") ?? typeof(object)); // if (DatosEIAC?.Objetos?.Items != null) // { // IEnumerable items = DatosEIAC.Objetos.Items; // var lSins = items.Where(x => x != null && x.GetType().Name == "tipo_siniestro"); // foreach (var s in lSins) // { // string idSiniestroEntidad = s.DatosSiniestro.IdSiniestroEntidad; // var seiac = bd.siniestros_eiac.FirstOrDefault(x => x.idSiniestroEntidad == idSiniestroEntidad); // if (seiac != null) // { // if (s.DatosSiniestro.Expedientes != null) // { // var yaincorporados = new List(); // foreach (var exp in s.DatosSiniestro.Expedientes) // { // string numeroExpediente = exp.NumeroExpediente; // if (string.IsNullOrEmpty(numeroExpediente)) numeroExpediente = exp.GetHashCode().ToString(); // if (!yaincorporados.Contains(numeroExpediente)) // { // var ep = seiac.expedientessiniestros_eiac.FirstOrDefault(x => x.NumeroExpediente == numeroExpediente); // if (ep == null) // { // ep = new expedientessiniestros_eiac { NumeroExpediente = numeroExpediente }; // seiac.expedientessiniestros_eiac.Add(ep); // } // ep.EstadoExpediente = bdAsegasa.expedientessiniestros_eiac.ObtieneEstadoExpedienteV6((string)exp.EstadoExpediente); // ep.ImporteReserva = exp.ImporteReserva; // ep.TotalPagos = exp.TotalPagos; // ep.TotalRecobros = exp.TotalRecobros; // ep.FechaInicio = exp.FechaInicio; // ep.FechaFin = exp.FechaFin; // ep.NumeroOrden = exp.NumeroOrden; // yaincorporados.Add(numeroExpediente); // } // } // bd.SaveChanges(); // } // } // } // } // // f.FechaProcesado = Now (Comentado en el código original) // bd.SaveChanges(); // } // catch (Exception ex) // { // f.FechaError = DateTime.Now; // bd.SaveChanges(); // tsUtilidades.TsNotificacionesClient.RegistrarAsync("En IncorporaSiniestrosEIACV6.", $"Rutina: IncorporaSiniestrosEIACV6. Fichero:{f.NombreFichero} {ex.Message}", tsUtilidades.TsNotificacionesClient.TipoNotificacionEnum.ERROR); // } // } // } // catch (Exception ex) // { // tsUtilidades.TsNotificacionesClient.RegistrarAsync("En IncorporaSiniestrosEIACV6.", $"Rutina: IncorporaSiniestrosEIACV6. {ex.Message}", tsUtilidades.TsNotificacionesClient.TipoNotificacionEnum.ERROR); // } // } // } //}