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 Public Shared Function ImportaRecibosFicsCias(bd As bdGestionAsegasa.gestionasegasaEntities, 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, Optional ByRef ListadoRecibosAnulados As List(Of String) = Nothing, Optional ByRef ListadoRecibosActualizados As List(Of String) = Nothing) As List(Of ReciboAIncorporar) Try If MostrarProgreso Then DXSplashScreen.Show(Of SplashScreenTecnosis)() DXSplashScreen.SetState("Incorporando recibos EIAC ...") End If ' Dim bd = bdGestionAsegasa.gestionasegasaEntities.NuevoContextoCN() ' Dim cia = bd.companias.First(Function(x) x.Codigo = Compañia) Dim lrai As New List(Of bdGestionAsegasa.ReciboAIncorporar) If Ficheros.Count > 0 Then Dim ficsag = Ficheros.GroupBy(Function(x) x.idCompania).ToList 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 idTipoPagoFAE = bd.enumeraciones.First(Function(X) X.Codigo = "TIPP.CIA").idEnumeracion Dim TiposRecibos = bd.enumeraciones.Where(Function(x) x.gruposenumeraciones.Grupo = "TRC").ToList Dim agentes = bd.agentes.ToList Dim subagentes = bd.subagentes.ToList Dim ramos = bd.ramos.ToList Dim comsCiat = bd.comisionescompanias.ToList Dim comsAge = bd.comisionesagentes.ToList Dim iNumFic As Integer = 0 For Each grf In ficsag Dim idCompania = grf.First.idCompania Dim comsCia = bd.comisionescompanias.Where(Function(x) x.idCompania = idCompania).ToList Dim CodCia = grf.First.companias.Codigo Select Case CodCia Case "0037" ImportaRecibosPatriaHispana(bd, lrai, iNumFic, Ficheros.Count, grf.ToList, Busqueda, True, False, False, ListadoRecibosDuplicados) Case "0024" ImportaRecibosPrevisionMallorquina(bd, lrai, iNumFic, Ficheros.Count, grf.ToList, Busqueda, True, False, False, ListadoRecibosDuplicados) Case Else Dim pols = bd.polizassg.Include("entidadespolizas.entidades").Include("companias").Where(Function(x) x.idCompania = idCompania AndAlso x.NumeroPoliza IsNot Nothing).ToList Dim recs = ReciboReducido.ListadoReciboReducido(bd.recibos.Where(Function(x) x.polizassg.idCompania = idCompania)) For Each f In grf iNumFic += 1 Select Case f.Version.NothingAVacio Case "6.0" ImportaRecibosEIAC_V6(bd, f, iNumFic, Ficheros.Count, agentes, subagentes, ramos, comsCia, comsAge, pols, recs, TiposRecibos, lrai, Busqueda, MostrarProgreso, GuardarCambios, MarcarFicheros, ListadoRecibosDuplicados, ListadoRecibosAnulados) Case Else ImportaRecibosEIAC_V5(bd, f, iNumFic, Ficheros.Count, agentes, subagentes, ramos, comsCia, comsAge, pols, recs, TiposRecibos, lrai, Busqueda, MostrarProgreso, GuardarCambios, MarcarFicheros, ListadoRecibosDuplicados, ListadoRecibosAnulados) End Select Next End Select Next If GuardarCambios Then Dim rcc, rca, rnp, raa, rpec As List(Of ReciboAIncorporar) rcc = lrai.Where(Function(x) x.Correcto).ToList raa = lrai.Where(Function(x) x.Actualizado And x.Fecha_Procesado.HasValue = False).ToList rpec = lrai.Where(Function(x) x.PagadoEnCia And x.Fecha_Procesado.HasValue = False).ToList If ListadoRecibosAnulados IsNot Nothing Then Dim lra = ListadoRecibosAnulados rca = lrai.Where(Function(x) lra.Contains(x.Código_Recibo)).ToList rnp = lrai.Where(Function(x) x.Correcto = False And lra.Contains(x.Código_Recibo) = False).ToList Else rca = Nothing rnp = lrai.Where(Function(x) x.Correcto = False).ToList End If If MarcarFicheros Then GuardaRecibosEIAC(bd, rcc, ListadoRecibosAnulados, raa, rpec, MostrarProgreso, Ficheros, comsCiat, comsAge, ldur) Else GuardaRecibosEIAC(bd, rcc, ListadoRecibosAnulados, raa, rpec, MostrarProgreso, Nothing, comsCiat, comsAge, ldur) End If GeneraEmailRecibosIncorporados(rcc, rca, rnp, raa, rpec) 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 Function