O codigo abaixo criei para usar em um contas a pagar onde se for mais de uma parcela ele lançara as outras paracelas altomaticamente mantendo o dia do vencimento.
Gostaria de saber de todos uma forma mais simples.
$datatime = date(‘Y-m-d h:i:s’); //pega data hora
if({quantidade_parcelas} >= 2){ // verifica se quantidade de parcelas é maior que 1
$data = {data_competencia}; // data da emissão do boleto ou documento
$calc = 0; // inicializando variavel CALC
$j = 1; // inicializando variavel J
sc_lookup(Dataset, “SELECT forma FROM forma_pagamento WHERE id = {forma_parcelamento}”); /* buncando id da forma de pagamento ex: parcelado 30 dias id 1, parcelado 30,60 dias id 2 …
$qt_parcela = explode(",", {Dataset[0][0]}); explode dataset para pegar mês
switch ($dt[1]) {
//mes janeiro 31 dias
case 1:
$data = calculaData($calc, 31,$data);
break ;
//mes fevereiro 29 ou 28 dias
case 2:
// ano 366
if($dt[0]%4){
$data = calculaData($calc, 28,$data);
}//ano 365
else{
$data = calculaData($calc, 29,$data);
}
break ;
// mes março 31 dias
case 3:
$data = calculaData($calc, 31,$data);
break ;
// mes abril 30 dias
case 4:
$data = calculaData($calc, 30,$data);
break ;
// mes maio 31 dias
case 5:
$data = calculaData($calc, 31,$data);
break ;
// mes junho 30 dias
case 6:
$data = calculaData($calc, 30,$data);
break ;
// mes julho 31 dias
case 7:
$data = calculaData($calc, 31,$data);
break ;
// mes agosto 31 dias
case 8:
$data = calculaData($calc, 31,$data);
break ;
//mes setembro 30 dias
case 9:
$data = calculaData($calc, 30,$data);
break ;
//mes outubro 31 dias
case 10:
$data = calculaData($calc, 31,$data);
break ;
//mes novembro 30 dias
case 11:
$data = calculaData($calc, 30,$data);
break ;
//mes dezembro 31 dias
case 12:
$data = calculaData($calc, 31,$data);
break ;
No formulário é inserido a primeira parcela.
Após sua inserção se for mais de uma parcela, é chamada a SP passando com chave o id do fornecedor é número do documento
A SP localiza o registro já inserido no contas a pagar e insere a parcelas restantes.
A SP altera a parcela inicial para o docimento/'número da parcela inicial.
Parece grande por ter muitos campos a tabela, mas a lógica é muito simples.