ViniciusConsultor / controlhoras

Automatically exported from code.google.com/p/controlhoras
1 stars 0 forks source link

Listado para enviar a Estudio Contable #74

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Modulo que cambia:

Requerimiento:
    - Antiguedad. Luego del primer año, 1%, Segundo 2% …., hasta 10%. En el listado que aparezca el porcentaje.
    - Armado. Que luego del 1 de Julio, los funcionarios que tienen curso de servicio armado Y presta servicio armado, en el listado que aparezca un valor configurable. Primero 2.5%, luego del 1 de Enero 2012, 5%.

Listado debe contener:
Nro Ordinal Correlativo, NroEmpleado, Apellido, Nombre, CI, ServicioActual, 
Turno, FechaIngreso, FechaBaja, ValorHora, Sencillas_X1, Extras_X2, 
FeriadoTrabajado_X2, ExtrasFeriado_X2.5, 
Despues de todos estos campos, agregar todos los extras (Positivos y Negativos) 
con el mismo nombre encolumnados. Ademas agregar Antiguedad y Armado como 
Positivos y Cuota Sindical como negativo (1%)

Original issue reported on code.google.com by juanga...@gmail.com on 20 Jun 2011 at 12:20

GoogleCodeExporter commented 8 years ago
Se crea query SQL que resuelve el listado. Es media compleja.  Insert a tabla 
consultasempleados;

insert into consultasempleados values (0,"LISTADO ENVIAR A ESTUDIO CONTABLE 
2","Genera el listado que sera enviado al estudio contable para la liquidacion 
de los funcionarios","SELECT @rownum:=@rownum+1 AS Nro,CONS.* from  (SELECT 
@rownum:=0) r, (SELECT empPrim.NroEmpleado, empPrim.Apellido, empPrim.Nombre, 
empPrim.NumeroDocumento, empPrim.ServicioActual, empPrim.Turno, 
empPrim.FechaIngreso,empPrim.ValorHora ,/*Hs Comunes*/ 
CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespondi
ente)) in (SELECT fecha FROM feriados), /* FERIADOS */ 0, /* NO FERIADOS */ IF 
(cargo.CobraHsExtras=1, CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN TIMEDIFF(hge.HoraSalida,hge.HoraEntrada) WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) >= 0 THEN MAKETIME(cargo.CantidadHsComunes,0,0) END, 
TIMEDIFF(hge.HoraSalida,hge.HoraEntrada)))))) AS CHAR) AS SENCILLAS_X1, /* Hs 
Extras (2X) 
*/CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespon
diente)) in (SELECT fecha FROM feriados), /*FERIADOS*/ 0, /* NO FERIADOS */ IF 
(cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN 0 ELSE 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) END, 0))))) AS CHAR) AS EXTRAS_X2, /* Feriado Hs Comunes (2X) 
*/CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespon
diente)) in (SELECT fecha FROM feriados), /*FERIADOS*/ IF 
(cargo.CobraHsExtras=1, CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN TIMEDIFF(hge.HoraSalida,hge.HoraEntrada) WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) >= 0 THEN MAKETIME(cargo.CantidadHsComunes,0,0) END, 
TIMEDIFF(hge.HoraSalida,hge.HoraEntrada)), /* NO FERIADOS */ 0)))) AS CHAR) AS 
FERIADO_TRABAJADO_X2, /* Feriado Hs Extras (2.5X)*/ 
CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespondi
ente)) in (SELECT fecha FROM feriados), /*FERIADOS*/ IF 
(cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN 0 ELSE 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) END, 0),/*NO FERIADOS */ 0)))) AS CHAR) AS FERIADO_TRABAJADO_EXTRAS_X3
,
/* EXTRAS */
(SELECT CAST(group_concat(tel.Nombre, ' ' , (SELECT if 
(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.Can
tHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion el
WHERE el.IdExtraLiquidacion = cel.IdExtraLiquidacion and el.IdEmpleado = 
empPrim.NroEmpleado and cel.Fecha between 'FECHADESDE' and 'FECHAHASTA'
and el.idTipoExtraLiquidacion = tel.idTipoExtraLiquidacion
GROUP BY el.IdEmpleado, el.IdTipoExtraLiquidacion)
 SEPARATOR '\n') AS CHAR) as EXTRAS
FROM TipoExtraLiquidacion tel) AS EXTRAS
,
/* ANTIGUEDAD */
(SELECT CAST(if(extract(YEAR FROM from_days(datediff(curdate(), 
emp.FechaIngreso))) < 11, concat(extract(YEAR FROM 
from_days(datediff(curdate(), emp.FechaIngreso))),'%'),'10%') AS CHAR) as 
Antiguedad FROM empleados emp where emp.NroEmpleado=empPrim.NroEmpleado) as 
ANTIGUEDAD
,
/* ARMADO */
(SELECT CAST(if( emp.CapacitadoPortarArma=1 and 
emp.EnServicioArmado=1,if(curdate()>='2012-01-01' ,'5%','2.5%'),'') AS CHAR) 
from empleados emp where emp.Activo=1 and NroEmpleado=empPrim.NroEmpleado) as 
ARMADO
,
/* CUOTA SINDICAL */
CAST(if(empPrim.EnSindicato=1,'1%','') as CHAR) as CUOTA_SINDICAL
FROM 

    horasgeneradasescalafon hge, 
    Empleados empPrim, 
    TiposCargos cargo 
WHERE 
hge.FechaCorrespondiente between 'FECHADESDE' AND 'FECHAHASTA' 
AND empPrim.NroEmpleado = hge.NroEmpleado 
AND empPrim.IdCargo = cargo.IdCargo 
AND hge.NroEmpleado not in (9998,9999)
GROUP BY empPrim.NroEmpleado, empPrim.Nombre, empPrim.Apellido, 
empPrim.FechaIngreso, empPrim.FechaBaja) AS CONS
ORDER BY Nro",1);

