ST
Gravar na tabela a Unidade do Usuário
Boa tarde Amigos,
Alguém sabe informar como faço para gravar na tabela o nome do usuário logado no sistema e a unidade em que o usuário está cadastrado quando este
gravar um novo registro?
Alguém sabe informar como faço para gravar na tabela o nome do usuário logado no sistema e a unidade em que o usuário está cadastrado quando este
gravar um novo registro?
No controller "LoginForm" ao se logar o sistema grava na variável de sessão o userid, recupere assim $userId = TSession::getValue('userid').
Se observar o modelo "SystemUser" poderá ver que há um relacionamento com "SystemUnit", uma vez recuperado um objeto "SystemUser", vc poderá obter a unit.
Exemplo:
$user = new SystemUser(TSession::getValue('userid'));
$unitId = $user->unit->id;
e assim por diante
Marcelo,
Certo. Mas como gravar no banco de dados, ao clicar em salvar?
No seu model e banco de dados vc deve ter os campos: system_user_id e system_unit_id.
Antes de salvar ($obj->store()), vc associa, por exemplo:
Marcelo,
Certo. Mas como gravar no banco de dados, ao clicar em salvar?
Marcelo,
Onde eu coloco esse código OnSave?
Sebastião
Acredito que você tenha um form, certo?
Neste form você tem os componentes de entrada de dados e num dado momento você deve ter adicionado um TAction, certo?
Isto é o básico do framework....
Veja um exemplo:
</your>
Marcelo,
Obrigado por sua ajuda.
Saiba que estou na fase inicial da Ferramenta Adianti Framework.
Este é o meu primeiro projeto, por isso estou com dúvidas de como implementar o código.
Tranquilo
Estamos aqui para ajudar.
Você conseguiu entender a lógica?
Isso é o mais importante!
Marcelo,
Não consigo nem gravar a unidade do usuário e nem o usuário no banco de dados.
Sinceramente estou completamente perdido.
Se puder me ajudar a identificar onde estou errando, te agradeceria muito.
Segue o modelo:
Marcelo,
O usuário está gravando no banco de dados, apenas a unidade não está gravando.
Bom dia.
Dá uma olhada no seu código.
O "userid" está errado quando tentar buscar os dados, veja parte do seu código abaixo, você usou "userod".
Marcelo,
Problema resolvido. Muitíssimo obrigado.
Gostaria de filtrar os dados do datagrid pela unidade, como faço isto?
Você usa TCriteria no método onReload.
Quando você cria um TDataGrid pelo Adianti Studio ele cria um método onReload.
Neste método existe alguns filtros que podem vir da tela de pesquisa básica que ele criar.
Modifique este método e adicione os critérios desejados.
Marcelo,
Este é o meu primeiro projeto.
Não sei ainda como utilizar o Tcriteria.
Poderia, por favor, me passaram um exemplo.
Sebastião, vai um trecho de código a respeito deste assunto.
Trata-se de um método onReload().
Neste caso seu model contém o campo "system_group_id", correto e tão vamos ao método e uso do TCriteria.
Veja na linha 35.
Vc deve localizar seu método onReload e implementar o TCriteria.
Marcelo,
No formulário do datagrid não tem o método on Reload.
Tem o método onBeforeLoad.
Implemente nele.
Literalmente o método diz "Antes de Ler".
Problema resolvido.
Obrigado Marcelo.