RESOLVIDO - Total de Horas Trabalhadas uma Dificuldade

Estou usando aqui um exemplo que peguei dos colegas aqui do Fórum. A minha dificuldade é a seguinte:

//Calcular Total de Horas de Descanso

$inicio = {hora_parada}; // {dta_hra_inicio}; // inicio
$fim = {hora_retorno}; // {dta_hra_fim}; // fim

$data_hora_ini = explode(" “,$inicio); // inicio
$data_hora_fim = explode(” ",$fim); // fim

$data_ini = explode("-",$data_hora_ini[0]);
$data_fim = explode("-",$data_hora_fim[0]);

$hora_ini = explode(":",$data_hora_ini[1]);
$hora_fim = explode(":",$data_hora_fim[1]);

$acumulador_ini = ($hora_ini[0] * 3600) + ($hora_ini[1] * 60) + $hora_ini[2]; // inicio
$acumulador_fim = ($hora_fim[0] * 3600) + ($hora_fim[1] * 60) + $hora_fim[2]; // fim

$resultado = $acumulador_fim - $acumulador_ini;

$hora_ponto = floor($resultado / 3600);
$resultado = $resultado - ($hora_ponto * 3600);
$min_ponto = floor($resultado / 60);

$secs_ponto = $resultado;

$resultado = $hora_ponto.":".$min_ponto;

{total_descanso} = $resultado;

Todos os campos são do tipo Time, somente o campo total_descanso é Decimal. Até aqui calcula tudo certo, na hora de gravar no banco dá o erro porque preciso converter $resultado para decimal…Já tentei , procurei na web e não estou conseguindo.

RECAPITULANDO ->O Cálculo está sendo feito, só não consigo gravar no banco…Preciso converter $resultado para decimal e assim acredito conseguirei gravar no banco…

Aceito sugestões…

Você está usando o código no onBeforeInsert ?

na verdade estou usando no onAfterInsert

Então como a aplicação vai salvar o dado?

Outros tópicos sobre conversão de horas:

http://www.scriptcase.com.br/forum/index.php/topic,5036.msg21641.html#msg21641

http://www.scriptcase.com.br/forum/index.php/topic,2638.msg10350.html#msg10350

Haroldo bom dia,

Como disse peguei esse exemplo aqui dos nossos amigos no fórum, e ele diz que os campos são time e o totalizador é um decimal…

Eu li todos esse posts e testei alguns que não deram certo. Será que poderia me ajudar e me mostra onde estou errando?

OBS: Pode ter certeza que li todos os posts antes de postar aqui!!

Obrigado

Qual a representação do totalizador em decimal? horas, fração de hora (5,5 = 5 horas e 30 minutos) ??

Horas !

Boa Tarde,

Após diversas tentativas e frustrações resolvi meu problema através de uma trigger no Banco MySql. Para quem tem a mesma dificuldade, segue a resolução que utilizei:

No meu caso o Cliente queria um campo para ver total de horas de descanso, um campo para ver total de horas trabalhadas e um campo com o resultado do total de horas trabalhadas - total de horas de descanso. Assim mesmo SEPARADO, era a necessidade que o mesmo tinha…

No MySql você tem a opção de “GATILHO(portugues)” ou “Trigger(inglês)” ->Escolha a opção ON BEFORE UPDATE ou ON BEFORE INSERT o que lhe atender melhor…

SET NEW.total_descanso = TIMEDIFF(new.hora_retorno, new.hora_parada),
NEW.total_trabalhado = TIMEDIFF(new.hora_saida, new.hora_entrada),
NEW.diferenca = TIMEDIFF(new.total_trabalhado, new.total_descanso)

Para quem ainda tiver com dúvida, no scriptcase não é preciso fazer nada, quando você clicar para inserir ou atualizar o banco dispara a TRIGGER automaticamente…

Obrigado a todos que tentaram e me ajudaram de alguma forma!!!