Queda pendiente que el Excel de la exportacion de consultas genere un enter en 
la celda de ExtrasLiquidacion, para esto con el ExcelXml no lo pude hacer 
andar, si anda utilizando Microsoft.Office.Interop. Queda pendiente regenerar 
la operacion ExportToExcel en ControladorUtilitarios.

6 hs.

Original comment by juanga...@gmail.com on 24 Jun 2011 at 6:14

GoogleCodeExporter commented 8 years ago
DESCUENTOS
ADELANTO,ANDA,RET COOP,MOVISTAR,RELIQ HS,UNIFORME,CURSO,CARNE DE 
SALUD,DTO_SINDICAL,DESC ADM.,BOLETOS (OTROS ALE)

ABONOS
HS A SUMAR,COMPLEMENTO,HS LIC. SIND.,PAP  (OTROS ALE)

Original comment by juanga...@gmail.com on 24 Jun 2011 at 9:31

GoogleCodeExporter commented 8 years ago
alter table consultasempleados change Query Query varchar(4000);

insert into consultasempleados values (0,"LISTADO ENVIAR A ESTUDIO 
CONTABLE","Genera el listado que sera enviado al estudio contable para la 
liquidacion de los funcionarios","SELECT @rownum:=@rownum+1 AS Nro,CONS.* from  
(SELECT @rownum:=0) r, (SELECT empPrim.NroEmpleado, empPrim.Apellido, 
empPrim.Nombre, empPrim.NumeroDocumento, empPrim.ServicioActual, empPrim.Turno, 
empPrim.FechaIngreso,empPrim.FechaBaja,empPrim.ValorHora,
/* ANTIGUEDAD */
(SELECT CAST(if(extract(YEAR FROM from_days(datediff(curdate(), 
emp.FechaIngreso))) < 11, concat(extract(YEAR FROM 
from_days(datediff(curdate(), emp.FechaIngreso))),'%'),'10%') AS CHAR) as 
Antiguedad FROM empleados emp where emp.NroEmpleado=empPrim.NroEmpleado) as 
ANTIGUEDAD
,
/* ARMADO */
(SELECT CAST(if( emp.CapacitadoPortarArma=1 and 
emp.EnServicioArmado=1,if(curdate()>='2012-01-01' ,'5%','2.5%'),'') AS CHAR) 
from empleados emp where emp.Activo=1 and NroEmpleado=empPrim.NroEmpleado) as 
ARMADO
,
/*Hs Comunes*/ 
CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespondi
ente)) in (SELECT fecha FROM feriados), /* FERIADOS */ 0, /* NO FERIADOS */ IF 
(cargo.CobraHsExtras=1, CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN TIMEDIFF(hge.HoraSalida,hge.HoraEntrada) WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) >= 0 THEN MAKETIME(cargo.CantidadHsComunes,0,0) END, 
TIMEDIFF(hge.HoraSalida,hge.HoraEntrada)))))) AS CHAR) AS SENCILLAS_X1, /* Hs 
Extras (2X) 
*/CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespon
diente)) in (SELECT fecha FROM feriados), /*FERIADOS*/ 0, /* NO FERIADOS */ IF 
(cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN 0 ELSE 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) END, 0))))) AS CHAR) AS EXTRAS_X2, /* Feriado Hs Comunes (2X) 
*/CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespon
diente)) in (SELECT fecha FROM feriados), /*FERIADOS*/ IF 
(cargo.CobraHsExtras=1, CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN TIMEDIFF(hge.HoraSalida,hge.HoraEntrada) WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) >= 0 THEN MAKETIME(cargo.CantidadHsComunes,0,0) END, 
TIMEDIFF(hge.HoraSalida,hge.HoraEntrada)), /* NO FERIADOS */ 0)))) AS CHAR) AS 
FERIADO_TRABAJADO_X2, /* Feriado Hs Extras (2.5X)*/ 
CAST(SEC_TO_TIME(SUM(TIME_TO_SEC(IF(MAKEDATE(2000,DAYOFYEAR(hge.FechaCorrespondi
ente)) in (SELECT fecha FROM feriados), /*FERIADOS*/ IF 
(cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) <0 THEN 0 ELSE 
TIMEDIFF(TIMEDIFF(hge.HoraSalida,hge.HoraEntrada),MAKETIME(cargo.CantidadHsComun
es,0,0)) END, 0),/*NO FERIADOS */ 0)))) AS CHAR) AS 
FERIADO_TRABAJADO_EXTRAS_X2_5
,
/* EXTRAS */
(SELECT CAST(group_concat(tel.Nombre, ' ' , (SELECT if 
(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.Can
tHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion el
WHERE el.IdExtraLiquidacion = cel.IdExtraLiquidacion and el.IdEmpleado = 
empPrim.NroEmpleado and cel.Fecha between 'FECHADESDE' and 'FECHAHASTA'
and el.idTipoExtraLiquidacion = tel.idTipoExtraLiquidacion
GROUP BY el.IdEmpleado, el.IdTipoExtraLiquidacion)
 SEPARATOR '\n') AS CHAR) as EXTRAS
FROM TipoExtraLiquidacion tel) AS EXTRAS
,
/* CUOTA SINDICAL */
CAST(if(empPrim.EnSindicato=1,'1%','') as CHAR) as CUOTA_SINDICAL
FROM 

    horasgeneradasescalafon hge, 
    Empleados empPrim, 
    TiposCargos cargo 
WHERE 
hge.FechaCorrespondiente between 'FECHADESDE' AND 'FECHAHASTA' 
AND empPrim.NroEmpleado = hge.NroEmpleado 
AND empPrim.IdCargo = cargo.IdCargo 
AND hge.NroEmpleado not in (9998,9999)
GROUP BY empPrim.NroEmpleado, empPrim.Nombre, empPrim.Apellido, 
empPrim.FechaIngreso, empPrim.FechaBaja) AS CONS
ORDER BY Nro",1);

Original comment by juanga...@gmail.com on 24 Jun 2011 at 9:41

GoogleCodeExporter commented 8 years ago
Despues de Hx_Feriado_No_TrabajoX2_5 va otra columna que dice Tickets 
Alimentacion y aparece un NO cuando no lleva tickets. Agregar checkbox en 
ABMEmpleados para marcar los empleados que NO llevan tickets.

Original comment by juanga...@gmail.com on 24 Jun 2011 at 10:16

GoogleCodeExporter commented 8 years ago
1- Diferencia de Hs Comunes y Hs Extras con la liquidacion. Ver cada proceso. 
Caso de Borde, Laplume 2 hs de diferencia entre comunes y extras, en uncaso las 
pone como comunes y en otro como extras
En el caso del 1775, hay media hora que en un listado la pone como comunes y en 
otro como extras.

Original comment by elbotij...@gmail.com on 24 Jun 2011 at 10:47

GoogleCodeExporter commented 8 years ago
1562, pasa lo mismo. con 11,5 hs de dif

Original comment by elbotij...@gmail.com on 24 Jun 2011 at 10:48

GoogleCodeExporter commented 8 years ago
Se corrige la consulta segun lo pedido. Como comentario, en los campos 
devueltos, se consulta por los nombres de TipoExtraLiquidacion por lo que hay 
que corroborar que los nombres sean los mismos que estan definidos en la BD.

