sc_date_empty()

Olá pessoal!

Alguém sabe me dizer se a negação da macro sc_date_empty() não funciona mesmo ou eu estou fazendo algo errado?

Por exemplo: if(!sc_date_empty({data})){
.
.
.
}

O estranho é que eu dei uma olhada no codigo fonte e olha como o scriptcase está tratando essa negação:

if (!empty($this->data) || $this->data == “null”{

Não teria que ser $this->data != “null”??

Tem um erro ai na construção da macro:

if(!sc_date_empty({data}))

Tá sobrando esse exclamação.

E o teste de negação:

campo == nulo -> verdadeiro quando o campo for nulo
campo != nulo - > verdadeiro quando o campo não for nulo

Então, para saber se o campo é nulo, é intuitivo que se use a igualdade, porém pode usar também a diferença. Atento que o campo é nulo quando o retorno é falso.

Na verdade, tem um bug nessa tratação da macro, a mesma não está criando o código fonte corretamente, a negação está funcionando apenas para uma parte do código, e segunda parte,que é a intenção do sc_data_empty a negação não foi aplicada, use direto no código:

if (!empty($this->data) || !($this->data == “null”)){…

ou

if (!empty($this->data) || $this->data <> “null”){…

ou

if (!empty($this->data) || $this->data != “null”){…

O estranho é que eu dei uma olhada no codigo fonte e olha como o scriptcase está tratando essa negação:

if (!empty($this->data) || $this->data == “null”{

Não teria que ser $this->data != “null”??

Harold,

De acordo com o código que o yamaigor tirou do fonte, a macro não construiu corretamente o código? Esta igual ao seu primeiro exemplo:

if (!empty($this->data) || !($this->data == “null”)){…

não esta tratando depois do “||” --> if (!empty($this->data) || $this->data == “null”{

Entendi.

Foi essa conclusão que eu cheguei Harold, vamos ver se a NetMake corrige esse bug nas próximas atualizaçoes do SC.

Valeu!

cheguei hoje no trabalho … so vendo la em cima eu ja vi que era bug :-p

Acabamos de liberar a release 5.1.013, no dia 24/09, contendo esta correção

estou usando a versão 4.00.0014. eventualmente …Possui esse erro…

if (sc_date_empty({data_nasc})
{
sc_erro_mensagem(“Dados inválidos”);
}

usei da seguinte forma

if (empty({data_atendimento_ano})) {

sc_erro_mensagem(“ano vazio”);
}

if (empty({data_atendimento_mes})) {

sc_erro_mensagem(“mes vazio”);
}

if (empty({data_atendimento_dia})) {

sc_erro_mensagem(“dia vazio”);
}

Ola Eduardo, a macro sc_date_empty nao possui erro, apenas se voce “negar” ela usando “!”.

Voce pode usar normalmente na v4.

opa blz, aqui…testei e está funcionando normalmente … vlw Diogo