Autor Tópico: (RESOLVIDO)Contar Parcelas  (Lida 850 vezes)

Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • Gestão de Construtoras
    • Email
(RESOLVIDO)Contar Parcelas
« Online: Agosto 07, 2014, 05:24:53 pm »
Prezados, como faço para contar a quantos parametros tem entre a / neste caso ?

Ex.    30/60/90
$condicao=explode("/",$CondicaoPagto);

ele vai jogar no meu laço esses valores,. só que antes preciso informar que são 3 parcelas.

Como faço para não ter que informar que é 3 parcelas ?

Tipo. quero escrever no campo 30/60/90 e ao processar já entender que é 3..
« Última modificação: Agosto 08, 2014, 05:10:36 pm por Jean Matos »
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 64 bits
Sistema Integrado de Gestão de Construtoras]WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Contar Parcelas
« Responder #1 Online: Agosto 07, 2014, 05:26:47 pm »
O explode retorna um array. Use a funcao size () paara saber o tamanho do array.
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Contar Parcelas
« Responder #2 Online: Agosto 07, 2014, 05:49:29 pm »
Jean,

Que tal algo como:

$parcelas ='30/60/90';
$num_parcelas = substr_count($parcelas, '/')+1;

[]s


Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Contar Parcelas
« Responder #3 Online: Agosto 07, 2014, 06:21:48 pm »
O explode retorna um array. Use a funcao size () paara saber o tamanho do array.

Recomendo assim, bem mais fácil, o PHP tem 1 milhão de funções para manipular strings, hehe e viva as matrizes.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • Gestão de Construtoras
    • Email
Re:Contar Parcelas
« Responder #4 Online: Agosto 08, 2014, 03:40:31 pm »
Seria isso ?

Código: [Selecionar]
$condicao=explode("/",$CondicaoPagto);
  $quantidade = size($condicao);
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 64 bits
Sistema Integrado de Gestão de Construtoras]WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • Gestão de Construtoras
    • Email
Re:Contar Parcelas
« Responder #5 Online: Agosto 08, 2014, 03:47:34 pm »
Fatal error: Call to undefined function size() in C:\Program Files (x86)\Ne
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 64 bits
Sistema Integrado de Gestão de Construtoras]WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Contar Parcelas
« Responder #6 Online: Agosto 08, 2014, 03:58:04 pm »
não é size é count.


$quant=count($array);

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Contar Parcelas
« Responder #7 Online: Agosto 08, 2014, 04:00:11 pm »
A função é count. Foi mal. Size acho que é em java.
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • Gestão de Construtoras
    • Email
Re:Contar Parcelas
« Responder #8 Online: Agosto 08, 2014, 05:09:46 pm »
Ok...tudo certo..

       
Código: [Selecionar]
$condicao=explode("/",$prazo);
  $numero = count($condicao);
$parcela = 1;
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 64 bits
Sistema Integrado de Gestão de Construtoras]WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775

Jean Matos

  • Expert
  • *****
  • Mensagens: 956
    • Gestão de Construtoras
    • Email
Re:(RESOLVIDO)Contar Parcelas
« Responder #9 Online: Agosto 08, 2014, 05:11:47 pm »
valores();
sleep(1);
if(empty({data_entrega})){
   echo "O CAMPO DATA DE ENTREGA NÃO PODE ESTAR EM BRANCO. FAVOR INFORMAR DATA";
   }else{

//ESSE GRUPO DE CODIGO GERA AS APS


sc_lookup(dataset,"
SELECT sequencial, idobra, idfornecedor, valorODC, valorfinal, idprazo, tipo_paga, frete, baixa, prazo
FROM tblOrdemdeCompra
WHERE idordem = '{idordem}'");

   $sequencial = {dataset[0][0]};
   $idobra    = {dataset[0][1]};
   $fornecedor = {dataset[0][2]};
   $bruto       = {dataset[0][3]};
   $final       = {dataset[0][4]};
   $prazo       = {dataset[0][5]};
   $tipo_paga   = {dataset[0][6]};
   $frete       = {dataset[0][7]};
   $baixa       = {dataset[0][8]};
   $prazo       = {dataset[0][9]};

   
      $datalanca = Date('Ymd G:i:s');

   
   $condicao=explode("/",$prazo);   
    $numero = count($condicao);   
   $parcela = 1;

   foreach($condicao as $dias)
   {
      
      //$vencimentoF = sc_date_conv({data_entrega},"ddmmaaaa","aaaammdd");
      $vencimento = sc_date({data_entrega}, "aaaa-mm-dd "," + ", $dias, 0, 0);
      $valorparcela = $final / $numero;
      $insert_table  = 'autoriza_pagamento';      // Table name
      $insert_fields = array(   // Field list, add as many as needed
        'usuario'          => "'[usr_login]'",
      'data_lancamento'    => "'$datalanca'",
      'centro_custo'       => "'$idobra'",
      'fornecedor'       => "'$fornecedor'",
      'odc'             => "'$sequencial'",
      'tipo_cobranca'      => "'$tipo_paga'",
      'valor_bruto'       => "'$bruto'",
      'valor_liquido'    => "'$final'",
      'numero_parcela'    => "'$parcela'",
      'valor_parcela'    => "'$valorparcela'",
      'vencimento'       => "'$vencimento'",
      'status'          => "'1'",
      'idEmpre'          => "'{faturar}'",
      'contabilizado'    => "'2'",
   
 );

// Insert record
$insert_sql = 'INSERT INTO ' . $insert_table
    . ' ('   . implode(', ', array_keys($insert_fields))   . ')'
    . ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

sc_exec_sql($insert_sql);
$parcela++;

sc_lookup(ds,"SELECT     MAX(id_ap) AS ultimoID
FROM         dbo.autoriza_pagamento
GROUP BY usuario
HAVING      (usuario = '[usr_login]')");

$id_ap = {ds[0][0]};
SetNumeroAp('APC',$id_ap);
}

//atualiza status da ordem de compra

// SQL statement parameters
$update_table  = 'tblOrdemdeCompra';      // Table name
$update_where  = "idordem = '{idordem}'"; // Where clause
$update_fields = array(   // Field list, add as many as needed
   "idstatus = '7'",
 
 );

// Update record
$update_sql = 'UPDATE ' . $update_table
    . ' SET '   . implode(', ', $update_fields)
    . ' WHERE ' . $update_where;
sc_exec_sql($update_sql);
}

geraiso();
atualizaiso();
contabilidade($final);
sc_exit(ref);
Sc - 6.xxx , 7.xxx e V8
Windows Server 2008 Enterpriser 64 bits
SqlServer 2008 Express 64 bits
Sistema Integrado de Gestão de Construtoras]WaveTOR - Sistema Integrado de Gestão de Construtoras
Teófilo Otoni - MG
(33)8824-2775