insert into consultasempleados values (0,"LISTADO ENVIAR A ESTUDIO 
CONTABLE","Genera el listado que sera enviado al estudio contable para la 
liquidacion de los funcionarios","SELECT @rownum:=@rownum+1 AS Nro,CONS.* from  
(SELECT @rownum:=0) r, (SELECT empPrim.NroEmpleado, empPrim.Apellido, 
empPrim.Nombre, empPrim.NumeroDocumento, empPrim.ServicioActual, empPrim.Turno, 
empPrim.FechaIngreso,empPrim.FechaBaja,empPrim.ValorHora, /* ANTIGUEDAD */ 
(SELECT CAST(if(extract(YEAR FROM from_days(datediff(curdate(), 
emp.FechaIngreso))) < 11, concat(extract(YEAR FROM 
from_days(datediff(curdate(), emp.FechaIngreso))),'%'),'10%') AS CHAR) as 
Antiguedad FROM empleados emp where emp.NroEmpleado=empPrim.NroEmpleado) as 
ANTIGUEDAD, /* ARMADO */(SELECT CAST(if( emp.CapacitadoPortarArma=1 and 
emp.EnServicioArmado=1,if(curdate()>='2012-01-01' ,'5%','2.5%'),'') AS CHAR) 
from empleados emp where emp.Activo=1 and NroEmpleado=empPrim.NroEmpleado) as 
ARMADO, /* NO FERIADOS */ /*HS COMUNES*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF (cargo.CobraHsExtras=1, 
/*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS SENCILLAS_X1, /*HS EXTRAS (X2)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF(cargo.CobraHsExtras=1,CASE 
WHEN TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS EXTRAS_X2, /* FERIADOS */ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados), /*HS COMUNES FERIADOS (X2)*/ IF 
(cargo.CobraHsExtras=1, /*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS FERIADO_TRABAJADO_X2, /*HS EXTRAS FERIADOS (X2_5)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados),IF (cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS 
FERIADO_TRABAJADO_EXTRAS_X2_5, /* NO LLEVA TICKETS ALIMENTACION 
*/IF(empPrim.NoLlevaTicketsAlimentacion =1,'NO','') as 'Tickets Alimentacion', 
/* EXTRAS DESCUENTOS */ (SELECT /*ADELANTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='ADELANTO') as ADELANTO, (SELECT 
/*ANDA*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='ANDA') as ANDA, (SELECT /*RET COOP*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='RET COOP') as 'RET COOP',(SELECT 
/*MOVISTAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='MOVISTAR')as MOVISTAR,(SELECT 
/*RELIQ HS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='RELIQ HS') as 'RELIQ HS',(SELECT 
/*UNIFORME*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='UNIFORME') as 'UNIFORME',(SELECT 
/*CURSO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='CURSO') as CURSO,(SELECT /*CARNE DE 
SALUD*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='CARNE DE SALUD') as 'CARNE DE 
SALUD',(SELECT /*DTO_SINDICAL*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='DTO SINDICAL') as 'DTO 
SINDICAL',(SELECT /*DESC ADM.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='DESC ADM.') as 'DESC ADM.',(SELECT 
/*BOLETOS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='BOLETOS') as BOLETOS, /*ABONOS*/ 
(SELECT /*HS A SUMAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='HS A SUMAR') as 'HS A SUMAR',(SELECT 
/*COMPLEMENTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='COMPLEMENTO') as 
'COMPLEMENTO',(SELECT /*HS LIC. SIND.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='HS LIC. SIND.')  as 'HS LIC. 
SIND.',(SELECT /*PAP*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between 'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='PAP') as PAP, /*CUOTA SINDICAL*/ 
CAST(if(empPrim.EnSindicato=1,'1%','') as CHAR) as CUOTA_SINDICAL FROM (SELECT 
hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente, 
sec_to_time(SUM(time_to_sec(TIMEDIFF(hgeaux.HoraSalida,hgeaux.HoraEntrada)))) 
as Horas from horasgeneradasescalafon hgeaux WHERE hgeaux.FechaCorrespondiente 
between 'FECHADESDE' and 'FECHAHASTA' AND hgeaux.NroEmpleado not in (9998,9999) 
AND hgeaux.Descanso=0 group by hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente) 
AS HorasTmp, Empleados empPrim, TiposCargos cargo WHERE 
empPrim.NroEmpleado=HorasTmp.NroEmpleado and empPrim.IdCargo=cargo.IdCargo and 
cargo.TipoFacturacion='JORNALERO' GROUP BY empPrim.NroEmpleado, empPrim.Nombre, 
empPrim.Apellido) AS CONS ORDER BY Nro",1);

5 hs.

Original comment by juanga...@gmail.com on 27 Jun 2011 at 12:28

GoogleCodeExporter commented 8 years ago
Se pide otro formato, segun el que mando el estudio. Ademas hay que agregar 
otro tipo extra liquidacion.

Número (correlativo) Nº
Número de empleado (#)
Apellido
Nombre
C.I.
Fecha de Ingreso
Fecha de Baja
Valor Hora
Hs. comunes
Hs. extras
Hs. feriado
Hs. feriado extras
Hs. feriado pago
Hs. a sumar
Hs. licencia sindical
PAP
Complemento
Tickets Alimentación
Antigüedad
Armado
Retención Judicial
ANDA
Otras Cooperativas
Adelanto
Hs. a reliquidar
Descuento administrativo
Boletos
Movistar
Uniforme
Curso
Carné de Salud
Cuota Sindical

Aparece otro campo nuevo que es Hs. feriado pago, que no se bien a que se 
refiere. Se hablo con Alexandra y quedamos en arreglarlo pero sin este campo 
para este mes y verlo el mes que viene.

Ademas, cambiar los nombres de las columnas para que se achique el tamanio de 
las mismas.

Original comment by juanga...@gmail.com on 28 Jun 2011 at 9:48

GoogleCodeExporter commented 8 years ago
El insert que resuelve el formato pedido es el siguiente. Se agrega el campo 
Dto Sindical porque esta pedido por HH pero no esta dentro de los campos 
enviados por el estudio, quedo ultimo para poder eliminarlo llegado el caso.

insert into consultasempleados values(0,'LISTADO ENVIAR A ESTUDIO 
CONTABLE','Genera el listado que sera enviado al estudio contable para la 
liquidacion de los funcionarios',"SELECT @rownum:=@rownum+1 AS Nro,CONS.* from  
(SELECT @rownum:=0) r, (SELECT empPrim.NroEmpleado as '#', empPrim.Apellido, 
empPrim.Nombre, empPrim.NumeroDocumento as 'C.I.', empPrim.ServicioActual, 
empPrim.Turno, empPrim.FechaIngreso,empPrim.FechaBaja,empPrim.ValorHora, /* NO 
FERIADOS */ /*HS COMUNES*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF (cargo.CobraHsExtras=1, 
/*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS SENCILLAS_X1, /*HS EXTRAS (X2)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF(cargo.CobraHsExtras=1,CASE 
WHEN TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS EXTRAS_X2, /* FERIADOS */ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados), /*HS COMUNES FERIADOS (X2)*/ IF 
(cargo.CobraHsExtras=1, /*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS FERIADO_TRABAJADO_X2, /*HS EXTRAS FERIADOS (X2_5)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados),IF (cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS 
FERIADO_TRABAJADO_EXTRAS_X2_5,CAST((SELECT /*HS A SUMAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(TIME_TO_SEC(el.CantHs_TipoExtraLlevaHs)))) FROM cuotasextrasliquidacion 
cel, extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion 
= cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'HS A SUMAR\') as CHAR) as \'HS A 
SUMAR\',(SELECT /*HS. LIC. SIND.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'HS. LIC. SIND.\')  as \'HS. LIC. 
SIND.\',(SELECT /*PAP*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'PAP\') as PAP,(SELECT 
/*COMPLEMENTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'COMPLEMENTO\') as \'COMPLEMENTO\', 
/* NO LLEVA TICKETS ALIMENTACION */IF(empPrim.NoLlevaTicketsAlimentacion 
=1,\'NO\',\'\') as \'Tickets Alimentacion\',/* ANTIGUEDAD */ (SELECT 
CAST(if(extract(YEAR FROM from_days(datediff(curdate(), emp.FechaIngreso))) < 
11, concat(extract(YEAR FROM from_days(datediff(curdate(), 
emp.FechaIngreso))),\'%\'),\'10%\') AS CHAR) as Antiguedad FROM empleados emp 
where emp.NroEmpleado=empPrim.NroEmpleado) as ANTIGUEDAD, /* ARMADO */(SELECT 
CAST(if( emp.CapacitadoPortarArma=1 and 
emp.EnServicioArmado=1,if(curdate()>=\'2012-01-01\' ,\'5%\',\'2.5%\'),\'\') AS 
CHAR) from empleados emp where emp.Activo=1 and 
NroEmpleado=empPrim.NroEmpleado) as ARMADO,/* EXTRAS DESCUENTOS */ (SELECT 
/*RETENCION JUDICIAL*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'RETENCION JUDICIAL\') as 'RETENCION 
JUDICIAL', (SELECT /*ANDA*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'ANDA\') as ANDA, (SELECT /*RET. 
COOP.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'RET. COOP.\') as \'RET. 
COOP.\',(SELECT /*ADELANTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'ADELANTO\') as ADELANTO, (SELECT 
/*RELIQ. HORAS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'RELIQ. HORAS\') as \'RELIQ. 
HORAS\', (SELECT /*DESC. ADM.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'DESC. ADM.\') as \'DESC. 
ADM.\',(SELECT /*BOLETOS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'BOLETOS\') as BOLETOS, (SELECT 
/*MOVISTAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'MOVISTAR\')as MOVISTAR,(SELECT 
/*UNIFORME*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'UNIFORME\') as \'UNIFORME\',(SELECT 
/*CURSO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'CURSO\') as CURSO,(SELECT /*CARNET 
DE SALUD*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'CARNET DE SALUD\') as \'CARNET DE 
SALUD\', /*CUOTA SINDICAL*/ CAST(if(empPrim.EnSindicato=1,\'1%\',\'\') as CHAR) 
as CUOTA_SINDICAL, (SELECT /*DTO. SINDICAL*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),sum(el.C
antHs_TipoExtraLlevaHs)) FROM cuotasextrasliquidacion cel, extrasliquidacion 
el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'DTO. SINDICAL\') as \'DTO. 
SINDICAL\' FROM (SELECT hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente, 
sec_to_time(SUM(time_to_sec(TIMEDIFF(hgeaux.HoraSalida,hgeaux.HoraEntrada)))) 
as Horas from horasgeneradasescalafon hgeaux WHERE hgeaux.FechaCorrespondiente 
between \'FECHADESDE\' and \'FECHAHASTA\' AND hgeaux.NroEmpleado not in 
(9998,9999) AND hgeaux.Descanso=0 group by 
hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente) AS HorasTmp, Empleados empPrim, 
TiposCargos cargo WHERE empPrim.NroEmpleado=HorasTmp.NroEmpleado and 
empPrim.IdCargo=cargo.IdCargo and cargo.TipoFacturacion=\'JORNALERO\' GROUP BY 
empPrim.NroEmpleado, empPrim.Nombre, empPrim.Apellido) AS CONS ORDER BY Nro",1);

35 min.

Original comment by juanga...@gmail.com on 29 Jun 2011 at 5:42

GoogleCodeExporter commented 8 years ago
Se pasa el tiempo de CantHs_TipoExtraLlevaHsEnSegs a int representando la 
cantidad de segundos. Por esto se modifica la consulta:

insert into consultasempleados values(0,'LISTADO ENVIAR A ESTUDIO 
CONTABLE','Genera el listado que sera enviado al estudio contable para la 
liquidacion de los funcionarios',"SELECT @rownum:=@rownum+1 AS Nro,CONS.* from  
(SELECT @rownum:=0) r, (SELECT empPrim.NroEmpleado as '#', empPrim.Apellido, 
empPrim.Nombre, empPrim.NumeroDocumento as 'C.I.', empPrim.ServicioActual, 
empPrim.Turno, empPrim.FechaIngreso,empPrim.FechaBaja,empPrim.ValorHora, /* NO 
FERIADOS */ /*HS COMUNES*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF (cargo.CobraHsExtras=1, 
/*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS SENCILLAS_X1, /*HS EXTRAS (X2)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF(cargo.CobraHsExtras=1,CASE 
WHEN TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS EXTRAS_X2, /* FERIADOS */ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados), /*HS COMUNES FERIADOS (X2)*/ IF 
(cargo.CobraHsExtras=1, /*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS FERIADO_TRABAJADO_X2, /*HS EXTRAS FERIADOS (X2_5)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados),IF (cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS 
FERIADO_TRABAJADO_EXTRAS_X2_5,CAST((SELECT /*HS A SUMAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'HS A SUMAR\') as CHAR) as \'HS A 
SUMAR\',CAST((SELECT /*HS. LIC. SIND.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'HS. LIC. SIND.\') as CHAR) as \'HS. 
LIC. SIND.\',CAST((SELECT /*PAP*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'PAP\') as CHAR) as PAP,CAST((SELECT 
/*COMPLEMENTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'COMPLEMENTO\') as CHAR) as 
\'COMPLEMENTO\', /* NO LLEVA TICKETS ALIMENTACION 
*/IF(empPrim.NoLlevaTicketsAlimentacion =1,\'NO\',\'\') as \'Tickets 
Alimentacion\',/* ANTIGUEDAD */ CAST((SELECT CAST(if(extract(YEAR FROM 
from_days(datediff(curdate(), emp.FechaIngreso))) < 11, concat(extract(YEAR 
FROM from_days(datediff(curdate(), emp.FechaIngreso))),\'%\'),\'10%\') AS CHAR) 
as Antiguedad FROM empleados emp where emp.NroEmpleado=empPrim.NroEmpleado) AS 
CHAR) as ANTIGUEDAD, /* ARMADO */CAST((SELECT CAST(if( 
emp.CapacitadoPortarArma=1 and 
emp.EnServicioArmado=1,if(curdate()>=\'2012-01-01\' ,\'5%\',\'2.5%\'),\'\') AS 
CHAR) from empleados emp where emp.Activo=1 and 
NroEmpleado=empPrim.NroEmpleado) AS CHAR) as ARMADO,/* EXTRAS DESCUENTOS */ 
CAST((SELECT /*RETENCION JUDICIAL*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'RETENCION JUDICIAL\') AS CHAR) as 
'RETENCION JUDICIAL', CAST((SELECT /*ANDA*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'ANDA\') AS CHAR) as ANDA, 
CAST((SELECT /*RET. COOP.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'RET. COOP.\') as CHAR) as \'RET. 
COOP.\',CAST((SELECT /*ADELANTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'ADELANTO\') AS CHAR) as ADELANTO, 
CAST((SELECT /*RELIQ. HORAS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'RELIQ. HORAS\') as CHAR) as 
\'RELIQ. HORAS\', CAST((SELECT /*DESC. ADM.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'DESC. ADM.\') as CHAR) as \'DESC. 
ADM.\',CAST((SELECT /*BOLETOS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'BOLETOS\') AS CHAR) as BOLETOS, 
CAST((SELECT /*MOVISTAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'MOVISTAR\') AS CHAR) as 
MOVISTAR,CAST((SELECT /*UNIFORME*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'UNIFORME\') as CHAR) as 
\'UNIFORME\',CAST((SELECT /*CURSO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'CURSO\') AS CHAR) as 
CURSO,CAST((SELECT /*CARNET DE SALUD*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'CARNET DE SALUD\') as CHAR) as 
\'CARNET DE SALUD\', /*CUOTA SINDICAL*/ 
CAST(if(empPrim.EnSindicato=1,\'1%\',\'\') AS CHAR) as CUOTA_SINDICAL, 
CAST((SELECT /*DTO. SINDICAL*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = empPrim.NroEmpleado and cel.Fecha 
between \'FECHADESDE\' and \'FECHAHASTA\' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre=\'DTO. SINDICAL\') as CHAR) as \'DTO. 
SINDICAL\' FROM (SELECT hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente, 
sec_to_time(SUM(time_to_sec(TIMEDIFF(hgeaux.HoraSalida,hgeaux.HoraEntrada)))) 
as Horas from horasgeneradasescalafon hgeaux WHERE hgeaux.FechaCorrespondiente 
between \'FECHADESDE\' and \'FECHAHASTA\' AND hgeaux.NroEmpleado not in 
(9998,9999) AND hgeaux.Descanso=0 group by 
hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente) AS HorasTmp, Empleados empPrim, 
TiposCargos cargo WHERE empPrim.NroEmpleado=HorasTmp.NroEmpleado and 
empPrim.IdCargo=cargo.IdCargo and cargo.TipoFacturacion=\'JORNALERO\' GROUP BY 
empPrim.NroEmpleado, empPrim.Nombre, empPrim.Apellido) AS CONS ORDER BY Nro",1);

Original comment by juanga...@gmail.com on 29 Jun 2011 at 6:54

GoogleCodeExporter commented 8 years ago
Se modifica Consulta a Estudio Contable luego de haber agregado el % a Extras 
Liquidacion. SE agrega otra columna RET COOP con %.

SELECT @rownum:=@rownum+1 AS Nro,CONS.*,CAST((SELECT /*HS A SUMAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='HS A SUMAR') as CHAR) as 'HS A 
SUMAR', CAST((SELECT /*HS. LIC. SIND.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='HS. LIC. SIND.') as CHAR) as 'HS 
LIC. SIND.',CAST((SELECT /*PAP*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='PAP') as CHAR) as PAP,CAST((SELECT 
/*COMPLEMENTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='COMPLEMENTO') as CHAR) as 'COMPL', 
/*NO LLEVA TICKETS ALIMENTACION */IF((select NoLlevaTicketsAlimentacion from 
empleados where NroEmpleado=CONS.Emp)=1,'NO','') as 'TA',/* ANTIGUEDAD */ 
CAST((SELECT CAST(if(extract(YEAR FROM from_days(datediff(curdate(), 
emp.FechaIngreso))) < 11, concat(extract(YEAR FROM 
from_days(datediff(curdate(), emp.FechaIngreso))),'%'),'10%') AS CHAR) as 
Antiguedad FROM empleados emp where emp.NroEmpleado=CONS.Emp) AS CHAR) as 
ANTIG, /* ARMADO */CAST((SELECT CAST(if( emp.CapacitadoPortarArma=1 and 
emp.EnServicioArmado=1,if(curdate()>='2012-01-01' ,'5%','2.5%'),'') AS CHAR) 
from empleados emp where emp.Activo=1 and NroEmpleado=CONS.Emp) AS CHAR) as 
ARMADO,/* EXTRAS DESCUENTOS */ CAST((SELECT /*RETENCION JUDICIAL*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='RETENCION JUDICIAL') AS CHAR) as 
'RET. JUD.', CAST((SELECT /*ANDA*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion= 
tel.idTipoExtraLiquidacion and tel.Nombre='ANDA') AS CHAR) as ANDA, 
CAST((SELECT /*RET. COOP.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='RET. COOP.') as CHAR) as 'RET. 
COOP.',CAST((SELECT /*RET. COOP.(%)*/ 
IF(tel.LlevaHs=0,sum(if(tel.AceptaPorcentaje=1,el.Porcentaje,0)),SEC_TO_TIME(SUM
(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='RET. COOP.') as CHAR) as 'RET. 
COOP.(%)', CAST((SELECT /*ADELANTO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='ADELANTO') AS CHAR) as ADELANTO, 
CAST((SELECT /*RELIQ. HORAS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='RELIQ. HORAS') as CHAR) as 'RELIQ. 
HORAS', CAST((SELECT /*DESC. ADM.*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='DESC. ADM.') as CHAR) as 'DESC. 
ADM.',CAST((SELECT /*BOLETOS*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and  'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='BOLETOS') AS CHAR) as BOLETOS, 
CAST((SELECT /*MOVISTAR*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='MOVISTAR') AS CHAR) as 
MOVISTAR,CAST((SELECT /*UNIFORME*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='UNIFORME') as CHAR) as 
'UNIFORME',CAST((SELECT /*CURSO*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='CURSO') AS CHAR) as 
CURSO,CAST((SELECT /*CARNET DE SALUD*/ 
IF(tel.LlevaHs=0,sum(if(el.Signo=0,cel.ValorCuota*(-1),cel.ValorCuota)),SEC_TO_T
IME(SUM(el.CantHs_TipoExtraLlevaHsEnSegs))) FROM cuotasextrasliquidacion cel, 
extrasliquidacion el, tipoextraliquidacion tel WHERE el.IdExtraLiquidacion = 
cel.IdExtraLiquidacion and el.IdEmpleado = CONS.Emp and cel.Fecha between 
'FECHADESDE' and 'FECHAHASTA' and el.idTipoExtraLiquidacion = 
tel.idTipoExtraLiquidacion and tel.Nombre='CARNET DE SALUD') as CHAR) as 'C. DE 
SALUD', /*CUOTA SINDICAL*/ CAST(if((SELECT EnSindicato from empleados where 
NroEmpleado=CONS.Emp)=1,'1%','') AS CHAR) as 'CUOTA SIND.' from  (SELECT 
@rownum:=0) r, ((SELECT empPrim.NroEmpleado as Emp, empPrim.Apellido, 
empPrim.Nombre, empPrim.NumeroDocumento as 'C.I.', empPrim.ServicioActual, 
empPrim.Turno, empPrim.FechaIngreso,empPrim.FechaBaja,empPrim.ValorHora, /* NO 
FERIADOS */ /*HS COMUNES*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF (cargo.CobraHsExtras=1, 
/*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS SENCILLAS_X1, /*HS EXTRAS (X2)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) not in (SELECT fecha FROM feriados), IF(cargo.CobraHsExtras=1,CASE 
WHEN TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS EXTRAS_X2, /* FERIADOS */ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados), /*HS COMUNES FERIADOS (X2)*/ IF 
(cargo.CobraHsExtras=1, /*EXTRAS*/CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) <0 THEN 
HorasTmp.Horas WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) >= 0 THEN 
MAKETIME(cargo.CantidadHsComunes,0,0) END, HorasTmp.Horas),MAKETIME(0,0,0))))) 
AS CHAR) AS FERIADO_TRABAJADO_X2, /*HS EXTRAS FERIADOS (X2_5)*/ 
CAST(sec_to_time(SUM(time_to_sec(IF(MAKEDATE(2000,DAYOFYEAR(HorasTmp.FechaCorres
pondiente)) in (SELECT fecha FROM feriados),IF (cargo.CobraHsExtras=1,CASE WHEN 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) < 0 THEN 
MAKETIME(0,0,0) ELSE 
TIMEDIFF(HorasTmp.Horas,MAKETIME(cargo.CantidadHsComunes,0,0)) 
END,MAKETIME(0,0,0)),MAKETIME(0,0,0))))) AS CHAR) AS 
FERIADO_TRABAJADO_EXTRAS_X2_5 FROM (SELECT 
hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente,sec_to_time(SUM(time_to_sec(TIMED
IFF(hgeaux.HoraSalida,hgeaux.HoraEntrada)))) as Horas from 
horasgeneradasescalafon hgeaux WHERE hgeaux.FechaCorrespondiente between 
'FECHADESDE' and 'FECHAHASTA' AND hgeaux.NroEmpleado not in (9998,9999) AND 
hgeaux.Descanso=0 group by hgeaux.NroEmpleado,hgeaux.FechaCorrespondiente) AS 
HorasTmp, Empleados empPrim, TiposCargos cargo WHERE 
empPrim.NroEmpleado=HorasTmp.NroEmpleado and empPrim.IdCargo=cargo.IdCargo and 
cargo.TipoFacturacion='JORNALERO' GROUP BY Emp, Nombre, Apellido) UNION (select 
emp.NroEmpleado as Emp, emp.Apellido, emp.Nombre, emp.NumeroDocumento as 
'C.I.', emp.ServicioActual, emp.Turno, 
emp.FechaIngreso,emp.FechaBaja,emp.ValorHora,'','','','' from empleados emp, 
tiposcargos cargo where emp.IdCargo=cargo.IdCargo and 
cargo.TipoFacturacion='JORNALERO' and emp.FechaBaja between 'FECHADESDE' and 
'FECHAHASTA' and emp.NroEmpleado not in (select distinct(NroEmpleado) from 
horasgeneradasescalafon hge where hge.FechaCorrespondiente between 'FECHADESDE' 
and 'FECHAHASTA') GROUP BY Emp, Nombre, Apellido) Order by Emp) AS CONS  ORDER 
BY Nro

1 hs

Original comment by juanga...@gmail.com on 4 Jul 2011 at 5:18

GoogleCodeExporter commented 8 years ago
El campo Hs. feriado pago que comenta el estudio contable se decidio por 
Hernando de manejar a mano. Manualmente se agrega esta columna y se llena a 
mano en los meses que haya feriado.

Original comment by juanga...@gmail.com on 9 Aug 2011 at 11:48