summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php
diff options
context:
space:
mode:
authordevega <miguel.vega@sic.uhu.es>2020-03-24 12:36:46 +0100
committerdevega <miguel.vega@sic.uhu.es>2020-03-24 12:36:46 +0100
commit7a51e7aeffd72798fcd8cfaa1f27535b5e959b07 (patch)
treedd19baeca029deaaa6b356bb4884bf9d93728250 /admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php
parentaafce73629d6b5f5d0a055e109d6112a4bccbb14 (diff)
Updated Symfony 3.x to 4.xwebconsole3
- Reorganizado los Repositorios de Symfony - Registrado los commandos como Servicio - Actualizado la configuraiĆ³n de Doctrine - Modificado el fichero update e installer.
Diffstat (limited to 'admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php')
-rw-r--r--admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php124
1 files changed, 124 insertions, 0 deletions
diff --git a/admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php b/admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php
new file mode 100644
index 00000000..ddd2d717
--- /dev/null
+++ b/admin/WebConsole3/backend/src/Opengnsys/ServerBundle/Repository/TraceRepository.php
@@ -0,0 +1,124 @@
+<?php
+
+/*
+ * This file is part of the Opengnsys Project package.
+ *
+ * Created by Miguel Angel de Vega Alcantara on 01/10/18. <miguelangel.devega@sic.uhu.es>
+ * Copyright (c) 2015 Opengnsys. All rights reserved.
+ *
+ */
+
+namespace Opengnsys\ServerBundle\Repository;
+
+use Opengnsys\CoreBundle\Repository\BaseRepository;
+
+/**
+ * TraceRepository
+ *
+ * This class was generated by the Doctrine ORM. Add your own custom
+ * repository methods below.
+ */
+class TraceRepository extends BaseRepository
+{
+ public function searchStatus($clients , $ou){
+ $qb = $this->createQueryBuilder('o');
+
+ $qb->select('o.id, o.status');
+
+ if($ou){
+ $qb->andWhere("o.organizationalUnit = :organizationalUnit")->setParameter("organizationalUnit", $ou);
+ }
+
+ if($clients){
+ $qb->andWhere("o.id in (:clients)")->setParameter("clients", $clients);
+ }
+
+ try {
+ $objects = $qb->getQuery()->getScalarResult();
+ } catch (NoResultException $e) {
+ $message = sprintf('Unable to find an objects');
+ throw new NotFoundHttpException($message, null, 0, $e);
+ }
+ return $objects;
+ }
+
+ public function findByObservable($term = "", $limit = null, $offset = null, $ordered = array(), $selects = array(), $searchs = array(), $matching = array())
+ {
+ $qb = $this->createQueryBuilder('o');
+
+ if(count($selects) > 0){
+ $qb = $this->createSelect($qb, $selects);
+ }else{
+ $qb->select("DISTINCT o.createdAt, o.updatedAt, o.notes, o.title, o.commandType, o.script, o.status, o.output, o.error, o.executedAt, o.finishedAt, o.id");
+ }
+
+ if($term != ""){
+ if(count($searchs) > 0){
+ $qb = $this->createSearch($qb, $term, $searchs);
+ }else{
+ $qb->andWhere("o.createdAt LIKE :term OR o.updatedAt LIKE :term OR o.notes LIKE :term OR o.title LIKE :term OR o.commandType LIKE :term OR o.script LIKE :term OR o.status LIKE :term OR o.output LIKE :term OR o.error LIKE :term OR o.executedAt LIKE :term OR o.finishedAt LIKE :term OR o.id LIKE :term ")->setParameter('term', '%' . $term . '%');
+ }
+ }
+
+ $qb = $this->createMaching($qb, $matching);
+
+ $qb = $this->createOrdered($qb, $ordered);
+
+ if($limit != null){
+ $qb->setMaxResults($limit);
+ }
+
+ if($offset){
+ $qb->setFirstResult($offset);
+ }
+
+ $entities = $qb->getQuery()->getScalarResult();
+ return $entities;
+ }
+
+ public function countFiltered($term = "", $searchs = array(), $matching = array())
+ {
+ $qb = $this->createQueryBuilder('o');
+
+ $qb->select("count(DISTINCT o.id)");
+
+ if($term != ""){
+ if(count($searchs) > 0){
+ $qb = $this->createSearch($qb, $term, $searchs);
+ }else{
+ $qb->andWhere("o.createdAt LIKE :term OR o.updatedAt LIKE :term OR o.notes LIKE :term OR o.title LIKE :term OR o.commandType LIKE :term OR o.script LIKE :term OR o.status LIKE :term OR o.output LIKE :term OR o.error LIKE :term OR o.executedAt LIKE :term OR o.finishedAt LIKE :term OR o.id LIKE :term ")->setParameter('term', '%' . $term . '%');
+ }
+ }
+
+ $qb = $this->createMaching($qb, $matching);
+
+ $count = $qb->getQuery()->getSingleScalarResult();
+ return $count;
+ }
+
+ protected function createMaching($qb, $matching)
+ {
+ if(array_key_exists('finished', $matching) && $matching['finished'] != null){
+ if($matching['finished']){
+ $qb->andWhere("o.status is not null");
+ }else{
+ $qb->andWhere("o.status is null");
+ }
+ unset($matching['finished']);
+ }
+
+ if(array_key_exists("fromDate", $matching) && $matching['fromDate'] != null){
+ $qb->andWhere("o.executedAt >= :fromDate")->setParameter("fromDate", $matching['fromDate']);
+ }
+ unset($matching['fromDate']);
+
+ if(array_key_exists("toDate", $matching) && $matching['toDate'] != null){
+ $qb->andWhere("o.executedAt <= :toDate")->setParameter("toDate", $matching['toDate']);
+ }
+ unset($matching['toDate']);
+
+ $qb = parent::createMaching($qb, $matching);
+
+ return $qb;
+ }
+}