using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using bdAsegasa.db; using Microsoft.EntityFrameworkCore; using tsUtilidades.Extensiones; namespace bdAsegasa.db { public partial class siniestros { public int? idPoliza_Nulable { get { if (idPoliza == 0) { return null; } else { return idPoliza; } } set { if (value.HasValue) { idPoliza = value.Value; } } } #region Contrario private bool _CifContrarioTmpEsNulo = true; private string _CifContrarioTmp; public string CifContrarioTmp { get { if (_CifContrarioTmpEsNulo) { if (this.idEntidadContrarioNavigation == null) return ""; _CifContrarioTmp = this.idEntidadContrarioNavigation.CIF; _CifContrarioTmpEsNulo = false; return this.idEntidadContrarioNavigation.CIF; } return _CifContrarioTmp; } set { _CifContrarioTmp = value; _CifContrarioTmpEsNulo = false; if (this.idEntidadContrarioNavigation != null) { this.idEntidadContrarioNavigation.CIF = string.IsNullOrEmpty(value) ? null : value; } OnPropertyChanged("CifContrarioTmp"); OnPropertyChanged("RazonSocialContrarioTmp"); OnPropertyChanged("CodigoPostalContrarioTmp"); OnPropertyChanged("DomicilioContrarioTmp"); OnPropertyChanged("CodigoPoblacionContrarioTmp"); OnPropertyChanged("PoblacionContrarioTmp"); OnPropertyChanged("ProvinciaContrarioTmp"); OnPropertyChanged("TelefonoContrario1Tmp"); OnPropertyChanged("TelefonoContrario2Tmp"); OnPropertyChanged("EmailContrarioTmp"); } } private bool _RazonSocialContrarioTmpEsNulo = true; private string _RazonSocialContrarioTmp; public string RazonSocialContrarioTmp { get { if (_RazonSocialContrarioTmpEsNulo) { string rs = ""; if (string.IsNullOrEmpty(this.idEntidadContrarioNavigation.RazonSocial)) { rs = (this.idEntidadContrarioNavigation.Apellidos + ", " + this.idEntidadContrarioNavigation.Nombre).Trim().Trim(','); } else { rs = this.idEntidadContrarioNavigation.RazonSocial; } _RazonSocialContrarioTmpEsNulo = false; _RazonSocialContrarioTmp = rs; return rs; } return _RazonSocialContrarioTmp; } set { _RazonSocialContrarioTmp = value; _RazonSocialContrarioTmpEsNulo = false; if (this.idEntidadContrarioNavigation != null) { this.idEntidadContrarioNavigation.RazonSocial = value; if (!string.IsNullOrEmpty(this.idEntidadContrarioNavigation.CIF) && "1234567890X".Contains(this.idEntidadContrarioNavigation.CIF.Substring(1, 1)) && value.Contains(",")) { var parts = value.Split(','); this.idEntidadContrarioNavigation.Apellidos = parts[0].Trim(); if (parts.Length > 1) this.idEntidadContrarioNavigation.Nombre = parts[1].Trim(); } } OnPropertyChanged("RazonSocialContrarioTmp"); } } private bool _CodigoPostalContrarioTmpEsNulo = true; private string _CodigoPostalContrarioTmp; public string CodigoPostalContrarioTmp { get { if (_CodigoPostalContrarioTmpEsNulo) { if (this.idEntidadContrarioNavigation?.DireccionPrincipal == null) return ""; _CodigoPostalContrarioTmp = this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoPostal; _CodigoPostalContrarioTmpEsNulo = false; return _CodigoPostalContrarioTmp; } return _CodigoPostalContrarioTmp; } set { _CodigoPostalContrarioTmp = value; _CodigoPostalContrarioTmpEsNulo = false; if (this.idEntidadContrarioNavigation?.DireccionPrincipal != null) { this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoPostal = value; } OnPropertyChanged("CodigoPostalContrarioTmp"); } } private bool _DomicilioContrarioTmpEsNulo = true; private string _DomicilioContrarioTmp; public string DomicilioContrarioTmp { get { if (_DomicilioContrarioTmpEsNulo) { if (this.idEntidadContrarioNavigation?.DireccionPrincipal == null) return ""; _DomicilioContrarioTmp = this.idEntidadContrarioNavigation.DireccionPrincipal.Direccion; _DomicilioContrarioTmpEsNulo = false; return _DomicilioContrarioTmp; } return _DomicilioContrarioTmp; } set { _DomicilioContrarioTmp = value; _DomicilioContrarioTmpEsNulo = false; if (this.idEntidadContrarioNavigation?.DireccionPrincipal != null) { this.idEntidadContrarioNavigation.DireccionPrincipal.Direccion = value; } OnPropertyChanged("DomicilioContrarioTmp"); } } private bool _CodigoPoblacionContrarioTmpEsNulo = true; private string _CodigoPoblacionContrarioTmp; public string CodigoPoblacionContrarioTmp { get { if (_CodigoPoblacionContrarioTmpEsNulo) { if (this.idEntidadContrarioNavigation?.DireccionPrincipal == null) { return ""; } if (this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoMunicipioNavigation == null && !string.IsNullOrEmpty(this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoPostal)) { using (var bd = tscgestionasegasa.NuevoContexto()) { var pob = bd.codigospostales.FirstOrDefault(x => x.CodigoPostal == this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoPostal); if (pob != null) { this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoMunicipio = pob.CodigoMunicipio; _CodigoPoblacionContrarioTmp = pob.CodigoMunicipio; _CodigoPoblacionContrarioTmpEsNulo = false; return _CodigoPoblacionContrarioTmp; } } } _CodigoPoblacionContrarioTmp = this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoMunicipio; _CodigoPoblacionContrarioTmpEsNulo = false; return _CodigoPoblacionContrarioTmp; } return _CodigoPoblacionContrarioTmp; } set { _CodigoPoblacionContrarioTmp = value; _CodigoPoblacionContrarioTmpEsNulo = false; if (this.idEntidadContrarioNavigation?.DireccionPrincipal != null) { this.idEntidadContrarioNavigation.DireccionPrincipal.CodigoMunicipio = value; } OnPropertyChanged("CodigoPoblacionContrarioTmp"); OnPropertyChanged("PoblacionContrarioTmp"); OnPropertyChanged("ProvinciaContrarioTmp"); } } public string PoblacionContrarioTmp { get { return municipios.ObtienePoblacion(CodigoPoblacionContrarioTmp); } } public string ProvinciaContrarioTmp { get { return municipios.ObtieneProvincia(CodigoPoblacionContrarioTmp); } } private bool _TelefonoContrario1TmpEsNulo = true; private string _TelefonoContrario1Tmp; public string TelefonoContrario1Tmp { get { if (_TelefonoContrario1TmpEsNulo) { if (this.idEntidadContrarioNavigation == null) return ""; _TelefonoContrario1Tmp = this.idEntidadContrarioNavigation.Telefono1; _TelefonoContrario1TmpEsNulo = false; return _TelefonoContrario1Tmp; } return _TelefonoContrario1Tmp; } set { _TelefonoContrario1Tmp = value; _TelefonoContrario1TmpEsNulo = false; if (this.idEntidadContrarioNavigation != null) this.idEntidadContrarioNavigation.Telefono1 = value; OnPropertyChanged("TelefonoContrario1Tmp"); } } private bool _TelefonoContrario2TmpEsNulo = true; private string _TelefonoContrario2Tmp; public string TelefonoContrario2Tmp { get { if (_TelefonoContrario2TmpEsNulo) { if (this.idEntidadContrarioNavigation == null) return ""; _TelefonoContrario2Tmp = this.idEntidadContrarioNavigation.Telefono2; _TelefonoContrario2TmpEsNulo = false; return _TelefonoContrario2Tmp; } return _TelefonoContrario2Tmp; } set { _TelefonoContrario2Tmp = value; _TelefonoContrario2TmpEsNulo = false; if (this.idEntidadContrarioNavigation != null) this.idEntidadContrarioNavigation.Telefono2 = value; OnPropertyChanged("TelefonoContrario2Tmp"); } } private bool _EmailContrarioTmpEsNulo = true; private string _EmailContrarioTmp; public string EmailContrarioTmp { get { if (_EmailContrarioTmpEsNulo) { if (this.idEntidadContrarioNavigation == null) return ""; _EmailContrarioTmp = this.idEntidadContrarioNavigation.Email; _EmailContrarioTmpEsNulo = false; return _EmailContrarioTmp; } return _EmailContrarioTmp; } set { _EmailContrarioTmp = value; _EmailContrarioTmpEsNulo = false; if (this.idEntidadContrarioNavigation != null) this.idEntidadContrarioNavigation.Email = value; OnPropertyChanged("EmailContrarioTmp"); } } public void ReiniciaValoresTMPContrario() { _CifContrarioTmpEsNulo = true; _RazonSocialContrarioTmpEsNulo = true; _CodigoPoblacionContrarioTmpEsNulo = true; _CodigoPostalContrarioTmpEsNulo = true; _DomicilioContrarioTmpEsNulo = true; _TelefonoContrario1TmpEsNulo = true; _TelefonoContrario2TmpEsNulo = true; _EmailContrarioTmpEsNulo = true; } #endregion #region Taller private bool _CifTallerTmpEsNulo = true; private string _CifTallerTmp; public string CifTallerTmp { get { if (_CifTallerTmpEsNulo) { if (this.idEntidadTallerNavigation == null) return ""; _CifTallerTmp = this.idEntidadTallerNavigation.CIF; _CifTallerTmpEsNulo = false; return _CifTallerTmp; } return _CifTallerTmp; } set { _CifTallerTmp = value; _CifTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation != null) { this.idEntidadTallerNavigation.CIF = string.IsNullOrEmpty(value) ? null : value; } OnPropertyChanged("CifTallerTmp"); OnPropertyChanged("RazonSocialTallerTmp"); OnPropertyChanged("CodigoPostalTallerTmp"); OnPropertyChanged("DomicilioTallerTmp"); OnPropertyChanged("CodigoPoblacionTallerTmp"); OnPropertyChanged("PoblacionTallerTmp"); OnPropertyChanged("ProvinciaTallerTmp"); OnPropertyChanged("TelefonoTallerTmp"); OnPropertyChanged("EmailTallerTmp"); } } private bool _RazonSocialTallerTmpEsNulo = true; private string _RazonSocialTallerTmp; public string RazonSocialTallerTmp { get { if (_RazonSocialTallerTmpEsNulo) { string rs = ""; if (string.IsNullOrEmpty(this.idEntidadTallerNavigation.RazonSocial)) { rs = (this.idEntidadTallerNavigation.Apellidos + ", " + this.idEntidadTallerNavigation.Nombre).Trim().Trim(','); } else { rs = this.idEntidadTallerNavigation.RazonSocial; } _RazonSocialTallerTmpEsNulo = false; _RazonSocialTallerTmp = rs; return rs; } return _RazonSocialTallerTmp; } set { _RazonSocialTallerTmp = value; _RazonSocialTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation != null) { this.idEntidadTallerNavigation.RazonSocial = value; if (!string.IsNullOrEmpty(this.idEntidadTallerNavigation.CIF) && "1234567890X".Contains(this.idEntidadTallerNavigation.CIF.Substring(1, 1)) && value.Contains(",")) { var parts = value.Split(','); this.idEntidadTallerNavigation.Apellidos = parts[0].Trim(); if (parts.Length > 1) this.idEntidadTallerNavigation.Nombre = parts[1].Trim(); } } OnPropertyChanged("RazonSocialTallerTmp"); } } private bool _CodigoPostalTallerTmpEsNulo = true; private string _CodigoPostalTallerTmp; public string CodigoPostalTallerTmp { get { if (_CodigoPostalTallerTmpEsNulo) { if (this.idEntidadTallerNavigation?.DireccionPrincipal == null) return ""; _CodigoPostalTallerTmp = this.idEntidadTallerNavigation.DireccionPrincipal.CodigoPostal; _CodigoPostalTallerTmpEsNulo = false; return _CodigoPostalTallerTmp; } return _CodigoPostalTallerTmp; } set { _CodigoPostalTallerTmp = value; _CodigoPostalTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation?.DireccionPrincipal != null) { this.idEntidadTallerNavigation.DireccionPrincipal.CodigoPostal = value; } OnPropertyChanged("CodigoPostalTallerTmp"); } } private bool _DomicilioTallerTmpEsNulo = true; private string _DomicilioTallerTmp; public string DomicilioTallerTmp { get { if (_DomicilioTallerTmpEsNulo) { if (this.idEntidadTallerNavigation?.DireccionPrincipal == null) return ""; _DomicilioTallerTmp = this.idEntidadTallerNavigation.DireccionPrincipal.Direccion; _DomicilioTallerTmpEsNulo = false; return _DomicilioTallerTmp; } return _DomicilioTallerTmp; } set { _DomicilioTallerTmp = value; _DomicilioTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation?.DireccionPrincipal != null) { this.idEntidadTallerNavigation.DireccionPrincipal.Direccion = value; } OnPropertyChanged("DomicilioTallerTmp"); } } private bool _CodigoPoblacionTallerTmpEsNulo = true; private string _CodigoPoblacionTallerTmp; public string CodigoPoblacionTallerTmp { get { if (_CodigoPoblacionTallerTmpEsNulo) { if (this.idEntidadTallerNavigation?.DireccionPrincipal == null) return ""; if (this.idEntidadTallerNavigation.DireccionPrincipal.CodigoMunicipioNavigation == null && !string.IsNullOrEmpty(this.idEntidadTallerNavigation.DireccionPrincipal.CodigoPostal)) { using (var bd =tscgestionasegasa.NuevoContexto()) { var pob = bd.codigospostales.FirstOrDefault(x => x.CodigoPostal == this.idEntidadTallerNavigation.DireccionPrincipal.CodigoPostal); if (pob != null) { this.idEntidadTallerNavigation.DireccionPrincipal.CodigoMunicipio = pob.CodigoMunicipio; _CodigoPoblacionTallerTmp = pob.CodigoMunicipio; _CodigoPoblacionTallerTmpEsNulo = false; return _CodigoPoblacionTallerTmp; } } } _CodigoPoblacionTallerTmp = this.idEntidadTallerNavigation.DireccionPrincipal.CodigoMunicipio; _CodigoPoblacionTallerTmpEsNulo = false; return _CodigoPoblacionTallerTmp; } return _CodigoPoblacionTallerTmp; } set { _CodigoPoblacionTallerTmp = value; _CodigoPoblacionTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation?.DireccionPrincipal != null) { this.idEntidadTallerNavigation.DireccionPrincipal.CodigoMunicipio = value; } OnPropertyChanged("CodigoPoblacionTallerTmp"); OnPropertyChanged("PoblacionTallerTmp"); OnPropertyChanged("ProvinciaTallerTmp"); } } public string PoblacionTallerTmp { get { return municipios.ObtienePoblacion(CodigoPoblacionTallerTmp); } } public string ProvinciaTallerTmp { get { return municipios.ObtieneProvincia(CodigoPoblacionTallerTmp); } } private bool _TelefonoTallerTmpEsNulo = true; private string _TelefonoTallerTmp; public string TelefonoTallerTmp { get { if (_TelefonoTallerTmpEsNulo) { if (this.idEntidadTallerNavigation == null) return ""; _TelefonoTallerTmp = this.idEntidadTallerNavigation.Telefono1; _TelefonoTallerTmpEsNulo = false; return _TelefonoTallerTmp; } return _TelefonoTallerTmp; } set { _TelefonoTallerTmp = value; _TelefonoTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation != null) this.idEntidadTallerNavigation.Telefono1 = value; OnPropertyChanged("TelefonoTallerTmp"); } } private bool _EmailTallerTmpEsNulo = true; private string _EmailTallerTmp; public string EmailTallerTmp { get { if (_EmailTallerTmpEsNulo) { if (this.idEntidadTallerNavigation == null) return ""; _EmailTallerTmp = this.idEntidadTallerNavigation.Email; _EmailTallerTmpEsNulo = false; return _EmailTallerTmp; } return _EmailTallerTmp; } set { _EmailTallerTmp = value; _EmailTallerTmpEsNulo = false; if (this.idEntidadTallerNavigation != null) this.idEntidadTallerNavigation.Email = value; OnPropertyChanged("EmailTallerTmp"); } } public void ReiniciaValoresTMPTaller() { _CifTallerTmpEsNulo = true; _RazonSocialTallerTmpEsNulo = true; _CodigoPoblacionTallerTmpEsNulo = true; _CodigoPostalTallerTmpEsNulo = true; _DomicilioTallerTmpEsNulo = true; _TelefonoTallerTmpEsNulo = true; _EmailTallerTmpEsNulo = true; } #endregion public static void GuardandoCambios(tscgestionasegasa bd) { var addedEntries = bd.ChangeTracker.Entries() .Where(e => e.State == EntityState.Added); AsignaidUsuarioCreadorGestionesSiniestros(bd, addedEntries); var modifiedEntries = bd.ChangeTracker.Entries() .Where(e => e.State == EntityState.Modified); AsignaidUsuarioModificadorGestionesSiniestros(bd, modifiedEntries); } private static void AsignaidUsuarioCreadorGestionesSiniestros(tscgestionasegasa bd, IEnumerable> entries) { if (entries.Any() && bdAsegasa.db.Utilidades.dsc.idUsuario > 0) { var ahora = DateTime.Now; foreach (var entry in entries) { var r = entry.Entity; r.idUsuarioCreador = bdAsegasa.db.Utilidades.dsc.idUsuario; r.idUsuarioModificador = bdAsegasa.db.Utilidades.dsc.idUsuario; r.FechaModificacion = ahora; } } } private static void AsignaidUsuarioModificadorGestionesSiniestros(tscgestionasegasa bd, IEnumerable> entries) { if (entries.Any() && bdAsegasa.db.Utilidades.dsc.idUsuario > 0) { var ahora = DateTime.Now; foreach (var entry in entries) { var r = entry.Entity; r.idUsuarioModificador = bdAsegasa.db.Utilidades.dsc.idUsuario; r.FechaModificacion = ahora; } } } } }