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.
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.
- <?php
- public function onSave($param = null)
- {
- try
- {
- // Pega a informação dos campos
- $data = $this->form->getData();
- // Pega a informação do campo Status
- $statusAtual = $data->status;
- switch ($statusAtual) {
- case 2:
- new TMessage('error',"Não é permitido Salvar um Frete Coleta já Emitido!");
- break;
- case 3:
- new TMessage('error',"Não é permitido Salvar um Frete Coleta Cancelado!");
- break;
- default:
- TTransaction::open(self::$database); // open a transaction
- $messageAction = null;
- $object = new PagamentoFrete(); // create an empty object
- $data = $this->form->getData(); // get form data as array
- $object = new stdClass();
- $object->status = 1;
- $object->unidade = TSession::getValue('userunitid');
- TForm::sendData(self::$formName, $object);
- $this->form->validate(); // validate form data
- $object->fromArray( (array) $data); // load the object with data
- $object->store(); // save the object
- // get the generated {PRIMARY_KEY}
- $data->id = $object->id;
- $this->form->setData($data); // fill form data
- TTransaction::close(); // close the transaction
- new TMessage('info', "Frete Coleta Salvo", $messageAction);
- break;
- }
- }
- catch (Exception $e) // in case of exception
- {
- //</catchAutoCode>
- new TMessage('error', $e->getMessage()); // shows the exception error message
- $this->form->setData( $this->form->getData() ); // keep form data
- TTransaction::rollback(); // undo all pending operations
- }
- }
- ?>
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!
Bom dia! Eu fiz assim e funcionou, obrigado!