É preciso um certo conhecimento do banco de dados MySQL. Qualquer dúvida, consulte Introdução ao banco de dados MySQL.
  Primeiro passo é criar a database:
create database industria;
  Em seguida, cria-se a tabela com as colunas:
create table horarios (id int AUTO_INCREMENT, in1 time, out1 time, in2 time, out2 time, tempo tempo, saldo tempo, dia int(20), mes int(2), ano int(2), comment TEXT, PRIMARY KEY (id));
  Explicando cada coluna:
  O banco de dados está pronto.
Coluna
Tipo
Explicação
id
PRIMARY KEY
número distinto
in1
time
entrada de manhã
out1
time
saída de manhã
in2
time
entrada à tarde
out2
time
saída à tarde
tempo
time
horas trabalhadas no dia somando manhã e tarde
saldo
time
saldo de horas
dia
int(20)
dia trabalhado
mes
int(2)
mês trabalhado
ano
int(2)
ano trabalhado
comment
TEXT
espaço para anotações do tipo "consulta médica" etc
  Justificando por separar dia, mês e ano. Uma situação comum é fazer o levamento das horas trabalhadas de um determinado mês. Um select do tipo:
devolve todas as informações sobre o mês de setembro de 2011.
  A seguir disponibilizo o script que lê as informações introduzidas pelo usuário, executa somas e subtrações de horários e armazena no banco de dados.
#!/bin/bash
# Entrada dos horários
read -p "Entrada manhã: " in1
read -p "Saída almoço: " out1
read -p "Entrada tarde: " in2
read -p "Saída tarde: " out2
read -p "Data de hoje? [Y/n] " resp
# Entende que Y, y, S, s ou Enter signifiquem uma resposta a data de hoje
if [ "$resp" = Y -o "$resp" = y -o "$resp" = S -o "$resp" = s -o ! -n "$resp" ]
  then
   dia=`date +%d`
   mes=`date +%m`
   ano=`date +%Y`
else
  read -p "dia " dia
  read -p "mes " mes
  read -p "ano " ano
fi
read -p "Comentário? " comment
# Subtrai o horário da manhã
manhaSQL=`mysql -uroot -psenha << SQL
SELECT SUBTIME('$out1','$in1');
QUIT
SQL`
# Filtra a resposta anterior ficando apenas um valor do tipo HH:MM:SS
manha=`echo $manhaSQL | awk '{printf "%s\n",$2}'`
# Subtrai o horário da tarde
tardeSQL=`mysql -uroot -psenha << SQL
SELECT SUBTIME('$out2','$in2');
QUIT
SQL`
# Filtra a resposta anterior ficando apenas um valor do tipo HH:MM:SS
tarde=`echo $tardeSQL | awk '{printf "%s\n",$2}'`
# Soma o horário da manhã e da tarde
tempoSQL=`mysql -uroot -psenha << SQL
SELECT ADDTIME('$manha','$tarde');
QUIT
SQL`
# Filtra a resposta anterior ficando apenas um valor do tipo HH:MM:SS
# Tempo total do dia (manhã + tarde)
tempo=`echo $tempoSQL | awk '{printf "%s\n",$2}'`
# Horas trabalhadas menos 9h para calcular o saldo de horas
tempo_add=`mysql -uroot -psenha << SQL
SELECT SUBTIME('$tempo','09:00:00');
QUIT
SQL`
# saldo de horas trabalhadas
saldo_horas=`echo $tempo_add | awk '{printf "%s\n",$2}'`
# insere no banco de dados os valores armazenados nas variaveis
cmd=`/usr/bin/mysql -uroot -psenha << SQL
  use industria
  insert into horarios (in1, out1, in2, out2, tempo, saldo, dia, mes, ano, comment) values
    ("$in1", "$out1", "$in2", "$out2", "$tempo", "$saldo_horas", "$dia", "$mes", "$ano", "$comment");
  quit
  SQL`
Nenhum comentário:
Postar um comentário