Ver código fonte

added search for pracownicy and kontrahenci

Piotr Labudda 7 anos atrás
pai
commit
c6adc07bfd
2 arquivos alterados com 191 adições e 34 exclusões
  1. 92 28
      tools/Bocian.php
  2. 99 6
      tools/Bocian.php.view.js

+ 92 - 28
tools/Bocian.php

@@ -477,7 +477,7 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			return ('f_' === substr($key, 0, 2));
 		});
 		foreach ($fieldFilterKeys as $key) {
-			$filtersParams[ $key ] = $args[ $key ];
+			$filtersParams[ $key ] = '%' . $args[ $key ] . '%';
 		}
 
 		$acl = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI');
@@ -504,31 +504,31 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			'body' => [
 				'ids' => array_map( V::makePick('ID'), $items ),
 			],
-			'__args' => $args,
-			'__args_$idGroup' => $idGroup,
-			'__args_$filtersParams' => $filtersParams,
-			'__args_$backRefFilter' => $backRefFilter,
+			'__DBG_args' => $args,
+			'__DBG_$idGroup' => $idGroup,
+			'__DBG_$filtersParams' => $filtersParams,
+			'__DBG_$backRefFilter' => $backRefFilter,
 		];
 	}
 	/**
 	 * KONTRAHENCI
 	 */
 	public function fetchKontrahenciAjaxAction() {
-		Response::sendTryCatchJson(array($this, 'fetchKontrahenciAjax'));
+		Response::sendTryCatchJson(array($this, 'fetchKontrahenciAjax'), $args = $_REQUEST);
 	}
 	public function fetchKontrahenciAjax($args) {
-		$idGroup = V::get('filterIdGroup', 0, $_REQUEST, 'int'); // TODO: dla filtrów "Wysokiego ryzyka" - przekazywany ID rekodu
+		$idGroup = V::get('filterIdGroup', 0, $args, 'int'); // TODO: dla filtrów "Wysokiego ryzyka" - przekazywany ID rekodu
 		if ($idGroup < 0) $idGroup = 0;
 
 		$limit = 20;
 
-		$limitstart = V::get('limitstart', 0, $_REQUEST, 'int');
+		$limitstart = V::get('limitstart', 0, $args, 'int');
 		if ($limitstart < 0) $limitstart = 0;
 
-		$page = V::get('page', 0, $_REQUEST, 'int');
+		$page = V::get('page', 0, $args, 'int');
 		$limitstart = ($page - 1) * $limit;
 
-		$search = V::get('search', '', $_REQUEST);
+		$search = V::get('search', '', $args);
 		$searchParams = [];
 		if (!empty($search)) {
 			$ogcSearch = "*{$search}*"; // wildCard="*" -> mysql '%'
@@ -565,6 +565,14 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			// - 'default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_KONTRAHENCI' minOccurs="0" maxOccurs="unbounded"
 		}
 
+		$filtersParams = [];
+		$fieldFilterKeys = array_filter(array_keys($args), function ($key) {
+			return ('f_' === substr($key, 0, 2));
+		});
+		foreach ($fieldFilterKeys as $key) {
+			$filtersParams[ $key ] = '%' . $args[ $key ] . '%';
+		}
+		DBG::log($filtersParams, 'Kontrahenci $filtersParams');
 		$acl = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI');
 		$query = $acl->buildQuery(array_merge([
 			'cols' => [ // TODO:? propertyName = []
@@ -599,7 +607,7 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			//'f_ID' => $id,
 			'limit' => $limit,
 			'limitstart' => $limitstart, // offset
-		], $searchParams, $backRefFilter));
+		], $searchParams, $filtersParams, $backRefFilter));
 		$total = $query->getTotal();
 		$items = $query->getItems();
 
@@ -613,13 +621,15 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 		return [
 			'type' => 'success',
 			'msg' => 'showKontrajenci',
-			'__req_args' => $_REQUEST,
-			'__args' => $args,
 			'body' => [
 				'items' => $items,
 				//'view' => $this->htmlViewFormBiAudit($items, 'KONTRAHENCI'),
 				'pagination' => $pagination
-			]
+			],
+			'__DBG_args' => $args,
+			'__DBG_$idGroup' => $idGroup,
+			'__DBG_$filtersParams' => $filtersParams,
+			'__DBG_$backRefFilter' => $backRefFilter,
 		];
 	}
 
@@ -658,6 +668,36 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 											 <td>ownCompany</td>
 											 <td>uwagi</td>
 										 </tr>
+										 <tr>
+											<td style="padding:0" width=1><button style="padding:5px" id="filtersFieldRemoveBtn-KONTRAHENCI" onClick="return removeFiltersKontrahenci(event, this)" title="Kasuj filtry" class="btn btn-xs btn-link glyphicon glyphicon-remove"></button></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:80px" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_ID" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Nazwa_grupy_kapitalowej" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Pelna_nazwa_kontrahenta" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Numer_kontrahenta" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Skrocona_Nazwa_Kontrahenta" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Typ_kontrahenta" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_NIP" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_KRS" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_REGON" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_PESEL" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Forma_prawna_dzialalnosci" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Ulica" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Numer_budynku" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Numer_mieszkania_lokalu" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Miejscowosc" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Kod_pocztowy" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Kraj" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Telefon" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Fax" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Mail" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_A_ADM_COMPANY" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_A_CLASSIFIED" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Dodano" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Podmiot_dominujacy" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_Tytul_dokumentu" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_ownCompany" value="" placeholder="%"></td>
+											<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersKontrahenci(this)" type="text" name="f_uwagi" value="" placeholder="%"></td>
+										 </tr>
 										 </thead>
 										 <tbody id="body-kontrahenci">
 										 </tbody></table>
@@ -791,7 +831,7 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			return ('f_' === substr($key, 0, 2));
 		});
 		foreach ($fieldFilterKeys as $key) {
-			$filtersParams[ $key ] = $args[ $key ];
+			$filtersParams[ $key ] = '%' . $args[ $key ] . '%';
 		}
 
 		$acl = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY');
@@ -819,33 +859,33 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 				'ids' => array_map( V::makePick('ID'), $items ),
 			],
 			'__args' => $args,
-			'__args_$idGroup' => $idGroup,
-			'__args_$filtersParams' => $filtersParams,
-			'__args_$backRefFilter' => $backRefFilter,
+			'__DBG_$idGroup' => $idGroup,
+			'__DBG_$filtersParams' => $filtersParams,
+			'__DBG_$backRefFilter' => $backRefFilter,
 		];
 	}
 	/*
 	 * PRACOWNICY
 	 */
 	public function fetchPracownicyAjaxAction() {
-		Response::sendTryCatchJson(array($this, 'fetchPracownicyAjax'));
+		Response::sendTryCatchJson(array($this, 'fetchPracownicyAjax'), $args = $_REQUEST);
 	}
 	public function fetchPracownicyAjax($args) {
 
-		$idGroup = V::get('filterIdGroup', 0, $_REQUEST, 'int'); // dla filtrów "Wysokiego ryzyka" - przekazywany ID rekodu
+		$idGroup = V::get('filterIdGroup', 0, $args, 'int'); // dla filtrów "Wysokiego ryzyka" - przekazywany ID rekodu
 		if ($idGroup < 0) $idGroup = 0;
 
 		$limit = 20;
 
-		$limitstart = V::get('limitstart', 0, $_REQUEST, 'int');
+		$limitstart = V::get('limitstart', 0, $args, 'int');
 		if ($limitstart < 0) $limitstart = 0;
 
 
-		$page = V::get('page', 0, $_REQUEST, 'int');
+		$page = V::get('page', 0, $args, 'int');
 		$limitstart = ($page - 1) * $limit;
 
 
-		$search = V::get('search', '', $_REQUEST);
+		$search = V::get('search', '', $args);
 		$searchParams = [];
 		if (!empty($search)) {
 			$ogcSearch = "*{$search}*"; // wildCard="*" -> mysql '%'
@@ -874,6 +914,14 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			];
 		}
 
