Autor Tópico: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!  (Lida 5664 vezes)

Cleyton Euler

  • Expert
  • *****
  • Mensagens: 1149
    • Associação de Usuários Scriptcase
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #15 Online: Fevereiro 16, 2011, 02:23:19 pm »
Se não estou errado, $TOTAL_HORAS está causando o Undefined offset, pelo motivo que vc já detectou.

Faça uma validação com empty do retorno do lookup.
Associação de Usuários Scriptcase
http://www.auscriptcase.com.br

Consultoria Scriptcase Versão 5
http://www.infinitusweb.com.br

Eduardo Alves

  • Avançado
  • ****
  • Mensagens: 262
    • SLords Informatica
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #16 Online: Fevereiro 16, 2011, 02:42:01 pm »
Fala mano,

tentei sc_lookup(HORAF, "SELECT SUBTIME(adm_os.hora_final_atendimento,adm_clientes.hora_final_atendimento_m) AS total_horas
FROM adm_os INNER JOIN adm_clientes ON (adm_os.id_cliente = adm_clientes.ClienteId) WHERE adm_os.id = '{id}' AND (adm_os.id_unidade = '2') AND (adm_os.tipo_contrato_m = 'F') AND (adm_clientes.qtde_contrato_m > '0') ");


$TOTAL_HORAS = {HORAF[0][0]};


if( empty($TOTAL_HORAS))
{ if ($TOTAL_HORAS > "00:00:00") {
sc_exec_sql("Update adm_os set hora_adic_atendimento = '00:00:00' where id = '{id}' ");
}
else
{
sc_exec_sql("Update adm_os set hora_adic_atendimento ='$TOTAL_HORAS' where id = '{id}' ");
}
}

mais ainda deu Undefined offset. O pior que é o resultado da $TOTAL_HORAS vazio mesmo... a sintaxe acima está corretá não está ???

Se não estou errado, $TOTAL_HORAS está causando o Undefined offset, pelo motivo que vc já detectou.

Faça uma validação com empty do retorno do lookup.
Eduardo Alves
Gestor de TI e Segurança de Dados
Tel: (11) 8400-0224 (TIM) – Nextel: Id: 5 * 4522
email: analista@slords.com.br skype: analista.slords
www.slords.com.br

Cleyton Euler

  • Expert
  • *****
  • Mensagens: 1149
    • Associação de Usuários Scriptcase
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #17 Online: Fevereiro 16, 2011, 02:52:16 pm »
Blz irmão,

Vc tem que fazer o teste na atribuição da variável:

Se não for vazio então

     $TOTAL_HORAS = {HORAF[0][0]};

...

Do jeito que vc colocou ela continua recebendo vazio, quando o dataset vem vazio.
Associação de Usuários Scriptcase
http://www.auscriptcase.com.br

Consultoria Scriptcase Versão 5
http://www.infinitusweb.com.br

Eduardo Alves

  • Avançado
  • ****
  • Mensagens: 262
    • SLords Informatica
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #18 Online: Fevereiro 16, 2011, 03:40:39 pm »
Cara, tentei de tudo, dei uma pesquisada na net mais não consegui obter a logica. Coloquei o IF EMPTY antes da  $TOTAL_HORAS = {HORAF[0][0]}; mesmo assim o erro não para...estou errando algo na posição da sintaxe...


Blz irmão,

Vc tem que fazer o teste na atribuição da variável:

Se não for vazio então

     $TOTAL_HORAS = {HORAF[0][0]};

...

Do jeito que vc colocou ela continua recebendo vazio, quando o dataset vem vazio.
Eduardo Alves
Gestor de TI e Segurança de Dados
Tel: (11) 8400-0224 (TIM) – Nextel: Id: 5 * 4522
email: analista@slords.com.br skype: analista.slords
www.slords.com.br

Cleyton Euler

  • Expert
  • *****
  • Mensagens: 1149
    • Associação de Usuários Scriptcase
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #19 Online: Fevereiro 16, 2011, 04:01:16 pm »
if empty = se for vazio, então vc está atribuindo quando for vazio, o que não está correto.

Então como fazer para atribuir somente qdo não for vazio?

Vc tem que fazer a negação do empty, que acho que é !empty

Algo assim:

if(!empty($TOTAL_HORAS))

Associação de Usuários Scriptcase
http://www.auscriptcase.com.br

Consultoria Scriptcase Versão 5
http://www.infinitusweb.com.br

Eduardo Alves

  • Avançado
  • ****
  • Mensagens: 262
    • SLords Informatica
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #20 Online: Fevereiro 16, 2011, 04:06:00 pm »
Eu fiz assim tb:

sc_lookup(HORAF, "SELECT SUBTIME(adm_os.hora_final_atendimento,adm_clientes.hora_final_atendimento_m) AS total_horas
FROM adm_os INNER JOIN adm_clientes ON (adm_os.id_cliente = adm_clientes.ClienteId) WHERE adm_os.id = '{id}' AND (adm_os.id_unidade = '2') AND (adm_os.tipo_contrato_m = 'F') AND (adm_clientes.qtde_contrato_m > '(NULL)') ");

$TOTAL_HORAS = {HORAF[0][0]};

{ if(!empty($TOTAL_HORAS))  /* ONDE ELE VERIFICA SE NÃO ESTÁ VAZIO */
 if ($TOTAL_HORAS > "00:00:00") {
sc_exec_sql("Update adm_os set hora_adic_atendimento = '$TOTAL_HORAS' where id = '{id}' ");
}
else /* SE ESTIVER VAZIO, GRAVA NO BANCO 00:00:00 */
{
sc_exec_sql("Update adm_os set hora_adic_atendimento ='00:00:00' where id = '{id}' ");
}
}

Onde no caso ele verificaria se está vazio ou não... não seria isso ???

if empty = se for vazio, então vc está atribuindo quando for vazio, o que não está correto.

Então como fazer para atribuir somente qdo não for vazio?

Vc tem que fazer a negação do empty, que acho que é !empty

Algo assim:

if(!empty($TOTAL_HORAS))


« Última modificação: Fevereiro 16, 2011, 04:13:46 pm por Eduardo Alves »
Eduardo Alves
Gestor de TI e Segurança de Dados
Tel: (11) 8400-0224 (TIM) – Nextel: Id: 5 * 4522
email: analista@slords.com.br skype: analista.slords
www.slords.com.br

Cleyton Euler

  • Expert
  • *****
  • Mensagens: 1149
    • Associação de Usuários Scriptcase
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #21 Online: Fevereiro 16, 2011, 05:34:29 pm »
Respondi no outro tópico. Evite criar mais de um tópico sobre o mesmo assunto ou postar a mesma dúvida em mais de um tópico.

http://www.netmake.com.br/forum/index.php?topic=2459.0
Associação de Usuários Scriptcase
http://www.auscriptcase.com.br

Consultoria Scriptcase Versão 5
http://www.infinitusweb.com.br

Eduardo Alves

  • Avançado
  • ****
  • Mensagens: 262
    • SLords Informatica
    • Email
Re: SOMAR CAMPOS NO FORMULARIO AO CARREGAR A APLICAÇÃO!
« Responder #22 Online: Março 01, 2011, 07:13:17 pm »
Desculpe voltar nesse topico mais surgiu outro case

Se a hora for negativa "-02:00:00" gostaria que retornasse o valor "00:00:00". Como eu poderia implementar isso no que eu ja tenho rodando para valores vazios ou não vazios ???

sc_lookup(HORAF, "SELECT SUBTIME(adm_os.hora_final_atendimento,adm_clientes.hora_final_atendimento_m) AS total_horas
FROM adm_os INNER JOIN adm_clientes ON (adm_os.id_cliente = adm_clientes.ClienteId) WHERE adm_os.id = '{id}' AND (adm_os.id_unidade = '2') AND (adm_os.tipo_contrato_m = 'F') AND (adm_clientes.qtde_contrato_m > '(NULL)') ");

// testando o lookup

if (empty({HORAF})) // se for vazio, manda gravar hora zerada e atualizar o registro
  {
$TOTAL_HORAS = "00:00:00";
sc_exec_sql("Update adm_os set hora_adic_atendimento = '$TOTAL_HORAS' where id = '{id}' ");
}
else // se não for vazio, pega o retorno do lookup e atualiza o registro
{
$TOTAL_HORAS = {HORAF[0][0]};
sc_exec_sql("Update adm_os set hora_adic_atendimento ='$TOTAL_HORAS' where id = '{id}' ");
}


/* alguem poderia me dar uma luz ??? um grande abraço !!
Eduardo Alves
Gestor de TI e Segurança de Dados
Tel: (11) 8400-0224 (TIM) – Nextel: Id: 5 * 4522
email: analista@slords.com.br skype: analista.slords
www.slords.com.br