AJUDA COM PROJETO WEB
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
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
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.
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?
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?
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.
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.
é 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.
de qqr forma muito grato.
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.
vrdd.
ficou bem legal sua explanação, porém depois do vb6 ainda nao criei nada em .net
vou dar mais uma mastigada.
ficou bem legal sua explanação, porém depois do vb6 ainda nao criei nada em .net
vou dar mais uma mastigada.
é 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!
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.
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