+		$filtersParams = [];
+		$fieldFilterKeys = array_filter(array_keys($args), function ($key) {
+			return ('f_' === substr($key, 0, 2));
+		});
+		foreach ($fieldFilterKeys as $key) {
+			$filtersParams[ $key ] = '%' . $args[ $key ] . '%';
+		}
+
 		$acl = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY');
 		$query = $acl->buildQuery(array_merge([
 			'cols' => [
@@ -900,7 +948,7 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 			// 'f_nip' = "12345", // szukamy dokładnie tej wartości - mysql: where nip like "%12345%"
 			// 'f_nip' = "12345%", // szukamy dokładnie tej wartości - mysql: where nip like "12345%"
 			// 'f_ID' = "=12345", // szukamy dokładnie tej wartości - mysql: where ID = "12345"
-		], $searchParams, $backRefFilter));
+		], $searchParams, $filtersParams, $backRefFilter));
 		$total = $query->getTotal();
 		$items = $query->getItems();
 
@@ -928,13 +976,14 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 		return [
 			'type' => 'success',
 			'msg' => 'showPracownicy',
-			'__req_args' => $_REQUEST,
-			'__args' => $args,
 			'body' => [
 				'items' => $items,
 				//'view' => $this->htmlViewFormBiAudit($items, 'PRACOWNICY'),
 				'pagination' => $pagination
-			]
+			],
+			'__DBG_$idGroup' => $idGroup,
+			'__DBG_$filtersParams' => $filtersParams,
+			'__DBG_$backRefFilter' => $backRefFilter,
 		];
 	}
 
@@ -960,11 +1009,26 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 												 <td>L_APPOITMENT_USER</td>
 												 <td>Adresy</td>
 											 </tr>
+											 <tr>
+												<td style="padding:0" width=1><button style="padding:5px" id="filtersFieldRemoveBtn-PRACOWNICY" onClick="return removeFiltersPracownicy(event, this)" title="Kasuj filtry" class="btn btn-xs btn-link glyphicon glyphicon-remove"></button></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:80px" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_ID" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_imiona" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_nazwisko" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_nip" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_pesel" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_regon" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_source" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_A_ADM_COMPANY" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_A_CLASSIFIED" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_A_STATUS" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_A_STATUS_INFO" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_L_APPOITMENT_USER" value="" placeholder="%"></td>
+												<td style="padding:0"><input style="padding:2px 8px; width:100%" onChange="return onChangeFiltersPracownicy(this)" type="text" name="f_Adresy" value="" placeholder="%"></td>
+											 </tr>
 										 </thead>
 										 <tbody id="body-pracownicy">
 										 </tbody></table>
 										 </form>';
-
 						return $view;
 
 	}

+ 99 - 6
tools/Bocian.php.view.js

@@ -1,9 +1,51 @@
 
 if (!URL_TABLE_POWIAZANIA) throw "Brak URL_TABLE_POWIAZANIA";
