Closed GoogleCodeExporter closed 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
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
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
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
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
1562, pasa lo mismo. con 11,5 hs de dif
Original comment by elbotij...@gmail.com
on 24 Jun 2011 at 10:48
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
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
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
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
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
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
Original issue reported on code.google.com by
juanga...@gmail.com
on 20 Jun 2011 at 12:20