HB
CADASTRO DE PESSOAS x ORDEM DE SERVIÇOS - TDBRadioGroup e TDBUni
Olá pessoal.
Estou aproveitando o código fonte do cadastro de PESSOAS da aplicação MICROERP lançado agora na versão 5.0.
Neste cadastro existe um TDBRadioGroup, que possibilita ao usuário fazer uma marcação de um GRUPO para a pessoa que está sendo cadastrada. Como vocês podem ver na imagem do anexo, vou classificar como CLIENTE; FORNECEDOR e FUNCIONÁRIO.
Também tenho na minha aplicação de controle de oficina mecânica um cadastro de ordem de serviço, que estou re-aproveitamento o código fonte do cadastro de PEDIDO.
Como o cadastro de pessoas tem essa separação do grupo de pessoas, eu gostaria de fazer um tratamento no momento de cadastrar a minha ordem de serviço, que é exibir no campo CLIENTE (vejam na imagem) somente a pessoa classificada no grupo CLIENTE, e no campo MECÂNICO, exibir somente a pessoa classifica no grupo FUNCIONÁRIO.
Como sou ainda inexperiente em PHP e também no Framework, eu não sei como buscar via código essa classificação grupo CLIENTE e de MECÂNICO, ou seja, não sei nestes campos (TDBUniqueSearch) como carregar somente a pessoa classificada como CLIENTE e MECÂNICO , respectivamente. Só reforçando, não quero "misturar" os grupos de pessoas nestes campos.
Cadastro de pessoas - esse é o campo em questão ($grupo_id = new TDBRadioGroup('grupo_id', 'oficina', 'Grupo', 'id', '{nome}','id asc' )):
Cadastro de Ordem de Serviço - é neste código que não sei como implementar:
Esses campos são os envolvidos:
$cliente_id = new TDBUniqueSearch('cliente_id', 'oficina', 'Pessoa', 'id', 'nome','nome asc' )
$item_pedido_mecanico_id = new TDBUniqueSearch('item_pedido_mecanico_id', 'oficina', 'Pessoa', 'id', 'nome','id asc' )
Estou aproveitando o código fonte do cadastro de PESSOAS da aplicação MICROERP lançado agora na versão 5.0.
Neste cadastro existe um TDBRadioGroup, que possibilita ao usuário fazer uma marcação de um GRUPO para a pessoa que está sendo cadastrada. Como vocês podem ver na imagem do anexo, vou classificar como CLIENTE; FORNECEDOR e FUNCIONÁRIO.
Também tenho na minha aplicação de controle de oficina mecânica um cadastro de ordem de serviço, que estou re-aproveitamento o código fonte do cadastro de PEDIDO.
Como o cadastro de pessoas tem essa separação do grupo de pessoas, eu gostaria de fazer um tratamento no momento de cadastrar a minha ordem de serviço, que é exibir no campo CLIENTE (vejam na imagem) somente a pessoa classificada no grupo CLIENTE, e no campo MECÂNICO, exibir somente a pessoa classifica no grupo FUNCIONÁRIO.
Como sou ainda inexperiente em PHP e também no Framework, eu não sei como buscar via código essa classificação grupo CLIENTE e de MECÂNICO, ou seja, não sei nestes campos (TDBUniqueSearch) como carregar somente a pessoa classificada como CLIENTE e MECÂNICO , respectivamente. Só reforçando, não quero "misturar" os grupos de pessoas nestes campos.
Cadastro de pessoas - esse é o campo em questão ($grupo_id = new TDBRadioGroup('grupo_id', 'oficina', 'Grupo', 'id', '{nome}','id asc' )):
- <?php
- /**
- * PessoaForm Form
- */
- class PessoaForm extends TPage
- {
- protected $form; // form
- /**
- * Form constructor
- * @param $param Request
- */
- public function __construct( $param )
- {
- parent::__construct();
- // creates the form
- $this->form = new BootstrapFormBuilder('form_Pessoa');
- $this->form->setFormTitle('Pessoas');
- // create the form fields
- $id = new TEntry('id');
- $nome = new TEntry('nome');
- $documento = new TEntry('documento');
- $documento2 = new TEntry('documento2');
- $fone = new TEntry('fone');
- $celular = new TEntry('celular');
- $email = new TEntry('email');
- $rua = new TEntry('rua');
- $numero = new TEntry('numero');
- $bairro = new TEntry('bairro');
- $complemento = new TEntry('complemento');
- $cep = new TEntry('cep');
- $obs = new TEntry('obs');
- $cidade_id = new TDBCombo('cidade_id', 'oficina', 'Cidade', 'id', '{nome}','id asc' );
- $estado_id = new TDBCombo('estado_id', 'oficina', 'Estado', 'id', '{uf}','id asc' );
- $grupo_id = new TDBRadioGroup('grupo_id', 'oficina', 'Grupo', 'id', '{nome}','id asc' );
- $tipo_id = new TDBRadioGroup('tipo_id', 'oficina', 'Tipo', 'id', '{nome}','id asc' );
- $nome->addValidation('Nome', new TRequiredValidator());
- $tipo_id->addValidation('Tipo', new TRequiredValidator());
- $estado_id->addValidation('UF', new TRequiredValidator());
- $cidade_id->addValidation('Cidade', new TRequiredValidator());
- $grupo_id->addValidation('Grupo', new TRequiredValidator());
- $tipo_id->setLayout('horizontal');
- $grupo_id->setLayout('horizontal');
- $id->setEditable(false);
- $id->setSize(60);
- $rua->setSize('72%');
- $cep->setSize('72%');
- $nome->setSize('70%');
- $fone->setSize('72%');
- $celular->setSize('72%');
- $email->setSize('72%');
- $numero->setSize('72%');
- $bairro->setSize('72%');
- $obs->setSize('89%', 68);
- $documento->setSize('72%');
- $documento2->setSize('72%');
- $estado_id->setSize('20%');
- $cidade_id->setSize('72%');
- $complemento->setSize('72%');
- $tipo_id->setSize(80);
- $grupo_id->setSize(200);
- $nome->forceUpperCase();
- $rua->forceUpperCase();
- $bairro->forceUpperCase();
- $complemento->forceUpperCase();
- $email->forceLowerCase();
- $documento->setMask('999.999.999-99');
- $documento2->setMask('99.999.999/9999-99');
- $fone->setMask('(99)9999-9999');
- $celular->setMask('(99)9.9999-9999');
- $cep->setMask('99.999-999');
- $numero->setMask('99999999');
- $id->setEditable(FALSE);
- // add the fields
- $this->form->addFields([new TLabel('Tipo:', '#ff0000')],[$tipo_id], [new TLabel('Código:')],[$id]);
- $this->form->addFields([new TLabel('Nome:', '#ff0000')],[$nome]);
- $this->form->addFields([new TLabel('CPF:')],[$documento], [new TLabel('CNPJ:')],[$documento2]);
- $this->form->addFields([new TLabel('Fone:')],[$fone], [new TLabel('Celular:')],[$celular] );
- $this->form->addFields([new TLabel('Cep:')],[$cep],[new TLabel('Email:')],[$email]);
- $this->form->addFields([new TLabel('Endereço:')],[$rua],[new TLabel('Numero:')],[$numero]);
- $this->form->addFields([new TLabel('Cidade:', '#ff0000')],[$cidade_id], [new TLabel('UF:', '#ff0000')],[$estado_id]);
- $this->form->addFields([new TLabel('Bairro:')],[$bairro], [new TLabel('Complemento:')],[$complemento] );
- $this->form->addFields([new TLabel('Obs:')],[$obs]);
- $this->form->addFields([new TLabel('Grupo', '#ff0000')],[$grupo_id]);
- /* Ação de Habilita e Desabilita campo da Pessoa Física ou Jurídica */
- $tipo_id->setChangeAction( new TAction( array($this, 'onChangeRadio')) );
- if (!empty($id))
- {
- $id->setEditable(FALSE);
- }
- /** samples
- $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
- $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
- $fieldX->setSize( 100, 40 ); // set size
- **/
- // create the form actions
- $this->form->addAction('Salvar', new TAction([$this, 'onSave']), 'fa:floppy-o')->addStyleClass('btn-primary');
- $this->form->addAction('Novo', new TAction([$this, 'onClear']), 'fa:plus-circle #69aa46');
- $this->form->addAction(_t('Back'),new TAction(array('PessoaList','onReload')),'fa:arrow-circle-o-left blue');
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 100%';
- $container->class = 'form-container';
- $container->add(new TXMLBreadCrumb('menu.xml', 'PessoaList'));
- $container->add($this->form);
- parent::add($container);
- }
- /**
- * Save form data
- * @param $param Request
- */
- public function onSave( $param )
- {
- try
- {
- TTransaction::open('oficina'); // open a transaction
- /**
- // Enable Debug logger for SQL operations inside the transaction
- TTransaction::setLogger(new TLoggerSTD); // standard output
- TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
- **/
- /*Valida o CPF - Está funcionando, só ligar se realmente o cliente quiser
- if($param['tipo_id'] == 1 )
- {
- $validacpf = new TCPFValidator;
- $validacpf->validate('CPF', $param['documento']);
- }
- Valida o CNPJ
- if($param['tipo_id'] == 2 )
- {
- $validator = new TCNPJValidator;
- $validator->validate('CNPJ', $param['documento2']);
- }
- */
- $this->form->validate(); // validate form data
- $object = new Pessoa; // create an empty object
- $data = $this->form->getData(); // get form data as array
- $object->fromArray( (array) $data); // load the object with data
- $object->store(); // save the object
- // get the generated id
- $data->id = $object->id;
- //Controle de passagem dos campos para o formulário da pessoa Física e Jurídica
- $obj = new stdClass;
- $obj->tipo_id = $object->tipo_id;
- $obj->estado_id = $object->estado_id;
- $obj->documento = $object->documento;
- $obj->documento2 = $object->documento2;
- self::onChangeRadio(['tipo_id'=>$object->tipo_id]);
- TForm::sendData('form_Pessoa', $obj);
- $this->form->setData($data); // fill form data
- TTransaction::close(); // close the transaction
- new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
- }
- catch (Exception $e) // in case of exception
- {
- 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
- }
- }
- /**
- * Clear form data
- * @param $param Request
- */
- public function onClear( $param )
- {
- $this->form->clear(TRUE);
- }
- /**
- * Load object to form data
- * @param $param Request
- */
- public function onEdit( $param )
- {
- try
- {
- if (isset($param['key']))
- {
- $key = $param['key']; // get the parameter $key
- TTransaction::open('oficina'); // open a transaction
- $object = new Pessoa($key); // instantiates the Active Record
- $this->form->setData($object); // fill the form
- TTransaction::close(); // close the transaction
- //Controle de passagem dos campos para o formulário da pessoa Física e Jurídica
- $obj = new stdClass;
- $obj->tipo_id = $object->tipo_id;
- $obj->estado_id = $object->estado_id;
- $obj->documento = $object->documento;
- $obj->documento2 = $object->documento2;
- self::onChangeRadio(['tipo_id'=>$object->tipo_id]);
- TForm::sendData('form_Pessoa', $obj);
- }
- else
- {
- $this->form->clear(TRUE);
- }
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- TTransaction::rollback(); // undo all pending operations
- }
- }
- /**
- * on ChangeRadio change
- * @param $param Action parameters
- */
- public static function onChangeRadio($param)
- {
- if ($param['tipo_id'] == 1)
- {
- TEntry::enableField('form_Pessoa', 'documento');
- TEntry::disableField('form_Pessoa', 'documento2');
- TEntry::clearField('form_Pessoa', 'documento2');
- }
- if ($param['tipo_id'] == 2)
- {
- TEntry::enableField('form_Pessoa', 'documento2');
- TEntry::disableField('form_Pessoa', 'documento');
- TEntry::clearField('form_Pessoa', 'documento');
- }
- }
- }
- ?>
Cadastro de Ordem de Serviço - é neste código que não sei como implementar:
Esses campos são os envolvidos:
$cliente_id = new TDBUniqueSearch('cliente_id', 'oficina', 'Pessoa', 'id', 'nome','nome asc' )
$item_pedido_mecanico_id = new TDBUniqueSearch('item_pedido_mecanico_id', 'oficina', 'Pessoa', 'id', 'nome','id asc' )
- <?php
- /**
- * PedidoForm Form
- */
- class PedidoForm extends TPage
- {
- protected $form; // form
- use adianti\base\AdiantiMasterDetailTrait;
- /**
- * Form constructor
- * @param $param Request
- */
- public function __construct( $param )
- {
- parent::__construct();
- $this->form = new BootstrapFormBuilder('list_Pedido');
- $this->form->setFormTitle('Ordem de Serviço');
- // Definição dos campos da tela Master
- $id = new TEntry('id');
- $estado_pedido_id = new TDBCombo('estado_pedido_id', 'oficina', 'EstadoPedido', 'id', 'nome','id asc' );
- $cliente_id = new TDBUniqueSearch('cliente_id', 'oficina', 'Pessoa', 'id', 'nome','nome asc' );
- $dt_pedido = new TDate('dt_pedido');
- $obs = new TText('obs');
- // Definição dos campos da tela Detalhe (itens da ordem de serviço)
- $item_pedido_mecanico_id = new TDBUniqueSearch('item_pedido_mecanico_id', 'oficina', 'Pessoa', 'id', 'nome','id asc' );
- $item_pedido_produto_id = new TDBUniqueSearch('item_pedido_produto_id', 'oficina', 'Produto', 'id', 'nome','id asc' );
- $item_pedido_quantidade = new TNumeric('item_pedido_quantidade', '2', ',', '.' );
- $item_pedido_valor = new TNumeric('item_pedido_valor', '2', ',', '.' );
- $item_pedido_id = new THidden('item_pedido_id');
- $estado_pedido_id->addValidation('Estado pedido', new TRequiredValidator());
- $cliente_id->addValidation('Cliente', new TRequiredValidator());
- $id->setEditable(false);
- $id->setSize(100);
- $cliente_id->setMinLength(1);
- $cliente_id->setSize('100%');
- $item_pedido_mecanico_id->setMinLength(1);
- $item_pedido_produto_id->setMinLength(1);
- $dt_pedido->setValue(date('d/m/Y h:i'));
- $dt_pedido->setDatabaseMask('yyyy-mm-dd');
- $cliente_id->setMask('{nome}');
- $dt_pedido->setMask('dd/mm/yyyy');
- $dt_pedido->setSize(190);
- $obs->setSize('90%', 68);
- $estado_pedido_id->setSize('75%');
- $item_pedido_valor->setSize('20%');
- $item_pedido_mecanico_id->setMask('{nome}');
- $item_pedido_mecanico_id->setSize('75%');
- $item_pedido_produto_id->setMask('{nome}');
- $item_pedido_produto_id->setSize('20%');
- $item_pedido_quantidade->setSize('21%');
- // Adicionando os campos da tela Master
- $this->form->addFields([new TLabel('Nro O.S:')],[$id],[new TLabel('Status:', '#ff0000')],[$estado_pedido_id]);
- $this->form->addFields([new TLabel('Cliente:', '#ff0000')],[$cliente_id],[new TLabel('Data OS:')],[$dt_pedido]);
- $this->form->addFields([new TLabel('Obs:')],[$obs]);
- // Adicionando os campos da tela Detalhe (itens da ordem de serviço)
- $this->form->addContent([new TFormSeparator('Itens da O.S', '#333333', '18', '#eeeeee')]);
- $this->form->addFields([new TLabel('Mecânico:', '#ff0000')],[$item_pedido_mecanico_id]);
- $this->form->addFields([new TLabel('Produto:', '#ff0000')],[$item_pedido_produto_id]);
- $this->form->addFields([new TLabel('Quantidade:')],[$item_pedido_quantidade]);
- $this->form->addFields([new TLabel('Valor:')],[$item_pedido_valor]);
- $this->form->addFields([$item_pedido_id]);
- // Criando o botão Adicionar (que inclui os itens [detalhes] na datagrid
- $add_item_pedido = new TButton('add_item_pedido');
- $add_item_pedido->setAction(new TAction(array($this, 'onAddItemPedido')), 'Adicionar');
- $add_item_pedido->setImage('fa:plus #51c249');
- $this->form->addFields([$add_item_pedido]);
- // Definição da Datagrid
- $this->item_pedido_list = new BootstrapDatagridWrapper(new TQuickGrid);
- $this->item_pedido_list->style = 'width:100%';
- $this->item_pedido_list->class .= ' table-bordered';
- $this->item_pedido_list->disableDefaultClick();
- $this->item_pedido_list->addQuickColumn('', 'edit', 'left', 50);
- $this->item_pedido_list->addQuickColumn('', 'delete', 'left', 50);
- $col_mecanico_id = $this->item_pedido_list->addQuickColumn('Mecânico', 'item_pedido_mecanico_id', 'left');
- $col_produto_id = $this->item_pedido_list->addQuickColumn('Produto', 'item_pedido_produto_id', 'left');
- $col_quantidade = $this->item_pedido_list->addQuickColumn('Quantidade', 'item_pedido_quantidade', 'left');
- $col_valor = $this->item_pedido_list->addQuickColumn('Valor', 'item_pedido_valor', 'right');
- $col_total = $this->item_pedido_list->addQuickColumn('Total', '= {item_pedido_quantidade} * {item_pedido_valor}', 'right');
- $col_total->setTotalFunction( function($values) {
- return array_sum((array) $values);
- });
- $this->item_pedido_list->createModel();
- $col_total->setTransformer(function($value, $object, $row) {
- if (!$value)
- {
- $value = 0;
- }
- return "R$ " . number_format($value, 2, ",", ".");
- });
- $this->form->addContent([$this->item_pedido_list]);
- // Cria as ações do Formulário
- $this->form->addAction('Salvar', new TAction([$this, 'onSave']), 'fa:floppy-o')->addStyleClass('btn-primary');
- $this->form->addAction('Limpar formulário', new TAction([$this, 'onClear']), 'fa:eraser #dd5a43');
- $this->form->addAction(_t('Back'),new TAction(array('PedidoList','onReload')),'fa:arrow-circle-o-left blue');
- // Controle da caixa vertical de todo o formulário
- $container = new TVBox;
- $container->style = 'width: 100%';
- $container->class = 'form-container';
- $container->add(new TXMLBreadCrumb('menu.xml', 'PedidoList'));
- $container->add($this->form);
- parent::add($container);
- }
- /**
- * Adiciona item ao pedido
- * @param $param Request
- */
- public function onAddItemPedido( $param )
- {
- try
- {
- $data = $this->form->getData();
- if(!$data->item_pedido_produto_id)
- {
- throw new Exception(AdiantiCoreTranslator::translate('The field ^1 is required', 'Produto id'));
- }
- $item_pedido_items = TSession::getValue('item_pedido_items'); // faz leitura da variável de seção
- $key = !empty($data->item_pedido_id) ? $data->item_pedido_id : uniqid();
- $fields = [];
- $fields['item_pedido_produto_id'] = $data->item_pedido_produto_id;
- $fields['item_pedido_mecanico_id'] = $data->item_pedido_mecanico_id; // Minha modificação p/ o mecânico
- $fields['item_pedido_quantidade'] = $data->item_pedido_quantidade;
- $fields['item_pedido_valor'] = $data->item_pedido_valor;
- $item_pedido_items[ $key ] = $fields;
- TSession::setValue('item_pedido_items', $item_pedido_items);
- // limpa os campos do item do pedido
- $data->item_pedido_mecanico_id = ''; // Minha modificação p/ o mecânico
- $data->item_pedido_produto_id = '';
- $data->item_pedido_quantidade = '';
- $data->item_pedido_valor = '';
- $data->item_pedido_id = '';
- $this->form->setData($data);
- $this->onReload( $param );
- }
- catch (Exception $e)
- {
- $this->form->setData( $this->form->getData());
- new TMessage('error', $e->getMessage());
- }
- }
- /**
- * Recarrega tudo
- * @param $param Request
- */
- public function onReload($params = null)
- {
- $this->loaded = TRUE;
- $this->onReloadPedidoItemPedido($params);
- }
- /**
- * Recarrega itens do pedido
- * @param $param Request
- */
- public function onReloadPedidoItemPedido( $param )
- {
- $items = TSession::getValue('item_pedido_items');
- $this->item_pedido_list->clear();
- if($items)
- {
- $cont = 1;
- foreach ($items as $key => $item)
- {
- $rowItem = new StdClass;
- $action_del = new TAction(array($this, 'onDeleteItemPedido'));
- $action_del->setParameter('item_pedido_id_row_id', $key);
- $action_edi = new TAction(array($this, 'onEditItemPedido'));
- $action_edi->setParameter('item_pedido_id_row_id', $key);
- $button_del = new TButton('delete_item_pedido'.$cont);
- $button_del->class = 'btn btn-default btn-sm';
- $button_del->setAction($action_del, '');
- $button_del->setImage('fa:trash-o');
- $button_del->setFormName($this->form->getName());
- $button_edi = new TButton('edit_item_pedido'.$cont);
- $button_edi->class = 'btn btn-default btn-sm';
- $button_edi->setAction($action_edi, '');
- $button_edi->setImage('bs:edit');
- $button_edi->setFormName($this->form->getName());
- $rowItem->edit = $button_edi;
- $rowItem->delete = $button_del;
- $rowItem->item_pedido_produto_id = '';
- if (isset($item['item_pedido_produto_id']) && $item['item_pedido_produto_id'])
- {
- TTransaction::open('oficina');
- $produto = Produto::find($item['item_pedido_produto_id']);
- $rowItem->item_pedido_produto_id = $produto->render('{nome}');
- TTransaction::close();
- }
- // Minha modificação p/ o mecânico - linha logo abaixo
- $rowItem->item_pedido_mecanico_id = isset($item['item_pedido_mecanico_id']) ? $item['item_pedido_mecanico_id'] : '';
- $rowItem->item_pedido_quantidade = isset($item['item_pedido_quantidade']) ? $item['item_pedido_quantidade'] : '';
- $rowItem->item_pedido_valor = isset($item['item_pedido_valor']) ? $item['item_pedido_valor'] : '';
- $this->item_pedido_list->addItem($rowItem);
- $cont ++;
- }
- }
- }
- /**
- * Edita item do pedido
- * @param $param Request
- */
- public function onEditItemPedido( $param )
- {
- $data = $this->form->getData();
- // read session items
- $items = TSession::getValue('item_pedido_items');
- // get the session item
- $item = $items[$param['item_pedido_id_row_id']];
- $data->item_pedido_produto_id = $item['item_pedido_produto_id'];
- $data->item_pedido_mecanico_id = $item['item_pedido_mecanico_id']; // Minha modificação p/ o mecânico
- $data->item_pedido_quantidade = $item['item_pedido_quantidade'];
- $data->item_pedido_valor = $item['item_pedido_valor'];
- $data->item_pedido_id = $param['item_pedido_id_row_id'];
- // fill product fields
- $this->form->setData( $data );
- $this->onReload( $param );
- }
- /**
- * Exclui item do pedido
- * @param $param Request
- */
- public function onDeleteItemPedido( $param )
- {
- $data = $this->form->getData();
- $data->item_pedido_mecanico_id = ''; // Minha modificação p/ o mecânico
- $data->item_pedido_produto_id = '';
- $data->item_pedido_quantidade = '';
- $data->item_pedido_valor = '';
- $this->form->setData( $data );
- // read session items
- $items = TSession::getValue('item_pedido_items');
- // delete the item from session
- unset($items[$param['item_pedido_id_row_id']]);
- TSession::setValue('item_pedido_items', $items);
- $this->onReload( $param );
- }
- /**
- * Limpa formulário
- * @param $param Request
- */
- public function onClear( $param )
- {
- $this->form->clear();
- TSession::setValue('item_pedido_items', null);
- $this->onReload();
- }
- /**
- * Salva pedido
- * @param $param Request
- */
- public function onSave($param = null)
- {
- try
- {
- TTransaction::open('oficina');
- $this->form->validate();
- $data = $this->form->getData();
- $object = new Pedido;
- $object->fromArray( (array) $data);
- $object->store();
- $this->storeItems('PedidoItem', 'pedido_id', $object, 'item_pedido',
- function($masterObject, $detailObject) {
- $masterObject->valor_total += ($detailObject->quantidade * $detailObject->valor);
- });
- $object->store();
- $data->id = $object->id;
- $this->form->setData($data);
- TTransaction::close();
- new TMessage('info', AdiantiCoreTranslator::translate('Record saved'));
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- $this->form->setData( $this->form->getData() );
- TTransaction::rollback();
- }
- }
- /**
- * Edita formulário
- * @param $param Request
- */
- public function onEdit( $param )
- {
- try
- {
- if (isset($param['key']))
- {
- $key = $param['key'];
- TTransaction::open('oficina');
- $object = new Pedido($key);
- $this->loadItems('PedidoItem', 'pedido_id', $object, 'item_pedido');
- $this->form->setData($object);
- $this->onReload();
- TTransaction::close();
- }
- else
- {
- $this->form->clear();
- }
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TTransaction::rollback();
- }
- }
- /**
- * Exibe a página
- * @param $param Request
- */
- public function show()
- {
- if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onReload') )
- {
- $this->onReload( func_get_arg(0) );
- }
- parent::show();
- }
- }
- ?>
O componente TDBUniqueSearch possui mais um parâmetro, onde você pode informar o filtro(tcriteria) que deseja utilizar:
Nataniel, fiz conforme recomendado e deu certo tanto para cliente quanto para o mecânico .
Obrigado.