Bug ou forma de trabalhar com datas

Olá pessoal,

Gostaria de compartilhar algo importante com vocês.

Não sei se mudou algo nas últimas versões, estou na 9.2.004.

Validação de datas, sempre utilizei a função padrão do PHP empty.

Ocorre que não estava funcionando e quando fui averiguar o SC está colocando o valor default de ‘null’ no campo de data em branco e então em um código como o abaixo não funciona.

if (empty({condicao_pagamento}) || empty({quantidade_parcela}) || empty({data_prevista_pagamento})){
	sc_error_message("Forma de pagamento exige que sejam informados condicação de pagamento, quantidade de parcelas e data prevista da primeira.");
}

Tive que alterar para:

if (empty({condicao_pagamento}) || empty({quantidade_parcela}) || empty({data_prevista_pagamento}) || {data_prevista_pagamento}=='null'){
	sc_error_message("Forma de pagamento exige que sejam informados condicação de pagamento, quantidade de parcelas e data prevista da primeira.");
}

E agora me pergunto: é bug ou forma de trabalhar do SC?

Felipe, tem uma macro que verifica se a data é vazia:

https://www.scriptcase.com.br/docs/pt_br/v9/manual/14-macros/01-visao-geral/#sc_date_empty

Eu utilizo ela nesses casos.

Obrigado meu caro amigo, mais um aprendizado registrado neste fórum.

A minha sugestão é para a NM utilizar os padrões PHP em relação aos códigos.

Agora mesmo estou com o mesmo problema em um form para onde gostaria de verificar se o {ID} está em branco e quando tento

if (empty({id})){
		$msg .= ' 2 ';
		$sql_count_cpf_cnpj = "SELECT count(1) FROM cliente WHERE cpf_cnpj='{cpf_cnpj}' AND id<>{id}";
	}else{
		$msg .= ' 3 ';
		$sql_count_cpf_cnpj = "SELECT count(1) FROM cliente WHERE cpf_cnpj='{cpf_cnpj}'";
	}
}

Quando fui verificar o que está no campo {id} ele traz para mim undefined, ou seja, é um campo com valor e não em branco.

Pela minha lógica, quando estou abrindo um cadastro os campos chave deveria estar como VAZIOS.

Lá vou eu colocar ==‘undefined’ || empty({id}

Qual evento? Qual App? Se for evento onclick de grid não rola.

App form unico
Onvalidate
Onchange do campo cpf_cnpj

Hum realmente é de uso habitual nesses eventos…

Você pode usar também a função sc_date_empty();

Vou abrir chamado e mantenho atualizado este tópico.