superedit-STATYSTYKA_TABELE.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. <?php
  2. /**
  3. * Aktualizacja tabel statystycznych.
  4. *
  5. * Dotyczy tabel:
  6. * temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  7. * temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  8. * temp_USERS2_INTERNET_STATUS_TV_NORMAL
  9. * temp_USERS2_INTERNET_STATUS_OFF_HARD
  10. * USERS2_MARKETING_OVERWIEV
  11. * USERS2_MARKETING_OVERWIEV_REWIR
  12. * Pobiera dane z tabeli temp_USERS2_INTERNET_STATUS - TODO gdzie jest tworzona ta tabela
  13. *
  14. */
  15. function STATYSTYKA_TABELE() {
  16. $db = DB::getDB();
  17. if (!$db) {
  18. echo '<div class="alert alert-danger">' . "Database Error" . '</div>';
  19. return;
  20. }
  21. $sqlList = array();
  22. $task = V::get('task', '', $_GET);
  23. if ($task == 'FVAT_POS_CHARTS') {
  24. echo "moved to RECOUNT_STATS_BILLS_FVAT_POS";
  25. return;
  26. }
  27. else if ($task == 'FVAT_POS') {
  28. echo "moved to RECOUNT_STATS_BILLS_FVAT_POS";
  29. return;
  30. }
  31. else {
  32. { //@2016-07-11 bindera moved from old superedit-USERS_FIELDS_PROFILE_PRE_INIT.php $_SESSION['USERS2_MARKETING_COLUMN']['RELATIVEDB']['SQL_QUERY']
  33. //TODO zastapic to czyms Piotrowym @2016-06-11
  34. $A_STATUS_L2_SQL="if(SV.HANGUP_STATUS=SV.A_STATUS,coalesce(SV.A_STATUS),
  35. if( ( unix_timestamp(NOW()) > unix_timestamp(SV.HANGUP_FROM) and ( SV.HANGUP_TILL='0000-00-00' or SV.HANGUP_TILL is NULL )
  36. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.HANGUP_STATUS),
  37. if( ( unix_timestamp(NOW()) < unix_timestamp(SV.HANGUP_FROM) and ( SV.HANGUP_TILL='0000-00-00' or SV.HANGUP_TILL is NULL )
  38. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.A_STATUS),
  39. if( ( unix_timestamp(NOW()) > unix_timestamp(SV.HANGUP_FROM) and unix_timestamp(NOW()) < unix_timestamp(SV.HANGUP_TILL)
  40. and ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  41. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.HANGUP_STATUS),
  42. if( ( unix_timestamp(NOW()) < unix_timestamp(SV.HANGUP_FROM) and unix_timestamp(NOW())< unix_timestamp(SV.HANGUP_TILL)
  43. and ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  44. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.A_STATUS),
  45. if( (
  46. ( SV.HANGUP_TILL='0000-00-00' or SV.HANGUP_TILL is NULL )
  47. and ( SV.HANGUP_FROM='0000-00-00' or SV.HANGUP_FROM is null )) , coalesce(SV.A_STATUS),
  48. if( unix_timestamp(NOW()) > unix_timestamp(SV.HANGUP_FROM) and unix_timestamp(NOW()) > unix_timestamp(SV.HANGUP_TILL) and (
  49. ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  50. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.A_STATUS),
  51. if( unix_timestamp(NOW()) > unix_timestamp(SV.HANGUP_FROM) and unix_timestamp(NOW()) > unix_timestamp(SV.HANGUP_TILL) and
  52. SV.HANGUP_FROM<SV.HANGUP_TILL and (
  53. ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  54. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , 'ERROR1',
  55. 'ERROR2'
  56. )
  57. )
  58. )
  59. )
  60. )
  61. )
  62. )
  63. )
  64. ";
  65. { //stworzenie widoku bledow w USERS2_MARKETING dot budynkow
  66. $sqlList[]="drop view if exists `USERS2_MARKETING__BUILDINGS_ERROR` ;";
  67. $sqlList[]="create ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER view USERS2_MARKETING__BUILDINGS_ERROR as
  68. SELECT t1.ID, t1.M_REWIR, t1.S_ADDRESS_STREET, t1.T_TELBOX_BUILDING_IN
  69. , t1.A_ADM_COMPANY, t1.A_CLASSIFIED, t1.A_RECORD_UPDATE_DATE,
  70. t1.A_RECORD_CREATE_DATE, t1.A_RECORD_CREATE_AUTHOR, t1.A_RECORD_UPDATE_AUTHOR,
  71. 'ERROR Nieprawidlowe powiazanie budynku' AS ERROR
  72. FROM USERS2_MARKETING AS t1
  73. LEFT JOIN BUILDINGS AS t2 ON t1.T_TELBOX_BUILDING_IN = t2.S_ADDRESS_STREET
  74. WHERE t2.ID IS NULL and ( t2.A_STATUS!='DELETED' or t2.A_STATUS is NULL )
  75. AND t1.T_TELBOX_BUILDING_IN LIKE '_%' and t1.A_STATUS!='DELETED'
  76. UNION
  77. SELECT t1.ID, t1.M_REWIR, t1.S_ADDRESS_STREET, t1.T_TELBOX_BUILDING_IN
  78. , t1.A_ADM_COMPANY, t1.A_CLASSIFIED, t1.A_RECORD_UPDATE_DATE, t1.A_RECORD_CREATE_DATE, t1.A_RECORD_CREATE_AUTHOR, t1.A_RECORD_UPDATE_AUTHOR, 'ERROR Brak powiazania budynku' AS ERROR
  79. FROM USERS2_MARKETING AS t1
  80. WHERE t1.T_TELBOX_BUILDING_IN LIKE '' and t1.A_STATUS!='DELETED' ;";
  81. $sqlList[]="drop view if exists `BUILDINGS__MARKETING_ERROR` ;";
  82. $sqlList[]="create ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER view BUILDINGS__MARKETING_ERROR as
  83. SELECT t1.ID, t1.M_REWIR, t1.S_ADDRESS_STREET, t1.A_ADM_COMPANY, t1.A_CLASSIFIED, t1.A_RECORD_UPDATE_DATE, t1.A_RECORD_CREATE_DATE, t1.A_RECORD_CREATE_AUTHOR, t1.A_RECORD_UPDATE_AUTHOR
  84. ,t1.T_BUILDING_MIESZKANIA , 0 as ILOSC_POW_MIESZKAN
  85. ,'ERROR Brak powiazanych mieszkan do budynku' AS ERROR
  86. FROM BUILDINGS AS t1
  87. LEFT JOIN USERS2_MARKETING AS t2 ON t2.T_TELBOX_BUILDING_IN = t1.S_ADDRESS_STREET
  88. WHERE t2.ID IS NULL and ( t2.A_STATUS!='DELETED' or t2.A_STATUS is NULL )
  89. and t1.A_STATUS!='DELETED'
  90. UNION
  91. SELECT t1.ID, t1.M_REWIR, t1.S_ADDRESS_STREET, t1.A_ADM_COMPANY, t1.A_CLASSIFIED, t1.A_RECORD_UPDATE_DATE, t1.A_RECORD_CREATE_DATE, t1.A_RECORD_CREATE_AUTHOR, t1.A_RECORD_UPDATE_AUTHOR
  92. , t1.T_BUILDING_MIESZKANIA
  93. ,count(t2.ID) as ILOSC_POW_MIESZKAN
  94. , 'ERROR Niewlasciwa ilosc powiazanych mieszkan' AS ERROR
  95. FROM BUILDINGS AS t1
  96. LEFT JOIN USERS2_MARKETING AS t2 ON t2.T_TELBOX_BUILDING_IN = t1.S_ADDRESS_STREET
  97. WHERE t2.ID IS NOT NULL and ( t2.A_STATUS!='DELETED' )
  98. and t1.A_STATUS!='DELETED'
  99. group by t2.T_TELBOX_BUILDING_IN
  100. having T_BUILDING_MIESZKANIA!=ILOSC_POW_MIESZKAN
  101. ;";
  102. }
  103. $sqlList[]=" drop table if exists temp_USERS2_INTERNET_STATUS; ";
  104. $sqlList[]="create table temp_USERS2_INTERNET_STATUS
  105. select SV.ID,
  106. US2.S_ADDRESS_STREET, concat_ws('', ".$A_STATUS_L2_SQL." ,'.', coalesce(US2.A_STATUS_CURRENT), ' USLUGA:INTERNET(USERS2)' , ' GNIAZDO/USL:',US2.P_SERVICE,' CENA:',coalesce(SV.ABONAMENT_VALUE),
  107. ' SPEED:',coalesce(US2.P_SERVICE_QUOTA),' DEALD:(',coalesce(DT.ID),coalesce(DT.P_DEALPREFIX), '):', coalesce(DT.P_DEALDATE),'--',coalesce(DT.P_DEALDATE_TERM),
  108. ' KONTAKT_L2:',coalesce(BUA.P_PHONE),',', coalesce(BUA.user_mail_contact),',' , coalesce(BUA.P_FAX)) as USERS2_INTERNET_STATUS
  109. , DT.P_DEALDATE_TERM as P_DEALEXPIRE , SV.NAME_LIST_SERVICES
  110. , ".$A_STATUS_L2_SQL." as A_STATUS , SV.HANGUP_STATUS
  111. from SERVICES as SV
  112. inner JOIN SES_USERS2_A as US2 on SV.ID=US2.ID_SERVICES
  113. inner JOIN BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
  114. left join DEALS_TABLE as DT on DT.ID=SV.ID_DEALS_TABLE
  115. where SV.NAME_LIST_SERVICES='USERS2' and ( SV.P_ID_SERVICES is NULL or SV.P_ID_SERVICES=0)
  116. ;";
  117. $sqlList[]="insert ignore into temp_USERS2_INTERNET_STATUS
  118. select SV.ID,
  119. US2.S_ADDRESS_STREET,
  120. concat_ws('',".$A_STATUS_L2_SQL.",'.', coalesce(US2.A_STATUS_CURRENT), ' USLUGA:',SV.NAME_LIST_SERVICES , ' GNIAZDO/USL:',US2.P_SERVICE,' CENA:',coalesce(SV.ABONAMENT_VALUE)
  121. ,' DEALD:(',coalesce(DT.ID),coalesce(DT.P_DEALPREFIX), '):', coalesce(DT.P_DEALDATE),'--',coalesce(DT.P_DEALDATE_TERM),
  122. ' KONTAKT_L2:',coalesce(BUA.P_PHONE),',' ,coalesce(BUA.user_mail_contact),',' , coalesce(BUA.P_FAX)) as USERS2_INTERNET_STATUS
  123. , DT.P_DEALDATE_TERM as P_DEALEXPIRE , SV.NAME_LIST_SERVICES
  124. , ".$A_STATUS_L2_SQL." as A_STATUS, SV.HANGUP_STATUS
  125. from SERVICES as SV
  126. inner JOIN SES_TV_A as US2 on SV.ID=US2.ID_SERVICES
  127. inner JOIN BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
  128. left join DEALS_TABLE as DT on DT.ID=SV.ID_DEALS_TABLE
  129. where SV.NAME_LIST_SERVICES='TV' and ( SV.P_ID_SERVICES is NULL or SV.P_ID_SERVICES=0) ; ";
  130. $sqlList[]="insert ignore into temp_USERS2_INTERNET_STATUS
  131. select SV.ID,
  132. US22.S_ADDRESS_STREET,
  133. concat_ws('',".$A_STATUS_L2_SQL.",'.', coalesce(US2.A_STATUS_CURRENT), ' USLUGA:',SV.NAME_LIST_SERVICES ,' KLIENT_ID/P_NAME:',concat_ws('',SV.ID_BILLING_USERS,'/',BUA.P_NAME,' ',BUA.P_NAME_SECOND,';'), ' GNIAZDO/USL:',US2.S_PHONE_NUMBER,' CENA:',coalesce(SV.ABONAMENT_VALUE),' DEALD:(',coalesce(DT.ID),coalesce(DT.P_DEALPREFIX), '):', coalesce(DT.P_DEALDATE),'--',coalesce(DT.P_DEALDATE_TERM) ,
  134. ' KONTAKT_L2:',coalesce(BUA.P_PHONE),',' ,coalesce(BUA.user_mail_contact),',' , coalesce(BUA.P_FAX)) as USERS2_INTERNET_STATUS
  135. , DT.P_DEALDATE_TERM as P_DEALEXPIRE , SV.NAME_LIST_SERVICES
  136. , ".$A_STATUS_L2_SQL." as A_STATUS, SV.HANGUP_STATUS
  137. from SERVICES as SV
  138. inner JOIN SES_VOIP_A as US2 on SV.ID=US2.ID_SERVICES
  139. inner JOIN BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
  140. inner JOIN SERVICES as SV2 on SV2.P_ID_SERVICES=SV.ID
  141. inner JOIN SES_USERS2_A as US22 on US22.ID_SERVICES=SV2.ID
  142. left join DEALS_TABLE as DT on DT.ID=SV.ID_DEALS_TABLE
  143. where SV.NAME_LIST_SERVICES='VOIP' and ( SV.P_ID_SERVICES is NULL or SV.P_ID_SERVICES=0)
  144. and ".$A_STATUS_L2_SQL."!='OFF_HARD';";
  145. $sqlList[]="ALTER TABLE temp_USERS2_INTERNET_STATUS CHANGE USERS2_INTERNET_STATUS USERS2_INTERNET_STATUS VARCHAR( 255 ) NOT NULL;";
  146. //wyglada na dodanie rekordow z uslug do bazy marketingu
  147. $sqlList[]="insert ignore into USERS2_MARKETING (A_RECORD_CREATE_DATE,A_RECORD_CREATE_AUTHOR,S_ADDRESS_STREET,T_NETWORK_SERVER, P_PHONE,P_OTHER_INFO,A_STATUS,A_STATUS_INFO,S_ALIAS) SELECT A_RECORD_CREATE_DATE,A_RECORD_CREATE_AUTHOR,S_ADDRESS_STREET,T_NETWORK_SERVER,P_PHONE,P_OTHER_INFO,A_STATUS,A_STATUS_INFO,S_ALIAS FROM USERS2 ORDER BY A_RECORD_UPDATE_DATE DESC ;";
  148. //wyglada na aktualizacje telefonu z innego miejsca -ale wyremowana
  149. $sqlList[]="UPDATE USERS2_MARKETING AS USERS2_MARKETING , USERS2 AS USERS2 SET USERS2_MARKETING.S_ALIAS=USERS2.S_ALIAS ,
  150. USERS2_MARKETING.P_PHONE=USERS2.P_PHONE WHERE USERS2_MARKETING.S_ADDRESS_STREET=USERS2.S_ADDRESS_STREET AND USERS2.A_RECORD_UPDATE_DATE>USERS2_MARKETING.A_RECORD_UPDATE_DATE and 1=0 ;";
  151. $sqlList[]="alter table temp_USERS2_INTERNET_STATUS add index(S_ADDRESS_STREET) , add index(USERS2_INTERNET_STATUS) ;";
  152. ////@2012-04-24 aktualizacja ADM_COMPANY z BUILDINGS
  153. $sqlList[]="UPDATE USERS2_MARKETING AS USERS2_MARKETING , BUILDINGS AS BUILDINGS
  154. SET USERS2_MARKETING.A_ADM_COMPANY=BUILDINGS.A_ADM_COMPANY
  155. WHERE USERS2_MARKETING.T_TELBOX_BUILDING_IN=BUILDINGS.S_ADDRESS_STREET;";
  156. }
  157. {// temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  158. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL";
  159. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  160. select ID, S_ADDRESS_STREET, USERS2_INTERNET_STATUS, P_DEALEXPIRE
  161. from temp_USERS2_INTERNET_STATUS
  162. where
  163. ( USERS2_INTERNET_STATUS like 'NORMAL%' or USERS2_INTERNET_STATUS like 'WAITING%' )
  164. and NAME_LIST_SERVICES like 'USERS2'
  165. group by S_ADDRESS_STREET
  166. ";
  167. $sqlList[] = "alter ignore table temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL add index(S_ADDRESS_STREET)";
  168. }
  169. {// temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  170. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_VOIP_NORMAL";
  171. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  172. select ID, S_ADDRESS_STREET, USERS2_INTERNET_STATUS, P_DEALEXPIRE
  173. from temp_USERS2_INTERNET_STATUS
  174. where
  175. ( USERS2_INTERNET_STATUS like 'NORMAL%' or USERS2_INTERNET_STATUS like 'WAITING%' )
  176. and NAME_LIST_SERVICES like 'VOIP'
  177. group by S_ADDRESS_STREET
  178. ";
  179. $sqlList[] = "alter table temp_USERS2_INTERNET_STATUS_VOIP_NORMAL add index(S_ADDRESS_STREET)";
  180. }
  181. {// temp_USERS2_INTERNET_STATUS_TV_NORMAL
  182. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_TV_NORMAL";
  183. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_TV_NORMAL
  184. select ID, S_ADDRESS_STREET, USERS2_INTERNET_STATUS, P_DEALEXPIRE
  185. from temp_USERS2_INTERNET_STATUS
  186. where
  187. ( USERS2_INTERNET_STATUS like 'NORMAL%' or USERS2_INTERNET_STATUS like 'WAITING%' )
  188. and NAME_LIST_SERVICES like 'TV'
  189. group by S_ADDRESS_STREET
  190. ";
  191. $sqlList[] = "alter table temp_USERS2_INTERNET_STATUS_TV_NORMAL add index(S_ADDRESS_STREET)";
  192. }
  193. {// temp_USERS2_INTERNET_STATUS_OFF_HARD
  194. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_OFF_HARD";
  195. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_OFF_HARD
  196. select t1.ID, t1.S_ADDRESS_STREET, t2.ID as T2_ID
  197. from USERS2_MARKETING as t1
  198. left join temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL as t2 on(t2.S_ADDRESS_STREET=t1.S_ADDRESS_STREET)
  199. where
  200. t2.ID is NULL
  201. and t1.I_OPER='BN'
  202. ";
  203. }
  204. {// update USERS2_MARKETING fields: I_OPER, I_OPER_FIN
  205. // by NORMAL - temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  206. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  207. set USERS2_MARKETING.I_OPER='BN',
  208. USERS2_MARKETING.I_OPER_FIN=temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL.P_DEALEXPIRE
  209. where USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL.S_ADDRESS_STREET
  210. ";
  211. // update USERS2_MARKETING fields: I_OPER by OFF_HARD
  212. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_OFF_HARD
  213. set USERS2_MARKETING.I_OPER='NIEWIADOMO'
  214. where USERS2_MARKETING.I_OPER='BN'
  215. and USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_OFF_HARD.S_ADDRESS_STREET
  216. ";
  217. // update USERS2_MARKETING fields: I_OPER, T_OPER_FIN by VOIP
  218. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  219. set USERS2_MARKETING.T_OPER='BN',
  220. USERS2_MARKETING.T_OPER_FIN=temp_USERS2_INTERNET_STATUS_VOIP_NORMAL.P_DEALEXPIRE
  221. where USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_VOIP_NORMAL.S_ADDRESS_STREET
  222. ";
  223. // update USERS2_MARKETING fields: TV_OPER, TV_OPER_FIN
  224. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_TV_NORMAL
  225. set USERS2_MARKETING.TV_OPER='BN',
  226. USERS2_MARKETING.TV_OPER_FIN=temp_USERS2_INTERNET_STATUS_TV_NORMAL.P_DEALEXPIRE
  227. where USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_TV_NORMAL.S_ADDRESS_STREET
  228. ";
  229. }
  230. {// USERS2_MARKETING_OVERWIEV
  231. $sqlList[] = "drop table if exists USERS2_MARKETING_OVERWIEV";
  232. // update `USERS2_MARKETING` fields: `M_REWIR`
  233. $sqlList[] = "update USERS2_MARKETING , BUILDINGS
  234. set USERS2_MARKETING.M_REWIR=BUILDINGS.M_REWIR
  235. where
  236. USERS2_MARKETING.T_TELBOX_BUILDING_IN=BUILDINGS.S_ADDRESS_STREET
  237. and BUILDINGS.M_REWIR!=''
  238. and BUILDINGS.M_REWIR is not null
  239. ";
  240. $COLSFORSTATS = array('I','T','TV');
  241. $COLSFORSTATS_OPERS_default = array('INNY','UPC','NSM','TP','EIA','BRAK','JARSAT');
  242. //@2016-07-01 automatyczne przetwarzanie roznych operatorow i ich skrotow na podstawie analizy obecnie dostepnych
  243. $sql_OPERS="select distinct(I_OPER) as OPERS from USERS2_MARKETING
  244. union select distinct(T_OPER) as OPERS from USERS2_MARKETING
  245. union select distinct(TV_OPER) as OPERS from USERS2_MARKETING
  246. group by OPERS
  247. ";
  248. $res_OPERS=$db->query($sql_OPERS);
  249. while($row_OPERS=$db->fetch($res_OPERS)) {
  250. if(strlen($row_OPERS->OPERS)>0)
  251. if(!in_array(strtolower(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS), $COLSFORSTATS_OPERS)))
  252. if(!in_array(strtoupper(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS), $COLSFORSTATS_OPERS)))
  253. if(!in_array(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS, $COLSFORSTATS_OPERS))) {
  254. //echo "dodaje ".strtoupper(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS));
  255. $COLSFORSTATS_OPERS[]=strtoupper(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS));
  256. }
  257. if($row_OPERS->OPERS!=preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS)) {
  258. //aktualizacja w bazie nazwy operatora aby byla bez dziwnych znakow
  259. foreach($COLSFORSTATS as $FFS) {
  260. $sql_upd="update USERS2_MARKETING set `{$FFS}_OPER`='".strtoupper(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS))."' where `{$FFS}_OPER`='".$row_OPERS->OPERS."'";
  261. $res = $db->query($sql_upd);
  262. if ($db->has_errors()) {
  263. $errors = true;
  264. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;"> (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($db->get_errors());echo'</pre>';
  265. }
  266. }
  267. }
  268. }
  269. //upewnienie sie, ze sa domyslne nazwy firm-operatorow
  270. foreach($COLSFORSTATS_OPERS_default as $OPER ) {
  271. if(!in_array($OPER, $COLSFORSTATS_OPERS)) $COLSFORSTATS_OPERS[]=$OPER;
  272. }
  273. echo'<pre style="max-height:200px;overflow:auto;border:1px solid green;text-align:left;">Wykryci operatorzy do analizy: COLSFORSTATS_OPERS (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($COLSFORSTATS_OPERS);echo'</pre>';
  274. //BEGIN MIESZKANIA STATSY
  275. $sql = "select 0 as ID
  276. , USERS2_MARKETING.T_TELBOX_BUILDING_IN
  277. , USERS2_MARKETING.M_REWIR
  278. , BUILDINGS.T_NETWORK_SERVER
  279. , sum(if(USERS2_MARKETING.I_OPER='BN',1,0) ) as ABO_I ,count(USERS2_MARKETING.S_ADDRESS_STREET) as MIESZKAN
  280. , round(( sum( if(
  281. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  282. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  283. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  284. ), 1, 0) ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as BADAN_I
  285. , round(( sum( if(
  286. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  287. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  288. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  289. or USERS2_MARKETING.I_OPER='BN'
  290. or USERS2_MARKETING.T_OPER='BN'
  291. or USERS2_MARKETING.TV_OPER='BN'
  292. ), 1, 0) ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as ANKIET_I
  293. , BUILDINGS.A_ADM_COMPANY
  294. ";
  295. foreach ($COLSFORSTATS as $FFS) {
  296. $sql .= " , round((sum(if( USERS2_MARKETING.`{$FFS}_OPER`='BN',1,0) ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as `NAS_{$FFS}` ";
  297. foreach ($COLSFORSTATS_OPERS as $FFFS) {
  298. $sql .= " , round((
  299. sum(
  300. if( USERS2_MARKETING.`{$FFS}_OPER`='{$FFFS}', 1, 0)
  301. ) / sum(
  302. if(
  303. (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00')
  304. and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0
  305. )
  306. ) * (
  307. count(USERS2_MARKETING.S_ADDRESS_STREET)
  308. -
  309. sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  310. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  311. ) * 100, 2) as `PR_{$FFS}_{$FFFS}`
  312. ";
  313. }
  314. $sql .= "
  315. , round((
  316. sum(
  317. if(
  318. (USERS2_MARKETING.`{$FFS}_OPER`!='BN'
  319. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT` > 2
  320. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT` != 'NIEWIADOMO'), 1, 0)
  321. ) / sum(
  322. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  323. ) * (
  324. count(USERS2_MARKETING.S_ADDRESS_STREET)
  325. -
  326. sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN',1,0))
  327. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  328. ) * 100, 2) as `PR_{$FFS}_ZAINT`
  329. , round ((
  330. sum(
  331. if(
  332. (USERS2_MARKETING.`{$FFS}_OPER`!='BN'
  333. and USERS2_MARKETING.`{$FFS}_OPER`!='BRAK'
  334. and USERS2_MARKETING.`{$FFS}_OPER`!='NIEWIADOMO'), 1, 0)
  335. ) / sum(
  336. if(
  337. (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN') ,1,0 )
  338. ) * (
  339. count(USERS2_MARKETING.S_ADDRESS_STREET)
  340. -
  341. sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  342. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  343. ) * 100, 2) as `PR_{$FFS}_KONKUR`
  344. ";
  345. }
  346. $sql .= "
  347. from USERS2_MARKETING as USERS2_MARKETING
  348. left join BUILDINGS on (BUILDINGS.S_ADDRESS_STREET=USERS2_MARKETING.T_TELBOX_BUILDING_IN)
  349. where
  350. USERS2_MARKETING.A_STATUS!='DELETED'
  351. and BUILDINGS.A_STATUS!='DELETED'
  352. group by USERS2_MARKETING.T_TELBOX_BUILDING_IN
  353. order by USERS2_MARKETING.M_REWIR DESC, USERS2_MARKETING.T_TELBOX_BUILDING_IN
  354. ";
  355. $sqlList[] = " create table `USERS2_MARKETING_OVERWIEV` \n {$sql} \n limit 1";
  356. $sqlList[] = " truncate table `USERS2_MARKETING_OVERWIEV` ";
  357. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` ENGINE=MYISAM ";
  358. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `ID` `ID` INT(11) NOT NULL DEFAULT '0' ";
  359. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` ADD PRIMARY KEY(`ID`) ";
  360. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT ";
  361. $sqlList[] = " insert into `USERS2_MARKETING_OVERWIEV` \n {$sql}";
  362. }
  363. {// REWIRY STATSY - USERS2_MARKETING_OVERWIEV_REWIR
  364. $sqlList[] = "drop table if exists USERS2_MARKETING_OVERWIEV_REWIR";
  365. $sql = " select 0 as ID
  366. , group_concat(distinct ' ', USERS2_MARKETING.T_TELBOX_BUILDING_IN) as T_TELBOX_BUILDING_IN
  367. , USERS2_MARKETING.M_REWIR
  368. , BUILDINGS.T_NETWORK_SERVER
  369. , sum(if(USERS2_MARKETING.I_OPER='BN',1,0) ) as ABO_I
  370. , count(USERS2_MARKETING.S_ADDRESS_STREET) as MIESZKAN
  371. , round((sum(if(USERS2_MARKETING.I_OPER='BN', 1, 0)) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as NAS_I
  372. , round(( sum( if(
  373. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  374. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  375. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  376. ), 1, 0)
  377. ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as BADAN_I
  378. , round(( sum( if(
  379. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  380. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  381. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  382. or USERS2_MARKETING.I_OPER='BN'
  383. or USERS2_MARKETING.T_OPER='BN'
  384. or USERS2_MARKETING.TV_OPER='BN'), 1, 0)
  385. ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as ANKIET_I
  386. , BUILDINGS.A_ADM_COMPANY
  387. ";
  388. foreach ($COLSFORSTATS as $FFS) {
  389. foreach ($COLSFORSTATS_OPERS as $FFFS) {
  390. $sql .= ", round(( sum(
  391. if(USERS2_MARKETING.`{$FFS}_OPER`='{$FFFS}', 1, 0)
  392. ) / sum(
  393. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  394. ) * (
  395. count(USERS2_MARKETING.S_ADDRESS_STREET)
  396. - sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  397. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)) * 100, 2) as `PR_{$FFS}_{$FFFS}`
  398. ";
  399. }
  400. $sql .= ", round(( sum(
  401. if(
  402. (USERS2_MARKETING.`{$FFS}_OPER`!='BN'
  403. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT` > 2
  404. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT`!='NIEWIADOMO'), 1, 0)
  405. ) / sum(
  406. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  407. ) * (
  408. count(USERS2_MARKETING.S_ADDRESS_STREET)
  409. - sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  410. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)) * 100, 2) as `PR_{$FFS}_ZAINT`
  411. , round((
  412. sum(
  413. if( (USERS2_MARKETING.`{$FFS}_OPER`!='BN' and USERS2_MARKETING.`{$FFS}_OPER`!='BRAK' and USERS2_MARKETING.`{$FFS}_OPER`!='NIEWIADOMO'), 1, 0)
  414. ) / sum(
  415. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  416. ) * (
  417. count(USERS2_MARKETING.S_ADDRESS_STREET)
  418. - sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN',1,0))
  419. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  420. ) * 100, 2) as PR_{$FFS}_KONKUR
  421. ";
  422. }
  423. $sql .= "
  424. from USERS2_MARKETING as USERS2_MARKETING
  425. left join BUILDINGS on BUILDINGS.S_ADDRESS_STREET=USERS2_MARKETING.T_TELBOX_BUILDING_IN
  426. where USERS2_MARKETING.A_STATUS!='DELETED' and BUILDINGS.A_STATUS!='DELETED'
  427. group by USERS2_MARKETING.M_REWIR
  428. order by USERS2_MARKETING.M_REWIR DESC ,USERS2_MARKETING.T_TELBOX_BUILDING_IN
  429. ";
  430. $sqlList[] = " create table `USERS2_MARKETING_OVERWIEV_REWIR` \n {$sql} \n limit 1";
  431. $sqlList[] = " truncate table `USERS2_MARKETING_OVERWIEV_REWIR` ";
  432. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` ENGINE=MYISAM ";
  433. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `ID` `ID` INT(11) NOT NULL DEFAULT '0' ";
  434. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` ADD PRIMARY KEY(`ID`) ";
  435. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT ";
  436. $sqlList[] = " insert into `USERS2_MARKETING_OVERWIEV_REWIR` \n {$sql}";
  437. }
  438. {// add fields to USERS2_MARKETING_OVERWIEV
  439. /*
  440. $sqlList[] = "ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `ABO_I` `ABO_I` CHAR( 10 ) NOT NULL DEFAULT '0',
  441. CHANGE `MIESZKAN` `MIESZKAN` CHAR( 10 ) NOT NULL DEFAULT '0',
  442. CHANGE `NAS_I` `NAS_I` CHAR( 10 ) NULL DEFAULT NULL ,
  443. CHANGE `ANKIET_I` `ANKIET_I` CHAR( 10 ) NULL DEFAULT NULL ,
  444. CHANGE `PR_I_UPC` `PR_I_UPC` CHAR( 10 ) NULL DEFAULT NULL ,
  445. CHANGE `PR_I_INNY` `PR_I_INNY` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_NSM` `PR_I_NSM` CHAR( 10 ) NULL DEFAULT NULL ,
  446. CHANGE `PR_I_TP` `PR_I_TP` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_EIA` `PR_I_EIA` CHAR( 10 ) NULL DEFAULT NULL ,
  447. CHANGE `PR_I_BRAK` `PR_I_BRAK` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_KONKUR` `PR_I_KONKUR` CHAR( 10 ) NULL DEFAULT NULL ,
  448. CHANGE `BADAN_I` `BADAN_I` CHAR( 10 ) NULL DEFAULT NULL ,
  449. CHANGE `PR_I_ZAINT` `PR_I_ZAINT` CHAR( 10 ) NULL DEFAULT NULL,
  450. CHANGE `PR_I_JARSAT` `PR_I_JARSAT` CHAR( 10 ) NULL DEFAULT NULL
  451. ";
  452. */
  453. /*
  454. $sqlList[] = "ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `ABO_I` `ABO_I` CHAR( 10 ) NOT NULL DEFAULT '0',
  455. CHANGE `MIESZKAN` `MIESZKAN` CHAR( 10 ) NOT NULL DEFAULT '0',
  456. CHANGE `NAS_I` `NAS_I` CHAR( 10 ) NULL DEFAULT NULL ,
  457. CHANGE `ANKIET_I` `ANKIET_I` CHAR( 10 ) NULL DEFAULT NULL ,
  458. CHANGE `PR_I_UPC` `PR_I_UPC` CHAR( 10 ) NULL DEFAULT NULL ,
  459. CHANGE `PR_I_INNY` `PR_I_INNY` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_NSM` `PR_I_NSM` CHAR( 10 ) NULL DEFAULT NULL ,
  460. CHANGE `PR_I_TP` `PR_I_TP` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_EIA` `PR_I_EIA` CHAR( 10 ) NULL DEFAULT NULL ,
  461. CHANGE `PR_I_BRAK` `PR_I_BRAK` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_KONKUR` `PR_I_KONKUR` CHAR( 10 ) NULL DEFAULT NULL ,
  462. CHANGE `BADAN_I` `BADAN_I` CHAR( 10 ) NULL DEFAULT NULL ,
  463. CHANGE `PR_I_ZAINT` `PR_I_ZAINT` CHAR( 10 ) NULL DEFAULT NULL
  464. ";
  465. */
  466. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_CREATE_DATE varchar(30) ;";
  467. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_CREATE_AUTHOR varchar(100) not null ;";
  468. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_UPDATE_DATE varchar(30) ; ";
  469. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_UPDATE_AUTHOR varchar(100) not null ; ";
  470. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_DATE varchar(30) not null ; ";
  471. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_USER varchar(100) not null ; ";
  472. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_PERIOD varchar(4) not null ; ";
  473. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_INFO varchar(255) not null ; ";
  474. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_TYPE enum('', 'ARRANGED', 'TO_ARRANGE', 'CANCELLED', 'TO_CANCEL', 'RELATE', 'WAIT') ; ";
  475. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_PROBLEM enum('', 'WARNING', 'PROBLEM', 'SERIOUS', 'UNVERIFIED') ; ";
  476. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_PROBLEM_DESC varchar(255) not null ; ";
  477. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_PROBLEM_DATE varchar(30) not null ; ";
  478. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_STATUS enum('WAITING', 'NORMAL', 'MONITOR', 'WARNING', 'OFF_SOFT', 'OFF_HARD', 'DELETED') ; ";
  479. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_STATUS_INFO varchar(255) not null ; ";
  480. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_CLASSIFIED varchar(100) not null ; ";
  481. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS varchar(100) not null ; ";
  482. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_VALUE varchar(100) not null ; ";
  483. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_TYPE varchar(100) not null ; ";
  484. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_USER varchar(100) not null ; ";
  485. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_DATE varchar(100) not null ; ";
  486. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add P_ACCOUNT varchar(40) not null ; ";
  487. }
  488. }
  489. $errors = false;
  490. foreach ($sqlList as $sql) {
  491. echo'<pre style="max-height:200px;overflow:auto;border:1px solid green;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';
  492. $res = $db->query($sql);
  493. if ($db->has_errors()) {
  494. $errors = true;
  495. echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;"> (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($db->get_errors());echo'</pre>';
  496. }
  497. }
  498. if ($errors) {
  499. echo '<div class="alert alert-danger">' . "Uwaga wystąpiły błędy - w czerwonej ramce" . '</div>';
  500. } else {
  501. echo '<div class="alert alert-success">' . "Operacje zakończone pomyślnie" . '</div>';
  502. }
  503. }