[RESOLVIDO] Comparação de Datas

Olá Pessoal,

Estou precisando da ajuda de vocês para resolver um probleminha!

Preciso que ao abrir uma consulta com os campos Codigo, Nome, DataRetorno, Status

O sistema verifique a dataatual e faça o seguinte.

if(Datatual > DataRetorno)

{

Campo Status fica vermelho

} else

{

Campo Status Fica Verde

}

http://downloads.scriptcase.com.br/downloads/v7/manual/pt_br/webhelp/manual_mp/manual_mp.htm


sc_field_style({Meu_Campo}, “Background-Color”, “Size”, “Color”, “Family”, “Weight”)
Esta macro permite que seja modificado o estilo do campo da consulta dinamicamente.

Parâmetro Descrição
Field Nome do campo
Background-Color (opcional) Cor de fundo da célula do campo
Size (opcional) Tamanho da fonte do campo
Color (opcional) Cor da fonte
Family (opcional) Família da fonte
Weight (opcional) Largura da fonte
Ex. 01:
sc_field_style({data_nasc}, ‘#33FF99’, ‘15px’, ‘#000000’, ‘Arial, sans-serif’, ‘bold’);

Escopo da Macro

Aplicação consulta
onRecord
onScriptInit

Faz assim:

if(Datatual > DataRetorno)

{

   sc_field_color ("Status", "#669900");

} else

{

sc_field_color ("Status", "#FF0000");

}

Pessoal,

Acho que acabei me expressando de maneira errada, minha maior dificuldade está em comparar o campo DataRetorno com a Data Atual.

Não estou conseguindo capturar a data atual do sistema.

função Date do php.

date('Y-m-d); Y = ano 2013, m = mês 07 e d = dia 05, ficando 2013-07-05

Olá Almeida,

A função que me passou funcionou perfeitamente para retornar a data atual, porém não estou conseguindo comparar a data atual com a data existente no registro.

como posso fazer essa comparação

1 - A data do registro tem que estar no mesmo formato da funcao date().
2 - Se for direto da grid use no evento onRecord

Ex:
if({nomedocampodata} < date(formato da data)){
faço isso.
}
else{
faço isso.
}

1 Curtida

Olá Almeida,

meu código ficou assim no evento Onrecord

$current_date = date(‘Y-m-d’);
$dias = sc_date_dif({previsaoretorno}, ‘aaaa-mm-dd’, $current_date, ‘aaaa-mm-dd’);

if($dias > 0)
{

sc_field_color("status", "GREEN");

}
elseif($dias == 0)
{

sc_field_color("status", "GREEN");

}
elseif($dias < 0)
{

	sc_field_color("status", "RED");

}

porém o campo não está tendo sua cor modificada! testei a leitura da variável dias e ela está retornando a quantidade de dias corretamente.

Valeu pela força ai pessoal!

Consegui resolver o problema já

Seria possível disponibilizar o código que funcionou para ps demais leitores do fórum.

Ok, Segue abaixo o código que utilizei!



/**
 * Checking the difference between due date to current date.
 */

//getting the current date from php
$current_date = date('Y-m-d');
$dias = sc_date_dif({previsaoretorno}, 'aaaa-mm-dd', $current_date, 'aaaa-mm-dd');


if($dias >= 0) 
   {
	   
	sc_field_style({status}, "#00FF00", "", "", "", "bold");
  
}

if($dias < 0)
{
	
  sc_field_style({status}, "#FF0000", "", "", "", "bold");
   
}