Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Mendes

Como montar essa consulta?

Recommended Posts

Bom dia galera!

Bom sou novo por aqui, gostaria de pedir a ajuda de vcs com um problema que estou tendo!

tenho uma tabela com os seguintes campos -> id_hora_contratada_empresa, id_cliente, id_periodo, dt_inicio_contrato, dt_final_contrato, horas_contratadas, onde id_periodo corresponde a um periodo contratado como por exemplo id = 1 e igual a semanal = 7, ou entaum id = 2 igual a quinzenal e igual a 15.

e preciso criar um evento que parta do seguinte principio!

Fiz a contratação de um montante de horas para um cliente, digamos 40 horas entaum minha linha ficara assim =

id_hora_contratada_empresa | id_cliente | id_periodo | dt_inicio_contrato | dt_final_contrato | horas_contratadas

1 | 4 | 1 | 2011-05-01 | - | 40

 

preciso criar um evento que leia a ultima linha de registro do id do cliente compare a data de inicio do contrato com o periodo contratado, executando a seguinte ação, se a data estiver dentro do periodo por exemplo 7 dias e ainda e dia 5 não executa ação alguma, ja se a data for igual ou superior ao da validação ele grave na linha a data final igual a data da expiração da validação e crie uma nova linha com os mesmos dados somente atualizando a data de inicio para esta nova data. Por exemplo:

cotrato inicio hoje como semanal e 40 horas contratadas entaô em uma semana ele gerara um novo registro com a data da semana que vem com os mesmos dados de cliente e horas contratadas! Assim =

 

id_hora_contratada_empresa | id_cliente | id_periodo | dt_inicio_contrato | dt_final_contrato | horas_contratadas

1 | 4 | 1 | 2011-05-01 | 2011-05-08 | 40

2 | 4 | 1 | 2011-05-08 | - | 40

 

Desde ja agradeço !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Gabriel, como é que é isso? O cara contrata horas semanais e o contrato dele

se extende ao infinito e você quer fazer isto automaticamente via MySQL???

Ta meio turvo o objetivo. Entendi o que você quer mas não consegui definir a lógica

de se fazer isso. Tem como ilustrar??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Periscuelo então no caso a secretária vai fazer a primeira ação que é a de cadastrar o contrato de horas e definir o periodo, após isso digamos que a empresa "A" contratatou 60 horas quinzenais! sendo que em uma quinzena tenho 15 dias, a cada quinze dias o banco teria que atualizar o fim da do primeiro contrato para quinze dias apos seu inicio e começar um novo registro com a mesma data do final do ultimo e sempre seguindo o intervalo definido encerrando um registro e iniciando outro até que uma flag contrato_ativo seja setada como 0 aonde esse processo ira ter seu fim!

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é mais fácil fazer um script em PHP rodando em batch para atualizar o banco doque desenvolver uma procedure em SQL pra fazer isto.

Eu acredito que de para fazer oque você quer com PL/SQL mas não optaria por fazer desta forma. Deve ser bem mais trabalhoso fazer isto

direto no banco. Mas ai fica a seu critério.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto requer uma Stored Procedure para ser feito pois envolve gravação.

 

Escreve o algoritmo básico da rotina antes de qualquer codificação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.