Norivan Oliveira Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 Olá amigos estou querendo fazer uma função para verificar se o "cliente" está inadimplente, se trata de um if, o que eu estou tentando é o seguinte: If ($datavencimento >= $datadepagamento){ echo "<font color=\"red\">Inadimplente</font>"; } else { echo "<font color=\"green\">Ok</font>"; }no caso ai so esta verificando se a data de vencimento é maior ou igual a data do ultimo pagamento efetuado pelo cliente, mas preciso na verdade que ele verifique se a data de vencimento é 30 dias maior que a data do ultimo pagamento Como fazer isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 Converta as duas datas para timestamp, subtraia a maior da menor, se a diferença for superior a 2592000 segundos é porque a diferença é superior a 30 dias... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Outubro 6, 2007 Autor Denunciar Share Postado Outubro 6, 2007 (editado) hum... mas é se esse valor de 30 dias for dinamico? :P é que existem periodos de cobrança mensal, trimestral e etc...Opa acabei de pensar numa coisa aqui, e se eu somar 30 dias a data do ultimo pagamento e colocar no if $datadevencimento < $datadepagamento.... mais ou menos assim:$data_de_pagamento_real = 01/10/2007; $data_de_pagamento_somada = 01/10/2007 + 30; $data_de_vencimento = 01/11/2007 if ($data_de_pagamento_somada < $data_de_vencimento){ echo "vencido"; } else { echo "ok"; }Será que funciona?? hehe vou testar Editado Outubro 6, 2007 por Norivan Oliveira Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 Em primeiro lugar você entendeu o motivo de 2592000 segundos? Porque 60 (segundos) x 60 (minutos) x 24 (horas) x 30 (dias) dá esse número... se existirem outros prazo, mudar o 30 pelo número de dias e pronto... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Outubro 6, 2007 Autor Denunciar Share Postado Outubro 6, 2007 (editado) Isso eu entendi o problema é que não tenho a mínima idéia de converter em timestamp... então pensei em um modo que eu conhecesse... ainda nem testei.... só fiz uma suposição. Agora se você quiser me explicar como usar timestamp logicamente irei fazer o que você indicou Editado Outubro 6, 2007 por Norivan Oliveira Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 6, 2007 Denunciar Share Postado Outubro 6, 2007 A tá -> strtotime, lembrando que a data vai ter que estar no formado aaaa-mm-dd. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Norivan Oliveira Postado Outubro 7, 2007 Autor Denunciar Share Postado Outubro 7, 2007 Cara vlw pela ajuda, mas não entendi direito essa conversão não resolvi o problema acrescentando + 1 ao mes de pagamento e depois verificando se a data é menor que a data de vencimento Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 7, 2007 Denunciar Share Postado Outubro 7, 2007 $data = "2007-10-07"; $data = strtotime($data); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Norivan Postado Outubro 7, 2007 Denunciar Share Postado Outubro 7, 2007 Viva o Edgar Serra :D Da proxima vez eu uso. Construi uma função aqui de teste e me surgiu outra duvida: como eu faço para ter mais de uma condição com o sinal de maior?<? $data = "2007-10-07"; $data = strtotime($data); $data1 = "2007-12-08"; $data1 = strtotime($data1); $datar = $data1 - $data; echo $datar; If ($datar > 2674800){ echo "Pagamento pedente"; } Elseif ($datar > 5266800){ echo "Inadimplente"; } Else{ echo "Ok"; } ?>Elseif ($datar > 5266800) não funciona, acho que não aceita testar duas condições com o mesmo sinal... mas então como fazer essa condição para verificar se a conta esta vencida a mais de um mês? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 7, 2007 Denunciar Share Postado Outubro 7, 2007 Acontece que se o $datar for por exemplo 2674801 ele já vai no primeiro... por isso o segundo nunca vai ser acessado a não ser que você modifique o primeiro para...If (($datar > 2674800) AND ($datar <= 5266800)){ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Norivan Postado Outubro 7, 2007 Denunciar Share Postado Outubro 7, 2007 Ah sim. Obrigado pela enorme ajuda Edgar. Acho que acabei a "função", vou postar aqui para você poder analisar e caso alguma outra pessoa precise pode usar ela como base, ficou assim:<? $datap = $row_Recordset1['datadepagamento']; // Pega data de pagamento $datap = strtotime($datap); // Converte data de pagamento em segundos $datadevecimento = date("Y-m-".$diavencimento); // Pega dia de vecimento e concatena com mês e ano atuais. $datav = strtotime($datadevecimento); // Converte data de vecimento $datar = $datav - $datap; // Subtratrai data de vecimento por data de pagamento $periodo = $row_rs_cliente['periodopagamento']; // Pega o periodo de pagamento do cliente /* Verifica condições de periodo de pagamento e transforma em segundos*/ If ($periodo == "mensal"){ $periodo = 2674800; } Elseif ($periodo == "trimestral"){ $periodo = 8024400; } Elseif ($periodo == "semestral"){ $periodo = 16048800; } Elseif ($periodo == "anual"){ $periodo = 32097600; } $periodoad = $periodo + 2674800; //Define prazo adicional para pagamento antes do usuário se tornar inadimplente. Autalmente 1 mês /* Verifica situação do cliente e imprime na tela*/ If (($datar > $periodo) AND ($datar <= $periodoad)){ echo "Ok"; } Else{ echo "Inadimplente"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Norivan Oliveira
Olá amigos estou querendo fazer uma função para verificar se o "cliente" está inadimplente, se trata de um if, o que eu estou tentando é o seguinte:
no caso ai so esta verificando se a data de vencimento é maior ou igual a data do ultimo pagamento efetuado pelo cliente, mas preciso na verdade que ele verifique se a data de vencimento é 30 dias maior que a data do ultimo pagamento
Como fazer isto?
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.