Escala de servico

13/06/2009

Boa tarde prezados(as), estou precisando da ajuda de vocês, estou tentando desenvolver um sistema que gera escala de servico automaticamente, ele tem:  tabela funcionarios;  tabela frequencia;  tabela escala.   ...Então eu quera que ao clicar no botão gerar escala de folda e frequencia, seja gerardo uma escala dentro das seguintes condições: =>para todos os funcionarios da tabela escala, seja verificado se um deles faltara, se sim transferir a folga dele da semana para o dia seguinte.   Ex.: tbl com 10 funcionario e respectivos:   nome funcionario    - 1ª folga     - 2ª folga     - 3ª folga    - 4ªfolga    - 5ª folga (caso tenha 5 semanas)  João                            1 (dias)       8                    15             22            29 Jose                             2                 9                    16             23            30 Maria                           3                 (10)Faltou       17            24            31 Pedro                          5                 (10)Faltou       (18) Falt    26            29 Marcos                        6                  2                     16            23           30 .... ....    Considerando que os dia  10 fosse feriado e 18 domingo *...   Como faço para alimentar o banco de dados com as informações de folga e quando estiver na situação acima * passar a folga para o dia seguinte?   Estou precisando muito desta ajuda, pois tenho que entregar este trabalho no dia 19/06/09.     Favor enviar ajuda para o e-mail:afreitas.provider@ampla.com     Desde já agradeço Andre Freitas.        
Andre Freitas

Andre Freitas

Curtidas 0

Respostas

Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Amigo,


Bem em primeiro lugar preciso de alguma informações como pro exemplo qual o banco que vdc utiliza e versão do Delphi para saber que tipo de rotina posso lhe indicar mediante o recuirso de casa versão.

Outra coisa, se puder me mandar uma copia do banco fica mais fácil de visualizar. Pois da maneira como vc expos ficaram alguma dúvidas como por exmeplo qual a data base para gerar a escala, por exemplo eu pego o primeiro funcionario e baseado em que gero a escala, do primeiro dia do mes, do ultimo dia tarbalhado deste funcionario etc.

Tem mais, qual a periodicidade da escala, semrpe de 7 em 7 dias ou varia de funcionario para funcionario para funcionario?

Essas informações nos ajudarão a lhe ajudar. Mas nada melhor que uma copia do banco ou pelo menos que vc crie um banco de exemplo com a mesma estrutura.

No aguardo.

Abs !!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa tarde Rodrigo,   Segue informações sobre o aplicativo.   >>>Bem em primeiro lugar preciso de alguma informações como pro exemplo qual o banco que vdc utiliza e versão do Delphi para saber que tipo de rotina posso lhe indicar mediante o recuirso de casa versão.
REPOSTA : estou usando o delphi 5 e firebird.
  >>>Outra coisa, se puder me mandar uma copia do banco fica mais fácil de visualizar. Pois da maneira como vc expos ficaram alguma dúvidas como por exmeplo qual a data base para gerar a escala, por exemplo eu pego o primeiro funcionario e baseado em que gero a escala, do primeiro dia do mes, do ultimo dia tarbalhado deste funcionario etc. RESPOSTA : pega o primeiro funcionario gera todos as folgas, pega o segundo faz o mesmo.... Começa sempre no dia 1º do mês.   >>>Tem mais, qual a periodicidade da escala, semrpe de 7 em 7 dias ou varia de funcionario para funcionario para funcionario?
RESPOSTA:  as folgas serma sempre de 7 em 7 dias, excete quando o funcionario faltar, pois a folga que cair no feriado ou domingo passara para o dia seguinte.
=>No delphi - Sera um form com um dbgrid e um botão (gerar folda), que ao clicar nela irá atualizar o banco e o dbgrid com os dias das folgas dos funcionários (lembrando que esta atualização pode ser feita pela rede.)   Andre Freitas.     ...Caso não tenha entendido me informa o seu e-mail que envio o banco com form
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Andre,

Eu entendi sim, mas se puder mandar o banco facilita bem nosso trabalho. Bem já vou adiantando que esta não é uma rotina simples de ser feita não, envolve muitos pontos que devem ser levados em consideração. Mas de qualquer forma vou analisar seu banco e sugerir a criacao de algumas tabelas de controle para feriados moveis e regionais e dar para voce o caminho das pedras.

