Forráskód Böngészése

Merge branch 'master' of bn.git:plabudda/se

Piotr Labudda 8 éve
szülő
commit
8fcbe734d8
1 módosított fájl, 41 hozzáadás és 43 törlés
  1. 41 43
      SE/se-lib/Route/UrlAction/BiAuditGenerate.php

+ 41 - 43
SE/se-lib/Route/UrlAction/BiAuditGenerate.php

@@ -131,13 +131,31 @@ function toggle(source) {
 	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', 'off', $_POST);
+		if ($reloadCache == 'on') $sqlUpdate['BI_analiza_reloadCache'] = 'Y';
+		else $sqlUpdate['BI_analiza_reloadCache'] = 'N';
+
+		$query = "select count(*) from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache = 'Y'";
+		$result = DB::getPDO()->fetchValue($query);
+		if ($result) $sqlUpdate['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache (wymagane dla innego rekordu)';
+		elseif ($reloadCache == 'on') $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
-			$sqlArr = [
-				'ID' => $this->powiazanie['ID'],
-				'FILE_STATUS' => 'TO_GENERATE',
-			];
+			$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!");
@@ -145,69 +163,49 @@ function toggle(source) {
 			$query = "select * from BI_audit_ENERGA_PRACOWNICY where ID='{$prID[0]}'";
 			$result = DB::getPDO()->fetchFirst($query);
 			if (!$result) throw new Exception("Błąd formularza!");
-			$sqlArr = [
+			$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_depth' => $BiAnalizaDepth,
 			];
-		}
-
-		if ($reloadCache == 'on') $sqlArr['BI_analiza_reloadCache'] = 'Y';
-		else $sqlArr['BI_analiza_reloadCache'] = 'N';
-
-		$query = "select count(*) from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where BI_analiza_reloadCache = 'Y'";
-		$result = DB::getPDO()->fetchValue($query);
-		if ($result) $sqlArr['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache (wymagane dla innego rekordu)';
-		elseif ($reloadCache == 'on') $sqlArr['FILE_STATUS_info'] = 'Oczekuje na odświeżenie cache';
-		else $sqlArr['FILE_STATUS_info'] = "Oczekuje na wygenerowanie powiązań";
-
-		if ($this->powiazanie) {
-			$powiazazanieID = $this->powiazanie['ID'];
-			$this->truncatePowiazaniaFromDB($powiazanieID);
-			$affected = DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlArr);
-			if ($affected) {
-				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>
-</div>
-<?php
-			} else throw new Exception("Wystąpił nieznany błąd @initializePowiazaniaSave");
-		} else {
-			$powiazanieID = DB::getDB()->ADD_NEW_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', (object)$sqlArr);
+			$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;
+
+		$this->truncatePowiazaniaFromDB($powiazanieID);
+
 		$refPowiazaniaToPracownicy = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
 			'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY');
 		foreach ($prID as $v) DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $v]);
 
-		$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();
 		$refPowiazaniaToKontrahenci = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
 			'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI');
 		foreach ($kontrahenci as $kontrahent) DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $kontrahent['ID']]);
 
-		$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();
 		$refPowiazaniaToKwRequestedPreson = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
 			'default_db__x3A__BI_audit_KW_requested_person:BI_audit_KW_requested_person');
 		foreach ($requestedPersons as $requestedPerson) DB::getPDO()->insert($refPowiazaniaToKwRequestedPreson, ['PRIMARY_KEY' => $powiazanieID, 'REMOTE_PRIMARY_KEY' => $requestedPerson['ID']]);
 
-		if (!$this->powiazanie) {
-			$sqlArr = [
-				'ID' => $powiazanieID,
-				'FILE_STATUS' => 'TO_GENERATE',
-			];
-			DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlArr);
-		}
+		$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>
+</div>
+<?php
+			}
+		} else throw new Exception("Wystąpił nieznany błąd @initializePowiazaniaSave");
 	}
 
 	private function initializePowiazania() {