CrazyLOL 2 Denunciar post Postado Fevereiro 20, 2015 Galera to com uma bronca... melhor duas... kkk Tenho em meu sistema uma tabela que possui o cadastro dos meus clientes e nela possui uma coluna que é chamado data de vencimento nesta coluna eu coloquei apenas um valor exemplo "7, 15, 25", preciso que 5 dias antes faça uma inserção em outra tabela que é chamada "clientes_fatura" porém este processo tem que ser feito todo dia a meia noite.. o problema está sendo o seguinte... - Preciso criar uma procedure que faça um loop no select de clientes e cada resultado eu faço um "if e else" verifica se a data atual é 5 dias menor da de vencimento. - Como que crio o evento para executar diariamente a meia noite esta procedure? Agradeço a ajuda Compartilhar este post Link para o post Compartilhar em outros sites
CrazyLOL 2 Denunciar post Postado Fevereiro 20, 2015 Cheguei nesta solução para a procedure... porém está dando erro... DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `gerarFaturaAssociado`() BEGIN DECLARE v_cod_associado, v_cod_cliente, v_cod_empresa, v_data_vencimento, v_valor, v_data_cadastro, v_ciclo_pagamento; #declare cursor DECLARE cur1 CURSOR FOR SELECT cod_associado, cod_cliente, cod_empresa, data_vencimento, valor, data_cadastro, ciclo_pagamento FROM clientes_associados; #declare handle DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; #open cursor OPEN cur1; #starts the loop the_loop: LOOP #get the values of each column into our variables FETCH cur1 INTO v_cod_associado, v_cod_cliente, v_cod_empresa, v_data_vencimento, v_valor, v_data_cadastro, v_ciclo_pagamento; IF done THEN LEAVE the_loop; END IF; #pego o dia atual e somo ele +5 que vejo se o dia do vencimento é igual o dia que estamos IF (DAY(DATE_ADD(NOW(), INTERVAL 5 DAY))) = v_data_vencimento THEN INSERT INTO `clientes_associados_pagamento` ( `cod_associado`, `data_vencimento`, `valor`, `valor_pago`, `cod_situacao`, `data_pagamento`, `usuario`) VALUES ( v_cod_associado, DATE_ADD(NOW(), INTERVAL 5 DAY), v_valor, '', 'ABERTO', '', ''); END IF; END LOOP the_loop; CLOSE cur1; END$$ DELIMITER ; Compartilhar este post Link para o post Compartilhar em outros sites