Untitled
unknown
plain_text
a year ago
24 kB
5
Indexable
USE [Merlin] GO /****** Object: StoredProcedure [dbo].[ArchivoEnte_IPS] Script Date: 29/09/2023 18:14:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========================================================================================== -- Author: Sebastian Luaces -- Create date: ??? -- Description: Genera el archivo para enviar al IPS -- -- Especificacion original del formato de archivo: -- ??? (TODO: buscarlo por favor...) -- -- -- Modificado: Daniel -- Fecha: 2021-11-10 -- Descripcion: Se modifica para que no incluya las liquidaciones de tipo AJC -- -- Especificacion nueva del formato de archivo: -- ??? -- /* EXEC [dbo].[ArchivoEnte_IPS] 2021, 11, '20' */ ALTER PROCEDURE [dbo].[ArchivoEnte_IPS] ( @ptliq_Anio smallint, @ptliq_Mes smallint, @pprtn_Codigo char(2) = NULL ) AS SET NOCOUNT ON DECLARE @ltliq_Anio smallint = @ptliq_Anio DECLARE @ltliq_Mes smallint = @ptliq_Mes DECLARE @lprtn_Codigo char(2) = @pprtn_Codigo /* declare @ltliq_Anio smallint = 2018 declare @ltliq_Mes smallint = 12 declare @lprtn_Codigo char(2) = '30' declare @labo_Codigo as varchar(8) = '00060710' */ IF (@lprtn_Codigo = ' ') BEGIN SET @lprtn_Codigo = NULL --Significa que en la interface eligio - SIN PARTICION END declare @liq_AnioMes varchar(6) = convert(varchar, @ltliq_Anio) + right('00' + convert(varchar, @ltliq_Mes), 2) declare @pali_ResumenContable as datetime = NULL declare @gan_MinimoNoImponible as decimal(24, 4) = 15000 -- No lo se porque toma ese valor declare @ptliq_Dia date = convert(nchar, @ltliq_Anio) + '-' + convert(nchar, @ltliq_Mes) + '-01' -- Verifica que esta cerrada la liquidacion SELECT TOP 1 @pali_ResumenContable = pali_ResumenContable FROM ParametrosLiquidacion WHERE pali_Anio=@ltliq_Anio AND pali_Mes=@ltliq_Mes AND (prtn_Codigo = @lprtn_Codigo or @lprtn_Codigo is null) AND pali_GeneroHistorico > '19900101' AND pali_ResumenContable > '19900101' AND pali_ResumenContable IS NOT NULL IF (@pali_ResumenContable IS NULL) BEGIN RAISERROR('La liquidación no se encuentra cerrada', 16, 1); RETURN 0; END /************************************************************************************************************************/ /* a) Tabla DATOSEMP 1) Debe contener 1 (uno) solo registro, atento al punto 8) de este Manual 2) El Codigo de Empleador debe ser el mismo que se ingreso en DATOS DEL EMPLEADOR 3) Nombre del Empleador existente y debera poseer caracteres validos 4) Domicilio, Localidad y Codigo Postal deberan poseer caracteres validos en caso de ser informados 5) Nº CUIL : el mismo que se ingresó en DATOS DEL EMPLEADOR, de la sig. forma : Primeras 2 posiciones deben ser 30, 33, 34, 35, 36, 37 o 38 8 posiciones siguentes numerico con valor significativo Dígito final correcto a2) DATOSEMP.TXT (113 Pos) */ SELECT 'P10308' + --1) Código Empleador Carácter 6 1 6 CONVERT(nchar(40), 'CASINOS') + --2) Nombre Empleador Carácter 40 7 46 CONVERT(nchar(30), 'PERU 1385') + --3) Domicilio Carácter 30 47 76 CONVERT(nchar(20), 'TIGRE') + --4) Localidad Carácter 20 77 96 '001648' + --5) Código Postal Carácter 6 97 102 '30999268346' as Linea --6) Nº CUIT Carácter 11 103 113 /************************************************************************************************************************/ /************************************************************************************************************************/ /* b) Tabla AFILIADO 1) Idem punto 2) de a) 2) Tipo de Documento : 1-LE, 2-LC, 5-DNI, 6-Otros, 7-DNI Mujer, 8-DNI Varon 3) Nº de Documento : mayor ó igual a 60000 4) Nº CUIL : 1ras. 2 posiciones deben ser 20, 23, 24 o 27 8 posiciones siguientes igual al Nº Documento Dígitos final correcto 5) Nombre de Agente con longitud mayor a 3 y sin caracteres numéricos 6) Fecha de Nacimiento existente y edad comprendida entre 18 y 89 años 7) Nacionalidad : 1 ó 2 (Argentino - Extranjero) 8) Sexo : M-Masculino ó F-Femenino 9) Estado Civil : C-Casado, S-Soltero, D-Divorciado, V-Viudo ó R-Separado 10) Estudios : 0-No Informado, 1-Primario, 2-Secundario, 3-Terciario, 4-Superior 5-Universitario ó 6-No posee Estudios b2) AFILIADO.TXT (158 Pos) */ SELECT Distinct TL.tper_Codigo, TL.pers_Numero, 'P10308' + --1) Código Empleador Carácter 6 1 6 case TL.tper_Codigo when 1 then '5' --2) Tipo Documento Numérico 1 7 7 0 when 2 then '2' when 3 then '1' else '8' end + right(TL.pers_Numero, 8) + -- 3) Nº Documento Numérico 8 8 15 0 right(L.labo_CUIL, 11) + --4) Nº CUIL Carácter 11 16 26 convert(nchar(35), rtrim(P.pers_Apellido) + ' ' + rtrim(P.pers_Nombre)) + --5) Apellido y Nombres Carácter 35 27 61 convert(nchar(30), coalesce(rtrim(P.pers_Calle), '') + ' ' + coalesce(rtrim(P.pers_Altura), '') + ' ' + coalesce(rtrim(P.pers_piso), '') + ' ' + coalesce(rtrim(P.pers_Depto), '')) + --6) Domicilio Carácter 30 62 91 convert(nchar(20), coalesce(P.pers_Localidad, '')) + --7) Localidad Carácter 20 92 111 right(coalesce(P.pers_Codigopostal, '000000'), 6) + --8) Código Postal Carácter 6 112 117 convert(nchar(10), P.pers_FechaNacimiento, 103) + --9) Fecha Nacimiento Fecha 10 118 127 (DD/MM/AAAA) case P.naci_Codigo when 1 then '1' else '2' end + --10) Nacionalidad Carácter 1 128 128 case P.pers_Sexo when 'F' then 'F' else 'M' end + --11) Sexo Carácter 1 129 129 case P.esci_Codigo when 1 then 'C' --12) Estado Civil Carácter 1 130 130 when 2 then 'S' when 3 then 'R' when 5 then 'D' when 4 then 'V' else 'S' end + case est.prof_Codigo when 10 then '5' when 20 then '4' when 30 then '3' when 40 then '2' when 70 then '1' else '0' end + --13) Estudios Numérico 1 131 131 0 convert(nchar(25), coalesce(prof.prof_Descripcion, '')) + -- 14) Profesión Carácter 25 132 156 right('00' + convert(nvarchar, coalesce(fami.hijo_Cantidad, '')), 2) -- 15) Cantidad de Hijos Numérico 2 157 158 0 as Linea FROM HistoricoTotalesLiq TL INNER JOIN Laborales L ON TL.labo_Codigo = L.labo_Codigo INNER JOIN Persona P ON TL.tper_Codigo = P.tper_Codigo AND TL.pers_Numero=P.pers_Numero --INNER JOIN LaboralesCargos LC ON TL.labo_Codigo = LC.labo_Codigo AND TL.laca_Codigo = LC.laca_Codigo --INNER JOIN TipoPersona TPE ON TPE.tper_Codigo = TL.tper_Codigo INNER JOIN ParametrosLiquidacion PL ON TL.tliq_Anio = PL.pali_Anio AND TL.tliq_Mes=PL.pali_Mes AND TL.tliq_Numero=PL.pali_Numero --INNER JOIN Profesiones PR ON P.prof_Codigo = PR.prof_Codigo LEFT JOIN (SELECT tper_Codigo, pers_Numero, min(prof_Codigo) as prof_Codigo FROM [EstudiosPersona] as e GROUP BY tper_Codigo, pers_Numero ) as est ON TL.tper_Codigo = est.tper_Codigo AND TL.pers_Numero = est.pers_Numero LEFT JOIN [Profesiones] as prof on prof.prof_Codigo = est.prof_Codigo LEFT JOIN (SELECT [labo_Codigo], count(*) as hijo_Cantidad FROM [Familiares] WHERE fare_codigo = '01' AND @ptliq_Dia between fami_InicioRelacion and fami_VtoRelacion GROUP BY [labo_Codigo] ) as Fami ON Fami.labo_Codigo = L.labo_Codigo WHERE PL.pali_ResumenContable>'19000101' --Valor constante AND TL.tliq_Anio = @ltliq_Anio AND TL.tliq_Mes = @ltliq_Mes AND TL.tliq_Numero > 0 --Solo para que tome un indice IX AND (TL.prtn_Codigo = @lprtn_Codigo or @lprtn_Codigo is null) --AND TL.labo_Codigo = @labo_Codigo ORDER BY TL.tper_Codigo, TL.pers_Numero /************************************************************************************************************************/ /************************************************************************************************************************/ /* c) Tabla REVISTA 1) Idem puntos 1) 2) y 3) de b) 2) Nº de Legajo existente 3) Fecha de Ingreso del Empleador existente y menor o igual al Período Liquidado 4) Fecha de baja Nula ó (menor ó igual al Período Liquidado y mayor ó igual a la fecha de ingreso del Empleador) No hace mención a la columna Régimen Estatutario 5) Encuadre Previsional : 1-General, 2-Docente, 3-Insalubre, 4-Discapacitado, 5-Artístico, 6-Concejales, 7-Legisladores Provinciales, 8-Magistrados y Funcionarios Judiciales, 9-Consejeros Escolares, 10-Guardavidas, 11-Servicio Penitenciario y 12-Servicio Penitenciario Aum 6) Modalidad de Revista : P-Permanente, T-Temporario, R-Reemplazante, C-Contratado, H-Becario, I-Ad Honorem y X-Práctica Rentada 7) Agrupamiento : S-Servicio, O-Obrero, A-Administrativo, T-Técnico, P-Profesional, J-Jerárquico, R-Superior, B-Bloque Politico, D-Docente, C-Contratados ó N-Otros 8) Categoría de Revista existente y distinta de cero(0) 9) Categoría Funcional existente y distinta de cero. En caso de no poseer repetir la de Revista 10) Fecha de Posesión del Cargo existente y menor o igual al período liquidado 11) Régimen Horario : Municipios : solo existente y con valor razonable se admite cero para los Concejales Provinciales : 21, 24, 28 ,30, 35, 36, 40, 42, 44, 45 ó 48 para los encuadres Previsionales 1 y 3 Cualquier valor razonable para el resto 12) Forma de Pago : M-Mensual, Q-Quincenal, J-Jornalizado ó D-Destajo 13) Nº de Cargo mayor a cero e irrepetible por Agente FALTA LICENCIA Consignar si el agente tuvo algun periodo de licencia según la siguiente codificación: 1: Razones Gremiales 2: Enfermedad – con haberes al 50% 3: Enfermedad – sin haberes 4: Particulares – sin haberes 14) Nº de Dipregep : La Entidad DIRECCION GRAL DE ESCUELAS-DOCENTES SUBVENCIONADOS deberá informar el Nº correspondiente. El resto de las entidades deberán informar ceros(0). 15) Nº de CUE : Las Entidades DIRECCION GRAL DE CULTURA Y EDUCACION y DIRECCION GRAL DE CULTURA Y EDUCACION-DOCENTES SUBVENCIONADOS deberán informar el Nº correspondiente. El resto de las entidades deberán informar ceros(0). 16) Nº CUIL : Idem punto 4) de b) */ SELECT Distinct TL.tper_Codigo, TL.pers_Numero, 'P10308' + --1) Código Empleador Carácter 6 1 6 case TL.tper_Codigo when 1 then '5' --2) Tipo Documento Numérico 1 7 7 0 when 2 then '2' when 3 then '1' else '8' end + right(TL.pers_Numero, 8) + --3) Nº Documento Numérico 8 8 15 0 right(TL.labo_Codigo, 8) + --4) Legajo Carácter 8 16 23 convert(nchar(10), L.labo_FechaIngreso, 103) + --5) Fecha Ingreso a la Institutción Fecha 10 24 33 (DD/MM/AAAA) case when L.labo_FechaEgreso < '2100-01-01' then convert(nchar(10), L.labo_FechaEgreso, 103) else ' ' end + --6) Fecha Baja de la Institución Fecha 10 34 43 (DD/MM/AAAA) replicate(' ', 2) + --7) Régimen Estatutario Carácter 2 44 45 '01' + --8) Encuadre Previsional Carácter 2 46 47 CASE TL.tcar_Codigo WHEN 1 THEN 'P' ELSE 'T' END + --9) Modalidad d Revista Carácter 1 48 48 'N ' + --10) Agrupamiento Carácter 6 49 54 right('00000' + convert(nvarchar, TL.cate_Codigo), 5) + --11) Categoría Revista Carácter 5 55 59 right('00000' + convert(nvarchar, coalesce(R.cate_Codigo, TL.cate_Codigo)), 5) + --12) Categoría Funcional Carácter 5 60 64 left(CF.cafu_Descripcion + replicate(' ', 25), 25) + --13) Cargo Carácter 25 65 89 convert(nchar(10), coalesce(LC.laca_FechaIngresoCargo, L.labo_FechaIngreso), 103) + --14) Fecha Posesión del Cargo Fecha 10 90 99 (DD/MM/AAAA) '30' + -- 15) Régimen Horario Numérico 2 100 101 0 'M' + -- 16) Forma de Pago Carácter 1 102 102 case A.moau_Codigo when 9100 then '4' when 9120 then '2' when 9130 then '4' when 9140 then '5' when 9150 then '4' when 9160 then '1' when 9170 then '3' when 9180 then '4' else ' ' end + -- 17) Licencia Carácter 1 103 103 coalesce(convert(nchar(10), A.ause_FechaInicio, 103), replicate(' ', 10)) + -- 18) Fecha Licencia Fecha 10 104 113 (DD/MM/AAAA) coalesce(convert(nchar(10), A.ause_FechaFin, 103), replicate(' ', 10)) + -- 19) Fecha fin Licencia Fecha 10 114 123 (DD/MM/AAAA) right('00' + convert(nvarchar, convert(int, coalesce(AntigIPS.Antig, 0))), 2) + -- 20) Antiguedad Rec. IPS Numérico 2 124 125 0 right('00' + convert(nvarchar, convert(int, coalesce(AntigOtros.Antig, 0))), 2) + -- 21) Antiguedad Rec. Otras Numérico 2 126 127 0 replicate(' ', 1) + -- 22) Beneficio Previsional Numérico 1 128 128 replicate(' ', 2) + --23) Caja Otorgante Carácter 2 129 130 replicate(' ', 10) + --24) Fecha Beneficio Fecha 10 131 140 (DD/MM/AAAA) right(replicate('0', 4) + convert(nvarchar, TL.laca_Codigo), 4) + -- 25) Número de Cargo Númerico 4 141 144 0 replicate('0', 11) + -- 26) Número DIPREGEP(××) Númerico 11 145 155 0 replicate('0', 9) + -- 27) Número CUE (×××) Numérico 9 156 164 0 right(L.labo_CUIL, 11) -- 28) Nº CUIL Carácter 11 165 175 as Linea FROM HistoricoTotalesLiq TL INNER JOIN Laborales L ON TL.labo_Codigo = L.labo_Codigo INNER JOIN CargosFunciones CF ON CF.cafu_Codigo = TL.cafu_Codigo LEFT JOIN LaboralesCargos LC ON LC.labo_Codigo = TL.labo_Codigo AND @ptliq_Dia BETWEEN LC.laca_FechaIngresoCargo AND coalesce(LC.laca_FechaEgresoCargo, @ptliq_Dia) LEFT JOIN Reemplazos R ON R.labo_Codigo = TL.labo_Codigo AND @ptliq_Dia BETWEEN R.reem_FechaDesde AND coalesce(R.reem_FechaHasta, @ptliq_Dia) LEFT JOIN Ausencias A ON A.labo_Codigo = TL.labo_Codigo AND @ptliq_Dia BETWEEN A.ause_FechaInicio AND coalesce(A.ause_FechaFin, @ptliq_Dia) LEFT JOIN ( SELECT labo_Codigo, sum(liqu_Cantidad) as Antig FROM HistoricoLiquidaciones WHERE liqu_Anio = @ltliq_Anio AND liqu_Mes=@ltliq_Mes and conc_Codigo in ('01130', '01131', '01132') GROUP BY labo_Codigo ) as AntigIPS ON AntigIPS.labo_Codigo = TL.labo_Codigo LEFT JOIN ( SELECT labo_Codigo, sum(liqu_Cantidad) as Antig FROM HistoricoLiquidaciones WHERE liqu_Anio = @ltliq_Anio AND liqu_Mes=@ltliq_Mes and conc_Codigo in ('01030', '01040') GROUP BY labo_Codigo ) as AntigOtros ON AntigOtros.labo_Codigo = TL.labo_Codigo --INNER JOIN Persona P ON TL.tper_Codigo = P.tper_Codigo AND TL.pers_Numero=P.pers_Numero --INNER JOIN LaboralesCargos LC ON TL.labo_Codigo = LC.labo_Codigo AND TL.laca_Codigo = LC.laca_Codigo --INNER JOIN TipoPersona TPE ON TPE.tper_Codigo = TL.tper_Codigo INNER JOIN ParametrosLiquidacion PL ON TL.tliq_Anio = PL.pali_Anio AND TL.tliq_Mes=PL.pali_Mes AND TL.tliq_Numero=PL.pali_Numero --INNER JOIN Profesiones PR ON P.prof_Codigo = PR.prof_Codigo LEFT JOIN (SELECT tper_Codigo, pers_Numero, min(prof_Codigo) as prof_Codigo FROM EstudiosPersona as e GROUP BY tper_Codigo, pers_Numero ) as est ON TL.tper_Codigo = est.tper_Codigo AND TL.pers_Numero = est.pers_Numero LEFT JOIN [Profesiones] as prof on prof.prof_Codigo = est.prof_Codigo LEFT JOIN (SELECT [labo_Codigo], count(*) as hijo_Cantidad FROM [Familiares] WHERE fare_codigo = '01' AND @ptliq_Dia between fami_InicioRelacion and fami_VtoRelacion GROUP BY [labo_Codigo] ) as Fami ON Fami.labo_Codigo = L.labo_Codigo WHERE PL.pali_ResumenContable>'19000101' --Valor constante AND TL.tliq_Anio = @ltliq_Anio AND TL.tliq_Mes = @ltliq_Mes AND TL.tliq_Numero > 0 --Solo para que tome un indice IX AND (TL.prtn_Codigo = @lprtn_Codigo or @lprtn_Codigo is null) --AND TL.labo_Codigo = @labo_Codigo ORDER BY TL.tper_Codigo, TL.pers_Numero /************************************************************************************************************************/ /************************************************************************************************************************/ /* d) Tabla SALARIO 1) Idem 2) de a) 2) Período Liquidado de la forma AAAA/MM y único en la Liquidación 3) Número de Liquidación existente y único en toda la tabla (VER PUNTO 10) 4) Tipo de Liquidación : N-Normal, A-Adicional ó C-Complementaria 5) Tipo de Declaración Jurada : O-Original ó R-Rectificativa 6) Nº CUIL : Idem punto 4) de b) 7) Nº de Cargo coincidente con Revista 8) Código de Concepto del Empleador existente excepto para el Tipo de Concepto LIQ 9) Tipo de Concepto : RCA-Remuneraciones Con Aportes RSA-Remuneraciones Sin Aportes AFA-Asignaciones Familiares DES-Otros Descuentos DPS-Descuentos Previsionales DAS-Descuentos Asistenciales IOMA exclusivamente LIQ-Liquido a Cobrar 10) Descripción del Concepto existente 11) Importe distinto de cero (Solo para los tipos de concepto distintos de 'LIQ') 12) Idem punto 12) de c) 13) Encuadre Previsional coincidente con Revista 14) Modalidad de Revista coincidente con Revista */ /* */ --LINEAS DE DONDE SACO SALARIO.TXT SELECT TL.tper_Codigo, TL.pers_Numero, C.conc_Codigo, 'P10308' + -- 1) Código Empleador Carácter 6 1 6 convert(nvarchar, TL.tliq_Anio) + '/' + right ('00' + convert(nvarchar, TL.tliq_Mes), 2) + --2) período Liquidado Carácter 7 7 13 (AAAA/MM) '01' + --3) Nº de Liquidación Numérico 2 14 15 0 'N' + --4) Tipo de Liquidación Carácter 1 16 16 'O' + --5) Tipo de Declaración Jurada Carácter 1 17 17 right(L.labo_CUIL, 11) + --6) Nº de CUIL Carácter 11 18 28 0 right(replicate('0', 4) + convert(nvarchar, TL.laca_Codigo), 4) + -- 7) Número de cargo Numérico 4 29 32 0 right(replicate('0', 6) + coalesce(c.conc_CodigoIPS, '0'), 6) + -- 8) Código Concepto según IPS Carácter 6 33 38 replicate('0', 3) + c.conc_Codigo + --9) Código Concepto según Empleador Carácter 8 39 46 case when c.conc_Tipo = 'H' then 'RCA' when c.conc_Tipo = 'E' then 'RSA' when c.conc_Tipo = 'A' then 'AFA' when c.conc_Tipo = 'D' then 'DES' when c.conc_Tipo = 'R' and c.conc_Codigo = '02100' then 'DAS' when c.conc_Tipo = 'R' and c.conc_Codigo = '02010' then 'DPS' else 'DES' end + --10) Tipo de Concepto Carácter 3 47 49 convert(nchar(25), c.conc_DescripcionLarga) + --11) Descripción del Concepto Carácter 25 50 74 -- adri 20210510 caso 48041 202104 pase a decimal 9,2 para la parte positiva case when HL.liqu_Importe < 0 then '-' + right(replicate('0', 9) + replace(replace(convert(nvarchar, convert(decimal(8, 2), HL.liqu_Importe)), '.', ''), '-', ''), 8) else right(replicate('0', 9) + replace(convert(nvarchar, convert(decimal(9, 2), HL.liqu_Importe)), '.', ''), 9) end + -- 12) Importe (ver Forma (×)) Numérico 9 75 83 2 right('00' + convert(nvarchar, datediff(year, L.labo_FechaIngreso, @ptliq_Dia)), 2) + --13) Años Antiguedad I.P.S Numérico 2 84 85 0 '00' + --14) Meses Antiguedad I.P.S Numérico 2 86 87 0 '00' + --15) Años Antiguedad Otras Cajas Numérico 2 88 89 0 '00' + --16) Meses Antiguedad Otras Cajas Numérico 2 90 91 0 '00' + --17) Años Antiguedad Docente Numérico 2 92 93 0 '00' + --18) Meses Antiguedad Docente Numérico 2 94 95 0 'M' + --19) Forma de Pago Carácter 1 96 96 '00' + --20) Días Inasistencia con Descuento Numérico 2 97 98 0 '00' + --21) Días de Licencia sin Goce de Haberes Numérico 2 99 100 0 '01' + --22) Encuadre Previsional Carácter 2 101 102 CASE TL.tcar_Codigo WHEN 1 THEN 'P' ELSE 'T' END --9) Modalidad d Revista Carácter 1 48 48--23) Modalidad de Revista Carácter 1 103 103 as Linea FROM HistoricoTotalesLiq TL INNER JOIN HistoricoLiquidaciones HL ON HL.labo_Codigo=TL.labo_Codigo AND HL.laca_Codigo=TL.laca_Codigo AND HL.liqu_Anio=TL.tliq_Anio AND HL.liqu_Mes=TL.tliq_Mes AND HL.liqu_Numero=TL.tliq_Numero AND HL.liqu_MesAguinaldo=TL.tliq_MesAguinaldo AND HL.liqu_AnioAguinaldo=TL.tliq_AnioAguinaldo AND HL.liqu_TipoConcepto <> 'P' INNER JOIN Conceptos C ON HL.prtn_Codigo = C.prtn_Codigo AND HL.conc_Codigo = C.conc_Codigo INNER JOIN Laborales L ON TL.labo_Codigo = L.labo_Codigo INNER JOIN Persona P ON L.tper_Codigo = P.tper_Codigo AND L.pers_Numero = P.pers_Numero INNER JOIN ParametrosLiquidacion PL ON TL.tliq_Anio = PL.pali_Anio AND TL.tliq_Mes=PL.pali_Mes AND TL.tliq_Numero=PL.pali_Numero WHERE TL.tliq_Anio = @ltliq_Anio AND TL.tliq_Mes = @ltliq_Mes AND TL.tliq_Numero > 0 --Solo para que tome un indice IX AND (TL.prtn_Codigo = @lprtn_Codigo or @lprtn_Codigo is null) AND PL.pali_ResumenContable > '19000101' AND TL.tili_Codigo <> 'AJC' --AND TL.labo_Codigo = @labo_Codigo UNION ALL SELECT distinct TL.tper_Codigo, TL.pers_Numero, 'ZZZZZ' as conc_Codigo, 'P10308' + -- 1) Código Empleador Carácter 6 1 6 convert(nvarchar, TL.tliq_Anio) + '/' + right ('00' + convert(nvarchar, TL.tliq_Mes), 2) + --2) período Liquidado Carácter 7 7 13 (AAAA/MM) '01' + --3) Nº de Liquidación Numérico 2 14 15 0 'N' + --4) Tipo de Liquidación Carácter 1 16 16 'O' + --5) Tipo de Declaración Jurada Carácter 1 17 17 right(L.labo_CUIL, 11) + --6) Nº de CUIL Carácter 11 18 28 0 right(replicate('0', 4) + convert(nvarchar, TL.laca_Codigo), 4) + -- 7) Número de cargo Numérico 4 29 32 0 replicate('0', 6) + -- 8) Código Concepto según IPS Carácter 6 33 38 replicate(' ', 8) + --9) Código Concepto según Empleador Carácter 8 39 46 'LIQ' + --10) Tipo de Concepto Carácter 3 47 49 replicate(' ', 25) + --11) Descripción del Concepto Carácter 25 50 74 case when HL.liqu_Importe < 0 then '-' + right(replicate('0', 9) + replace(replace(convert(nvarchar, convert(decimal(8, 2), HL.liqu_Importe)), '.', ''), '-', ''), 8) else right(replicate('0', 9) + replace(convert(nvarchar, convert(decimal(9, 2), HL.liqu_Importe)), '.', ''), 9) end + -- 12) Importe (ver Forma (×)) Numérico 9 75 83 2 right('00' + convert(nvarchar, datediff(year, L.labo_FechaIngreso, @ptliq_Dia)), 2) + --13) Años Antiguedad I.P.S Numérico 2 84 85 0 '00' + --14) Meses Antiguedad I.P.S Numérico 2 86 87 0 '00' + --15) Años Antiguedad Otras Cajas Numérico 2 88 89 0 '00' + --16) Meses Antiguedad Otras Cajas Numérico 2 90 91 0 '00' + --17) Años Antiguedad Docente Numérico 2 92 93 0 '00' + --18) Meses Antiguedad Docente Numérico 2 94 95 0 'M' + --19) Forma de Pago Carácter 1 96 96 '00' + --20) Días Inasistencia con Descuento Numérico 2 97 98 0 '00' + --21) Días de Licencia sin Goce de Haberes Numérico 2 99 100 0 '01' + --22) Encuadre Previsional Carácter 2 101 102 CASE TL.tcar_Codigo WHEN 1 THEN 'P' ELSE 'T' END --9) Modalidad d Revista Carácter 1 48 48--23) Modalidad de Revista Carácter 1 103 103 as Linea FROM HistoricoTotalesLiq TL INNER JOIN ( select labo_Codigo, laca_Codigo, liqu_Anio, liqu_Mes, sum(liqu_Importe) as liqu_Importe from HistoricoLiquidaciones where liqu_TipoConcepto <> 'P' AND liqu_Anio = @ltliq_Anio AND liqu_Mes = @ltliq_Mes group by labo_Codigo, laca_Codigo, liqu_Anio, liqu_Mes ) as HL ON HL.labo_Codigo=TL.labo_Codigo AND HL.laca_Codigo=TL.laca_Codigo AND HL.liqu_Anio=TL.tliq_Anio AND HL.liqu_Mes=TL.tliq_Mes INNER JOIN Laborales L ON TL.labo_Codigo = L.labo_Codigo INNER JOIN Persona P ON L.tper_Codigo = P.tper_Codigo AND L.pers_Numero = P.pers_Numero INNER JOIN ParametrosLiquidacion PL ON TL.tliq_Anio = PL.pali_Anio AND TL.tliq_Mes=PL.pali_Mes AND TL.tliq_Numero=PL.pali_Numero WHERE TL.tliq_Anio = @ltliq_Anio AND TL.tliq_Mes = @ltliq_Mes AND TL.tliq_Numero > 0 --Solo para que tome un indice IX AND (TL.prtn_Codigo = @lprtn_Codigo or @lprtn_Codigo is null) AND PL.pali_ResumenContable > '19000101' AND TL.tili_Codigo <> 'AJC' --AND TL.labo_Codigo = @labo_Codigo ORDER BY TL.tper_Codigo, TL.pers_Numero, C.conc_Codigo /************************************************************************************************************************/
Editor is loading...