segundo commit para testar
[LogadorPet.git] / insere_horas.php
blob0880b8c07637c3dd71c7f706331914a8ee9f0353
1 <?php
2 /* Insere Horas (insere_horas.php)
3 1. Insere as horas informadas na semana respectiva do usuário no banco de dados
4 2. Os dados referentes a quantidade de horas a inserir são provenientes da página 'inserir_horas.php'
5 */
6 header ("Pragma: no-cache"); // sempre carregar página (não vai ser armazenada no cache http 1,0
7 header("Cache-Control: no-cache, must-revalidate"); // idem http 1,1
9 require_once("Globals.php");
10 //verifica se o administrador está logado
11 checkCookie(REDIRECT_ONLY);
13 // realiza conexão com o banco de dados
14 conecta();
16 $data_f = $_POST['data_f'];
18 $dateBegin = array();
19 $dateBegin['day'] = $_POST['dia'];
20 $dateBegin['month'] = $_POST['mes'];
21 $dateBegin['year'] = $_POST['ano'];
22 $dateBegin['hour'] = $_POST['hora_i'];
23 $dateBegin['minute'] = $_POST['minuto_i'];
25 $dateFinish = array();
26 list($dateFinish['day'], $monthName, $dateFinish['year']) = explode(' ', $data_f);
27 $monthArrayIndex = array_search($monthName, $meses);
28 $monthIndex = $monthArrayIndex + 1;
30 $dateFinish['month'] = $monthIndex;
31 if($dateFinish['month'] < 10)
32 $dateFinish['month'] = '0'.$dateFinish['month'];
33 if($dateFinish['day'] < 10)
34 $dateFinish['day'] = '0'.$dateFinish['day'];
35 $dateFinish['hour'] = $_POST['hora_f'];
36 $dateFinish['minute'] = $_POST['minuto_f'];
38 // determina os tempos em segundos das datas de início e fim da inserção
39 $strStart = $dateBegin['year'] . "-" . $dateBegin['month'] . "-" . $dateBegin['day'] . " " . $dateBegin['hour'] . ":" . $dateBegin['minute'] . ":00";
40 $strEnd = $dateFinish['year'] . "-" . $dateFinish['month'] . "-" . $dateFinish['day'] . " " . $dateFinish['hour'] . ":" . $dateFinish['minute'] . ":00";
42 $rs = mysql_query("SELECT UNIX_TIMESTAMP('". $strStart ."') AS tempo_i, UNIX_TIMESTAMP('". $strEnd ."') AS tempo_f, UNIX_TIMESTAMP() AS now");
43 $tempo_i = mysql_result($rs, 0, 'tempo_i');
44 $tempo_f = mysql_result($rs, 0, 'tempo_f');
45 $now = mysql_result($rs, 0, 'now');
47 // caso o tempo inicial da inserção seja maior que o tempo atual, a inserção é para o futuro (por isso, inválida)
48 if ( ($tempo_i > $now) OR ($tempo_f > $now) )
50 echo("O período solicitado ainda não aconteceu!<br>");
51 echo "<a href='javascript: history.back(-1)'>Voltar</a></body></html>";
52 die();
54 // se o tempo inicial é maior ou igual ao tempo final, a inserção é inválida
55 else
56 if ($tempo_i >= $tempo_f)
58 if($tempo_i == $tempo_f)
59 echo("A data inicial deve ser diferente da data final.<br>");
60 else
61 echo("A data inicial deve ser anterior à data final.<br>");
62 echo "<a href='javascript: history.back(-1)'>Voltar</a></body></html>";
63 die();
65 else // caso contrário, inserção VÁLIDA! Insere no banco de dados
67 $sql = "SELECT 1 FROM config
68 WHERE
70 ( (DATE(FROM_UNIXTIME('". $tempo_i ."')) >= mes_inicio) AND (DATE(FROM_UNIXTIME('". $tempo_f ."')) >= mes_inicio) )
72 ( (DATE(FROM_UNIXTIME('". $tempo_i ."')) < mes_inicio) AND (DATE(FROM_UNIXTIME('". $tempo_f ."')) < mes_inicio) )
73 );";
74 $rs = mysql_query($sql);
75 if(mysql_num_rows($rs) > 0) //inicio e fim estao no mesmo mes
77 $sql = "INSERT INTO historico (id_user, inicio, fim) VALUES ('". $_POST['user_id'] ."', FROM_UNIXTIME('". $tempo_i ."'), FROM_UNIXTIME('". $tempo_f ."'))";
78 mysql_query($sql) or die(mysql_error());
80 else
82 $sql = "INSERT INTO historico (id_user, inicio, fim) VALUES ('". $_POST['user_id'] ."', FROM_UNIXTIME('". $tempo_i ."'), (SELECT (mes_inicio - INTERVAL 1 SECOND) FROM config))";
83 mysql_query($sql);
84 $sql = "INSERT INTO historico (id_user, inicio, fim) VALUES ('". $_POST['user_id'] ."', (SELECT mes_inicio FROM config), FROM_UNIXTIME('". $tempo_f ."'))";
85 mysql_query($sql);
88 echo("Inserção realizada com sucesso!<br>");
89 echo "<a href='admin.php'><< Administrador</a><br><a href='index.php'><< Logador </a><br><br></body></html>";