Ajuda para gerar parcelas

Olá pessoal,

Estou precisando muito da ajuda de vocês para criar uma rotina para gerar parcelas.

Agradeço a todos que puderem me ajudar.

Grato

Paulo José
Click informática
Garanhuns - PE

Segue um script para lhe servir de base.

// GERA PARCELAS DA VENDA
sc_select(ds_clientes, select autorizacao,matricula,parcelas,valor_parcela,data_venda from clientes_vendas where (convenio = ‘[var_usuario]’ and data_venda =’$data_venda’));

if ({ds_clientes} === false){
echo "Erro de acesso a tabela de Vendas = " . {ds_clientes_erro};
}else {
while (!$ds_clientes->EOF)
{

   $autoriza = $ds_clientes->fields[0];
   $mat      = $ds_clientes->fields[1];
   $parc     = $ds_clientes->fields[2];
   $val_parc = $ds_clientes->fields[3];
   $laco = 1;
   $mes = 1;

   while ($laco <= $parc)
   {
     $venc = sc_date ($dataset1->fields[0], "aaaa-mm-dd", "+", 0, $mes, 0); //INCREMENTA O MES
     $id++;
     sc_exec_sql("Insert into clientes_parcelas values('$id','[var_usuario]','$autoriza','$mat','$parc','$val_parc','$laco','$venc',0)");
     $laco++;
     $mes++;
   }

 $ds_clientes->MoveNext();
 }
 $ds_clientes->Close();

}

Seguindo a mesma ideia de George, segue uma rotina que de acordo com o valor total, gera as parcelas:

if({finalizarpedido} == ‘SIM’)
{

//Pega a soma dos itens
sc_lookup(rs_val, “SELECT
SUM(valor_total)
FROM
vendaItens
WHERE
(venda_idvenda = '”. {idvenda} ."’)");

//Pega a forma de pagamento
//Esta no formato 10/20 ou 10/20/30 ou 10/20/30/40 …
sc_lookup(rs, “SELECT
descricao
FROM
formasPagamento
WHERE
(idformasPagamento = '”. {idformasPagamento} ."’)");

$pagamento = {rs[0][0]};
$total = {rs_val[0][0]};

if($total > 0)
{
$arr_parcelas = array();
if(strpos($pagamento, “/”)!==false)
{
$arr_parcelas = explode("/", $pagamento);
}else
{
$arr_parcelas[] = $pagamento;
}

   $vl_parcela = $total/count($arr_parcelas);
   $data_base  = {data_venda};
   $cont=1;
   foreach($arr_parcelas as $days)
   {
       $dt_parcela = sc_date ($data_base, "aaaa-mm-dd", "+", $days, 0, 0);

       $str_insert = "INSERT INTO pagamentos (venda_idvenda, descricao, valor, data_vencimento, usuarioInc, data_inc)
                      VALUES(". {idvenda} .", 'Parcela ". $cont ."/". count($arr_parcelas) ."', '". $vl_parcela ."', '". $dt_parcela ."', '". [var_login] ."', now())";
       sc_exec_sql($str_insert);
       $cont++;
   }

}
sc_exec_sql(“UPDATE venda SET finalizado=‘S’ WHERE idvenda = '”. {idvenda} ."’");
}

http://www.scriptcaseajax.com.br/news.php?extend.31.3

código em php, com residual na primeira parcela.

Tem que se cadastrar como usuário para ver o artigo.

Olá pessoal, obrigado pela ajuda.
Mas em que momento devo colocar esse código? Devo criar um botão, ou executar depois de atualizar o formulário ?

Grato
Paulo

Primeiro devemos saber se é parcelas de contas a pagar ou a receber.
Se for a pagar, deve fazer uma entrada da nota fiscal (coisa que se tornará obsoleta em futuro próximo com a obrigatoriedade da NFE para todas as empresas, será importado o arquivo XML com todas as informações) após conferida a digitação, ao fechar essa entrada, a mercadoria deve dar entrada ao estoque, geração do financeiro a pagar.

Se for contas a receber, no meu caso o pedido passa por processos (orçamento, em aberto, fechado, faturado) após fechado, tenho uma tela de seleção de pedidos que não foram gerado financeiro, nesse momento, é que gero o contas a receber e/ou junto a emissão da nota fiscal.

[quote author=Paulo (ClickInformatica) link=topic=2250.msg8466#msg8466 date=1284462351]
Olá pessoal, obrigado pela ajuda.
Mas em que momento devo colocar esse código? Devo criar um botão, ou executar depois de atualizar o formulário ?

Grato
Paul

???

[quote author=Paulo (ClickInformatica) link=topic=2250.msg8345#msg8345 date=1283966702]
Olá pessoal,

Estou precisando muito da ajuda de vocês para criar uma rotina para gerar parcelas.

Agradeço a todos que puderem me ajudar.

Grato

Paulo José
Click informática
Garanhuns - PE
[/quote

TAMBÉM SOFRI UM BOCADO

mas deu certo com um post do Haroldo:

cria um botão php na aplicação MestreDetalhe
pra atualizar e inserir no form tabela receber as parcelas com vencimento e valor das parcelas

$CondicaoPagto={PAGAMENTO}; // campo texto no Mestre detalha pra digitar assim 00/30/60/90
$valor_dividido={VALOR_PARCELA};
$ValorPedido={TOTAL};
$NumeroNF={id_venda};
$cliente={CLIENTE};

//*************************************

$PARCELAS=explode("/",$CondicaoPagto);

$ICOUNT=count($PARCELAS);

$HOJE={DATA};

$ICOUNT=$ICOUNT==0?1:$ICOUNT;

$VLRPARCS=round($ValorPedido/$ICOUNT,2);

$VLRPARC1=round($VLRPARCS+$ValorPedido-($VLRPARCS*$ICOUNT),2);

for ($i = 0; $i <= ($ICOUNT-1); $i++) {

$VENCIMENTO=sc_date($HOJE,“AAAA-MM-DD”,"+",$PARCELAS[$i],0,0);

$VLR=$i==0?$VLRPARC1:$VLRPARCS;

IF ($ICOUNT>1) $NRODOC=$NumeroNF."-".substr(“ABCDFGHIJLMNOPQRSTUVXZ”,$i,1);
ELSE $NRODOC=$NumeroNF;

sc_exec_sql(“INSERT INTO receber
(ID_VENDA,CLIENTE,DATA,VENCIMENTO, VALOR)
VALUES ($NumeroNF,$cliente, ‘$HOJE’,’$VENCIMENTO’, $VLR)”);

Tem uma pequena questão, as diferenças do valor de parcela, não irão resultar na somatória do total… é necessário realizar este tratamento, possivelmente uma parcela ficará com um valor diferenciado para chegar ao valor total…
Estou passando por este problema.

Isso sempre vai acontecer, qual é a dificuldade ?
Ex: 100,00 em 3 parcelas.
100,00 / 3 = 33,33 * 3 = 99,99, uma parcela será de 33,34.
Só tem que decidir se o vencimento da maior parcela será a primeira ou a última.

Nada… apenas ressaltando pois não continha no código acima…:+1: