Lançado Adianti Framework 7.6!
Clique aqui para saber mais
getValue dados do login bom dia srs, preciso pagar os dados do usuario do login para inserção automatica no DB. pesquisando no forum já fiz : $operador->setValue(tSesion::getValue('username') e está ok. como faço para pegar 'grupo' e 'unidade' do cadastro do usuario ? ainda não encontrei nada. ex: $operador->setValue(tSesion::getValue('username'); $grupo->setValue(tSesion::getValue('xxxxxxxxxxxx'); $unida...
JK
getValue dados do login  
bom dia srs,
preciso pagar os dados do usuario do login para inserção automatica no DB.
pesquisando no forum já fiz : $operador->setValue(tSesion::getValue('username') e está ok.
como faço para pegar 'grupo' e 'unidade' do cadastro do usuario ? ainda não encontrei nada.
ex:
$operador->setValue(tSesion::getValue('username');
$grupo->setValue(tSesion::getValue('xxxxxxxxxxxx');
$unidade->setValue(tSesion::getValue('yyyyyyyyy');

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (17)


JK

e fazer um filtro com eles antes de apresentar numa listagem de registros
WP

veja o arquivo LoginForm.class.php

la tem uma porção de código com isto

  1. <?php
  2. TSession::setValue('logged'TRUE);
  3.                 TSession::setValue('login'$data->login); //nome de login do usuario
  4.                 TSession::setValue('userid'$user->id); //id do usuario
  5.                 TSession::setValue('usergroupids'$user->getSystemUserGroupIds()); //grupos do usuario separados por "," Virgula
  6.                 TSession::setValue('username'$user->name);
  7.                 TSession::setValue('frontpage''');
  8.                 TSession::setValue('programs',$programs);
  9.                 
  10.                 if (!empty($user->unit))
  11.                 {
  12.                     TSession::setValue('userunitid',$user->unit->id); //unidade do usuario
  13.                 }
  14. ?>
WP

no MODEL de SystemUser tem alguns metodos que tambem podem auxiliar
JK

valeu galera. estou aprendendo muito. porem todos os exemplos so me retornam o id da unidade e do grupo. preciso que tragam o nome da unidade e do grupo. é possivel ?
teria uma função $user->getSystemUserGroupNames()) ? Tambem tentei 'userunitid',$user->unit->name) sem resultados.
JK

sei que estão no permission.db -> system_group->name e system_unit->name
JK

bem colegas, perdoem o iniciante, já ví que existe uma função getSystemUserGroupNames() em model/admin/systemuser.class.php

/**
* Get user group names
*/
public function getSystemUserGroupNames()
{
$groupnames = array();
$groups = $this->getSystemUserGroups();
if ($groups)
{
foreach ($groups as $group)
{
$groupnames[] = $group->name;
}
}

return implode(',', $groupnames);
}

qdo faço:
$cidade->setValue(TSession::getValue('groupnames',$user->getSystemUserGroupNames()));
dá erro. tenho que copiar systemuser.class.php para dentro do model do projeto studio pro ?
poderiam me ajudar ?
WP

Junior Kamil , Pergunta tu tem os livros que o Pablo disponibiliza para venda?

si não tiver convido você a comprá-los, pois com eles vai ter um avanzo muito maior e total explicação sobre o Framework

Tanto o PHP OOP e o livro sobre o Adianti propriamente dito
JK

resposta : sim eu tenho o livro do adianti frameworkn mas não me ajudou na questão

pergunta : o forum não é para isto ?postar duvidas ?
WP

Não quis ofender, si fiz isso me desculpe foi apenas um comentário para ajudar
JK

tudo bem. então pode me ajudar em uma solução para o problema postado ?

getSystemUserGroupNames() retorna erro de função não existente. já foi declarada dentro do control do form
JK

dificil de acreditar que um produto tão bom quanto o adianti studio pro esteja me criando esta dificuldade (ou melhor, não me provendo esta facilidade) em função tão básica.
mais provavel que seja minha inexperiencia
WP

Por Favor poste todo o codigo aqui para analizar o que pode estar mal

JK

antes de mais nada, agradeço sua disposição para me ajudar.

1º o erro :
Notice: Undefined variable: user in /var/www/html/cras/app/control/AtendimentoForm.class.php on line 53

Fatal error: Uncaught Error: Call to a member function getSystemUserGroupNames() on null in /var/www/html/cras/app/control/AtendimentoForm.class.php:53 Stack trace: #0 /var/www/html/cras/lib/adianti/core/AdiantiCoreApplication.php(60): AtendimentoForm->__construct(Array) #1 /var/www/html/cras/engine.php(32): AdiantiCoreAdiantiCoreApplication::run(true) #2 /var/www/html/cras/engine.php(51): TApplication::run(true) #3 {main} thrown in /var/www/html/cras/app/control/AtendimentoForm.class.php on line 53

agora o codigo: linha 53 está marcada com ********

  1. <?php
  2. /**
  3.  * AtendimentoForm Form
  4.  * @author  <your name here>
  5.  */
  6. class AtendimentoForm extends TPage
  7. {
  8.     protected $form// form
  9.     
  10.     /**
  11.      * Form constructor
  12.      * @param $param Request
  13.      */
  14.     public function __construct$param )
  15.     {
  16.         parent::__construct();
  17.         
  18.         // creates the form
  19.         $this->form = new TQuickForm('form_Atendimento');
  20.         $this->form->class 'tform'// change CSS class
  21.         
  22.         $this->form->style 'display: table;width:100%'// change style
  23.         
  24.         // define the form title
  25.         $this->form->setFormTitle('Atendimento');
  26.         
  27.         // create the form fields
  28.         $id = new TEntry('id');
  29.         $data_atendimento = new TDate('data_atendimento');
  30.         $cidade = new TEntry('cidade');
  31.         $cras = new TEntry('cras');
  32.         $operador = new TEntry('operador');
  33.         $cpf = new TEntry('cpf');
  34.         $nome = new TEntry('nome');
  35.         $endereço = new TEntry('endereço');
  36.         $bairro = new TEntry('bairro');
  37.         $cep = new TEntry('cep');
  38.         $encaminhamento = new TEntry('encaminhamento');
  39.         $recebido_para = new TEntry('recebido_para');
  40.         $tipo_atendimento = new TEntry('tipo_atendimento');
  41.         $obs = new TEntry('obs');
  42.         
  43.         // define mascaras
  44.         $cpf->setMask('999.999.999-99');
  45.         $cep->setMask('99.999-999');
  46.         
  47.         // busca campos do login **********************************************
  48.         $operador->setValue(TSession::getValue('username'));
  49.         //$cidade->setValue(TSession::getValue('usergroupids'));
  50.         //$cras->setValue(TSession::getValue('userunitid'));
  51.         $cidade->setValue(TSession::getValue('groupnames',$user->getSystemUserGroupNames()));
  52.         // é na linha acima      **************************************************************************************************************** 53
  53.            
  54.         // add the fields
  55.         $this->form->addQuickField('Id'$id,  100 );
  56.         $this->form->addQuickField('Data Atendimento'$data_atendimento,  100 );
  57.         $this->form->addQuickField('Cidade'$cidade,  200 );
  58.         $this->form->addQuickField('Cras'$cras,  200 );
  59.         $this->form->addQuickField('Operador'$operador,  200 );
  60.         $this->form->addQuickField('Cpf'$cpf,  200 );
  61.         $this->form->addQuickField('Nome'$nome,  800 );
  62.         $this->form->addQuickField('Endereço'$endereço,  800 );
  63.         $this->form->addQuickField('Bairro'$bairro,  800 );
  64.         $this->form->addQuickField('Cep'$cep,  200 );
  65.         $this->form->addQuickField('Encaminhamento'$encaminhamento,  800 );
  66.         $this->form->addQuickField('Recebido Para'$recebido_para,  800 );
  67.         $this->form->addQuickField('Tipo Atendimento'$tipo_atendimento,  800 );
  68.         $this->form->addQuickField('Obs'$obs,  800 );
  69.         if (!empty($id))
  70.         {
  71.             $id->setEditable(FALSE);
  72.         }
  73.         
  74.         /** samples
  75.          $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
  76.          $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  77.          $fieldX->setSize( 100, 40 ); // set size
  78.          **/
  79.          
  80.         // create the form actions
  81.         $this->form->addQuickAction(_t('Save'), new TAction(array($this'onSave')), 'fa:floppy-o');
  82.         $this->form->addQuickAction(_t('New'),  new TAction(array($this'onClear')), 'bs:plus-sign green');
  83.         
  84.         // vertical box container
  85.         $container = new TVBox;
  86.         $container->style 'width: 90%';
  87.         // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  88.         $container->add($this->form);
  89.         
  90.         parent::add($container);
  91.     }
  92.     /**
  93.      * Save form data
  94.      * @param $param Request
  95.      */
  96.     public function onSave$param )
  97.     {
  98.         try
  99.         {
  100.             TTransaction::open('cras'); // open a transaction
  101.             
  102.             /**
  103.             // Enable Debug logger for SQL operations inside the transaction
  104.             TTransaction::setLogger(new TLoggerSTD); // standard output
  105.             TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  106.             **/
  107.             
  108.             $this->form->validate(); // validate form data
  109.             
  110.             $object = new Atendimento;  // create an empty object
  111.             $data $this->form->getData(); // get form data as array
  112.             $object->fromArray( (array) $data); // load the object with data
  113.             $object->store(); // save the object
  114.             
  115.             // get the generated id
  116.             $data->id $object->id;
  117.             
  118.             $this->form->setData($data); // fill form data
  119.             TTransaction::close(); // close the transaction
  120.             
  121.             new TMessage('info'TAdiantiCoreTranslator::translate('Record saved'));
  122.         }
  123.         catch (Exception $e// in case of exception
  124.         {
  125.             new TMessage('error'$e->getMessage()); // shows the exception error message
  126.             $this->form->setData$this->form->getData() ); // keep form data
  127.             TTransaction::rollback(); // undo all pending operations
  128.         }
  129.     }
  130.     
  131.     /**
  132.      * Clear form data
  133.      * @param $param Request
  134.      */
  135.     public function onClear$param )
  136.     {
  137.         $this->form->clear(TRUE);
  138.     }
  139.     
  140.     /**
  141.      * Load object to form data
  142.      * @param $param Request
  143.      */
  144.     public function onEdit$param )
  145.     {
  146.         try
  147.         {
  148.             if (isset($param['key']))
  149.             {
  150.                 $key $param['key'];  // get the parameter $key
  151.                 TTransaction::open('cras'); // open a transaction
  152.                 $object = new Atendimento($key); // instantiates the Active Record
  153.                 $this->form->setData($object); // fill the form
  154.                 TTransaction::close(); // close the transaction
  155.             }
  156.             else
  157.             {
  158.                 $this->form->clear(TRUE);
  159.             }
  160.         }
  161.         catch (Exception $e// in case of exception
  162.         {
  163.             new TMessage('error'$e->getMessage()); // shows the exception error message
  164.             TTransaction::rollback(); // undo all pending operations
  165.         }
  166.     }
  167.    /**
  168.      * Method getSystem_user_groups
  169.      * Return the System_user' System_user_group's
  170.      * @return Collection of System_user_group
  171.      */
  172.     public function getSystemUserGroups()
  173.     {
  174.         $system_user_groups = array();
  175.         
  176.         // load the related System_user_group objects
  177.         $repository = new TRepository('SystemUserGroup');
  178.         $criteria = new TCriteria;
  179.         $criteria->add(new TFilter('system_user_id''='$this->id));
  180.         $system_user_system_user_groups $repository->load($criteria);
  181.         if ($system_user_system_user_groups)
  182.         {
  183.             foreach ($system_user_system_user_groups as $system_user_system_user_group)
  184.             {
  185.                 $system_user_groups[] = new SystemGroup$system_user_system_user_group->system_group_id );
  186.             }
  187.         }
  188.         return $system_user_groups;
  189.     }
  190.     
  191.     /**
  192.      * Get user group names
  193.      */
  194.     public function getSystemUserGroupNames()
  195.     {
  196.         $groupnames = array();
  197.         $groups $this->getSystemUserGroups();
  198.         if ($groups)
  199.         {
  200.             foreach ($groups as $group)
  201.             {
  202.                 $groupnames[] = $group->name;
  203.             }
  204.         }
  205.         
  206.         return implode(','$groupnames);
  207.     }
  208.  }
  209. </your>
WP

Abaixo refiz parte do teu código para tentar demostrar como deve ser feito , caso não entenda algo comente qual a linha não entendeu.

  1. <?php
  2. /**
  3.  * AtendimentoForm Form
  4.  * @author  <your name here>
  5.  */
  6. class AtendimentoForm extends TPage
  7. {
  8.     protected $form// form
  9.     
  10.     /**
  11.      * Form constructor
  12.      * @param $param Request
  13.      */
  14.     public function __construct$param )
  15.     {
  16.         parent::__construct();
  17.         
  18.         // creates the form
  19.         $this->form = new TQuickForm('form_Atendimento');
  20.         $this->form->class 'tform'// change CSS class
  21.         
  22.         $this->form->style 'display: table;width:100%'// change style
  23.         
  24.         // define the form title
  25.         $this->form->setFormTitle('Atendimento');
  26.         
  27.         // create the form fields
  28.         $id = new TEntry('id');
  29.         $data_atendimento = new TDate('data_atendimento');
  30.         $cidade = new TEntry('cidade');
  31.         $cras = new TEntry('cras');
  32.         $operador = new TEntry('operador');
  33.         $cpf = new TEntry('cpf');
  34.         $nome = new TEntry('nome');
  35.         $endereço = new TEntry('endereço');
  36.         $bairro = new TEntry('bairro');
  37.         $cep = new TEntry('cep');
  38.         $encaminhamento = new TEntry('encaminhamento');
  39.         $recebido_para = new TEntry('recebido_para');
  40.         $tipo_atendimento = new TEntry('tipo_atendimento');
  41.         $obs = new TEntry('obs');
  42.         
  43.         // define mascaras
  44.         $cpf->setMask('999.999.999-99');
  45.         $cep->setMask('99.999-999');
  46.         
  47.         // busca campos do login **********************************************
  48.         $operador->setValue(TSession::getValue('username'));
  49.         //$cidade->setValue(TSession::getValue('usergroupids'));
  50.         //$cras->setValue(TSession::getValue('userunitid'));
  51.         
  52.         
  53.         //Bom Vamos lá
  54.         //1- para poder ter acesso a objetos do banco de dados (linhas/rows/etc) temos que abrir uma transaction (sempre usar em um TRY CATCH)
  55.         try{
  56.             TTransaction::open('permission');//abrindo a transaction
  57.             //2- vamos criar o objeto $user (imagino eu que seria o usuario atual do sistema), sendo assim fica desta forma
  58.             $user = new SystemUser(TSession::getValue('userid'));//vamos criar o objeto SysteUser (usuario) passando o ID da sessao atual
  59.             //agora temos um objeto do tipo SystemUser (este objeto fica em "app\model\admin\SystemUser.class.php", nele ja temos diversos metodos que ja podemos usar abaixo alguns deles para que tu possa entender
  60.             //sendo assim não precisa criar novamente os mesmos metodos
  61.             
  62.             /*INICIANDO AMOSTRA DE DADOS*/
  63.             echo "<pre>";
  64.             echo $user->getSystemUserGroupNames().'<br>';//mostra o/s NOMES dos grupos ao que o usuario pertence
  65.             echo $user->getSystemUserGroupIds().'<br>';//mostra o/s IDs dos grupos ao que o usuario pertence
  66.             echo $user->get_frontpage_name().'<br>';//mostra o nome da pagina/controller inicial do usuario
  67.             echo "</pre>";
  68.             /*FIM INICIANDO AMOSTRA DE DADOS*/
  69.             TTransaction::close();//fechamos a transaction
  70.         }catch (Exception $e)
  71.         {
  72.             new TMessage('error',$e->getMessage()); //em caso de erro ao abrir ou alguma queyr falhar mostra a mensagem 
  73.             TTransaction::rollback();//rollback e fecha a transaction
  74.         }
  75.         //Conitnuar com o resto do codigo
  76.         
  77.         //***********************$cidade->setValue(TSession::getValue('groupnames',$user->getSystemUserGroupNames()));
  78.         // é na linha acima      **************************************************************************************************************** 53
  79.            
  80.         // add the fields
  81.         $this->form->addQuickField('Id'$id,  100 );
  82.         $this->form->addQuickField('Data Atendimento'$data_atendimento,  100 );
  83.         $this->form->addQuickField('Cidade'$cidade,  200 );
  84.         $this->form->addQuickField('Cras'$cras,  200 );
  85.         $this->form->addQuickField('Operador'$operador,  200 );
  86.         $this->form->addQuickField('Cpf'$cpf,  200 );
  87.         $this->form->addQuickField('Nome'$nome,  800 );
  88.         $this->form->addQuickField('Endereço'$endereço,  800 );
  89.         $this->form->addQuickField('Bairro'$bairro,  800 );
  90.         $this->form->addQuickField('Cep'$cep,  200 );
  91.         $this->form->addQuickField('Encaminhamento'$encaminhamento,  800 );
  92.         $this->form->addQuickField('Recebido Para'$recebido_para,  800 );
  93.         $this->form->addQuickField('Tipo Atendimento'$tipo_atendimento,  800 );
  94.         $this->form->addQuickField('Obs'$obs,  800 );
  95.         if (!empty($id))
  96.         {
  97.             $id->setEditable(FALSE);
  98.         }
  99.         
  100.         /** samples
  101.          $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
  102.          $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  103.          $fieldX->setSize( 100, 40 ); // set size
  104.          **/
  105.          
  106.         // create the form actions
  107.         $this->form->addQuickAction(_t('Save'), new TAction(array($this'onSave')), 'fa:floppy-o');
  108.         $this->form->addQuickAction(_t('New'),  new TAction(array($this'onClear')), 'bs:plus-sign green');
  109.         
  110.         // vertical box container
  111.         $container = new TVBox;
  112.         $container->style 'width: 90%';
  113.         // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  114.         $container->add($this->form);
  115.         
  116.         parent::add($container);
  117.     }
  118.     /**
  119.      * Save form data
  120.      * @param $param Request
  121.      */
  122.     public function onSave$param )
  123.     {
  124.         try
  125.         {
  126.             TTransaction::open('cras'); // open a transaction
  127.             
  128.             /**
  129.             // Enable Debug logger for SQL operations inside the transaction
  130.             TTransaction::setLogger(new TLoggerSTD); // standard output
  131.             TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  132.             **/
  133.             
  134.             $this->form->validate(); // validate form data
  135.             
  136.             $object = new Atendimento;  // create an empty object
  137.             $data $this->form->getData(); // get form data as array
  138.             $object->fromArray( (array) $data); // load the object with data
  139.             $object->store(); // save the object
  140.             
  141.             // get the generated id
  142.             $data->id $object->id;
  143.             
  144.             $this->form->setData($data); // fill form data
  145.             TTransaction::close(); // close the transaction
  146.             
  147.             new TMessage('info'TAdiantiCoreTranslator::translate('Record saved'));
  148.         }
  149.         catch (Exception $e// in case of exception
  150.         {
  151.             new TMessage('error'$e->getMessage()); // shows the exception error message
  152.             $this->form->setData$this->form->getData() ); // keep form data
  153.             TTransaction::rollback(); // undo all pending operations
  154.         }
  155.     }
  156.     
  157.     /**
  158.      * Clear form data
  159.      * @param $param Request
  160.      */
  161.     public function onClear$param )
  162.     {
  163.         $this->form->clear(TRUE);
  164.     }
  165.     
  166.     /**
  167.      * Load object to form data
  168.      * @param $param Request
  169.      */
  170.     public function onEdit$param )
  171.     {
  172.         try
  173.         {
  174.             if (isset($param['key']))
  175.             {
  176.                 $key $param['key'];  // get the parameter $key
  177.                 TTransaction::open('cras'); // open a transaction
  178.                 $object = new Atendimento($key); // instantiates the Active Record
  179.                 $this->form->setData($object); // fill the form
  180.                 TTransaction::close(); // close the transaction
  181.             }
  182.             else
  183.             {
  184.                 $this->form->clear(TRUE);
  185.             }
  186.         }
  187.         catch (Exception $e// in case of exception
  188.         {
  189.             new TMessage('error'$e->getMessage()); // shows the exception error message
  190.             TTransaction::rollback(); // undo all pending operations
  191.         }
  192.     }
  193.  }
  194. ?>