Quanto a email gostaria de informá-lo que todo o contato deve ser feito via sistema on line e que voce pode estar usando o recurso Disco Virtual para me mandar o banco e o form.

Abs !!!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa tarde,  Como eu envio os arquivos por disco virtual?
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá, desculpa eu devia ter postado o link antes.

https://www.devmedia.com.br/imagens/videos/4/Video%20disco%20virtual.htm

Abs!!!



GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá amigo !!

Ainda está com dificuldades para postar no disco virtual. Assim que postar me mande o link para eu baixar o banco.

Estou no aguardo.

Abs !

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ola boa tarde
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Olá boa tarde,   ... Estou um pouco chateado, já estão acabando meus creditos (só 02 chamados) tento acessar aquele link que vc m enviou não sei o porque só está aumetando o numero do chamado e não consigo resolver meu problema. O link informado não aconteece nada e só tenho até quinta para terminar o tabalho.   Não estou consegindo enviar o arquivo e vai acabar meus chamados se exito, o que voce pode fzer parame ajudar?
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá amigo,

O link que estou lhe enviando é do video que ensina como postar arquivo no disco virtual. O postar arquivos no disco não consome créditos não.

Infelizmente não podemos trocar arquivos por outro canal, somente pelo canal do suporte.

Vou pedir a ADM que entre em contato com você para resolvermos seu problema. Para lhe auxilixar eu preciso do seu banco, ver suas tabelas, estruturas para  então lhe sugerir algo.

Entrarei em contato com a ADM agora mesmo !!


ABS !!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Devmedia

Devmedia

13/06/2009

Andre,
o disco virtual é uma opção do sistema da consultoria onde vc pode colocar aquivos nele no formato .zip ou .rar.
Esse recurso não consome recursos, muito menos o video que o consultor t passou.
Preciso que responda o email q lhe enviei com a tela de erro pra saber como posso te ajudar.

GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa noite,   quando tento acesso o link, abre http://get.adobe.com/br/flashplayer/ instalo flash player e não acontece nada.   ...fica só na tela do camtasia, mas não vejo nada.   ...Estou no aguardo, pois preciso da ajuda de vocês conforme falado.   Atte,   Andre Freitas. e-mail : afreitas.provider@ampla.com
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

André na tela do Camtasia tem que pressionar o play? Você pressionou ?

Outra coisa vou tentar adiantar algo sem ver seu banco. Bem vc vai precisar criar um procedure com um loop. Vc dará um select na tabela de funcionario para tazer o codigo de todos os funcionarios. Suponha que venha 100 funcionario. Assim vc vai comecar a fazer o seu loop. Pega o ID do primeiro funcionario e faz um select na tabela que possiu a data do ultimo dia que o funcionario trabalhou.

Com esse dia em maos vc faria o incremento em 7 dias para pegar o proximo dia deste funcionario. Agora que vem as variantes suponha que a data seja 13/06 vc tem que fazer varias verificacoes como se é domingo, se e feriado, etc.

Enfim apenas em palavras nao vai te ajudar por isso que quero seu banco. Ja deu pra perceber que nao é nada simples mas voce precisa nos enviar o banco. Vou enviar um novo email para a ADM para que eles possam te dar um suporte.

Abs !!!


Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi


GOSTEI 0
Devmedia

Devmedia

13/06/2009

André,
foi enviado um email pra vc reportando todos os passos q precisa.
GOSTEI 0
Devmedia

Devmedia

13/06/2009

Andre,
por falta de retorno estamos cancelando o chamado. Caso ainda tenha dúvidas sobre o assunto desse post, por favor, poste aqui q o cnsultor voltará a lhe antender.
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa tarde,   Desculpe a demora no retorno, e porque estava muito enrolado no serviço, coloquei o arquivo para vc ver como é   Aproveitando, como faço para bloquear um usuario apos 3 tentativas.   ... Apos compilar aparecerá o form da escala o que esta dentro de unit C:\DbSysMac\Units, o banco está dentro de C:\DbSysMac\Dbs.   Aguardando retorno.   atte,   Andre Freitas
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Amigo.

Vc precisa me enviar o link para eu baixar.  Eu não tenho acesso ao seu Disco virtual. Voce deve subir para o disco e me enviar o link para eu baixar !!

Abs!!

GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

 Ola amigo está no raiz  \SistemTM, no aguardo,   agradecido,   Andre Freitas.
GOSTEI 0
Devmedia

Devmedia

13/06/2009

Andre,
o consultor não tem acesso ao seu disco virtual. Por isso, vc precisa fornecer do caminho completo. Para isso, basta vc clicar com o botão direto sobre o arquivo e escolher a opção "copiar link".
GOSTEI 0
Devmedia

Devmedia

13/06/2009

Andre,
o consultor está esperando o link para poder melhor te ajudar. Ficamos no aguardo.
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ola amigo está no raiz  \SistemTM, no aguardo, não esta conseguindo acesso este link?   Atte,   Andre Freitas. 
GOSTEI 0
Devmedia

Devmedia

13/06/2009

Não, pois o consultor não tem acesso ao seu disco virtual, por isso ele precisa do caminho completo do arquivo para poder baixar, via FTP.
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa tarde desculpe-me, segue o caminho completo   https://www.devmedia.com.br/discovirtual/default.asp?f=\SistemTM     No aguardo.     Atte,   Andre Freitas
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá André,

Eu acessei o disco e o mesmo está vazio.  Vou entrar em contato com a ADM pois pode ser problema do sistema de disco virtual.




Att,


Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa noite rodrigo o link correto é este:   https://www.devmedia.com.br/discovirtual/default.asp?f=     ...Gostaria de saber tambem como bloquear senha de login apos 3 tentativas e so o administrador pode habilitar.   como faz para permitir que derteminado form só abra se o nivel de usuario for autorizado.     ...qual programa posso utilizar para criar instalações de software criados.     No aguardo, abraço,   Andre.      
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Amigo !!

O Link que vc mandou me leva para o raiz do disco virtual e so vejo os meus arquivos. Vou falar com a admnistracao. Quanto as outras dúvidas solicito que abra outros chamado. Cada dúvida tem que ser tratada em um chamado especifico.

Abs !!!
GOSTEI 0
Devmedia

Devmedia

13/06/2009

Andre,
o links está incompleto, vc precisa clicar em cima do arquivo que está no disco virtual e colar no post.
O link deve terminar com a extensão do arquivo q vc colocou no seu disco virtual.
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Rogrigo boa tarde,   ve sê é este   https://www.devmedia.com.br/discovirtual/default.asp?f=\SistemTM, o nome do arquivo é DBSysMac.rar   ... eu entre em lugar com este caminho e abriu normalmente.   Atte.     Andre Freitas
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá André,

Eu até entro na pasta SistemTM mas pra mim aparece vazia. Vou verificar com o pessoal aqui !!

Abs!!

GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

kkkkkkk

Agora sim !!!

Estou baixando o arquivo, vou analisar e lhe dar algumas sugestões.

abs!!

GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ok, Obrigado
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá,

Estou atualizando a minha versão do FireBird. Eu não consegui abrir seu banco acredito que vc esteja usando a versão 2.0. Vou atualizar e tentar abri-lo novamente.

Pelo a gentileza que aguarde !!

Abs!!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ok, no agardo   Andre
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá André,

Estou trabalhando no seu chamdo. Já Estou analisando a estrutura do seu banco para lhe sugerir algumas alterações e a criação de algumas procedures.

Peço que aguarde, em breve estarei postando e mantendo-o informado.

abs!!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi


GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ok, aguardando, Andre Freitas.
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Amigo,

Analisei seu banco e o exemplo que me mandou, minha sugestão não vai ser tão diferente da que eu coloquei no inicio pra vc, vamos lá.

Como eu sempre falo para meus alunos quando dou aula de lógica, temos sempre que dividir apra conquistar, ou seja, vamos pensar na rotina para gerar a folga de um funcionario e depois colocamos isso num loop para fazer de todos. Sendo assim segue o algoritmo para a resolucao do problema:

1) pegar o ultima folga do funcionario no mes anterior ao mes corrente.
2) somar 7 dias nesta data
3) verificar se a data calculada e sabado ou domingo
   3.1) Se Sim, ir para o proximo dia util
   3.2) Se não, verificar se e um feriado
       3.2.1) se for veriado ir para o proximo dia util.
4) Gravar a folga do funcionario
5) Somar mais 7 dias na folga e verficiar se vai ficar dentro do mesmo mes
  5.1) Se sim volta ao passo 1
  5.2) se não ir para o proximo funcionario.