-if (!BASE_URLS) {
-	throw "Brak BASE_URLS"
-}
-console.log('BASE_URLS',BASE_URLS);
+if (!BASE_URLS) throw "Brak BASE_URLS"
+
+var FIELD_LIST_PRACOWNICY = [
+	'f_ID',
+	'f_imiona',
+	'f_nazwisko',
+	'f_nip',
+	'f_pesel',
+	'f_regon',
+	'f_source',
+	'f_A_ADM_COMPANY',
+	'f_A_CLASSIFIED',
+	'f_A_STATUS',
+	'f_A_STATUS_INFO',
+	'f_L_APPOITMENT_USER',
+	'f_Adresy',
+]
+var FIELD_LIST_KONTRAHENCI = [
+	'f_ID',
+	'f_Nazwa_grupy_kapitalowej',
+	'f_Pelna_nazwa_kontrahenta',
+	'f_Numer_kontrahenta',
+	'f_Skrocona_Nazwa_Kontrahenta',
+	'f_Typ_kontrahenta',
+	'f_NIP',
+	'f_KRS',
+	'f_REGON',
+	'f_PESEL',
+	'f_Forma_prawna_dzialalnosci',
+	'f_Ulica',
+	'f_Numer_budynku',
+	'f_Numer_mieszkania_lokalu',
+	'f_Miejscowosc',
+	'f_Kod_pocztowy',
+	'f_Kraj',
+	'f_Telefon',
+	'f_Fax',
+	'f_Mail',
+	'f_A_ADM_COMPANY',
+	'f_A_CLASSIFIED',
+	'f_Dodano',
+	'f_Podmiot_dominujacy',
+	'f_Tytul_dokumentu',
+	'f_ownCompany',
+	'f_uwagi',
+]
 
 $(window).on('hashchange', function() {
 	initLocalStorage();
@@ -698,7 +740,18 @@ function urlFetchKontrahenci(page) {
 
 			var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup');
 
-			fetch(URL_FETCH_KONTRAHENCI + '&page=' + page + '&filterIdGroup=' + filterIdGroup, {
+			var frm = document.getElementById('filtersFieldRemoveBtn-KONTRAHENCI').form
+			var fieldNameList = FIELD_LIST_KONTRAHENCI
+			var filterFields = fieldNameList.map(function (fieldName) {
+				return [ fieldName, frm[fieldName].value ]
+			}).filter(function (filter) {
+				return ( filter[1].length > 0 )
+			}).map(function (filter) {
+				return '' + filter[0] + '=' + filter[1]
+			}).join('&')
+			filterFields = (filterFields.length > 0) ? '&' + filterFields : ''
+
+			fetch(URL_FETCH_KONTRAHENCI + '&page=' + page + '&filterIdGroup=' + filterIdGroup + filterFields, {
 					credentials: 'same-origin'
 				})
 				.then(function parseJSON(response) {
@@ -840,7 +893,18 @@ function urlFetchPracownicy(page) {
 
 			selectPage('PRACOWNICY', page);
 
-			fetch(URL_FETCH_PRACOWNICY + '&page=' + page + '&filterIdGroup=' + filterIdGroup, {
+			var frm = document.getElementById('filtersFieldRemoveBtn-PRACOWNICY').form
+			var fieldNameList = FIELD_LIST_PRACOWNICY
+			var filterFields = fieldNameList.map(function (fieldName) {
+				return [ fieldName, frm[fieldName].value ]
+			}).filter(function (filter) {
+				return ( filter[1].length > 0 )
+			}).map(function (filter) {
+				return '' + filter[0] + '=' + filter[1]
+			}).join('&')
+			filterFields = (filterFields.length > 0) ? '&' + filterFields : ''
+
+			fetch(URL_FETCH_PRACOWNICY + '&page=' + page + '&filterIdGroup=' + filterIdGroup + filterFields, {
 				credentials: 'same-origin'
 			})
 			.then(function parseJSON(response) {
@@ -1610,6 +1674,30 @@ function todo__fetchRaport(id) {
 	})
 }
 
+function removeFiltersPracownicy(event, btnNode) {
+	event.preventDefault()
+	var fieldNameList = FIELD_LIST_PRACOWNICY
+	fieldNameList.forEach(function (fieldName) {
+		btnNode.form[fieldName].value = ''
+	})
+	urlFetchPracownicy(1)
+}
+function removeFiltersKontrahenci(event, btnNode) {
+	event.preventDefault()
+	var fieldNameList = FIELD_LIST_KONTRAHENCI
+	fieldNameList.forEach(function (fieldName) {
+		btnNode.form[fieldName].value = ''
+	})
+	urlFetchKontrahenci(1)
+}
+
+function onChangeFiltersPracownicy(inputNode) {
+	urlFetchPracownicy(1)
+}
+function onChangeFiltersKontrahenci(inputNode) {
+	urlFetchKontrahenci(1)
+}
+
 
 $(document).ready(function(){
 	rootChangeForm();
@@ -1617,6 +1705,11 @@ $(document).ready(function(){
 	updateTopCounters();
 });
 
+global.removeFiltersPracownicy = removeFiltersPracownicy;
+global.removeFiltersKontrahenci = removeFiltersKontrahenci;
+global.onChangeFiltersPracownicy = onChangeFiltersPracownicy;
+global.onChangeFiltersKontrahenci = onChangeFiltersKontrahenci;
+
 global.checkAll = checkAll;
 global.checkedChoiseItems = checkedChoiseItems;
 global.catchEventCheckbox = catchEventCheckbox;