AJUDA COM LOGICA E RACIOCINIO

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM LOGICA E RACIOCINIO

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#406676 - 26/07/2012 20:44:33

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Bom pessoal venho eu agora humildemente pedir ajuda dos senhores não consigo chegar a uma conclusão do que preciso, bom vamos lá:

estou desenvolvendo um sistema onde irei gerar escalas conferir presenças calcular extras, etc, e isso tudo depende de uma unica coisa uma tabela dos plantões de serviço.

assim, aqui temos plantões com horários variados, tipo: 12 X 36 ( a pessoa trabalha 12 e folga 36 horas), temos administrativo, (segunda a sexta 8 horas diárias) temos o melhor, rs a pessoa trabalha 8 horas, da seguinte maneira:
1º dia 07 as 15 horas
2º dia 15 as 23 horas
3º dia 23 as 07 horas
4º folga
5º folga

e começa de novo, ta fácil né, rs, agora que vem o meu problema, que é como criar uma tabela que seja dinâmica o suficiente para incluir, ou alterar estes plantões baseado nas horas trabalhadas horas de folgas, e uma data inicial?

exemplo:
se eu tivesse apenas o plantão 12X36, poderia (posso) criar uma tabela com a seguinte estrutura:

id_do_turno, nome, data_inicial, hora_inicial, hora_final, hora_folga

e os dados incluiria  os dados assim:

01 - turma A - 01/01/2012 - 07:00 - 19:00 - 36
02 - turma B - 02/01/2012 - 07:00 - 19:00 - 36
03 - turma C - 01/01/2012 - 19:00 - 07:00 - 36
04 - turma D - 02/01/2012 - 19:00 - 07:00 - 36

pronto ta feito, isso foi facin, facin... da maneira acima daqui a 01 ano se eu abrir a escala do dia saberei quem está trabalhando, se a pessoa estiver trabalhando fora da escala saberei que está de extra, se não compareceu tal dia saberei se é folga ou falta, porém como eu havia dito quero deixa-la mais dinâmica, ai vem o problema como poderia incluir os demais horários das escala nesta tabela? ou como poderia criar uma estrutura que me atende-se?

pois o plantão postado acima trabalha sabados, domingos e feriados, porém quem trabalha administrativamente é diferente, ou seja trabalha de segunda a sexta, o que me furou a tabela acima, os outros trabalham 8 horas com horários alternados o que fura a tabela acima, bom pra finalizar, eu não gostaria de criar uma tabela para cada plantão pois amanhã este plantão pode não existir ou o horário pode ser diferente.

e...não, eu não posso pedir para o cliente organizar isto, uma vez que se trata de uma Prefeitura, e o serviço é essencial, rs

se alguém tiver pelo menos uma ideia que me encaminhe para resolução do meu problema eu agradeceria.





________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



#406677 - 26/07/2012 21:21:23

JLAUROSOUZA
VITORIA DE SANTO ANTAO
Cadast. em:Dezembro/2010


Grande MARCELO-TREZE, vamos lá...

Você já pensou em colocar no cadastro do funcionário o tipo de turmo dele, daí vc poderia criar uma tabela de turno onde seria cadastrado os turnos e ai liga-las ao funcionário e colocar na tabela já criada um campo tipo "id_turno", onde ficaria indicado o tipo e turno do funcionário.

Bem Amigo Marcelo, espera ter ajudado de alguma forma, abraço.

"O BOM DA VIDA NÃO É VIVER, É SABER VIVER!!!"  

#406680 - 26/07/2012 22:09:19

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Colega primeira obrigado por responder, sem duvida o cadastro de turno tera uma ligação com a ficha do funcionário mas a questao é como fazer cadastro de turno.

________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



#406684 - 26/07/2012 22:46:16

JLAUROSOUZA
VITORIA DE SANTO ANTAO
Cadast. em:Dezembro/2010


Marcelo, fazer uma Tebela de turno e uma tela para cadastra os tipos de turno, imagino q seja algo assim...

vc esta entendendo onde quero chegar?

"O BOM DA VIDA NÃO É VIVER, É SABER VIVER!!!"  

#406686 - 26/07/2012 23:13:13

CASSIOJFF
BEBEDOURO
Cadast. em:Dezembro/2003


 Anexos estao visíveis somente para usuários registrados

Marcelo, e se a sua grade fosse por dia, como o exemplo abaixo nao sei se funcionaria mas com ela vc pode controlar por dia o horario fazendo os plantoes, fazendo o horario administrativo normal e assim por diante



Resposta escolhida #406701 - 27/07/2012 10:02:31

CASTELO
CACOAL
Cadast. em:Novembro/2011


