| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842 |
- <?php
- Lib::loadClass('Core_AclSimpleSchemaBase');
- Lib::loadClass('ParseOgcFilter');
- Lib::loadClass('Router');
- Lib::loadClass('SchemaVersionUpgrade');
- class Schema_PrzypomnijStorageAcl extends Core_AclSimpleSchemaBase {
- public $_simpleSchema = [
- 'root' => [
- '@namespace' => 'default_objects/Przypomnij',
- '@primaryKey' => 'feature_id',
- // col: Typ rekordu / ID
- 'feature_id' => [ '@type' => 'xsd:string' ], // eg.: "PROBLEMS.123"
- 'namespace' => [ '@type' => 'xsd:string' ], // eg.: "default_db/PROBLEMS"
- 'primaryKey' => [ '@type' => 'xsd:integer' ], // eg.: 123
- 'A_STATUS' => [ '@type' => 'xsd:string' ],
- 'featureType' => [ '@type' => 'xsd:string' ], // eg.: Zasob.TYPE, Projekt.M_DIST_TYPE, etc.
- 'featureDesc' => [ '@type' => 'xsd:string' ], // eg.: Zasob.DESC, Projekt.M_DIST_DESC, etc.
- 'L_APPOITMENT_USER' => [ '@type' => 'xsd:string' ], // Osoba odpowiedzialna
- 'A_ADM_COMPANY' => [ '@type' => 'xsd:string' ],
- 'A_CLASSIFIED' => [ '@type' => 'xsd:string' ],
- // col: Termin wykonania / Opis działań do wykonania
- 'L_APPOITMENT_DATE' => [ '@type' => 'xsd:dateTime' ], // Termin wykonania
- 'L_APPOITMENT_INFO' => [ '@type' => 'xsd:string' ], // Opis działań do wykonania
- // Firma powiąz. / adres / opis-temat
- // Lokalizacja
- 'PROJECT__ID' => [ '@type' => "xsd:int" ],
- 'PROJECT__L_APPOITMENT_USER' => [ '@type' => "xsd:string" ],
- 'USER__IS_ACTIVE' => [ '@type' => "xsd:int" ],
- // 'idZasob' => [ '@type' => 'xsd:integer' ],
- // 'idDatabase' => [ '@type' => 'xsd:integer' ],
- // '_rootTableName' => [ '@type' => 'xsd:string' ],
- // '_type' => [ '@type' => 'xsd:string' ],
- // 'hasStruct' => [ '@type' => 'xsd:integer' ], // 0 - removed, old, 1 - has config, structure
- // 'isStructInstalled' => [ '@type' => 'xsd:integer' ], // installed
- // 'isObjectActive' => [ '@type' => 'xsd:integer' ], // (0,1) - admin settings with restrictions: (hasStruct, isStructInstalled, all fields installed and with idZasob)
- // 'description' => [ '@type' => 'xsd:string' ],
- // 'name' => [ '@type' => 'p5:string' ],
- // 'typeName' => [ '@type' => 'p5:string' ],
- // 'nsPrefix' => [ '@type' => 'p5:string' ],
- // 'reinstallLink' => [ '@type' => 'p5:www_link' ],
- // 'instanceTableSource' => [ '@type' => 'xsd:string' ], // enum('table', 'view') default 'view'
- // 'A_RECORD_CREATE_AUTHOR' => [ '@type' => 'xsd:string' , '@label' => 'autor' ],
- // 'A_RECORD_CREATE_DATE' => [ '@type' => 'xsd:date' , '@label' => 'utworzono' ],
- // 'A_RECORD_UPDATE_AUTHOR' => [ '@type' => 'xsd:string' , '@label' => 'zaktualizował' ],
- // 'A_RECORD_UPDATE_DATE' => [ '@type' => 'xsd:date', '@label' => 'zaktualizowano' ],
- ]
- ];
- // public $_rootTableName = 'CRM_LISTA_ZASOBOW';
- public $_rootTableName = '_PRZYPOMNIJ_ITEMS';
- static function _createItemsTable() {
- DB::getPDO()->execSql("
- CREATE TABLE IF NOT EXISTS `_PRZYPOMNIJ_ITEMS` (
- `L_APPOITMENT_USER` varchar(255) NOT NULL default '',
- `A_ADM_COMPANY` varchar(255) NOT NULL default '',
- `A_CLASSIFIED` varchar(255) NOT NULL default '',
- `feature_id` varchar(255) NOT NULL,
- `namespace` varchar(255) NOT NULL default '',
- `primaryKey` varchar(255) NOT NULL default '',
- `A_STATUS` varchar(16) NOT NULL default '',
- `featureType` varchar(32) NOT NULL default '',
- `featureDesc` varchar(255) NOT NULL default '',
- `L_APPOITMENT_DATE` dateTime DEFAULT NULL,
- `L_APPOITMENT_INFO` varchar(255) NOT NULL default '',
- `PROJECT__ID` int(11) NOT NULL DEFAULT 0,
- `PROJECT__L_APPOITMENT_USER` varchar(255) NOT NULL default '',
- `USER__IS_ACTIVE` tinyint(1) NOT NULL DEFAULT 0,
- PRIMARY KEY (`feature_id`),
- KEY `namespace` (`namespace`),
- KEY `L_APPOITMENT_USER` (`L_APPOITMENT_USER`),
- KEY `A_ADM_COMPANY` (`A_ADM_COMPANY`),
- KEY `A_CLASSIFIED` (`A_CLASSIFIED`)
- -- `ID_PROJECT` int(11) NOT NULL,
- -- `_l_app_user` varchar(40) NOT NULL DEFAULT '',
- -- `P_ID` varchar(20) NOT NULL DEFAULT '0',
- -- `A_RECORD_CREATE_DATE` datetime NOT NULL,
- -- `A_RECORD_CREATE_AUTHOR` varchar(40) NOT NULL DEFAULT '',
- -- `A_RECORD_UPDATE_DATE` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- -- `A_RECORD_UPDATE_AUTHOR` varchar(40) NOT NULL DEFAULT '',
- -- `L_APPOITMENT_DATE` varchar(30) NOT NULL DEFAULT '',
- -- `L_APPOITMENT_USER` varchar(40) NOT NULL DEFAULT '',
- -- `L_APPOITMENT_INFO` varchar(200) NOT NULL DEFAULT '',
- -- `L_CALENDAR` enum('NO','YES') NOT NULL DEFAULT 'NO',
- -- `A_STATUS` enum('WAITING','NORMAL','MONITOR','WARNING','OFF_SOFT','OFF_HARD','DELETED') NOT NULL DEFAULT 'WAITING',
- -- `M_DIST_DATE` date NOT NULL DEFAULT '0000-00-00',
- -- `M_DIST_TYPE` varchar(64) NOT NULL DEFAULT 'INNE',
- -- `M_DIST_DESC` varchar(255) NOT NULL DEFAULT '',
- -- `M_DISTRIBUTOR` varchar(200) NOT NULL DEFAULT '',
- -- KEY `ID_PROJECT` (`ID_PROJECT`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
- ");
- }
- function __construct() {
- parent::__construct($this->_simpleSchema);
- $this->idUser = User::getID(); // default - current user
- }
- function onBeforeFetchData() {
- self::updateCacheIfNeeded();
- }
- static function updateCacheIfNeeded() {
- static $_checked = false;
- if ($_checked) return;
- $confKeyLastUpdateDate = 'Schema_PrzypomnijStorageAcl::lastUpdateDate';
- $lastUpdateDate = DB::getPDO()->fetchValue(" select CONF_VAL from CRM_CONFIG where CONF_KEY = :conf_key ", [ ':conf_key' => $confKeyLastUpdateDate ]);
- $tablesList = [];
- $tablesList[] = '_PRZYPOMNIJ_ITEMS'; // to check if tables exists
- $tablesList[] = '_PRZYPOMNIJ_PROJECT_TREE'; // to check if tables exists
- $tablesList[] = '_PRZYPOMNIJ_ACTIVE_USERS'; // to check if tables exists
- $tablesList[] = 'IN7_MK_BAZA_DYSTRYBUCJI';
- $tablesList[] = 'IN7_DZIENNIK_KORESP';
- $tablesList[] = 'CRM_PROCES';
- $tablesList[] = 'PROBLEMS';
- $tablesList[] = 'CRM_LISTA_ZASOBOW';
- $tablesList[] = 'MK_Rewiry';
- $tablesList[] = 'BUILDINGS';
- $tablesList[] = 'QUALITY_NOTICES';
- $tablesList[] = 'BADANIA_W_TERENIE';
- $sqlTableList = implode(", ", array_map(function ($table) { return "'{$table}'"; }, $tablesList));
- $tablesUpdateDates = DB::getPDO()->fetchValuesListByKey("
- select IF( UPDATE_TIME > :last_update_date, 1, 0 ) as TO_UPDATE
- , TABLE_NAME
- , UPDATE_TIME
- from information_schema.tables
- where TABLE_SCHEMA = :db_name
- and TABLE_NAME in({$sqlTableList})
- ", $key = 'TABLE_NAME', [
- ':db_name' => DB::getPDO()->getDatabaseName(),
- ':last_update_date' => $lastUpdateDate,
- ]);
- DBG::log($tablesUpdateDates, 'array', "DBG::Przypomnij: \$tablesUpdateDates 1");
- if (!array_key_exists('_PRZYPOMNIJ_ITEMS', $tablesUpdateDates)) {
- self::_createItemsTable();
- $tablesUpdateDates = array_map(function ($value) { return 1; }, $tablesUpdateDates);
- }
- if (!array_key_exists('_PRZYPOMNIJ_PROJECT_TREE', $tablesUpdateDates)
- || $tablesUpdateDates['IN7_MK_BAZA_DYSTRYBUCJI']
- ) {
- if (!array_key_exists('_PRZYPOMNIJ_PROJECT_TREE', $tablesUpdateDates)) {
- self::_createProjectsTreeTable();
- }
- if (self::_isProjectsOwnerChanged()) {
- self::_updateProjectsTreeTable();
- }
- // $tablesUpdateDates = array_map(function ($value) { return 1; }, $tablesUpdateDates); // moved to mass update
- }
- if (!array_key_exists('_PRZYPOMNIJ_ACTIVE_USERS', $tablesUpdateDates)
- || $tablesUpdateDates['ADMIN_USERS']
- ) {
- if (!array_key_exists('_PRZYPOMNIJ_ACTIVE_USERS', $tablesUpdateDates)) {
- self::_createUsersTable();
- }
- if (self::_isUsersChanged()) {
- self::_updateUsersStatusTable();
- }
- // $tablesUpdateDates = array_map(function ($value) { return 1; }, $tablesUpdateDates); // moved to mass update
- }
- DBG::log($tablesUpdateDates, 'array', "DBG::Przypomnij: \$tablesUpdateDates 2");
- $tablesToUpdate = array_keys(
- array_filter($tablesUpdateDates, function ($value) { return $value; })
- );
- $tablesToUpdate = array_filter($tablesToUpdate, function ($tableName) { return ( '_PRZYPOMNIJ_' !== substr($tableName, 0, strlen('_PRZYPOMNIJ_')) ); });
- DBG::log($tablesToUpdate, 'array', "DBG::Przypomnij: \$tablesToUpdate");
- foreach ($tablesToUpdate as $tableName) self::_updateForTable($tableName);
- if (!array_key_exists('_PRZYPOMNIJ_PROJECT_TREE', $tablesUpdateDates)
- || $tablesUpdateDates['IN7_MK_BAZA_DYSTRYBUCJI']
- ) {
- self::_updateLAppUserByProjectsTree();
- }
- if (!array_key_exists('_PRZYPOMNIJ_ACTIVE_USERS', $tablesUpdateDates)
- || $tablesUpdateDates['ADMIN_USERS']
- || !empty($tablesToUpdate) // update if anything updates
- ) {
- self::_updateUserStatus();
- }
- DB::getPDO()->insertOrUpdate('CRM_CONFIG', [
- 'CONF_KEY' => $confKeyLastUpdateDate,
- '@insert' => [
- 'CONF_VAL' => "NOW()",
- ],
- '@update' => [
- 'CONF_VAL' => "NOW()",
- ]
- ]);
- $_checked = true;
- }
- static function _updateForTable($tableName) {
- $namespace = "default_db/{$tableName}";
- if ('CRM_LISTA_ZASOBOW' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , t.`TYPE` as `featureType`
- , t.`DESC` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- from `CRM_LISTA_ZASOBOW` as t
- where t.`A_STATUS` in ('NORMAL', 'WAITING')
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('CRM_PROCES' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , t.`TYPE` as `featureType`
- , t.`DESC` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- from `CRM_PROCES` as t
- where t.`A_STATUS` in ('NORMAL', 'WAITING')
- and t.`TYPE` = 'PROCES_INIT'
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('IN7_DZIENNIK_KORESP' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , concat(t.`K_TYP_KORESP`, '-', t.`K_TYP_RODZAJ`) as `featureType`
- , concat('<strong>', t.`K_OD_KOGO`, '</strong><br><em>', t.`OD_KOGO_ADRES`, '</em><br>', t.`K_ZAWARTOS`) as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , t.`ID_PROJECT` as PROJECT__ID
- from `IN7_DZIENNIK_KORESP` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('IN7_MK_BAZA_DYSTRYBUCJI' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- // TODO: 'M_DIST_DESC' => htmlspecialchars($row['M_DIST_DESC']), // TODO: fix bug in html a href inside M_DIST_DES
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , t.`M_DIST_TYPE` as `featureType`
- , t.`M_DIST_DESC` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , t.`P_ID` as PROJECT__ID
- from `IN7_MK_BAZA_DYSTRYBUCJI` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('PROBLEMS' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- // TODO: 'A_PROBLEM_DESC' => htmlspecialchars($row['A_PROBLEM_DESC']),
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , '' as `featureType`
- , t.`A_PROBLEM_DESC` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , t.`ID_PROJECT` as PROJECT__ID
- from `PROBLEMS` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('MK_Rewiry' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- // TODO: 'A_PROBLEM_DESC' => htmlspecialchars($row['A_PROBLEM_DESC']),
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , '' as `featureType`
- , t.`L_APPOITMENT_INFO` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , t.`ID_PROJECT` as PROJECT__ID
- from `MK_Rewiry` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('BUILDINGS' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- // TODO: 'A_PROBLEM_DESC' => htmlspecialchars($row['A_PROBLEM_DESC']),
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , '' as `featureType`
- , t.`L_APPOITMENT_INFO` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , t.`ID_PROJECT` as PROJECT__ID
- from `BUILDINGS` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('QUALITY_NOTICES' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- // TODO: 'A_PROBLEM_DESC' => htmlspecialchars($row['A_PROBLEM_DESC']),
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , t.`NOTICE_INITIAL_TYPE` as `featureType`
- , t.`NOTICE_REQUEST` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , 0 as PROJECT__ID
- from `QUALITY_NOTICES` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('BADANIA_W_TERENIE' === $tableName) { // TODO: getUpdateConfigForTable($tableName);
- // TODO: 'A_PROBLEM_DESC' => htmlspecialchars($row['A_PROBLEM_DESC']),
- DB::getPDO()->execSql(" DELETE from `_PRZYPOMNIJ_ITEMS` where `namespace` = :namespace ", [ ':namespace' => $namespace ]);
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ITEMS` (
- `feature_id`, `namespace`, `primaryKey`
- , `A_STATUS`, `featureType`, `featureDesc`
- , `L_APPOITMENT_USER`, `A_ADM_COMPANY`, `A_CLASSIFIED`
- , `L_APPOITMENT_DATE`, `L_APPOITMENT_INFO`
- , `PROJECT__ID`
- )
- select concat( :table_name , '.', t.ID) as `feature_id`, :namespace as `namespace`, t.ID as `primaryKey`
- , t.`A_STATUS`
- , '' as `featureType`
- , t.`L_APPOITMENT_INFO` as `featureDesc`
- , t.`L_APPOITMENT_USER`, t.`A_ADM_COMPANY`, t.`A_CLASSIFIED`
- , t.`L_APPOITMENT_DATE`, t.`L_APPOITMENT_INFO`
- , 0 as PROJECT__ID
- from `BADANIA_W_TERENIE` as t
- where t.`A_STATUS` not in ('OFF_HARD', 'DELETED')
- and t.`L_APPOITMENT_DATE` != ''
- and t.`L_APPOITMENT_USER` != ''
- ", [
- ':namespace' => $namespace,
- ':table_name' => $tableName,
- ]);
- }
- else if ('_PRZYPOMNIJ_ITEMS' === $tableName) {}
- else if ('_PRZYPOMNIJ_PROJECT_TREE' === $tableName) {}
- else {
- throw new Exception("TODO: (default_objects/Przypomnij)::_updateForTable({$tableName})");
- }
- }
- static function _createUsersTable() {
- DB::getPDO()->execSql("
- CREATE TABLE IF NOT EXISTS `_PRZYPOMNIJ_ACTIVE_USERS` (
- `ADM_ACCOUNT` varchar(20) NOT NULL,
- UNIQUE KEY `ADM_ACCOUNT` (`ADM_ACCOUNT`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
- ");
- }
- static function _isUsersChanged() {
- return ( DB::getPDO()->fetchValue("
- select count(1) as total
- -- u.ID as u__ID, u.ADM_ACCOUNT as u__ADM_ACCOUNT, t.*
- from ADMIN_USERS u
- left join _PRZYPOMNIJ_ACTIVE_USERS t on ( t.ADM_ACCOUNT = u.ADM_ACCOUNT )
- where t.ADM_ACCOUNT is null
- ") > 0);
- }
- static function _updateUsersStatusTable() {
- DB::getPDO()->execSql(" truncate table `_PRZYPOMNIJ_ACTIVE_USERS` ");
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_ACTIVE_USERS` (`ADM_ACCOUNT`)
- select `ADM_ACCOUNT`
- from `ADMIN_USERS`
- where A_STATUS = 'NORMAL'
- ");
- }
- static function _updateUserStatus() {
- DB::getPDO()->execSql("
- update `_PRZYPOMNIJ_ITEMS` as i
- left join `_PRZYPOMNIJ_ACTIVE_USERS` as u on ( u.ADM_ACCOUNT = i.L_APPOITMENT_USER )
- set i.USER__IS_ACTIVE = IF(u.ADM_ACCOUNT is null, 0, 1)
- where i.L_APPOITMENT_USER != ''
- ");
- }
- static function _createProjectsTreeTable() {
- DB::getPDO()->execSql("
- CREATE TABLE IF NOT EXISTS `_PRZYPOMNIJ_PROJECT_TREE` (
- `ID_PROJECT` int(11) NOT NULL,
- `P_ID` int(11) NOT NULL DEFAULT 0,
- `L_APPOITMENT_USER` varchar(40) NOT NULL DEFAULT '',
- `_l_app_user` varchar(40) NOT NULL DEFAULT '',
- UNIQUE KEY `ID_PROJECT` (`ID_PROJECT`),
- KEY `P_ID` (`P_ID`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
- ");
- }
- static function _isProjectsOwnerChanged() {
- return ( DB::getPDO()->fetchValue("
- select count(1) as total
- -- p.ID as p__ID, p.L_APPOITMENT_USER as p__L_APPOITMENT_USER, t.*
- from IN7_MK_BAZA_DYSTRYBUCJI p
- left join _PRZYPOMNIJ_PROJECT_TREE t on ( t.ID_PROJECT = p.ID )
- where (
- t.L_APPOITMENT_USER is null
- or p.L_APPOITMENT_USER != t.L_APPOITMENT_USER
- )
- ") > 0);
- }
- static function _updateProjectsTreeTable() {
- DB::getPDO()->execSql(" truncate table `_PRZYPOMNIJ_PROJECT_TREE` ");
- DB::getPDO()->execSql("
- insert into `_PRZYPOMNIJ_PROJECT_TREE` (`ID_PROJECT`,`P_ID`,`_l_app_user`,`L_APPOITMENT_USER`)
- select `ID`,`P_ID`,`L_APPOITMENT_USER`,`L_APPOITMENT_USER`
- from `IN7_MK_BAZA_DYSTRYBUCJI`
- where 1=1
- ");
- // test recurse update l_app
- $sql = "
- select c._l_app_user
- , p.L_APPOITMENT_USER
- , p1.L_APPOITMENT_USER
- , p2.L_APPOITMENT_USER
- , p3.L_APPOITMENT_USER
- , p4.L_APPOITMENT_USER
- , p5.L_APPOITMENT_USER
- , p.ID
- , p1.ID
- , p2.ID
- , p3.ID
- , p4.ID
- , p5.ID
- from `_PRZYPOMNIJ_PROJECT_TREE` as c
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p on (p.ID=c.ID_PROJECT)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p1 on (p1.ID=p.P_ID)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p2 on (p2.ID=p1.P_ID)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p3 on (p3.ID=p2.P_ID)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p4 on (p4.ID=p3.P_ID)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p5 on (p5.ID=p4.P_ID)
- where c.`_l_app_user`=''
- ";
- // for i to recurse limit
- $sql = "
- update `_PRZYPOMNIJ_PROJECT_TREE` as c
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p on (p.ID=c.ID_PROJECT)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p1 on (p1.ID=p.P_ID)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p2 on (p2.ID=p1.P_ID)
- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p3 on (p3.ID=p2.P_ID)
- -- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p4 on (p4.ID=p3.P_ID)
- -- left join `IN7_MK_BAZA_DYSTRYBUCJI` as p5 on (p5.ID=p4.P_ID)
- set
- c.`_l_app_user`=IF(p.`L_APPOITMENT_USER`!='', p.`L_APPOITMENT_USER`
- , IF(p1.`L_APPOITMENT_USER`!='', p1.`L_APPOITMENT_USER`
- , IF(p2.`L_APPOITMENT_USER`!='', p2.`L_APPOITMENT_USER`
- , IF(p3.`L_APPOITMENT_USER`!='', p3.`L_APPOITMENT_USER`
- -- , IF(p4.`L_APPOITMENT_USER`!='', p4.`L_APPOITMENT_USER`
- -- , IF(p5.`L_APPOITMENT_USER`!='', p5.`L_APPOITMENT_USER`
- , ''
- -- )
- -- )
- )
- )
- )
- )
- where c.`_l_app_user`=''
- ";
- DB::getPDO()->execSql($sql);
- }
- static function _updateLAppUserByProjectsTree() {
- DB::getPDO()->execSql("
- update `_PRZYPOMNIJ_ITEMS` as i
- join `_PRZYPOMNIJ_PROJECT_TREE` as t on ( t.ID_PROJECT = i.PROJECT__ID )
- set i.PROJECT__L_APPOITMENT_USER = t._l_app_user
- where i.PROJECT__ID > 0
- ");
- }
- // function getTotal($params = []) {
- // self::updateCacheIfNeeded();
- // $sqlWhere = $this->_parseWhere($params);
- // return DB::getPDO()->fetchValue("
- // select count(1) as cnt
- // from `{$this->_rootTableName}` t
- // {$sqlWhere}
- // ");
- // }
- // function getItem($pk, $params = []) {
- // self::updateCacheIfNeeded();
- // if (!$pk) throw new Exception("Missing primary key '{$this->_namespace}'");
- // $pkField = $this->getSqlPrimaryKeyField();
- // if (!$pkField) throw new Exception("Missing primary key field defined in '{$this->_namespace}'");
- // $item = DB::getPDO()->fetchFirst("
- // select t.*
- // from `{$this->_rootTableName}` t
- // where t.`{$pkField}` = :pk
- // ", [ ':pk' => $pk ]);
- // if (!$item) throw new Exception("Item '{$pk}' not exists - type '{$this->_namespace}'");
- // return $this->buildFeatureFromSqlRow($item, $params);
- // }
- //
- // function getItems($params = []) {
- // self::updateCacheIfNeeded();
- // $sqlWhere = $this->_parseWhere($params);
- //
- // $currSortCol = V::get('order_by', 'feature_id', $params);
- // $currSortFlip = strtolower(V::get('order_dir', 'desc', $params));
- // // TODO: validate $currSortCol is in field list
- // // TODO: validate $currSortFlip ('asc' or 'desc')
- // $xsdFields = $this->getXsdTypes();
- // if (!array_key_exists($currSortCol, $xsdFields)) throw new Exception("Field '{$currSortCol}' not found in '{$this->_namespace}'");
- // if (!in_array($currSortFlip, ['asc', 'desc'])) throw new Exception("Sort dir not allowed");
- // $sqlOrderBy = "order by t.`{$currSortCol}` {$currSortFlip}";
- //
- // $limit = V::get('limit', 0, $params, 'int');
- // $limit = ($limit < 0) ? 0 : $limit;
- // $offset = V::get('limitstart', 0, $params, 'int');
- // $offset = ($offset < 0) ? 0 : $offset;
- // $sqlLimit = ($limit > 0)
- // ? "limit {$limit} offset {$offset}"
- // : '';
- //
- // Lib::loadClass('AclQueryItems');
- // $query = new AclQueryItems($this);
- // $query->setParams($params);
- // $query->setSource('default_db');
- // $query->setRawSql("
- // select t.*
- // from `{$this->_rootTableName}` t
- // {$sqlWhere}
- // {$sqlOrderBy}
- // {$sqlLimit}
- // ");
- // return array_map(function ($item) use ($params) {
- // return $this->buildFeatureFromSqlRow($item, $params);
- // }, $query->fetchAll());
- // }
- function buildQuery($params = array()) {
- Lib::loadClass('AclQueryFeatures');
- return new AclQueryFeatures($this, $params, $legacyMode = false);
- }
- function _parseWhere($params = []) {
- $sqlWhere = [];
- DBG::log($params, 'array', "SystemObject::_parseWhere");
- // if (!empty($params['#refFrom'])) {
- // // '#refFrom' => [
- // // 'namespace' => 'default_objects/SystemSource',
- // // 'primaryKey' => $sourceItem['idZasob']
- // // ]
- // if (empty($params['#refFrom']['namespace'])) throw new Exception("Missing refFrom/namespace");
- // if (empty($params['#refFrom']['primaryKey'])) throw new Exception("Missing refFrom/primaryKey");
- //
- // if ('default_objects/SystemSource' != $params['#refFrom']['namespace']) throw new Exception("Unsupported refFrom/namespace '{$params['#refFrom']['namespace']}'");
- // $sqlWhere[] = "t.idDatabase = " . DB::getPDO()->quote($params['#refFrom']['primaryKey'], PDO::PARAM_INT);
- // }
- {
- $filterParams = [];
- $xsdFields = $this->getXsdTypes();
- foreach ($params as $k => $v) {
- if ('f_' != substr($k, 0, 2)) continue;
- $fieldName = substr($k, 2);
- if (!array_key_exists($fieldName, $xsdFields)) {
- // TODO: check query by xpath or use different param prefix
- throw new Exception("Field '{$fieldName}' not found in '{$this->_namespace}'");
- }
- if ('p5:www_link' == $xsdFields[$fieldName]) {
- continue;
- }
- $filterParams[$fieldName] = $v;
- }
- }
- if (!empty($filterParams)) {
- DBG::log($filterParams, 'array', "SystemObject::_parseWhere TODO \$filterParams");
- foreach ($filterParams as $fieldName => $value) {
- if (is_array($value)) {
- DBG::log($value, 'array', "TODO SystemObject::_parseWhere array value for \$filterParams[{$fieldName}]");
- } else if (is_scalar($value)) {
- if ('=' == substr($value, 0, 1)) {
- $sqlWhere[] = "t.{$fieldName} = " . DB::getPDO()->quote(substr($value, 1), PDO::PARAM_STR);
- } else {
- $sqlWhere[] = "t.{$fieldName} like " . DB::getPDO()->quote("%{$value}%", PDO::PARAM_STR);
- }
- } else {
- DBG::log($value, 'array', "BUG SystemObject::_parseWhere unknown type for \$filterParams[{$fieldName}]");
- }
- }
- }
- { // acl fields
- $sqlWhere[] = "t.{$fieldName} like " . DB::getPDO()->quote("%{$value}%", PDO::PARAM_STR);
- }
- return (!empty($sqlWhere)) ? "where " . implode(" and ", $sqlWhere) : '';
- }
- function buildFeatureFromSqlRow($item, $params = []) {
- // DBG::log($params, 'array', "buildFeatureFromSqlRow... '{$item['namespace']}'");
- // $exNs = explode('/', $item['namespace']);
- // $item['name'] = array_pop($exNs);
- // $item['nsPrefix'] = implode('__x3A__', $exNs);
- // $item['typeName'] = implode('__x3A__', $exNs) . ':' . $item['name'];
- // $item['reinstallLink'] = Router::getRoute('Storage_AclReinstall')->getLink('', [ 'namespace' => $item['namespace'] ]);
- // if (!empty($params['propertyName'])) {
- // if (is_string($params['propertyName'])) $params['propertyName'] = explode(',', $params['propertyName']);
- // if (!is_array($params['propertyName'])) throw new Exception("Wrong param propertyName - expected array or string");
- // foreach ($params['propertyName'] as $fetchField) {
- // if ('*' == $fetchField) continue;
- // if ('field' == $fetchField) {
- // $item['field'] = SchemaFactory::loadDefaultObject('SystemObjectField')->getItems([
- // '__backRef' => [
- // 'namespace' => 'default_objects/SystemObject',
- // 'primaryKey' => $item['namespace']
- // ],
- // 'order_by' => 'sortPrio',
- // 'order_dir' => 'asc',
- // ]);
- // }
- // }
- // }
- return $item;
- }
- // function updateItem($itemPatch) { // @required [ 'namespace' => ... ] (primaryKey)
- // $pkField = $this->getPrimaryKeyField();
- // $pk = V::get($pkField, null, $itemPatch);
- // if (null === $pk) throw new Exception("BUG missing primary key field for '{$this->_namespace}' updateItem");
- // $this->clearGetItemCache($pk);
- // DBG::log(['updateItem $itemPatch', $itemPatch]);
- // unset($itemPatch[$pkField]);
- // if (empty($itemPatch)) return 0;
- // foreach ($itemPatch as $fieldName => $value) {
- // if ('isStructInstalled' == $fieldName) continue;
- // if ('isObjectActive' == $fieldName) continue;
- // if ('primaryKey' == $fieldName) continue;
- // if ('appInfo' == $fieldName) continue;
- // throw new Exception("Update field '{$fieldName}' not allowed for '{$this->_namespace}'");
- // }
- // return DB::getPDO()->update($this->_rootTableName, $pkField, $pk, $itemPatch);
- // }
- // TODO: to use in AclQueryFeatures
- function getDB() { return DB::getPDO()->getZasobId(); }
- function getLocalFieldList() {
- return array_filter(array_keys($this->_simpleSchema['root']), function ($fieldName) {
- if ( '@' == substr($fieldName, 0, 1)) return false;
- return true;
- });
- }
- function hasWriteGroupField() { return $this->_hasWriteGroupField; }
- function hasReadGroupField() { return $this->_hasReadGroupField; }
- function hasOwnerField() { return $this->_hasOwnerField; }
- function isLocalField($fieldName) {
- return in_array($fieldName, array_keys($this->_simpleSchema['root']));
- }
- // TODO: to use in AclQueryFeatures
- function parseSpecialFilter($filterName, $value) { // @return string | array | null
- switch ($filterName) {
- case 'UserStatus': return $this->_parseSpecialFilterUserStatus($value);
- case 'ns': return $this->_parseSpecialFilterNamespace($value);
- case 'time': return $this->_parseSpecialFilterTime($value);
- default: return null;
- }
- }
- function _parseSpecialFilterUserStatus($value) {
- switch ($value) {
- case 'IS_ACTIVE': return ['USER__IS_ACTIVE', '=', '1'];
- case 'IS_NOT_ACTIVE': return ['USER__IS_ACTIVE', '=', '0'];
- default: return null;
- }
- }
- function _parseSpecialFilterNamespace($value) {
- switch ($value) {
- case 'IN7_MK_BAZA_DYSTRYBUCJI': return ['namespace', '=', 'default_db/IN7_MK_BAZA_DYSTRYBUCJI'];
- case 'IN7_DZIENNIK_KORESP': return ['namespace', '=', 'default_db/IN7_DZIENNIK_KORESP'];
- case 'CRM_PROCES': return ['namespace', '=', 'default_db/CRM_PROCES'];
- case 'PROBLEMS': return ['namespace', '=', 'default_db/PROBLEMS'];
- case 'CRM_LISTA_ZASOBOW': return ['namespace', '=', 'default_db/CRM_LISTA_ZASOBOW'];
- case 'MK_Rewiry': return ['namespace', '=', 'default_db/MK_Rewiry'];
- case 'BUILDINGS': return ['namespace', '=', 'default_db/BUILDINGS'];
- case 'QUALITY_NOTICES': return ['namespace', '=', 'default_db/QUALITY_NOTICES'];
- case 'BADANIA_W_TERENIE': return ['namespace', '=', 'default_db/BADANIA_W_TERENIE'];
- default: return null;
- }
- }
- function _parseSpecialFilterTime($value) {
- switch ($value) {
- case 'PO_TERMINIE': return ['L_APPOITMENT_DATE', 'and', [
- ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_LESS_THAN_NOW'],
- ] ];
- case 'DZISIAJ': return ['L_APPOITMENT_DATE', 'and', [
- ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_GREATER_THAN', mktime(0,0,0, date("m"), date("d"), date("Y"))],
- ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_LESS_THAN', mktime(0,0,0, date("m"), date("d") + 1, date("Y"))],
- ] ];
- case 'W_CIAGU_7_DNI': return ['L_APPOITMENT_DATE', 'and', [
- ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_GREATER_THAN', mktime(0,0,0, date("m"), date("d") + 1, date("Y"))],
- ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_LESS_THAN', mktime(0,0,0, date("m"), date("d") + 7, date("Y"))],
- ] ];
- case 'PO_7_DNIACH': return ['L_APPOITMENT_DATE', 'and', [
- ['L_APPOITMENT_DATE', 'UNIX_TIMESTAMP_GREATER_THAN', mktime(0,0,0, date("m"), date("d") + 7, date("Y"))],
- ] ];
- case 'BRAK': return ['L_APPOITMENT_DATE', 'or', [
- ['L_APPOITMENT_DATE', '=', ''],
- ['L_APPOITMENT_DATE', '=', '0000-00-00 00:00:00'],
- ] ];
- default: return null;
- }
- }
- function getSpecialFilters() {
- $fltrs = array();
- {
- $fltrs['UserStatus'] = new stdClass();
- $fltrs['UserStatus']->icon = 'glyphicon glyphicon-user';
- $fltrs['UserStatus']->label = 'Status użytkownika';
- $fltrs['UserStatus']->btns = [];
- $fltrs['UserStatus']->btns['Aktywny'] = (object)[ 'value' => 'IS_ACTIVE' ];
- $fltrs['UserStatus']->btns['Nieaktywny'] = (object)[ 'value' => 'IS_NOT_ACTIVE' ];
- }
- {
- $fltrs['ns'] = new stdClass();
- $fltrs['ns']->icon = 'glyphicon glyphicon-tag';
- $fltrs['ns']->label = 'Typ rekordu';
- $fltrs['ns']->btns = [];
- $fltrs['ns']->btns['Projekty'] = (object)[ 'value' => 'IN7_MK_BAZA_DYSTRYBUCJI' ];
- $fltrs['ns']->btns['Koresp.'] = (object)[ 'value' => 'IN7_DZIENNIK_KORESP' ];
- $fltrs['ns']->btns['Procesy'] = (object)[ 'value' => 'CRM_PROCES' ];
- $fltrs['ns']->btns['Zadania'] = (object)[ 'value' => 'PROBLEMS' ];
- $fltrs['ns']->btns['Zasoby'] = (object)[ 'value' => 'CRM_LISTA_ZASOBOW' ];
- $fltrs['ns']->btns['MK_Rewiry'] = (object)[ 'value' => 'MK_Rewiry' ];
- $fltrs['ns']->btns['Budynki'] = (object)[ 'value' => 'BUILDINGS' ];
- $fltrs['ns']->btns['Jakość-Zgłoszenia'] = (object)[ 'value' => 'QUALITY_NOTICES' ];
- $fltrs['ns']->btns['Badania w terenie'] = (object)[ 'value' => 'BADANIA_W_TERENIE' ];
- }
- {
- $fltrs['time'] = new stdClass();
- $fltrs['time']->icon = 'glyphicon glyphicon-calendar';
- $fltrs['time']->label = 'Czas';
- $fltrs['time']->btns = [];
- $fltrs['time']->btns['po termine'] = (object)[ 'value' => 'PO_TERMINIE' ];
- $fltrs['time']->btns['dzisiaj'] = (object)[ 'value' => 'DZISIAJ' ];
- $fltrs['time']->btns['w ciągu 7 dni'] = (object)[ 'value' => 'W_CIAGU_7_DNI' ];
- $fltrs['time']->btns['po 7 dniach'] = (object)[ 'value' => 'PO_7_DNIACH' ];
- $fltrs['time']->btns['brak'] = (object)[ 'value' => 'BRAK' ];
- }
- return $fltrs;
- }
- }
|