[RESOLVIDO] - Parcelar vencimento com dia fixo

Tenho uma rotina de gerar varias parcelas de contas a pagar (fornecida pelo nosso amigo Haroldo), agora tenho a necessidade de gerar, sendo o dia fixo (Ex. vence todo dia 15), mas não estou conseguindo. Sei que no fórum existe a solução, mas não estou encontrando. Se alguém puder me ajudar.

Segue código:

Grato

Não sei como é a rotina mas utilizo a macro {datavenc} = sc_date({datavenc}, “dd/mm/aaaa”, "+ ", 0, 1, 0); dentro do loop para incrementar o mês.

if ({ParcelaNroTotal}>1){ sc_exec_sql(CALL parcelas_contas_pagar ({id_fornecedor},'{numero_documento}')); }

delimiter $$

CREATE DEFINER=`root`@`%` PROCEDURE `parcelas_contas_pagar`(IN var_idfornec INT(10), var_documento VARCHAR(64))
BEGIN
DECLARE var_aux INT(11);
DECLARE var_id_contas_pagar INT(11);
DECLARE var_data_conta DATE;
DECLARE var_descricao VARCHAR(255);
DECLARE var_id_conta_caixa VARCHAR(32); 
DECLARE var_id_centro_custo VARCHAR(16);
DECLARE var_id_job VARCHAR(15);
DECLARE var_sem_duplicata CHAR(1);
DECLARE var_previsao CHAR(1);
DECLARE var_data_vencimento DATE; 
DECLARE var_multa_percentual DECIMAL(8,4);
DECLARE var_juros_diarios_valor DECIMAL(14,2);
DECLARE var_juros_diarios_perc DECIMAL (8,4);
DECLARE var_valor DECIMAL(14,2);
DECLARE var_desconto_valor DECIMAL(14,2);
DECLARE var_desconto_ate_data DATE;
DECLARE var_portador INT(11);
DECLARE var_data_pgto DATE;
DECLARE var_caixa_pgto VARCHAR(32);
DECLARE var_banco_pgto INT(11);
DECLARE var_agencia_pgto VARCHAR(16);
DECLARE var_notas TEXT;
DECLARE var_cheque_pgto VARCHAR(10);
DECLARE var_valor_pgto DECIMAL (14,4);
DECLARE var_juros_pagos_pgto DECIMAL (14,2);
DECLARE var_multa_pgto DECIMAL(8,4);
DECLARE var_desconto_pgto DECIMAL (14,2);
DECLARE var_conta_bancaria_pgto VARCHAR(32);
DECLARE var_NegocioId INT(10);
DECLARE var_EmpresaId INT(10);
DECLARE var_ParcelaNro INT(11);
DECLARE var_ParcelaNroTotal INT(11);
DECLARE var_ParcelaPeriodicidade VARCHAR(1);
DECLARE var_mes INT(2);
DECLARE cursor1 CURSOR FOR SELECT 
  id_contas_pagar, data_conta, descricao, id_conta_caixa, id_centro_custo, id_job, sem_duplicata, previsao, data_vencimento, 
  multa_percentual, juros_diarios_valor, juros_diarios_perc, valor, desconto_valor, desconto_ate_data, portador, data_pgto, 
  caixa_pgto, banco_pgto, agencia_pgto, notas, cheque_pgto, valor_pgto, juros_pagos_pgto, multa_pgto, desconto_pgto, 
  conta_bancaria_pgto, NegocioId, EmpresaId, ParcelaNro, ParcelaNroTotal, ParcelaPeriodicidade
  FROM nm_contas_pagar WHERE id_fornecedor = var_idfornec and numero_documento = var_documento ORDER BY id_contas_pagar DESC LIMIT 1;
  
OPEN cursor1;
  FETCH cursor1 INTO var_id_contas_pagar, var_data_conta, var_descricao, var_id_conta_caixa, 
  var_id_centro_custo, var_id_job, var_sem_duplicata, var_previsao, var_data_vencimento, 
  var_multa_percentual, var_juros_diarios_valor, var_juros_diarios_perc, var_valor, 
  var_desconto_valor, var_desconto_ate_data, var_portador, var_data_pgto, var_caixa_pgto, 
  var_banco_pgto, var_agencia_pgto, var_notas, var_cheque_pgto, var_valor_pgto, 
  var_juros_pagos_pgto, var_multa_pgto, var_desconto_pgto, var_conta_bancaria_pgto, 
  var_NegocioId, var_EmpresaId, var_ParcelaNro, var_ParcelaNroTotal, 
  var_ParcelaPeriodicidade;
CLOSE cursor1;
  
  SET var_aux = var_ParcelaNro + 1;
  IF (var_ParcelaNroTotal > 0) THEN
     SET var_mes = 1;
     WHILE var_aux <= var_ParcelaNroTotal DO
	     INSERT INTO  nm_contas_pagar
         (data_conta, descricao, id_conta_caixa, id_centro_custo, id_fornecedor, id_job, numero_documento,
         sem_duplicata, previsao, data_vencimento, multa_percentual, juros_diarios_valor, juros_diarios_perc, valor, desconto_valor, 
         desconto_ate_data, portador, data_pgto, caixa_pgto, banco_pgto, agencia_pgto, notas, cheque_pgto, valor_pgto, juros_pagos_pgto, 
          multa_pgto, desconto_pgto, conta_bancaria_pgto, NegocioId, EmpresaId, ParcelaNro, ParcelaNroTotal, ParcelaPeriodicidade) 
         VALUES (var_data_conta, var_descricao, var_id_conta_caixa, 
          var_id_centro_custo, var_idfornec, var_id_job, CONCAT(var_documento,'/',var_aux), var_sem_duplicata, var_previsao, (SELECT INTERVAL var_mes MONTH + var_data_vencimento), 
         var_multa_percentual, var_juros_diarios_valor, var_juros_diarios_perc, var_valor, 
         var_desconto_valor, var_desconto_ate_data, var_portador, var_data_pgto, var_caixa_pgto, 
         var_banco_pgto, var_agencia_pgto, var_notas, var_cheque_pgto, var_valor_pgto, 
         var_juros_pagos_pgto, var_multa_pgto, var_desconto_pgto, var_conta_bancaria_pgto, 
         var_NegocioId, var_EmpresaId, var_aux, var_ParcelaNroTotal, 
         var_ParcelaPeriodicidade);
         SET var_aux = var_aux + 1;
	       SET var_mes = var_mes + 1;
     END WHILE;
	   UPDATE nm_contas_pagar SET numero_documento = CONCAT(numero_documento,'/',ParcelaNro) WHERE id_contas_pagar = var_id_contas_pagar;
  END IF;
 


END$$


Muito simples, como o George disse (+1 no mês)

Muito obrigado amigos George e Haroldo