Browse Source

- add message bottom buttom 'generate reaport' when depth is > 4 and choise only list 'prcownicy' or list 'kontrahenci'
- generate reaport choise only 'pracownicy'
- generate reaport choise only 'kontrahenci'
- generate reaport choise 'pracownicy' and 'kontrahenci'

dariusz.andryskowski 7 năm trước cách đây
mục cha
commit
843dbf06ce
2 tập tin đã thay đổi với 132 bổ sung61 xóa
  1. 35 17
      tools/Bocian.php
  2. 97 44
      tools/Bocian.php.view.js

+ 35 - 17
tools/Bocian.php

@@ -1339,16 +1339,13 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 		// Tworzenie relacji Raport do Pracownicy
 		$pracownicyIds = []; // array z nr ID na podstawie wysłanego formularza
 		$pracownicyIds = V::get('pracownicyIds', '', $args);
-		// walidacja id pracowników
-		if (!$pracownicyIds) {
-			throw new Exception("Nie wybrano pracowników");
-		}
 
 		$kontrahenciIds = []; // array z nr ID na podstawie wysłanego formularza
 		$kontrahenciIds = V::get('kontrahenciIds', '', $args);
-		// walidacja id kontrahetów
-		if (!$kontrahenciIds) {
-			throw new Exception("Nie wybrano kontrahentów");
+
+		// walidacja listy kontrahentów i pracowników
+		if ( !$kontrahenciIds && !$pracownicyIds ) {
+			throw new Exception("Nie wybrano pozycji do analizy. Wybierz pracowników/kontrahentów.");
 		}
 
 		// Tworzenie rekrodu w bazie - Raport -
@@ -1368,26 +1365,46 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				'A_RECORD_CREATE_DATE' => 'NOW()',
 				'FILE_STATUS' => "TO_GENERATE",
 				'BI_analiza_minDepth' => 1,
-				'BI_analiza_maxDepth' => $depthValue
+				'BI_analiza_maxDepth' => $depthValue,
+				'BI_analiza_onlyTargets' => analizaOnlyTargets
 			]);
 		}
 
 		// Tworzenie relacji Raport do Pracownicy
 		$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 ($pracownicyIds as $idPracownik) {
-			DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idPracownik]);
-		}
 
-
-		// Tworzenie relacji Raport do Kontrahenci - analogicznie jak wyżej
+			// Tworzenie relacji Raport do Kontrahenci - analogicznie jak wyżej
 		$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 ($kontrahenciIds as $idKontrahent) {
-			DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idKontrahent ]);
+				'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI');
+
+		/* PRACOWNICY */
+		if ( !$pracownicyIds  ) {
+			// dodajemy wszystkich pracowników
+				DB::getPDO()->execSql("insert into `{$refPowiazaniaToPracownicy}` (`PRIMARY_KEY`,`REMOTE_PRIMARY_KEY`)
+				select '{$idRaport}' as PRIMARY_KEY
+				, ID as REMOTE_PRIMARY_KEY
+				from `BI_audit_ENERGA_PRACOWNICY`
+				");
+		} else { // wybrano pracownika/ów
+			foreach ($pracownicyIds as $idPracownik) {
+				DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idPracownik]);
+			}
 		}
 
