function getData($id_pessoa)
 {
     try {
         $pessoa_array = array();
         Transaction::open('livro');
         $pessoa = Pessoa::find($id_pessoa);
         if ($pessoa) {
             $pessoa_array = $pessoa->toArray();
         } else {
             return new SoapFault("Server", "Pessoa {$id_pessoa} não encontrado");
         }
         Transaction::close();
         return $pessoa_array;
     } catch (Exception $e) {
         Transaction::rollback();
         return new SoapFault("Server", $e->getMessage());
     }
 }
Esempio n. 2
0
 /**
  * Carrega registro para edição
  */
 function onEdit($param)
 {
     try {
         if (isset($param['id'])) {
             $id = $param['id'];
             // obtém a chave
             Transaction::open($this->connection);
             // inicia transação com o BD
             $class = $this->activeRecord;
             $object = $class::find($id);
             // instancia o Active Record
             $this->form->setData($object);
             // lança os dados no formulário
             Transaction::close();
             // finaliza a transação
         }
     } catch (Exception $e) {
         new Message('error', '<b>Erro</b>' . $e->getMessage());
         Transaction::rollback();
     }
 }
Esempio n. 3
0
 /**
  * Carrega registro para edição
  */
 public function onEdit($param)
 {
     try {
         if (isset($param['id'])) {
             $id = $param['id'];
             // obtém a chave
             Transaction::open('livro');
             // inicia transação com o BD
             $pessoa = Pessoa::find($id);
             $pessoa->ids_grupos = $pessoa->getIdsGrupos();
             $this->form->setData($pessoa);
             // lança os dados da pessoa no formulário
             Transaction::close();
             // finaliza a transação
         }
     } catch (Exception $e) {
         // exibe a mensagem gerada pela exceção
         new Message('error', '<b>Erro</b>' . $e->getMessage());
         // desfaz todas alterações no banco de dados
         Transaction::rollback();
     }
 }
Esempio n. 4
0
 /**
  * Gera o relatório, baseado nos parâmetros do formulário
  */
 public function onGera()
 {
     require_once 'Lib/Twig/Autoloader.php';
     Twig_Autoloader::register();
     $loader = new Twig_Loader_Filesystem('App/Resources');
     $twig = new Twig_Environment($loader);
     $template = $twig->loadTemplate('vendas_report.html');
     // obtém os dados do formulário
     $dados = $this->form->getData();
     // joga os dados de volta ao formulário
     $this->form->setData($dados);
     $conv_data_to_us = function ($data) {
         $dia = substr($data, 0, 2);
         $mes = substr($data, 3, 2);
         $ano = substr($data, 6, 4);
         return "{$ano}-{$mes}-{$dia}";
     };
     // lê os campos do formulário, converte para o padrão americano
     $data_ini = $conv_data_to_us($dados->data_ini);
     $data_fim = $conv_data_to_us($dados->data_fim);
     // vetor de parâmetros para o template
     $replaces = array();
     $replaces['data_ini'] = $dados->data_ini;
     $replaces['data_fim'] = $dados->data_fim;
     try {
         // inicia transação com o banco 'livro'
         Transaction::open('livro');
         // instancia um repositório da classe Venda
         $repositorio = new Repository('Venda');
         // cria um critério de seleção por intervalo de datas
         $criterio = new Criteria();
         $criterio->setProperty('order', 'data_venda');
         if ($dados->data_ini) {
             $criterio->add(new Filter('data_venda', '>=', $data_ini));
         }
         if ($dados->data_fim) {
             $criterio->add(new Filter('data_venda', '<=', $data_fim));
         }
         // lê todas vendas que satisfazem ao critério
         $vendas = $repositorio->load($criterio);
         if ($vendas) {
             foreach ($vendas as $venda) {
                 $venda_array = $venda->toArray();
                 $venda_array['nome_cliente'] = $venda->cliente->nome;
                 $itens = $venda->itens;
                 if ($itens) {
                     foreach ($itens as $item) {
                         $item_array = $item->toArray();
                         $item_array['descricao'] = $item->produto->descricao;
                         $venda_array['itens'][] = $item_array;
                     }
                 }
                 $replaces['vendas'][] = $venda_array;
             }
         }
         // finaliza a transação
         Transaction::close();
     } catch (Exception $e) {
         new Message('error', $e->getMessage());
         Transaction::rollback();
     }
     $content = $template->render($replaces);
     parent::add($content);
 }