Caros amigos,
A dúvida que tenho pode parecer já respondida em outros tópicos, porém não encontrei a resposta de maneira específica e juntei alguns pedaços dessas respostas para formular o código, mas sem êxito.
Necessidade: Permitir que o usuário ao selecionar um registro de contas a pagar, clique no botão Múltiplo e este crie registros na quantidade definida pelo número total de parcelas. Por exemplo, uma compra de um produto feita em dez parcelas. O usuário cadastra a primeira parcela, clica no botão Multiplo e o sistema deverá gravar as outras 9 parcelas restantes variando a data de vencimento.
Banco de dados: Postgree. Tabela com chave autoincremental (codigo).
Segue o código-fonte:
// Obter os valores do primeiro registro cadastrado
$codi = {codigo}; // codigo
$tipo = {tipo}; // tipo
$banc = ‘P’; // sempre P
$cent = {centro}; // codigo do centro de custo
$ncen = {nomecentro}; // nome do centro de custo
$cred = {credor}; // codigo do credor
$ncre = {nomecredor}; // nome do credor
$fatu = {fatura}; // fatura
$venc = {vencimento}; // data de vencimento
$paga = {pagamento}; // data de pagamento
$cheq = {cheque}; // cheque
$cont = {conta}; // conta bancária
$valr = {valorr}; // valor
$dola = {dolar}; // cotação do dolar
$valu = {valoru}; // valor em dolar
$desc = {descricao}; // descricao
$docu = {documento}; // os original quando a receber
$pars = {parcelas}; // numero total de parcelas
$parc = {parcela}; // numero da parcela
$form = {forma}; // forma de pagamento
$ultn = {codigo}; // repetir codigo
// Cria chave primaria da tabela ctaspagar apontando para o valor do campo código
// do último registro
sc_lookup(ds,“select max(codigo) from ctaspagar”);
$codi = ({ds}[0][0]);
echo “codigo = $codi”;
$codi++;
// neste ponto o echo apontou valor nulo exibindo: “codigo =” por consequência, não atribui um novo número para a próxima chave primária.
$parc = 1; //determina a qtde de loops
$mes = 1;
$vdata1 = sc_date ($venc, “aaaa-mm-dd”, “-”, 0, $mes, 0); //faz o sistema gerar parcelas a partir da data de vencimento informada no formulário cadastral e não 30 dias após
while($parc <= $pars){
$venc = sc_date ($vdata1, “aaaa-mm-dd”, “+”, 0, $mes, 0); //determina o valor do $laco
//INCREMENTA O MES E GRAVA O REGISTRO
sc_exec_sql(“insert into ctaspagar values(’$codi’,’$tipo’,’$banc’,’$cent’,’$ncen’,’$cred’,’$ncre’,’$fatu’,’$venc’,’$paga’,’$cheq’,’$cont’,’$valr’,’$dola’,’$valu’,’$desc’,’$docu’,’$pars’,’$parc’,’$form’,’$ultn’)”);
$codi++; // incrementa o campo codigo
$parc++; // incrementa o próximo numero de parcela
$mes++; // incrementa o mês do próximo vencimento
}
Não acontece absolutamente nada e nem aparece erro em tela indicando algum erro de sintaxe, leitura de banco… nada. Agradeço por toda ajuda que vier!