-		// ...
+			/* KONTRAHENCI */
+			if ( !$kontrahenciIds ) {
+				// dodajemy wszystkich pracowników
+					DB::getPDO()->execSql("insert into `{$refPowiazaniaToKontrahenci}` (`PRIMARY_KEY`,`REMOTE_PRIMARY_KEY`)
+					select '{$idRaport}' as PRIMARY_KEY
+					, ID as REMOTE_PRIMARY_KEY
+					from `BI_audit_ENERGA_RUM_KONTRAHENCI`
+					");
+			} else { // wybrano pracownika/ów
+				foreach ($kontrahenciIds as $idKontrahent) {
+					DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idKontrahent ]);
+				}
+			}
 
 		return [
 			'msg' => "Zadanie do wygnerowania raportu zostało zapisane.",
@@ -1655,6 +1672,7 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
         <div class="container smad-generate-reaport-info text-center">
             <div class="step-title"><span class="bottom--count-selected-item-kontrahenci"></span></div>
             <div class="step-title"><span class="bottom--count-selected-item-pracownicy"></span></div>
+						<div><strong><span class="bottom--message-warning-critical-search"></span></strong></div>
         </div>
     </div>
 </div>

+ 97 - 44
tools/Bocian.php.view.js

@@ -70,7 +70,14 @@ function updateLocalStorageBiAuditDepth(idInput) {
 						(formItemsPraconwicyKontrahenci.totalPracownicy === 0 && formItemsPraconwicyKontrahenci.totalKontrahenci != 0 ) ||
 						(formItemsPraconwicyKontrahenci.totalPracownicy != 0 && formItemsPraconwicyKontrahenci.totalKontrahenci === 0 )
 					) {
-						p5UI__notifyAjaxCallback({ type: 'error', msg: 'Krytyczne wielkości danych do przeszukania. Czy jesteś pewien? Optymalna wartość głębokość powiazań to: 4.' });
+						p5UI__notifyAjaxCallback({ type: 'error', msg: messageCriticalSearchData });
+
+						$('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
+
+						console.log('popup i dodanie komunikatu niżej');
+					} else {
+						$('.bottom--message-warning-critical-search').text('');
+						console.log('popup i dodanie wyczysc komunikatu ');
 					}
 			}
 
@@ -329,53 +336,84 @@ function generateBiAuditRaport(event) {
 		// validate
 		if (!depthValue || depthValue === 0) {
 			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości dla głębokości powiązań' });
-		} else if (!pracownicyIdsArray || pracownicyIdsArray.length === 0) {
-			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pracowników' });
-		} else if (!kontrahenciIdsArray || kontrahenciIdsArray.length === 0) {
-			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano kontrahentów' });
+		} else if ( (!pracownicyIdsArray || pracownicyIdsArray.length === 0) && (!kontrahenciIdsArray || kontrahenciIdsArray.length === 0)	 ) {
+			p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji do analizy' });
 		} else {
-			// send
-			window.fetch(URL_GENERATE_BI_AUDIT_RAPORT_AJAX, {
-				  method: 'POST',
-				  headers: {
-				    'Content-Type': 'application/json'
-				  },
-					credentials: 'same-origin',
-				  body: JSON.stringify({
-				     pracownicyIds: pracownicyIdsArray,
-				     kontrahenciIds: kontrahenciIdsArray,
-				     depthValue: depthValue,
-						 analizaOnlyTargets: analizaOnlyTargets
-				  })
-				})
-				.then(function(response) {
-					console.log('Firsst then', response);
-					return response.text();
-				})
-				.then(function(responseText) {
-					try {
-						return JSON.parse(responseText);
-					} catch (e) {
-						throw responseText;
-					}
-				})
-				.then(function(result) {
+			var generateReaport = true; // generuj raport
 
-					if (result.type == 'success') {
+			// if not choise 'pracowniocy' or 'kontrahenci'
+			if ( (!pracownicyIdsArray || pracownicyIdsArray.length === 0)  || (!kontrahenciIdsArray || kontrahenciIdsArray.length === 0) ) {
 
-						p5UI__notifyAjaxCallback(result);
-						defaultBIAuditLocalStorage();
-						updateTopCounters();
-						window.setTimeout(URL_TABLE_POWIAZANIA, 6000);
-						resolve(result.msg);
+				var messageConfirm = '';
+				// check selected items
+				if ( !pracownicyIdsArray || pracownicyIdsArray.length === 0 ) {
+					messageConfirm = 'Nie wybrano pracownika/ów! Czas przygotowania raportu może wydłużyć się ze względu na sprawdzenie powiązania ze wszystkimi pracownikami w systemie. Czy jesteś pewny? ';
+				}
+				if ( !kontrahenciIdsArray || kontrahenciIdsArray.length === 0 )  {
+					messageConfirm = 'Nie wybrano kontrahenta/ów! Czas przygotowania raportu może wydłużyć się ze względu na sprawdzenie powiązania ze wszystkimi kontrahentami w systemie. Czy jesteś pewny? ';
+				}
+
+				// show confirm window with message
+				if (confirm(messageConfirm)) {
+	    		generateReaport = true;
+				} else { // cancel
+					generateReaport = false;
+				}
+			}
+
+			if (generateReaport === true) {
+				// send
+				window.fetch(URL_GENERATE_BI_AUDIT_RAPORT_AJAX, {
+					  method: 'POST',
+					  headers: {
+					    'Content-Type': 'application/json'
+					  },
+						credentials: 'same-origin',
+					  body: JSON.stringify({
+					     pracownicyIds: pracownicyIdsArray,
+					     kontrahenciIds: kontrahenciIdsArray,
+					     depthValue: depthValue,
+							 analizaOnlyTargets: analizaOnlyTargets
+					  })
+					})
+					.then(function(response) {
+						console.log('Firsst then', response);
+						return response.text();
+					})
+					.then(function(responseText) {
+						try {
+							return JSON.parse(responseText);
+						} catch (e) {
+							throw responseText;
+						}
+					})
+					.then(function(result) {
+
+						if (result.type == 'success') {
+
+							p5UI__notifyAjaxCallback(result);
+							defaultBIAuditLocalStorage();
+							updateTopCounters();
+							// unchecked checkbox pracownicy
+							$('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
+							// unchecked checkbox kontrahenci
+							$('#smad-table-KONTRAHENCI form').find(':checkbox').prop('checked', false);
+							//
+							$('#count-selected-item-kontrahenci').text('0');
+							$('#count-selected-item-pracownicy').text('0');
+
+							window.setTimeout(URL_TABLE_POWIAZANIA, 6000);
+							resolve(result.msg);
+
+						} else {
+							reject(result.msg);
+						}
+					})
+					.catch(function(error) {
+						console.log('request failed', error)
+					});
+			}
 
-					} else {
-						reject(result.msg);
-					}
-				})
-				.catch(function(error) {
-					console.log('request failed', error)
-				});
 		}
 }
 
@@ -1684,16 +1722,28 @@ function updateTopCounters() {
 	var countKontrahenci = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
 	var totalPracownicy = (countPracownicy) ? Object.keys(countPracownicy).length : 0;
 	var totalKontrahenci = (countKontrahenci) ? Object.keys(countKontrahenci).length : 0;
+	var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
 	console.warn({totalPracownicy: totalPracownicy, totalKontrahenci: totalKontrahenci})
 	$('.top--count-selected-item-pracownicy').text(totalPracownicy ? '('+totalPracownicy+')' : '');
 	$('.top--count-selected-item-kontrahenci').text(totalKontrahenci ? '('+totalKontrahenci+')' : '');
 	$('.bottom--count-selected-item-pracownicy').text(totalPracownicy ? "Wybrano: (" + totalPracownicy + ") pracownika/ów" : '');
 	$('.bottom--count-selected-item-kontrahenci').text(totalKontrahenci ? "Wybrano: (" + totalKontrahenci + ") kontrahenta/ów" : '');
 
+
 // disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
 	if ( totalPracownicy === 0 && totalKontrahenci === 0 ) {
 		$('.smad-generate-reaport-button').addClass('disabled');
 	} else {
+
+		if ( ( totalPracownicy === 0 || totalKontrahenci === 0 ) && parseInt(depthValue) > 4) {
+			$('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
+			console.log('dodanie komunikatu niżej');
+		} else {
+			console.log('wyczyc komunikatu niżej');
+			$('.bottom--message-warning-critical-search').text('');
+		}
+
+
 		$('.smad-generate-reaport-button').removeClass('disabled');
 	}
 }
@@ -2108,3 +2158,6 @@ global.addKontrahenciAllToGroup = addKontrahenciAllToGroup;
 global.showViewUploadFile = showViewUploadFile;
 global.parseCsvFile = parseCsvFile;
 global.clearListLocalStorageByType = clearListLocalStorageByType;
+
+// message
+global.messageCriticalSearchData = 'Krytyczne wielkości danych do przeszukania. Optymalna wartość głębokość szukania powiaząń to: 4';