Estoy tratando de recolectar las horas trabajadas en diferentes dias del mes para luego sumar todas las horas y mostrarlas, tengo 3 campos:
Fecha_dia: date-time
horas_trabajada: integer
total_horas: hidden value
He realizado el calculo de esta forma en el campo hiden value:
sum(#form/data/horas_trabajadas[date(#form/data/fecha_dia) = month(today())])
Pero al correr para probarlo siempre manda este error:
Calculation Error: Error in calculation for /data/total_horas cannot handle function 'month' sera me pueden ayudar a ver cual es el error.
Soy de acuerdo que format-date es muy útil por estas cosas.
Es que hay una forma por cualquier dia trabajada y quieres recordar la total hasta hoy para el mes para salvar a la "user case"? O es que hay una "repeat group" con cada dia trabajada y necesitas sumarlas? Se puede añadir un ejemplo?
La idea es que me pida la fecha, luego ingrese las horas trabajadas cuando llegue al final del mes o cuando lo necesite me de el total sumando cada día que se ingreso las horas.
Entiendo la problema - sum funciona solo con una "repeat group". Aquí tiene solo un numero para sumar, entonces no funciona.
Necesita salvar las horas de trabajo por el mes hasta hoy al case que representa la trabajador, y añadir eso con las horas del form. Por ejemplo, imagino que tienes un case type con 3 campos:
Trabajador
nombre
horas_trabajada_este_mes
mes_actual (para saber quando reiniciar las horas)
cuando dice mes_actual es un campo tipo fecha? porque si aplico la funcion format-date luego me da un error y horas _trabajada es un campo escondido para hacer el calculo?
mes_actual debe ser el resultado de format-date(today(), "%m"), tipo string. Por ejemplo, "03".
horas _trabajada es un campo escondido para hacer el calculo?
Lo siento, he usado dos campos con la misma nombre. Cambiaré mi respuesta anterior. Necesitas uno campo horas_trabajada tipo integer para recibir la respuesta del usuario, y un campo horas_trabajada_este_mes tipo escondido para hacer el calculo (y también la case necesita un campo horas_trabajada_este_mes para tener el resultado por la proxima vez)