AJUDA COM PROJETO WEB

ONBASS 25/04/2012 10:53:59
#400725
Senhores, bom dia,

A idéia é desenvolver um Controle de Ponto, onde eu estaria validando usuário no acesso ao sistema, logo após cadastrando alguns empregados(nome,cpf,admissao,cargo,fone, etc) como também entrada e saída dos mesmos. Gostaria também de adequar um pequeno controle de competências(janeiro, fevereiro, março... etc), ou seja, abrir competencia seria iniciar um novo mês, fechar competencia seria encerrar os lançamentos/movimentações referentes àquele mês.
Tipo, cadastrei Joao dos Santos, ae depois vou lancar as movimentações, qual o horario de entrada/saída, faltas, abonos, etc...e gerar alguns relatorios.

Não quero nada pronto, gostaria apenas de orientação, por onde começar, e q tabelas necessitaria e como estruturar o sistema.

Grato, brigadao
KERPLUNK 25/04/2012 12:24:13
#400743
Resposta escolhida
Comece pela estrutura de dados. Separando artefatos e criando tabelas para cada um deles. Em seguida, estabelecendo vínculos entre esses artefatos. Por exemplo, você vai ter uma tabela de ponto, onde você vai gravar a data/hora, funcionário e movimento(saída ou entrada). Esse campo [Ô]funcionário[Ô], seria o código do mesmo, que teria o cadastro de funcionários como chave estrangeira. O fechamento do mês seria simplesmente um registro, dizendo que o mês [Ô]X[Ô] está fechado, então ao selecionar registros de lançamentos e movimentos, leva-se em conta esse valor, sendo que o ideal para isso é criar uma VIEW. Só isso já é bastante trabalho pra começar.
ONBASS 26/04/2012 08:14:43
#400786
fala KERPLUNL blz?

tipo na hora de fazer o fechamento, obrigatoriamente o usuario teria de informar, dia-a-dia, entrada/saído do empregado certo? exceto por um ponto eletronico integrado ao sistema. eu imagino que o usuario deva digitar manualmente os referidos horarios e, após, fazer um loop calculando as horas informadas com as que ele deveria realmente cumprir, dae resultaria em abonos/faltas a incluir/descontar. seria este o raciocinio?
existiria muita tabelas nesse sistema?
KERPLUNK 26/04/2012 10:50:58
#400817
Ao meu ver, a estrutura básica para controle das horas seria:
Tabelas:
Funcionário
HorarioFuncionario
Movimento
TipoMovimento
PeriodoFechado
Funcionário, teria amarrações(Foreign Keys, ou chaves estrangeiras, ou simplesmente FK) para as tabelas relativas à funcionário que você precisar, por exemplo, filhos, documentos...
HorarioFuncionario, teria o código do funcionário, horario entrada, horario saida, horarios pausa(que seriam almoço, descanso obrigatório)
Movimento, conteria o código do funcionário com FK para a tabela funcionário, Data/Hora, Tipo de movimento(que teria FK para TipoMovimento)
PeriodoFechados, conteria simplesmente um campo com início e fim do período(seu cliente pode querer fazer fechamento por quinzena, por semana, por trimestre...) e um campo com uma denominação de período, onde o cliente fica livre para colocar a informação que ele quiser.

Uma View com os campos:
CodigoFuncionario, Data, Horas normais, horas extras 100%, horas extras 50%(e qualquer outro campo que você precise)
Essa view, consulta a tabela movimento, por todos os movimentos cuja data/hora não esteja em nenhum período fechado. O campo de horas normais, é calculado pela tabela horario funcionario, somando-se as horas todas trabalhadas, subtraindo todas as horas que estejam além do horário de saída do funcionário e descontando também os descansos obrigatórios. As horas extras você vai ter que ver o cálculo que deve ser feito de acordo com a categoria do funcionário(categoria sindical), porque cada sindicato tem um dissídio e com isso talvez você tenha que adicionar outro campo para o funcionário, contendo a categoria e talvez alguma outra tabela que vai conter os dados para as regras do dissídio... é bem complicado fazer, a estrutura é simples, mas a engine, nem tanto.


A base seria isso mesmo.
ONBASS 26/04/2012 11:09:21
#400819
é rpz... tava até animado, mas pra quem tá começando acho q confunde mais do que ajuda... melhor começar com algo mais simples..

de qqr forma muito grato.
KERPLUNK 26/04/2012 11:55:04
#400824
Tenha em mente que essa estrutura de banco, para essa atividade, não é apenas para ASP.NET, qualquer controle de ponto deveria ser algo parecido com isso.
ONBASS 26/04/2012 12:09:11
#400825
vrdd.
ficou bem legal sua explanação, porém depois do vb6 ainda nao criei nada em .net
vou dar mais uma mastigada.
KERPLUNK 26/04/2012 12:13:11
#400828
é que o que te passei, ainda nem tem nada a haver com o .NET, é só estrutura de banco. Mas mesmo assim, qualquer dúvida, post ae!
ONBASS 27/04/2012 08:28:00
#400884
KEPLUNK e amigos, bom dia

Veja só, nao quero o código, mas algum de vocês poderia me ajudar na diagramação do fluxo de dados? tipo uma orientação visual de como o sistema iria funcionar? parece que chama [ô]teoria dos conjuntos[ô].

grato.
Tópico encerrado , respostas não são mais permitidas