Bem o algoritmo não e de todo complexo mas exige certo cuidado para nao gerar as folgas erradas. Os links abaixo possuem rotinas que podem te ajudar:


http://www.ramosdainformatica.com.br/dic_recentes01.php?CDA=262
http://www.planetadelphi.com.br/dica/1284/fun%C3%A7%C3%A3o-que-retorna-dia-da-semana-por-extenso
https://www.devmedia.com.br/articles/viewcomp.asp?comp=2564
http://beckershow.blogspot.com/2008/05/rotina-para-tratar-dias-uteis-e.html
http://r5sistemas.com.br/blog/?cat=6

Abs!!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi



  

GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá amigo,


As dicas abaixo foram suficientes ? Há mais alguma dúvida ?

Estamos aguardando para encerrarmos o chamado !!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi


GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Boa tarde,   ainda estou codificando o algoritmo, o problema está aindo no código, vou terminar e de dou noticia.   Andre
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Bom dia Rodrigo,   ...estou com dificuldade em começar a codifação, você tem com exemplificar o inicio, pois analisei osexempl dos sites que me informou, mas não m ajudou.   ...Eu queria um exemplo seu para de como iniciar, porque eu também cheguei fazer o algoritmo, mas minha dificuldade estava em como fazer os acessos com o loop dentro d banco.   ...no aguardo Andre.  
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Na verdade minha ideia e que o loop seja feito no Delphi mesmo.

Bem eu mesmo não tenho autorização para desenvolver aqui no sistema de Suporte. Vou entrar em contato com minha coordenadora para ver o que podemos fazer para lhe ajudar.

Abs!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi

GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ok no aguardo.
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Andre conversando com eles decidimos o seguinte. Desenvolver eu não posso mesmo porque levaria tempo. Entao vou comecar uma rotina para te dar uma noção dai pra frente vc toca.

Peço que aguarde que irei enviar.

Abs!
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Ok,   Obrigado.
GOSTEI 0
Andre Freitas

Andre Freitas

13/06/2009

Rodrigo bom dia,   Tem um arquivo no disco virtual que vc colocou, mas não consigo abrir, acredito que seja porque a versão do firebird é diferente da minha, tem como me informar a versão, não sei se esse já é o exemplo que vc fez para que possa resolver minha dúvida de como criar uma escala. no aguardo.   Atte,   Andre
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá amigo,

Não eu nao postei arquivo no disco virtual não.
Eu estou trabalhando na rotina ainda. Eu vou postar aqui em breve !!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi

GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá,

Segue mais ou menos a ideia do codigo. Tem que adaptar para os nomes dos seus campos:

var
  I: Integer;
  DataFolga: TDate;
begin
  CdsFuncionarios.Open;
  CdsFuncionarios.First;
  while not CdsFuncionario.Eof do
  begin
    cdsFolgas.Filter := 'FuncionarioID = '+CdsFuncionario.FieldByName('ID').AsString;
    cdsFolgas.Filtered := True;
    cdsFolgas.IndexFieldName := 'DataFolga';
    cdsFolgas.Refresh;
    cdsFolgas.Last;
    //Comeca a gerar folga;
    for I := 0 to 5 do
    begin
       DataFolga := cdsFolga.FieldByName('DataFolga').AsDate;
       IF DayOfWeek(Data+7) = 1 then       //Se Domingo
          DataFolga := DataFolga+1             //SegundaFeira;
       else 
         IF DayOfWeek(Data+7) = 6 then    //Se Sabado
            DataFolga := DataFolga+2          //SegundaFeira 
      
       CdsFolga.Insert;
       //Passar os valores para a tabela folga;
       CdsFolga.Applyupdates(0);
    end;
    CdsFuncionarios.Next;
  end;


Bem amigo o caminho e por ai. O algoritmo e meio complicado mas nao e dificil.

Abs!!
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Amigo, estaremos colocando o chamado como encerrado.


Caso haja alguma duvida ainda vc poderá reabrí-lo que voltaremos a atendê-lo.

Abs !!


Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi

GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

13/06/2009

Olá Amigo, estaremos colocando o chamado como encerrado.


Caso haja alguma duvida ainda vc poderá reabrí-lo que voltaremos a atendê-lo.

Abs !!


Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi

GOSTEI 0
POSTAR