superedit-view_L_APPOITMENT_OVERWIEV.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. //funkcja przygotowuje widok view_L_APPOITMENT_OVERWIEV , sladajacy sie z wielu tabel zawierajacy wylacznie zagregowane spotkania
  3. function view_L_APPOITMENT_OVERWIEV() {
  4. $transform['S_ADDRESS_STREET']='ADRES';
  5. $transform['S_PHONE_NUMBER']='ADRES';
  6. $tables_ignore[]='BILLS_FVAT_POS';
  7. $tables_ignore[]='BILLS_FVAT';
  8. $tables_ignore[]='CRM_LISTA_ZASOBOW_test';
  9. $tables_ignore[]='IN7_MK_BAZA_DYSTRYBUCJI_copy_20140329';
  10. $trans['ID']='ID_TABLE';
  11. $trans['A_STATUS']='A_STATUS';
  12. $trans['A_PROBLEM']='A_PROBLEM';
  13. $trans['A_PROBLEM_DESC']='A_PROBLEM_DESC';
  14. $trans['L_APPOITMENT_USER']='L_APPOITMENT_USER';
  15. $trans['L_APPOITMENT_DATE']='L_APPOITMENT_DATE';
  16. $trans['L_APPOITMENT_PERIOD']='L_APPOITMENT_PERIOD';
  17. $trans['L_APPOITMENT_INFO']='L_APPOITMENT_INFO';
  18. $trans['L_APPOITMENT_TYPE']='L_APPOITMENT_TYPE';
  19. $trans['A_ADM_COMPANY']='A_ADM_COMPANY';
  20. $trans['A_CLASSIFIED']='A_CLASSIFIED';
  21. $trans['A_RECORD_UPDATE_DATE']='A_RECORD_UPDATE_DATE';
  22. $sql_drop="drop view if exists view_L_APPOITMENT_OVERVIEW ; SET @cnt = 0; ";
  23. $sql_create="create VIEW `view_L_APPOITMENT_OVERVIEW` AS";
  24. $conn = DB::getDB();
  25. Lib::loadClass('DB_Util');
  26. $tbls = DB_Util::get_table_list($conn,null,'BASE TABLE');
  27. DEBUG_S(-3,'tbls',$tbls,__FILE__,__FUNCTION__,__LINE__);
  28. foreach($tbls as $tbl) {
  29. if(!strstr($tbl, '_HIST')
  30. &&(!strstr($tbl, '_tmp'))
  31. &&(!strstr($tbl, 'view'))
  32. &&(!strstr($tbl, '_OLD'))
  33. &&(!strstr($tbl, 'temp_'))
  34. &&(!in_array($tbl, $tables_ignore))
  35. ) {
  36. $keys=DB_Util::get_table_keys($conn,$tbl);
  37. DEBUG_S(-3,'keys'.$tbl,$keys,__FILE__,__FUNCTION__,__LINE__);
  38. $struct=DB_Util::get_table_struct($conn,$tbl);
  39. DEBUG_S(-3,'Struct'.$tbl,$struct,__FILE__,__FUNCTION__,__LINE__);
  40. $ok=true;
  41. foreach($trans as $fld=>$trans_) {
  42. if(!isset($struct[$fld])) $ok=false;
  43. if(!isset($keys['`'.$fld.'`']) && $fld!='ID' ) $conn->add_index($tbl,$fld);
  44. }
  45. if($ok) { //sa wszystkie kolumny do utworzenia widoku
  46. $transform_=", '' as `ADRES` ";
  47. foreach($transform as $src=>$dst) {
  48. if(isset($struct[$src])) {
  49. $transform_=", `".$src."` as `".$dst."`";
  50. echo "<br> Jest transform!";
  51. } else echo "<br> Nie ma ".$src." w tabeli".$tbl;
  52. }
  53. $sql_=array();
  54. if(isset($sql)) $sql[]=" union ";
  55. foreach($trans as $fld=>$as) {
  56. $sql_[]="`".$fld."` as `".$as."`";
  57. }
  58. $sql[]=" ( select `ID`, '".$tbl."' as `TABLE`,".implode(',', $sql_).$transform_." from `".$tbl."` where ( L_APPOITMENT_DATE!='' ) order by A_RECORD_UPDATE_DATE DESC ) ";
  59. $msc=microtime(true);
  60. $conn->query("select `ID`, '".$tbl."' as `TABLE`,".implode(',', $sql_).$transform_." from `".$tbl."` where L_APPOITMENT_DATE!='' order by A_RECORD_UPDATE_DATE DESC ");
  61. $msc=microtime(true)-$msc;
  62. $czas[]="Czas ".$msc." dla tabeli ".$tbl;
  63. }
  64. }
  65. }
  66. DEBUG_S(3,'sql',$sql,__FILE__,__FUNCTION__,__LINE__);
  67. $sql_alter=$sql_drop." ".$sql_create." ".implode(" ", $sql);
  68. DEBUG_S(-3,'sql_alter',$sql_alter,__FILE__,__FUNCTION__,__LINE__);
  69. DEBUG_S(-3,'czasy',$czas,__FILE__,__FUNCTION__,__LINE__);
  70. $res=$conn->query($sql_alter);
  71. DEBUG_S(-3,'res',$res);
  72. //$struct=$conn->STRUCTURE_GENERATE($tbls);
  73. }