Files
Asegasa.NET/chunk_imports1.txt
2026-04-28 11:52:16 +02:00

541 lines
41 KiB
Plaintext

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