rootzig Postado Novembro 12, 2010 Denunciar Share Postado Novembro 12, 2010 Estou tendo problema no cadastro das horas, por exemplo:----------------------------------------------------------------------------Código | HoraEntrada | HoraAlmoco | HoraSalmoco | HoraSaida----------------------------------------------------------------------------1000 | 09:00:00 | 12:30:00 | 13:30:00 |18:00 ----------------------------------------------------------------------------Consegui cadastrar até, só que se eu mudar a data por exemplo para amanha ele teria que da um insert assim registrar o ponto com a data atualsó que não estou conseguindo pensar em como fazer isso ;(alguém ae, pode me ajudar?te mais, valeu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 m3io Postado Novembro 12, 2010 Denunciar Share Postado Novembro 12, 2010 explica melhor sua duvida k não entendi la mt bem Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rootzig Postado Novembro 12, 2010 Autor Denunciar Share Postado Novembro 12, 2010 Opa, valeu pela atençãopreciso fazer um ponto virtual,mas só consigo cadastrar uma vez, não estou conseguindo fazer para ele cadastrar na poutra dataPor exemplo:Data: 12/11/2010CODIGO ENTRADA SAIDA ENTRADA SAIDA10000 09:00:00 12:00:00 13:00:00 18:00não estou conseguindo fazer o seguinte, eu mudar a data para 13/11/2010e fazer uma nova batida de ponto.Não sei como fazer a lógica pra quando a data ser diferente ele da um insert na data atual.valeu, te mias. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Novembro 13, 2010 Denunciar Share Postado Novembro 13, 2010 (editado) Para utilizar a data atual, você pode utilizar a função current_date do próprio MySQL. Ex:INSERT INTO teste(data, descricao) VALUES(current_date, 'Testando a função...');Este comando iria inserir na descricao o texto 'Testando a função...' e no campo data iria inserir a data atual (data que está no servidor onde roda o MySQL).http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html Editado Novembro 13, 2010 por Stoma Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Novembro 13, 2010 Denunciar Share Postado Novembro 13, 2010 (editado) Prezado,Acredito que sua dúvida seria: Como inserir em somente uma linha, horários de entrada e saída de um funcionário para uma data. De posse dessa premissa, vamos por a mão na massa.Considerando que a estrutura de sua tabela é/* * CREATE TABLE "Ponto" ( * "id" int unsigned NOT NULL auto_increment, * "codigo" int NOT NULL, - Codigo do funcionario * "HoraEntrada" datetime NULL, * "HoraEntrada" datetime NULL, * "HoraEntrada" datetime NULL, * "HoraEntrada" datetime NULL, * "dataApontamento" date NOT NULL) */Definir as funções que o script deverá fazer:1 - Verificar se o funcionário já registrou algum ponto para a data atual.2 - Atualizar o registro de ponto do funcionário, incrementando mais um horário.3 - Inserir um registro de ponto para o funcionário.Recupera a data atual$dataApontamento = data('Y-m-d'); 1 - Verificar se o funcionário já registrou algum ponto para a data atual. $query = mysql_query("SELECT id FROM Ponto WHERE codigo = $codigo AND dataApontamento = $dataApontamento"); $id = mysql_result($query,0,'id'); 2 - Atualizar o registro de ponto do funcionário, incrementando mais um horário. Caso a query acima retornar um registro, quer dizer que o funcionário já realizou algum apontamento no dia, então você edita o registro inserindo mais um horário. Por exemplo, se for hora de saída para o almoço. mysql_query("UPDATE Ponto SET HoraAlmoco = '$hora' WHERE id = $id"); 3 - Caso o funcionário não tenha realizado nenhum apontamento no dia atual, então registra sua entrada. mysql_query("INSERT INTO Ponto (codigo,HoraEntrada) VALUES ($codigo,$HoraEntrada)");Um sistema de ponto é um software bem complexo, e depende muito das definições das regras de negócio. Pois você tem que tratar várias situações como: - Se o funcionário só vier trabalhar na parte ta tarde. - Se o funcionário sair para almoçar as 14:00.E por ai vai.Abraço Editado Novembro 13, 2010 por Romero Dias Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rootzig Postado Novembro 13, 2010 Autor Denunciar Share Postado Novembro 13, 2010 Romero DiasValeu pela resposta, o código que fiz até o momento, deva ta uma pog, mas com o tempo vou arrumado ele.<?php //------------------------------------------------------------------------------ //inicia a conexao include_once("conexao/connMysql.php"); //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //hora atual $dataAtual = date("Y/m/d"); echo "Data atual:". $dataAtual."<br />"; //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //verifica se tem algo no get if(empty($id_func)){ $id_func = addslashes($_GET['id_func']); } if(empty($dian)){ $dian = addslashes($_GET['dian']); } if(empty($dial)){ $dial = addslashes($_GET['dial']); } if(empty($entrada1)){ $entrada1= addslashes($_GET['entrada1']); } if(empty($saida1)){ $saida1 = addslashes($_GET['saida1']); } if(empty($entrada2)){ $entrada2= addslashes($_GET['entrada2']); } if(empty($saida2)){ $saida2 = addslashes($_GET['saida2']); } //------------------------------------------------------------------------------ $selecionaBatidas = mysql_query("SELECT id, data, entrada1, saida1, entrada2, saida2 from pontodigital WHERE id='$id_func'"); $achou = mysql_num_rows($selecionaBatidas); $pegaDados = mysql_fetch_assoc($selecionaBatidas); $dataBanco = $pegaDados['data']; /*echo $pegaDados['entrada2']."<br />"; echo $pegaDados['saida2']."<br />"; */ //se já bateu o ponto if($achou == 1) { if($pegaDados['saida1'] == "00:00:00") { $cadDigital = ""; $cadDigital = mysql_query("UPDATE pontodigital SET saida1='$saida1' WHERE id='$id_func' AND data='$dataBanco '"); if($cadDigital) { echo "Ponto registrado -> Saida 1 - Almoço"; }else { echo "Falha ao registrar ponto, tente novamente."; } }else if($pegaDados['entrada2'] == "00:00:00"){ $cadDigital = ""; $cadDigital = mysql_query("UPDATE pontodigital SET entrada2='$entrada2' WHERE id='$id_func' AND data='$dataBanco '"); if($cadDigital) { echo "Ponto registrado -> Entrada 2 - Volta do Almoço"; }else { echo "Falha ao registrar ponto, tente novamente."; } }else if($pegaDados['saida2'] == "00:00:00"){ $cadDigital = ""; $cadDigital = mysql_query("UPDATE pontodigital SET saida2='$saida2' WHERE id='$id_func' AND data='$dataBanco'"); if($cadDigital) { echo "Ponto registrado -> Saída 2 - Fim"; }else { echo "Falha ao registrar ponto, tente novamente."; } }else { echo "Falha, Colaborador já efetuou as quatros batidas."; } }else { $cadDigital = mysql_query("INSERT INTO pontodigital (id, data, dian, dial, entrada1 ) VALUES ('$id_func', '$dataAtual', '$dian', '$dial', '$entrada1' )"); if($cadDigital) { echo "Ponto registrado -> Entrada 1"; }else { echo "Falha ao registrar ponto, tente novamente."; } } ?>Ae ele esta funcionando assim:Se não for encontrado o código do funcionário então ele da um insert, ae sempre que o funcionario bater o ponto ele da um update na tabela.Não estou conseguindo fazer, quando por exemplo chegar amanha e o funcionário bater o ponto novamente, o que tenho que verificar pra ele da um novo insert,to ficando louco já, kkkvaleu ae, te mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Novembro 13, 2010 Denunciar Share Postado Novembro 13, 2010 Verifique se o funcionário registrou o ponto do dia, caso ainda não registrou, então registre um novo ponto para a data atual.Se a query não retornar nada, siguinifica que o funcionário ainda não realizaou sou ponto para a dia current_date.$selecionaBatidas = mysql_query("SELECT id, data, entrada1, saida1, entrada2, saida2 from pontodigital WHERE id='$id_func' AND data = current_date");dessa forma você consegue saber: "quando por exemplo chegar amanha e o funcionário bater o ponto novamente".Faça os teste..Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rootzig Postado Novembro 13, 2010 Autor Denunciar Share Postado Novembro 13, 2010 Verifique se o funcionário registrou o ponto do dia, caso ainda não registrou, então registre um novo ponto para a data atual.Se a query não retornar nada, siguinifica que o funcionário ainda não realizaou sou ponto para a dia current_date.$selecionaBatidas = mysql_query("SELECT id, data, entrada1, saida1, entrada2, saida2 from pontodigital WHERE id='$id_func' AND data = current_date");dessa forma você consegue saber: "quando por exemplo chegar amanha e o funcionário bater o ponto novamente".Faça os teste..AbraçoAoooo, chorei kkkDeu certo :~ Valeu, Romero Dias Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rootzig
Estou tendo problema no cadastro das horas, por exemplo:
----------------------------------------------------------------------------
Código | HoraEntrada | HoraAlmoco | HoraSalmoco | HoraSaida
----------------------------------------------------------------------------
1000 | 09:00:00 | 12:30:00 | 13:30:00 |18:00
----------------------------------------------------------------------------
Consegui cadastrar até, só que se eu mudar a data por exemplo para amanha ele teria que da um insert assim registrar o ponto com a data atual
só que não estou conseguindo pensar em como fazer isso ;(
alguém ae, pode me ajudar?
te mais, valeu.
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.