This commit is contained in:
Nicolas Le Goff
2013-01-23 15:46:03 +01:00
parent 197acb312a
commit 43be8b7586
15 changed files with 307 additions and 301 deletions

View File

@@ -93,23 +93,23 @@ class module_report_activity extends module_report
$this->result = array(); $this->result = array();
$this->title = _('report:: activite par heure'); $this->title = _('report:: activite par heure');
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(), $filter['params']); $params = array_merge(array(), $filter['params']);
$sql = " $sql = "
SELECT tt.heures, SUM(1) AS nb SELECT tt.heures, SUM(1) AS nb
FROM ( FROM (
SELECT DISTINCT(log.id), DATE_FORMAT( log.date, '%k' ) AS heures SELECT DISTINCT(log.id), DATE_FORMAT( log.date, '%k' ) AS heures
FROM log FORCE INDEX (date_site) FROM log FORCE INDEX (date_site)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (" . $filter['sql'] . ") WHERE (" . $filter['sql'] . ")
) AS tt ) AS tt
GROUP BY tt.heures GROUP BY tt.heures
ORDER BY tt.heures ASC"; ORDER BY tt.heures ASC";
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -152,29 +152,29 @@ class module_report_activity extends module_report
{ {
$result = array(); $result = array();
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(':main_value' => $value), $filter['params']); $params = array_merge(array(':main_value' => $value), $filter['params']);
$sql = " $sql = "
SELECT DATE_FORMAT(log_search.date,'%Y-%m-%d %H:%i:%S') AS date , SELECT DATE_FORMAT(log_search.date,'%Y-%m-%d %H:%i:%S') AS date ,
log_search.search ,log_search.results log_search.search ,log_search.results
FROM (log_search) FROM (log_search)
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id) INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (" . $filter['sql'] . ") WHERE (" . $filter['sql'] . ")
AND log.`" . $what . "` = :main_value AND log.`" . $what . "` = :main_value
ORDER BY date "; ORDER BY date ";
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$s->setTotalrows($stmt->rowCount()); $sqlBuilder->setTotalrows($stmt->rowCount());
$stmt->closeCursor(); $stmt->closeCursor();
$sql .= $s->getFilters()->getLimitFilter(); $sql .= $sqlBuilder->getFilters()->getLimitFilter();
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -206,29 +206,29 @@ class module_report_activity extends module_report
$this->report['value'] = array(); $this->report['value'] = array();
$this->report['value2'] = array(); $this->report['value2'] = array();
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(), $filter['params']); $params = array_merge(array(), $filter['params']);
($no_answer) ? $this->title = _('report:: questions sans reponses') : $this->title = _('report:: questions les plus posees'); ($no_answer) ? $this->title = _('report:: questions sans reponses') : $this->title = _('report:: questions les plus posees');
$sql = " $sql = "
SELECT TRIM(tt.search) AS search, SUM(1) AS nb, ROUND(avg(tt.results)) AS nb_rep SELECT TRIM(tt.search) AS search, SUM(1) AS nb, ROUND(avg(tt.results)) AS nb_rep
FROM ( FROM (
SELECT DISTINCT(log.id), log_search.search AS search, results SELECT DISTINCT(log.id), log_search.search AS search, results
FROM (log_search) FROM (log_search)
INNER JOIN log FORCE INDEX (date_site) ON (log_search.log_id = log.id) INNER JOIN log FORCE INDEX (date_site) ON (log_search.log_id = log.id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (" . $filter['sql'] . ") WHERE (" . $filter['sql'] . ")
AND log_search.search != 'all' " . AND log_search.search != 'all' " .
($no_answer ? ' AND log_search.results = 0 ' : '') . " ($no_answer ? ' AND log_search.results = 0 ' : '') . "
) AS tt ) AS tt
GROUP BY tt.search GROUP BY tt.search
ORDER BY nb DESC"; ORDER BY nb DESC";
$sql .= !$no_answer ? ' LIMIT ' . $this->nb_top : ''; $sql .= !$no_answer ? ' LIMIT ' . $this->nb_top : '';
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -269,28 +269,28 @@ class module_report_activity extends module_report
public function getAllDownloadByUserBase($usr, $config = false) public function getAllDownloadByUserBase($usr, $config = false)
{ {
$result = array(); $result = array();
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(), $filter['params']); $params = array_merge(array(), $filter['params']);
$databox = $this->app['phraseanet.appbox']->get_databox($this->sbas_id); $databox = $this->app['phraseanet.appbox']->get_databox($this->sbas_id);
$sql = " $sql = "
SELECT log_docs.record_id, log_docs.date, log_docs.final AS objets SELECT log_docs.record_id, log_docs.date, log_docs.final AS objets
FROM (`log_docs`) FROM (`log_docs`)
INNER JOIN log FORCE INDEX (date_site) ON (log_docs.log_id = log.id) INNER JOIN log FORCE INDEX (date_site) ON (log_docs.log_id = log.id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
INNER JOIN record ON (log_docs.record_id = record.record_id) INNER JOIN record ON (log_docs.record_id = record.record_id)
WHERE (". $filter['sql'] .") AND log_docs.action = 'download' WHERE (". $filter['sql'] .") AND log_docs.action = 'download'
ORDER BY date DESC"; ORDER BY date DESC";
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$s->setTotalrows($stmt->rowCount()); $sqlBuilder->setTotalrows($stmt->rowCount());
$stmt->closeCursor(); $stmt->closeCursor();
$sql .= $s->getFilters()->getLimitFilter() ?: ''; $sql .= $sqlBuilder->getFilters()->getLimitFilter() ?: '';
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -329,8 +329,8 @@ class module_report_activity extends module_report
{ {
$this->title = _('report:: telechargements par jour'); $this->title = _('report:: telechargements par jour');
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(), $filter['params']); $params = array_merge(array(), $filter['params']);
$sql = " $sql = "
@@ -350,7 +350,7 @@ class module_report_activity extends module_report
GROUP BY tt.final, ddate GROUP BY tt.final, ddate
ORDER BY tt.the_date DESC"; ORDER BY tt.the_date DESC";
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -390,9 +390,9 @@ class module_report_activity extends module_report
} }
$nb_row = $i + 1; $nb_row = $i + 1;
$s->setTotalrows($nb_row); $sqlBuilder->setTotalrows($nb_row);
if ($s->getTotalRows() > 0) { if ($sqlBuilder->getTotalRows() > 0) {
$this->result[$nb_row]['ddate'] = '<b>TOTAL</b>'; $this->result[$nb_row]['ddate'] = '<b>TOTAL</b>';
$this->result[$nb_row]['document'] = '<b>' . $total['tot_doc'] . '</b>'; $this->result[$nb_row]['document'] = '<b>' . $total['tot_doc'] . '</b>';
$this->result[$nb_row]['preview'] = '<b>' . $total['tot_prev'] . '</b>'; $this->result[$nb_row]['preview'] = '<b>' . $total['tot_prev'] . '</b>';
@@ -418,8 +418,8 @@ class module_report_activity extends module_report
$on = "user"; $on = "user";
} }
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(), $filter['params']); $params = array_merge(array(), $filter['params']);
$this->req = " $this->req = "
@@ -436,14 +436,14 @@ class module_report_activity extends module_report
GROUP BY tt.usrid GROUP BY tt.usrid
ORDER BY connexion DESC "; ORDER BY connexion DESC ";
$stmt = $s->getConnBas()->prepare($this->req); $stmt = $sqlBuilder->getConnBas()->prepare($this->req);
$stmt->execute($params); $stmt->execute($params);
$s->setTotalrows($stmt->rowCount()); $sqlBuilder->setTotalrows($stmt->rowCount());
$stmt->closeCursor(); $stmt->closeCursor();
$this->enable_limit ? $this->req .= "LIMIT 0," . $this->nb_record : ""; $this->enable_limit ? $this->req .= "LIMIT 0," . $this->nb_record : "";
$stmt = $s->getConnBas()->prepare($this->req); $stmt = $sqlBuilder->getConnBas()->prepare($this->req);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -506,8 +506,8 @@ class module_report_activity extends module_report
//set title //set title
$this->title = _('report:: Detail des telechargements'); $this->title = _('report:: Detail des telechargements');
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters()->getReportFilter(); $filter = $sqlBuilder->getFilters()->getReportFilter();
$params = array_merge(array(), $filter['params']); $params = array_merge(array(), $filter['params']);
$sql = " $sql = "
@@ -526,7 +526,7 @@ class module_report_activity extends module_report
GROUP BY " . $on . ", usrid GROUP BY " . $on . ", usrid
ORDER BY nb DESC;"; ORDER BY nb DESC;";
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -711,15 +711,15 @@ class module_report_activity extends module_report
$params = array_merge($params, $datefilter['params'], $collfilter['params']); $params = array_merge($params, $datefilter['params'], $collfilter['params']);
$sql = " $sql = "
SELECT tt.id, HOUR(tt.heures) AS heures SELECT tt.id, HOUR(tt.heures) AS heures
FROM ( FROM (
SELECT DISTINCT(log_date.id), log_date.date AS heures SELECT DISTINCT(log_date.id), log_date.date AS heures
FROM log AS log_date FORCE INDEX (date_site) FROM log AS log_date FORCE INDEX (date_site)
INNER JOIN log_colls FORCE INDEX (couple) ON (log_date.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log_date.id = log_colls.log_id)
WHERE " . $datefilter['sql'] . " WHERE " . $datefilter['sql'] . "
AND " . $collfilter['sql'] . " AND " . $collfilter['sql'] . "
AND log_date.site = :site_id AND log_date.site = :site_id
) AS tt"; ) AS tt";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
@@ -727,7 +727,7 @@ class module_report_activity extends module_report
$total = $stmt->rowCount(); $total = $stmt->rowCount();
$stmt->closeCursor(); $stmt->closeCursor();
for ($i = 0; $i < 24; $i ++ ){ for ($i = 0; $i < 24; $i ++) {
$res[$i] = 0; $res[$i] = 0;
} }
@@ -799,18 +799,18 @@ class module_report_activity extends module_report
$params = array_merge($params, $datefilter['params'], $collfilter['params']); $params = array_merge($params, $datefilter['params'], $collfilter['params']);
$sql = " $sql = "
SELECT tt.usrid, tt.user, sum(1) AS nb SELECT tt.usrid, tt.user, sum(1) AS nb
FROM ( FROM (
SELECT DISTINCT(log_date.id), log_date.usrid, log_date.user SELECT DISTINCT(log_date.id), log_date.usrid, log_date.user
FROM (`log_search`) FROM (`log_search`)
INNER JOIN log AS log_date FORCE INDEX (date_site) ON (log_search.log_id = log_date.id) INNER JOIN log AS log_date FORCE INDEX (date_site) ON (log_search.log_id = log_date.id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log_date.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log_date.id = log_colls.log_id)
WHERE " . $datefilter['sql'] . " WHERE " . $datefilter['sql'] . "
AND log_date.site = :site_id AND log_date.site = :site_id
AND (" . $collfilter['sql'] . ") AND (" . $collfilter['sql'] . ")
) AS tt ) AS tt
GROUP BY tt.usrid GROUP BY tt.usrid
ORDER BY nb DESC"; ORDER BY nb DESC";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
$stmt->execute($params); $stmt->execute($params);

View File

@@ -53,20 +53,20 @@ class module_report_add extends module_report
*/ */
protected function buildReq($groupby = false, $on = false) protected function buildReq($groupby = false, $on = false)
{ {
$s = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on) $sqlBuilder = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on)
->setAction('add')->buildSql(); ->setAction('add')->buildSql();
$this->req = $s->getSql(); $this->req = $sqlBuilder->getSql();
$this->params = $s->getParams(); $this->params = $sqlBuilder->getParams();
$this->total = $s->getTotalRows(); $this->total = $sqlBuilder->getTotalRows();
} }
public function colFilter($field, $on = false) public function colFilter($field, $on = false)
{ {
$s = $this->sqlBuilder('action')->setAction('add'); $sqlBuilder = $this->sqlBuilder('action')->setAction('add');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();

View File

@@ -14,17 +14,17 @@ use Alchemy\Phrasea\Application;
class module_report_connexion extends module_report class module_report_connexion extends module_report
{ {
protected $cor_query = array( protected $cor_query = array(
'user' => 'log.user' 'user' => 'log.user',
, 'usrid' => 'log.usrid' 'usrid' => 'log.usrid',
, 'ddate' => 'log.date' 'ddate' => 'log.date',
, 'societe' => 'log.societe' 'societe' => 'log.societe',
, 'pays' => 'log.pays' 'pays' => 'log.pays',
, 'activite' => 'log.activite' 'activite' => 'log.activite',
, 'fonction' => 'log.fonction' 'fonction' => 'log.fonction',
, 'site' => 'log.site' 'site' => 'log.site',
, 'sit_session' => 'log.sit_session' 'sit_session' => 'log.sit_session',
, 'appli' => 'log.appli' 'appli' => 'log.appli',
, 'ip' => 'log.ip' 'ip' => 'log.ip'
); );
/** /**
@@ -65,12 +65,12 @@ class module_report_connexion extends module_report
public function colFilter($field) public function colFilter($field)
{ {
$ret = array(); $ret = array();
$s = $this->sqlBuilder('connexion'); $sqlBuilder = $this->sqlBuilder('connexion');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -100,8 +100,10 @@ class module_report_connexion extends module_report
$i = 0; $i = 0;
foreach ($rs as $row) { foreach ($rs as $row) {
if ($this->enable_limit && ($i > $this->nb_record)) if ($this->enable_limit && ($i > $this->nb_record)) {
break; break;
}
foreach ($this->champ as $key => $value) { foreach ($this->champ as $key => $value) {
if ( ! isset($row[$value])) { if ( ! isset($row[$value])) {
$this->result[$i][$value] = '<i>' . _('report:: non-renseigne') . '</i>'; $this->result[$i][$value] = '<i>' . _('report:: non-renseigne') . '</i>';
@@ -138,8 +140,12 @@ class module_report_connexion extends module_report
$datefilter = module_report_sqlfilter::constructDateFilter($dmin, $dmax); $datefilter = module_report_sqlfilter::constructDateFilter($dmin, $dmax);
$collfilter = module_report_sqlfilter::constructCollectionFilter($app, $list_coll_id); $collfilter = module_report_sqlfilter::constructCollectionFilter($app, $list_coll_id);
$params = array(':site_id' => $app['phraseanet.registry']->get('GV_sit')); $params = array_merge(array(
$params = array_merge($params, $datefilter['params'], $collfilter['params']); ':site_id' => $app['phraseanet.registry']->get('GV_sit')
),
$datefilter['params'],
$collfilter['params']
);
$finalfilter = $datefilter['sql'] . ' AND '; $finalfilter = $datefilter['sql'] . ' AND ';
$finalfilter .= $collfilter['sql'] . ' AND '; $finalfilter .= $collfilter['sql'] . ' AND ';

View File

@@ -66,12 +66,12 @@ class module_report_download extends module_report
public function colFilter($field, $on = false) public function colFilter($field, $on = false)
{ {
$ret = array(); $ret = array();
$s = $this->sqlBuilder('download'); $sqlBuilder = $this->sqlBuilder('download');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();

View File

@@ -53,21 +53,21 @@ class module_report_edit extends module_report
*/ */
protected function buildReq($groupby = false, $on = false) protected function buildReq($groupby = false, $on = false)
{ {
$s = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on) $sqlBuilder = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on)
->setAction('edit')->buildSql(); ->setAction('edit')->buildSql();
$this->req = $s->getSql(); $this->req = $sqlBuilder->getSql();
$this->params = $s->getParams(); $this->params = $sqlBuilder->getParams();
$this->total = $s->getTotalRows(); $this->total = $sqlBuilder->getTotalRows();
} }
public function colFilter($field, $on = false) public function colFilter($field, $on = false)
{ {
$s = $this->sqlBuilder('action')->setAction('edit'); $sqlBuilder = $this->sqlBuilder('action')->setAction('edit');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();

View File

@@ -53,8 +53,8 @@ class module_report_nav extends module_report
private function setTotalPourcent() private function setTotalPourcent()
{ {
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$report_filter = $filter->getReportFilter(); $report_filter = $filter->getReportFilter();
$params = array_merge(array(), $report_filter['params']); $params = array_merge(array(), $report_filter['params']);
@@ -67,7 +67,7 @@ class module_report_nav extends module_report
WHERE ' . $report_filter['sql'] . ' AND nav != "" WHERE ' . $report_filter['sql'] . ' AND nav != ""
) AS tt'; ) AS tt';
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$row = $stmt->fetch(PDO::FETCH_ASSOC); $row = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -98,8 +98,8 @@ class module_report_nav extends module_report
{ {
$i = 0; $i = 0;
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$this->title = _('report:: navigateur'); $this->title = _('report:: navigateur');
$this->total_pourcent = $this->setTotalPourcent(); $this->total_pourcent = $this->setTotalPourcent();
@@ -112,19 +112,19 @@ class module_report_nav extends module_report
$params = array_merge(array(), $report_filter['params']); $params = array_merge(array(), $report_filter['params']);
$sql = ' $sql = '
SELECT tt.nav, SUM(1) AS nb, ROUND((SUM(1) / ' . $this->total_pourcent . ' * 100), 1) AS pourcent SELECT tt.nav, SUM(1) AS nb, ROUND((SUM(1) / ' . $this->total_pourcent . ' * 100), 1) AS pourcent
FROM ( FROM (
SELECT DISTINCT(log.id), nav SELECT DISTINCT(log.id), nav
FROM log FORCE INDEX (date_site, nav) FROM log FORCE INDEX (date_site, nav)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE ' . $report_filter['sql'] . ' AND nav != "" WHERE ' . $report_filter['sql'] . ' AND nav != ""
) AS tt ) AS tt
GROUP BY tt.nav GROUP BY tt.nav
ORDER BY nb DESC'; ORDER BY nb DESC';
$this->initialize(); $this->initialize();
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -156,8 +156,8 @@ class module_report_nav extends module_report
*/ */
public function buildTabOs($tab = false) public function buildTabOs($tab = false)
{ {
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$i = 0; $i = 0;
$this->title = _('report:: Plateforme'); $this->title = _('report:: Plateforme');
@@ -183,7 +183,7 @@ class module_report_nav extends module_report
$this->initialize(); $this->initialize();
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -214,8 +214,8 @@ class module_report_nav extends module_report
*/ */
public function buildTabRes($tab = false) public function buildTabRes($tab = false)
{ {
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$this->title = _('report:: resolution'); $this->title = _('report:: resolution');
$i = 0; $i = 0;
@@ -229,20 +229,20 @@ class module_report_nav extends module_report
$params = array_merge(array(), $report_filter['params']); $params = array_merge(array(), $report_filter['params']);
$sql = ' $sql = '
SELECT tt.res, COUNT(res) AS nb, ROUND((COUNT(res)/ ' . $this->total_pourcent . '*100),1) AS pourcent SELECT tt.res, COUNT(res) AS nb, ROUND((COUNT(res)/ ' . $this->total_pourcent . '*100),1) AS pourcent
FROM ( FROM (
SELECT DISTINCT(log.id), res SELECT DISTINCT(log.id), res
FROM log FORCE INDEX (date_site, res) FROM log FORCE INDEX (date_site, res)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE '. $report_filter['sql'] . ' AND res != "" WHERE '. $report_filter['sql'] . ' AND res != ""
) AS tt ) AS tt
GROUP BY tt.res GROUP BY tt.res
ORDER BY nb DESC ORDER BY nb DESC
LIMIT 0, 10'; LIMIT 0, 10';
$this->initialize(); $this->initialize();
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -274,8 +274,8 @@ class module_report_nav extends module_report
*/ */
public function buildTabCombo($tab = false) public function buildTabCombo($tab = false)
{ {
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$this->title = _('report:: navigateurs et plateforme'); $this->title = _('report:: navigateurs et plateforme');
$i = 0; $i = 0;
@@ -302,7 +302,7 @@ class module_report_nav extends module_report
$this->initialize(); $this->initialize();
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -335,8 +335,8 @@ class module_report_nav extends module_report
public function buildTabModule($tab = false) public function buildTabModule($tab = false)
{ {
$this->initialize(); $this->initialize();
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$this->title = _('report:: modules'); $this->title = _('report:: modules');
$x = array(); $x = array();
$tab_appli = array(); $tab_appli = array();
@@ -362,7 +362,7 @@ class module_report_nav extends module_report
$this->initialize(); $this->initialize();
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
@@ -440,23 +440,23 @@ class module_report_nav extends module_report
} }
$sql = " $sql = "
SELECT SELECT
usr_login as identifiant, usr_login as identifiant,
usr_nom as nom, usr_nom as nom,
usr_mail as mail, usr_mail as mail,
adresse, tel adresse, tel
FROM usr FROM usr
WHERE $on = :value AND (" . $filter_id_apbox . ")"; WHERE $on = :value AND (" . $filter_id_apbox . ")";
} else { } else {
$sql = ' $sql = '
SELECT SELECT
usr_login AS identifiant, usr_login AS identifiant,
usr_nom AS nom, usr_nom AS nom,
usr_mail AS mail, usr_mail AS mail,
adresse, adresse,
tel tel
FROM usr FROM usr
WHERE (usr_id = :value)'; WHERE (usr_id = :value)';
} }
$params2 = array(':value' => $val); $params2 = array(':value' => $val);
@@ -546,22 +546,22 @@ class module_report_nav extends module_report
$conn = connection::getPDOConnection($this->app, $this->sbas_id); $conn = connection::getPDOConnection($this->app, $this->sbas_id);
$this->title = sprintf( $this->title = sprintf(
_('report:: Information sur le navigateur %s'), $navigator); _('report:: Information sur le navigateur %s'), $navigator);
$s = new module_report_sql($this->app, $this); $sqlBuilder = new module_report_sql($this->app, $this);
$filter = $s->getFilters(); $filter = $sqlBuilder->getFilters();
$params = array(':browser' => $navigator); $params = array(':browser' => $navigator);
$report_filter = $filter->getReportFilter(); $report_filter = $filter->getReportFilter();
$sql = " $sql = "
SELECT DISTINCT(version), COUNT(version) as nb SELECT DISTINCT(version), COUNT(version) as nb
FROM ( FROM (
SELECT DISTINCT (log.id) SELECT DISTINCT (log.id)
FROM log FORCE INDEX (date_site, nav, version) FROM log FORCE INDEX (date_site, nav, version)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE ". $report_filter['sql'] . " WHERE ". $report_filter['sql'] . "
WHERE nav = :browser WHERE nav = :browser
) AS tt ) AS tt
GROUP BY tt.version GROUP BY tt.version
ORDER BY nb DESC"; ORDER BY nb DESC";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
$stmt->execute($params); $stmt->execute($params);

View File

@@ -53,21 +53,21 @@ class module_report_push extends module_report
*/ */
protected function buildReq($groupby = false, $on = false) protected function buildReq($groupby = false, $on = false)
{ {
$s = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on) $sqlBuilder = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on)
->setAction('push')->buildSql(); ->setAction('push')->buildSql();
$this->req = $s->getSql(); $this->req = $sqlBuilder->getSql();
$this->params = $s->getParams(); $this->params = $sqlBuilder->getParams();
$this->total = $s->getTotalRows(); $this->total = $sqlBuilder->getTotalRows();
} }
public function colFilter($field, $on = false) public function colFilter($field, $on = false)
{ {
$s = $this->sqlBuilder('action')->setAction('push'); $sqlBuilder = $this->sqlBuilder('action')->setAction('push');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();

View File

@@ -14,18 +14,18 @@ use Alchemy\Phrasea\Application;
class module_report_question extends module_report class module_report_question extends module_report
{ {
protected $cor_query = array( protected $cor_query = array(
'user' => 'log.user' 'user' => 'log.user',
, 'usrid' => 'log.usrid' 'usrid' => 'log.usrid',
, 'ddate' => 'log_search.date' 'ddate' => 'log_search.date',
, 'date' => 'log_search.date' 'date' => 'log_search.date',
, 'societe' => 'log.societe' 'societe' => 'log.societe',
, 'pays' => 'log.pays' 'pays' => 'log.pays',
, 'activite' => 'log.activite' 'activite' => 'log.activite',
, 'fonction' => 'log.fonction' 'fonction' => 'log.fonction',
, 'site' => 'log.site' 'site' => 'log.site',
, 'sit_session' => 'log.sit_session' 'sit_session' => 'log.sit_session',
, 'appli' => 'log.appli' 'appli' => 'log.appli',
, 'ip' => 'log.ip' 'ip' => 'log.ip'
); );
/** /**
@@ -59,11 +59,11 @@ class module_report_question extends module_report
public function colFilter($field) public function colFilter($field)
{ {
$ret = array(); $ret = array();
$s = $this->sqlBuilder('question'); $sqlBuilder = $this->sqlBuilder('question');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();

View File

@@ -9,7 +9,7 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
interface module_report_sqlReportinterface interface module_report_sqlReportInterface
{ {
public function buildSql(); public function buildSql();

View File

@@ -43,15 +43,15 @@ class module_report_sqlaction extends module_report_sql implements module_report
if ($this->groupby == false) { if ($this->groupby == false) {
$this->sql = " $this->sql = "
SELECT tt.usrid, tt.user, tt.final AS getter, tt.record_id, tt.date, tt.mime, tt.file SELECT tt.usrid, tt.user, tt.final AS getter, tt.record_id, tt.date, tt.mime, tt.file
FROM ( FROM (
SELECT DISTINCT(log.id), log.usrid, log.user, d.final, d.record_id, d.date, record.mime, record.originalname as file SELECT DISTINCT(log.id), log.usrid, log.user, d.final, d.record_id, d.date, record.mime, record.originalname as file
FROM (log_docs AS d) FROM (log_docs AS d)
INNER JOIN log FORCE INDEX (date_site) ON (log.id = d.log_id) INNER JOIN log FORCE INDEX (date_site) ON (log.id = d.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
INNER JOIN record ON (record.record_id = d.record_id) INNER JOIN record ON (record.record_id = d.record_id)
WHERE (" . $filter['sql'] . ") AND (d.action = :action) WHERE (" . $filter['sql'] . ") AND (d.action = :action)
) AS tt"; ) AS tt";
$stmt = $this->getConnBas()->prepare($this->sql); $stmt = $this->getConnBas()->prepare($this->sql);
$stmt->execute($this->params); $stmt->execute($this->params);
@@ -62,19 +62,19 @@ class module_report_sqlaction extends module_report_sql implements module_report
$this->sql .= $this->filter->getLimitFilter() ? : ''; $this->sql .= $this->filter->getLimitFilter() ? : '';
} else { } else {
$this->sql = " $this->sql = "
SELECT " . $this->groupby . ", SUM(1) AS nombre SELECT " . $this->groupby . ", SUM(1) AS nombre
FROM ( FROM (
SELECT DISTINCT(log.id), TRIM(" . $this->getTransQuery($this->groupby) . ") AS " . $this->groupby . " , log.usrid , d.final, d.record_id, d.date SELECT DISTINCT(log.id), TRIM(" . $this->getTransQuery($this->groupby) . ") AS " . $this->groupby . " , log.usrid , d.final, d.record_id, d.date
FROM (log_docs as d) FROM (log_docs as d)
INNER JOIN log FORCE INDEX (date_site) ON (log.id = d.log_id) INNER JOIN log FORCE INDEX (date_site) ON (log.id = d.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
INNER JOIN record ON (record.record_id = d.record_id) INNER JOIN record ON (record.record_id = d.record_id)
WHERE (" . $filter['sql'] . ") AND (d.action = :action) WHERE (" . $filter['sql'] . ") AND (d.action = :action)
) AS tt ) AS tt
LEFT JOIN subdef AS s ON (s.record_id=tt.record_id) LEFT JOIN subdef AS s ON (s.record_id=tt.record_id)
WHERE s.name='document' WHERE s.name='document'
GROUP BY " . $this->groupby . " GROUP BY " . $this->groupby . "
ORDER BY nombre"; ORDER BY nombre";
$stmt = $this->getConnBas()->prepare($this->sql); $stmt = $this->getConnBas()->prepare($this->sql);
$stmt->execute($this->params); $stmt->execute($this->params);

View File

@@ -55,15 +55,15 @@ class module_report_sqlconnexion extends module_report_sql implements module_rep
} }
} else { } else {
$this->sql = " $this->sql = "
SELECT " . $this->groupby . ", SUM(1) as nb SELECT " . $this->groupby . ", SUM(1) as nb
FROM ( FROM (
SELECT DISTINCT(log.id), TRIM(" . $this->getTransQuery($this->groupby) . ") AS " . $this->groupby . " SELECT DISTINCT(log.id), TRIM(" . $this->getTransQuery($this->groupby) . ") AS " . $this->groupby . "
FROM log FORCE INDEX (date_site) FROM log FORCE INDEX (date_site)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (" . $filter['sql'] .") WHERE (" . $filter['sql'] .")
) AS tt ) AS tt
GROUP BY " . $this->groupby. " GROUP BY " . $this->groupby. "
ORDER BY nb DESC"; ORDER BY nb DESC";
$stmt = $this->connbas->prepare($this->sql); $stmt = $this->connbas->prepare($this->sql);
$stmt->execute($this->params); $stmt->execute($this->params);
@@ -80,13 +80,13 @@ class module_report_sqlconnexion extends module_report_sql implements module_rep
$this->params = array_merge(array(), $filter['params']); $this->params = array_merge(array(), $filter['params']);
$this->sql = ' $this->sql = '
SELECT DISTINCT(val) SELECT DISTINCT(val)
FROM ( FROM (
SELECT DISTINCT(log.id), ' . $this->getTransQuery($field) . ' AS val SELECT DISTINCT(log.id), ' . $this->getTransQuery($field) . ' AS val
FROM log FORCE INDEX (date_site) FROM log FORCE INDEX (date_site)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (' . $filter['sql'] . ') WHERE (' . $filter['sql'] . ')
) AS tt ORDER BY val ASC'; ) AS tt ORDER BY val ASC';
return array('sql' => $this->sql, 'params' => $this->params); return array('sql' => $this->sql, 'params' => $this->params);
} }

View File

@@ -30,12 +30,12 @@ class module_report_sqldownload extends module_report_sql implements module_repo
if ($this->groupby == false) { if ($this->groupby == false) {
$this->sql = " $this->sql = "
SELECT DISTINCT(log.id), log.user, log.societe, log.pays, log.activite, SELECT DISTINCT(log.id), log.user, log.societe, log.pays, log.activite,
log.fonction, log.usrid, log_docs.date AS ddate, log_docs.record_id, log_docs.final, log_docs.comment log.fonction, log.usrid, log_docs.date AS ddate, log_docs.record_id, log_docs.final, log_docs.comment
FROM log_docs FROM log_docs
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_docs.log_id) INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_docs.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (" .$filter['sql'] . ") AND (log_docs.action = 'download' OR log_docs.action = 'mail')"; WHERE (" .$filter['sql'] . ") AND (log_docs.action = 'download' OR log_docs.action = 'mail')";
if ($this->restrict) { if ($this->restrict) {
$this->sql .= ' AND (log_docs.final = "document" OR log_docs.final = "preview")'; $this->sql .= ' AND (log_docs.final = "document" OR log_docs.final = "preview")';
@@ -46,34 +46,34 @@ class module_report_sqldownload extends module_report_sql implements module_repo
if ($name == 'record_id' && $this->on == 'DOC') { if ($name == 'record_id' && $this->on == 'DOC') {
$this->sql = ' $this->sql = '
SELECT ' . $name . ', SUM(1) AS telechargement, tt.comment, tt.size, tt.file, tt.mime, tt.final SELECT ' . $name . ', SUM(1) AS telechargement, tt.comment, tt.size, tt.file, tt.mime, tt.final
FROM ( FROM (
SELECT DISTINCT(log.id), TRIM( ' . $field . ' ) AS ' . $name . ', log_docs.comment, subdef.size, subdef.file, subdef.mime, log_docs.final SELECT DISTINCT(log.id), TRIM( ' . $field . ' ) AS ' . $name . ', log_docs.comment, subdef.size, subdef.file, subdef.mime, log_docs.final
FROM log FORCE INDEX (date_site) FROM log FORCE INDEX (date_site)
INNER JOIN log_docs ON (log.id = log_docs.log_id) INNER JOIN log_docs ON (log.id = log_docs.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
INNER JOIN record ON (log_docs.record_id = record.record_id) INNER JOIN record ON (log_docs.record_id = record.record_id)
INNER JOIN subdef ON (log_docs.record_id = subdef.record_id)'; INNER JOIN subdef ON (log_docs.record_id = subdef.record_id)';
} elseif ($this->on == 'DOC') { } elseif ($this->on == 'DOC') {
$this->sql = ' $this->sql = '
SELECT ' . $name . ', SUM(1) AS telechargement SELECT ' . $name . ', SUM(1) AS telechargement
FROM ( FROM (
SELECT DISTINCT(log.id), TRIM(' . $field . ') AS ' . $name . ' SELECT DISTINCT(log.id), TRIM(' . $field . ') AS ' . $name . '
FROM log FORCE INDEX (date_site) FROM log FORCE INDEX (date_site)
INNER JOIN log_docs ON (log.id = log_docs.log_id) INNER JOIN log_docs ON (log.id = log_docs.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
INNER JOIN record ON (log_docs.record_id = record.record_id) INNER JOIN record ON (log_docs.record_id = record.record_id)
INNER JOIN subdef ON ( log_docs.record_id = subdef.record_id)'; INNER JOIN subdef ON ( log_docs.record_id = subdef.record_id)';
} else { } else {
$this->sql = ' $this->sql = '
SELECT ' . $name . ', SUM(1) AS nombre SELECT ' . $name . ', SUM(1) AS nombre
FROM ( FROM (
SELECT DISTINCT(log.id), TRIM( ' . $this->getTransQuery($this->groupby) . ') AS ' . $name . ' SELECT DISTINCT(log.id), TRIM( ' . $this->getTransQuery($this->groupby) . ') AS ' . $name . '
FROM log FORCE INDEX (date_site) FROM log FORCE INDEX (date_site)
INNER JOIN log_docs ON (log.id = log_docs.log_id) INNER JOIN log_docs ON (log.id = log_docs.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
INNER JOIN record ON (log_docs.record_id = record.record_id) INNER JOIN record ON (log_docs.record_id = record.record_id)
INNER JOIN subdef ON (record.record_id = subdef.record_id)'; INNER JOIN subdef ON (record.record_id = subdef.record_id)';
} }
$this->sql .= ' WHERE (subdef.name = log_docs.final) AND ' . $filter['sql'] . ' '; $this->sql .= ' WHERE (subdef.name = log_docs.final) AND ' . $filter['sql'] . ' ';

View File

@@ -43,7 +43,7 @@ class module_report_sqlfilter
$coll_filter = array(); $coll_filter = array();
foreach (array_filter(explode(',', $list_coll_id)) as $val) { foreach (array_filter(explode(',', $list_coll_id)) as $val) {
$val = \phrasea::collFromBas($app, $val); $val = \phrasea::collFromBas($app, $val);
if(!!$val) { if (!!$val) {
$coll_filter[] = 'log_colls.coll_id = ' . $val; $coll_filter[] = 'log_colls.coll_id = ' . $val;
} }
} }
@@ -192,7 +192,7 @@ class module_report_sqlfilter
if (count($tab) > 0) { if (count($tab) > 0) {
foreach ($tab as $val) { foreach ($tab as $val) {
$val = \phrasea::collFromBas($this->app, $val); $val = \phrasea::collFromBas($this->app, $val);
if(!!$val) { if (!!$val) {
$coll_filter[] = 'log_colls.coll_id = ' . $val; $coll_filter[] = 'log_colls.coll_id = ' . $val;
} }
} }

View File

@@ -26,10 +26,10 @@ class module_report_sqlquestion extends module_report_sql implements module_repo
if ($this->groupby == false) { if ($this->groupby == false) {
$this->sql =" $this->sql ="
SELECT DISTINCT(log.id), log_search.date ddate, log_search.search, log.usrid, log.user, log.pays, log.societe, log.activite, log.fonction SELECT DISTINCT(log.id), log_search.date ddate, log_search.search, log.usrid, log.user, log.pays, log.societe, log.activite, log.fonction
FROM log_search FROM log_search
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id) INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) WHERE (" . $filter['sql'] .")"; INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) WHERE (" . $filter['sql'] .")";
$stmt = $this->connbas->prepare($this->sql); $stmt = $this->connbas->prepare($this->sql);
$stmt->execute($this->params); $stmt->execute($this->params);
@@ -40,16 +40,16 @@ class module_report_sqlquestion extends module_report_sql implements module_repo
$this->sql .= $this->filter->getLimitFilter() ? : ''; $this->sql .= $this->filter->getLimitFilter() ? : '';
} else { } else {
$this->sql = " $this->sql = "
SELECT " . $this->groupby . ", SUM(1) AS nb SELECT " . $this->groupby . ", SUM(1) AS nb
FROM ( FROM (
SELECT DISTINCT(log.id), TRIM(" . $this->getTransQuery($this->groupby) . ") AS " . $this->groupby . " SELECT DISTINCT(log.id), TRIM(" . $this->getTransQuery($this->groupby) . ") AS " . $this->groupby . "
FROM (`log_search`) FROM (`log_search`)
INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id) INNER JOIN log FORCE INDEX (date_site) ON (log.id = log_search.log_id)
INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id) INNER JOIN log_colls FORCE INDEX (couple) ON (log.id = log_colls.log_id)
WHERE (" . $filter['sql'] .") WHERE (" . $filter['sql'] .")
) AS tt ) AS tt
GROUP BY " . $this->groupby ." GROUP BY " . $this->groupby ."
ORDER BY nb DESC"; ORDER BY nb DESC";
$stmt = $this->connbas->prepare($this->sql); $stmt = $this->connbas->prepare($this->sql);
$stmt->execute($this->params); $stmt->execute($this->params);

View File

@@ -53,21 +53,21 @@ class module_report_validate extends module_report
*/ */
protected function buildReq($groupby = false, $on = false) protected function buildReq($groupby = false, $on = false)
{ {
$s = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on) $sqlBuilder = $this->sqlBuilder('action')->setGroupBy($groupby)->setOn($on)
->setAction('validate')->buildSql(); ->setAction('validate')->buildSql();
$this->req = $s->getSql(); $this->req = $sqlBuilder->getSql();
$this->params = $s->getParams(); $this->params = $sqlBuilder->getParams();
$this->total = $s->getTotalRows(); $this->total = $sqlBuilder->getTotalRows();
} }
public function colFilter($field, $on = false) public function colFilter($field, $on = false)
{ {
$s = $this->sqlBuilder('action')->setAction('validate'); $sqlBuilder = $this->sqlBuilder('action')->setAction('validate');
$var = $s->sqlDistinctValByField($field); $var = $sqlBuilder->sqlDistinctValByField($field);
$sql = $var['sql']; $sql = $var['sql'];
$params = $var['params']; $params = $var['params'];
$stmt = $s->getConnBas()->prepare($sql); $stmt = $sqlBuilder->getConnBas()->prepare($sql);
$stmt->execute($params); $stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();