superedit-USERS_COLUMN_INIT2.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. <?php
  2. //w CONF_INIT nalezy podac parametry do wyzwalania glownej funkcji przegladania WIEVTABLE
  3. function USERS_COLUMN_INIT2( $INIT_TABLE, $EXTRACOLUMN, $PERM_MASK,$GENCONF='',$CONF_INIT='' ) {
  4. global $result,$USERS_COLUMN,$USERSHIST_COLUMN,$special_tables_ignore_fields;
  5. //@2012-10-15 sqix : sprawdzamy czy jest taka funkcja w systemie, jezeli nie ma, to sprawdzamy czy mozemy ja zaladowac,
  6. //jezeli dalej jej nie ma, to tworzymy taka funkcje w systemie domyslnie
  7. SEF($INIT_TABLE);
  8. if(!function_exists($INIT_TABLE)) {
  9. /* $filename="column_init/superedit-".$INIT_TABLE.".php";
  10. if (!$handle = fopen($localpath.$filename, 'x+')) {
  11. echo " Cannot open/w file (".$filename.")";
  12. exit;
  13. }
  14. */
  15. $string_funkcji="
  16. function ".$INIT_TABLE."() {
  17. // init columns if not set
  18. if (empty(\$_SESSION['".$INIT_TABLE."_COLUMN']['ID'])) {
  19. SEF('USERS_COLUMN_INIT2');
  20. USERS_COLUMN_INIT2('".$INIT_TABLE."', '".$EXTRACOLUMN."', '".$PERM_MASK."');
  21. }
  22. ".$CONF_INIT."
  23. SEF('WIEVTABLE');
  24. if(isset(\$params)) WIEVTABLE(\$params);
  25. else WIEVTABLE();
  26. }
  27. ";
  28. $_SESSION['INIT_TABLE_FILE'][$INIT_TABLE]=$string_funkcji;
  29. /*
  30. if (fwrite($handle, $string_funkcji) === FALSE) {
  31. //echo "<br>Blad w tworzeniu funkcji widoku/edycji (".$filename.").";
  32. DEBUG_S(-2, "Blad w tworzeniu funkcji widoku/edycji (".$filename.")",'',__FILE__, __FUNCTION__, __LINE__);
  33. exit;
  34. }
  35. */
  36. // echo "<br>Stworzono funkcje do edycji/widoku tabeli ".$filename.".";
  37. DEBUG_S(2, "Stworzono funkcje do edycji/widoku tabeli: " ,$string_funkcji,__FILE__, __FUNCTION__, __LINE__);
  38. } //eof if function_exists
  39. SEF($INIT_TABLE."_HIST");
  40. if(!function_exists($INIT_TABLE."_HIST")) {
  41. /* $filename="column_init/superedit-".$INIT_TABLE."_HIST.php";
  42. if (!$handle = fopen($filename, 'x+')) {
  43. echo "Cannot open file (".$filename.")";
  44. exit;
  45. }
  46. */
  47. $string_funkcji="
  48. function ".$INIT_TABLE."_HIST() {
  49. // init columns if not set
  50. if (empty(\$_SESSION['".$INIT_TABLE."_COLUMN']['ID'])) {
  51. SEF('USERS_COLUMN_INIT2');
  52. USERS_COLUMN_INIT2('".$INIT_TABLE."', '".$EXTRACOLUMN."', '".$PERM_MASK."');
  53. }
  54. SEF('WIEVTABLE_HIST');
  55. WIEVTABLE_HIST();
  56. }
  57. ";
  58. $_SESSION['INIT_TABLE_FILE'][$INIT_TABLE."_HIST"]=$string_funkcji;
  59. /* if (fwrite($handle, $string_funkcji) === FALSE) {
  60. echo "<br>Blad w tworzeniu funkcji widoku/edycji (".$filename.").";
  61. exit;
  62. }
  63. echo "<br>Stworzono funkcje do edycji/widoku tabeli ".$filename.".";
  64. */
  65. } //eof if function_exists
  66. SEF($INIT_TABLE."_EDIT");
  67. if(!function_exists($INIT_TABLE."_EDIT")) {
  68. /* $filename="column_init/superedit-".$INIT_TABLE."_EDIT.php";
  69. if (!$handle = fopen($filename, 'x+')) {
  70. echo "Cannot open file (".$filename.")";
  71. exit;
  72. }
  73. */
  74. $string_funkcji="
  75. function ".$INIT_TABLE."_EDIT() {
  76. // init columns if not set
  77. if (empty(\$_SESSION['".$INIT_TABLE."_COLUMN']['ID'])) {
  78. SEF('USERS_COLUMN_INIT2');
  79. USERS_COLUMN_INIT2('".$INIT_TABLE."', '".$EXTRACOLUMN."', '".$PERM_MASK."');
  80. }
  81. SEF('EDIT_TABLE_RECORD');
  82. EDIT_TABLE_RECORD();
  83. }
  84. ";
  85. $_SESSION['INIT_TABLE_FILE'][$INIT_TABLE."_EDIT"]=$string_funkcji;
  86. /*
  87. if (fwrite($handle, $string_funkcji) === FALSE) {
  88. echo "<br>Blad w tworzeniu funkcji widoku/edycji (".$filename.").";
  89. exit;
  90. }
  91. echo "<br>Stworzono funkcje do edycji/widoku tabeli ".$filename.".";
  92. */
  93. } //eof if function_exists
  94. if(empty($GENCONF)) { //jezeli tylko byla opcja zrobienia konfiga, to wychodzimy
  95. echo "<font size=-3>.".$INIT_TABLE."</font> ";
  96. $COLUMN = $INIT_TABLE;
  97. // clean session data
  98. $_SESSION[$COLUMN."_COLUMN"]['DESC'] = array();
  99. $_SESSION[$COLUMN."_COLUMN"]['TYPE'] = array();
  100. $_SESSION[$COLUMN."_COLUMN"]['ID'] = array();
  101. $_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'] = array();
  102. $_SESSION[$COLUMN."_COLUMN"]['HIDE'] = array();
  103. //$EXTRACOLUMN=" ";
  104. $EXTRACOLUMN = (!empty($EXTRACOLUMN))? explode(" ", $EXTRACOLUMN) : array();
  105. //TODO2006-03 zapytanie w foreach
  106. //inicjalizacja podrecznikowych zapytan do tabel dla jednej sesji
  107. //jezeli nie zostalo to anulowane przy logowaniu:
  108. if (!isset($_REQUEST['NOPREINIT'])) {
  109. if (isset($_SESSION[$COLUMN."_COLUMN"]['RELATIVEDB']) && isset($_SESSION[$COLUMN."_COLUMN"]['RELATIVEDB']['SQL_QUERY'][0])) {
  110. foreach ($_SESSION[$COLUMN."_COLUMN"]['RELATIVEDB']['SQL_QUERY'] as $value_key => $value) {
  111. // echo "<br> Zainicjalizowano EXTRACOLUMN zapytanie value $value key $value_key <br> ";
  112. ZAP_SQL($value);
  113. }
  114. }
  115. }
  116. ZAP_SQL("show fields from $COLUMN");
  117. $KEY = 0;
  118. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT']['ID'] = "R";
  119. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT']['A_RECORD_CREATE_DATE'] = "R";
  120. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT']['A_RECORD_UPDATE_DATE'] = "R";
  121. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT']['A_RECORD_UPDATE_AUTHOR'] = "R";
  122. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT']['A_RECORD_CREATE_AUTHOR'] = "R";
  123. while ($h = mysql_fetch_array($result)) {
  124. $_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"] = $h[0];
  125. $_SESSION[$COLUMN."_COLUMN"]['TYPE'][$_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"]] = $h[1];
  126. if (!isset($_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h[0]])) {
  127. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h[0]] = $PERM_MASK;
  128. }
  129. $_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'][$h[0]] = $KEY;
  130. $_SESSION[$COLUMN."_COLUMN"]['Default'][$h[0]] = $h['Default'];
  131. $USERS_COLUMN_INIT2['DESC_TO_KEY'][$h[0]] = $KEY; // prawdziwe kolumny
  132. $_SESSION[$COLUMN."_COLUMN"]['ID']["$KEY"] = $KEY;
  133. if(isset($_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]["$KEY"]))
  134. if (isset($_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]) && $_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]["$KEY"] == "HIDE") {
  135. $_SESSION[$COLUMN."_COLUMN"]['HIDE']["$KEY"] = 'HIDE';
  136. }
  137. $KEY++;
  138. }
  139. foreach ($EXTRACOLUMN as $h) {
  140. if (in_array($h,$_SESSION[$COLUMN."_COLUMN"]['DESC'])) {
  141. continue; //@2013-01-21 blad podwojnej kolumny
  142. }
  143. $_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"] = $h;
  144. $_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'][$h] = $KEY;
  145. if (!isset($_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h])) {
  146. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h] = "N";
  147. }
  148. $_SESSION[$COLUMN."_COLUMN"]['ID']["$KEY"] = $KEY;
  149. $TEMP1=$_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"];
  150. $_SESSION[$COLUMN."_COLUMN"]['TYPE'][$_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"]] = "varchar(245)";
  151. if(isset($_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]["$KEY"]))
  152. if (isset($_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]) && $_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]["$KEY"] == "HIDE") {
  153. $_SESSION[$COLUMN."_COLUMN"]['HIDE']["$KEY"] = 'HIDE';
  154. }
  155. $KEY++;
  156. }
  157. //@2012-10-17 jezeli tabela jest SES_XXX_A to T_WHEN_CONNECTED oraz inne powinno byc TYPESPECIAL
  158. if(substr($COLUMN,0,4)=='SES_' && substr($COLUMN,-2)=='_A') {
  159. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['T_WHEN_CONNECTED']))
  160. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['T_WHEN_CONNECTED'] = 'T_WHEN_CONNECTED';
  161. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['A_STATUS']))
  162. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['A_STATUS']="A_STATUS";
  163. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['A_STATUS_CURRENT']))
  164. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['A_STATUS_CURRENT']="A_STATUS_CURRENT";
  165. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['A_ADM_COMPANY']))
  166. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['A_ADM_COMPANY']="A_ADM_COMPANY";
  167. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['P_SERVICE_QUOTA_PROFILE']))
  168. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['P_SERVICE_QUOTA_PROFILE']="P_SERVICE_QUOTA_PROFILE";
  169. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['P_SERVICE_QUOTA']))
  170. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['P_SERVICE_QUOTA']="P_SERVICE_QUOTA";
  171. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['T_NETWORK_SERVER']))
  172. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['T_NETWORK_SERVER']="T_NETWORK_SERVER";
  173. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['T_TELBOX_ADDRESS']))
  174. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['T_TELBOX_ADDRESS']="T_TELBOX_ADDRESS";
  175. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['P_SERVICE']))
  176. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['P_SERVICE']="P_SERVICE";
  177. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['N_AVG_TRAFFIC']))
  178. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['N_AVG_TRAFFIC']="N_AVG_TRAFFIC";
  179. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['A_PROBLEM']))
  180. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['A_PROBLEM']="A_PROBLEM";
  181. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['T_WHO_CONNECTED']))
  182. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['T_WHO_CONNECTED']="T_WHO_CONNECTED";
  183. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['L_APPOITMENT_USER']))
  184. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['L_APPOITMENT_USER']="L_APPOITMENT_USER";
  185. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['L_APPOITMENT_DATE']))
  186. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['L_APPOITMENT_DATE']="L_APPOITMENT_DATE";
  187. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['A_STATUS_CURRENT']))
  188. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['L_APPOITMENT_PERIOD']="L_APPOITMENT_PERIOD";
  189. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['P_DEALNUMBER']))
  190. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['P_DEALNUMBER']="P_DEALNUMBER";
  191. if(isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['S_HW']))
  192. $_SESSION[$COLUMN."_COLUMN"]['TYPESPECIAL']['S_HW']="S_HW";
  193. }
  194. //@2012-10-15 test czy sa odpowiednie kolumny w tabeli :
  195. $USERS_COLUMN_INIT2['REQUEST_COLUMN']=array(
  196. 'A_RECORD_CREATE_DATE'=>'varchar(30)','A_RECORD_CREATE_AUTHOR'=>'varchar(100) not null',
  197. 'A_RECORD_UPDATE_DATE'=>'varchar(30)','A_RECORD_UPDATE_AUTHOR'=>'varchar(100) not null',
  198. 'L_APPOITMENT_DATE'=>'varchar(30) not null',
  199. 'L_APPOITMENT_USER'=>"varchar(100) not null",
  200. 'L_APPOITMENT_PERIOD'=>"varchar(4) not null",
  201. 'L_APPOITMENT_INFO'=>"varchar(255) not null",
  202. 'L_APPOITMENT_TYPE'=>"enum('', 'ARRANGED', 'TO_ARRANGE', 'CANCELLED', 'TO_CANCEL', 'RELATE', 'WAIT')",
  203. 'A_PROBLEM'=>"enum('', 'WARNING', 'PROBLEM', 'SERIOUS', 'UNVERIFIED')",
  204. 'A_PROBLEM_DESC'=>'varchar(255) not null',
  205. 'A_PROBLEM_DATE'=>'varchar(30) not null',
  206. 'A_STATUS'=>"enum('WAITING', 'NORMAL', 'MONITOR', 'WARNING', 'OFF_SOFT', 'OFF_HARD', 'DELETED')",
  207. 'A_STATUS_INFO'=>"varchar(255) not null",
  208. 'A_ADM_COMPANY'=>'varchar(100) not null',
  209. 'T_WORKPOINTS'=>"varchar(100) not null",
  210. 'T_WORKPOINTS_VALUE'=>"varchar(100) not null",
  211. 'T_WORKPOINTS_TYPE'=>"varchar(100) not null",
  212. 'T_WORKPOINTS_USER'=>"varchar(100) not null",
  213. 'T_WORKPOINTS_DATE'=>"varchar(100) not null",
  214. 'P_ACCOUNT'=>"varchar(40) not null"
  215. );
  216. if(!in_array($COLUMN,$special_tables_ignore_fields)) { //ignorowanie specjalnych kolumn
  217. foreach($USERS_COLUMN_INIT2['REQUEST_COLUMN'] as $tst_column=>$tst_type) {
  218. if(!isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'][$tst_column])) {
  219. if(!isset($ZAP_SQL_upd_struct)) settype($ZAP_SQL_upd_struct,"string");
  220. $ZAP_SQL_upd_struct.="\n alter table ".$INIT_TABLE." add ".$tst_column." ".$tst_type." ; " ;
  221. echo "<br><font color=red>Brak Kolumny: ".$tst_column." w tabeli: ".$COLUMN." .</font>" ;
  222. }
  223. }
  224. $COLUMN = $INIT_TABLE."_HIST";
  225. //sprawdzam czy jest tabela historyczna
  226. ZAP_SQL("show tables like '".$COLUMN."'");
  227. if(mysql_num_rows($result)!=1) { echo "<br><font color=red>Brak tabeli historycznej!: ".$COLUMN." </font>";
  228. if(!isset($ZAP_SQL_upd_struct)) settype($ZAP_SQL_upd_struct,"string");
  229. $ZAP_SQL_upd_struct.="\n CREATE TABLE `".$COLUMN."` (
  230. `ID` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  231. `ID_USERS2` INT( 11 ) NOT NULL ,
  232. PRIMARY KEY ( `ID` ) ,
  233. INDEX ( `ID_USERS2` )
  234. ) TYPE = MYISAM ;";
  235. } else { //jest tabela historyczna
  236. // echo "<br> Jest tabela ".$COLUMN;
  237. ZAP_SQL("show fields from $COLUMN");
  238. $KEY = 0;
  239. while ($h = mysql_fetch_row($result)) {
  240. $_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"] = $h[0];
  241. $_SESSION[$COLUMN."_COLUMN"]['TYPE'][$_SESSION[$COLUMN."_COLUMN"]['DESC']["$KEY"]] = $h[1];
  242. if (!isset($_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h[0]])) {
  243. $_SESSION[$COLUMN."_COLUMN"]['PERMEDIT'][$h[0]] = "RW";
  244. }
  245. $_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'][$h[0]] = $KEY;
  246. $_SESSION[$COLUMN."_COLUMN"]['ID']["$KEY"] = $KEY;
  247. if (isset($_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]) && $_SESSION['USER_PROFILE'][$COLUMN."_COLUMN"]["$KEY"] == "HIDE") {
  248. $_SESSION[$COLUMN."_COLUMN"]['HIDE']["$KEY"] = 'HIDE';
  249. }
  250. $KEY++;
  251. }
  252. }
  253. //uzupelnienie tabeli Historycznej!
  254. foreach($USERS_COLUMN_INIT2['DESC_TO_KEY'] as $tst_column=>$tst_index) {
  255. if(!isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY'][$tst_column])) {
  256. if(!isset($ZAP_SQL_upd_struct)) settype($ZAP_SQL_upd_struct,"string");
  257. $ZAP_SQL_upd_struct.="\n alter table ".$COLUMN." add ".$tst_column." varchar(255) default 'N/S;' ; " ;
  258. echo "<br><font color=red>Brak Kolumny: ".$tst_column." w tabeli: ".$COLUMN." .</font>" ;
  259. }
  260. }
  261. //czy jest odniesienie do ID_USERS2
  262. if(!isset($_SESSION[$COLUMN."_COLUMN"]['DESC_TO_KEY']['ID_USERS2'])) {
  263. if(!isset($ZAP_SQL_upd_struct)) settype($ZAP_SQL_upd_struct,"string");
  264. $ZAP_SQL_upd_struct.="\n alter table ".$COLUMN." add ID_USERS2 int(11) ; " ;
  265. $ZAP_SQL_upd_struct.="\n alter table ".$COLUMN." add INDEX(ID_USERS2) ; " ;
  266. }
  267. } //eof if $special_tables_ignore_fields
  268. if(isset($ZAP_SQL_upd_struct)) echo "<br><font color=red>W celu aktualizacji struktury wyzwol zapytanie:<pre> ".$ZAP_SQL_upd_struct ."</pre></font>";
  269. }
  270. }