Public Shared Function ObtieneRecibosAvisoImperativoLegal(Optional bd As bdGestionAsegasa.gestionasegasaEntities = Nothing, Optional RecibosSinComunicacion As List(Of String) = Nothing) As List(Of recibos) If bd Is Nothing Then bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto Dim tgsms As Integer = FormaComunicacionEnum.POR_SMS Dim tgcarta As Integer = FormaComunicacionEnum.POR_CARTA Dim tgsa As Integer = FormaComunicacionEnum.SIN_DOMICILIO_NI_TLF_VALIDO Dim tgsn As Integer = FormaComunicacionEnum.NINGUNA Dim TipoCarta As Integer = TipoGestionEnum.AVISO_IMPERATIVO_LEGAL 'Dim idTre = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.E").idEnumeracion 'Dim idTres = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.ES").idEnumeracion Dim idTrex = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.EX").idEnumeracion 'Dim idTrc = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.C").idEnumeracion 'Dim idTrcs = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.CS").idEnumeracion Dim idTrcx = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.CX").idEnumeracion Dim idtippba = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.BA").idEnumeracion Dim idtipcia = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.CIA").idEnumeracion Dim idtipFAE = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.FAE").idEnumeracion ' Dim idtippe = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.PE").idEnumeracion Dim idtipag = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.AG").idEnumeracion ' Dim idtipag = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.AG").idEnumeracion Dim TipoRemesa = TipoGestionEnum.AVISO_REMESA_O_COBRO_DIRECTO Dim FechaLimite = Today.AddDays(-15) Dim feflim = Today.AddDays(-10) ' Dim FechaEfectoLimite = Today.AddDays(25) Dim FechaEfectoLimite = Today.AddDays(30) 'Dim rs = bd.recibos. ' Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones3"). ' Where(Function(x) x.PrimaNeta.Value > 0 And x.FechaPago.HasValue = False And ' x.FechaBaja.HasValue = False And x.idTipoPago <> idtippba And x.idTipoPago <> idtipag And x.idTipoPago <> idtipcia And x.idTipo <> idTrex And x.idTipo <> idTrcx _ ' And Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCarta) _ ' And x.gestionesrecibos.Any(Function(y) y.Tipo = TipoRemesa And y.Fecha <= FechaLimite) _ ' And x.FechaEfecto > feflim).ToList Dim rsco = bd.recibos. Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones3"). Where(Function(x) x.PrimaNeta.Value > 0 AndAlso x.FechaPago.HasValue = False And x.FechaBaja.HasValue = False AndAlso x.idTipoPago <> idtippba And x.idTipoPago <> idtipag AndAlso x.idTipoPago <> idtipcia AndAlso x.idTipoPago <> idtipFAE AndAlso x.idTipo <> idTrex AndAlso x.idTipo <> idTrcx _ AndAlso Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCarta) _ AndAlso x.gestionesrecibos.Any(Function(y) y.Tipo = TipoRemesa And y.Fecha <= FechaLimite) _ AndAlso x.FechaEfecto < feflim AndAlso FechaEfectoLimite >= x.FechaEfecto).ToList.Where(Function(x) x.BloquearFacturacion = False).ToList Dim rsba = bd.recibos. Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones3"). Where(Function(x) x.PrimaNeta.Value > 0 AndAlso x.FechaPago.HasValue = False AndAlso x.FechaDevolucionBanco.HasValue AndAlso x.FechaBaja.HasValue = False AndAlso x.idTipoPago = idtippba And x.idTipo <> idTrex AndAlso x.idTipo <> idTrcx _ AndAlso Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCarta) _ AndAlso x.gestionesrecibos.Any(Function(y) y.Tipo = TipoRemesa AndAlso y.Fecha <= FechaLimite) _ AndAlso x.FechaEfecto < feflim AndAlso FechaEfectoLimite >= x.FechaEfecto).ToList.Where(Function(x) x.BloquearFacturacion = False).ToList Dim rs = rsco.Union(rsba).ToList Dim lr = rs.Select(Function(x) New With {.CodigoRecibo = x.CodigoRecibo, .NumeroPoliza = x.polizassg.NumeroPoliza, .NumeroSuplemento = x.polizassg.NumeroSuplemento, .FechaEfecto = x.FechaEfecto, .TipoPago = x.TipoPago, .FechaDevolucionBanco = x.FechaDevolucionBanco, .Tomador = x.polizassg.Tomador.RazonSocial, .BienesAsegurados = x.polizassg.BienesAsegurados, .Ramo = x.polizassg.ramos.Descripcion, .Compañia = x.polizassg.companias.Nombre, .Agente = x.agentes.Nombre}).ToList 'Dim f = tsWPF.Utilidades.Varias.IEnumerableAExcel(lr) 'IO.File.WriteAllBytes("c:\tmp\recibosimperativo.xlsx", f) For Each r In rs If RecibosSinComunicacion IsNot Nothing AndAlso RecibosSinComunicacion.Contains(r.CodigoRecibo) Then r.FormaComunicacionTMP = tgsn Else If r.polizassg.EntidadPolizaTomador.Telefono1.EsNumeroTelefonoMovilEspañolValido Or r.polizassg.EntidadPolizaTomador.Telefono2.EsNumeroTelefonoMovilEspañolValido Then r.FormaComunicacionTMP = tgsms Else If r.polizassg.EntidadPolizaTomador.direcciones IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.CodigoPostal.NothingAVacio <> "" AndAlso r.polizassg.EntidadPolizaTomador.direcciones.municipios IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.Direccion.NothingAVacio <> "" Then r.FormaComunicacionTMP = tgcarta Else r.FormaComunicacionTMP = tgsa End If End If End If Next Return rs End Public Shared Function ObtieneRecibosCartaRemesa(Optional bd As bdGestionAsegasa.gestionasegasaEntities = Nothing) As List(Of recibos) Try If bd Is Nothing Then bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto Dim tgninguna As Integer = FormaComunicacionEnum.NINGUNA Dim tgsms As Integer = FormaComunicacionEnum.POR_SMS Dim tgcarta As Integer = FormaComunicacionEnum.POR_CARTA Dim tgsa As Integer = FormaComunicacionEnum.SIN_DOMICILIO_NI_TLF_VALIDO ' Dim idRamo17 = bd.ramos.First(Function(x) x.Codigo = "17").idRamo Dim idTre = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.E").idEnumeracion Dim idTres = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.ES").idEnumeracion Dim idTrex = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.EX").idEnumeracion Dim idTrc = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.C").idEnumeracion Dim idTrcs = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.CS").idEnumeracion Dim idTrcx = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.CX").idEnumeracion Dim idtippba = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.BA").idEnumeracion Dim idtipcia = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.CIA").idEnumeracion Dim idtipFAE = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.FAE").idEnumeracion Dim idtipag = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.AG").idEnumeracion Dim ahora = bdGestionAsegasa.Utilidades.AhoraMysql(bd) Dim FecLim = ahora.Date.AddDays(20) Dim TipoCartaRemesa As Integer = TipoGestionEnum.AVISO_REMESA_O_COBRO_DIRECTO Dim rs = bd.recibos.Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones2").Include("enumeraciones3") _ .Where(Function(x) x.FechaPago.HasValue = False AndAlso x.FechaCartaRemesaCobroDirecto Is Nothing AndAlso Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCartaRemesa) AndAlso x.FechaBaja Is Nothing AndAlso x.TotalRecibo > 0 And (x.idTipoPago <> idtipcia AndAlso x.idTipoPago <> idtipFAE AndAlso x.idTipoPago <> idtipag) AndAlso x.FechaEfecto < FecLim).ToList.Where(Function(x) x.BloquearFacturacion = False).ToList ' Dim rs = bd.recibos.Where(Function(x) x.idRecibo = 429451).ToList For Each r In rs Try If r.FechaEfecto < ahora.AddDays(-20) Or r.FechaPago.HasValue Or r.idRemesa.HasValue Then If Not (r.idRemesa.HasValue AndAlso Today.Subtract(r.remesas.Fecha.Value.Date).TotalDays > 0) AndAlso (r.polizassg.EntidadPolizaTomador.Telefono1.EsNumeroTelefonoMovilEspañolValido Or r.polizassg.EntidadPolizaTomador.Telefono2.EsNumeroTelefonoMovilEspañolValido) Then r.FormaComunicacionTMP = tgsms Else r.FormaComunicacionTMP = tgninguna End If Else If r.polizassg.EntidadPolizaTomador Is Nothing Then r.FormaComunicacionTMP = tgsa Else If r.polizassg.EntidadPolizaTomador.Telefono1.EsNumeroTelefonoMovilEspañolValido Or r.polizassg.EntidadPolizaTomador.Telefono2.EsNumeroTelefonoMovilEspañolValido Then r.FormaComunicacionTMP = tgsms Else If r.polizassg.EntidadPolizaTomador IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.CodigoPostal.NothingAVacio <> "" AndAlso r.polizassg.EntidadPolizaTomador.direcciones.municipios IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.Direccion.NothingAVacio <> "" Then r.FormaComunicacionTMP = tgcarta Else r.FormaComunicacionTMP = tgsa End If End If End If End If Catch ex As Exception Throw New Exception(ex.Message, ex) End Try Next Return rs Catch ex As Exception Throw New Exception(ex.Message, ex) End Try End Public Shared Function ObtieneRecibosCartaBaja(Optional bd As bdGestionAsegasa.gestionasegasaEntities = Nothing, Optional RecibosSinComunicacion As List(Of String) = Nothing) As List(Of recibos) If bd Is Nothing Then bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto Dim tgsms As Integer = FormaComunicacionEnum.POR_SMS Dim tgcarta As Integer = FormaComunicacionEnum.POR_CARTA Dim tgsa As Integer = FormaComunicacionEnum.SIN_DOMICILIO_NI_TLF_VALIDO Dim tgsn As Integer = FormaComunicacionEnum.NINGUNA Dim TipoCarta As Integer = TipoGestionEnum.AVISO_POLIZA_DE_BAJA Dim Cabas = bd.enumeraciones.Where(Function(x) x.Codigo = "CABA.CIA" Or x.Codigo = "CABA.ASEG" Or x.Codigo = "CABA.AGEN" Or x.Codigo = "CABA.VTA" Or x.Codigo = "CABA.BJA" Or x.Codigo = "CABA.ASFP" Or x.Codigo = "CABA.SIN").Select(Function(x) x.idEnumeracion).ToList Dim FechaInicio As New Date(2019, 12, 31) Dim rs = bd.recibos.Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones3").Where(Function(x) x.FechaBaja.HasValue AndAlso x.FechaBaja > FechaInicio AndAlso Cabas.Contains(x.idCausaBaja) AndAlso Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCarta)).ToList.Where(Function(x) x.BloquearFacturacion = False).ToList For Each r In rs If RecibosSinComunicacion IsNot Nothing AndAlso RecibosSinComunicacion.Contains(r.CodigoRecibo) Then r.FormaComunicacionTMP = tgsn Else If r.polizassg.EntidadPolizaTomador.Telefono1.EsNumeroTelefonoMovilEspañolValido Or r.polizassg.EntidadPolizaTomador.Telefono2.EsNumeroTelefonoMovilEspañolValido Then r.FormaComunicacionTMP = tgsms Else If r.polizassg.EntidadPolizaTomador.direcciones IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.CodigoPostal.NothingAVacio <> "" AndAlso r.polizassg.EntidadPolizaTomador.direcciones.municipios IsNot Nothing And r.polizassg.EntidadPolizaTomador.direcciones.Direccion.NothingAVacio <> "" Then r.FormaComunicacionTMP = tgcarta Else r.FormaComunicacionTMP = tgsa End If End If End If Next Return rs End Public Shared Function ObtieneRecibosComunicacionDevueltoBanco(Optional bd As bdGestionAsegasa.gestionasegasaEntities = Nothing) As List(Of recibos) If bd Is Nothing Then bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto Dim tgsms As Integer = FormaComunicacionEnum.POR_SMS Dim tgcarta As Integer = FormaComunicacionEnum.POR_CARTA Dim tgsa As Integer = FormaComunicacionEnum.SIN_DOMICILIO_NI_TLF_VALIDO Dim TipoCarta As Integer = TipoGestionEnum.AVISO_RECIBO_DEVUELTO_BANCO ' Dim idTipoContDev As Integer = TipoGestionEnum.CONTABILIZACIÓN_DEVOLUCIÓN_BANCO_SISTEMA_HP Dim idTrex = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.EX").idEnumeracion Dim idTrcx = bd.enumeraciones.First(Function(X) X.Codigo = "TRC.CX").idEnumeracion Dim idtippba = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.BA").idEnumeracion ' Dim rs = bd.recibos.Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones3").Where(Function(x) x.FechaBaja.HasValue = False And x.FechaCartaDevuelto.HasValue = False And x.FechaDevolucionBanco.HasValue And x.idTipoPago = idtippba And x.idTipo <> idTrex And x.idTipo <> idTrcx And Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCarta) And (x.idAsientoDevueltoBanco.HasValue Or x.gestionesrecibos.Any(Function(y) y.Tipo = idTipoContDev))).ToList Dim rs = bd.recibos.Include("agentes").Include("subagentes").Include("polizassg.entidadespolizas.entidades").Include("polizassg.ramos").Include("polizassg.companias").Include("enumeraciones1").Include("enumeraciones3").Where(Function(x) x.FechaBaja.HasValue = False AndAlso x.FechaCartaDevuelto.HasValue = False AndAlso x.FechaDevolucionBanco.HasValue AndAlso x.idTipoPago = idtippba AndAlso x.idTipo <> idTrex And x.idTipo <> idTrcx And Not x.gestionesrecibos.Any(Function(y) y.Tipo = TipoCarta) And (x.idAsientoDevueltoBanco.HasValue Or x.FechaAsientoDevueltoBanco.HasValue)).ToList.Where(Function(x) x.BloquearFacturacion = False).ToList For Each r In rs If r.polizassg.EntidadPolizaTomador.Telefono1.EsNumeroTelefonoMovilEspañolValido Or r.polizassg.EntidadPolizaTomador.Telefono2.EsNumeroTelefonoMovilEspañolValido Then r.FormaComunicacionTMP = tgsms Else If r.polizassg.EntidadPolizaTomador.direcciones IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.CodigoPostal.NothingAVacio <> "" AndAlso r.polizassg.EntidadPolizaTomador.direcciones.municipios IsNot Nothing AndAlso r.polizassg.EntidadPolizaTomador.direcciones.Direccion.NothingAVacio <> "" Then r.FormaComunicacionTMP = tgcarta Else r.FormaComunicacionTMP = tgsa End If End If Next Return rs End Public Function AListadoDevueltos() As ListadoDevueltos Return New ListadoDevueltos(Me) End Public Function AListadoBajas() As ListadoBajas Return New ListadoBajas(Me) End Public Function AListadoAsegurados() As ListadoAsegurados Return New ListadoAsegurados(Me) End