superedit-DB_PROCEDURES_CREATE.php 77 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304
  1. <?php
  2. // procedury do optymalnegi przyjemnego i szybkiego widoku danych procesow
  3. // bazowe konstruktory twardych struktur danych systemowych
  4. //version @2014-01-22 bindera
  5. //@2014-02-05 ustalono, ze ten plik zostanie rozrzucony po pojedynczych skryptach php, ktore beda wyzwalane przez klase zaprojektowana przez Piotra, ktora
  6. //na podobnej zasadzie co WordPress bedzie czytac tabele z dostepnymi pluginami, gdzie te skryupty beda pozglaszane/lub beda sie zglaszac
  7. if(isset($_SERVER["argv"][1])) {
  8. //wymuszenie argumentu z polecenia (ta zmienna oznaczac ma domene (np. biuro.biall-net.pl )
  9. //php -r"include('/Library/Server/Web/Data/Sites/Default/SE/superedit-SQIX_STRUCTURE_DB_SYNC.php') ;" biuro.biall-net.pl
  10. $_SERVER['SERVER_NAME']=$_SERVER["argv"][1];
  11. $_REQUEST['SYSTEM_PROFILE_STRING_IMPORT_EXPORT']=$_SERVER["argv"][2]; //filtr do importu
  12. $_REQUEST['submit']=true;
  13. define('DS', DIRECTORY_SEPARATOR);
  14. define('APP_PATH_ROOT', dirname(__FILE__));
  15. define('APP_PATH_WWW', dirname(__FILE__));
  16. define('APP_PATH_CONFIG', APP_PATH_ROOT . DS . 'config');
  17. require_once APP_PATH_ROOT . DS . 'se-lib' . DS . 'Lib.php';
  18. Lib::loadClass('V');
  19. Lib::loadClass('Config');
  20. Lib::loadClass('DB');
  21. Lib::loadClass('User');
  22. session_start();
  23. include_once(APP_PATH_CONFIG.'/.config-'.$_SERVER['SERVER_NAME'].'.php');
  24. include('superedit-DEBUG_S.php');
  25. // $PROJ_mount_point=Config::getConfFile('import_db', '') ;
  26. // print_r($PROJ_mount_point);
  27. } else {
  28. if($_SESSION['ADM_ADMIN_LEVEL']<>0) die('niewlasciwy admin level != 0');
  29. if(!isset($_SESSION['ADM_ADMIN_LEVEL'])) die('brak admin level - zle wyzwolenie funkcji');
  30. }
  31. function DB_PROCEDURES_CREATE($DB=null) {
  32. DEBUG_S(-3,"Deklaruje zmienna SQL do wykonania instalacji procedur",null,__FILE__,__FUNCTION__,__LINE__);
  33. $sql['turn_off_database_locking']="SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;";
  34. $sql['KONTAKTY_view']="
  35. CREATE or REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `KONTAKTY_view` AS select `u`.`ID` AS `ID`,`u`.`ADM_ACCOUNT` AS `ADM_ACCOUNT`,`u`.`ADM_NAME` AS `ADM_NAME`,`u`.`EMPLOYEE_TYPE` AS `EMPLOYEE_TYPE`,`u`.`ADM_PHONE` AS `ADM_PHONE`,`u`.`EMAIL` AS `EMAIL`,`u`.`A_STATUS` AS `A_STATUS`,`u`.`A_CLASSIFIED` AS `A_CLASSIFIED`,`u`.`A_ADM_COMPANY` AS `A_ADM_COMPANY`,group_concat(`ua`.`ID_ZASOB` separator ',') AS `ID_ZASOB_CSV_NUM` from (`ADMIN_USERS` `u` left join `CRM_AUTH_PROFILE` `ua` on(((`ua`.`REMOTE_ID` = `u`.`ID`) and (`ua`.`REMOTE_TABLE` = 'ADMIN_USERS')))) where (`u`.`A_STATUS` in ('WAITING','NORMAL','MONITOR','WARNING')) group by `u`.`ID`;
  36. ";
  37. //! CRM_ZASOBY_BEGIN
  38. $sql['drop_CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path']="drop function if exists CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path";
  39. $sql['create_CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path']="CREATE DEFINER=`root`@`localhost` FUNCTION `CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path`(`delimiter` TEXT, `node` INT) RETURNS text CHARSET latin2
  40. READS SQL DATA
  41. BEGIN
  42. DECLARE _path TEXT;
  43. DECLARE _type CHAR(255);
  44. DECLARE _lvl INT;
  45. DECLARE _cpath TEXT;
  46. DECLARE _id INT;
  47. DECLARE _id_cur INT;
  48. DECLARE EXIT HANDLER FOR NOT FOUND RETURN _path;
  49. SET _id = COALESCE(node, @id);
  50. SET _path = '';
  51. SET _lvl=1;
  52. the_loop: LOOP
  53. SET _lvl =_lvl+1;
  54. IF _lvl>100 THEN
  55. RETURN concat('ERROR',_path);
  56. LEAVE the_loop;
  57. END IF;
  58. SELECT PARENT_ID,`DESC`,ID
  59. INTO _id,_type,_id_cur
  60. FROM CRM_LISTA_ZASOBOW
  61. WHERE id = _id
  62. AND COALESCE(id <> @start_with, TRUE);
  63. SET _path = CONCAT(_type, delimiter, _path);
  64. END LOOP the_loop;
  65. END";
  66. //!_CRM_LISTA_ZASOBOW_tree_UPDATE
  67. $sql['drop__CRM_LISTA_ZASOBOW_tree_UPDATE']="DROP TRIGGER IF EXISTS `_CRM_LISTA_ZASOBOW_tree_UPDATE`";
  68. $sql['create__CRM_LISTA_ZASOBOW_tree_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_LISTA_ZASOBOW_tree_UPDATE` BEFORE UPDATE ON `CRM_LISTA_ZASOBOW` FOR EACH ROW BEGIN
  69. IF NEW.PARENT_ID<>OLD.PARENT_ID or NEW.`DESC`<>OLD.`DESC` THEN
  70. SET NEW.path = CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', NEW.PARENT_ID);
  71. update CRM_WSKAZNIK ik set ik.path_CRM_LISTA_ZASOBOW=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', NEW.ID) where path_CRM_LISTA_ZASOBOW like concat('%',NEW.ID,'%');
  72. -- update CRM_LISTA_ZASOBOW ik set ik.path=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', ik.ID) where path like concat('%',OLD.`DESC`,'%') and ik.ID<>OLD.ID;
  73. END IF;
  74. END
  75. ";
  76. //!_CRM_LISTA_ZASOBOW_tree_UPDATE_after
  77. $sql['drop__CRM_LISTA_ZASOBOW_tree_UPDATE_after']="DROP TRIGGER IF EXISTS `_CRM_LISTA_ZASOBOW_tree_UPDATE_after`";
  78. /*$sql['create__CRM_LISTA_ZASOBOW_tree_UPDATE_after']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_LISTA_ZASOBOW_tree_UPDATE_after` AFTER UPDATE ON `CRM_LISTA_ZASOBOW` FOR EACH ROW BEGIN
  79. IF NEW.PARENT_ID<>OLD.PARENT_ID or NEW.`DESC`<>OLD.`DESC` THEN
  80. -- update CRM_LISTA_ZASOBOW ik set ik.path=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', ik.ID) where path like concat('%',OLD.`DESC`,'%');
  81. update CRM_WSKAZNIK ik set ik.path_CRM_LISTA_ZASOBOW=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', ik.ID_ZASOB) where path_CRM_LISTA_ZASOBOW like concat('%',OLD.`DESC`,'%');
  82. END IF;
  83. END
  84. ";
  85. */
  86. //!_CRM_LISTA_ZASOBOW_tree_INSERT
  87. $sql['drop__CRM_LISTA_ZASOBOW_tree_INSERT']="DROP TRIGGER IF EXISTS `_CRM_LISTA_ZASOBOW_tree_INSERT`";
  88. $sql['create__CRM_LISTA_ZASOBOW_tree_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_LISTA_ZASOBOW_tree_INSERT` BEFORE INSERT ON `CRM_LISTA_ZASOBOW` FOR EACH ROW BEGIN
  89. SET NEW.path = CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', NEW.PARENT_ID);
  90. END
  91. ";
  92. //!_CRM_WSKAZNIK_tree_INSERT
  93. $sql['drop__CRM_WSKAZNIK_tree_INSERT']="DROP TRIGGER IF EXISTS `_CRM_WSKAZNIK_tree_INSERT`";
  94. $sql['create__CRM_WSKAZNIK_tree_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_WSKAZNIK_tree_INSERT` BEFORE INSERT ON `CRM_WSKAZNIK` FOR EACH ROW BEGIN
  95. SET NEW.path_CRM_LISTA_ZASOBOW = CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', NEW.ID_ZASOB);
  96. END
  97. ";
  98. //!_CRM_WSKAZNIK_tree_UPDATE
  99. $sql['drop__CRM_WSKAZNIK_tree_UPDATE']="DROP TRIGGER IF EXISTS `_CRM_WSKAZNIK_tree_UPDATE`";
  100. $sql['create__CRM_WSKAZNIK_tree_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_WSKAZNIK_tree_UPDATE` BEFORE UPDATE ON `CRM_WSKAZNIK` FOR EACH ROW BEGIN
  101. IF NEW.ID_ZASOB<>OLD.ID_ZASOB THEN
  102. SET NEW.path_CRM_LISTA_ZASOBOW = CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', NEW.ID_ZASOB);
  103. END IF;
  104. END
  105. ";
  106. //! event do aktualizacji PROJEKTOW - raz dziennie wszystkie przemapowac TODO trigger powinien aktualizowac pozostale powiazane rekordy, ktore zmienily strukture po zmianie struktury projektow
  107. $sql['event_delete_CRM_LISTA_ZASOBOW__CRM_WSKAZNIK_tree']="drop event if exists _CRM_LISTA_ZASOBOW__CRM_WSKAZNIK_tree_event";
  108. $sql['event_create_CRM_LISTA_ZASOBOW__CRM_WSKAZNIK_tree']="CREATE DEFINER=root@localhost EVENT _CRM_LISTA_ZASOBOW__CRM_WSKAZNIK_tree_event
  109. ON SCHEDULE EVERY 1 DAY
  110. STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  111. DO
  112. BEGIN
  113. update CRM_LISTA_ZASOBOW set path=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/',ID);
  114. update CRM_WSKAZNIK set path_CRM_LISTA_ZASOBOW=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/',ID_ZASOB);
  115. update CRM_PROCES set path=CRM_PROCES_hierarchy_sys_connect_by_path('-',ID);
  116. END
  117. ";
  118. //! CRM_ZASOBY_END
  119. //!hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop
  120. $sql['drop_hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop']="drop function if exists hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop";
  121. $sql['create_hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop']="CREATE DEFINER=`root`@`localhost` FUNCTION `hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop`(`value` INT, `maxlevel` INT) RETURNS int(11)
  122. READS SQL DATA
  123. BEGIN
  124. DECLARE _id INT;
  125. DECLARE _parent INT;
  126. DECLARE _next INT;
  127. DECLARE _i INT;
  128. DECLARE CONTINUE HANDLER FOR NOT FOUND SET @id = NULL;
  129. SET _parent = @id;
  130. SET _id = -1;
  131. SET _i = 0;
  132. IF @id IS NULL THEN
  133. RETURN NULL;
  134. END IF;
  135. LOOP
  136. SELECT MIN(id)
  137. INTO @id
  138. FROM CRM_PROCES
  139. WHERE PARENT_ID = _parent
  140. AND id > _id
  141. AND id <> @start_with
  142. AND COALESCE(@level < maxlevel, TRUE);
  143. IF @id IS NOT NULL OR _parent = @start_with THEN
  144. SET @level = @level + 1;
  145. RETURN @id;
  146. END IF;
  147. SET @level := @level - 1;
  148. SELECT id, PARENT_ID
  149. INTO _id, _parent
  150. FROM CRM_PROCES
  151. WHERE id = _parent;
  152. SET _i = _i + 1;
  153. END LOOP;
  154. RETURN NULL;
  155. END
  156. ";
  157. $sql['drop_hierarchy_connect_by_iscycle']="drop function if exists hierarchy_connect_by_iscycle";
  158. $sql['create_hierarchy_connect_by_iscycle']="CREATE DEFINER=`root`@`localhost` FUNCTION `hierarchy_connect_by_iscycle`(`node` INT) RETURNS int(11)
  159. READS SQL DATA
  160. BEGIN
  161. DECLARE _id INT;
  162. DECLARE _loop INT;
  163. DECLARE _node INT;
  164. DECLARE EXIT HANDLER FOR NOT FOUND RETURN 0;
  165. SET _id = COALESCE(node, @id);
  166. SET _loop = 0;
  167. SET _node = 0;
  168. LOOP
  169. SELECT PARENT_ID
  170. INTO _id
  171. FROM CRM_PROCES
  172. WHERE id = _id;
  173. IF _id = @start_with THEN
  174. SET _loop := _loop + 1;
  175. END IF;
  176. IF _id = COALESCE(node, @id) THEN
  177. SET _node = _node + 1;
  178. END IF;
  179. IF _loop >= 2 THEN
  180. RETURN _node;
  181. END IF;
  182. END LOOP;
  183. END";
  184. $sql['drop_hierarchy_sys_connect_by_path']="drop function if exists hierarchy_sys_connect_by_path";
  185. $sql['create_hierarchy_sys_connect_by_path']="CREATE DEFINER=`root`@`localhost` FUNCTION `hierarchy_sys_connect_by_path`(`delimiter` TEXT, `node` INT) RETURNS text CHARSET latin2
  186. READS SQL DATA
  187. BEGIN
  188. DECLARE _path TEXT;
  189. DECLARE _type CHAR(255);
  190. DECLARE _cpath TEXT;
  191. DECLARE _id INT;
  192. DECLARE _id_cur INT;
  193. DECLARE EXIT HANDLER FOR NOT FOUND RETURN _path;
  194. SET _id = COALESCE(node, @id);
  195. SET _path = _id;
  196. LOOP
  197. SELECT PARENT_ID,TYPE,ID
  198. INTO _id,_type,_id_cur
  199. FROM CRM_PROCES
  200. WHERE id = _id
  201. AND COALESCE(id <> @start_with, TRUE);
  202. SET _path = CONCAT(_id, delimiter, _path);
  203. END LOOP;
  204. END";
  205. $sql['drop_CRM_PROCES_tree_detect_init']="drop function if exists CRM_PROCES_tree_detect_init";
  206. $sql['create_CRM_PROCES_tree_detect_init']="CREATE DEFINER=`root`@`localhost` FUNCTION `CRM_PROCES_tree_detect_init`(`node` INT) RETURNS text CHARSET latin2
  207. READS SQL DATA
  208. BEGIN
  209. DECLARE _path INT;
  210. DECLARE _type CHAR(255);
  211. DECLARE _cpath TEXT;
  212. DECLARE _id INT;
  213. DECLARE _id_cur INT;
  214. DECLARE EXIT HANDLER FOR NOT FOUND RETURN _path;
  215. SET _id = COALESCE(node, @id);
  216. LOOP
  217. SELECT PARENT_ID,TYPE,ID
  218. INTO _id,_type,_id_cur
  219. FROM CRM_PROCES
  220. WHERE id = _id
  221. AND COALESCE(id <> @start_with, TRUE);
  222. if _type = 'PROCES_INIT' THEN
  223. SET _path = _id_cur;
  224. END IF;
  225. END LOOP;
  226. END";
  227. $sql['drop__CRM_PROCES_STATS_proc_wiev']="drop table if exists _CRM_PROCES_STATS_proc_wiev;";
  228. $sql['create__CRM_PROCES_STATS_proc_wiev']="create table _CRM_PROCES_STATS_proc_wiev
  229. SELECT hi.ID,CRM_PROCES_tree_detect_init(hi.ID) as ID_PROCES_INIT,CONCAT(REPEAT(' ', lvl - 1), hi.id) AS treeitem,
  230. hierarchy_sys_connect_by_path('/', hi.id) AS path,
  231. PARENT_ID, lvl,
  232. CASE
  233. WHEN lvl >= @maxlevel THEN 1
  234. ELSE COALESCE(
  235. (
  236. SELECT 0
  237. FROM CRM_PROCES hl
  238. WHERE hl.PARENT_ID = ho.id
  239. AND hl.id <> @start_with
  240. LIMIT 1
  241. ), 1)
  242. END AS is_leaf,
  243. hierarchy_connect_by_iscycle(hi.id) AS is_cycle
  244. FROM (
  245. SELECT hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop(id, @maxlevel) AS id,
  246. CAST(@level AS SIGNED) AS lvl
  247. FROM (
  248. SELECT @start_with := 0,
  249. @id := @start_with,
  250. @level := 0,
  251. @maxlevel := NULL
  252. ) vars, CRM_PROCES
  253. WHERE @id IS NOT NULL
  254. ) ho
  255. JOIN CRM_PROCES hi
  256. ON hi.id = ho.id ;";
  257. $sql['alter__CRM_PROCES_STATS_proc_wiev_unique_id']="alter table _CRM_PROCES_STATS_proc_wiev add unique(ID)";
  258. $sql['alter__CRM_PROCES_STATS_proc_wiev_modify_path']="alter table _CRM_PROCES_STATS_proc_wiev modify path varchar(255)";
  259. $sql['alter__CRM_PROCES_STATS_proc_wiev_modify_treeitem']="alter table _CRM_PROCES_STATS_proc_wiev modify treeitem varchar(255)";
  260. //! CRM_PROCES path begin @2016-10
  261. //! CRM_ZASOBY_BEGIN
  262. $sql['drop_CRM_PROCES_hierarchy_sys_connect_by_path']="drop function if exists CRM_PROCES_hierarchy_sys_connect_by_path";
  263. $sql['create_CRM_PROCES_hierarchy_sys_connect_by_path']="CREATE DEFINER=`root`@`localhost` FUNCTION `CRM_PROCES_hierarchy_sys_connect_by_path`(`delimiter` TEXT, `node` INT) RETURNS text CHARSET latin2
  264. READS SQL DATA
  265. BEGIN
  266. DECLARE _path TEXT;
  267. DECLARE _type CHAR(255);
  268. DECLARE _lvl INT;
  269. DECLARE _cpath TEXT;
  270. DECLARE _id INT;
  271. DECLARE _id_cur INT;
  272. DECLARE EXIT HANDLER FOR NOT FOUND RETURN _path;
  273. SET _id = COALESCE(node, @id);
  274. SET _path = '';
  275. SET _lvl=1;
  276. the_loop: LOOP
  277. SET _lvl =_lvl+1;
  278. IF _lvl>100 THEN
  279. RETURN concat('ERROR',_path);
  280. LEAVE the_loop;
  281. END IF;
  282. SELECT PARENT_ID,`DESC`,ID
  283. INTO _id,_type,_id_cur
  284. FROM CRM_PROCES
  285. WHERE id = _id
  286. AND COALESCE(id <> @start_with, TRUE);
  287. SET _path = CONCAT(_id_cur, delimiter, _path);
  288. END LOOP the_loop;
  289. END";
  290. //!_CRM_LISTA_ZASOBOW_tree_UPDATE
  291. $sql['drop__CRM_PROCES_tree_UPDATE']="DROP TRIGGER IF EXISTS `_CRM_PROCES_tree_UPDATE`";
  292. $sql['create__CRM_PROCES_tree_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_PROCES_tree_UPDATE` BEFORE UPDATE ON `CRM_PROCES` FOR EACH ROW BEGIN
  293. IF NEW.PARENT_ID<>OLD.PARENT_ID THEN
  294. SET NEW.path = CRM_PROCES_hierarchy_sys_connect_by_path('/', NEW.PARENT_ID);
  295. END IF;
  296. END
  297. ";
  298. //!_CRM_LISTA_ZASOBOW_tree_UPDATE_after
  299. //$sql['drop__CRM_PROCES_tree_UPDATE_after']="DROP TRIGGER IF EXISTS `_CRM_PROCES_tree_UPDATE_after`";
  300. /*$sql['create__CRM_LISTA_ZASOBOW_tree_UPDATE_after']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_LISTA_ZASOBOW_tree_UPDATE_after` AFTER UPDATE ON `CRM_LISTA_ZASOBOW` FOR EACH ROW BEGIN
  301. IF NEW.PARENT_ID<>OLD.PARENT_ID or NEW.`DESC`<>OLD.`DESC` THEN
  302. -- update CRM_LISTA_ZASOBOW ik set ik.path=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', ik.ID) where path like concat('%',OLD.`DESC`,'%');
  303. update CRM_WSKAZNIK ik set ik.path_CRM_LISTA_ZASOBOW=CRM_LISTA_ZASOBOW_hierarchy_sys_connect_by_path('/', ik.ID_ZASOB) where path_CRM_LISTA_ZASOBOW like concat('%',OLD.`DESC`,'%');
  304. END IF;
  305. END
  306. ";
  307. */
  308. //!_CRM_LISTA_ZASOBOW_tree_INSERT
  309. $sql['drop__CRM_PROCES_tree_INSERT']="DROP TRIGGER IF EXISTS `_CRM_PROCES_tree_INSERT`";
  310. $sql['create__CRM_PROCES_tree_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_PROCES_tree_INSERT` BEFORE INSERT ON `CRM_PROCES` FOR EACH ROW BEGIN
  311. SET NEW.path = CRM_PROCES_hierarchy_sys_connect_by_path('/', NEW.PARENT_ID);
  312. END
  313. ";
  314. //! CRM_PROCES path end @2016-10
  315. //!_CRM_PROCES_STATS_proc_wiev_UPDATE
  316. $sql['drop__CRM_PROCES_STATS_proc_wiev_UPDATE']="DROP TRIGGER IF EXISTS `_CRM_PROCES_STATS_proc_wiev_UPDATE`";
  317. //!_CRM_PROCES_STATS_proc_wiev_INSERT
  318. $sql['_drop__CRM_PROCES_STATS_proc_wiev_INSERT']="DROP TRIGGER IF EXISTS `_CRM_PROCES_STATS_proc_wiev_INSERT`;";
  319. $sql['drop__CRM_PROCES_GOTO_CACHE']="drop table if exists _CRM_PROCES_GOTO_CACHE;";
  320. $sql_tmp['select_CRM_PROCES_GOTO_CACHE']="select t1.ID,t1.ID_PROCES_INIT,t2.IF_TRUE_GOTO , t2.IF_TRUE_GOTO_FLAG, now() as TIMESTAMP
  321. from _CRM_PROCES_STATS_proc_wiev t1
  322. inner join CRM_PROCES as t2 on ( t1.ID=t2.ID and t2.IF_TRUE_GOTO>0 and t2.IF_TRUE_GOTO_FLAG='GOTO_AND_RETURN' )
  323. inner join CRM_PROCES as t3 on ( t2.IF_TRUE_GOTO=t3.ID and t2.IF_TRUE_GOTO>0 and t2.IF_TRUE_GOTO_FLAG='GOTO_AND_RETURN' )
  324. -- TODO@2014-09-04 trzeba rekursywnie podlapac wzajemne powiazania
  325. where t1.ID_PROCES_INIT>0
  326. ";
  327. $sql['create__CRM_PROCES_GOTO_CACHE']="create table _CRM_PROCES_GOTO_CACHE ".$sql_tmp['select_CRM_PROCES_GOTO_CACHE'] ;
  328. $sql['alter__CRM_PROCES_GOTO_CACHE_ID']="alter table _CRM_PROCES_GOTO_CACHE add index(ID)" ;
  329. $sql['alter__CRM_PROCES_GOTO_CACHE_ID_PROCES_INIT_type']="alter table _CRM_PROCES_GOTO_CACHE modify ID_PROCES_INIT int(11)" ;
  330. $sql['alter__CRM_PROCES_GOTO_CACHE_ID_PROCES_INIT']="alter table _CRM_PROCES_GOTO_CACHE add index(ID_PROCES_INIT)" ;
  331. $sql['alter__CRM_PROCES_GOTO_CACHE_IF_TRUE_GOTO']="alter table _CRM_PROCES_GOTO_CACHE add index(IF_TRUE_GOTO)" ;
  332. $sql['event_delete_CRM_PROCES_GOTO_CACHE']="drop event if exists _CRM_PROCES_GOTO_CACHE_event";
  333. $sql['event_create_CRM_PROCES_GOTO_CACHE']="CREATE DEFINER=root@localhost EVENT _CRM_PROCES_GOTO_CACHE_event
  334. ON SCHEDULE EVERY 1 DAY
  335. STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  336. DO
  337. BEGIN
  338. SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
  339. truncate table _CRM_PROCES_INIT_STATS;
  340. replace into _CRM_PROCES_INIT_STATS ".$sql_tmp['select_CRM_PROCES_GOTO_CACHE']." ;
  341. END
  342. ";
  343. $sql['drop__CRM_PROCES_STATS']="drop table if exists _CRM_PROCES_STATS ;";
  344. $sql_tmp['select__CRM_PROCES_STATS']="select t1.ID , t2.ID_PROCES_INIT , count(t1.ID) as CSteps
  345. , (select count(ID) from CRM_IMAGE where REMOTE_TABLE='CRM_PROCES' and REMOTE_ID=t1.ID and A_STATUS!='DELETED' ) as CPics
  346. , (select count(ID) from CRM_PROCES_HIST where ID_USERS2=t1.ID ) as CProcEdits
  347. , (select count(ID) from CRM_WSKAZNIK where ID_PROCES=t1.ID and A_STATUS!='DELETED') as CRes
  348. , (select count(cwh.ID) from CRM_WSKAZNIK_HIST cwh left join CRM_WSKAZNIK as cw on cwh.ID_USERS2=cw.ID where cw.ID_PROCES=t1.ID ) as CResorEdits
  349. , (select count(ctph.ID) from CRM_TESTY_PYTANIA_HIST as ctph left join CRM_TESTY_PYTANIA as ctp on ctp.ID=ctph.ID_USERS2 where ctp.ID_PROCES=t1.ID ) as CQuestEdits
  350. , (select count(ci.ID) from CRM_IMAGE ci left join CRM_WSKAZNIK as cw on ci.REMOTE_ID=cw.ID and ci.REMOTE_TABLE='CRM_WSKAZNIK' where cw.ID_PROCES=t1.ID ) as CResPics
  351. , (select count(ci.ID) from CRM_IMAGE ci left join CRM_WSKAZNIK as cw on ci.REMOTE_ID=cw.ID_ZASOB and ci.REMOTE_TABLE='CRM_LISTA_ZASOBOW' where cw.ID_PROCES=t1.ID ) as CResPicsS
  352. , (select count(ID) from CRM_TESTY_PYTANIA where ID_PROCES=t1.ID ) as CQuest
  353. , (select count(ID) from CRM_TESTY_PYTANIA where ID_PROCES=t1.ID and TEST_TYPE='TEORETYCZNY' ) as CQuestTeor
  354. , (select count(ID) from CRM_TESTY_PYTANIA where ID_PROCES=t1.ID and TEST_TYPE='PRAKTYCZNY' ) as CQuestPract -- pytania praktyczne
  355. , (select count(cto.ID) from CRM_TESTY_ODPOWIEDZI as cto left join CRM_TESTY_PYTANIA as ctp on cto.ID_PYTANIE=ctp.ID where ctp.ID_PROCES=t1.ID ) as CQRes -- udzielono odpowiedzi
  356. , (select count(cto.ID) from CRM_TESTY_ODPOWIEDZI as cto left join CRM_TESTY_PYTANIA as ctp on cto.ID_PYTANIE=ctp.ID where ctp.ID_PROCES=t1.ID and ctp.TEST_TYPE='PRAKTYCZNY' ) as CQPRes -- udzielono odpowiedzi praktycznych
  357. , (select count(cto.ID) from CRM_TESTY_ODPOWIEDZI as cto left join CRM_TESTY_PYTANIA as ctp on cto.ID_PYTANIE=ctp.ID where ctp.ID_PROCES=t1.ID and cto.OCENA<1 ) as CQErrRes -- udzielono slabych odpowiedzi
  358. , (select count(distinct(au.ID)) from ADMIN_USERS as au left join CRM_AUTH_PROFILE as cap on au.ID=cap.REMOTE_ID and
  359. cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS!='DELETED' left join CRM_WSKAZNIK as cw on cap.ID_ZASOB=cw.ID_ZASOB and cw.A_STATUS!='DELETED' where cw.ID_PROCES=t1.ID and au.A_STATUS='NORMAL' ) as CWorkers -- pracownikow aktualnie wykonujacych proces - blad w strukturach ADMIN_USERS statusy WAITING
  360. -- , (select count(distinct(au.ID)) from ADMIN_USERS as au
  361. -- left join CRM_AUTH_PROFILE as cap on au.ID=cap.REMOTE_ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS!='DELETED'
  362. -- left join CRM_WSKAZNIK as cw on cap.ID_ZASOB=cw.ID_ZASOB and cw.A_STATUS!='DELETED'
  363. -- left join CRM_TESTY_ODPOWIEDZI as cto on cto.A_RECORD_CREATE_AUTHOR=au.ADM_ACCOUNT
  364. -- left join CRM_TESTY_PYTANIA as ctp on ctp.ID=cto.ID_PYTANIE
  365. -- left join _CRM_PROCES_STATS_proc_wiev as cps on cps.ID=cw.ID_PROCES
  366. -- where cw.ID_PROCES=cps.ID and au.A_STATUS='NORMAL' and ctp.ID_PROCES=t1.ID and cps.ID_PROCES_INIT=t1.ID ) as CQAWorkers -- pracownikow ktorzy maja aktualny proces
  367. , (select count(distinct(cto.ID)) from CRM_TESTY_ODPOWIEDZI as cto left join CRM_TESTY_PYTANIA as ctp on cto.ID_PYTANIE=ctp.ID
  368. left join CRM_WSKAZNIK as cw on cw.ID_PROCES=ctp.ID_PROCES
  369. left join _CRM_PROCES_STATS_proc_wiev as cps on cps.ID=cw.ID_PROCES
  370. left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cps.ID_PROCES_INIT
  371. left join CRM_AUTH_PROFILE as cap on cap.ID_ZASOB=cw1.ID_ZASOB
  372. left join ADMIN_USERS as au on au.ID=cap.REMOTE_ID and cap.REMOTE_TABLE='ADMIN_USERS' and au.A_STATUS='NORMAL'
  373. where cw.ID_PROCES = t1.ID and au.ADM_ACCOUNT=cto.A_RECORD_CREATE_AUTHOR and cto.OCENA>1 and ctp.TEST_TYPE='TEORETYCZNY') as CQTAnsOk -- pracownicy ktorzy sa przyporzadkowani do procesow ile udzielili odpowiedzi
  374. , (select count(distinct(cto.ID)) from CRM_TESTY_ODPOWIEDZI as cto left join CRM_TESTY_PYTANIA as ctp on cto.ID_PYTANIE=ctp.ID
  375. left join CRM_WSKAZNIK as cw on cw.ID_PROCES=ctp.ID_PROCES
  376. left join _CRM_PROCES_STATS_proc_wiev as cps on cps.ID=cw.ID_PROCES
  377. left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cps.ID_PROCES_INIT
  378. left join CRM_AUTH_PROFILE as cap on cap.ID_ZASOB=cw1.ID_ZASOB
  379. left join ADMIN_USERS as au on au.ID=cap.REMOTE_ID and cap.REMOTE_TABLE='ADMIN_USERS' and au.A_STATUS='NORMAL'
  380. where cw.ID_PROCES = t1.ID and au.ADM_ACCOUNT=cto.A_RECORD_CREATE_AUTHOR and cto.OCENA>1 and ctp.TEST_TYPE='PRAKTYCZNY') as CQPWAnsOk -- pracownicy ktorzy sa przyporzadkowani do procesow ile udzielili odpowiedzi
  381. , (select count(distinct(cto.ID)) from CRM_TESTY_ODPOWIEDZI as cto left join CRM_TESTY_PYTANIA as ctp on cto.ID_PYTANIE=ctp.ID
  382. left join CRM_WSKAZNIK as cw on cw.ID_PROCES=ctp.ID_PROCES
  383. left join _CRM_PROCES_STATS_proc_wiev as cps on cps.ID=cw.ID_PROCES
  384. left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cps.ID_PROCES_INIT
  385. left join CRM_AUTH_PROFILE as cap on cap.ID_ZASOB=cw1.ID_ZASOB
  386. left join ADMIN_USERS as au on au.ID=cap.REMOTE_ID and cap.REMOTE_TABLE='ADMIN_USERS'
  387. where cw.ID_PROCES = t1.ID and au.ADM_ACCOUNT=cto.A_RECORD_CREATE_AUTHOR and cto.OCENA>1 and ctp.TEST_TYPE='PRAKTYCZNY') as CQPAnsOk -- pracownicy ktorzy sa przyporzadkowani do procesow ile udzielili odpowiedzi praktycznych
  388. , (select min(A_RECORD_CREATE_DATE) from CRM_WSKAZNIK where ID_PROCES=t1.ID and A_STATUS!='DELETED') as MinResCreDate
  389. , (select max(A_RECORD_UPDATE_DATE) from CRM_WSKAZNIK where ID_PROCES=t1.ID and A_STATUS!='DELETED') as MaxResUpdDate
  390. , (select min(A_RECORD_CREATE_DATE) from CRM_PROCES where ID=t1.ID and A_STATUS!='DELETED') as MinProcCreDate
  391. , (select max(A_RECORD_UPDATE_DATE) from CRM_PROCES where ID=t1.ID and A_STATUS!='DELETED') as MaxProcUpdDate
  392. from
  393. _CRM_PROCES_STATS_proc_wiev as t2 join CRM_PROCES as t1 on t1.ID=t2.ID
  394. -- where t2.ID_PROCES_INIT=994
  395. -- group by t2.ID_PROCES_INIT
  396. group by t1.ID
  397. order by t1.A_RECORD_UPDATE_DATE desc";
  398. $sql['create__CRM_PROCES_STATS']="create table _CRM_PROCES_STATS
  399. ".$sql_tmp['select__CRM_PROCES_STATS'] ;
  400. $sql['alter__CRM_PROCES_STATS_unique_id']="alter table _CRM_PROCES_STATS add unique(ID)";
  401. $sql['drop__CRM_PROCES_INIT_STATS']="drop table if exists _CRM_PROCES_INIT_STATS";
  402. $sql_tmp['select_CRM_PROCES_INIT_STATS']="select t1.ID_PROCES_INIT as ID,left(t2.`DESC`,100) as `DESC`,t3.path, t3.lvl,sum(CSteps) as SCSteps,sum(CPics) as SCPics ,sum(CProcEdits+CResorEdits) as SCPREdits,
  403. sum(CQuestEdits) as SCQuestEdits,sum(CResPics) as SCResPics , sum(CResPicsS) as SCResPicsS,sum(CQuest) as SCQuest,sum(CQuestPract) as SCQuestPract,
  404. sum(CQRes) as SCQRes,sum(CQPRes) as SCQPRes,sum(CQErrRes) as CQErrRes,sum(CWorkers) as SCWorkers,sum(CQTAnsOk) as SCQTAnsOk,sum(CQPWAnsOk) as CQPWAnsOk, sum(CQPAnsOk) as SCQPAnsOk
  405. ,(select count(ID) from CRM_TESTY where ID_PROCES_INIT=t1.ID_PROCES_INIT and TEST_TYPE='TEORETYCZNY') as STestTeor
  406. ,(select count(ID) from CRM_TESTY where ID_PROCES_INIT=t1.ID_PROCES_INIT and TEST_TYPE='PRAKTYCNZY') as STestPrakt
  407. ,(select avg(OCENA) from CRM_TESTY where ID_PROCES_INIT=t1.ID_PROCES_INIT) as AvgMark
  408. ,(select avg(DISCOUNT) from CRM_TESTY where ID_PROCES_INIT=t1.ID_PROCES_INIT) as AvgDiscount
  409. ,min(MinProcCreDate) as MinProcCreDate , max(MaxProcUpdDate) as MaxProcUpdDate
  410. -- todo lista osob ktora powinna zdac test teoretyczny i taka sama praktyczny wyliczana w oparciu o to czy sa testy i ile jest stanowisk
  411. , (
  412. select if ((select sum(CQuestTeor) from _CRM_PROCES_STATS where ID_PROCES_INIT=t1.ID_PROCES_INIT)>0,
  413. concat('brak:',sum(if(ct.ID<1 or ct.ID is null ,1,0)),'/popraw:' ,
  414. sum(if(ct.OCENA > 0 and ct.OCENA<2.5,1,0)) ) ,0) from ADMIN_USERS as au
  415. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  416. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB
  417. left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cw.ID_PROCES and ct.ID_TESTER=au.ID and ct.TEST_TYPE='TEORETYCZNY'
  418. where au.A_STATUS='NORMAL' and cw.ID_PROCES=t1.ID_PROCES_INIT
  419. ) as CTTWinfo
  420. , (
  421. select if ((select sum(CQuestTeor) from _CRM_PROCES_STATS where ID_PROCES_INIT=t1.ID_PROCES_INIT)>0,
  422. concat('brak:',sum(if(ct.ID<1 or ct.ID is null ,1,0)),'/popraw:' ,
  423. sum(if(ct.OCENA > 0 and ct.OCENA<2.5,1,0)) ) ,0) from ADMIN_USERS as au
  424. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  425. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB
  426. left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cw.ID_PROCES and ct.ID_TESTER=au.ID and ct.TEST_TYPE='PRAKTYCZNY'
  427. where au.A_STATUS='NORMAL' and cw.ID_PROCES=t1.ID_PROCES_INIT
  428. ) as CTPWinfo
  429. , '' as A_ADM_COMPANY, '' as A_CLASSIFIED
  430. from _CRM_PROCES_STATS as t1
  431. left join CRM_PROCES as t2 on t1.ID_PROCES_INIT=t2.ID
  432. left join _CRM_PROCES_STATS_proc_wiev as t3 on t3.ID=t1.ID_PROCES_INIT
  433. group by t1.ID_PROCES_INIT
  434. ";
  435. $sql['create__CRM_PROCES_INIT_STATS']="create table _CRM_PROCES_INIT_STATS ".$sql_tmp['select_CRM_PROCES_INIT_STATS'];
  436. $sql['alter__CRM_PROCES_INIT_STATS_mod_id']="alter table _CRM_PROCES_INIT_STATS modify ID int(11)";
  437. $sql['alter__CRM_PROCES_INIT_STATS_add_uniq']="alter table _CRM_PROCES_INIT_STATS add unique(ID)";
  438. $sql['alter__CRM_PROCES_INIT_STATS_SCPREdits']="alter table `_CRM_PROCES_INIT_STATS` CHANGE `SCPREdits` `SCPREdits` decimal(42,0)";
  439. $sql['event_delete_CRM_PROCES_INIT_STATS']="drop event if exists _CRM_PROCES_INIT_STATS_event";
  440. $sql['event_create_CRM_PROCES_INIT_STATS']="CREATE DEFINER=root@localhost EVENT _CRM_PROCES_INIT_STATS_event
  441. ON SCHEDULE EVERY 1 DAY
  442. STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  443. DO
  444. BEGIN
  445. SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
  446. replace into _CRM_PROCES_INIT_STATS ".$sql_tmp['select_CRM_PROCES_INIT_STATS']." ;
  447. END
  448. ";
  449. $sql['event_delete_CRM_PROCES_STATS']="drop event if exists _CRM_PROCES_STATS_event";
  450. $sql['event_create_CRM_PROCES_STATS']="CREATE DEFINER=root@localhost EVENT _CRM_PROCES_STATS_event
  451. ON SCHEDULE EVERY 1 DAY
  452. STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  453. DO
  454. BEGIN
  455. SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
  456. replace into _CRM_PROCES_STATS ".$sql_tmp['select__CRM_PROCES_STATS']." ;
  457. END
  458. ";
  459. $sql['event_delete_CRM_PROCES_STATS_proc_view']="drop event if exists `_CRM_PROCES_STATS_proc_wiev_event`";
  460. $sql['event_create_CRM_PROCES_STATS_proc_view']="CREATE DEFINER=root@localhost EVENT `_CRM_PROCES_STATS_proc_wiev_event`
  461. ON SCHEDULE EVERY 1 DAY
  462. STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  463. DO
  464. BEGIN
  465. replace into `_CRM_PROCES_STATS_proc_wiev`
  466. SELECT hi.ID,CRM_PROCES_tree_detect_init(hi.ID) as ID_PROCES_INIT,CONCAT(REPEAT(' ', lvl - 1), hi.id) AS treeitem,
  467. hierarchy_sys_connect_by_path('/', hi.id) AS path,
  468. PARENT_ID, lvl,
  469. CASE
  470. WHEN lvl >= @maxlevel THEN 1
  471. ELSE COALESCE(
  472. (
  473. SELECT 0
  474. FROM `CRM_PROCES` hl
  475. WHERE hl.PARENT_ID = ho.id
  476. AND hl.id <> @start_with
  477. LIMIT 1
  478. ), 1)
  479. END AS is_leaf,
  480. hierarchy_connect_by_iscycle(hi.id) AS is_cycle
  481. FROM (
  482. SELECT hierarchy_connect_by_parent_eq_prior_id_with_level_and_loop(id, @maxlevel) AS id,
  483. CAST(@level AS SIGNED) AS lvl
  484. FROM (
  485. SELECT @start_with := 0,
  486. @id := @start_with,
  487. @level := 0,
  488. @maxlevel := 1000
  489. ) vars, CRM_PROCES
  490. WHERE @id IS NOT NULL
  491. ) ho
  492. JOIN `CRM_PROCES` hi
  493. ON hi.id = ho.id ;
  494. END
  495. ";
  496. /*
  497. -- stworzenie tabeli do planowania harmonogramow testow i szkolen
  498. -- proponuje widok!
  499. -- drop table if exists _CRM_PROCES_USER_STATS;
  500. -- create table _CRM_PROCES_USER_STATS
  501. -- DROP VIEW _CRM_PROCES_USER_STATS_wiev;
  502. */
  503. $sql['drop_CRM_LISTA_ZASOBOW_tree_detect_kierownik']="drop function if exists CRM_LISTA_ZASOBOW_tree_detect_kierownik";
  504. $sql['create_CRM_LISTA_ZASOBOW_tree_detect_kierownik']="CREATE DEFINER=`root`@`localhost` FUNCTION `CRM_LISTA_ZASOBOW_tree_detect_kierownik`(`node` INT) RETURNS text CHARSET latin2
  505. READS SQL DATA
  506. BEGIN
  507. DECLARE _path INT;
  508. DECLARE _type CHAR(255);
  509. DECLARE _cpath TEXT;
  510. DECLARE _id INT;
  511. DECLARE _id_cur INT;
  512. DECLARE _group_name CHAR(255);
  513. DECLARE EXIT HANDLER FOR NOT FOUND RETURN _group_name;
  514. SET _id = COALESCE(node, @id);
  515. SELECT NAME from LDAP_GROUPS where ID=node
  516. INTO _group_name;
  517. label1: LOOP
  518. SELECT t1.PARENT_ID,t1.TYPE,t1.ID
  519. INTO _id,_type,_id_cur
  520. FROM CRM_LISTA_ZASOBOW t1
  521. WHERE t1.id = _id
  522. -- AND COALESCE(id <> @start_with, TRUE);
  523. ;
  524. if _type = 'STANOWISKO' and node!=_id_cur THEN
  525. SET _path = _id_cur;
  526. SELECT NAME from LDAP_GROUPS where ID=_id_cur
  527. INTO _group_name;
  528. RETURN _group_name;
  529. LEAVE label1;
  530. END IF;
  531. END LOOP label1;
  532. END";
  533. $sql['replace__CRM_PROCES_USER_STATS_wiev_to_group']="create or replace definer=`root`@`localhost` view _CRM_PROCES_USER_STATS_wiev_to_group as
  534. select concat(au.ID,cw.ID,0) as ID,cps.ID as ID_PROCES , left(cps.`DESC`,50) as `DESC`
  535. ,au.ADM_ACCOUNT
  536. ,cps.path
  537. , 'TEORETYCZNY' as TEST_TYPE,cps.SCQuest , max(ct.OCENA) as OCENA , max(ct.TEST_END) as TEST_END
  538. -- , max(if(ct.TEST_TYPE='TEORETYCZNY',ct.OCENA,NULL)) as OCENA_T
  539. -- , max(if(ct.TEST_TYPE='PRAKTYCZNY',ct.OCENA,NULL)) as OCENA_P
  540. , au.EMPLOYEE_TYPE , au.A_RECORD_CREATE_DATE, au.A_RECORD_UPDATE_DATE , au.L_APPOITMENT_DATE, au.L_APPOITMENT_INFO, au.L_APPOITMENT_USER
  541. from ADMIN_USERS as au
  542. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  543. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB and cw.A_STATUS in ('NORMAL','WAITING')
  544. left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cw.ID_PROCES and ct.ID_TESTER=au.ID and ct.TEST_TYPE='TEORETYCZNY'
  545. left join _CRM_PROCES_INIT_STATS as cps on cps.ID=cw.ID_PROCES
  546. where au.A_STATUS='NORMAL'
  547. and cps.SCQuest>0
  548. group by au.ID, cps.ID
  549. -- order by ct.OCENA desc
  550. -- limit 10
  551. -- dodatkowe GOTO_AND_RETURN
  552. union
  553. select concat(au.ID,cw.ID,1) as ID,cps.ID as ID_PROCES , left(cps.`DESC`,50) as `DESC`
  554. ,au.ADM_ACCOUNT
  555. ,cps.path
  556. , 'TEORETYCZNY' as TEST_TYPE,cps.SCQuest , max(ct.OCENA) as OCENA , max(ct.TEST_END) as TEST_END
  557. -- , max(if(ct.TEST_TYPE='TEORETYCZNY',ct.OCENA,NULL)) as OCENA_T
  558. -- , max(if(ct.TEST_TYPE='PRAKTYCZNY',ct.OCENA,NULL)) as OCENA_P
  559. , au.EMPLOYEE_TYPE , au.A_RECORD_CREATE_DATE, au.A_RECORD_UPDATE_DATE , au.L_APPOITMENT_DATE, au.L_APPOITMENT_INFO, au.L_APPOITMENT_USER
  560. from ADMIN_USERS as au
  561. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  562. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB and cw.A_STATUS in ('NORMAL','WAITING')
  563. left join _CRM_PROCES_GOTO_CACHE as cpgc on cpgc.ID_PROCES_INIT=cw.ID_PROCES
  564. left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cpgc.IF_TRUE_GOTO and ct.ID_TESTER=au.ID and ct.TEST_TYPE='TEORETYCZNY'
  565. left join _CRM_PROCES_INIT_STATS as cps on cps.ID=cpgc.IF_TRUE_GOTO
  566. where au.A_STATUS='NORMAL'
  567. and cps.SCQuest>0
  568. group by au.ID, cps.ID
  569. union
  570. select concat(au.ID,cw.ID,2) as ID, cps.ID as ID_PROCES , left(cps.`DESC`,50) as `DESC`
  571. ,au.ADM_ACCOUNT
  572. ,cps.path
  573. , 'PRAKTYCZNY' as TEST_TYPE, cps.SCQuestPract , max(ct.OCENA) as OCENA, max(ct.TEST_END) as TEST_END
  574. , au.EMPLOYEE_TYPE , au.A_RECORD_CREATE_DATE, au.A_RECORD_UPDATE_DATE , au.L_APPOITMENT_DATE, au.L_APPOITMENT_INFO, au.L_APPOITMENT_USER
  575. from ADMIN_USERS as au
  576. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  577. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB and cw.A_STATUS in ('NORMAL','WAITING')
  578. left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cw.ID_PROCES and ct.ID_TESTER=au.ID and ct.TEST_TYPE='PRAKTYCZNY'
  579. left join _CRM_PROCES_INIT_STATS as cps on cps.ID=cw.ID_PROCES
  580. where au.A_STATUS='NORMAL'
  581. and cps.SCQuestPract>0
  582. group by au.ID,cps.ID
  583. -- dodatkowe GOTO_AND_RETURN
  584. union
  585. select concat(au.ID,cw.ID,3) as ID, cps.ID as ID_PROCES , left(cps.`DESC`,50) as `DESC`
  586. ,au.ADM_ACCOUNT
  587. ,cps.path
  588. , 'PRAKTYCZNY' as TEST_TYPE, cps.SCQuestPract , max(ct.OCENA) as OCENA, max(ct.TEST_END) as TEST_END
  589. , au.EMPLOYEE_TYPE, au.A_RECORD_CREATE_DATE, au.A_RECORD_UPDATE_DATE , au.L_APPOITMENT_DATE, au.L_APPOITMENT_INFO, au.L_APPOITMENT_USER
  590. from ADMIN_USERS as au
  591. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  592. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB and cw.A_STATUS in ('NORMAL','WAITING')
  593. left join _CRM_PROCES_GOTO_CACHE as cpgc on cpgc.ID_PROCES_INIT=cw.ID_PROCES
  594. left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cpgc.IF_TRUE_GOTO and ct.ID_TESTER=au.ID and ct.TEST_TYPE='PRAKTYCZNY'
  595. left join _CRM_PROCES_INIT_STATS as cps on cps.ID=cpgc.IF_TRUE_GOTO
  596. where au.A_STATUS='NORMAL'
  597. and cps.SCQuestPract>0
  598. group by au.ID,cps.ID
  599. ";
  600. $sql['replace__CRM_PROCES_USER_STATS_wiev']="create or replace definer=`root`@`localhost` view _CRM_PROCES_USER_STATS_wiev as
  601. select ID,ID_PROCES, `DESC`, ADM_ACCOUNT, EMPLOYEE_TYPE,A_RECORD_CREATE_DATE, A_RECORD_UPDATE_DATE ,L_APPOITMENT_DATE,L_APPOITMENT_INFO, L_APPOITMENT_USER, path,TEST_TYPE,SCQuest,OCENA,TEST_END
  602. from _CRM_PROCES_USER_STATS_wiev_to_group
  603. group by ADM_ACCOUNT,ID_PROCES,TEST_TYPE ";
  604. $sql['reaplce_DEVICES_GROUP_view']="create or replace definer=`root`@`localhost` VIEW `DEVICES_GROUP` AS select max(`DEVICES`.`ID`) AS `ID`,`DEVICES`.`A_RECORD_CREATE_DATE` AS `A_RECORD_CREATE_DATE`,`DEVICES`.`A_RECORD_CREATE_AUTHOR` AS `A_RECORD_CREATE_AUTHOR`,`DEVICES`.`A_RECORD_UPDATE_DATE` AS `A_RECORD_UPDATE_DATE`,`DEVICES`.`A_RECORD_UPDATE_AUTHOR` AS `A_RECORD_UPDATE_AUTHOR`,`DEVICES`.`A_PROBLEM` AS `A_PROBLEM`,`DEVICES`.`A_PROBLEM_DESC` AS `A_PROBLEM_DESC`,`DEVICES`.`A_PROBLEM_DATE` AS `A_PROBLEM_DATE`,`DEVICES`.`A_STATUS` AS `A_STATUS`,`DEVICES`.`A_STATUS_INFO` AS `A_STATUS_INFO`,`DEVICES`.`A_STATUS_LASTCHANGE_DATE` AS `A_STATUS_LASTCHANGE_DATE`,`DEVICES`.`A_UPDATE_DATE` AS `A_UPDATE_DATE`,`DEVICES`.`A_ADM_COMPANY` AS `A_ADM_COMPANY`,`DEVICES`.`S_OTHER_INFO` AS `S_OTHER_INFO`,`DEVICES`.`S_IP` AS `S_IP`,`DEVICES`.`T_NETWORK_SERVER` AS `T_NETWORK_SERVER`,`DEVICES`.`T_DEVICE_SERIAL` AS `T_DEVICE_SERIAL`,group_concat(distinct `DEVICES`.`T_DEVICE_TYPE` order by `DEVICES`.`T_DEVICE_TYPE` ASC separator ',') AS `T_DEVICE_TYPE`,`DEVICES`.`T_DEVICE_PORTS_OK` AS `T_DEVICE_PORTS_OK`,`DEVICES`.`T_DEVICE_INFO` AS `T_DEVICE_INFO`,`DEVICES`.`T_DEVICE_POWER` AS `T_DEVICE_POWER`,`DEVICES`.`T_TELBOX_NEIGHBOUR_IN` AS `T_TELBOX_NEIGHBOUR_IN`,`DEVICES`.`T_TELBOX_NEIGHBOUR_IN_ID` AS `T_TELBOX_NEIGHBOUR_IN_ID`,`tb`.`T_TELBOX_NAME` AS `T_TELBOX_NAME`,`DEVICES`.`T_PRODUCER` AS `T_PRODUCER`,`DEVICES`.`T_PRODUCTION_DATE` AS `T_PRODUCTION_DATE`,`DEVICES`.`T_BUY_DATE` AS `T_BUY_DATE`,`DEVICES`.`T_SELLER` AS `T_SELLER`,`DEVICES`.`T_OWNER` AS `T_OWNER`,`DEVICES`.`T_GUARRANTY_EXPIRE` AS `T_GUARRANTY_EXPIRE`,`DEVICES`.`T_PAPERBOX_LOCATION` AS `T_PAPERBOX_LOCATION`,`DEVICES`.`F_BILL_DATE` AS `F_BILL_DATE`,`DEVICES`.`F_BILL_NUMBER` AS `F_BILL_NUMBER`,`DEVICES`.`F_BILL_POSITION` AS `F_BILL_POSITION`,`DEVICES`.`F_BILL_COST` AS `F_BILL_COST`,`DEVICES`.`S_HW` AS `S_HW`,`DEVICES`.`CRM_LISTA_ZASOBOW_ID` AS `CRM_LISTA_ZASOBOW_ID`,`cz`.`OPIS` AS `CRM_LISTA_ZASOBOW_OPIS`,`cz`.`DESC` AS `CRM_LISTA_ZASOBOW_DESC`,`DEVICES`.`ID_PROJECT` AS `ID_PROJECT`,`DEVICES`.`L_APPOITMENT_DATE` AS `L_APPOITMENT_DATE`,`DEVICES`.`L_APPOITMENT_USER` AS `L_APPOITMENT_USER`,`DEVICES`.`L_APPOITMENT_PERIOD` AS `L_APPOITMENT_PERIOD`,`DEVICES`.`L_APPOITMENT_INFO` AS `L_APPOITMENT_INFO`,`DEVICES`.`L_APPOITMENT_TYPE` AS `L_APPOITMENT_TYPE`,`DEVICES`.`L_CALENDAR` AS `L_CALENDAR`,`DEVICES`.`P_ACCOUNT` AS `P_ACCOUNT`,`DEVICES`.`ID_BILLING_USERS` AS `ID_BILLING_USERS`,`DEVICES`.`ID_SERVICES` AS `ID_SERVICES`,`DEVICES`.`A_CLASSIFIED` AS `A_CLASSIFIED`,`DEVICES`.`ADM_PASSWD` AS `ADM_PASSWD`,`DEVICES`.`S_PASSWD` AS `S_PASSWD`,count(`DEVICES`.`ID`) AS `ILE` from ((`DEVICES` left join `CRM_LISTA_ZASOBOW` `cz` on((`cz`.`ID` = `DEVICES`.`CRM_LISTA_ZASOBOW_ID`))) left join `TELBOXES` `tb` on((`tb`.`ID` = `DEVICES`.`T_TELBOX_NEIGHBOUR_IN_ID`))) group by `DEVICES`.`A_STATUS`,`DEVICES`.`CRM_LISTA_ZASOBOW_ID`,`DEVICES`.`T_TELBOX_NEIGHBOUR_IN_ID`";
  605. $sql['event_drop_CRM_PROCES_USER_OCENA_OKRES']="drop event if exists CRM_PROCES_USER_OCENA_OKRES_event ";
  606. $sql['event_create_CRM_PROCES_USER_OCENA_OKRES']=" CREATE DEFINER=root@localhost EVENT CRM_PROCES_USER_OCENA_OKRES_event
  607. ON SCHEDULE EVERY 1 DAY
  608. STARTS str_to_date( date_format(now(), '%Y%m%d 0600'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  609. DO
  610. BEGIN
  611. SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
  612. insert ignore into CRM_PROCES_USER_OCENA_OKRES (ID,CW_ID,DATE,ID_PROCES,`DESC`,OPIS_ZASOB,L_APPOITMENT_USER,A_CLASSIFIED,A_ADM_COMPANY,FUNCTION)
  613. select '', group_concat(cw.ID) as CW_ID , now() ,cps.ID as ID_PROCES , left(cps.`DESC`,200) as `DESC` , group_concat(cw.`OPIS_ZASOB`) as OPIS_ZASOB
  614. ,au.ADM_ACCOUNT ,CRM_LISTA_ZASOBOW_tree_detect_kierownik(cw.ID_ZASOB),CRM_LISTA_ZASOBOW_tree_detect_kierownik(cw.ID_ZASOB),concat('[',cz.ID,'] ',cz.`DESC`)
  615. from ADMIN_USERS as au
  616. left join CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING') and cap.SHOW_IN_PERIOD_MARK!='NO'
  617. left join CRM_WSKAZNIK as cw on cw.ID_ZASOB=cap.ID_ZASOB and cw.A_STATUS in ('NORMAL','WAITING')
  618. left join CRM_LISTA_ZASOBOW as cz on cz.ID=cw.ID_ZASOB
  619. -- left join CRM_TESTY as ct on ct.ID_PROCES_INIT=cw.ID_PROCES and ct.ID_TESTER=au.ID and ct.TEST_TYPE='TEORETYCZNY'
  620. left join _CRM_PROCES_INIT_STATS as cps on cps.ID=cw.ID_PROCES
  621. where au.A_STATUS='NORMAL' and cps.ID is not null
  622. -- and cps.SCQuest>0
  623. group by au.ID, cps.ID , cw.ID;
  624. END
  625. ";
  626. $sql['view__GRAFIK_PRACY']="CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `GRAFIK_PRACY_view` AS select `GRAFIK_PRACY`.`ID` AS `ID`,year(`GRAFIK_PRACY`.`DATE`) AS `rok`,month(`GRAFIK_PRACY`.`DATE`) AS `miesiac`,`GRAFIK_PRACY`.`L_APPOITMENT_USER` AS `L_APPOITMENT_USER`,(sum(time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR`,`GRAFIK_PRACY`.`START_WORK_HOUR`))) / 3600) AS `GODZIN_PLANOWO`,(sum(time_to_sec(timediff(if(`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`),`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`))) / 3600) AS `GODZIN_FAKTYCZNIE`,(sum(if((time_to_sec(timediff(`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`START_WORK_HOUR`)) > 0),time_to_sec(timediff(`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`START_WORK_HOUR`)),0)) / 3600) AS `GODZIN_SPOZNIEN`,(sum(if((`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM` and (time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR`,`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`)) > 0)),time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR`,`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`)),0)) / 3600) AS `GODZIN_WYJSC_PRZED_CZASEM`,(sum((`GRAFIK_PRACY`.`BREAK1_MINUTES` + `GRAFIK_PRACY`.`BREAK2_MINUTES`)) / 60) AS `CZAS_PRZERW`,sum((if((`GRAFIK_PRACY`.`BREAK1_MINUTES` > 0),1,0) + if((`GRAFIK_PRACY`.`BREAK2_MINUTES` > 0),1,0))) AS `ILOSC_PRZERW`,sum(if((`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM` and `GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`),1,0)) AS `DNI_W_PRACY`,count(`GRAFIK_PRACY`.`ID`) AS `ILOSC_DNI`,sum((if((`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM` and `GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`),(time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`)) - time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR`,`GRAFIK_PRACY`.`START_WORK_HOUR`))),0) / 3600)) AS `NADGODZINY`,(sum((if((`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM` and (time_to_sec(timediff('07:00:00',`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`)) > 0)),time_to_sec(timediff('07:00:00',`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`)),0) + if((`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM` and (time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,'21:00:00')) > 0)),time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,'21:00:00')),0))) / 3600) AS `GODZIN_W_NOCY`,(sum(if((`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM` and (time_to_sec(timediff(`GRAFIK_PRACY`.`START_WORK_HOUR`,`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`)) > 0)),time_to_sec(timediff(`GRAFIK_PRACY`.`START_WORK_HOUR`,`GRAFIK_PRACY`.`START_WORK_HOUR_CONFIRM`)),0)) / 3600) AS `GODZIN_PRZYJSC_PRZED_CZASEM`,(sum(if((time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`END_WORK_HOUR`)) > 0),time_to_sec(timediff(`GRAFIK_PRACY`.`END_WORK_HOUR_CONFIRM`,`GRAFIK_PRACY`.`END_WORK_HOUR`)),0)) / 3600) AS `GODZIN_WYJSC_PO_CZASIE` , `GRAFIK_PRACY`.`A_ADM_COMPANY` as `A_ADM_COMPANY`, `GRAFIK_PRACY`.`A_CLASSIFIED` as `A_CLASSIFIED` from `GRAFIK_PRACY` group by `GRAFIK_PRACY`.`L_APPOITMENT_USER`,year(`GRAFIK_PRACY`.`DATE`),month(`GRAFIK_PRACY`.`DATE`)
  627. ";
  628. $sql['procedure_GRAFIK_PRACY_FILL_DATE_drop']="drop procedure if exists GRAFIK_PRACY_FILL_DATE";
  629. $sql['procedure_GRAFIK_PRACY_FILL_DATE_create']="CREATE PROCEDURE GRAFIK_PRACY_FILL_DATE(start_date DATE, end_date DATE)
  630. BEGIN
  631. DECLARE crt_date DATE;
  632. DECLARE USER TEXT;
  633. DECLARE COUNT_USERS integer;
  634. DECLARE USERS_counter int;
  635. DECLARE ACL_GROUP TEXT;
  636. DECLARE USER_GROUP TEXT;
  637. SET @USERS_counter = 0;
  638. SET USERS_counter = 0;
  639. SET @ACL_GROUP = '';
  640. SET @USER_GROUP = '';
  641. SELECT COUNT(`ID`) into COUNT_USERS FROM ADMIN_USERS WHERE EMPLOYEE_TYPE='Pracownik' and A_STATUS='NORMAL';
  642. WHILE USERS_counter < COUNT_USERS DO
  643. SET crt_date=start_date;
  644. PREPARE stmt FROM \"SELECT ADM_ACCOUNT into @USER from ADMIN_USERS WHERE EMPLOYEE_TYPE='Pracownik' and A_STATUS='NORMAL' limit ?,1;\";
  645. EXECUTE stmt USING @USERS_counter ;
  646. DEALLOCATE PREPARE stmt;
  647. PREPARE stmt FROM \"SELECT DEFAULT_ACL_GROUP into @ACL_GROUP from ADMIN_USERS WHERE EMPLOYEE_TYPE='Pracownik' and A_STATUS='NORMAL' limit ?,1;\";
  648. EXECUTE stmt USING @USERS_counter ;
  649. DEALLOCATE PREPARE stmt;
  650. PREPARE stmt FROM \"SELECT EMPLOYEE_TYPE into @EMPLOYEE_TYPE from ADMIN_USERS WHERE EMPLOYEE_TYPE='Pracownik' and A_STATUS='NORMAL' limit ?,1;\";
  651. EXECUTE stmt USING @USERS_counter ;
  652. DEALLOCATE PREPARE stmt;
  653. SELECT GROUP_CONCAT(concat('[',cap.ID_ZASOB,']')) into @USER_GROUP from ADMIN_USERS au
  654. LEFT JOIN CRM_AUTH_PROFILE as cap on cap.REMOTE_ID=au.ID and cap.REMOTE_TABLE='ADMIN_USERS' and cap.A_STATUS in ('NORMAL','WAITING')
  655. WHERE au.ADM_ACCOUNT=@USER ;
  656. WHILE crt_date < end_date DO
  657. INSERT ignore INTO GRAFIK_PRACY (`L_APPOITMENT_USER`,`DATE`,`WEEK`,`DAY_OF_WEEK`,`A_CLASSIFIED`,`A_ADM_COMPANY`,`USER_GROUPS`,`EMPLOYEE_TYPE`) VALUES(@USER , crt_date,date_format(crt_date,'%v'),date_format(crt_date,'%W'), @ACL_GROUP,@ACL_GROUP, @USER_GROUP ,@EMPLOYEE_TYPE);
  658. SET crt_date = ADDDATE(crt_date, INTERVAL 1 DAY);
  659. END WHILE;
  660. SET USERS_counter = USERS_counter +1;
  661. SET @USERS_counter = @USERS_counter +1;
  662. END WHILE;
  663. END";
  664. $sql['event_delete_GRAFIK_PRACY_FILL_DATE']="drop event if exists GRAFIK_PRACY_FILL_DATE_event";
  665. $sql['event_create_GRAFIK_PRACY_FILL_DATE']="CREATE DEFINER=root@localhost EVENT GRAFIK_PRACY_FILL_DATE_event
  666. ON SCHEDULE EVERY 1 DAY
  667. STARTS str_to_date( date_format(now(), '%Y%m%d 0400'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  668. DO
  669. BEGIN
  670. call GRAFIK_PRACY_FILL_DATE(date_format(now(),'%Y-%m-01'),date_format(DATE_ADD(now(),INTERVAL + 2 MONTH ),'%Y-%m-01'));
  671. END
  672. ";
  673. $sql['view__in7_dziennik_koresp_budget_view']="
  674. CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `in7_dziennik_koresp_budget_view` AS select `k`.`ID` AS `ID`,`k`.`path` AS `path`,`k`.`ID_PROJECT` AS `ID_PROJECT`,year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) AS `rok`,month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) AS `miesiac`,date_format(`k`.`K_DATA_OTRZYMANEJ_KORESP`,'%Y-%m') AS `data`,sum(`k`.`COST_VALUE`) AS `sum_k`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '0') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_0`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '1') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_1`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '2') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_2`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '3') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_3`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '4') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_4`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '5') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_5`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '6') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_6`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '7') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_7`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '8') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_8`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '9') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_9`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '10') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_10`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '11') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_11`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '12') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_12`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '13') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_13`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '0') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_0`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '1') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_1`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '2') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_2`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '3') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_3`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '4') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_4`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '5') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_5`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '6') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_6`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '7') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_7`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '8') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_8`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '9') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_9`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '10') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_10`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '11') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_11`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '12') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_12`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '13') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_13`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '0') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_0`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '1') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_1`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '2') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_2`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '3') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_3`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '4') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_4`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '5') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_5`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '6') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_6`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '7') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_7`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '8') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_8`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '9') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_9`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '10') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_10`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '11') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_11`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '12') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_12`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '13') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_13` from `IN7_DZIENNIK_KORESP` `k` where (`k`.`COST_VALUE` <> '') group by `k`.`ID_PROJECT`;
  675. ";
  676. $sql['view__in7_dziennik_koresp_budget_main_view']="
  677. CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `in7_dziennik_koresp_budget_main_view` AS select cast(substring_index(substring_index(`k`.`path`,'-',2),'-',-(1)) as signed) AS `ID`,substring_index(`k`.`path`,'-',2) AS `path`,cast(concat(',',group_concat(distinct `k`.`ID_PROJECT` order by `k`.`ID_PROJECT` ASC separator ','),',') as char charset utf8) AS `ID_PROJECT`,year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) AS `rok`, sum(`k`.`COST_VALUE`) AS `sum_k`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '0') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_0`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '1') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_1`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '2') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_2`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '3') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_3`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '4') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_4`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '5') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_5`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '6') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_6`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '7') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_7`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '8') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_8`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '9') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_9`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '10') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_10`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '11') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_11`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '12') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_12`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '13') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = year(now()))),`k`.`COST_VALUE`,0)) AS `sum_13`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '0') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_0`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '1') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_1`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '2') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_2`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '3') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_3`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '4') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_4`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '5') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_5`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '6') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_6`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '7') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_7`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '8') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_8`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '9') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_9`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '10') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_10`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '11') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_11`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '12') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_12`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '13') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) - 1))),`k`.`COST_VALUE`,0)) AS `sum_ly_13`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '0') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_0`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '1') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_1`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '2') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_2`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '3') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_3`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '4') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_4`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '5') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_5`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '6') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_6`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '7') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_7`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '8') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_8`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '9') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_9`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '10') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_10`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '11') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_11`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '12') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_12`,sum(if(((month(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = '13') and (year(`k`.`K_DATA_OTRZYMANEJ_KORESP`) = (year(now()) + 1))),`k`.`COST_VALUE`,0)) AS `sum_ny_13` from `IN7_DZIENNIK_KORESP` `k` where (`k`.`COST_VALUE` <> '') group by substring_index(`k`.`path`,'-',2);
  678. ";
  679. $sql['view__budget_project_to_realization_view']="
  680. CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `budget_project_to_realization_view` AS select `p`.`ID` AS `ID`,`p`.`ID_PROJECT` AS `ID_PROJECT`,`k`.`path` AS `path`,`p`.`YEAR` AS `YEAR`,`p`.`MONTH_1_VALUE` AS `MONTH_1_VALUE`,`k`.`sum_1` AS `sum_1`,`p`.`MONTH_2_VALUE` AS `MONTH_2_VALUE`,`k`.`sum_2` AS `sum_2`,`p`.`MONTH_3_VALUE` AS `MONTH_3_VALUE`,`k`.`sum_3` AS `sum_3`,`p`.`MONTH_4_VALUE` AS `MONTH_4_VALUE`,`k`.`sum_4` AS `sum_4`,`p`.`MONTH_5_VALUE` AS `MONTH_5_VALUE`,`k`.`sum_5` AS `sum_5`,`p`.`MONTH_6_VALUE` AS `MONTH_6_VALUE`,`k`.`sum_6` AS `sum_6`,`p`.`MONTH_7_VALUE` AS `MONTH_7_VALUE`,`k`.`sum_7` AS `sum_7`,`p`.`MONTH_8_VALUE` AS `MONTH_8_VALUE`,`k`.`sum_8` AS `sum_8`,`p`.`MONTH_9_VALUE` AS `MONTH_9_VALUE`,`k`.`sum_9` AS `sum_9`,`p`.`MONTH_10_VALUE` AS `MONTH_10_VALUE`,`k`.`sum_10` AS `sum_10`,`p`.`MONTH_11_VALUE` AS `MONTH_11_VALUE`,`k`.`sum_11` AS `sum_11`,`p`.`MONTH_12_VALUE` AS `MONTH_12_VALUE`,`k`.`sum_12` AS `sum_12` from (`projects_budget_year_month` `p` left join `in7_dziennik_koresp_budget_view` `k` on(((`k`.`ID_PROJECT` = `p`.`ID_PROJECT`) and (`p`.`YEAR` = `k`.`rok`))));
  681. ";
  682. $sql['view__budget_project_to_realization_main_view']="
  683. CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `budget_project_to_realization_main_view` AS select `p`.`ID` AS `ID`,`p`.`ID_PROJECT` AS `ID_PROJECT`,`k`.`path` AS `path`,`p`.`YEAR` AS `YEAR`,`p`.`MONTH_1_VALUE` AS `MONTH_1_VALUE`,`k`.`sum_1` AS `sum_1`,`p`.`MONTH_2_VALUE` AS `MONTH_2_VALUE`,`k`.`sum_2` AS `sum_2`,`p`.`MONTH_3_VALUE` AS `MONTH_3_VALUE`,`k`.`sum_3` AS `sum_3`,`p`.`MONTH_4_VALUE` AS `MONTH_4_VALUE`,`k`.`sum_4` AS `sum_4`,`p`.`MONTH_5_VALUE` AS `MONTH_5_VALUE`,`k`.`sum_5` AS `sum_5`,`p`.`MONTH_6_VALUE` AS `MONTH_6_VALUE`,`k`.`sum_6` AS `sum_6`,`p`.`MONTH_7_VALUE` AS `MONTH_7_VALUE`,`k`.`sum_7` AS `sum_7`,`p`.`MONTH_8_VALUE` AS `MONTH_8_VALUE`,`k`.`sum_8` AS `sum_8`,`p`.`MONTH_9_VALUE` AS `MONTH_9_VALUE`,`k`.`sum_9` AS `sum_9`,`p`.`MONTH_10_VALUE` AS `MONTH_10_VALUE`,`k`.`sum_10` AS `sum_10`,`p`.`MONTH_11_VALUE` AS `MONTH_11_VALUE`,`k`.`sum_11` AS `sum_11`,`p`.`MONTH_12_VALUE` AS `MONTH_12_VALUE`,`k`.`sum_12` AS `sum_12` from (`projects_budget_year_month` `p` left join `in7_dziennik_koresp_budget_main_view` `k` on(((`k`.`ID_PROJECT` = `p`.`ID_PROJECT`) and (`p`.`YEAR` = `k`.`rok`))));
  684. ";
  685. /*
  686. CREATE DEFINER=root@localhost EVENT _CRM_PROCES_STATS_event
  687. ON SCHEDULE EVERY 1 DAY
  688. STARTS str_to_date( date_format(now(), '%Y%m%d 0500'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
  689. DO
  690. BEGIN
  691. SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
  692. replace into _CRM_PROCES_STATS ".$sql_tmp['select__CRM_PROCES_STATS']." ;
  693. END
  694. */
  695. $sql['view__TASKS_INFO_trigger']="
  696. CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `_TASKS_INFO_trigger` AS
  697. SELECT CONCAT( 'W:', SUM( IF( t.A_STATUS = 'WAITING', 1, 0 ) ) , '/N:', SUM( IF( t.A_STATUS = 'NORMAL', 1, 0 ) ) , '/Z:', SUM( IF( t.A_STATUS = 'OFF_HARD', 1, 0 ) ) ) AS TASKS_INFO_trigger,
  698. SUM( IF( t.A_STATUS = 'WAITING', 1, 0 ) ) as WAITING,
  699. SUM( IF( t.A_STATUS = 'NORMAL', 1, 0 ) ) as NORMAL,
  700. SUM( IF( t.A_STATUS = 'OFF_SOFT', 1, 0 ) ) as OFF_SOFT,
  701. SUM( IF( t.A_STATUS = 'OFF_HARD', 1, 0 ) ) as OFF_HARD,
  702. t.ID_PROJECT
  703. FROM PROBLEMS AS t
  704. GROUP BY ID_PROJECT";
  705. $sql['drop__PROBLEMS_TASKS_INFO_trigger_INSERT']="DROP TRIGGER IF EXISTS `_PROBLEMS_TASKS_INFO_trigger_INSERT`";
  706. $sql['create__PROBLEMS_TASKS_INFO_trigger_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_PROBLEMS_TASKS_INFO_trigger_INSERT`
  707. AFTER INSERT ON `PROBLEMS` FOR EACH ROW BEGIN
  708. UPDATE IN7_MK_BAZA_DYSTRYBUCJI , _TASKS_INFO_trigger
  709. set IN7_MK_BAZA_DYSTRYBUCJI.TASKS_INFO_trigger = _TASKS_INFO_trigger.TASKS_INFO_trigger where IN7_MK_BAZA_DYSTRYBUCJI.ID=NEW.ID_PROJECT and _TASKS_INFO_trigger.ID_PROJECT=NEW.ID_PROJECT;
  710. END
  711. ";
  712. $sql['drop__PROBLEMS_TASKS_INFO_trigger_UPDATE']="DROP TRIGGER IF EXISTS `_PROBLEMS_TASKS_INFO_trigger_UPDATE`";
  713. $sql['create__PROBLEMS_TASKS_INFO_trigger_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_PROBLEMS_TASKS_INFO_trigger_UPDATE` AFTER UPDATE ON `PROBLEMS` FOR EACH ROW BEGIN
  714. UPDATE IN7_MK_BAZA_DYSTRYBUCJI , _TASKS_INFO_trigger
  715. set IN7_MK_BAZA_DYSTRYBUCJI.TASKS_INFO_trigger = _TASKS_INFO_trigger.TASKS_INFO_trigger where IN7_MK_BAZA_DYSTRYBUCJI.ID=NEW.ID_PROJECT and _TASKS_INFO_trigger.ID_PROJECT=NEW.ID_PROJECT;
  716. END
  717. ";
  718. $sql['view__IN7_DZIENNIK_KORESP_trigger']="
  719. CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `_IN7_DZIENNIK_KORESP_trigger` AS
  720. SELECT CONCAT( 'W:', SUM( IF( t.A_STATUS = 'WAITING', 1, 0 ) ) , '/N:', SUM( IF( t.A_STATUS = 'NORMAL', 1, 0 ) ) , '/Z:', SUM( IF( t.A_STATUS = 'OFF_HARD', 1, 0 ) ) ) AS IN7_DZIENNIK_KORESP_INFO_trigger,
  721. SUM( IF( t.A_STATUS = 'WAITING', 1, 0 ) ) as WAITING,
  722. SUM( IF( t.A_STATUS = 'NORMAL', 1, 0 ) ) as NORMAL,
  723. SUM( IF( t.A_STATUS = 'OFF_SOFT', 1, 0 ) ) as OFF_SOFT,
  724. SUM( IF( t.A_STATUS = 'OFF_HARD', 1, 0 ) ) as OFF_HARD,
  725. t.ID_PROJECT
  726. FROM IN7_DZIENNIK_KORESP AS t
  727. GROUP BY ID_PROJECT";
  728. /* - nie dziala, bo jest trigger w bash_file_perms!!!
  729. $sql['drop__IN7_DZIENNIK_KORESP_trigger_INSERT']="DROP TRIGGER IF EXISTS `_IN7_DZIENNIK_KORESP_trigger_INSERT`";
  730. $sql['create__PROBLEMS_TASKS_INFO_trigger_INSERT']="CREATE DEFINER=`root`@`localhost` TRIGGER `_IN7_DZIENNIK_KORESP_trigger_INSERT`
  731. AFTER INSERT ON `IN7_DZIENNIK_KORESP` FOR EACH ROW BEGIN
  732. UPDATE IN7_MK_BAZA_DYSTRYBUCJI , _IN7_DZIENNIK_KORESP_trigger
  733. set IN7_MK_BAZA_DYSTRYBUCJI.IN7_DZIENNIK_KORESP_INFO_trigger = _IN7_DZIENNIK_KORESP_trigger.IN7_DZIENNIK_KORESP_INFO_trigger where IN7_MK_BAZA_DYSTRYBUCJI.ID=NEW.ID_PROJECT and _TASKS_INFO_trigger.ID_PROJECT=NEW.ID_PROJECT;
  734. END
  735. ";
  736. $sql['drop__IN7_DZIENNIK_KORESP_trigger_UPDATE']="DROP TRIGGER IF EXISTS `_IN7_DZIENNIK_KORESP_trigger_UPDATE`";
  737. $sql['create__PROBLEMS_TASKS_INFO_trigger_UPDATE']="CREATE DEFINER=`root`@`localhost` TRIGGER `_IN7_DZIENNIK_KORESP_trigger_UPDATE` AFTER UPDATE ON `IN7_DZIENNIK_KORESP` FOR EACH ROW BEGIN
  738. UPDATE IN7_MK_BAZA_DYSTRYBUCJI , _IN7_DZIENNIK_KORESP_trigger
  739. set IN7_MK_BAZA_DYSTRYBUCJI.IN7_DZIENNIK_KORESP_INFO_trigger = _IN7_DZIENNIK_KORESP_trigger.IN7_DZIENNIK_KORESP_INFO_trigger where IN7_MK_BAZA_DYSTRYBUCJI.ID=NEW.ID_PROJECT and _IN7_DZIENNIK_KORESP_trigger.ID_PROJECT=NEW.ID_PROJECT;
  740. END
  741. ";
  742. */
  743. // W zastepstwie poki nie bedzie triggera na KORESPONDENCJI
  744. $sql['_IN7_DZIENNIK_KORESP_trigger_event_drop']="DROP EVENT if exists _IN7_DZIENNIK_KORESP_trigger_event";
  745. $sql['_IN7_DZIENNIK_KORESP_trigger_event']="CREATE EVENT `_IN7_DZIENNIK_KORESP_trigger_event` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO
  746. UPDATE IN7_MK_BAZA_DYSTRYBUCJI , _IN7_DZIENNIK_KORESP_trigger
  747. set IN7_MK_BAZA_DYSTRYBUCJI.IN7_DZIENNIK_KORESP_INFO_trigger = _IN7_DZIENNIK_KORESP_trigger.IN7_DZIENNIK_KORESP_INFO_trigger where IN7_MK_BAZA_DYSTRYBUCJI.ID=_IN7_DZIENNIK_KORESP_trigger.ID_PROJECT ;";
  748. $sql['view__budget_project_to_realization_main_event_drop']="DROP EVENT if exists view__budget_project_to_realization_main_event";
  749. $sql['view__budget_project_to_realization_main_event']="CREATE EVENT `view__budget_project_to_realization_main_event` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO INSERT IGNORE INTO `projects_budget_year_month` ( `ID_PROJECT` , `M_DIST_DESC` , `YEAR` ,`A_RECORD_CREATE_AUTHOR` , `A_RECORD_CREATE_DATE` )
  750. SELECT t1.`ID` , t2.M_DIST_DESC, t1.`rok` , 'import z widoku budzetu glownych spraw (view__budget_project_to_realization_main_event)', NOW( )
  751. FROM `in7_dziennik_koresp_budget_main_view` AS t1
  752. LEFT JOIN IN7_MK_BAZA_DYSTRYBUCJI AS t2 ON t1.ID = t2.ID;";
  753. //! POPC_UPDATE eventy stats
  754. $sql['POPC_UPDATE_event_drop']="DROP EVENT if exists POPC_UPDATE";
  755. $sql['POPC_UPDATE_event']="CREATE EVENT `POPC_UPDATE` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO
  756. BEGIN
  757. create temporary table ST_POPC_AKT as
  758. select t1.ID, count(t2.ID) as cache_count_POPC ,
  759. sum(if(t2.Rodzaj_obiektu like '%Plac%owa',t2.Liczba_placowek_publicznych,0)) as cache_count_POPC_plac ,
  760. sum(if(t2.Rodzaj_obiektu like '%Plac%owa%A',t2.Liczba_placowek_publicznych,0)) as cache_count_POPC_plac_os_A ,
  761. sum(t2.Liczba_lokali) as cache_count_POPC_lokali
  762. from MK_Rewiry as t1
  763. join MK_BIALE_PLAMY as t2 on ST_Contains(t1.the_geom, t2.the_geom)
  764. -- where t2.NAZWA_OBSZARU like 'GDA%KI I TR%KI'
  765. group by t1.ID ;
  766. update MK_Rewiry as t1, ST_POPC_AKT as t2 set t1.cache_count_POPC=t2.cache_count_POPC ,
  767. t1.cache_count_POPC_plac=t2.cache_count_POPC_plac ,
  768. t1.cache_count_POPC_plac_os_A=t2.cache_count_POPC_plac_os_A ,
  769. t1.cache_count_POPC_lokali=t2.cache_count_POPC_lokali
  770. where t1.ID=t2.ID;
  771. END
  772. ";
  773. // EOF POPC_UPDATE eventy stats
  774. //! ST__MK_Rewiry_to_BUILDINGS
  775. $sql['ST__MK_Rewiry_to_BUILDINGS_event_drop']="DROP EVENT if exists ST__MK_Rewiry_to_BUILDINGS";
  776. $sql['ST__MK_Rewiry_to_BUILDINGS_event']="CREATE EVENT `ST__MK_Rewiry_to_BUILDINGS` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO
  777. update BUILDINGS as t1, MK_Rewiry as t2 set t1.M_REWIR=t2.NAZWA_REWI
  778. where ST_Contains(t2.the_geom, t1.the_geom) ;
  779. ";
  780. // EOF ST__MK_Rewiry_to_BUILDINGS
  781. //! bzyka funkcje @2015-07 do tree zasobow aliasow
  782. $sql['drop_function_ALIAS_CHILDS_FROM_CRM_LISTA_ZASOBOW']="drop function if exists ALIAS_CHILDS_FROM_CRM_LISTA_ZASOBOW";
  783. $sql['create_function_ALIAS_CHILDS_FROM_CRM_LISTA_ZASOBOW']="CREATE DEFINER=`root`@`localhost` FUNCTION `ALIAS_CHILDS_FROM_CRM_LISTA_ZASOBOW`(`CRM_LISTA_ZASOBOW_ID` INT) RETURNS text CHARSET latin2
  784. READS SQL DATA
  785. BEGIN
  786. SELECT GROUP_CONCAT(`ID`)
  787. INTO @RESULT
  788. FROM `CRM_LISTA_ZASOBOW`
  789. WHERE `ALIAS_ID`=CRM_LISTA_ZASOBOW_ID;
  790. RETURN COALESCE(@RESULT,'');
  791. END";
  792. $sql['drop_function_ALIAS_PATH_FROM_CRM_LISTA_ZASOBOW']="drop function if exists ALIAS_PATH_FROM_CRM_LISTA_ZASOBOW";
  793. $sql['create_function_ALIAS_PATH_FROM_CRM_LISTA_ZASOBOW']="CREATE DEFINER=`root`@`localhost` FUNCTION `ALIAS_PATH_FROM_CRM_LISTA_ZASOBOW`(`CRM_LISTA_ZASOBOW_ID` INT) RETURNS text CHARSET latin2
  794. READS SQL DATA
  795. BEGIN
  796. SET @PARAM_ALIAS_ID=CRM_LISTA_ZASOBOW_ID;
  797. SET @PATH='';
  798. REPEAT
  799. SELECT `ALIAS_ID`
  800. INTO @ALIAS_ID
  801. FROM `CRM_LISTA_ZASOBOW`
  802. WHERE `ID`=@PARAM_ALIAS_ID;
  803. IF @ALIAS_ID>0 AND @PATH!='' THEN
  804. SET @PATH=CONCAT(',',@PATH);
  805. END IF;
  806. IF @ALIAS_ID=@PARAM_ALIAS_ID OR FIND_IN_SET(@ALIAS_ID,@PATH) THEN
  807. SET @PATH=CONCAT('LOOP_ERROR,',@ALIAS_ID,@PATH);
  808. SET @ALIAS_ID=0;
  809. END IF;
  810. IF @ALIAS_ID IS NULL THEN
  811. SET @PATH=CONCAT('BRAK_ZASOBU',@PATH);
  812. ELSEIF @ALIAS_ID>0 THEN
  813. SET @PATH=CONCAT(@ALIAS_ID,@PATH);
  814. END IF;
  815. SET @PARAM_ALIAS_ID=@ALIAS_ID;
  816. UNTIL COALESCE(@ALIAS_ID,0)=0 END REPEAT;
  817. RETURN @PATH;
  818. END";
  819. $sql['view__CRM_LISTA_ZASOBOW_ALIASY_view']="CREATE or replace ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `CRM_LISTA_ZASOBOW_ALIASY_view` AS select `CRM_LISTA_ZASOBOW`.`ID` AS `ID`,`CRM_LISTA_ZASOBOW`.`ID` AS `CRM_LISTA_ZASOBOW_ID`,`ALIAS_CHILDS_FROM_CRM_LISTA_ZASOBOW`(`CRM_LISTA_ZASOBOW`.`ID`) AS `CHILDS`,`ALIAS_PATH_FROM_CRM_LISTA_ZASOBOW`(`CRM_LISTA_ZASOBOW`.`ID`) AS `PATH` from `CRM_LISTA_ZASOBOW`";
  820. // funkcja do liczenia dlugosci LINESTRING
  821. $sql['drop_function_GDistance']="drop function if exists GDistance";
  822. $sql['create_function_GDistance']="CREATE DEFINER=`root`@`localhost` FUNCTION `GDistance_test`(`LS` LINESTRING) RETURNS double
  823. NO SQL
  824. BEGIN
  825. DECLARE LON_A, LAT_A, LON_B, LAT_B, R, RESULT DOUBLE;
  826. DECLARE A, B POINT;
  827. DECLARE I, N INT;
  828. -- if LS is not geometry type then return 0
  829. -- if GeometryType is not 'LINESTRING' then return 1
  830. -- if GeometryType is 'LINESTRING' then return length
  831. IF LS is null or GeometryType(LS) is null THEN
  832. RETURN 0;
  833. END IF;
  834. IF 'LINESTRING' != GeometryType(LS) THEN
  835. RETURN 1;
  836. END IF;
  837. SET R = 6372795.477598;
  838. SET N = NUMPOINTS(LS);
  839. IF N is null or N = 1 THEN
  840. RETURN 1;
  841. END IF;
  842. SET RESULT = 0;
  843. SET I = 1;
  844. WHILE I < N DO
  845. SET A = POINTN(LS, I);
  846. SET B = POINTN(LS, I + 1);
  847. SET LON_A = RADIANS(X(A));
  848. SET LAT_A = RADIANS(Y(A));
  849. SET LON_B = RADIANS(X(B));
  850. SET LAT_B = RADIANS(Y(B));
  851. SET RESULT = RESULT + ACOS(SIN(LAT_A) * SIN(LAT_B) + COS(LAT_A) * COS(LAT_B) * COS(LON_A - LON_B));
  852. SET I = I + 1;
  853. END WHILE;
  854. SET RESULT = RESULT * R;
  855. RETURN RESULT;
  856. END";
  857. $sql['event_shedule_init']="SET GLOBAL event_scheduler = ON";
  858. $sql['drop__CRM_TESTY_PYTANIA__AFTER__INSERT'] = "DROP TRIGGER IF EXISTS `_CRM_TESTY_PYTANIA__AFTER__INSERT`";
  859. $sql['create__CRM_TESTY_PYTANIA__AFTER__INSERT'] = "CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_TESTY_PYTANIA__AFTER__INSERT`
  860. AFTER INSERT ON `CRM_TESTY_PYTANIA` FOR EACH ROW BEGIN
  861. update `CRM_PROCES` as p
  862. set p.`TEST_PYTANIE`=(
  863. select count(1)
  864. from `CRM_TESTY_PYTANIA` as pyt
  865. where
  866. pyt.`ID_PROCES`=p.ID
  867. );
  868. END
  869. ";
  870. $sql['drop__CRM_TESTY_PYTANIA__AFTER__DELETE'] = "DROP TRIGGER IF EXISTS `_CRM_TESTY_PYTANIA__AFTER__DELETE`";
  871. $sql['create__CRM_TESTY_PYTANIA__AFTER__DELETE'] = "CREATE DEFINER=`root`@`localhost` TRIGGER `_CRM_TESTY_PYTANIA__AFTER__DELETE`
  872. AFTER DELETE ON `CRM_TESTY_PYTANIA` FOR EACH ROW BEGIN
  873. update `CRM_PROCES` as p
  874. set p.`TEST_PYTANIE`=(
  875. select count(1)
  876. from `CRM_TESTY_PYTANIA` as pyt
  877. where
  878. pyt.`ID_PROCES`=p.ID
  879. );
  880. END
  881. ";
  882. $sql['replace__RozdzielczaObiekty_wiev']="create or replace definer=`root`@`localhost` view RozdzielczaObiekty_wiev as
  883. select concat('rp5mm',ID) as ID, 'Rozdzielcza_Pakiet5MikrorurekMagistrala_WSG84' as TABLE_name, ID as TABLE_ID, A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  884. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR
  885. from Rozdzielcza_Pakiet5MikrorurekMagistrala_WSG84
  886. union
  887. select concat('rmk',ID) as ID, 'Rozdzielcza_Mikrokanalizacja_do_klienta' as TABLE_name, ID as TABLE_ID, A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  888. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR from Rozdzielcza_Mikrokanalizacja_do_klienta
  889. union
  890. select concat('rsw',ID) as ID, 'Rozdzielcza_struktura_wewnetrzna_wsg84' as TABLE_name, ID as TABLE_ID, A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  891. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR
  892. from Rozdzielcza_struktura_wewnetrzna_wsg84
  893. union
  894. select concat('rwk',ID) as ID, 'Rozdzielcza_wewn_kabel_ethernet' as TABLE_name, ID as TABLE_ID, A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  895. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR
  896. from Rozdzielcza_wewn_kabel_ethernet
  897. union
  898. select concat('rr',ID) as ID, 'Rozdzielcza_rurociag_wsg84' as TABLE_name, ID as TABLE_ID,A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  899. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR
  900. from Rozdzielcza_rurociag_wsg84
  901. union
  902. select concat('rwp',ID) as ID, 'Rozdzielcza_Wykop_przedmiar_na_mikrorurki' as TABLE_name, ID as TABLE_ID, A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  903. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR
  904. from Rozdzielcza_Wykop_przedmiar_na_mikrorurki
  905. union
  906. select concat('rks',ID) as ID, 'Rozdzielcza_Kabel_Swiatlowodowy_wsg84' as TABLE_name, ID as TABLE_ID, A_STATUS, A_STATUS_INFO, L_APPOITMENT_USER, L_APPOITMENT_INFO, A_ADM_COMPANY, A_CLASSIFIED, the_geom
  907. , A_RECORD_UPDATE_DATE, A_RECORD_UPDATE_AUTHOR, A_RECORD_CREATE_DATE, A_RECORD_CREATE_AUTHOR
  908. from Rozdzielcza_Kabel_Swiatlowodowy_wsg84
  909. ";
  910. //! ### powiazanie georeferencji z projektem oblotu:
  911. $sql['WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event_drop']="DROP EVENT if exists WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event";
  912. $sql['WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event']="CREATE EVENT `WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO
  913. BEGIN
  914. create temporary table WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE
  915. select gr.ID, group_concat(wl.ID) as ID_WIZJE_LOKALNE from WIZJE_LOKALNE as wl left join WMS_MAP_GEOREFERENCES as gr on ST_Intersects(wl.the_geom,gr.the_geom) group by gr.ID;
  916. update WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE wl, WMS_MAP_GEOREFERENCES gr set gr.ID_WIZJE_LOKALNE = wl.ID_WIZJE_LOKALNE where gr.ID=wl.ID;
  917. END
  918. ";
  919. // EOF ### powiazanie georeferencji z projektem oblotu:
  920. //! ### powiazanie georeferencji z projektem oblotu:
  921. $sql['WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event_drop']="DROP EVENT if exists WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event";
  922. $sql['WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event']="CREATE EVENT `WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE_event` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO
  923. BEGIN
  924. create temporary table WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE
  925. select gr.ID, group_concat(wl.ID) as ID_WIZJE_LOKALNE from WIZJE_LOKALNE as wl left join WMS_MAP_GEOREFERENCES as gr on ST_Intersects(wl.the_geom,gr.the_geom) group by gr.ID;
  926. update WMS_MAP_GEOREFERENCES_set_ID_WIZJE_LOKALNE wl, WMS_MAP_GEOREFERENCES gr set gr.ID_WIZJE_LOKALNE = wl.ID_WIZJE_LOKALNE where gr.ID=wl.ID;
  927. END
  928. ";
  929. // EOF ### powiazanie georeferencji z projektem oblotu:
  930. //! ### powiazanie georeferencji z projektem oblotu:
  931. $sql['BUILDINGS_the_geom_MARKETING_event_drop']="DROP EVENT if exists BUILDINGS_the_geom_MARKETING_event_drop";
  932. $sql['BUILDINGS_the_geom_MARKETING_event']="CREATE EVENT `BUILDINGS_the_geom_MARKETING_event` ON SCHEDULE EVERY 1 DAY STARTS '2015-05-12 00:04:30' ON COMPLETION NOT PRESERVE ENABLE DO
  933. BEGIN
  934. update USERS2_MARKETING m, BUILDINGS b set m.the_geom=ST_Centroid(b.the_geom) where m.T_TELBOX_BUILDING_IN=b.S_ADDRESS_STREET ;
  935. END
  936. ";
  937. //! EOF ### powiazanie georeferencji z projektem oblotu:
  938. foreach($sql as $ind=>$sql_) {
  939. DEBUG_S(-3,'wykonuje zapytanie sql dla '.$ind,$sql_,__FILE__,__FUNCTION__,__LINE__);
  940. if(!empty($DB)) {
  941. $DB->query($sql_) or die('Problem z zapytaniem '.mysql_error());
  942. } else {
  943. DB::query($sql_) or die('Problem z zapytaniem '.mysql_error());
  944. }
  945. }
  946. //-- alter table _CRM_PROCES_USER_STATS add unique(ID,TEST_TYPE,ADM_ACCOUNT);
  947. Lib::loadClass('Router');
  948. $routeConfig = Router::getRoute('Config');
  949. $routeConfig->reinstall();
  950. }
  951. ?>