|
|
@@ -26,6 +26,7 @@ class Route_UrlAction_BiAuditGenerate extends RouteBase {
|
|
|
private $powiazanie = null;
|
|
|
private $SOURCE = null;
|
|
|
private $REFERER;
|
|
|
+ private $POWIAZANIA_ID = null;
|
|
|
|
|
|
public function handleAuth() {
|
|
|
if (!User::logged()) {
|
|
|
@@ -123,25 +124,25 @@ class Route_UrlAction_BiAuditGenerate extends RouteBase {
|
|
|
</table>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
+<!-- <div class="form-group">
|
|
|
<label class="col-sm-2 control-label">
|
|
|
Odśwież cache
|
|
|
</label>
|
|
|
<div class="col-sm-2">
|
|
|
<select name="reloadCache" class="form-control">
|
|
|
<option value="No" selected>Nie</option>
|
|
|
-<!-- <option value="Part">Częściowe</option>-->
|
|
|
+<!-#- <option value="Part">Częściowe</option>-#->
|
|
|
<option value="Full">Pełne</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-group">
|
|
|
<div class="col-sm-offset-2 col-sm-10">
|
|
|
-<!-- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>-->
|
|
|
+<!-#- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>-#->
|
|
|
Pełne odświeżenie wymagane w przypadku edycji/usunięcia istniejących rekordów w tabelach pracowników/kontrahentów.<br/>
|
|
|
Uwaga! Jeżeli aktywne są inne zadania, te zadanie zostanie wstrzymane do momentu ich ukończenia.
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div>-->
|
|
|
<div class="form-group">
|
|
|
<div class="col-sm-12">
|
|
|
<div class="containter" style="text-align:center">
|
|
|
@@ -156,252 +157,252 @@ class Route_UrlAction_BiAuditGenerate extends RouteBase {
|
|
|
<script language="JavaScript">
|
|
|
<!--
|
|
|
function toggleAll(source) {
|
|
|
- checkboxes = document.getElementsByName('prID[]');
|
|
|
- for(var i=0, n=checkboxes.length;i<n;i++) checkboxes[i].checked = source.checked;
|
|
|
+checkboxes = document.getElementsByName('prID[]');
|
|
|
+for(var i=0, n=checkboxes.length;i<n;i++) checkboxes[i].checked = source.checked;
|
|
|
}
|
|
|
function toggle(source) {
|
|
|
- checkboxes = document.getElementsByName('prID[]');
|
|
|
- all = true;
|
|
|
- for(var i=0, n=checkboxes.length;i<n;i++) if(checkboxes[i].checked == false) all = false;
|
|
|
- source.form['checkAll'].checked = all;
|
|
|
+checkboxes = document.getElementsByName('prID[]');
|
|
|
+all = true;
|
|
|
+for(var i=0, n=checkboxes.length;i<n;i++) if(checkboxes[i].checked == false) all = false;
|
|
|
+source.form['checkAll'].checked = all;
|
|
|
}
|
|
|
-->
|
|
|
</script>
|
|
|
<?php
|
|
|
- }
|
|
|
+}
|
|
|
|
|
|
- private function initializePowiazaniaSave() {
|
|
|
- $prID = V::get('prID', array(), $_POST);
|
|
|
- if (!$prID) throw new Exception("Nie wybrano żadnego pracownika!");
|
|
|
-
|
|
|
- $acl = Core_AclHelper::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI');
|
|
|
- $queryFeatures = $acl->buildQuery(['limit' => 0, 'cols' => ['ID']]);
|
|
|
- $kontrahenci = $queryFeatures->getItems();
|
|
|
-
|
|
|
- $acl = Core_AclHelper::getAclByNamespace('default_db/BI_audit_KW_requested_person/BI_audit_KW_requested_person');
|
|
|
- $queryFeatures = $acl->buildQuery(['limit' => 0, 'cols' => ['ID']]);
|
|
|
- $requestedPersons = $queryFeatures->getItems();
|
|
|
-
|
|
|
- if (!($kontrahenci || $requestedPersons)) throw new Exception("Nie znaleziono żadnego obiektu końcowego");
|
|
|
-
|
|
|
- $sqlUpdate = ['FILE_STATUS' => 'TO_GENERATE'];
|
|
|
-
|
|
|
- $reloadCache = V::get('reloadCache', 'No', $_POST);
|
|
|
- $reloadCacheAvailable = ['Full', 'Part', 'No'];
|
|
|
- if (!in_array($reloadCache, $reloadCacheAvailable)) throw new Exception("Błąd formularza!");
|
|
|
- $sqlUpdate['BI_analiza_reloadCache'] = $reloadCache;
|
|
|
-
|
|
|
- $query = "select count(*) from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache in ('Full', 'Part')";
|
|
|
- $result = DB::getPDO()->fetchValue($query);
|
|
|
- if ($result) $sqlUpdate['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache (wymagane dla innego rekordu)';
|
|
|
- elseif ($reloadCache != 'No') $sqlUpdate['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache';
|
|
|
- else $sqlUpdate['FILE_STATUS_info'] = "Oczekuje na wygenerowanie powiązań";
|
|
|
-
|
|
|
- if ($this->powiazanie) { // wyzwolone z poziomu tabeli BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA - aktualizujemy istniejący rekord
|
|
|
- $powiazanieID = $this->powiazanie['ID'];
|
|
|
- } else { // wyzwolone z poziomu tabeli BI_audit_ENERGA_PRACOWNICY - dodajemy nowy rekord
|
|
|
- if (count($prID) != 1) throw new Exception("Błąd formularza!");
|
|
|
- if (!($lAppoitmentInfo = V::get('info', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
- if (!($BiAnalizaMinDepth = V::get('minDepth', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
- if (!($BiAnalizaMaxDepth = V::get('maxDepth', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
- if (!($BiAnalizaOnlyTargets = V::get('onlyTargets', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
- $query = "select * from BI_audit_ENERGA_PRACOWNICY where ID='{$prID[0]}'";
|
|
|
- $result = DB::getPDO()->fetchFirst($query);
|
|
|
- if (!$result) throw new Exception("Błąd formularza!");
|
|
|
- $sqlInsert = [
|
|
|
- 'L_APPOITMENT_INFO' => $lAppoitmentInfo,
|
|
|
- 'A_STATUS' => 'NORMAL',
|
|
|
- 'A_STATUS_INFO' => 'Dodane przez BiAuditGenerate z poziomu tabeli BI_audit_ENERGA_PRACOWNICY',
|
|
|
- 'A_ADM_COMPANY' => $result['A_ADM_COMPANY'],
|
|
|
- 'A_CLASSIFIED' => $result['A_CLASSIFIED'],
|
|
|
- 'FILE_STATUS' => 'NONE',
|
|
|
- 'FILE_STATUS_info' => 'Oczekuję na zdefiniowanie danych wejściowych',
|
|
|
- 'BI_analiza_reloadCache' => $sqlUpdate['BI_analiza_reloadCache'],
|
|
|
- 'BI_analiza_minDepth' => $BiAnalizaMinDepth,
|
|
|
- 'BI_analiza_maxDepth' => $BiAnalizaMaxDepth,
|
|
|
- 'BI_analiza_onlyTargets' => $BiAnalizaOnlyTargets,
|
|
|
- ];
|
|
|
- $powiazanieID = DB::getDB()->ADD_NEW_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', (object)$sqlInsert);
|
|
|
- if ($powiazanieID) SE_Layout::alert('success','Dodano rekord do wygenerowania powiązań');
|
|
|
- else throw new Exception("Wystąpił nieznany błąd @initializePowiazaniaSave");
|
|
|
- }
|
|
|
+private function initializePowiazaniaSave() {
|
|
|
+ $prID = V::get('prID', array(), $_POST);
|
|
|
+ if (!$prID) throw new Exception("Nie wybrano żadnego pracownika!");
|
|
|
+
|
|
|
+ $acl = Core_AclHelper::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI');
|
|
|
+ $queryFeatures = $acl->buildQuery(['limit' => 0, 'cols' => ['ID']]);
|
|
|
+ $kontrahenci = $queryFeatures->getItems();
|
|
|
+
|
|
|
+ $acl = Core_AclHelper::getAclByNamespace('default_db/BI_audit_KW_requested_person/BI_audit_KW_requested_person');
|
|
|
+ $queryFeatures = $acl->buildQuery(['limit' => 0, 'cols' => ['ID']]);
|
|
|
+ $requestedPersons = $queryFeatures->getItems();
|
|
|
+
|
|
|
+ if (!($kontrahenci || $requestedPersons)) throw new Exception("Nie znaleziono żadnego obiektu końcowego");
|
|
|
+
|
|
|
+ $sqlUpdate = ['FILE_STATUS' => 'TO_GENERATE'];
|
|
|
+
|
|
|
+ $reloadCache = V::get('reloadCache', 'No', $_POST);
|
|
|
+ $reloadCacheAvailable = ['Full', 'Part', 'No'];
|
|
|
+ if (!in_array($reloadCache, $reloadCacheAvailable)) throw new Exception("Błąd formularza!");
|
|
|
+ $sqlUpdate['BI_analiza_reloadCache'] = $reloadCache;
|
|
|
+
|
|
|
+ $query = "select count(*) from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache in ('Full', 'Part')";
|
|
|
+ $result = DB::getPDO()->fetchValue($query);
|
|
|
+ if ($result) $sqlUpdate['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache (wymagane dla innego rekordu)';
|
|
|
+ elseif ($reloadCache != 'No') $sqlUpdate['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache';
|
|
|
+ else $sqlUpdate['FILE_STATUS_info'] = "Oczekuje na wygenerowanie powiązań";
|
|
|
+
|
|
|
+ if ($this->powiazanie) { // wyzwolone z poziomu tabeli BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA - aktualizujemy istniejący rekord
|
|
|
+ $powiazanieID = $this->powiazanie['ID'];
|
|
|
+ } else { // wyzwolone z poziomu tabeli BI_audit_ENERGA_PRACOWNICY - dodajemy nowy rekord
|
|
|
+ if (count($prID) != 1) throw new Exception("Błąd formularza!");
|
|
|
+ if (!($lAppoitmentInfo = V::get('info', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
+ if (!($BiAnalizaMinDepth = V::get('minDepth', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
+ if (!($BiAnalizaMaxDepth = V::get('maxDepth', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
+ if (!($BiAnalizaOnlyTargets = V::get('onlyTargets', false, $_POST))) throw new Exception("Błąd formularza!");
|
|
|
+ $query = "select * from BI_audit_ENERGA_PRACOWNICY where ID='{$prID[0]}'";
|
|
|
+ $result = DB::getPDO()->fetchFirst($query);
|
|
|
+ if (!$result) throw new Exception("Błąd formularza!");
|
|
|
+ $sqlInsert = [
|
|
|
+ 'L_APPOITMENT_INFO' => $lAppoitmentInfo,
|
|
|
+ 'A_STATUS' => 'NORMAL',
|
|
|
+ 'A_STATUS_INFO' => 'Dodane przez BiAuditGenerate z poziomu tabeli BI_audit_ENERGA_PRACOWNICY',
|
|
|
+ 'A_ADM_COMPANY' => $result['A_ADM_COMPANY'],
|
|
|
+ 'A_CLASSIFIED' => $result['A_CLASSIFIED'],
|
|
|
+ 'FILE_STATUS' => 'NONE',
|
|
|
+ 'FILE_STATUS_info' => 'Oczekuję na zdefiniowanie danych wejściowych',
|
|
|
+ 'BI_analiza_reloadCache' => $sqlUpdate['BI_analiza_reloadCache'],
|
|
|
+ 'BI_analiza_minDepth' => $BiAnalizaMinDepth,
|
|
|
+ 'BI_analiza_maxDepth' => $BiAnalizaMaxDepth,
|
|
|
+ 'BI_analiza_onlyTargets' => $BiAnalizaOnlyTargets,
|
|
|
+ ];
|
|
|
+ $powiazanieID = DB::getDB()->ADD_NEW_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', (object)$sqlInsert);
|
|
|
+ if ($powiazanieID) SE_Layout::alert('success','Dodano rekord do wygenerowania powiązań');
|
|
|
+ else throw new Exception("Wystąpił nieznany błąd @initializePowiazaniaSave");
|
|
|
+ }
|
|
|
|
|
|
- $sqlUpdate['ID'] = $powiazanieID;
|
|
|
+ $sqlUpdate['ID'] = $powiazanieID;
|
|
|
|
|
|
- self::truncatePowiazaniaFromDB($powiazanieID);
|
|
|
+ self::truncatePowiazaniaFromDB($powiazanieID);
|
|
|
|
|
|
- $refPowiazaniaToPracownicy = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_ENERGA_PRACOWNICY', true);
|
|
|
- foreach ($prID as $v) DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $v]);
|
|
|
+ $refPowiazaniaToPracownicy = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_ENERGA_PRACOWNICY', true);
|
|
|
+ foreach ($prID as $v) DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $v]);
|
|
|
|
|
|
- $refPowiazaniaToKontrahenci = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_ENERGA_RUM_KONTRAHENCI', true);
|
|
|
- foreach ($kontrahenci as $kontrahent) DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $kontrahent['ID']]);
|
|
|
+ $refPowiazaniaToKontrahenci = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_ENERGA_RUM_KONTRAHENCI', true);
|
|
|
+ foreach ($kontrahenci as $kontrahent) DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $kontrahent['ID']]);
|
|
|
|
|
|
- $refPowiazaniaToKwRequestedPreson = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_KW_requested_person', true);
|
|
|
- foreach ($requestedPersons as $requestedPerson) DB::getPDO()->insert($refPowiazaniaToKwRequestedPreson, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $requestedPerson['ID']]);
|
|
|
+ $refPowiazaniaToKwRequestedPreson = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_KW_requested_person', true);
|
|
|
+ foreach ($requestedPersons as $requestedPerson) DB::getPDO()->insert($refPowiazaniaToKwRequestedPreson, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $requestedPerson['ID']]);
|
|
|
|
|
|
- $affected = DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlUpdate);
|
|
|
- if ($affected) {
|
|
|
- if ($this->powiazanie) {
|
|
|
- SE_Layout::alert('success','Oznaczono rekord do wygenerowania powiązań');
|
|
|
+ $affected = DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlUpdate);
|
|
|
+ if ($affected) {
|
|
|
+ if ($this->powiazanie) {
|
|
|
+ SE_Layout::alert('success','Oznaczono rekord do wygenerowania powiązań');
|
|
|
?>
|
|
|
<div class="container" style="text-align:center">
|
|
|
- <a href="<?=$this->REFERER?>" class="btn btn-primary">Powrót</a>
|
|
|
+<a href="<?=$this->REFERER?>" class="btn btn-primary">Powrót</a>
|
|
|
</div>
|
|
|
<?php
|
|
|
- }
|
|
|
- } else throw new Exception("Wystąpił nieznany błąd @initializePowiazaniaSave");
|
|
|
- }
|
|
|
-
|
|
|
- private function initializePowiazania() {
|
|
|
- switch (V::get('action', '', $_POST)) {
|
|
|
- case "initialize":
|
|
|
- $this->initializePowiazaniaSave();
|
|
|
- break;
|
|
|
- default:
|
|
|
- $this->initializePowiazaniaForm();
|
|
|
}
|
|
|
+ } else throw new Exception("Wystąpił nieznany błąd @initializePowiazaniaSave");
|
|
|
+}
|
|
|
+
|
|
|
+private function initializePowiazania() {
|
|
|
+ switch (V::get('action', '', $_POST)) {
|
|
|
+ case "initialize":
|
|
|
+ $this->initializePowiazaniaSave();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ $this->initializePowiazaniaForm();
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- private function showPowiazania() {
|
|
|
+private function showPowiazania() {
|
|
|
// echo "Statystyki znalezionych powiązań [TODO]";
|
|
|
- $dir = self::getDirectory('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $this->powiazanie['ID']);
|
|
|
- $url = self::getUrl('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $this->powiazanie['ID']);
|
|
|
-
|
|
|
- $reports = [
|
|
|
- 'pdf' => [
|
|
|
- 'files' => glob("{$dir}/relations*.pdf"),
|
|
|
- 'label' => 'Raporty PDF:<br/> ',
|
|
|
- 'button' => 'Pokaż raport PDF',
|
|
|
- 'regex' => "/^relations(-{$this->powiazanie['ID']})?_([[:digit:]]+)\.pdf$/",
|
|
|
- 'parentDir' => false,
|
|
|
- ],
|
|
|
- 'html' => [
|
|
|
- 'files' => glob("{$dir}/html*/relations-{$this->powiazanie['ID']}*.html"),
|
|
|
- 'label' => 'Raporty HTML<br/>do przeglądania:',
|
|
|
- 'button' => 'Pokaż raport HTML',
|
|
|
- 'regex' => "/^relations-({$this->powiazanie['ID']})_([[:digit:]]+)\.html$/",
|
|
|
- 'parentDir' => true,
|
|
|
- ],
|
|
|
- 'htmlZip' => [
|
|
|
- 'files' => glob("{$dir}/html*.zip"),
|
|
|
- 'label' => 'Raporty HTML<br/>do pobrania:',
|
|
|
- 'button' => 'Pobież raport HTML',
|
|
|
- 'regex' => "/^html(-{$this->powiazanie['ID']})?_([[:digit:]]+)\.zip$/",
|
|
|
- 'parentDir' => false,
|
|
|
- ],
|
|
|
- ];
|
|
|
+ $dir = self::getDirectory('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $this->powiazanie['ID']);
|
|
|
+ $url = self::getUrl('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $this->powiazanie['ID']);
|
|
|
+
|
|
|
+ $reports = [
|
|
|
+ 'pdf' => [
|
|
|
+ 'files' => glob("{$dir}/relations*.pdf"),
|
|
|
+ 'label' => 'Raporty PDF:<br/> ',
|
|
|
+ 'button' => 'Pokaż raport PDF',
|
|
|
+ 'regex' => "/^relations(-{$this->powiazanie['ID']})?_([[:digit:]]+)\.pdf$/",
|
|
|
+ 'parentDir' => false,
|
|
|
+ ],
|
|
|
+ 'html' => [
|
|
|
+ 'files' => glob("{$dir}/html*/relations-{$this->powiazanie['ID']}*.html"),
|
|
|
+ 'label' => 'Raporty HTML<br/>do przeglądania:',
|
|
|
+ 'button' => 'Pokaż raport HTML',
|
|
|
+ 'regex' => "/^relations-({$this->powiazanie['ID']})_([[:digit:]]+)\.html$/",
|
|
|
+ 'parentDir' => true,
|
|
|
+ ],
|
|
|
+ 'htmlZip' => [
|
|
|
+ 'files' => glob("{$dir}/html*.zip"),
|
|
|
+ 'label' => 'Raporty HTML<br/>do pobrania:',
|
|
|
+ 'button' => 'Pobież raport HTML',
|
|
|
+ 'regex' => "/^html(-{$this->powiazanie['ID']})?_([[:digit:]]+)\.zip$/",
|
|
|
+ 'parentDir' => false,
|
|
|
+ ],
|
|
|
+ ];
|
|
|
?>
|
|
|
<div class="container" style="margin-top:20px">
|
|
|
- <legend>
|
|
|
- Wygenerowany raport nr <?=$this->powiazanie['ID']?>
|
|
|
- </legend>
|
|
|
- <div class="form-group" style="text-align: center;">
|
|
|
+<legend>
|
|
|
+Wygenerowany raport nr <?=$this->powiazanie['ID']?>
|
|
|
+</legend>
|
|
|
+<div class="form-group" style="text-align: center;">
|
|
|
<?php
|
|
|
- array_walk($reports, function ($report) use ($url) {
|
|
|
- echo "<div class=\"col-sm-2\"><h4>{$report['label']}</h4>";
|
|
|
- $hrefs = array_filter(array_map(function ($path) use ($url, $report) {
|
|
|
- if (!is_file($path)) return false;
|
|
|
- $file = basename($path);
|
|
|
- if (preg_match($report['regex'], $file, $matches)) $i = " (" . ltrim($matches[2], '0') . ")";
|
|
|
- else $i = '';
|
|
|
- if ($report['parentDir']) $file = basename(dirname($path)) . "/" . $file;
|
|
|
- return "<a href=\"{$url}/{$file}\" target=\"_blank\" class=\"btn btn-primary\">{$report['button']}{$i}</a>";
|
|
|
- }, $report['files']));
|
|
|
- if ($hrefs) echo implode('<br/><br/>', $hrefs);
|
|
|
- else echo "<h5>Nie znaleziono</h5>";
|
|
|
- echo "</div>\n";
|
|
|
- });
|
|
|
+ array_walk($reports, function ($report) use ($url) {
|
|
|
+ echo "<div class=\"col-sm-2\"><h4>{$report['label']}</h4>";
|
|
|
+ $hrefs = array_filter(array_map(function ($path) use ($url, $report) {
|
|
|
+ if (!is_file($path)) return false;
|
|
|
+ $file = basename($path);
|
|
|
+ if (preg_match($report['regex'], $file, $matches)) $i = " (" . ltrim($matches[2], '0') . ")";
|
|
|
+ else $i = '';
|
|
|
+ if ($report['parentDir']) $file = basename(dirname($path)) . "/" . $file;
|
|
|
+ return "<a href=\"{$url}/{$file}\" target=\"_blank\" class=\"btn btn-primary\">{$report['button']}{$i}</a>";
|
|
|
+ }, $report['files']));
|
|
|
+ if ($hrefs) echo implode('<br/><br/>', $hrefs);
|
|
|
+ else echo "<h5>Nie znaleziono</h5>";
|
|
|
+ echo "</div>\n";
|
|
|
+ });
|
|
|
?>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <div class="col-sm-12">
|
|
|
- <br/><br/><a href="<?=$this->REFERER?>" class="btn btn-default">Powrót</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+</div>
|
|
|
+<div class="form-group">
|
|
|
+<div class="col-sm-12">
|
|
|
+<br/><br/><a href="<?=$this->REFERER?>" class="btn btn-default">Powrót</a>
|
|
|
+</div>
|
|
|
+</div>
|
|
|
</div>
|
|
|
<?php
|
|
|
- }
|
|
|
+}
|
|
|
|
|
|
- private function showPowiazaniaList() {
|
|
|
- switch (V::get('action', '', $_POST)) {
|
|
|
- case "initialize":
|
|
|
- $this->initializePowiazaniaSave();
|
|
|
- break;
|
|
|
- }
|
|
|
- $this->showPowiazaniaListForm();
|
|
|
+private function showPowiazaniaList() {
|
|
|
+ switch (V::get('action', '', $_POST)) {
|
|
|
+ case "initialize":
|
|
|
+ $this->initializePowiazaniaSave();
|
|
|
+ break;
|
|
|
}
|
|
|
+ $this->showPowiazaniaListForm();
|
|
|
+}
|
|
|
|
|
|
- private function showPowiazaniaListForm() {
|
|
|
- if (!$this->SOURCE['ID']) throw new Exception("Błąd danych");
|
|
|
- elseif ($this->SOURCE['TABLE'] != 'BI_audit_ENERGA_PRACOWNICY') throw new Exception("Błąd danych");
|
|
|
+private function showPowiazaniaListForm() {
|
|
|
+ if (!$this->SOURCE['ID']) throw new Exception("Błąd danych");
|
|
|
+ elseif ($this->SOURCE['TABLE'] != 'BI_audit_ENERGA_PRACOWNICY') throw new Exception("Błąd danych");
|
|
|
|
|
|
- $query = "select * from `{$this->SOURCE['TABLE']}` where ID = '{$this->SOURCE['ID']}'";
|
|
|
- $pracownik = DB::getPDO()->fetchFirst($query);
|
|
|
- if (!$pracownik) throw new Exception("Błąd danych");
|
|
|
+ $query = "select * from `{$this->SOURCE['TABLE']}` where ID = '{$this->SOURCE['ID']}'";
|
|
|
+ $pracownik = DB::getPDO()->fetchFirst($query);
|
|
|
+ if (!$pracownik) throw new Exception("Błąd danych");
|
|
|
?>
|
|
|
<div class="container" style="margin-top:20px">
|
|
|
- <legend>
|
|
|
- Lista wygenerowanych powiązań :: <?=htmlspecialchars($pracownik['imiona'] . " " . $pracownik['nazwisko'])?>
|
|
|
- <span class="pull-right"># <?=$pracownik['ID']?></span>
|
|
|
- </legend>
|
|
|
- <div class="form-group">
|
|
|
- <div class="col-sm-12">
|
|
|
- <h4>Lista wygenerowanych powiązań, w których znajduje się pracownik</h4>
|
|
|
- <table class="table table-bordered table-hover table-striped" height=5>
|
|
|
- <thead>
|
|
|
- <tr style="text-align:center; background-color:lightgray">
|
|
|
- <td width=1>ID</td>
|
|
|
- <td>Adnotacje</td>
|
|
|
- <td>Minimalna głębokość analizy</td>
|
|
|
- <td>Maksymalna głębokość analizy</td>
|
|
|
- <td>Powiązania tylko do celów</td>
|
|
|
- <td>Status raportu</td>
|
|
|
- <td>Status raportu - informacje</td>
|
|
|
- <td>Indywidualny raport</td>
|
|
|
- <td width=1></td>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tbody>
|
|
|
+<legend>
|
|
|
+Lista wygenerowanych powiązań :: <?=htmlspecialchars($pracownik['imiona'] . " " . $pracownik['nazwisko'])?>
|
|
|
+<span class="pull-right"># <?=$pracownik['ID']?></span>
|
|
|
+</legend>
|
|
|
+<div class="form-group">
|
|
|
+<div class="col-sm-12">
|
|
|
+<h4>Lista wygenerowanych powiązań, w których znajduje się pracownik</h4>
|
|
|
+<table class="table table-bordered table-hover table-striped" height=5>
|
|
|
+<thead>
|
|
|
+ <tr style="text-align:center; background-color:lightgray">
|
|
|
+ <td width=1>ID</td>
|
|
|
+ <td>Adnotacje</td>
|
|
|
+ <td>Minimalna głębokość analizy</td>
|
|
|
+ <td>Maksymalna głębokość analizy</td>
|
|
|
+ <td>Powiązania tylko do celów</td>
|
|
|
+ <td>Status raportu</td>
|
|
|
+ <td>Status raportu - informacje</td>
|
|
|
+ <td>Indywidualny raport</td>
|
|
|
+ <td width=1></td>
|
|
|
+ </tr>
|
|
|
+</thead>
|
|
|
+<tbody>
|
|
|
|
|
|
<?php
|
|
|
- $refPowiazaniaToPracownicy = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_ENERGA_PRACOWNICY', true);
|
|
|
- $query = "select `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA`.*
|
|
|
+ $refPowiazaniaToPracownicy = BiAuditRefTables::getRefTable('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'BI_audit_ENERGA_PRACOWNICY', true);
|
|
|
+ $query = "select `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA`.*
|
|
|
from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA`
|
|
|
join `{$refPowiazaniaToPracownicy}` on `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA`.`ID` = `{$refPowiazaniaToPracownicy}`.`PRIMARY_KEY`
|
|
|
where `REMOTE_PRIMARY_KEY` = '{$this->SOURCE['ID']}'";
|
|
|
- $result = DB::getPDO()->fetchAll($query);
|
|
|
+ $result = DB::getPDO()->fetchAll($query);
|
|
|
|
|
|
- if (!$result) echo '<tr><td align="center" colspan="9">Brak znalezionych powiązań</td></tr>';
|
|
|
- else {
|
|
|
- foreach ($result as $row) {
|
|
|
- $query = "select count(*) from `{$refPowiazaniaToPracownicy}` where `PRIMARY_KEY` = '{$row['ID']}'";
|
|
|
- $count = DB::getPDO()->fetchValue($query);
|
|
|
+ if (!$result) echo '<tr><td align="center" colspan="9">Brak znalezionych powiązań</td></tr>';
|
|
|
+ else {
|
|
|
+ foreach ($result as $row) {
|
|
|
+ $query = "select count(*) from `{$refPowiazaniaToPracownicy}` where `PRIMARY_KEY` = '{$row['ID']}'";
|
|
|
+ $count = DB::getPDO()->fetchValue($query);
|
|
|
?>
|
|
|
- <tr>
|
|
|
- <td align="right"><?=$row['ID']?></td>
|
|
|
- <td><?=$row['L_APPOITMENT_INFO']?></td>
|
|
|
- <td><?=$row['BI_analiza_minDepth']?></td>
|
|
|
- <td><?=$row['BI_analiza_maxDepth']?></td>
|
|
|
- <td><?=($row['BI_analiza_onlyTargets'] == 'N' ? "Nie" : "Tak")?></td>
|
|
|
- <td><?=$row['FILE_STATUS']?></td>
|
|
|
- <td><?=$row['FILE_STATUS_info']?></td>
|
|
|
- <td><?=($count > 1 ? 'Nie' : 'Tak')?></td>
|
|
|
- <td><?=UI::hButtonPost("Pokaż w tabeli", ['class' => 'btn-info btn-xs', 'action' => "index.php?_route=ViewTableAjax&namespace=default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA&ff_ID={$row['ID']}", 'data' > ['f_ID' => $row['ID']]])?></td>
|
|
|
- </tr>
|
|
|
+ <tr>
|
|
|
+ <td align="right"><?=$row['ID']?></td>
|
|
|
+ <td><?=$row['L_APPOITMENT_INFO']?></td>
|
|
|
+ <td><?=$row['BI_analiza_minDepth']?></td>
|
|
|
+ <td><?=$row['BI_analiza_maxDepth']?></td>
|
|
|
+ <td><?=($row['BI_analiza_onlyTargets'] == 'N' ? "Nie" : "Tak")?></td>
|
|
|
+ <td><?=$row['FILE_STATUS']?></td>
|
|
|
+ <td><?=$row['FILE_STATUS_info']?></td>
|
|
|
+ <td><?=($count > 1 ? 'Nie' : 'Tak')?></td>
|
|
|
+ <td><?=UI::hButtonPost("Pokaż w tabeli", ['class' => 'btn-info btn-xs', 'action' => "index.php?_route=ViewTableAjax&namespace=default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA&ff_ID={$row['ID']}", 'data' > ['f_ID' => $row['ID']]])?></td>
|
|
|
+ </tr>
|
|
|
<?php
|
|
|
- }
|
|
|
}
|
|
|
+ }
|
|
|
?>
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <div class="col-sm-12">
|
|
|
- <h4>Dodaj nowe zadanie generowania powiazań dla tego pracownika</h4>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <form class="form-horizontal" method="post">
|
|
|
+</tbody>
|
|
|
+</table>
|
|
|
+</div>
|
|
|
+</div>
|
|
|
+<div class="form-group">
|
|
|
+<div class="col-sm-12">
|
|
|
+<h4>Dodaj nowe zadanie generowania powiazań dla tego pracownika</h4>
|
|
|
+</div>
|
|
|
+</div>
|
|
|
+<form class="form-horizontal" method="post">
|
|
|
<div class="form-group">
|
|
|
<label class="col-sm-4 control-label">Minimalna głębokość poszukiwań (liczba rekurencji)</label>
|
|
|
<div class="col-sm-1">
|
|
|
@@ -429,25 +430,25 @@ where `REMOTE_PRIMARY_KEY` = '{$this->SOURCE['ID']}'";
|
|
|
<input type="text" class="form-control" name="info" value="Indywidualnie dla <?=htmlspecialchars($pracownik['imiona'] . " " . $pracownik['nazwisko'])?>" required/>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
+<!-- <div class="form-group">
|
|
|
<label class="col-sm-4 control-label">
|
|
|
Odśwież cache
|
|
|
</label>
|
|
|
<div class="col-sm-2">
|
|
|
<select name="reloadCache" class="form-control">
|
|
|
<option value="No" selected>Nie</option>
|
|
|
-<!-- <option value="Part">Częściowe</option>-->
|
|
|
+<!-#- <option value="Part">Częściowe</option>-#->
|
|
|
<option value="Full">Pełne</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-group">
|
|
|
<div class="col-sm-offset-4 col-sm-8">
|
|
|
-<!-- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>-->
|
|
|
+<!-#- Częściowe odświeżenie wymagane w przypadku, gdy jedynie dodano nowe rekordy w tabelach pracowników/kontrahentów.<br/>-#->
|
|
|
Pełne odświeżenie wymagane w przypadku edycji/usunięcia istniejących rekordów w tabelach pracowników/kontrahentów.<br/>
|
|
|
Uwaga! Jeżeli aktywne są inne zadania, te zadanie zostanie wstrzymane do momentu ich ukończenia.
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div>-->
|
|
|
<div class="form-group">
|
|
|
<div class="col-sm-12">
|
|
|
<div class="containter" style="text-align:center">
|
|
|
@@ -924,6 +925,162 @@ function validateCompany(source) {
|
|
|
<?php
|
|
|
}
|
|
|
|
|
|
+ private function clearTable_do() {
|
|
|
+ try {
|
|
|
+ $wynik = V::get('wynik', 0, $_POST, 'int');
|
|
|
+ $ctrl = @gzuncompress(@base64_decode(V::get('_BiAuditGenerate_ctrl', '', $_SESSION)));
|
|
|
+ unset($_SESSION['_BiAuditGenerate_ctrl']);
|
|
|
+ $deleteFiles = (V::get('deleteFiles', '', $_POST) === 'on');
|
|
|
+ $deletedDirs = 0; $deletedFiles = 0;
|
|
|
+ if (!($ctrl)) throw new Exception('Błąd parametru');
|
|
|
+ if (!($wynik == $ctrl)) {
|
|
|
+ SE_Layout::alert('warning', 'Podano błędny wynik działania');
|
|
|
+ $this->clearTable_form();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ switch ($this->SOURCE['TABLE']) {
|
|
|
+ case "BI_audit_ENERGA_PRACOWNICY":
|
|
|
+ case "BI_audit_ENERGA_RUM_KONTRAHENCI":
|
|
|
+ $query = "delete from `{$this->SOURCE['TABLE']}`";
|
|
|
+ break;
|
|
|
+ case "BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA":
|
|
|
+ //throw new Exception('Not implemented yet');//TODO
|
|
|
+ if ($deleteFiles) {
|
|
|
+ $query = "select ID from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA`";
|
|
|
+ $result = DB::getPDO()->fetchAll($query);
|
|
|
+ foreach ($result as $row) {
|
|
|
+ $dir = self::getDirectory('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $row['ID']);
|
|
|
+ if (!file_exists($dir)) continue;
|
|
|
+ $deleted = V::deleteWholeDirectory($dir, true, false);
|
|
|
+ $deletedDirs += count($deleted['dirs']);
|
|
|
+ $deletedFiles += count($deleted['files']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $query = "";
|
|
|
+ break;
|
|
|
+ default: throw new Exception('Błąd parametru');
|
|
|
+ //DB::getPDO()->query($query);
|
|
|
+ }
|
|
|
+?>
|
|
|
+<div style="text-align: center;">
|
|
|
+ <h2>Pomyślnie wyczyszczono tabelę.</h2>
|
|
|
+<?php
|
|
|
+ if ($deleteFiles && ($deletedDirs || $deletedFiles)):
|
|
|
+?>
|
|
|
+ <h4>Ponadto usunięto <?=$deletedDirs?> katalogów oraz <?=$deletedFiles?> plików.</h4>
|
|
|
+<?php
|
|
|
+ endif;
|
|
|
+?>
|
|
|
+ <br/><a href="<?=$this->REFERER?>" class="btn btn-primary" style="width: 80px;">Powrót</a>
|
|
|
+</div>
|
|
|
+<?php
|
|
|
+ } catch (Exception $e) {
|
|
|
+ SE_Layout::alert('danger', $e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function clearTable_form() {
|
|
|
+ $tables = [
|
|
|
+ 'BI_audit_ENERGA_PRACOWNICY' => 'pracowników',
|
|
|
+ 'BI_audit_ENERGA_RUM_KONTRAHENCI' => 'kontrahentów',
|
|
|
+ 'BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA' => 'raportów',
|
|
|
+ ];
|
|
|
+ if (!isset($tables[$this->SOURCE['TABLE']])) SE_Layout::alert('danger', 'Błąd parametru');
|
|
|
+
|
|
|
+ $a = rand(10, 50);
|
|
|
+ $b = rand(10, 50);
|
|
|
+ if ($a == $b) $op = 1;
|
|
|
+ else $op = rand(0, 1);
|
|
|
+
|
|
|
+ if ($op) {
|
|
|
+ $suma = $a + $b;
|
|
|
+ $string = "{$a} + {$b}";
|
|
|
+ } else {
|
|
|
+ if ($a < $b) {
|
|
|
+ $suma = $b - $a;
|
|
|
+ $string = "{$b} - {$a}";
|
|
|
+ } else {
|
|
|
+ $suma = $a - $b;
|
|
|
+ $string = "{$a} - {$b}";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $string .= " = ";
|
|
|
+ $_SESSION['_BiAuditGenerate_ctrl'] = base64_encode(gzcompress($suma));
|
|
|
+
|
|
|
+ $im = imagecreate((strlen($string) - 1) * 10, 24);
|
|
|
+ $bg = imagecolorallocate($im, 255, 255, 255);
|
|
|
+ $textcolor = imagecolorallocate($im, 0, 0, 0);
|
|
|
+ imagestring($im, 5, 0, 0, $string, $textcolor);
|
|
|
+ ob_start();
|
|
|
+ imagepng($im);
|
|
|
+ $image = ob_get_contents();
|
|
|
+ ob_end_clean();
|
|
|
+
|
|
|
+/*
|
|
|
+ $image = new Imagick();
|
|
|
+ $draw = new ImagickDraw();
|
|
|
+ $pixel = new ImagickPixel('white');
|
|
|
+ $image->newImage(200, 24, $pixel);
|
|
|
+// $image->setFont("schema/WPS_Functions/mapserver_gml_to_png/map/fonts/Arial_Bold.ttf");
|
|
|
+// $image->newPseudoImage(100, 100, "label:\"{$a} {$op} {$b}\"");
|
|
|
+// $image->newPseudoImage(100, 100, "caption:Hello");
|
|
|
+ $image->setImageFormat('png');
|
|
|
+ $draw->setFillColor('black');
|
|
|
+// $draw->setFont('Arial');
|
|
|
+ $draw->setFontSize(24);
|
|
|
+ $image->annotateImage($draw, 0, 24, 0, $s);
|
|
|
+ $image->trimImage(0);
|
|
|
+*/
|
|
|
+
|
|
|
+ $imageBase64 = base64_encode($image);
|
|
|
+
|
|
|
+//echo $imageBase64;
|
|
|
+
|
|
|
+
|
|
|
+?>
|
|
|
+<div style="text-align: center;">
|
|
|
+ <h2>Czy jesteś pewien, że chcesz usunąć<br/><b>wszystkie dane</b> z tabeli <?=$tables[$this->SOURCE['TABLE']]?>?</h2><br/>
|
|
|
+ <h3>Podaj wynik działania:</h3>
|
|
|
+ <form method="post">
|
|
|
+ <img src="data:image/png;base64,<?=$imageBase64?>" height="36px"/><input type="text" name="wynik" style="font-size: 24px; width: 50px;" pattern="^[0-9]{1,3}$" oninvalid="setCustomValidity('Nieprawidłowy format')" maxlength="3" autofocus required autocomplete="off"/><br/><br/>
|
|
|
+<?php
|
|
|
+ if ($this->SOURCE['TABLE'] == 'BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA'):
|
|
|
+?>
|
|
|
+ <h4><input type="checkbox" name="deleteFiles"/> Usuń również wszystkie pliki</h4><br/>
|
|
|
+<?php
|
|
|
+ endif;
|
|
|
+?>
|
|
|
+ <button type="submit" class="btn btn-primary" name="action" value="doClearTable" style="width: 80px;">Tak</button>
|
|
|
+ <input type="hidden" name="REFERER" value="<?=$this->REFERER?>">
|
|
|
+ <a href="<?=$this->REFERER?>" class="btn btn-default" style="width: 80px;">Anuluj</a>
|
|
|
+ </form>
|
|
|
+</div>
|
|
|
+<?php
|
|
|
+ }
|
|
|
+
|
|
|
+ private function clearTable() {
|
|
|
+ SE_Layout::alert('warning', 'Funkcja w fazie testów - niczego jeszcze nie usuwa');
|
|
|
+ $query = "select count(*) from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA` where `FILE_STATUS` = 'IN_PROGRESS'";
|
|
|
+ if (DB::getPDO()->fetchValue($query)) {
|
|
|
+?>
|
|
|
+<div style="text-align: center;">
|
|
|
+ <h2>Nie można usunąć żadnych danych<br/>(wykryto uruchomione zadania)</h2><br/>
|
|
|
+ <a href="<?=$this->REFERER?>" class="btn btn-primary" style="width: 80px;">Powrót</a>
|
|
|
+</div>
|
|
|
+<?php
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ $action = V::get('action', '', $_POST);
|
|
|
+ switch ($action) {
|
|
|
+ case "doClearTable":
|
|
|
+ $this->clearTable_do();
|
|
|
+ break;
|
|
|
+ default: $this->clearTable_form();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public function defaultAction() {
|
|
|
SE_Layout::gora();
|
|
|
SE_Layout::menu();
|
|
|
@@ -942,15 +1099,43 @@ function validateCompany(source) {
|
|
|
$this->powiazania();
|
|
|
}
|
|
|
elseif ($TABLE = V::get('_fromNamespace', '', $_GET)) {
|
|
|
+ $_subUrlAction = V::get('_subUrlAction', '', $_GET);
|
|
|
switch ($TABLE) {
|
|
|
case "default_db/BI_audit_ENERGA_PRACOWNICY":
|
|
|
- $this->SOURCE['TABLE'] = 'BI_audit_KRS';
|
|
|
- $this->importToPracownicy();
|
|
|
+ $this->SOURCE['TABLE'] = 'BI_audit_ENERGA_PRACOWNICY';
|
|
|
+ switch ($_subUrlAction) {
|
|
|
+ case "clearTable":
|
|
|
+ $this->clearTable();
|
|
|
+ break;
|
|
|
+ case "importFromKRS":
|
|
|
+ $this->SOURCE['TABLE'] = 'BI_audit_KRS';
|
|
|
+ $this->importToPracownicy();
|
|
|
+ break;
|
|
|
+ default: SE_Layout::alert('danger', 'Błąd parametru #21');
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "default_db/BI_audit_ENERGA_RUM_KONTRAHENCI":
|
|
|
+ $this->SOURCE['TABLE'] = 'BI_audit_ENERGA_RUM_KONTRAHENCI';
|
|
|
+ switch ($_subUrlAction) {
|
|
|
+ case "clearTable":
|
|
|
+ $this->clearTable();
|
|
|
+ break;
|
|
|
+ default: SE_Layout::alert('danger', 'Błąd parametru #22');
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA":
|
|
|
+ $this->SOURCE['TABLE'] = 'BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA';
|
|
|
+ switch ($_subUrlAction) {
|
|
|
+ case "clearTable":
|
|
|
+ $this->clearTable();
|
|
|
+ break;
|
|
|
+ efault: SE_Layout::alert('danger', 'Błąd parametru #23');
|
|
|
+ }
|
|
|
break;
|
|
|
- default: SE_Layout::alert('danger', 'Błąd parametru');
|
|
|
+ default: SE_Layout::alert('danger', 'Błąd parametru #1');
|
|
|
}
|
|
|
}
|
|
|
- else SE_Layout::alert('danger', 'Błąd parametru');
|
|
|
+ else SE_Layout::alert('danger', 'Błąd parametru #0');
|
|
|
SE_Layout::dol();
|
|
|
}
|
|
|
|
|
|
@@ -1042,17 +1227,17 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
|
|
|
if (!file_exists($tasksDirLocation)) throw new Exception('Error during creating temporary directory.');
|
|
|
|
|
|
|
|
|
- ### Wyłączenie wcześniej używanego mechanizmu wymuszania częściowego odświeżania cache - teraz działa to z automatu
|
|
|
+ ### Wyłączenie wcześniej używanego mechanizmu wymuszania częściowego (oraz pełnego od 2018-04-19) odświeżania cache - teraz działa to z automatu
|
|
|
$sqlArr = [
|
|
|
'BI_analiza_reloadCache' => 'No',
|
|
|
];
|
|
|
- $query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache in ('Part') and FILE_STATUS = 'TO_GENERATE'";
|
|
|
+ $query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache in ('Part', 'Full') and FILE_STATUS = 'TO_GENERATE'";
|
|
|
$result = DB::getPDO()->fetchAll($query);
|
|
|
foreach ($result as $row) {
|
|
|
DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', array_merge(['ID' => $row['ID']], $sqlArr));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+/* 2018-04-19 - zmieniono działanie silnika tak, aby sam wykrywał czy należy wykonać pełne odświeżenie cache
|
|
|
### Sprawdzenie czy któryś rekord wymaga odświeżenia cache
|
|
|
$doGenerate = true;
|
|
|
$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache in ('Full') and FILE_STATUS = 'TO_GENERATE'";
|
|
|
@@ -1125,7 +1310,7 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+*/
|
|
|
|
|
|
### Generowanie powiązań
|
|
|
if ($doGenerate) {
|
|
|
@@ -1920,6 +2105,23 @@ SQL;
|
|
|
$onlyBase = false;
|
|
|
}
|
|
|
|
|
|
+ if ($this->POWIAZANIA_ID && (!$full)) {
|
|
|
+ $checkTables = ['BI_audit_ENERGA_PRACOWNICY', 'BI_audit_ENERGA_RUM_KONTRAHENCI'];
|
|
|
+ foreach ($checkTables as $table) {
|
|
|
+ $query = "select count(*) from `BI_audit_ALL` `all` left join `{$table}` `t` on `all`.`REMOTE_ID`=`t`.`ID` where `all`.`REMOTE_TABLE`='{$table}' and `t`.`ID` is null";
|
|
|
+ if (DB::getPDO()->fetchValue($query)) {
|
|
|
+ $full = true;
|
|
|
+ BiAuditPowiazania::saveToLog("Wykryto niespójność tabel - uruchamiam pełne odświeżenie cache");
|
|
|
+ $sqlArr = [
|
|
|
+ 'BI_analiza_reloadCache' => 'Full',
|
|
|
+ 'FILE_STATUS_info' => 'Odświeżam w pełni cache',
|
|
|
+ ];
|
|
|
+ DB::getPDO()->update('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', "ID", $this->POWIAZANIA_ID, $sqlArr);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
$powiazaniaDirLocation = self::getMainDirectory();
|
|
|
$tasksDirLocation = $powiazaniaDirLocation . "/.tasks";
|
|
|
$reloadCachePidFile = $tasksDirLocation . "/reloadCache.pid";
|
|
|
@@ -1933,15 +2135,16 @@ SQL;
|
|
|
self::reloadCache_reTeryt($full);
|
|
|
error_log('now: self::reloadCache_updateAll');
|
|
|
self::reloadCache_updateAll($full, $onlyBase);
|
|
|
- if ($full) file_put_contents($reloadCacheResultFile, "ok");
|
|
|
+ if (!$this->POWIAZANIA_ID) file_put_contents($reloadCacheResultFile, "ok");
|
|
|
} catch (Exception $e) {
|
|
|
var_dump($e);
|
|
|
- if ($full) file_put_contents($reloadCacheResultFile, $e->getMessage());
|
|
|
+ if (!$this->POWIAZANIA_ID) file_put_contents($reloadCacheResultFile, $e->getMessage());
|
|
|
else throw new Exception($e->getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public function doGeneratePowiazania($ID) {
|
|
|
+ $this->POWIAZANIA_ID = $ID;
|
|
|
$powiazaniaDirLocation = self::getMainDirectory();
|
|
|
$tasksDirLocation = $powiazaniaDirLocation . "/.tasks";
|
|
|
$resultFile = "{$tasksDirLocation}/generatePowiazania-{$ID}.result";
|
|
|
@@ -1965,7 +2168,7 @@ SQL;
|
|
|
try {
|
|
|
$BiAuditPowiazania = new BiAuditPowiazania($ID, $tasksDirLocation);
|
|
|
|
|
|
- $query = "select count(*) from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA` where `FILE_STATUS` = 'IN_PROGRESS' and `BI_analiza_reloadCache` = 'Part' and ID != ${ID}";
|
|
|
+ $query = "select count(*) from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA` where `FILE_STATUS` = 'IN_PROGRESS' and `BI_analiza_reloadCache` in ('Part', 'Full') and ID != ${ID}";
|
|
|
$sqlArr = [
|
|
|
'BI_analiza_reloadCache' => 'Part',
|
|
|
'FILE_STATUS_info' => 'Odświeżam częściowo cache',
|
|
|
@@ -1983,7 +2186,7 @@ SQL;
|
|
|
|
|
|
BiAuditPowiazania::saveToLog("Uruchamiam częściowe odświeżenie cache");
|
|
|
$this->doReloadCache(); //DUPA testowe wylaczanie
|
|
|
- BiAuditPowiazania::saveToLog("Odświeżono częściowo cache");
|
|
|
+ BiAuditPowiazania::saveToLog("Odświeżono cache");
|
|
|
|
|
|
$sqlArr = [
|
|
|
'BI_analiza_reloadCache' => 'No',
|