#Region "Comisiones" Public ReadOnly Property PorcentajeComisionRecargoExterno As Double Get Return If(Me.RecargoExterno.HasValue = False OrElse Me.RecargoExterno = 0 OrElse Me.AsegasaRecargoExterno.HasValue = False OrElse Me.AsegasaRecargoExterno.Value = 0, 0, Math.Round(Me.AsegasaRecargoExterno.Value * 100 / Me.RecargoExterno.Value, 2, MidpointRounding.AwayFromZero)) End Get End Property Public ReadOnly Property PorcentajeComisionConsorcio As Double Get Return If(Me.Consorcio.HasValue = False OrElse Me.Consorcio = 0 OrElse Me.AsegasaComisionConsorcio.HasValue = False OrElse Me.AsegasaComisionConsorcio.Value = 0, 0, Math.Round(Me.AsegasaComisionConsorcio.Value * 100 / Me.Consorcio.Value, 2, MidpointRounding.AwayFromZero)) End Get End Property Public ReadOnly Property PorcentajeComisionAsegasa As Double Get Return If(Me.TotalComision.HasValue = False OrElse Me.TotalComision = 0 OrElse Me.AsegasaComisionTotal.HasValue = False, 0, Math.Round(Me.AsegasaComisionTotal.Value * 100 / Me.TotalComision.Value, 2, MidpointRounding.AwayFromZero)) End Get End Property Public Function ObtieneDatosComisiones() As List(Of DatoComision) Try Dim ldcs As New List(Of DatoComision) Dim dc As New DatoComision With dc .Concepto = "Prima Neta" .Base = Math.Round(PrimaNeta.Value + BonificacionORecargo.Value, 2, MidpointRounding.AwayFromZero) .Porcentaje = Math.Round(PorcentajeReciboPrimaNeta.Value, 2, MidpointRounding.AwayFromZero) .ComisionBruta = Math.Round(ComisionReciboPrimaNeta.Value, 2, MidpointRounding.AwayFromZero) .Sobrecomision = Math.Round(Sobrecomision.NothingA0, 2, MidpointRounding.AwayFromZero) .TotalComision = Math.Round(TotalComision.Value, 2, MidpointRounding.AwayFromZero) .PorcentajeComisionPrevista = Math.Round(PorcentajeComisionPrevista.Value, 2, MidpointRounding.AwayFromZero) .ComisionPrevista = Math.Round(ComisionPrevista.Value, 2, MidpointRounding.AwayFromZero) .Diferencia = Math.Round(.ComisionBruta - ComisionPrevista.Value, 2, MidpointRounding.AwayFromZero) End With ldcs.Add(dc) Dim dcre As New DatoComision With dcre .Concepto = "Recargos Externos" .Base = Math.Round(RecargoExterno.Value, 2, MidpointRounding.AwayFromZero) .Porcentaje = Math.Round(PorcentajeComisionRecargoExterno, 2, MidpointRounding.AwayFromZero) .Sobrecomision = 0 .TotalComision = Math.Round(AsegasaRecargoExterno.Value, 2, MidpointRounding.AwayFromZero) ' .ComisionBruta = Math.Round(.TotalComision - .Sobrecomision, 2, MidpointRounding.AwayFromZero) .ComisionBruta = Math.Round(.TotalComision, 2, MidpointRounding.AwayFromZero) .PorcentajeComisionPrevista = .Porcentaje .ComisionPrevista = .TotalComision .Diferencia = Math.Round(.TotalComision - .ComisionPrevista, 2, MidpointRounding.AwayFromZero) End With ldcs.Add(dcre) Dim dcco As New DatoComision With dcco .Concepto = "Consorcio" .Base = Math.Round(Consorcio.Value, 2, MidpointRounding.AwayFromZero) .Porcentaje = Math.Round(PorcentajeComisionConsorcio, 2, MidpointRounding.AwayFromZero) .Sobrecomision = 0 .TotalComision = Math.Round(AsegasaComisionConsorcio.Value, 2, MidpointRounding.AwayFromZero) ' .ComisionBruta = Math.Round(.TotalComision - .Sobrecomision, 2, MidpointRounding.AwayFromZero) .ComisionBruta = Math.Round(.TotalComision, 2, MidpointRounding.AwayFromZero) .PorcentajeComisionPrevista = .Porcentaje .ComisionPrevista = .TotalComision .Diferencia = Math.Round(.TotalComision - .ComisionPrevista, 2, MidpointRounding.AwayFromZero) End With ldcs.Add(dcco) Dim dcag As New DatoComision With dcag .Concepto = "AGENTE" .Base = Math.Round(BaseComisionAgente.Value, 2, MidpointRounding.AwayFromZero) .Porcentaje = Math.Round(PorcentajeComisionAgente.Value, 2, MidpointRounding.AwayFromZero) .Sobrecomision = 0 .TotalComision = Math.Round(ComisionAgente.Value, 2, MidpointRounding.AwayFromZero) ' .ComisionBruta = Math.Round(.TotalComision - .Sobrecomision, 2, MidpointRounding.AwayFromZero) .ComisionBruta = Math.Round(.TotalComision, 2, MidpointRounding.AwayFromZero) .PorcentajeComisionPrevista = .Porcentaje .ComisionPrevista = .TotalComision .Diferencia = Math.Round(.TotalComision - .ComisionPrevista, 2, MidpointRounding.AwayFromZero) End With ldcs.Add(dcag) Dim dcAS As New DatoComision With dcAS .Concepto = "ASEGASA" .Base = Math.Round(TotalComision.Value, 2, MidpointRounding.AwayFromZero) .Porcentaje = Math.Round(PorcentajeComisionAsegasa, 2, MidpointRounding.AwayFromZero) .ComisionBruta = Math.Round(AsegasaComisionTotal.Value, 2, MidpointRounding.AwayFromZero) .Sobrecomision = Math.Round(Sobrecomision.NothingA0, 2, MidpointRounding.AwayFromZero) .TotalComision = Math.Round(AsegasaComisionTotal.Value + Sobrecomision.NothingA0, 2, MidpointRounding.AwayFromZero) .PorcentajeComisionPrevista = .Porcentaje .ComisionPrevista = .TotalComision .Diferencia = Math.Round(.ComisionBruta - .ComisionPrevista, 2, MidpointRounding.AwayFromZero) End With ldcs.Add(dcAS) Return ldcs Catch ex As Exception Throw New Exception(ex.Message, ex) End Try End Function Public Shared Sub ImportaRecibosPatriaHispana(bd As bdGestionAsegasa.gestionasegasaEntities, Lrai As List(Of ReciboAIncorporar), ByRef iNumfic As Integer, NumTotFics As Integer, Ficheros As List(Of ficheroscompanias), Busqueda As String, MostrarProgreso As Boolean, GuardarCambios As Boolean, MarcarFicheros As Boolean, Optional ByRef ListadoRecibosDuplicados As List(Of String) = Nothing) Try If MostrarProgreso Then ' DXSplashScreen.Show(Of SplashScreenTecnosis)() DXSplashScreen.SetState("Incorporando recibos de PATRIA HISPANA ...") End If ' Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContextoCN() Dim cia = bd.companias.First(Function(x) x.Codigo = "0037") ' Dim TipoRecibo As Integer = bdGestionAsegasa.ficheroscompanias.TipoFicheroCompania.RECIBOS_EIAC ' Dim lrai As New List(Of bdGestionAsegasa.ReciboAIncorporar) ' Dim FICS = bd.ficheroscompanias.Where(Function(x) x.FechaProcesado Is Nothing And x.FechaError Is Nothing And x.idCompania = cia.idCompania And x.Tipo = TipoRecibo).OrderBy(Function(x) x.FechaCreacion).ToList If Ficheros.Count > 0 Then Dim ldur = bd.enumeraciones.Where(Function(x) x.gruposenumeraciones.Grupo = "DUR").ToList ' Dim idTipoPagoCIA = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.CIA").idEnumeracion Dim TiposRecibos = bd.enumeraciones.Where(Function(x) x.gruposenumeraciones.Grupo = "TRC").ToList Dim pols = bd.polizassg.Include("entidadespolizas.entidades").Where(Function(x) x.idCompania = cia.idCompania).ToList Dim recs = bd.recibos.Where(Function(x) x.polizassg.idCompania = cia.idCompania).Select(Function(x) New With {.idRecibo = x.idRecibo, .Codigorecibo = x.CodigoRecibo, .NumeroRecibo = x.NumeroRecibo, .idPoliza = x.idPoliza, .NumeroPoliza = x.polizassg.NumeroPoliza, .NumeroSuplemento = x.polizassg.NumeroSuplemento, .FechaEfecto = x.FechaEfecto, .FechaVencimiento = x.FechaVencimiento, .FechaBaja = x.FechaBaja, .FechaFacturacion = x.FechaFacturacion}).ToList Dim agentes = bd.agentes.ToList Dim subagentes = bd.subagentes.ToList Dim ramos = bd.ramos.ToList Dim comsCia = bd.comisionescompanias.Where(Function(x) x.idCompania = cia.idCompania).ToList Dim comsAge = bd.comisionesagentes.ToList ' Dim iNumfic = 0 ' Dim iNumfics = Ficheros.Count ' Dim recsai As New List(Of recibos) For Each f In Ficheros If MostrarProgreso Then DXSplashScreen.SetState("Comprobando " & f.NombreFichero) End If iNumfic += 1 Try 'Catch ex As Exception 'End Try ' Dim DatosEIAC As ProcesosEIAC_V5.ProcesosEIAC = tsl5.Utilidades.Deserializa(f.Fichero, GetType(ProcesosEIAC_V5.ProcesosEIAC)) Dim iNumrec As Integer = 0 ' If DatosEIAC.Objetos IsNot Nothing AndAlso DatosEIAC.Objetos.Items IsNot Nothing Then ' Dim lrecibos = DatosEIAC.Objetos.Items.Where(Function(x) x.GetType Is GetType(bdGestionAsegasa.tipo_recibo)).Cast(Of bdGestionAsegasa.tipo_recibo) ' Dim iNumRecs = lrecibos.Count Dim clsReader As System.IO.TextReader = New StreamReader(New MemoryStream(f.Fichero)) Dim sLine As String = clsReader.ReadLine Do Until sLine Is Nothing Dim npo = sLine.Substring(7, 7) Dim nre = sLine.Substring(14, 9) Dim Pne = CDbl(sLine.Substring(29, 11)) / 100 Dim Pnerc = Pne Dim Bon = 0 Dim Con = CDbl(sLine.Substring(40, 9)) / 100 Dim Conrc = Con Dim Ipu = CDbl(sLine.Substring(49, 9)) / 100 Dim Ipurc = Ipu ' Dim Fecoc As Date Dim Tipp As String = "" Dim Pneom As Double = 0 Dim Conom As Double = 0 Dim Ipuom As Double = 0 Dim Pneoc As Double = 0 Dim Conoc As Double = 0 Dim Ipuoc As Double = 0 Dim Fef As Date Dim Fve As Date Dim Imp = Pne + Con + Ipu If sLine.Trim.Length <= 200 Then Fef = New Date(CInt(sLine.Substring(82, 4)), CInt(sLine.Substring(80, 2)), CInt(sLine.Substring(78, 2))) ' Recibo.DatosRecibo.Fechas.FechaEfectoActual Fve = New Date(CInt(sLine.Substring(90, 4)), CInt(sLine.Substring(88, 2)), CInt(sLine.Substring(86, 2))) ' Recibo.DatosRecibo.Fechas.FechaVencimi ' Fecoc = Fef Tipp = sLine.Substring(94, 1) Else Fef = New Date(CInt(sLine.Substring(93, 4)), CInt(sLine.Substring(91, 2)), CInt(sLine.Substring(89, 2))) ' Recibo.DatosRecibo.Fechas.FechaEfectoActual Fve = New Date(CInt(sLine.Substring(101, 4)), CInt(sLine.Substring(99, 2)), CInt(sLine.Substring(97, 2))) ' Recibo.DatosRecibo.Fechas.FechaVencimiento ' Fecoc = New Date(CInt(sLine.Substring(234, 4)), CInt(sLine.Substring(230, 2)), CInt(sLine.Substring(228, 2))) Pneom = CDbl(sLine.Substring(105, 11)) / 100 Conom = CDbl(sLine.Substring(116, 9)) / 100 Ipuom = CDbl(sLine.Substring(125, 9)) / 100 Pneoc = CDbl(sLine.Substring(181, 11)) / 100 Conoc = CDbl(sLine.Substring(192, 9)) / 100 Ipuoc = CDbl(sLine.Substring(201, 9)) / 100 Pne = Pnerc + Pneom + Pneoc Con = Conrc + Conom + Conoc Ipu = Ipurc + Ipuom + Ipuoc Imp = Pne + Con + Ipu Tipp = sLine.Substring(248, 1) End If ' For Each Recibo In lrecibos Dim bIncluir As Boolean = False If f.idFichero = 2584 Then Debug.WriteLine("aqui") If Busqueda <> "" Then If npo.Contains(Busqueda) Or nre.Contains(Busqueda) Then bIncluir = True End If Else bIncluir = True End If If bIncluir Then Try iNumrec += 1 Dim cre = cia.Codigo & "/" & nre Dim ir As bdGestionAsegasa.ReciboAIncorporar ir = Lrai.FirstOrDefault(Function(x) x.Código_Recibo = cre And x.Correcto) If ir Is Nothing Then ir = New bdGestionAsegasa.ReciboAIncorporar Lrai.Add(ir) End If ir.Correcto = False ir.Fecha_Efecto = Fef ir.Fecha_Vencimiento = Fve ir.Número_Fichero = f.idFichero ir.Fecha_Fichero = f.FechaCreacion ir.Fecha_Procesado = f.FechaProcesado ir.Usuario_Procesado = If(f.usuarios IsNot Nothing, f.usuarios.Nombre, "") ir.Código_Cia = f.companias.Codigo ir.idCompañia = f.idCompania ir.Código_Recibo = cre If MostrarProgreso Then DXSplashScreen.SetState("Incorporando Recibos. Fichero (" & iNumfic.ToString & "/" & NumTotFics.ToString & "). " & "Recibo (" & iNumrec.ToString & "): " & ir.Código_Recibo) Dim pol As polizassg pol = pols.Where(Function(x) x.NumeroPoliza = npo And x.FechaBaja.HasValue = False And x.companias.Codigo = cia.Codigo And x.RechazoSuplemento = False).OrderByDescending(Function(x) x.NumeroSuplemento).FirstOrDefault If pol Is Nothing Then If npo.Substring(0, 1) = "0" Then npo = npo.Substring(1) pol = pols.Where(Function(x) x.NumeroPoliza = npo And x.FechaBaja.HasValue = False And x.companias.Codigo = cia.Codigo And x.RechazoSuplemento = False).OrderByDescending(Function(x) x.NumeroSuplemento).FirstOrDefault End If End If If pol Is Nothing Then pol = pols.Where(Function(x) x.NumeroPoliza = npo And x.companias.Codigo = cia.Codigo And x.RechazoSuplemento = False).OrderByDescending(Function(x) x.NumeroSuplemento).FirstOrDefault ir.Número_Póliza = npo Dim idTipoRecibo As Integer If Imp < 0 Then idTipoRecibo = TiposRecibos.First(Function(x) x.Codigo = "TRC.CX").idEnumeracion Else idTipoRecibo = TiposRecibos.First(Function(x) x.Codigo = "TRC.C").idEnumeracion End If ir.Tipo = TiposRecibos.First(Function(X) X.idEnumeracion = idTipoRecibo).Descripcion If pol IsNot Nothing Then ir.Observaciones = pol.Observaciones ir.Tipo_Pago = pol.TipoPago ir.Forma_Pago_Recibida = "DESCONOCIDA" ir.Situacion_Recibo = "DESCONOCIDA" If Not Lrai.Any(Function(x) x.Código_Recibo = ir.Código_Recibo And x.Correcto) Then Dim Rec = recs.Where(Function(x) x.Codigorecibo = ir.Código_Recibo).FirstOrDefault If Rec Is Nothing Then If ir.Fecha_Efecto.AddMonths(1) > Today Then Dim recant = recs.FirstOrDefault(Function(X) X.idPoliza = pol.idPoliza And X.FechaEfecto = ir.Fecha_Efecto And X.FechaVencimiento = ir.Fecha_Vencimiento And X.Codigorecibo <> ir.Código_Recibo) Dim recantFichs = Lrai.Where(Function(x) x.Poliza IsNot Nothing).FirstOrDefault(Function(x) x.Poliza.idPoliza = pol.idPoliza And x.Fecha_Efecto = ir.Fecha_Efecto And x.Fecha_Vencimiento = ir.Fecha_Vencimiento And x.Código_Recibo <> ir.Código_Recibo) If (recant Is Nothing AndAlso recantFichs Is Nothing) OrElse (recant IsNot Nothing AndAlso (recant.FechaEfecto.AddMonths(1) > Date.Today And nre.Contains(recant.NumeroRecibo) = False)) Then If Imp <> 0 Then ir.Mensaje = "Recibo Correcto" Else ir.Mensaje = "Recibo con Prima Neta = 0" End If ir.Correcto = True ir.Corregible = True RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) If recant IsNot Nothing Then If recant.FechaFacturacion.HasValue Then ir.Mensaje = "Existe otro recibo facturado de la misma póliza con el mismo efecto y vencimiento (" & recant.Codigorecibo & ")" Else ir.Mensaje = "Existe otro recibo de la misma póliza con el mismo efecto y vencimiento (" & recant.Codigorecibo & ")" If ListadoRecibosDuplicados IsNot Nothing Then ListadoRecibosDuplicados.Add(recant.Codigorecibo) End If End If Else ir.Correcto = False ir.Corregible = True RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) If recant Is Nothing Then ir.Mensaje = "Existe otro recibo de la misma póliza con el mismo efecto y vencimiento en otro fichero (F.Efecto Anterior a un Mes) (" & recantFichs.Código_Recibo & ")" Else ir.Mensaje = "Existe otro recibo de la misma póliza con el mismo efecto y vencimiento (F.Efecto Anterior a un Mes) (" & recant.Codigorecibo & ")" End If End If Else ir.Correcto = False ir.Corregible = True RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) ir.Mensaje = "Recibo Con fecha de efecto anterior a la permitida." End If Else If Now.Subtract(Rec.FechaEfecto).TotalDays > 365 Then ir.Mensaje = "Recibo ya existente (Anterior a un año)" Else ir.Mensaje = "Recibo ya existente" End If ir.Correcto = False ir.Corregible = False RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) End If Else ' ir.Correcto = False ' ir.Corregible = False RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False, True) ' ir.Mensaje = "Recibo Duplicado en el fichero" End If ir.Tomador = pol.Tomador.RazonSocial ir.Matrícula = pol.Matricula ir.Bienes_Asegurados = pol.BienesAsegurados ir.Agente = agentes.First(Function(x) x.idAgente = pol.idAgente).Nombre ir.Subagente = If(pol.idSubAgente.HasValue = False, "", subagentes.First(Function(x) x.idSubagente = pol.idSubAgente.Value).Nombre) ir.Ramo = ramos.First(Function(x) x.idRamo = pol.idRamo).Descripcion ir.IBAN = pol.IBAN ir.Comisión = ir.Comisión_Prevista_ASEGASA ir.Sobrecomisión = 0 Else ir.Correcto = False ir.Corregible = False ir.Mensaje = "Póliza no encontrada" End If Catch ex As Exception Throw New Exception("Error Incorporando Recibo: " & nre & " Póliza: " & npo, ex) End Try End If sLine = clsReader.ReadLine Loop ' End If Catch ex As Exception Throw New Exception("Error Incorporando " & f.NombreFichero & " Compañia: " & "0037", ex) End Try Next If GuardarCambios Then Dim rcc = Lrai.Where(Function(x) x.Correcto).ToList Dim rnp = Lrai.Where(Function(x) x.Correcto = False).ToList ' Dim raa = lrai.Where(Function(x) x.Actualizado).ToList If MarcarFicheros Then GuardaRecibosEIAC(bd, Lrai, Nothing, Nothing, Nothing, MostrarProgreso, Ficheros, comsCia, comsAge, ldur) Else GuardaRecibosEIAC(bd, Lrai, Nothing, Nothing, Nothing, MostrarProgreso, Nothing, comsCia, comsAge, ldur) End If GeneraEmailRecibosIncorporados(Lrai, Nothing, rnp, Nothing, Nothing) End If End If 'If MostrarProgreso Then ' DXSplashScreen.Close() 'End If ' Return lrai Catch EX As Exception If MostrarProgreso AndAlso DXSplashScreen.IsActive Then DXSplashScreen.Close() Throw New Exception(EX.Message, EX) ' bdGestionAsegasa.Utilidades.AñadeLog(TipoLog.Fallo, "En ImportaRecibosEIAC " & Compañia, EX.Message, EX) End Try End Sub Public Shared Sub ImportaRecibosPrevisionMallorquina(bd As bdGestionAsegasa.gestionasegasaEntities, Lrai As List(Of ReciboAIncorporar), ByRef iNumfic As Integer, NumTotFics As Integer, Ficheros As List(Of ficheroscompanias), Busqueda As String, MostrarProgreso As Boolean, GuardarCambios As Boolean, MarcarFicheros As Boolean, Optional ByRef ListadoRecibosDuplicados As List(Of String) = Nothing) Try If MostrarProgreso Then ' DXSplashScreen.Show(Of SplashScreenTecnosis)() DXSplashScreen.SetState("Incorporando recibos de PREVISION MALLORQUINA ...") End If Dim cia = bd.companias.First(Function(x) x.Codigo = "0024") If Ficheros.Count > 0 Then Dim ldur = bd.enumeraciones.Where(Function(x) x.gruposenumeraciones.Grupo = "DUR").ToList Dim idTipoPagoCIA = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.CIA").idEnumeracion Dim TiposRecibos = bd.enumeraciones.Where(Function(x) x.gruposenumeraciones.Grupo = "TRC").ToList Dim pols = bd.polizassg.Include("entidadespolizas.entidades").Where(Function(x) x.idCompania = cia.idCompania).ToList Dim recs = bd.recibos.Where(Function(x) x.polizassg.idCompania = cia.idCompania).Select(Function(x) New With {.idRecibo = x.idRecibo, .Codigorecibo = x.CodigoRecibo, .NumeroRecibo = x.NumeroRecibo, .idPoliza = x.idPoliza, .NumeroPoliza = x.polizassg.NumeroPoliza, .NumeroSuplemento = x.polizassg.NumeroSuplemento, .FechaEfecto = x.FechaEfecto, .FechaVencimiento = x.FechaVencimiento, .FechaBaja = x.FechaBaja, .FechaFacturacion = x.FechaFacturacion}).ToList Dim agentes = bd.agentes.ToList Dim subagentes = bd.subagentes.ToList Dim ramos = bd.ramos.ToList Dim comsCia = bd.comisionescompanias.Where(Function(x) x.idCompania = cia.idCompania).ToList Dim comsAge = bd.comisionesagentes.ToList For Each f In Ficheros If MostrarProgreso Then DXSplashScreen.SetState("Comprobando " & f.NombreFichero) End If iNumfic += 1 Try Dim iNumrec As Integer = 0 Dim wb As New Workbook wb.LoadDocument(f.Fichero, DevExpress.Spreadsheet.DocumentFormat.Xlsx) Dim i As Integer = 2 If wb.Worksheets(0).Cells("A3").Value.ToString = "Mediador" Then i = 4 Do Until wb.Worksheets(0).Cells("A" & i.ToString).Value.ToString = "" Dim npo = wb.Worksheets(0).Cells("D" & i.ToString).Value.ToString.Replace("'", "").Trim Dim nre = wb.Worksheets(0).Cells("N" & i.ToString).Value.ToString.Replace("'", "").Trim Dim Pne = wb.Worksheets(0).Cells("J" & i.ToString).Value.NumericValue Dim Pnerc = Pne Dim Bon = 0 Dim Con = wb.Worksheets(0).Cells("K" & i.ToString).Value.NumericValue ' Dim Conrc = Con Dim Ipu = 0 Dim Ipurc = Ipu Dim Pneom As Double = 0 Dim Conom As Double = 0 Dim Ipuom As Double = 0 Dim Pneoc As Double = 0 Dim Conoc As Double = 0 Dim Ipuoc As Double = 0 Dim Fef As Date Dim Fve As Date Dim Imp = Pne + Con + Ipu Fef = tsl5.Extensiones.StringExtensions.FechaStringADate(wb.Worksheets(0).Cells("F" & i.ToString).Value.ToString, False) Fve = Fef.AddYears(1) Dim bIncluir As Boolean = False If f.idFichero = 2584 Then Debug.WriteLine("aqui") If Busqueda <> "" Then If npo.Contains(Busqueda) Or nre.Contains(Busqueda) Then bIncluir = True End If Else bIncluir = True End If If bIncluir Then Try iNumrec += 1 Dim ir As New bdGestionAsegasa.ReciboAIncorporar Lrai.Add(ir) ir.Correcto = False ir.Fecha_Efecto = Fef ir.Fecha_Vencimiento = Fve ir.Número_Fichero = f.idFichero ir.Fecha_Fichero = f.FechaCreacion ir.Fecha_Procesado = f.FechaProcesado ir.Usuario_Procesado = If(f.usuarios IsNot Nothing, f.usuarios.Nombre, "") ir.Código_Cia = f.companias.Codigo ir.idCompañia = f.idCompania ir.Código_Recibo = cia.Codigo & "/" & nre If MostrarProgreso Then DXSplashScreen.SetState("Incorporando Recibos. Fichero (" & iNumfic.ToString & "/" & NumTotFics.ToString & "). " & "Recibo (" & iNumrec.ToString & "): " & ir.Código_Recibo) Dim pol As polizassg pol = pols.Where(Function(x) x.NumeroPoliza = npo And x.FechaBaja.HasValue = False And x.companias.Codigo = cia.Codigo And x.RechazoSuplemento = False).OrderByDescending(Function(x) x.NumeroSuplemento).FirstOrDefault If pol Is Nothing Then If npo.Substring(0, 1) = "0" Then npo = npo.Substring(1) pol = pols.Where(Function(x) x.NumeroPoliza = npo And x.FechaBaja.HasValue = False And x.companias.Codigo = cia.Codigo And x.RechazoSuplemento = False).OrderByDescending(Function(x) x.NumeroSuplemento).FirstOrDefault End If End If If pol Is Nothing Then pol = pols.Where(Function(x) x.NumeroPoliza = npo And x.companias.Codigo = cia.Codigo And x.RechazoSuplemento = False).OrderByDescending(Function(x) x.NumeroSuplemento).FirstOrDefault ir.Número_Póliza = npo Dim idTipoRecibo As Integer If Imp < 0 Then idTipoRecibo = TiposRecibos.First(Function(x) x.Codigo = "TRC.CX").idEnumeracion Else idTipoRecibo = TiposRecibos.First(Function(x) x.Codigo = "TRC.C").idEnumeracion End If ir.Tipo = TiposRecibos.First(Function(X) X.idEnumeracion = idTipoRecibo).Descripcion If pol IsNot Nothing Then ir.Observaciones = pol.Observaciones ' columna n fecha de pago y tipo de pago siempre cia ' If r.Situacion_Recibo = "COBRADO" AndAlso r.Forma_Pago_Recibida = "CUENTA BANCARIA" AndAlso r.Fecha_Situacion.HasValue Then ir.Tipo_Pago = idTipoPagoCIA pol.idTipoPago = idTipoPagoCIA ir.Forma_Pago_Recibida = "CUENTA BANCARIA" ir.Situacion_Recibo = "COBRADO" ir.Fecha_Situacion = Now If Not Lrai.Any(Function(x) x.Código_Recibo = ir.Código_Recibo And x.Correcto) Then Dim Rec = recs.Where(Function(x) x.Codigorecibo = ir.Código_Recibo).FirstOrDefault If Rec Is Nothing Then If ir.Fecha_Efecto.AddMonths(1) > Today Then Dim recant = recs.FirstOrDefault(Function(X) X.idPoliza = pol.idPoliza And X.FechaEfecto = ir.Fecha_Efecto And X.FechaVencimiento = ir.Fecha_Vencimiento And X.Codigorecibo <> ir.Código_Recibo) Dim recantFichs = Lrai.Where(Function(x) x.Poliza IsNot Nothing).FirstOrDefault(Function(x) x.Poliza.idPoliza = pol.idPoliza And x.Fecha_Efecto = ir.Fecha_Efecto And x.Fecha_Vencimiento = ir.Fecha_Vencimiento And x.Código_Recibo <> ir.Código_Recibo) If (recant Is Nothing AndAlso recantFichs Is Nothing) OrElse (recant IsNot Nothing AndAlso (recant.FechaEfecto.AddMonths(1) > Date.Today And nre.Contains(recant.NumeroRecibo) = False)) Then If Imp <> 0 Then ir.Mensaje = "Recibo Correcto" Else ir.Mensaje = "Recibo con Prima Neta = 0" End If ir.Correcto = True ir.Corregible = True RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) If recant IsNot Nothing Then If recant.FechaFacturacion.HasValue Then ir.Mensaje = "Existe otro recibo facturado de la misma póliza con el mismo efecto y vencimiento (" & recant.Codigorecibo & ")" Else ir.Mensaje = "Existe otro recibo de la misma póliza con el mismo efecto y vencimiento (" & recant.Codigorecibo & ")" If ListadoRecibosDuplicados IsNot Nothing Then ListadoRecibosDuplicados.Add(recant.Codigorecibo) End If End If Else ir.Correcto = False ir.Corregible = True RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) If recant Is Nothing Then ir.Mensaje = "Existe otro recibo de la misma póliza con el mismo efecto y vencimiento en otro fichero (F.Efecto Anterior a un Mes) (" & recantFichs.Código_Recibo & ")" Else ir.Mensaje = "Existe otro recibo de la misma póliza con el mismo efecto y vencimiento (F.Efecto Anterior a un Mes) (" & recant.Codigorecibo & ")" End If End If Else ir.Correcto = False ir.Corregible = True RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) ir.Mensaje = "Recibo Con fecha de efecto anterior a la permitida." End If Else If Now.Subtract(Rec.FechaEfecto).TotalDays > 365 Then ir.Mensaje = "Recibo ya existente (Anterior a un año)" Else ir.Mensaje = "Recibo ya existente" End If ir.Correcto = False ir.Corregible = False RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) End If Else ir.Correcto = False ir.Corregible = False RellenaDatosRecibo(cia.Codigo, ir, f, pol, 0, comsCia, comsAge, TiposRecibos, idTipoRecibo, Pne, 0, Imp, False, False) ir.Mensaje = "Recibo Duplicado en el fichero" End If ir.Tomador = pol.Tomador.RazonSocial ir.Matrícula = pol.Matricula ir.Bienes_Asegurados = pol.BienesAsegurados ir.Agente = agentes.First(Function(x) x.idAgente = pol.idAgente).Nombre ir.Subagente = If(pol.idSubAgente.HasValue = False, "", subagentes.First(Function(x) x.idSubagente = pol.idSubAgente.Value).Nombre) ir.Ramo = ramos.First(Function(x) x.idRamo = pol.idRamo).Descripcion ir.IBAN = pol.IBAN ir.Comisión = ir.Comisión_Prevista_ASEGASA ir.Sobrecomisión = 0 Else ir.Correcto = False ir.Corregible = False ir.Mensaje = "Póliza no encontrada" End If Catch ex As Exception Throw New Exception("Error Incorporando Recibo: " & nre & " Póliza: " & npo, ex) End Try End If i += 1 Loop Catch ex As Exception Throw New Exception("Error Incorporando " & f.NombreFichero & " Compañia: " & "0024", ex) End Try Next If GuardarCambios Then Dim rcc = Lrai.Where(Function(x) x.Correcto).ToList Dim rnp = Lrai.Where(Function(x) x.Correcto = False).ToList If MarcarFicheros Then GuardaRecibosEIAC(bd, Lrai, Nothing, Nothing, Nothing, MostrarProgreso, Ficheros, comsCia, comsAge, ldur) Else GuardaRecibosEIAC(bd, Lrai, Nothing, Nothing, Nothing, MostrarProgreso, Nothing, comsCia, comsAge, ldur) End If GeneraEmailRecibosIncorporados(Lrai, Nothing, rnp, Nothing, Nothing) End If End If 'If MostrarProgreso Then ' DXSplashScreen.Close() 'End If Catch EX As Exception If MostrarProgreso AndAlso DXSplashScreen.IsActive Then DXSplashScreen.Close() Throw New Exception(EX.Message, EX) End Try End Sub #End Region Public Property BloquearFacturacion As Boolean Get If Utilidades.idSitr1.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto Utilidades.idSitr1 = bd.enumeraciones.First(Function(x) x.Codigo = "SITR.1").idEnumeracion End If Return If(Me.idSituacion.HasValue = False, False, (Me.idSituacion.Value = Utilidades.idSitr1)) End Get Set(value As Boolean) If Utilidades.idSitr1.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto Utilidades.idSitr1 = bd.enumeraciones.First(Function(x) x.Codigo = "SITR.1").idEnumeracion End If If value Then Me.idSituacion = Utilidades.idSitr1 Else Me.idSituacion = Nothing End If End Set End Property Public Property idAgente_Nulable As Integer? Get If Me.idAgente = 0 Then Return Nothing Else Return Me.idAgente End If End Get Set(value As Integer?) If value.HasValue Then Me.idAgente = value.Value OnPropertyChanged("idCliente_Nulable") End Set End Property Friend Shared Sub GuardandoCambios(bd As bdGestionAsegasa.gestionasegasaEntities, Aplicacion As String) Dim recs As IEnumerable(Of ObjectStateEntry) = Nothing Dim pols As IEnumerable(Of ObjectStateEntry) = Nothing Dim ents As IEnumerable(Of ObjectStateEntry) = Nothing Dim eps As IEnumerable(Of ObjectStateEntry) = Nothing Dim dirs As IEnumerable(Of ObjectStateEntry) = Nothing Dim docsp As IEnumerable(Of ObjectStateEntry) = Nothing Dim gests As IEnumerable(Of ObjectStateEntry) = Nothing recs = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "recibos") pols = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "polizassg") eps = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "entidadespolizas") ents = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "entidades") dirs = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "direcciones") docsp = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "documentospolizassg") gests = bd.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).Where(Function(x) x.EntitySet.Name.ToLower = "gestionespolizassg") Try Dim bdtmp = bdGestionAsegasa.gestionasegasaEntities.NuevoContextoCN Dim su = If(bd.Aplicacion IsNot Nothing, bd.Aplicacion.ModoSuperUsuario, False) For Each m In recs Dim ra = DirectCast(m.Entity, recibos) Dim reant = bdtmp.recibos.First(Function(x) x.idRecibo = ra.idRecibo) Dim lrec = bdGestionAsegasa.logs.GeneraLog(bdtmp, "RECIBOS", reant.idRecibo, Nothing, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(reant), su, Aplicacion) Dim polant = bdtmp.polizassg.First(Function(x) x.idPoliza = reant.idPoliza) If reant.idRemesa.HasValue Then bdGestionAsegasa.logs.GeneraLog(bdtmp, "REMESAS", reant.idRemesa, lrec, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(reant.remesas), su, Aplicacion) If reant.asientos IsNot Nothing Then bdGestionAsegasa.logs.GeneraLog(bdtmp, "ASIENTODEVUELTOBANCO", reant.idRecibo, lrec, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(reant.asientos), su, Aplicacion) If reant.asientos1 IsNot Nothing Then bdGestionAsegasa.logs.GeneraLog(bdtmp, "ASIENTOFACTURACION", reant.idRecibo, lrec, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(reant.asientos1), su, Aplicacion) Dim lr = bdGestionAsegasa.logs.GeneraLog(bdtmp, "POLIZASSG", reant.idPoliza, lrec, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(polant), su, Aplicacion) Dim lep = polant.entidadespolizas.ToList bdGestionAsegasa.logs.GeneraLog(bdtmp, "ENTIDADESPOLIZAS", reant.idPoliza, lrec, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(lep), su, Aplicacion) For Each ent In lep Dim lrent = bdGestionAsegasa.logs.GeneraLog(bdtmp, "ENTIDADES", ent.idEntidad, lr, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(ent.entidades), su, Aplicacion) If ent.entidades.direcciones1 IsNot Nothing Then bdGestionAsegasa.logs.GeneraLog(bdtmp, "DIRECCIONES", ent.entidades.direcciones1.idDireccion, lrent, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(ent.entidades.direcciones1), su, Aplicacion) Next Dim ges = reant.gestionesrecibos.ToList bdGestionAsegasa.logs.GeneraLog(bdtmp, "GESTIONESRECIBOS", reant.idRecibo, lrec, "REGISTRO_COMPLETO", tsl5.Utilidades.Serializar(ges), su, Aplicacion) Next Catch ex As Exception Dim sListaCambios As String = "" If pols IsNot Nothing Then For Each m In pols Dim ra = DirectCast(m.Entity, polizassg) sListaCambios &= "polizassg idPoliza:" & ra.idPoliza & "; " Next End If sListaCambios = sListaCambios.Trim.TrimEnd(";") & vbCrLf If ents IsNot Nothing Then For Each m In ents Dim ra = DirectCast(m.Entity, entidades) sListaCambios &= "entidades idEntidad:" & ra.idEntidad & "; " Next End If sListaCambios = sListaCambios.Trim.TrimEnd(";") & vbCrLf If eps IsNot Nothing Then For Each m In eps Dim ra = DirectCast(m.Entity, entidadespolizas) sListaCambios &= "entidadespoliza idEntidadPoliza:" & ra.idEntidadPoliza & "; " Next End If sListaCambios = sListaCambios.Trim.TrimEnd(";") & vbCrLf If dirs IsNot Nothing Then For Each m In dirs Dim ra = DirectCast(m.Entity, direcciones) sListaCambios &= "direcciones idDireccion:" & ra.idDireccion & "; " Next End If If docsp IsNot Nothing Then For Each m In docsp Dim ra = DirectCast(m.Entity, documentospolizassg) sListaCambios &= "documentos idDocumento:" & ra.idDocumento & "; " Next End If If gests IsNot Nothing Then For Each m In dirs Dim ra = DirectCast(m.Entity, gestionespolizassg) sListaCambios &= "direcciones idGestionPoliza:" & ra.idGestionPoliza & "; " Next End If Call Utilidades.AñadeLog(tsl5.Enumeraciones.TipoLog.Fallo, "En GuardandoCambios", ex.Message & vbCrLf & sListaCambios, ex) End Try End Sub Public ReadOnly Property NombreSubAgente As String Get If Me.idSubagente.HasValue Then Return subagentes.ListaSubAgentes.First(Function(x) x.idSubagente = Me.idSubagente).Nombre Else Return "" End If End Get End Property Public Sub RefrescaNombreSubAgente() Me.OnPropertyChanged("NombreSubAgente") End Sub Private Shared _idCabaSUPL As Integer? Public Shared Function idCabaSUPL() As Integer If _idCabaSUPL.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto _idCabaSUPL = bd.enumeraciones.First(Function(x) x.Codigo = "CABA.SUPL").idEnumeracion End If Return _idCabaSUPL End Function Private Shared _idCabaFP As Integer? Public Shared Function idCabaFP() As Integer If _idCabaFP.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto _idCabaFP = bd.enumeraciones.First(Function(x) x.Codigo = "CABA.FP").idEnumeracion End If Return _idCabaFP End Function Private Shared _idCabaCIE As Integer? Public Shared Function idCabaCIE() As Integer If _idCabaCIE.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto _idCabaCIE = bd.enumeraciones.First(Function(x) x.Codigo = "CABA.CIE").idEnumeracion End If Return _idCabaCIE End Function Private Shared ListadoBancos As List(Of bancos) Private Shared _idTippba As Integer? Private Shared _idTippCIA As Integer? Private Shared _idTippFAE As Integer? Private Sub RellenaListadoBancos() Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto ListadoBancos = bd.bancos.ToList End Sub Public Shared Function idTippBA() As Integer If _idTippba.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto _idTippba = bd.enumeraciones.First(Function(x) x.Codigo = "TIPP.BA").idEnumeracion End If Return _idTippba End Function Public Shared Function idtippCIA() As Integer If _idTippCIA.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto _idTippCIA = bd.enumeraciones.First(Function(x) x.Codigo = "TIPP.CIA").idEnumeracion End If Return _idTippCIA End Function Public Shared Function idtippFAE() As Integer If _idTippFAE.HasValue = False Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto _idTippFAE = bd.enumeraciones.First(Function(x) x.Codigo = "TIPP.FAE").idEnumeracion End If Return _idTippFAE End Function Public ReadOnly Property DiferenciaComision As Double Get Dim cp As Double = If(Me.ComisionPrevistaAsegasa.HasValue, Me.ComisionPrevistaAsegasa.Value, 0) If cp = 0 Then cp = If(Me.ComisionPrevista.HasValue, Me.ComisionPrevista.Value, 0) Dim c As Double = If(Me.ComisionReciboPrimaNeta.HasValue, Me.ComisionReciboPrimaNeta.Value, 0) Return c - cp End Get End Property Public ReadOnly Property DiferenciaComisionAgente As Double Get Dim cp As Double = If(Me.ComisionPrevista.HasValue, Me.ComisionPrevista.Value, 0) Dim c As Double = If(Me.ComisionReciboPrimaNeta.HasValue, Me.ComisionReciboPrimaNeta.Value, 0) Return c - cp End Get End Property Public ReadOnly Property idSubAgente_Especial As Integer? Get If Me.idSubagente.HasValue AndAlso Me.agentes.Codigo = "000047002186" Then Dim bd As gestionasegasaEntities = Me.ObtieneContexto Dim Codigo = Me.subagentes.Codigo.Substring(0, 2) & "00" Dim subage = bd.subagentes.FirstOrDefault(Function(x) x.idAgente = Me.idAgente And x.Codigo = Codigo) If subage IsNot Nothing Then Return subage.idSubagente Else Return Nothing End If Else Return idSubagente End If End Get End Property Public ReadOnly Property Banco As String Get If ListadoBancos Is Nothing Then RellenaListadoBancos() If Me.IBAN.NothingAVacio <> "" Then If Me.IBAN.Length <> 24 Then Return "** IBAN ERRONEO **" Else Dim codban = Me.IBAN.Substring(4, 4) Dim b = ListadoBancos.FirstOrDefault(Function(x) x.Codigo = codban) If b IsNot Nothing Then Return b.Nombre Else Return "" End If End If Else Return "" End If End Get End Property Public ReadOnly Property IBAN_Parcial As String Get If Me.IBAN.NothingAVacio.Length <> 24 Then Return "** IBAN ERRONEO **" Else Return Me.IBAN.Substring(0, 10) & "XXXXXXXX" & Me.IBAN.Substring(18) End If End Get End Property Public ReadOnly Property IBANCorrecto As Boolean Get If Me.idTipoPago = idTippBA() Then Return tsl5.Bancos.Genericas.IBANCorrecto(Me.IBAN) Else Return True End If End Get End Property Public ReadOnly Property OficinaAgente As String Get If Me.agentes IsNot Nothing Then Return Me.agentes.OficinaAgente Else Return "" End If End Get End Property Public ReadOnly Property DescripcionSuplemento As String Get If Me.polizassg.recibos.Any Then If Me.polizassg.recibos.OrderBy(Function(x) x.FechaEfecto).First.idRecibo = Me.idRecibo Then Return Me.polizassg.DescripcionSuplemento Else Return "" End If Else Return Me.polizassg.DescripcionSuplemento End If End Get End Property Public Property FormaComunicacionTMP As FormaComunicacionEnum Public ReadOnly Property DescripcionFormaComunicacion As String Get Return FormaComunicacionTMP.ToString.Replace("_", " ") End Get End Property Public ReadOnly Property DescripcionFormaPago As String Get If Me.idTipoPago.HasValue Then Return Me.enumeraciones2.Descripcion Else Return "" End If End Get End Property Public ReadOnly Property Estado As EstadoRecibo Get Dim est As EstadoRecibo = EstadoRecibo.PENDIENTE If Me.idRemesa.HasValue Then est = EstadoRecibo.REMESADO If Me.idTipoPago = gestionasegasaEntities.TipoPagoCia OrElse Me.idTipoPago = gestionasegasaEntities.TipoPagoFAE Then est = EstadoRecibo.GESTION_COBRO_CIA If Me.FechaLiquidacionAgente.HasValue Then est = EstadoRecibo.LIQUIDADO If Me.FechaBaja.HasValue Then est = EstadoRecibo.BAJA If Me.FechaDevolucionBanco.HasValue Then est = EstadoRecibo.DEVUELTO_BANCO ' If Me.FechaDevolucionCompania.HasValue Then est = EstadoRecibo.DEVUELTO_CIA Return est End Get End Property Public ReadOnly Property NombreBanco As String Get If Me.IBAN.NothingAVacio <> "" Then If IBAN.Length = 24 Then 'IBAN.Length <> 24 Then Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContexto() Dim banco = bd.bancos.Where(Function(x) x.Codigo = IBAN.Substring(4, 4)) If banco.Any Then Return banco.First.Nombre Else Return "** DESCONOCIDO **" End If Else Return "** IBAN ERRONEO **" End If Else Return "" End If End Get End Property Public ReadOnly Property idLiquidacionAgente As Integer Get If Me.liquidacionesagenterecibos.Any(Function(x) x.liquidacionesagentes.enumeraciones.Codigo = "TIPLIQAG.LIQUIDACION") Then Return Me.liquidacionesagenterecibos.Where(Function(x) x.liquidacionesagentes.enumeraciones.Codigo = "TIPLIQAG.LIQUIDACION").OrderByDescending(Function(x) x.liquidacionesagentes.Fecha).First.liquidacionesagentes.idLiquidacionAgente Else Return Nothing End If End Get End Property Public ReadOnly Property FechaLiquidacionAgente As Date? Get If Me.liquidacionesagenterecibos.Any(Function(x) x.liquidacionesagentes.enumeraciones.Codigo = "TIPLIQAG.LIQUIDACION") Then Return Me.liquidacionesagenterecibos.Where(Function(x) x.liquidacionesagentes.enumeraciones.Codigo = "TIPLIQAG.LIQUIDACION").OrderByDescending(Function(x) x.liquidacionesagentes.Fecha).First.liquidacionesagentes.Fecha Else Return Nothing End If End Get End Property Public ReadOnly Property CausaDevolucion As String Get If Me.enumeraciones4 IsNot Nothing Then Return Me.enumeraciones4.Descripcion Else Return "" End If End Get End Property Public ReadOnly Property TipoRecibo As String Get If Me.enumeraciones1 IsNot Nothing Then Return Me.enumeraciones1.Descripcion Else Return "" End If End Get End Property Public ReadOnly Property CausaBaja As String Get If Me.enumeraciones3 IsNot Nothing Then Return Me.enumeraciones3.Descripcion Else Return "" End If End Get End Property Public ReadOnly Property TipoPago As String Get If Me.enumeraciones2 IsNot Nothing Then Return Me.enumeraciones2.Descripcion Else Return "" End If End Get End Property Public ReadOnly Property CamposAComprobar As String Get Dim sFechaBaja As String = If(Me.FechaBaja.HasValue, Me.FechaBaja.Value.ToString("yyyyMMdd"), "0") Dim sFechaPago As String = If(Me.FechaPago.HasValue, Me.FechaPago.Value.ToString("yyyyMMdd"), "0") Dim sFechaRemesa As String = If(Me.idRemesa.HasValue, Me.remesas.Fecha.Value.ToString("yyyyMMdd"), "0") Dim sNumeroRemesa As String = If(Me.idRemesa.HasValue, Me.remesas.idRemesa.ToString, "") Return (Me.CodigoRecibo & "|" & sFechaBaja & "|" & sFechaPago & "|" & sFechaRemesa & "|" & sNumeroRemesa) End Get End Property Public ReadOnly Property LimiteEfectoSobrePasadoFechaBaja As Boolean Get Dim DiasLimite As Integer If Me.TipoRecibo.Contains("CARTERA") Then DiasLimite = Me.polizassg.companias.NumeroDiasLimiteFBCartera Else DiasLimite = Me.polizassg.companias.NumeroDiasLimiteFBEmision End If Return Me.FechaEfecto < Today.AddDays(DiasLimite) End Get End Property Public Enum TipoOrigenRecibo OTROS = 0 IMPORTACION_EIAC = 1 End Enum Public Enum EstadoRecibo PENDIENTE = 0 'NEGRO REMESADO = 1 ' AZUL GESTION_COBRO_CIA = 2 'VERDE DEVUELTO_BANCO = 3 'NARANJA BAJA = 4 'MARRON ' DEVUELTO_CIA = 5 'ROJO LIQUIDADO = 6 ' VIOLETA End Enum