Atte. Willian Fernando Padilha
</your>
JK

ok willian, muito obrigado pela atenção dada a um iniciante (em php). dei uma olhada e entendí o processo.
agora estou nsem tempo para implementar. depois testo e te dou um retorno.

obrigado

JK

bom dia willian, estou de volta. terminei de ministrar um curso. muita papelada, provas e recuperações.
aproveitei a parada para adquirir mais um livro do pablo 'php orientado a objetos' e estou estudando.
bom, o codigo foi implementado e o 'echo' funciona perfeitamente, só falta passar este valor para a variável
$cidade. estou apanhando. peço socorro. após isto vou implementar uma função para pegar o 'nome de unidades'

// define mascaras
$cpf->setMask('999.999.999-99');
$cep->setMask('99.999-999');

// busca campos do login **********************************************
$operador->setValue(TSession::getValue('username'));

try{
TTransaction::open('permission');
$user = new SystemUser(TSession::getValue('userid'));

echo $user->getSystemUserGroupNames();

TTransaction::close();
}catch (Exception $e)
{new TMesage('error',$e->getMessage());
TTransaction::rollback();
}
JK

resolvido :

// busca campos do login **********************************************
$operador->setValue(TSession::getValue('username'));

try{
TTransaction::open('permission');
$user = new SystemUser(TSession::getValue('userid'));

echo $user->getSystemUserGroupNames();

$cidade->setValue($user->getSystemUserGroupNames());



TTransaction::close();
}catch (Exception $e)
{new TMesage('error',$e->getMessage());
TTransaction::rollback();
}

agora vou partir para a função getSystemUserUnitNames()

muito obrigado pela ajuda