MG
O form està sendo salvo sem chamar onSave
Pessoal
Eu tenho um form para gerar OS.
Nele eu tenho um onChagenAction que ao selecionar um cliente, ele possa capturar
e preencher alguns campos do formulário.
Ocorre que está sendo criado a OS todas as vezes que o evento é chamado.
O mais estranho é que eu coloquie um var-_dump() e exit. logo no inicio do onSave
e o registro é criado sem passar pelo onSave.
É o único lugar que tenho $os->store();
Segue o meu onChange.
Eu tenho um form para gerar OS.
Nele eu tenho um onChagenAction que ao selecionar um cliente, ele possa capturar
e preencher alguns campos do formulário.
Ocorre que está sendo criado a OS todas as vezes que o evento é chamado.
O mais estranho é que eu coloquie um var-_dump() e exit. logo no inicio do onSave
e o registro é criado sem passar pelo onSave.
É o único lugar que tenho $os->store();
Segue o meu onChange.
- <?php
- /**
- * Ao selecionar um cliente, o sistema preenche alguns campos
- * da tela
- */
- public static function onChangeCliente($param)
- {
- try {
- $cliente_id = $param['cliente_id'];
- TTransaction::open('app');
- $cliente = Cliente::find($cliente_id);
- TTransaction::close();
-
- // primeiro verifica se o cliente está ativo
- if ($cliente->situacao == 0) {
- new TMessage('warningn', 'O Cliente selecionado está inativo!');
- }
-
- if ($cliente) {
- $obj = new stdClass;
- $obj->faturado = $cliente->faturamento;
- $obj->cep_origem = $cliente->cep;
- $obj->logradouro_origem = $cliente->logradouro;
- $obj->complemento_origem = $cliente->complelento;
- $obj->bairro_origem = $cliente->bairro;
- $obj->uf_origem = $cliente->uf;
- $obj->nome_solicitante = $cliente->contato;
- $obj->telefone_solicitante = $cliente->telefone;
- $obj->ordem_servico_id = 0;
- } else {
- $obj = new stdClass;
- $obj->faturado = '';
- $obj->cep_origem = '';
- $obj->logradouro_origem = '';
- $obj->complemento_origem = '';
- $obj->bairro_origem = '';
- $obj->uf_origem = '';
- $obj->nome_solicitante = '';
- $obj->ordem_servico_id = 0;
- }
-
- $options = array();
- $options[''] = '';
- if (Cliente::getCalculoArea($cliente_id)) {
- $options['A'] = 'AREA';
- }
- if (Cliente::getCalculoDistancia($cliente_id)) {
- $options['D'] = 'DISTANCIA';
- }
- if (Cliente::getCalculoVeiculo($cliente_id)) {
- $options['T'] = 'VEICULO';
- }
- TCombo::reload('form_OrdemServico','tipo_itinerario',$options);
- TForm::sendData('form_OrdemServico',$obj);
-
- } catch (Exception $e) {
- new TMessage('error',$e->getMessage());
- }
- }
- ?:
Não vai resolver o problema... mas acho que essa parte:
<php
$cliente = Cliente::find($cliente_id);
?>
O correto seria:
<php
$cliente = Cliente($cliente_id);
?>
Se não me engano o find retorna um array.
Não vai resolver o problema... mas acho que essa parte:
O correto seria:
Se não me engano o find retorna um array.
Leonardo
Ambos retornam um collection.
O efeito é o mesmo, e o problema persiste.
Mesmo assim grato
Você tem razão, falha minha.
Sobre o teu problema me aconteceu algo parecido, não lembro direito o que eu estava fazendo de errado com o objeto, mas corrigi copiando os dados do objeto do model para uma stdclass.