superedit-ANALIZA_HISTORII_ALL.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. <?php
  2. function ANALIZA_HISTORII_ALL() {
  3. global $result;
  4. SE_Layout::menu();
  5. $_GET['F_LIMIT'] = V::get('F_LIMIT', 1, $_GET, 'int');
  6. $_GET['TABLES_LIKE'] = V::get('TABLES_LIKE', '%', $_GET);
  7. $_GET['A_RECORD_UPDATE_DATE'] = V::get('A_RECORD_UPDATE_DATE', date('Y-m-d')."%", $_GET);
  8. $_GET['A_RECORD_UPDATE_DATE2'] = V::get('A_RECORD_UPDATE_DATE2', 'x', $_GET);
  9. $_GET['A_RECORD_UPDATE_AUTHOR'] = V::get('A_RECORD_UPDATE_AUTHOR', '%', $_GET);
  10. $_GET['A_RECORD_UPDATE_AUTHOR2'] = V::get('A_RECORD_UPDATE_AUTHOR2', 'x', $_GET);
  11. $REBUILD_ANALIZA_HISTORII_ALL_TABLE = V::get('REBUILD_ANALIZA_HISTORII_ALL_TABLE', '%', $_GET);
  12. $__install = V::get('__install', '', $_GET);
  13. $db = DB::getDB();
  14. Lib::LoadClass('InstallerHelper') ;
  15. if(!empty($__install)) {
  16. //TODO example
  17. $installer=new InstallerHelper(); //('new_parent_option','NEW_TABLE');
  18. $new_MYSQL_SCHEMA = $installer->new_child('MYSQL_SCHEMA');
  19. $new_table = $new_MYSQL_SCHEMA->new_child('TABLES');
  20. $new_table->set_option('Table_type','BASE TABLE');
  21. $new_table->set_option('NAME','_ANALIZA_HISTORII_ALL');
  22. $new_table_field = $new_table->new_child('FIELDS');
  23. $new_table_field->set_option('Field','ID');
  24. $new_table_field->set_option('Null','NO');
  25. $new_table_field->set_option('Key','PRI');
  26. $new_table_field->set_option('Default','');
  27. $new_table_field->set_option('Extra','auto_increment');
  28. $new_table_field_id = $new_table_field->new_child('Type');
  29. $new_table_field_id_int = $new_table_field_id->new_child('int');
  30. $new_table_field_id_int->set_option('M','11');
  31. DEBUG_S(-3,'new_table_field',$new_table_field);
  32. // unset($new_table_field);unset($new_table_field_id);unset($new_table_field_id_int);
  33. $new_table_field = $new_table->new_child('FIELDS');
  34. $new_table_field->set_option('Field','TABLE_NAME');
  35. $new_table_field->set_option('Null','NO');
  36. $new_table_field->set_option('Key','');
  37. $new_table_field->set_option('Default','');
  38. $new_table_field->set_option('Extra','auto_increment');
  39. $new_table_field_id = $new_table_field->new_child('Type');
  40. $new_table_field_id_int = $new_table_field_id->new_child('varchar');
  41. $new_table_field_id_int->set_option('M','255');
  42. DEBUG_S(-3,'new_table_field',$new_table_field);
  43. $new_table_field = $new_table->new_child('FIELDS');
  44. $new_table_field->set_option('Field','TABLE_ID');
  45. $new_table_field->set_option('Null','NO');
  46. $new_table_field->set_option('Key','');
  47. $new_table_field->set_option('Default','');
  48. $new_table_field->set_option('Extra','auto_increment');
  49. $new_table_field_id = $new_table_field->new_child('Type');
  50. $new_table_field_id_int = $new_table_field_id->new_child('int');
  51. $new_table_field_id_int->set_option('M','11');
  52. $new_table_field = $new_table->new_child('FIELDS');
  53. $new_table_field->set_option('Field','FIELD');
  54. $new_table_field->set_option('Null','NO');
  55. $new_table_field->set_option('Key','');
  56. $new_table_field->set_option('Default','');
  57. $new_table_field->set_option('Extra','auto_increment');
  58. $new_table_field_id = $new_table_field->new_child('Type');
  59. $new_table_field_id_int = $new_table_field_id->new_child('varchar');
  60. $new_table_field_id_int->set_option('M','255');
  61. $new_table_field = $new_table->new_child('FIELDS');
  62. $new_table_field->set_option('Field','VALUE_OLD');
  63. $new_table_field->set_option('Null','NO');
  64. $new_table_field->set_option('Key','');
  65. $new_table_field->set_option('Default','');
  66. $new_table_field->set_option('Extra','auto_increment');
  67. $new_table_field_id = $new_table_field->new_child('Type');
  68. $new_table_field_id_int = $new_table_field_id->new_child('text');
  69. $new_table_field = $new_table->new_child('FIELDS');
  70. $new_table_field->set_option('Field','VALUE');
  71. $new_table_field->set_option('Null','NO');
  72. $new_table_field->set_option('Key','');
  73. $new_table_field->set_option('Default','');
  74. $new_table_field->set_option('Extra','auto_increment');
  75. $new_table_field_id = $new_table_field->new_child('Type');
  76. $new_table_field_id_int = $new_table_field_id->new_child('text');
  77. $new_table_field = $new_table->new_child('FIELDS');
  78. $new_table_field->set_option('Field','A_RECORD_UPDATE_DATE');
  79. $new_table_field->set_option('Null','NO');
  80. $new_table_field->set_option('Key','');
  81. $new_table_field->set_option('Default','');
  82. $new_table_field->set_option('Extra','auto_increment');
  83. $new_table_field_id = $new_table_field->new_child('Type');
  84. $new_table_field_id_int = $new_table_field_id->new_child('varchar');
  85. $new_table_field_id_int->set_option('M','30');
  86. $new_table_field = $new_table->new_child('FIELDS');
  87. $new_table_field->set_option('Field','A_RECORD_UPDATE_AUTHOR');
  88. $new_table_field->set_option('Null','NO');
  89. $new_table_field->set_option('Key','');
  90. $new_table_field->set_option('Default','');
  91. $new_table_field->set_option('Extra','auto_increment');
  92. $new_table_field_id = $new_table_field->new_child('Type');
  93. $new_table_field_id_int = $new_table_field_id->new_child('varchar');
  94. $new_table_field_id_int->set_option('M','100');
  95. $new_table_field = $new_table->new_child('FIELDS');
  96. $new_table_field->set_option('Field','A_RECORD_CREATE_DATE');
  97. $new_table_field->set_option('Null','NO');
  98. $new_table_field->set_option('Key','');
  99. $new_table_field->set_option('Default','');
  100. $new_table_field->set_option('Extra','auto_increment');
  101. $new_table_field_id = $new_table_field->new_child('Type');
  102. $new_table_field_id_int = $new_table_field_id->new_child('varchar');
  103. $new_table_field_id_int->set_option('M','30');
  104. $new_table_field = $new_table->new_child('FIELDS');
  105. $new_table_field->set_option('Field','A_RECORD_CREATE_AUTHOR');
  106. $new_table_field->set_option('Null','NO');
  107. $new_table_field->set_option('Key','');
  108. $new_table_field->set_option('Default','');
  109. $new_table_field->set_option('Extra','auto_increment');
  110. $new_table_field_id = $new_table_field->new_child('Type');
  111. $new_table_field_id_int = $new_table_field_id->new_child('varchar');
  112. $new_table_field_id_int->set_option('M','100');
  113. $new_table_index = $new_table->new_child('INDEX');
  114. $new_table_index->set_option('Key_name','TABLE_NAME');
  115. $new_table_index_col = $new_table_index->new_child('Column_name');
  116. $new_table_index_col->set_option('column','TABLE_NAME');
  117. $new_table_index_col = $new_table_index->new_child('Column_name');
  118. $new_table_index_col->set_option('column','TABLE_ID');
  119. $new_table_index_col = $new_table_index->new_child('Column_name');
  120. $new_table_index_col->set_option('column','FIELD');
  121. // $new_table_index = $new_table->new_child('INDEX');
  122. // $new_table_field = $new_table_field->set_option('TABLE_FIELD_TYPE','INT');
  123. //
  124. // $new_table_field = $new_table->new_child('TABLE_FIELD');
  125. // $new_table_field = $new_table_field->set_option('TABLE_FIELD_NAME','A_RECORD_UPDATE_DATE');
  126. // $new_table_field = $new_table_field->set_option('TABLE_FIELD_TYPE','VARCHAR');
  127. // $new_table_field = $new_table_field->set_option('TABLE_FIELD_LENGHT','100');
  128. // $new_table->NEW_TABLE('dupa');
  129. DEBUG_S(-3,'installer',$installer);
  130. DEBUG_S(-3,'new_MYSQL_SCHEMA',$new_MYSQL_SCHEMA);
  131. DEBUG_S(-3,'new_table',$new_table);
  132. DEBUG_S(-3,'new_table_field',$new_table_field);
  133. // DEBUG_S(-3,'new_table',$new_table);
  134. //$install->__add_req_option('table');
  135. $installer->__install();
  136. //$table->get_options_status();
  137. //var_dump($install);
  138. //InstallerHelper::__install();
  139. die('umarlem');
  140. }
  141. Lib::loadClass('ProcesHelper');
  142. $zasob_tabeli_hist=ProcesHelper::getZasobTableID('_ANALIZA_HISTORII_ALL');
  143. ?>
  144. ANALIZA_HISTORII_ALL <form action='' METHOD='GET'>
  145. <input type="hidden" name="ADD" value="ADD">
  146. <input type="hidden" name="MENU_INIT" value="ANALIZA_HISTORII_ALL">
  147. Czy aktualizować tabelę _ANALIZA_HISTORII_ALL ?<input type="checkbox" name="REBUILD_ANALIZA_HISTORII_ALL_TABLE" checked="true" selected="true">
  148. <a href=index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=<?php echo $zasob_tabeli_hist; ?> >Przeglądanie</a>
  149. <br>Czy zainstalować moduł _ANALIZA_HISTORII_ALL ?<input type="checkbox" name="__install">
  150. <table border=1>
  151. <tr>
  152. <td>Dodaj Lancuch dla poszukiwan okresu , (zakoncz znakiem %) - 500 rekordow</td>
  153. <td><input type="text" name="A_RECORD_UPDATE_DATE" size="10" value="<?php echo $_GET['A_RECORD_UPDATE_DATE']; ?>"></td>
  154. <td><input type="text" name="A_RECORD_UPDATE_DATE2" size="10" value="<?php echo $_GET['A_RECORD_UPDATE_DATE2']; ?>"></td>
  155. <td><input type="text" name="A_RECORD_UPDATE_AUTHOR" size="10" value="<?php echo $_GET['A_RECORD_UPDATE_AUTHOR']; ?>"></td>
  156. <td><input type="text" name="A_RECORD_UPDATE_AUTHOR2" size="10" value="<?php echo $_GET['A_RECORD_UPDATE_AUTHOR2']; ?>"></td>
  157. <td><input type="text" name="TABLES_LIKE" size="10" value="<?php echo $_GET['TABLES_LIKE']; ?>"></td>
  158. <td><input type="text" name="F_LIMIT" size="10" value="<?php echo $_GET['F_LIMIT']; ?>"></td>
  159. </tr>
  160. <tr>
  161. <td colspan=1><input type="submit" name="ADD" value="SZUKAJ"></td>
  162. <td>DATA (np. 2007-%)</td>
  163. <td>.. lub data DATA (np. 2008-%)</td>
  164. <td>Autor (np. %sqix%)</td>
  165. <td>Autor2</td>
  166. <td>TABELE</td>
  167. </tr>
  168. </table>
  169. <?php
  170. /*
  171. $ZAP_SQL="SELECT t2.* FROM USERS2_DEALS as t2 where
  172. t2.A_RECORD_CREATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."' and
  173. ( t2.A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or t2.A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' ) ";
  174. if($_GET['A_RECORD_UPDATE_DATE']) ZAP_SQL($ZAP_SQL);
  175. // echo $ZAP_SQL."\n<br>";
  176. while($DWA=mysql_fetch_object($result)) {
  177. foreach ($DWA as $DWA_A=>$DWA_V ) {
  178. if((($DWA_V!='')&&($DWA_V!='0'))&&($DWA_A!=$AR)||($DWA_V=='S_ADDRESS_STREET_t1')) {
  179. //echo "<td> ".str_replace('_',' ',$DWA_A)." = $DWA_V </td>";
  180. $ARR[STAT][$DWA->A_RECORD_CREATE_AUTHOR][$DWA_A]++;
  181. if($DWA_A=='A_RECORD_CREATE_AUTHOR') $ARR[AUTH][$DWA_V]++;
  182. }
  183. if($DWA_A==$AR)$AR++;
  184. }
  185. }
  186. //print_r($ARR);
  187. unset($ARR);
  188. */
  189. $RAPORT['IGNORE_TABLES'][] = "AUTOSHAPE";
  190. //echo statystyka pracy historyczna w systemie
  191. $dbTbls = array();
  192. $ZAP_SQL = "show tables ";
  193. if (!empty($_GET['TABLES_LIKE'])) {
  194. $ZAP_SQL .= " like '{$_GET['TABLES_LIKE']}' ";
  195. }
  196. $res = $db->query($ZAP_SQL);
  197. while($R = $db->fetch_array($res)) {
  198. $dbTbls[] = $R;
  199. }
  200. foreach ($dbTbls as $R) {
  201. if (!in_array($R[0], $RAPORT['IGNORE_TABLES'])) {
  202. $RAPORT['TABLES_ALL'][] = $R[0];
  203. }
  204. }
  205. foreach ($dbTbls as $R) {
  206. if (strstr($R[0], "_HIST")) {
  207. $RAPORT['TABLES_HIST'][$R[0]]['TABLE_HIST'] = $R[0];
  208. $tblName = str_replace("_HIST", "", $R[0]);
  209. if (in_array($tblName, $RAPORT['TABLES_ALL'])) {
  210. $RAPORT['TABLES_HIST'][$R[0]]['TABLE'] = $tblName;
  211. }
  212. }
  213. }
  214. unset($dbTbls);
  215. $ZAP_SQL = array();
  216. $ZAP_SQL['TABLES'] = array();
  217. if(!empty($REBUILD_ANALIZA_HISTORII_ALL_TABLE)) {
  218. //$sql="truncate table _ANALIZA_HISTORII_ALL_TABLE";
  219. DEBUG_S(-3,"Odbudowa tabeli analiz _ANALIZA_HISTORII_ALL_TABLE",$sql,__FILE__,__FUNCTION__,__LINE__);
  220. //DB::query($sql);
  221. }
  222. foreach ($RAPORT['TABLES_HIST'] as $RTH_I=>$RTH_A) {
  223. if (isset($RTH_A['TABLE'])) {
  224. $res = $db->query("select * from ".$RTH_A['TABLE']." limit 1");
  225. $r2 = $db->fetch_array($res);
  226. if (isset($r2['A_RECORD_CREATE_AUTHOR']) && isset($r2['A_RECORD_CREATE_DATE'])
  227. && isset($r2['A_RECORD_UPDATE_DATE']) && isset($r2['A_RECORD_UPDATE_AUTHOR'])
  228. && isset($r2['ID'])) {
  229. //dobudowanie tabeli _ANALIZA_HISTORII_ALL
  230. if (isset($r2['T_WORKPOINTS_USER']) && isset($r2['T_WORKPOINTS_DATE'])) {
  231. $sql = "SELECT A_RECORD_CREATE_DATE as C1
  232. , year(A_RECORD_CREATE_DATE) as C1_Y
  233. , month(A_RECORD_CREATE_DATE) as C1_M
  234. , day(A_RECORD_CREATE_DATE) as C1_D
  235. , A_RECORD_CREATE_AUTHOR as C2
  236. , ID as TAB_ID
  237. , '".$RTH_A['TABLE']."' as TABLEE
  238. from ".$RTH_A['TABLE']." as C2
  239. where
  240. ( A_RECORD_CREATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."' or A_RECORD_CREATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."' )
  241. and ( A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' )
  242. ";
  243. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
  244. $ZAP_SQL['TABLES'][] = $sql;
  245. //workpoints table
  246. $sql = "SELECT T_WORKPOINTS_DATE as C1
  247. , year(T_WORKPOINTS_DATE) as C1_Y
  248. , month(T_WORKPOINTS_DATE) as C1_M
  249. , day(T_WORKPOINTS_DATE) as C1_D
  250. , T_WORKPOINTS_USER as C2
  251. , ID as TAB_ID
  252. , '".$RTH_A['TABLE']."_WP' as TABLEE
  253. from ".$RTH_A['TABLE']." as C2
  254. where
  255. ( T_WORKPOINTS_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."' or T_WORKPOINTS_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."' )
  256. and ( T_WORKPOINTS_USER like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or T_WORKPOINTS_USER like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' )
  257. ";
  258. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
  259. $ZAP_SQL['TABLES'][] = $sql;
  260. }
  261. else {
  262. $sql = "SELECT A_RECORD_CREATE_DATE as C1
  263. , year(A_RECORD_CREATE_DATE) as C1_Y
  264. , month(A_RECORD_CREATE_DATE) as C1_M
  265. , day(A_RECORD_CREATE_DATE) as C1_D
  266. , A_RECORD_CREATE_AUTHOR as C2
  267. , ID as TAB_ID
  268. , '".$RTH_A['TABLE']."' as TABLEE
  269. from ".$RTH_A['TABLE']." as C2
  270. where
  271. A_RECORD_CREATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."'
  272. and ( A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' )
  273. ";
  274. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
  275. $ZAP_SQL['TABLES'][] = $sql;
  276. }
  277. $sql = "SELECT A_RECORD_CREATE_DATE as C1
  278. , A_RECORD_CREATE_AUTHOR
  279. , ID as TAB_ID
  280. , '".$RTH_A['TABLE']."' as TABLEE
  281. from ".$RTH_A['TABLE']." as C2
  282. where
  283. ( A_RECORD_CREATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."' or A_RECORD_CREATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."' )
  284. and ( A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or A_RECORD_CREATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' )
  285. ";
  286. //$res = $db->query($sql);
  287. }
  288. }
  289. $res = $db->query("select * from ".$RTH_A['TABLE_HIST']." limit 1");
  290. $r2 = $db->fetch_array($res);
  291. $res = null;
  292. if (isset($r2['A_RECORD_CREATE_AUTHOR']) && isset($r2['A_RECORD_CREATE_DATE'])
  293. && isset($r2['A_RECORD_UPDATE_DATE']) && isset($r2['A_RECORD_UPDATE_AUTHOR'])
  294. && isset($r2['ID_USERS2'])) {
  295. if(isset($r2['T_WORKPOINTS_USER']) && isset($r2['T_WORKPOINTS_DATE'])) {
  296. $sql = "SELECT A_RECORD_UPDATE_DATE as C1
  297. , year(A_RECORD_UPDATE_DATE) as C1_Y
  298. , month(A_RECORD_UPDATE_DATE) as C1_M
  299. , day(A_RECORD_UPDATE_DATE) as C1_D
  300. , A_RECORD_UPDATE_AUTHOR as C2
  301. , ID_USERS2 as TAB_ID
  302. , '".$RTH_A['TABLE_HIST']."' as TABLEE
  303. from ".$RTH_A['TABLE_HIST']."
  304. where
  305. ( A_RECORD_UPDATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."' or A_RECORD_UPDATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."' )
  306. and ( A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' )
  307. ";
  308. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
  309. $ZAP_SQL['TABLES'][] = $sql;
  310. //workpoints
  311. $sql = "SELECT T_WORKPOINTS_DATE as C1
  312. , year(T_WORKPOINTS_DATE) as C1_Y
  313. , month(T_WORKPOINTS_DATE) as C1_M
  314. , day(T_WORKPOINTS_DATE) as C1_D
  315. , A_RECORD_UPDATE_AUTHOR as C2
  316. , ID_USERS2 as TAB_ID
  317. , '".$RTH_A['TABLE_HIST']."_WP' as TABLEE
  318. from ".$RTH_A['TABLE_HIST']."
  319. where
  320. ( T_WORKPOINTS_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."' or T_WORKPOINTS_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."' )
  321. and ( T_WORKPOINTS_USER like '".$_GET['A_RECORD_UPDATE_AUTHOR']."' or T_WORKPOINTS_USER like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."' )
  322. ";
  323. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
  324. $ZAP_SQL['TABLES'][] = $sql;
  325. $res = $db->query($sql);
  326. }
  327. else {
  328. $sql = "SELECT
  329. A_RECORD_UPDATE_DATE as C1
  330. , year(A_RECORD_UPDATE_DATE) as C1_Y
  331. , month(A_RECORD_UPDATE_DATE) as C1_M
  332. , day(A_RECORD_UPDATE_DATE) as C1_D
  333. , A_RECORD_UPDATE_AUTHOR as C2
  334. , ID_USERS2 as TAB_ID
  335. , '".$RTH_A['TABLE_HIST']."' as TABLEE
  336. from ".$RTH_A['TABLE_HIST']."
  337. where
  338. (
  339. A_RECORD_UPDATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."'
  340. or A_RECORD_UPDATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."'
  341. ) and (
  342. A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."'
  343. or A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."'
  344. )
  345. ";
  346. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
  347. $ZAP_SQL['TABLES'][] = $sql;
  348. $res = $db->query($sql);
  349. }
  350. $ignore_tables=array('CRM_TESTY_ODPOWIEDZI','CRM_TESTY_ODPOWIEDZI_HIST');
  351. if(!in_array($RTH_A['TABLE_HIST'], $ignore_tables))
  352. if(!empty($REBUILD_ANALIZA_HISTORII_ALL_TABLE)) {
  353. $sql="select * from ".$RTH_A['TABLE_HIST']." where
  354. (
  355. A_RECORD_UPDATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE']."'
  356. or A_RECORD_UPDATE_DATE like '".$_GET['A_RECORD_UPDATE_DATE2']."'
  357. ) and (
  358. A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR']."'
  359. or A_RECORD_UPDATE_AUTHOR like '".$_GET['A_RECORD_UPDATE_AUTHOR2']."'
  360. )
  361. ";
  362. //echo "<br>".$sql;
  363. $resa=DB::query($sql);
  364. $index_fields=array('ADM_PASSWD'=>'ADM_PASSWD','ID_USERS2'=>'ID_USERS2','A_RECORD_UPDATE_DATE'=>'A_RECORD_UPDATE_DATE','A_RECORD_UPDATE_AUTHOR'=>'A_RECORD_UPDATE_AUTHOR','A_RECORD_CREATE_AUTHOR'=>'A_RECORD_CREATE_AUTHOR','A_RECORD_CREATE_DATE'=>'A_RECORD_CREATE_DATE','ID'=>'ID');
  365. while($h=DB::fetch($resa)) {
  366. //print_r($h);
  367. $sql="";if(isset($sql_obj)) unset($sql_obj);
  368. foreach($h as $field=>$value) {
  369. if(in_array($field, $index_fields)) {
  370. } else {
  371. if(($value!='')and($value!='NULL')and($value!='N/S;')and($field!='_action_time')and($field!='_action_type')and($field!='the_geom' and $value!='')) {
  372. if(strlen($value>10000)) $value='DATA OVER 10000bytes';
  373. $sql="insert ignore into _ANALIZA_HISTORII_ALL( TABLE_NAME, TABLE_ID,FIELD,VALUE,A_RECORD_CREATE_DATE,A_RECORD_CREATE_AUTHOR,A_RECORD_UPDATE_DATE,A_RECORD_UPDATE_AUTHOR ) values (
  374. '{$RTH_A['TABLE']}','{$h->ID_USERS2}','{$field}','".DB::_($value)."','{$h->A_RECORD_CREATE_DATE}','{$h->A_RECORD_CREATE_AUTHOR}','{$h->A_RECORD_UPDATE_DATE}','{$h->A_RECORD_UPDATE_AUTHOR}' )";
  375. //echo "<br>".$sql;
  376. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';echo $sql;echo'</pre>';}
  377. DB::query($sql) or die($sql);
  378. }
  379. }
  380. //die();
  381. }
  382. }
  383. }
  384. }
  385. else {
  386. $NIE_MA[]="Nie ma w tab ".$RTH_A['TABLE_HIST']." kolumn . .";
  387. }
  388. }
  389. DEBUG_S(-3,'Brakuje tabel',$NIE_MA,__FILE__,__FUNCTION__,__LINE__);
  390. $ZAP_SQL['SQL'] = implode(' union ', $ZAP_SQL['TABLES']);
  391. $ZAP_SQL['SQL'] .= " order by date(C1) ";
  392. if ($_GET['A_RECORD_UPDATE_DATE']) {
  393. $res = $db->query($ZAP_SQL['SQL']);
  394. }
  395. if(V::get('DBG', '', $_GET)) DEBUG_S(-3,'ZAP_SQL[SQL]',$ZAP_SQL['SQL'],__FILE__,__FUNCTION__,__LINE__);
  396. $ARR = array();
  397. if ($res) {
  398. while ($DWA = $db->fetch($res)) {
  399. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$DWA (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($DWA);echo'</pre>';}
  400. $ARR['STAT'][$DWA->C2][$DWA->TABLEE]++;
  401. //czysczenie formatow dat:
  402. list($DAT_L1, $DAT_L2) = explode(" ", $DWA->C1);
  403. $DWA->C1 = (isset($DAT_L2))? $DAT_L1 . "-" . $DAT_L2 : $DWA->C1 . ":00";
  404. $ARR['DATE'][$DWA->C2][$DWA->C1] = $DWA->TABLEE . " : " . $DWA->TAB_ID;
  405. $ARR['DATE_CHART'][$DWA->C2][$DWA->C1_Y][$DWA->C1_M][$DWA->C1_D]['COUNT']++;
  406. $C1_H = substr($DWA->C1, 11, 2);
  407. $ARR['DATE_CHART'][$DWA->C2][$DWA->C1_Y][$DWA->C1_M][$DWA->C1_D]['HOURS'][$C1_H]++;
  408. $ARR['DATE_CHART'][$DWA->C2][$DWA->C1_Y][$DWA->C1_M][$DWA->C1_D]['TABLE'][$DWA->TABLEE]++;
  409. $ARR['AUTH'][$DWA->C2]++;
  410. #if ($DWA_A == $AR) {
  411. # $AR++;
  412. #}
  413. }
  414. }
  415. if(V::get('DBG', '', $_GET)){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">$ARR (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($ARR);echo'</pre>';}
  416. $_SESSION['CHART']['ARR'] = $ARR;
  417. $_SESSION['CHART']['TITLE'] = "COSTAM SQIX TITLE";
  418. unset($ARR);
  419. $pok_gif = "puste";
  420. $cnt = 0;
  421. $data_table = array();
  422. $data_hours = array();
  423. if (isset($_SESSION['CHART']['ARR']['DATE_CHART']) && is_array($_SESSION['CHART']['ARR']['DATE_CHART'])) {
  424. foreach($_SESSION['CHART']['ARR']['DATE_CHART'] as $C2=>$C2V) {
  425. $i = 0;
  426. $cnt++;
  427. foreach ($C2V as $C1_Y=>$C1_YV) {
  428. foreach ($C1_YV as $C1_M=>$C1_MV) {
  429. foreach ($C1_MV as $C1_D=>$C1_DV) {
  430. $data[$C2][$C1_D] = $C1_DV['COUNT'];
  431. $i += $C1_DV['COUNT'];
  432. //hours
  433. foreach ($C1_DV['HOURS'] as $C1_H=>$C1_HV) {
  434. $data_hours[$C2][$C1_H] += $C1_HV;
  435. }
  436. foreach ($C1_DV['TABLE'] as $C1_H=>$C1_HV) {
  437. $data_table[$C2][$C1_H] += $C1_HV;
  438. }
  439. }
  440. }
  441. }
  442. if ($i > $_GET['F_LIMIT']) {
  443. if ($pok_gif == "puste") {
  444. $pok_gif = $C2;
  445. } else {
  446. echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=&C2=".urlencode($C2)."&C22=".urlencode($pok_gif).">";
  447. echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=HOUR&C2=".urlencode($C2)."&C22=".urlencode($pok_gif).">";
  448. echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=TABLE&C2=".urlencode($C2)."&C22=".urlencode($pok_gif).">";
  449. $pok_gif = "puste";
  450. }
  451. }
  452. echo "\n SIze dla ".$C2." wynioslo ".$i;
  453. }
  454. }
  455. if ($pok_gif != "puste") {
  456. echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=&C2=".urlencode($pok_gif).">";
  457. echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=HOUR&C2=".urlencode($pok_gif).">";
  458. echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=TABLE&C2=".urlencode($pok_gif).">";
  459. }
  460. // echo "<br><img src=index.php?MENU_INIT=GRAPH&HEADER_NOT_INIT=YES&type=&C2=".urlencode($pok_gif).">";
  461. //tabela z godzinami pracy
  462. foreach ($data_hours as $user_i=>$user) {
  463. foreach ($user as $TABLEE_I=>$TABLE_V) {
  464. foreach ($data_hours as $test_user_i=>$test_user_v) {
  465. if (!isset($test_user_v[$TABLEE_I])) {
  466. $data_hours[$test_user_i][$TABLEE_I]=0;
  467. }
  468. }
  469. }
  470. echo "\n data :\n".$user_i;
  471. ksort($data_hours[$user_i]);
  472. }
  473. //$data_table - to dane w jakich tabelach byla praca
  474. //Tutaj trzeba dodac brakujace do TABLE dane z innych array i posortowac dla dobrego wyswietlenia
  475. foreach ($data_table as $user_i=>$user) {
  476. foreach ($user as $TABLEE_I=>$TABLE_V) {
  477. foreach ($data_table as $test_user_i=>$test_user_v) {
  478. if (!isset($test_user_v[$TABLEE_I])) {
  479. //echo "\n W user ".$test_user_i." tabeli ".$TABLEE_I." brakuje!";
  480. $data_table[$test_user_i][$TABLEE_I]=0;
  481. }
  482. }
  483. }
  484. ksort($data_table[$user_i]);
  485. }
  486. //Sortujemy i uzupelniamy daty prac o brakujace indeksy
  487. if (isset($_SESSION['CHART']['ARR']['DATE_CHART']) && is_array($_SESSION['CHART']['ARR']['DATE_CHART'])) {
  488. foreach ($_SESSION['CHART']['ARR']['DATE_CHART'] as $user_i=>$user) { //lecimy ARR[User]
  489. foreach ($user as $TABLEE_I=>$TABLE_V) { //Lecimy ARR[User][Rok]
  490. foreach ($TABLE_V as $TABLEE_II=>$TABLE_VV) { //Lecimy ARR[User][Rok][m-c]
  491. foreach ($TABLE_VV as $TABLEE_III=>$TABLE_VVV) { //Lecimy ARR[User][Rok][m-c][day]
  492. foreach ($_SESSION['CHART']['ARR']['DATE_CHART'] as $test_user_i=>$test_user_v) { //arr[user]
  493. if (!isset($test_user_v[$TABLEE_I][$TABLEE_II][$TABLEE_III])) {
  494. $_SESSION['CHART']['ARR']['DATE_CHART'][$test_user_i][$TABLEE_I][$TABLEE_II][$TABLEE_III]['COUNT']=0;
  495. }
  496. }
  497. }
  498. }
  499. }
  500. }
  501. foreach($_SESSION['CHART']['ARR']['DATE_CHART'] as $user_i=>$user) { //lecimy ARR[User]
  502. ksort($_SESSION['CHART']['ARR']['DATE_CHART'][$user_i]);
  503. foreach($user as $TABLEE_I=>$TABLE_V) { //Lecimy ARR[User][Rok]
  504. ksort($_SESSION['CHART']['ARR']['DATE_CHART'][$user_i][$TABLEE_I]);
  505. foreach($TABLE_V as $TABLEE_II=>$TABLE_VV) { //Lecimy ARR[User][Rok][m-c]
  506. ksort($_SESSION['CHART']['ARR']['DATE_CHART'][$user_i][$TABLEE_I][$TABLEE_II]);
  507. foreach($TABLE_VV as $TABLEE_III=>$TABLE_VVV) { //Lecimy ARR[User][Rok][m-c][day]
  508. ksort($_SESSION['CHART']['ARR']['DATE_CHART'][$user_i][$TABLEE_I][$TABLEE_II][$TABLEE_III]);
  509. }
  510. }
  511. }
  512. }
  513. }
  514. }