20% OFF para compra e renovação →

Autor Tópico: Bug ou forma de trabalhar com datas  (Lida 187 vezes)

Felipe.nardi

  • Intermediário
  • ***
  • Mensagens: 135
    • Email
Bug ou forma de trabalhar com datas
« Online: Agosto 19, 2018, 10:32:02 am »
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.

Código: [Selecionar]
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:

Código: [Selecionar]
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?


Haroldo

  • Expert
  • *****
  • Mensagens: 8642
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Bug ou forma de trabalhar com datas
« Responder #1 Online: Agosto 19, 2018, 03:05:30 pm »
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.

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.

Código: [Selecionar]
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:

Código: [Selecionar]
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.nardi

  • Intermediário
  • ***
  • Mensagens: 135
    • Email
Re:Bug ou forma de trabalhar com datas
« Responder #2 Online: Agosto 20, 2018, 10:38:59 am »
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

Código: [Selecionar]
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}


Haroldo

  • Expert
  • *****
  • Mensagens: 8642
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Bug ou forma de trabalhar com datas
« Responder #3 Online: Agosto 20, 2018, 10:40:47 am »
Qual evento? Qual App? Se for evento onclick de grid não rola.


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

Código: [Selecionar]
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}



Felipe.nardi

  • Intermediário
  • ***
  • Mensagens: 135
    • Email
Re:Bug ou forma de trabalhar com datas
« Responder #4 Online: Agosto 21, 2018, 06:48:58 am »
App form unico
Onvalidate
Onchange do campo cpf_cnpj

Haroldo

  • Expert
  • *****
  • Mensagens: 8642
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Bug ou forma de trabalhar com datas
« Responder #5 Online: Agosto 21, 2018, 09:55:00 am »
Hum realmente é  de uso habitual nesses eventos...

pauloper

  • Global Moderator
  • Avançado
  • *****
  • Mensagens: 480
Re:Bug ou forma de trabalhar com datas
« Responder #6 Online: Agosto 21, 2018, 12:06:34 pm »
Você pode usar também a função sc_date_empty();


Felipe.nardi

  • Intermediário
  • ***
  • Mensagens: 135
    • Email
Re:Bug ou forma de trabalhar com datas
« Responder #7 Online: Agosto 22, 2018, 12:03:35 am »
Vou abrir chamado e mantenho atualizado este tópico.