Escala de servico
Andre Freitas
Respostas
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
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
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
https://www.devmedia.com.br/imagens/videos/4/Video%20disco%20virtual.htm
Abs!!!
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Devmedia
13/06/2009
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.
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Devmedia
13/06/2009
foi enviado um email pra vc reportando todos os passos q precisa.
Devmedia
13/06/2009
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.
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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!!
Andre Freitas
13/06/2009
Devmedia
13/06/2009
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".
Devmedia
13/06/2009
o consultor está esperando o link para poder melhor te ajudar. Ficamos no aguardo.
Andre Freitas
13/06/2009
Devmedia
13/06/2009
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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 !!!
Devmedia
13/06/2009
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.
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
Eu até entro na pasta SistemTM mas pra mim aparece vazia. Vou verificar com o pessoal aqui !!
Abs!!
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
Agora sim !!!
Estou baixando o arquivo, vou analisar e lhe dar algumas sugestões.
abs!!
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
Peço que aguarde que irei enviar.
Abs!
Andre Freitas
13/06/2009
Andre Freitas
13/06/2009
Rodrigo Mourão
13/06/2009
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
Rodrigo Mourão
13/06/2009
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!!
Rodrigo Mourão
13/06/2009
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
Rodrigo Mourão
13/06/2009
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