RF
Pegar o valor do campo Produto
Boa tarde...
Tenho um formulário e quero pegar o valor de um campo para ser usado em em uma função.
No caso eu quero pegar o valor do campo produto e alimentar a variável $emp,
TTransaction::open('sample');
$emp = 'ESTAÇÕES MOOCA'; //////////////////////////////////////////////
$apartir= 0;
// Contagem do total de registros filtrados
$repos = new TRepository('Cliente');
$total = $repos->count();
$crit = new TCriteria();
$crit->add(new TFilter('empreendimento','=',$emp));
$autorizados = $repos->count($crit);
$criteria = new TCriteria;
$criteria->setProperty('limit' ,15);
$criteria->setProperty('offset',$apartir);
$criteria->setProperty('order','id');
$repository = new TRepository('Cliente');
$clientes = $repository -> where('empreendimento','=',$emp)
-> load();
Segue o código completo
Tenho um formulário e quero pegar o valor de um campo para ser usado em em uma função.
No caso eu quero pegar o valor do campo produto e alimentar a variável $emp,
TTransaction::open('sample');
$emp = 'ESTAÇÕES MOOCA'; //////////////////////////////////////////////
$apartir= 0;
// Contagem do total de registros filtrados
$repos = new TRepository('Cliente');
$total = $repos->count();
$crit = new TCriteria();
$crit->add(new TFilter('empreendimento','=',$emp));
$autorizados = $repos->count($crit);
$criteria = new TCriteria;
$criteria->setProperty('limit' ,15);
$criteria->setProperty('offset',$apartir);
$criteria->setProperty('order','id');
$repository = new TRepository('Cliente');
$clientes = $repository -> where('empreendimento','=',$emp)
-> load();
Segue o código completo
- <?php
- /**
- * EmpreendimentoForm Form
- * @author <your name here>
- */
- class EmpreendimentoForm extends TPage
- {
- protected $form; // form
- /**
- SystemSupportForm como base para envio do email
- * Form constructor
- * @param $param Request
- */
- public function __construct( $param )
- {
- parent::__construct();
- // creates the form
- $this->form = new TQuickForm('form_Empreendimento');
- $this->form->class = 'tform'; // change CSS class
- $this->form->style = 'display: table;width:100%'; // change style
- $table_destino = new TTable;
- // define the form title
- $this->form->setFormTitle('Peça para envio');
- // create the form fields
- $id = new TEntry('id');
- $empreendimento = new TSeekButton('empreendimento');
- $emailmarketing = new THtmlEditor('emailmarketing');
- $unidis = new TEntry('unidis');
- $vlmenor = new TEntry('vlmenor');
- $vlmaior = new TEntry('vlmaior');
- $disparo = new TCombo('disparo');
- $proxdisparo = new TEntry('proxdisparo');
- $email = new TSeekButton('email');
- // Tamanho dos campos
- $emailmarketing ->setSize('width 500');
- //Itens do estagio
- $itemDisparo= array();
- $itemDisparo['1'] = 'TODOS OS E-MAILS';
- $itemDisparo['2'] = 'SÓ E-MAILS DO PRODUTO';
- $disparo->setValue('1');
- $disparo->addItems($itemDisparo);
- // Campos no formulário colocando o tamanho no final
- $this->form->addQuickFields(new TLabel ('Código') ,array ($id, new TLabel('Produto' ) ,$empreendimento));
- $this->form->addQuickFields(new TLabel ('Valor'),array ($vlmenor, new TLabel('Maior Valor') ,$vlmaior));
- //$this->form->addQuickFields(new TLabel ('E-mail') ,array ($email));//, 200 );
- $this->form->addQuickFields(new TLabel ('E-mail') ,array ($email, new TLabel('') ));//, 200 );
- //Campo para digitar a peça
- $this->form->addQuickFields(new TLabel ('') ,array ($emailmarketing));//, 200 );
- $this->form->addQuickFields(new TLabel ('') ,array (new TLabel('Próximo envio as:' ) ,$proxdisparo));
- $this->form->addQuickFields(new TLabel ('') ,array ());
- //$this->form->addQuickField('Código' , $id, 200 );
- //$this->form->addQuickFields(new TLabel ('Código'),array ($id), TLabel ('Produto'),$empreendimento );
- // $this->form->addQuickField('Produto' , $empreendimento, 200 );
- //$this->form->addQuickField('Vl Menor', $vlmenor, 200 );
- //$this->form->addQuickField('Vl Maior', $vlmaior, 200 );
- // Campos obrigatórios
- $empreendimento ->addValidation('Produto' , new TRequiredValidator);
- $emailmarketing ->addValidation('Peça' , new TRequiredValidator);
- // Mascara para os valores
- $vlmaior->setNumericMask(2,',', '.', true);
- $vlmenor->setNumericMask(2,',', '.', true);
- if (!empty($id))
- {
- $id->setEditable(FALSE);
- }
- // Desabilita campos
- $proxdisparo ->setEditable(FALSE);
- //$vlmaior ->setEditable(FALSE);
- //$vlmenor ->setEditable(FALSE);
- // Chama a tela de busca
- $obj2 = new LocalizaProduto; //
- $empreendimento->setAction(new TAction(array($obj2, 'onReload')));
- $locacli = new LocalizaCliente; //
- $email->setAction(new TAction(array($locacli, 'onReload')));
- // create the form actions
- $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');
- $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onClear')),'bs:plus-sign green');
- $this->form->addQuickAction(('Envio'), new TAction(array($this, 'onEnvio')),'fa:cloud-upload fa-fw');
- $this->form->addQuickAction(('Envio em lote'), new TAction(array($this, 'onLote')),'fa:cloud-upload fa-fw');
- // Sub Menu Bonito
- $container = new TVBox;
- $container->style = 'width: 100%';
- $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- parent::add($container);
- }
- /**
- * Save form data
- * @param $param Request
- */
- public function onEnvio()
- {
- try
- {
- // get the form data
- $data = $this->form->getData();
- // validate data
- $this->form->validate();
- // open a transaction with database
- TTransaction::open('permission');
- $preferences = SystemPreference::getAllPreferences();
- $mail = new TMail;
- $mail->setFrom( trim($preferences['mail_from']) , TSession::getValue('username'));
- $mail->addAddress ($data->email); //( trim($preferences['mail_support']) );
- $mail->setSubject( $data->empreendimento );
- if ($preferences['smtp_auth'])
- {
- $mail->SetUseSmtp();
- $mail->SetSmtpHost($preferences['smtp_host'], $preferences['smtp_port']);
- $mail->SetSmtpUser($preferences['smtp_user'], $preferences['smtp_pass']);
- }
- $mail->setHtmlBody ($data->emailmarketing);
- // $mail->setTextBody($data->emailmarketing);
- $mail->send();
- // close the transaction
- TTransaction::close();
- // Mensagem de sucesso COMENTE ELA PARA O ENVIO EM LOTE
- new TMessage('info', _t('Message sent successfully'));
- }
- catch (Exception $e) // in case of exception
- {
- // get the form data
- $object = $this->form->getData();
- // fill the form with the active record data
- $this->form->setData($object);
- // shows the exception error message
- new TMessage('error', $e->getMessage());
- // undo all pending operations
- TTransaction::rollback();
- }
- }
- /*
- Envio de e-mail em lote para clientes
- */
- public function onLote ($param)
- {
- try
- {
- TTransaction::open('sample');
- $emp = 'ESTAÇÕES MOOCA';
- $apartir= 0;
- // Contagem do total de registros filtrados
- $repos = new TRepository('Cliente');
- $total = $repos->count();
- $crit = new TCriteria();
- $crit->add(new TFilter('empreendimento','=',$emp));
- $autorizados = $repos->count($crit);
- $criteria = new TCriteria;
- $criteria->setProperty('limit' ,15);
- $criteria->setProperty('offset',$apartir);
- $criteria->setProperty('order','id');
- $repository = new TRepository('Cliente');
- $clientes = $repository -> where('empreendimento','=',$emp)
- -> load();
- foreach ($clientes as $cliente)
- {
- // começo do código de envio
- try
- {
- // get the form data
- $data = $this->form->getData();
- // validate data
- $this->form->validate();
- // open a transaction with database
- TTransaction::open('permission');
- $preferences = SystemPreference::getAllPreferences();
- $mail = new TMail;
- $mail->setFrom( trim($preferences['mail_from']) , TSession::getValue('username'));
- $data->email = $cliente->email;
- $mail->addAddress ($data->email); //( trim($preferences['mail_support']) );
- $mail->setSubject( $data->empreendimento );
- if ($preferences['smtp_auth'])
- {
- $mail->SetUseSmtp();
- $mail->SetSmtpHost($preferences['smtp_host'], $preferences['smtp_port']);
- $mail->SetSmtpUser($preferences['smtp_user'], $preferences['smtp_pass']);
- }
- $mail->setHtmlBody ($data->emailmarketing);
- // $mail->setTextBody($data->emailmarketing);
- $mail->send();
- // close the transaction
- TTransaction::close();
- // Mensagem de sucesso COMENTE ELA PARA O ENVIO EM LOTE
- //new TMessage('info', _t('Message sent successfully'));
- }
- catch (Exception $e) // in case of exception
- {
- // get the form data
- $object = $this->form->getData();
- // fill the form with the active record data
- $this->form->setData($object);
- // shows the exception error message
- new TMessage('error', $e->getMessage());
- // undo all pending operations
- TTransaction::rollback();
- }
- // Aviso de envio dos emails termonado
- //new TMessage ('info',('E-mail Marqueting Enviado'));
- }// Fim do código de envio FIM DO FOREACH
- TTransaction::close();
- }//-------------------------------------
- catch (Exception $e)
- {
- new TMessage('error',$e->getMessage());
- }
- // SALVA NO BANCO DE DADOS O ÚLTIMO ENVIO EM LOTE
- try
- { //***********************************************
- $prxenvio = date ('i');
- if ($prxenvio == 44) {
- $j = date('H');
- $j += 1;
- $proxdisparo = $j . ':00';
- }else{
- $prxenvio += 15;
- $proxdisparo = (date ('H')).':'.$prxenvio;
- }
- $obj = new StdClass;
- $obj ->proxdisparo = $proxdisparo ;
- TForm::sendData('form_Empreendimento', $obj);
- //***********************************************
- TTransaction::open('sample'); // open a transaction
- $this->form->validate(); // validate form data
- $object = new Empreendimento; // create an empty object
- $data = $this->form->getData(); // get form data as array
- $object->fromArray( (array) $data); // load the object with data
- $object->proxdisparo = $obj;
- $object->store(); // save the object
- // get the generated id
- $data->id = $object->id;
- $this->form->setData($data); // fill form data
- TTransaction::close(); // close the transaction
- new TMessage('info', ('E-mails enviados com sucesso!'));
- }
- 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
- }
- }
- /**
- * Save form data
- * @param $param Request
- */
- public function onSave( $param )
- {
- try
- {
- TTransaction::open('sample'); // open a transaction
- $this->form->validate(); // validate form data
- $object = new Empreendimento; // 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;
- $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('sample'); // open a transaction
- $object = new Empreendimento($key); // instantiates the Active Record
- $this->form->setData($object); // fill the form
- TTransaction::close(); // close the transaction
- }
- 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
- }
- }
- }
Você deve fazer a mesma coisa que é feita na função onEnvio, buscar as informações do formulário através do método getData: