-- Insert Seguimiento
INSERT INTO TESISSEG.dbo.PolSeg (EmpID, PolNumID, PolSegID, PolSegFec, UseID, PolSegSAge, PolSegDes, PolSegFecAcc)
SELECT
    p.EmpID,
    p.PolNumID,
    ISNULL((SELECT MAX(ps.PolSegID) FROM TESISSEG.dbo.PolSeg ps WHERE ps.PolNumID = p.PolNumID AND ps.EmpID = p.EmpID), 0) + 1,
    CAST(FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000') AS DATE),
    ap.PAR_Valor,
    'BAJA',
    'Baja desde TBM Web.',
    GETDATE()
FROM TESISSEG.dbo.Polizas p
         LEFT JOIN TESISSEG.dbo.AS_PARAMETROS ap ON ap.EmpID = p.EmpID
    AND ap.PAR_Parametro = 'USUARIO_WEB_TESIS'
    AND (
                                                        (ap.PAR_Oficina_tesis IS NULL AND p.EmpDVID = 0)
                                                            OR
                                                        (ap.PAR_Oficina_tesis = p.EmpDVID)
                                                        )
WHERE p.PolSAge = 'VIGOR'
  AND p.PolFecBaja != '1753-01-01'
AND p.PolFecBaja != '1900-01-01'
AND p.EmpID < 8000
--Update
UPDATE p
SET p.PolSAge = 'BAJA'
    FROM TESISSEG.dbo.Polizas p
WHERE p.PolSAge = 'VIGOR'
  AND p.PolFecBaja != '1753-01-01'
  AND p.PolFecBaja != '1900-01-01'
  AND p.EmpID < 8000

-- Insert Seguimiento
INSERT INTO TESISSEG.dbo.PolSeg (EmpID, PolNumID, PolSegID, PolSegFec, UseID, PolSegSAge, PolSegDes, PolSegFecAcc)
SELECT
    p.EmpID,
    p.PolNumID,
    ISNULL((SELECT MAX(ps.PolSegID) FROM TESISSEG.dbo.PolSeg ps WHERE ps.PolNumID = p.PolNumID AND ps.EmpID = p.EmpID), 0) + 1,
    CAST(FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000') AS DATE),
    ap.PAR_Valor,
    'BAJA',
    'Baja desde TBM Web.',
    GETDATE()
FROM TESISSEG.dbo.Polizas p
         LEFT JOIN TESISSEG.dbo.AS_PARAMETROS ap ON ap.EmpID = p.EmpID
    AND ap.PAR_Parametro = 'USUARIO_WEB_TESIS'
    AND (
                                                        (ap.PAR_Oficina_tesis IS NULL AND p.EmpDVID = 0)
                                                            OR
                                                        (ap.PAR_Oficina_tesis = p.EmpDVID)
                                                        )
WHERE p.PolSAge = 'FINAL'
  AND p.PolFecBaja != '1753-01-01'
AND p.PolFecBaja != '1900-01-01'
AND p.PolFecBaja > p.PolFecFinCob
AND p.EmpID < 8000

--SELECT (HELPER) Polizas en estado FINAL
UPDATE p
SET p.PolSAge = 'BAJA'
    FROM TESISSEG.dbo.Polizas p
WHERE p.PolSAge = 'FINAL'
  AND p.PolFecBaja != '1753-01-01'
  AND p.PolFecBaja != '1900-01-01'
  AND p.PolFecBaja > p.PolFecFinCob
  AND p.EmpID < 8000

-- Insert Seguimiento
INSERT INTO TESISSEG.dbo.PolSeg (EmpID, PolNumID, PolSegID, PolSegFec, UseID, PolSegSAge, PolSegDes, PolSegFecAcc)
SELECT
    p.EmpID,
    p.PolNumID,
    ISNULL((SELECT MAX(ps.PolSegID) FROM TESISSEG.dbo.PolSeg ps WHERE ps.PolNumID = p.PolNumID AND ps.EmpID = p.EmpID), 0) + 1,
    CAST(FORMAT(GETDATE(), 'yyyy-MM-dd 00:00:00.000') AS DATE),
    ap.PAR_Valor,
    'BAJA',
    'Baja desde TBM Web.',
    GETDATE()
FROM TESISSEG.dbo.Polizas p
         LEFT JOIN TESISSEG.dbo.AS_PARAMETROS ap ON ap.EmpID = p.EmpID
    AND ap.PAR_Parametro = 'USUARIO_WEB_TESIS'
    AND (
                                                        (ap.PAR_Oficina_tesis IS NULL AND p.EmpDVID = 0)
                                                            OR
                                                        (ap.PAR_Oficina_tesis = p.EmpDVID)
                                                        )
         LEFT JOIN TESISSEG.dbo.Recibos r ON r.PolNumId = p.PolNumID AND r.EmpID = p.EmpID
WHERE p.PolSAge != 'BAJA'
AND p.PolFecBaja = '1900-01-01'
AND p.EmpID < 8000
AND r.RecSer IS NULL
--SELECT Polizas con fecha baja 1900 y no tienen recibos
UPDATE p
SET p.PolSAge = 'BAJA',
    p.PolFecBaja = '2000-01-01'
    FROM TESISSEG.dbo.Polizas p
LEFT JOIN TESISSEG.dbo.Recibos r ON r.PolNumId = p.PolNumID AND r.EmpID = p.EmpID
WHERE p.PolSAge != 'BAJA'
  AND p.PolFecBaja = '1900-01-01'
  AND p.EmpID < 8000
  AND r.RecSer IS NULL

--SELECT Polizas con fecha baja 1900 y recibos con mayor 2000
UPDATE p
SET p.PolFecBaja = '1753-01-01'
    FROM TESISSEG.dbo.Polizas p
WHERE p.PolSAge != 'BAJA'
  AND p.PolFecBaja = '1900-01-01'
  AND p.EmpID < 8000
  AND (
    SELECT COUNT(*)
    FROM TESISSEG.dbo.Recibos
    WHERE PolNumId = p.PolNumID AND EmpID = p.EmpID AND RecFecAlta >= '2000-01-01'
    ) > 0