Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Salvar status e filial no OnSave Boa tarde! Estou fazendo um formulário de cadastro de frete coleta e os campos Status e Unidade não recebem valor diretamente, eu quero que ao clicar no botão salvar o sistema identifique qual a filial a pessoa logou e salve no campo filial. Coloquei um switch para informar controlar ações erradas do usuário, ou seja, enquanto o documento estiver com Startus = 1 ele salva as alteraçõe...
RF
Salvar status e filial no OnSave  
Boa tarde!

Estou fazendo um formulário de cadastro de frete coleta e os campos Status e Unidade não recebem valor diretamente, eu quero que ao clicar no botão salvar o sistema identifique qual a filial a pessoa logou e salve no campo filial.
Coloquei um switch para informar controlar ações erradas do usuário, ou seja, enquanto o documento estiver com Startus = 1 ele salva as alterações.

O problema está no seguinte: Quando clico no botão Salvar ele informa que os campos Status e Unidade são obrigatórios, porém essas informações estão em tela. Só quando clico pela segunda vez é que o sistema salva as informações.
Alguém poderia indicar uma solução?

Abaixo segue o código do botão salvar. Há também a imagem com a mensagem mencionada.


  1. <?php 
  2. public function onSave($param null
  3.     {
  4.         try
  5.         {
  6.             // Pega a informação dos campos
  7.             $data $this->form->getData();
  8.             // Pega a informação do campo Status
  9.             $statusAtual $data->status;
  10.             switch ($statusAtual) {
  11.                 case 2:
  12.                     new TMessage('error',"Não é permitido Salvar um Frete Coleta já Emitido!");
  13.                     break;
  14.                 case 3:
  15.                     new TMessage('error',"Não é permitido Salvar um Frete Coleta Cancelado!");
  16.                     break;    
  17.             default:
  18.             TTransaction::open(self::$database); // open a transaction
  19.             $messageAction null;
  20.             $object = new PagamentoFrete(); // create an empty object 
  21.             $data $this->form->getData(); // get form data as array
  22.             $object = new stdClass();
  23.             $object->status 1;
  24.             $object->unidade TSession::getValue('userunitid');
  25.             TForm::sendData(self::$formName$object);
  26.             $this->form->validate(); // validate form data
  27.             $object->fromArray( (array) $data); // load the object with data
  28.             $object->store(); // save the object 
  29.             // get the generated {PRIMARY_KEY}
  30.             $data->id $object->id
  31.             $this->form->setData($data); // fill form data
  32.             TTransaction::close(); // close the transaction
  33.             new TMessage('info'"Frete Coleta Salvo"$messageAction); 
  34.             break;
  35.             }
  36.         }
  37.         catch (Exception $e// in case of exception
  38.         {
  39.             //</catchAutoCode> 
  40.             new TMessage('error'$e->getMessage()); // shows the exception error message
  41.             $this->form->setData$this->form->getData() ); // keep form data
  42.             TTransaction::rollback(); // undo all pending operations
  43.         }
  44.     }
  45. ?>

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


CC

Olá Robson,

eu uso assim antes do $object->store() no onSave:

$object->USUARIO = (TSession::getValue('username'));
$object->UNIDADEFILIAL = (TSession::getValue('userunitid'));
ou
$data->USUARIO = (TSession::getValue('username'));
$data->UNIDADEFILIAL = (TSession::getValue('userunitid'));

Espero ter ajudado!

RF

Bom dia! Eu fiz assim e funcionou, obrigado!

  1. <?php
  2.  TTransaction::open(self::$database); // open a transaction
  3.             $messageAction null;
  4.             $object = new stdClass();
  5.             $object->status 1;
  6.             $object->unidade TSession::getValue('userunitid');
  7.             $object->numero $num;
  8.             if ($ouser != null$object->usuario_alteracao $ouser;
  9.             TForm::sendData(self::$formName$object);
  10.             $this->form->validate(); // validate form data
  11.             $object = new PagamentoFrete(); // create an empty object //</blockLine>
  12.             $data $this->form->getData(); // get form data as array
  13.             $object->fromArray( (array) $data); // load the object with data
  14.          
  15.             $object->status 1;
  16.             $object->unidade TSession::getValue('userunitid');
  17.             $object->numero $num;
  18.             if ($ouser != null$object->usuario_alteracao $ouser;
  19.             //</beforeStoreAutoCode> //</blockLine>
  20.             $object->store(); // save the object //</blockLine>
  21.             //</afterStoreAutoCode> //</blockLine>
  22.             // get the generated {PRIMARY_KEY}
  23.             $data->id $object->id//</blockLine>
  24.             $this->form->setData($data); // fill form data
  25.             TTransaction::close(); // close the transaction
  26. ?>