Closed GoogleCodeExporter closed 8 years ago
Punto 7: "- Al cambiar Funcionario en el control diario, se guarda el
funcionario reemplazante y no el que estaba (el reemplazado)."
Pronto. Se setea el NroFuncionario al objeto MotivoCambiosDiarios en el capa de
interfaz en vez de la capa de datos.
Original comment by juanga...@gmail.com
on 1 Feb 2011 at 2:14
Punto 5: "- En el proceso de consolidacion, agregar control de que no haya un
evento en el historial del empleado en el rango de generacion."
Pronto. Se agrega la operacion:
/// <summary>
/// Devuelve True si el empleado tiene algun evento que tenga FechaInicio anterior o igual a Fecha y FechaFin mayor o igual a Fecha.
/// </summary>
/// <param name="NroEmpleado">Nro del Empleado.</param>
/// <param name="Fecha">Fecha a consultar.</param>
/// <returns>Devuelve TRUE si el empleado tiene algun evento en el historial que caiga en esta Fecha. FALSE en otro caso.</returns>
bool empleadoTieneEventosHistorialEnFecha(int NroEmpleado, DateTime Fecha);
en la interfaz IDatos.
Esta operacion se utiliza en la operacion, void generarHorasDiaServicio(int
NumeroCliente, int NumeroServicio, DateTime Fecha, bool ForzarGeneracion) de la
clase ControladorClientesServicios.
Se hace en esta operacion porque para poder saber si el empleado esta en el
historial se precisa de una fecha, y en la consolidacion no se manejan fechas,
solo dias.
Tiene impactos en la BD. Se crea indice:
create index IX_IdEmpleadoFechaInicioFechaFin on
eventoshistorialempleado(IdEmpleado,FechaInicio,FechaFin);
Original comment by juanga...@gmail.com
on 1 Feb 2011 at 3:19
Punto 1: "- Lograr generar hs con vacantes momentaneas. La idea en ppio seria
crear un nuevo funcionario 9998 que este lo permita generar. Y luego en el
control diario cambiar el funcionario."
Pronto. Se crea una nueva propertie en el archivo app.config.
<add key ="NroFuncionarioVacanteTemporal" value="9998"/>
Esta propertie se utiliza en la operacion obtenerMaxIdEmpleado() en el
ControladorDatos, para obtener el MaxIdEmpleado diferente de
NroFuncionarioVacanteTemporal.
Ademas, se utiliza en la consolidacion de horas, en la operacion
ejecutarControlesEscalafonEmpleado de la clase ControladorClienteServicio, de
forma que se realizan los chequeos si el usuario es diferente de
NroFuncionarioVacanteTemporal.
Original comment by juanga...@gmail.com
on 1 Feb 2011 at 3:58
Punto 2: "- Cuando se da de baja un funcionario en RRHH, actualizar el
escalafon seteando el 9999 como asignado a los mismos puestos."
Pronto.
Se modifica la operacion btnGuardar_Click del ABMEmpleados para que luego de
guardado, si el cbNoActivo esta seleccionado, se hace la sustitucion del
empleado 9999 por el recien dado de baja.
Ademas, se modifico el metodo de la operacion SustituirEmpleadoEnEscalafon en
la clase ControladorClienteServicio para que no haga los chequeos de
solapamiento en cado de que el NroNuevoEmp sea el NroFuncionarioPivot o
NroFuncionarioVacanteTemporal.
Original comment by juanga...@gmail.com
on 1 Feb 2011 at 4:21
Se elimina la FK entre motivoscambiosdiarios y el idHorasGeneradas para
permitir la regeneracion de hs sobre servicios que se hizo algun cambio diario
en un dia futuro a hoy. Teniendo en cuenta esto, se agrega la fecha del cambio
y la fecha del dia en que se realizo el cambio.
Cambios en BD:
-- 1) Eliminamos la FK FK_motivoscambiosdiarios_4
alter table motivoscambiosdiarios drop FOREIGN KEY FK_motivoscambiosdiarios_4;
-- 2) Eliminamos el campo IdHorasGeneradasEscalafon
alter table motivoscambiosdiarios drop column IdHorasGeneradasEscalafon;
-- 3) Agregamos una Fecha, FechaCorresponde que vendria a ser la Fecha del
registro que se hizo el cambio
alter table motivoscambiosdiarios add column FechaCorresponde Date not null;
-- 4) Cambiamos el nombre de la columna Fecha.
alter table motivoscambiosdiarios change column Fecha FechaCambio datetime not
null;
-- Con el cambio de nombre del campo Fecha a FechaCambio, hay que cambiar una
consulta de clientes;
update consultasclientes set Query=replace(Query,"mcd.Fecha","mcd.FechaCambio")
where idConsultaCliente=4;
Original comment by juanga...@gmail.com
on 5 Feb 2011 at 10:21
Original comment by juanga...@gmail.com
on 5 Feb 2011 at 10:21
Punto 4. A medias. - Listado de Escalafon Diario:
- Quitar columnas, NombreCliente y NroServicio.
- Agregar Columnas, NroEmpleado y dia de Descanso.
Se quitaron las columnas NombreCliente y NroServicio. Se agrego la columna
NroEmpleado, y se hizo una concatenacion entre el NroEmpleado, Nombre y
Apellido para que lo devuelva en una sola columna.
Query: select ser.NumeroCliente, ser.Nombre as
Servicio,date_format(date_add(hge.HoraEntrada,INTERVAL
-escemp.HsLlamadaAntesHoraInicio HOUR), '%H:%i') as
Llamada,date_format(hge.HoraEntrada, '%H:%i') as
Entrada,date_format(hge.HoraSalida, '%H:%i') as Salida,concat(emp.NroEmpleado,'
- ', emp.Nombre,' ', emp.Apellido) as Funcionario, emp.CelularenConvenio,
emp.Celular as CelularParticular from EscalafonEmpleado escemp, Empleados
emp,horasgeneradasescalafon hge, Servicios ser where emp.NroEmpleado =
escemp.NroEmpleado and hge.FechaCorrespondiente='FECHA' and hge.HoraEntrada is
not null and hge.HoraSalida is not null and escemp.NroEmpleado=hge.NroEmpleado
and escemp.IdEscalafon=hge.NumeroCliente*1000+hge.NumeroServicio and
ser.NumeroCliente = hge.NumeroCliente and ser.NumeroServicio =
hge.NumeroServicio order by date_format(date_add(hge.HoraEntrada,INTERVAL
-escemp.HsLlamadaAntesHoraInicio HOUR), '%H:%i')
Falta el tema de mostrar el dia de Descanso del empleado.
Consulta para ver porque no funca:
select ser.NumeroCliente, ser.Nombre as
Servicio,date_format(date_add(hge.HoraEntrada,INTERVAL
-escemp.HsLlamadaAntesHoraInicio HOUR), '%H:%i') as
Llamada,date_format(hge.HoraEntrada, '%H:%i') as
Entrada,date_format(hge.HoraSalida, '%H:%i') as Salida,emp.NroEmpleado,
emp.Nombre, emp.Apellido, emp.CelularenConvenio, emp.Celular as
CelularParticular , group_concat(distinct(he.dia)) as DiaDescanso
from EscalafonEmpleado escemp, Empleados emp,horasgeneradasescalafon hge,
Servicios ser , horarioescalafon he, tiposdias td
where
emp.NroEmpleado = escemp.NroEmpleado and
hge.FechaCorrespondiente='2011-02-05' and hge.HoraEntrada is not null and hge.HoraSalida is not null and escemp.NroEmpleado=hge.NroEmpleado and escemp.IdEscalafon=hge.NumeroCliente*1000+hge.NumeroServicio and ser.NumeroCliente = hge.NumeroCliente and ser.NumeroServicio = hge.NumeroServicio and he.NroEmpleado = emp.NroEmpleado and he.IdEscalafonEmpleado = escemp.IdEscalafonEmpleado
-- and emp.NroEmpleado = 1346
and he.TipoDia=td.Id and td.Nombre="Descanso"
order by date_format(date_add(hge.HoraEntrada,INTERVAL -escemp.HsLlamadaAntesHoraInicio HOUR), '%H:%i')
Y devolver NroEmpleado, nombre y apellido en una misma columna
Al agregar el concat, se dan errores al cargarse la grilla.
Original comment by juanga...@gmail.com
on 5 Feb 2011 at 2:11
Punto 8
Se resuelve agregando que el programa entienda las variables NROCLIENTE y
NROSERVICIO en las consultas de clientes.
Luego se hace esta consulta
'select emp.NroEmpleado,emp.Nombre, emp.Apellido, emp.NumeroDocumento,
emp.Turno from Empleados emp, horasgeneradasescalafon hge where
hge.NumeroCliente=NROCLIENTE and hge.NumeroServicio = NROSERVICIO and
MONTH(''FECHA'')= MONTH(hge.FechaCorrespondiente) and YEAR(''FECHA'') =
YEAR(hge.FechaCorrespondiente) and emp.NroEmpleado = hge.NroEmpleado group by
(emp.NroEmpleado)'
Original comment by juanga...@gmail.com
on 5 Feb 2011 at 6:07
Punto 4: Listado de Escalafon Diario. Mostrar el dia de Descanso del
Funcionario, y mostrar en una unica columna el NroEmpleado - Nombre Apellido.
Se resolvio con la siguiente consulta
select ser.NumeroCliente, ser.Nombre as Servicio,
date_format(date_add(hge.HoraEntrada,INTERVAL -escemp.HsLlamadaAntesHoraInicio
HOUR), '%H:%i') as Llamada
,date_format(hge.HoraEntrada, '%H:%i') as Entrada,
date_format(hge.HoraSalida, '%H:%i') as Salida,
cast(concat(emp.NroEmpleado,' - ', emp.Nombre,' ', emp.Apellido) as char) as
Funcionario,
emp.CelularenConvenio, emp.Celular as CelularParticular
,(select group_concat(distinct(he.dia)) from horarioescalafon he, tiposdias td
where he.TipoDia=td.Id and td.Nombre="Descanso" and he.NroEmpleado =
escemp.NroEmpleado) as DiaDescanso
from EscalafonEmpleado escemp, Empleados emp,horasgeneradasescalafon hge,
Servicios ser
where emp.NroEmpleado = escemp.NroEmpleado and hge.FechaCorrespondiente='FECHA'
and hge.HoraEntrada is not null
and hge.HoraSalida is not null
and escemp.NroEmpleado=hge.NroEmpleado and
escemp.IdEscalafon=hge.NumeroCliente*1000+hge.NumeroServicio
and ser.NumeroCliente = hge.NumeroCliente and ser.NumeroServicio =
hge.NumeroServicio
group by ser.NumeroCliente, ser.Nombre,
date_format(date_add(hge.HoraEntrada,INTERVAL -escemp.HsLlamadaAntesHoraInicio
HOUR), '%H:%i')
,date_format(hge.HoraEntrada, '%H:%i'),
date_format(hge.HoraSalida, '%H:%i'),
cast(concat(emp.NroEmpleado,' - ', emp.Nombre,' ', emp.Apellido) as char),
emp.CelularenConvenio, emp.Celular
order by date_format(date_add(hge.HoraEntrada,INTERVAL
-escemp.HsLlamadaAntesHoraInicio HOUR), '%H:%i')
Original comment by juanga...@gmail.com
on 6 Feb 2011 at 2:48
Punto 9: - Listado de Escalafon diario. Registros duplicados al encontrarse el
mismo funcionario en el escalafon del mismo servicio en horarios diferentes.
Quedo arreglado con la consulta mostranda en el Comment 9.
Original comment by juanga...@gmail.com
on 6 Feb 2011 at 2:58
El punto 3: - Listado de Personal Activo no asignado, que se muestren las
observaciones de los eventos ingresados en el historial del empleado.
Al listado agregarle Fecha de Ingreso.
Se creo otro listado que se pide en el issue 11.
Original comment by juanga...@gmail.com
on 6 Feb 2011 at 3:02
1 hora insumida en Comentarios 9 y 10
Original comment by juanga...@gmail.com
on 6 Feb 2011 at 3:36
Original comment by juanga...@gmail.com
on 2 Apr 2011 at 11:18
Original comment by juanga...@gmail.com
on 21 Apr 2011 at 4:16
Original issue reported on code.google.com by
juanga...@gmail.com
on 31 Jan 2011 at 10:59