Opa, é sempre bom poder ajudar.

Vou compartilhar minha dificuldade e a solução adotada.

Tenho trabalhado arduamente e ainda tenho algumas questões a resolver em um Sistema de Administração Escolar, pois bem, por se tratar de escola pública e conforme a exigência da Secretaria de Educação aqui do estado, é obrigatório o uso de fichas de avaliação.

Até que pode seria simples, criar uma tabela com os campos definidos para cada "tipo" de avaliação e pronto, estaria resolvido. Porém "idêntico" ao problema do Marcelo, e se os ATUAIS conceitos mudarem, a tabela estaria FURADA, buscando resolver esta situação, criei um cadastro simples de Conceitos e sua abreviação para cada ANO, e uma tabela que receberia os lançamentos das notas para cada conceito.

Assim, preencho uma flexgrid com a listagem de alunos, crio as colunas conforme a quantidade de Conceitos cadastrados para o ano letivo, e ao ser atribuido um valor pelo professor, este é lançado na tabela, algo como: aluno (matricula),nota(valor),disciplina(id),turma(id),professor(id),conceito(id),ano(ano).

Ah, quase ia esquecendo, ao preencher o flexgrid, conforme a seleção da turma e disciplina, busco as notas (conceitos) previamente lançadas.

Assim, por mais que o sistema mude ou "deixe" de existir a ficha de avaliação, não preciso mexer na tabela ela é dinâmica.





#406713 - 27/07/2012 11:25:11

FFCOUTO
COM LEVY GASPARIAN
Cadast. em:Março/2005


 Anexos estao visíveis somente para usuários registrados

Marcelo, fiz um pequeno exemplo num banco access para te dar uma luz. Pois passei por uma situação quase parecida mas era com tarifa por horário, dia,e outras variáveis.

Bem, vamos ao que interessa.

Nesse banco tem 2 tabelas, a primeira tabela é apenas para identifica o plantão e a segunda com as regras. Obs. Só não adicionei a data de inicio e término.

A estrutra das tabelas é bem simples. A primeira contem apenas o ID e a Descrição do plantão ex. 12x36, Administrativo, etc.

A estrutura da segunda tem uma regra por linha. Você terá o dia da semana (1 a 7) para aplicar a regra e 0 quando o dia for variável, no caso de escalas. Tem o campo situação que indica se o funcionário Trabalha ou Folga.

Se o funcionário Folga, você determina isso usando o campo hora_trab, e, caso Trabalha, você utilizar a hora_inicio e soma a hora_trab para determinar a hora de término.

A lógica é você ler a tabela de regras linha a linha na sequencia. Por exemplo o plantão 12x36.

Linha 1: dia_semana = 0 (variável); situação T (trabalha); hora_inicio = 07:00; hora_trab = 12
Linha 2: dia_semana = 0 (variável); situação F (folga); hora_trab = 36

Exemplo:

Do While not rsRegras.EOF
    if dia_semana = 0 then
       dia_atual = date
    end if

    if situacao = "T" then
       dh_inicio = cdate(format(dia_atual, "dd/mm/yyyy") & " " & rsRegras(hora_inicio))
       dh_fim = DateAdd("h", hr_inicio, rsRegras("hora_trab")
   else if situacao = "F" then
       dh_inicio = hr_fim
       dh_fim = DateAdd("h", rsRegras("hora_inicio"), rsRegras("hora_trab"))
   end if
  
   rsRegras.MoveNext
Loop


Não sei se conseguir explicar bem, mas, qualquer dúvida, entre em contato.






#406743 - 27/07/2012 17:22:23

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Castelo, acredito que seu seguir sua lógica consigo fazer o que prentendo

FFCouto, chegando em casa verei seu exemplo e vou ver se ele se adapta a minha necessidade.

Cassiojff,  essa maneira me leva a metade do caminho ja pensei nisto também, porém terei outros problemas

enfim vou verificar as propostas acima chegando em casa,s e eu conseguir chegar onde desejo coloco a aqui a solução, mas desde ja agradeco a todos que estão respondendo.



________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



#407002 - 01/08/2012 11:42:02

MARCELO-TREZE
SAO VICENTE
Cadast. em:Abril/2009


Bom galera venho aqui agradecer a ajuda de todos, usei a lógica do colega castelo, e resolveu meu problema, realmente o objetivo é não mexer na tabela, e usando esta logica pude criar os plantões aqui fica fácil, mais uma vez obrigado a todos.



________________________________________________________________________________________
O orgulho cega até os sábios, ao ponto de não percebam que não são tão sábios como pensam.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MARCELO-TREZE em 01/08/2012 11:42:52