Exemplo n.º 1
0
 /**
  * Carrega a DataGrid com os objetos
  */
 function onReload()
 {
     try {
         Transaction::open($this->connection);
         $repository = new Repository($this->activeRecord);
         // cria um critério de seleção de dados
         $criteria = new Criteria();
         $criteria->setProperty('order', 'id');
         if (isset($this->filter)) {
             $criteria->add($this->filter);
         }
         // carreta os objetos que satisfazem o critério
         $objects = $repository->load($criteria);
         $this->datagrid->clear();
         if ($objects) {
             foreach ($objects as $object) {
                 // adiciona o objeto na DataGrid
                 $this->datagrid->addItem($object);
             }
         }
         Transaction::close();
     } catch (Exception $e) {
         new Message($e->getMessage());
     }
 }
Exemplo n.º 2
0
 /**
  * Carrega a Datagrid com os objetos do banco de dados
  */
 public function onReload()
 {
     Transaction::open('livro');
     // inicia transação com o BD
     $repository = new Repository('Pessoa');
     // cria um critério de seleção de dados
     $criteria = new Criteria();
     $criteria->setProperty('order', 'id');
     // obtém os dados do formulário de buscas
     $dados = $this->form->getData();
     // verifica se o usuário preencheu o formulário
     if ($dados->nome) {
         // filtra pelo nome do pessoa
         $criteria->add(new Filter('nome', 'like', "%{$dados->nome}%"));
     }
     // carrega os produtos que satisfazem o critério
     $pessoas = $repository->load($criteria);
     $this->datagrid->clear();
     if ($pessoas) {
         foreach ($pessoas as $pessoa) {
             // adiciona o objeto na Datagrid
             $this->datagrid->addItem($pessoa);
         }
     }
     // finaliza a transação
     Transaction::close();
     $this->loaded = true;
 }
Exemplo n.º 3
0
 public static function getByPessoa($id_pessoa)
 {
     $criteria = new Criteria();
     $criteria->add(new Filter('paga', '<>', 'S'));
     $criteria->add(new Filter('id_cliente', '=', $id_pessoa));
     $repo = new Repository('Conta');
     return $repo->load($criteria);
 }
Exemplo 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('contas_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 Conta
         $repositorio = new Repository('Conta');
         // cria um critério de seleção por intervalo de datas
         $criterio = new Criteria();
         $criterio->setProperty('order', 'dt_vencimento');
         if ($dados->data_ini) {
             $criterio->add(new Filter('dt_vencimento', '>=', $data_ini));
         }
         if ($dados->data_fim) {
             $criterio->add(new Filter('dt_vencimento', '<=', $data_fim));
         }
         // lê todas contas que satisfazem ao critério
         $contas = $repositorio->load($criterio);
         if ($contas) {
             foreach ($contas as $conta) {
                 $conta_array = $conta->toArray();
                 $conta_array['nome_cliente'] = $conta->cliente->nome;
                 $replaces['contas'][] = $conta_array;
             }
         }
         // finaliza a transação
         Transaction::close();
     } catch (Exception $e) {
         new Message('error', $e->getMessage());
         Transaction::rollback();
     }
     $content = $template->render($replaces);
     parent::add($content);
 }
Exemplo n.º 5
0
 public function get_itens()
 {
     // instancia um repositóio de Item
     $repositorio = new Repository('ItemVenda');
     // define o critério
     $criterio = new Criteria();
     $criterio->add(new Filter('id_venda', '=', $this->id));
     // carrega a coleção
     $this->itens = $repositorio->load($criterio);
     // retorna os itens
     return $this->itens;
 }
Exemplo n.º 6
0
 /**
  * Retorna os grupos da pessoa
  */
 public function getGrupos()
 {
     $grupos = array();
     $criteria = new Criteria();
     $criteria->add(new Filter('id_pessoa', '=', $this->id));
     $repo = new Repository('PessoaGrupo');
     $vinculos = $repo->load($criteria);
     if ($vinculos) {
         foreach ($vinculos as $vinculo) {
             $grupos[] = new Grupo($vinculo->id_grupo);
         }
     }
     return $grupos;
 }
 public function listar()
 {
     try {
         Transaction::open('livro');
         $criteria = new Criteria();
         $criteria->setProperty('order', 'id');
         $repository = new Repository('Cidade');
         $cidades = $repository->load($criteria);
         if ($cidades) {
             foreach ($cidades as $cidade) {
                 print "{$cidade->id} - {$cidade->nome}<br>";
             }
         }
         Transaction::close();
     } catch (Exception $e) {
         print $e->getMessage();
     }
 }
 function count(Criteria $criteria)
 {
     $expression = $criteria->dump();
     $sql = "SELECT count(*) FROM " . constant($this->activeRecord . '::TABLENAME');
     if ($expression) {
         $sql .= ' WHERE ' . $expression;
     }
     if ($conn = Transaction::get()) {
         Transaction::log($sql);
         $result = $conn->query($sql);
         if ($result) {
             $row = $result->fetch();
         }
         return $row[0];
     } else {
         throw new Exception('Não há transação ativa!!');
     }
 }
Exemplo n.º 9
0
 /**
  * Retorna a quantidade de objetos da base de dados
  * que satisfazem um determinado critério de seleção.
  * @param $criteria = objeto do tipo TCriteria
  */
 function count(Criteria $criteria)
 {
     $expression = $criteria->dump();
     $sql = "SELECT count(*) FROM " . constant($this->activeRecord . '::TABLENAME');
     if ($expression) {
         $sql .= ' WHERE ' . $expression;
     }
     // obtém transação ativa
     if ($conn = Transaction::get()) {
         // registra mensagem de log
         Transaction::log($sql);
         // executa instrução de SELECT
         $result = $conn->query($sql);
         if ($result) {
             $row = $result->fetch();
         }
         // retorna o resultado
         return $row[0];
     } else {
         // se não tiver transação, retorna uma exceção
         throw new Exception('Não há transação ativa!!');
     }
 }