superedit-STATYSTYKA_TABELE.php 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  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. global $A_STATUS_L2_SQL;
  17. $db = DB::getDB();
  18. if (!$db) {
  19. echo '<div class="alert alert-danger">' . "Database Error" . '</div>';
  20. return;
  21. }
  22. $sqlList = array();
  23. $task = V::get('task', '', $_GET);
  24. if ($task == 'FVAT_POS_CHARTS') {
  25. echo "moved to RECOUNT_STATS_BILLS_FVAT_POS";
  26. return;
  27. }
  28. else if ($task == 'FVAT_POS') {
  29. echo "moved to RECOUNT_STATS_BILLS_FVAT_POS";
  30. return;
  31. }
  32. else {
  33. { //@2016-07-11 bindera moved from old superedit-USERS_FIELDS_PROFILE_PRE_INIT.php $_SESSION['USERS2_MARKETING_COLUMN']['RELATIVEDB']['SQL_QUERY']
  34. //TODO zastapic to czyms Piotrowym @2016-06-11
  35. if(!isset($A_STATUS_L2_SQL)) {
  36. echo "<br> WARNING variable A_STATUS_L2_SQL is not set globally to emulate correct active client status.";
  37. $A_STATUS_L2_SQL="if(SV.HANGUP_STATUS=SV.A_STATUS,coalesce(SV.A_STATUS),
  38. if( ( unix_timestamp(NOW()) > COALESCE(unix_timestamp(SV.HANGUP_FROM), 0) and ( SV.HANGUP_TILL='0000-00-00' or SV.HANGUP_TILL is NULL )
  39. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.HANGUP_STATUS),
  40. if( ( unix_timestamp(NOW()) < COALESCE(unix_timestamp(SV.HANGUP_FROM), 0) and ( SV.HANGUP_TILL='0000-00-00' or SV.HANGUP_TILL is NULL )
  41. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.A_STATUS),
  42. if( ( unix_timestamp(NOW()) > COALESCE(unix_timestamp(SV.HANGUP_FROM), 0) and unix_timestamp(NOW()) < COALESCE(unix_timestamp(SV.HANGUP_TILL), 0)
  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.HANGUP_STATUS),
  45. if( ( unix_timestamp(NOW()) < COALESCE(unix_timestamp(SV.HANGUP_FROM), 0) and unix_timestamp(NOW())< COALESCE(unix_timestamp(SV.HANGUP_TILL), 0)
  46. and ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  47. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.A_STATUS),
  48. if( (
  49. ( SV.HANGUP_TILL='0000-00-00' or SV.HANGUP_TILL is NULL )
  50. and ( SV.HANGUP_FROM='0000-00-00' or SV.HANGUP_FROM is null )) , coalesce(SV.A_STATUS),
  51. if( unix_timestamp(NOW()) > COALESCE(unix_timestamp(SV.HANGUP_FROM), 0) and unix_timestamp(NOW()) > COALESCE(unix_timestamp(SV.HANGUP_TILL), 0) and (
  52. ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  53. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , coalesce(SV.A_STATUS),
  54. if( unix_timestamp(NOW()) > COALESCE(unix_timestamp(SV.HANGUP_FROM), 0) and unix_timestamp(NOW()) > COALESCE(unix_timestamp(SV.HANGUP_TILL), 0) and
  55. SV.HANGUP_FROM<SV.HANGUP_TILL and (
  56. ( SV.HANGUP_TILL<>'0000-00-00' and SV.HANGUP_TILL is not NULL )
  57. and ( SV.HANGUP_FROM<>'0000-00-00' and SV.HANGUP_FROM is not null )) , 'ERROR1',
  58. 'ERROR2'
  59. )
  60. )
  61. )
  62. )
  63. )
  64. )
  65. )
  66. )
  67. ";
  68. }
  69. {
  70. //@2016-07 bindera: dodanie prostych raportow bledow brakujacych projektow do budynkow:
  71. $sqlList[]="drop view `BUILDINGS_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_ERROR`;";
  72. $sqlList[]=" create view `BUILDINGS_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_ERROR` as
  73. select b.ID, b.A_STATUS , b.S_ADDRESS_STREET, b.M_REWIR ,
  74. rks.ID as ID_KABEL, rks.A_STATUS as A_STATUS_KABEL, 'Brak zaplanowanego przylacza' as ERROR
  75. , null as USERS2_MARKETING_ID, null as USERS2_DEALS_ID
  76. from BUILDINGS as b
  77. left join Rozdzielcza_Kabel_Swiatlowodowy_wsg84 as rks on b.ID=rks.ID_BUILDINGS
  78. where rks.ID is NULL and b.A_STATUS in ('NORMAL','WAITING')
  79. union
  80. -- bledy braku wprowadzonych umow z wlasciwymi statusami do budynkow jak jest umowa na usluge, to budynek musi byc WAITING lub NORMAL
  81. select b.ID, b.A_STATUS , b.S_ADDRESS_STREET, b.M_REWIR ,
  82. null as ID_KABEL, NULL as A_STATUS_KABEL, 'Zakupiona usluga na budynku, gdzie nie ma umowy lub brak aktualizacji statusu' as ERROR
  83. , um.ID as USERS2_MARKETING_ID, ud.ID as USERS2_DEALS_ID
  84. from USERS2_DEALS as ud
  85. left join USERS2_MARKETING as um on um.S_ADDRESS_STREET=ud.S_ADDRESS_STREET
  86. left join BUILDINGS as b on b.S_ADDRESS_STREET=um.T_TELBOX_BUILDING_IN
  87. where ud.A_STATUS!='DELETED' and b.A_STATUS not in ('NORMAL','WAITING')
  88. group by ud.S_ADDRESS_STREET
  89. -- bledy nie aktualizowanego statusu budynku dla dzialajacej uslugi
  90. union
  91. select b.ID, b.A_STATUS , b.S_ADDRESS_STREET, b.M_REWIR ,
  92. null as ID_KABEL, NULL as A_STATUS_KABEL, 'Usługa działająca na budynku, który nie ma statusu NORMAL' as ERROR
  93. , um.ID as USERS2_MARKETING_ID, ud.ID as USERS2_DEALS_ID
  94. from USERS2_DEALS as ud
  95. left join USERS2_MARKETING as um on um.S_ADDRESS_STREET=ud.S_ADDRESS_STREET
  96. left join BUILDINGS as b on b.S_ADDRESS_STREET=um.T_TELBOX_BUILDING_IN
  97. left join SES_USERS2_A as internet on internet.ID_SERVICES=ud.ID_SERVICES_NEW
  98. where ud.A_STATUS!='DELETED' and b.A_STATUS!='NORMAL'
  99. and internet.A_STATUS='NORMAL'
  100. group by ud.S_ADDRESS_STREET
  101. -- brak mieszkan powiazanych do budynku
  102. UNION
  103. select b.ID, b.A_STATUS , b.S_ADDRESS_STREET, b.M_REWIR ,
  104. NULL as ID_KABEL, NULL as A_STATUS_KABEL, 'Brak mieszkan dowiazanych do budynku' as ERROR
  105. , um.ID as USERS2_MARKETING_ID, null as USERS2_DEALS_ID
  106. from BUILDINGS as b
  107. left join USERS2_MARKETING as um on um.T_TELBOX_BUILDING_IN=b.S_ADDRESS_STREET
  108. where um.ID is NULL and b.A_STATUS!='DELETED'
  109. ";
  110. $sqlList[]="update BUILDINGS set `__Rozdzielcza_Kabel_Swiatlowodowy_wsg84`=null ; ";
  111. $sqlList[]="update BUILDINGS t1, Rozdzielcza_Kabel_Swiatlowodowy_wsg84 t2 set t1.__Rozdzielcza_Kabel_Swiatlowodowy_wsg84=t2.ID where t1.ID=t2.ID_BUILDINGS ; ";
  112. $sqlList[]="update BUILDINGS t1, MK_Rewiry t2 set t1.`__MK_Rewiry__STATUS`=t2.A_STATUS where t1.M_REWIR=t2.NAZWA_REWI and t1.M_REWIR like '%_%' ; ";
  113. $sqlList[]="update USERS2_MARKETING t1, MK_Rewiry t2 set t1.`__MK_Rewiry__STATUS`=t2.A_STATUS where t1.M_REWIR=t2.NAZWA_REWI and t1.M_REWIR like '%_%' ; ";
  114. $sqlList[]=" update USERS2_MARKETING set T_OPER='NIEWIADOMO' where T_OPER=''";
  115. $sqlList[]=" update USERS2_MARKETING set TV_OPER='NIEWIADOMO' where TV_OPER=''";
  116. $sqlList[]=" update USERS2_MARKETING set I_OPER='NIEWIADOMO' where I_OPER=''";
  117. }
  118. { //posprzatanie filtrow operatorow - todo tabela konkurencji
  119. $oper_fix['DVB%S']='DVBS';
  120. $oper_fix['%N_KA%']='NC_PLUS';
  121. $oper_fix['%UPS%']='UPC';
  122. $oper_fix['%WEKTRA%']='VECTRA';
  123. $oper_fix['%MM_NET%']='MMNET';
  124. $oper_fix['%ORAN%']='ORANGE';
  125. $oper_fix['%T%MOBLILE%']='T-MOBILE';
  126. $oper_fix['%T%MOBILE%']='T-MOBILE';
  127. $oper_fix['%TMOBI%']='T-MOBILE';
  128. $oper_fix['%TP%LIVE%BOX%']='ORANGE';
  129. $oper_fix['%TP%ORANE%']='ORANGE';
  130. $oper_fix['TP']='ORANGE';
  131. $oper_fix['%BRAK%']='BRAK';
  132. $oper_fix['%W%KOMURCE%']='GSM';
  133. $oper_fix['CANAL%']='CANAL_PLUS';
  134. $oper_fix['%CYFRA%']='CYFRA_PLUS';
  135. $oper_fix['KABL%WKA']='INNY';
  136. $oper_fix['NAZ%EMNA']='DVBC';
  137. $oper_fix['NC%']='NC_PLUS';
  138. $oper_fix['POLSAT%']='POLSAT';
  139. $oper_fix['POLAT']='POLSAT';
  140. $oper_fix['SATELITA%']='DVB-S';
  141. $oper_fix['POLAT']='POLSAT';
  142. $oper_fix['S__UZBOWY']='INNY';
  143. $oper_fix['POLAT']='POLSAT';
  144. $oper_fix['NA_KART%']='INNY';
  145. $oper_fix['%BRAK%DANYCH%']='NIEWIADOMO';
  146. $oper_fix['%CYFROWA%NAZIEMNA%']='DVBC';
  147. $oper_fix['KABL__WKA']='INNY';
  148. $oper_fix['%YOUTUBE%']='YOUTUBE';
  149. $oper_fix['_']='NIEWIADOMO';
  150. foreach($oper_fix as $filtr=>$set) {
  151. $sqlList[]="update USERS2_MARKETING set I_OPER='".$set."' where I_OPER like '".$filtr."'" ;
  152. $sqlList[]="update USERS2_MARKETING set TV_OPER='".$set."' where TV_OPER like '".$filtr."'" ;
  153. $sqlList[]="update USERS2_MARKETING set T_OPER='".$set."' where T_OPER like '".$filtr."'" ;
  154. }
  155. }
  156. { //stworzenie widoku bledow w USERS2_MARKETING dot budynkow
  157. $sqlList[]="drop view if exists `USERS2_MARKETING__BUILDINGS_ERROR` ;";
  158. $sqlList[]="create ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER view USERS2_MARKETING__BUILDINGS_ERROR as
  159. SELECT t1.ID, t1.M_REWIR, t1.S_ADDRESS_STREET, t1.T_TELBOX_BUILDING_IN
  160. , t1.A_ADM_COMPANY, t1.A_CLASSIFIED, t1.A_RECORD_UPDATE_DATE,
  161. t1.A_RECORD_CREATE_DATE, t1.A_RECORD_CREATE_AUTHOR, t1.A_RECORD_UPDATE_AUTHOR,
  162. 'ERROR Nieprawidlowe powiazanie budynku' AS ERROR, '' as A_STATUS
  163. FROM USERS2_MARKETING AS t1
  164. LEFT JOIN BUILDINGS AS t2 ON t1.T_TELBOX_BUILDING_IN = t2.S_ADDRESS_STREET
  165. WHERE t2.ID IS NULL and ( t2.A_STATUS!='DELETED' or t2.A_STATUS is NULL )
  166. AND t1.T_TELBOX_BUILDING_IN LIKE '_%' and t1.A_STATUS!='DELETED'
  167. UNION
  168. SELECT t1.ID, t1.M_REWIR, t1.S_ADDRESS_STREET, t1.T_TELBOX_BUILDING_IN
  169. , 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,
  170. 'ERROR Brak powiazania budynku' AS ERROR, '' as A_STATUS
  171. FROM USERS2_MARKETING AS t1
  172. WHERE t1.T_TELBOX_BUILDING_IN LIKE '' and t1.A_STATUS!='DELETED'
  173. ;";
  174. $sqlList[]="drop view if exists `BUILDINGS__MARKETING_ERROR` ;";
  175. $sqlList[]="create ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW BUILDINGS__MARKETING_ERROR as
  176. 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
  177. ,t1.T_BUILDING_MIESZKANIA , 0 as ILOSC_POW_MIESZKAN
  178. ,'ERROR Brak powiazanych mieszkan do budynku' AS ERROR
  179. FROM BUILDINGS AS t1
  180. LEFT JOIN USERS2_MARKETING AS t2 ON t2.T_TELBOX_BUILDING_IN = t1.S_ADDRESS_STREET
  181. WHERE t2.ID IS NULL and ( t2.A_STATUS!='DELETED' or t2.A_STATUS is NULL )
  182. and t1.A_STATUS!='DELETED'
  183. UNION
  184. 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
  185. , t1.T_BUILDING_MIESZKANIA
  186. ,count(t2.ID) as ILOSC_POW_MIESZKAN
  187. , 'ERROR Niewlasciwa ilosc powiazanych mieszkan' AS ERROR
  188. FROM BUILDINGS AS t1
  189. LEFT JOIN USERS2_MARKETING AS t2 ON t2.T_TELBOX_BUILDING_IN = t1.S_ADDRESS_STREET
  190. WHERE t2.ID IS NOT NULL and ( t2.A_STATUS!='DELETED' )
  191. and t1.A_STATUS!='DELETED'
  192. group by t2.T_TELBOX_BUILDING_IN
  193. having T_BUILDING_MIESZKANIA!=ILOSC_POW_MIESZKAN
  194. ;";
  195. }
  196. $sqlList[]=" drop table if exists temp_USERS2_INTERNET_STATUS; ";
  197. $sqlList[]="create table temp_USERS2_INTERNET_STATUS
  198. select SV.ID,
  199. 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),
  200. ' SPEED:',coalesce(US2.P_SERVICE_QUOTA),' DEALD:(',coalesce(DT.ID),coalesce(DT.P_DEALPREFIX), '):', coalesce(DT.P_DEALDATE),'--',coalesce(DT.P_DEALDATE_TERM),
  201. ' KONTAKT_L2:',coalesce(BUA.P_PHONE),',', coalesce(BUA.user_mail_contact),',' , coalesce(BUA.P_FAX)) as USERS2_INTERNET_STATUS
  202. , DT.P_DEALDATE_TERM as P_DEALEXPIRE , SV.NAME_LIST_SERVICES
  203. , ".$A_STATUS_L2_SQL." as A_STATUS , SV.HANGUP_STATUS
  204. from SERVICES as SV
  205. inner JOIN SES_USERS2_A as US2 on SV.ID=US2.ID_SERVICES
  206. inner JOIN BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
  207. left join DEALS_TABLE as DT on DT.ID=SV.ID_DEALS_TABLE
  208. where SV.NAME_LIST_SERVICES='USERS2' and ( SV.P_ID_SERVICES is NULL or SV.P_ID_SERVICES=0)
  209. ;";
  210. $sqlList[]="insert ignore into temp_USERS2_INTERNET_STATUS
  211. select SV.ID,
  212. US2.S_ADDRESS_STREET,
  213. 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)
  214. ,' DEALD:(',coalesce(DT.ID),coalesce(DT.P_DEALPREFIX), '):', coalesce(DT.P_DEALDATE),'--',coalesce(DT.P_DEALDATE_TERM),
  215. ' KONTAKT_L2:',coalesce(BUA.P_PHONE),',' ,coalesce(BUA.user_mail_contact),',' , coalesce(BUA.P_FAX)) as USERS2_INTERNET_STATUS
  216. , DT.P_DEALDATE_TERM as P_DEALEXPIRE , SV.NAME_LIST_SERVICES
  217. , ".$A_STATUS_L2_SQL." as A_STATUS, SV.HANGUP_STATUS
  218. from SERVICES as SV
  219. inner JOIN SES_TV_A as US2 on SV.ID=US2.ID_SERVICES
  220. inner JOIN BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
  221. left join DEALS_TABLE as DT on DT.ID=SV.ID_DEALS_TABLE
  222. where SV.NAME_LIST_SERVICES='TV' and ( SV.P_ID_SERVICES is NULL or SV.P_ID_SERVICES=0) ; ";
  223. $sqlList[]="insert ignore into temp_USERS2_INTERNET_STATUS
  224. select SV.ID,
  225. US22.S_ADDRESS_STREET,
  226. 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) ,
  227. ' KONTAKT_L2:',coalesce(BUA.P_PHONE),',' ,coalesce(BUA.user_mail_contact),',' , coalesce(BUA.P_FAX)) as USERS2_INTERNET_STATUS
  228. , DT.P_DEALDATE_TERM as P_DEALEXPIRE , SV.NAME_LIST_SERVICES
  229. , ".$A_STATUS_L2_SQL." as A_STATUS, SV.HANGUP_STATUS
  230. from SERVICES as SV
  231. inner JOIN SES_VOIP_A as US2 on SV.ID=US2.ID_SERVICES
  232. inner JOIN BILLING_USERS_ADD as BUA on BUA.id_users=SV.ID_BILLING_USERS
  233. inner JOIN SERVICES as SV2 on SV2.P_ID_SERVICES=SV.ID
  234. inner JOIN SES_USERS2_A as US22 on US22.ID_SERVICES=SV2.ID
  235. left join DEALS_TABLE as DT on DT.ID=SV.ID_DEALS_TABLE
  236. where SV.NAME_LIST_SERVICES='VOIP' and ( SV.P_ID_SERVICES is NULL or SV.P_ID_SERVICES=0)
  237. and ".$A_STATUS_L2_SQL."!='OFF_HARD';";
  238. $sqlList[]="ALTER TABLE temp_USERS2_INTERNET_STATUS CHANGE USERS2_INTERNET_STATUS USERS2_INTERNET_STATUS VARCHAR( 255 ) NOT NULL;";
  239. //wyglada na dodanie rekordow z uslug do bazy marketingu
  240. $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 ;";
  241. //wyglada na aktualizacje telefonu z innego miejsca -ale wyremowana
  242. $sqlList[]="UPDATE USERS2_MARKETING AS USERS2_MARKETING , USERS2 AS USERS2 SET USERS2_MARKETING.S_ALIAS=USERS2.S_ALIAS ,
  243. 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 ;";
  244. $sqlList[]="alter table temp_USERS2_INTERNET_STATUS add index(S_ADDRESS_STREET) , add index(USERS2_INTERNET_STATUS) ;";
  245. ////@2012-04-24 aktualizacja ADM_COMPANY z BUILDINGS
  246. $sqlList[]="UPDATE USERS2_MARKETING AS USERS2_MARKETING , BUILDINGS AS BUILDINGS
  247. SET USERS2_MARKETING.A_ADM_COMPANY=BUILDINGS.A_ADM_COMPANY , USERS2_MARKETING.A_CLASSIFIED=BUILDINGS.A_CLASSIFIED
  248. , USERS2_MARKETING.ID_PROJECT=BUILDINGS.ID_PROJECT
  249. WHERE USERS2_MARKETING.T_TELBOX_BUILDING_IN=BUILDINGS.S_ADDRESS_STREET;";
  250. $sqlList[]="UPDATE USERS2_MARKETING AS USERS2_MARKETING , DEALS_TABLE AS DEALS_TABLE
  251. SET DEALS_TABLE.ID_PROJECT=USERS2_MARKETING.ID_PROJECT
  252. WHERE DEALS_TABLE.S_ADDRESS_STREET=USERS2_MARKETING.S_ADDRESS_STREET and DEALS_TABLE.ID_PROJECT=0;";
  253. }
  254. {// temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  255. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL";
  256. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  257. select ID, S_ADDRESS_STREET, USERS2_INTERNET_STATUS, P_DEALEXPIRE
  258. from temp_USERS2_INTERNET_STATUS
  259. where
  260. ( USERS2_INTERNET_STATUS like 'NORMAL%' or USERS2_INTERNET_STATUS like 'WAITING%' )
  261. and NAME_LIST_SERVICES like 'USERS2'
  262. group by S_ADDRESS_STREET
  263. ";
  264. $sqlList[] = "alter ignore table temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL add index(S_ADDRESS_STREET)";
  265. }
  266. {// temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  267. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_VOIP_NORMAL";
  268. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  269. select ID, S_ADDRESS_STREET, USERS2_INTERNET_STATUS, P_DEALEXPIRE
  270. from temp_USERS2_INTERNET_STATUS
  271. where
  272. ( USERS2_INTERNET_STATUS like 'NORMAL%' or USERS2_INTERNET_STATUS like 'WAITING%' )
  273. and NAME_LIST_SERVICES like 'VOIP'
  274. group by S_ADDRESS_STREET
  275. ";
  276. $sqlList[] = "alter table temp_USERS2_INTERNET_STATUS_VOIP_NORMAL add index(S_ADDRESS_STREET)";
  277. }
  278. {// temp_USERS2_INTERNET_STATUS_TV_NORMAL
  279. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_TV_NORMAL";
  280. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_TV_NORMAL
  281. select ID, S_ADDRESS_STREET, USERS2_INTERNET_STATUS, P_DEALEXPIRE
  282. from temp_USERS2_INTERNET_STATUS
  283. where
  284. ( USERS2_INTERNET_STATUS like 'NORMAL%' or USERS2_INTERNET_STATUS like 'WAITING%' )
  285. and NAME_LIST_SERVICES like 'TV'
  286. group by S_ADDRESS_STREET
  287. ";
  288. $sqlList[] = "alter table temp_USERS2_INTERNET_STATUS_TV_NORMAL add index(S_ADDRESS_STREET)";
  289. }
  290. {// temp_USERS2_INTERNET_STATUS_OFF_HARD
  291. $sqlList[] = "drop table if exists temp_USERS2_INTERNET_STATUS_OFF_HARD";
  292. $sqlList[] = "create table temp_USERS2_INTERNET_STATUS_OFF_HARD
  293. select t1.ID, t1.S_ADDRESS_STREET, t2.ID as T2_ID
  294. from USERS2_MARKETING as t1
  295. left join temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL as t2 on(t2.S_ADDRESS_STREET=t1.S_ADDRESS_STREET)
  296. where
  297. t2.ID is NULL
  298. and t1.I_OPER='BN'
  299. ";
  300. }
  301. {// update USERS2_MARKETING fields: I_OPER, I_OPER_FIN
  302. // by NORMAL - temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  303. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL
  304. set USERS2_MARKETING.I_OPER='BN',
  305. USERS2_MARKETING.I_OPER_FIN=temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL.P_DEALEXPIRE
  306. where USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_INTERNET_NORMAL.S_ADDRESS_STREET
  307. ";
  308. // update USERS2_MARKETING fields: I_OPER by OFF_HARD
  309. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_OFF_HARD
  310. set USERS2_MARKETING.I_OPER='NIEWIADOMO'
  311. where USERS2_MARKETING.I_OPER='BN'
  312. and USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_OFF_HARD.S_ADDRESS_STREET
  313. ";
  314. // update USERS2_MARKETING fields: I_OPER, T_OPER_FIN by VOIP
  315. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_VOIP_NORMAL
  316. set USERS2_MARKETING.T_OPER='BN',
  317. USERS2_MARKETING.T_OPER_FIN=temp_USERS2_INTERNET_STATUS_VOIP_NORMAL.P_DEALEXPIRE
  318. where USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_VOIP_NORMAL.S_ADDRESS_STREET
  319. ";
  320. // update USERS2_MARKETING fields: TV_OPER, TV_OPER_FIN
  321. $sqlList[] = "update USERS2_MARKETING, temp_USERS2_INTERNET_STATUS_TV_NORMAL
  322. set USERS2_MARKETING.TV_OPER='BN',
  323. USERS2_MARKETING.TV_OPER_FIN=temp_USERS2_INTERNET_STATUS_TV_NORMAL.P_DEALEXPIRE
  324. where USERS2_MARKETING.S_ADDRESS_STREET=temp_USERS2_INTERNET_STATUS_TV_NORMAL.S_ADDRESS_STREET
  325. ";
  326. }
  327. {// USERS2_MARKETING_OVERWIEV
  328. $sqlList[] = "drop table if exists USERS2_MARKETING_OVERWIEV";
  329. // update `USERS2_MARKETING` fields: `M_REWIR`
  330. $sqlList[] = "update USERS2_MARKETING , BUILDINGS
  331. set USERS2_MARKETING.M_REWIR=BUILDINGS.M_REWIR
  332. where
  333. USERS2_MARKETING.T_TELBOX_BUILDING_IN=BUILDINGS.S_ADDRESS_STREET
  334. and BUILDINGS.M_REWIR!=''
  335. and BUILDINGS.M_REWIR is not null
  336. ";
  337. $COLSFORSTATS = array('I','T','TV');
  338. $COLSFORSTATS_OPERS_default = array('INNY','UPC','NSM','TP','EIA','BRAK','JARSAT');
  339. //@2016-07-01 automatyczne przetwarzanie roznych operatorow i ich skrotow na podstawie analizy obecnie dostepnych
  340. $sql_OPERS="select distinct(I_OPER) as OPERS from USERS2_MARKETING
  341. union select distinct(T_OPER) as OPERS from USERS2_MARKETING
  342. union select distinct(TV_OPER) as OPERS from USERS2_MARKETING
  343. group by OPERS
  344. ";
  345. $res_OPERS=$db->query($sql_OPERS);
  346. while($row_OPERS=$db->fetch($res_OPERS)) {
  347. if(strlen($row_OPERS->OPERS)>0)
  348. if(!in_array(strtolower(preg_replace('/[^a-zA-Z0-9_\-]/','_',$row_OPERS->OPERS), $COLSFORSTATS_OPERS)))
  349. if(!in_array(strtoupper(preg_replace('/[^a-zA-Z0-9_\-]/','_',$row_OPERS->OPERS), $COLSFORSTATS_OPERS)))
  350. if(!in_array(preg_replace('/[^a-zA-Z0-9_\-]/','_',$row_OPERS->OPERS, $COLSFORSTATS_OPERS))) {
  351. //echo "dodaje ".strtoupper(preg_replace('/[^a-zA-Z0-9\-_]/','_',$row_OPERS->OPERS));
  352. $COLSFORSTATS_OPERS[]=strtoupper(preg_replace('/[^a-zA-Z0-9_]/','_',$row_OPERS->OPERS));
  353. }
  354. if($row_OPERS->OPERS!=preg_replace('/[^a-zA-Z0-9_\-]/','_',$row_OPERS->OPERS)) {
  355. //aktualizacja w bazie nazwy operatora aby byla bez dziwnych znakow
  356. foreach($COLSFORSTATS as $FFS) {
  357. $sql_upd="update USERS2_MARKETING set `{$FFS}_OPER`='".strtoupper(preg_replace('/[^a-zA-Z0-9_\-]/','_',$row_OPERS->OPERS))."' where `{$FFS}_OPER`='".$row_OPERS->OPERS."'";
  358. $res = $db->query($sql_upd);
  359. if ($db->has_errors()) {
  360. $errors = true;
  361. 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>';
  362. }
  363. }
  364. }
  365. }
  366. //upewnienie sie, ze sa domyslne nazwy firm-operatorow
  367. foreach($COLSFORSTATS_OPERS_default as $OPER ) {
  368. if(!in_array($OPER, $COLSFORSTATS_OPERS)) $COLSFORSTATS_OPERS[]=$OPER;
  369. }
  370. 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>';
  371. //BEGIN MIESZKANIA STATSY
  372. $sql = "select 0 as ID
  373. , USERS2_MARKETING.T_TELBOX_BUILDING_IN
  374. , USERS2_MARKETING.M_REWIR
  375. , BUILDINGS.T_NETWORK_SERVER
  376. , sum(if(USERS2_MARKETING.I_OPER='BN',1,0) ) as ABO_I ,count(USERS2_MARKETING.S_ADDRESS_STREET) as MIESZKAN
  377. , round(( sum( if(
  378. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  379. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  380. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  381. ), 1, 0) ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as BADAN_I
  382. , round(( sum( if(
  383. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-315360000,'%Y-%m-%d')
  384. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-315360000,'%Y-%m-%d')
  385. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-315360000,'%Y-%m-%d')
  386. or USERS2_MARKETING.I_OPER='BN'
  387. or USERS2_MARKETING.T_OPER='BN'
  388. or USERS2_MARKETING.TV_OPER='BN'
  389. ), 1, 0) ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as ANKIET_I
  390. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY < 50, 1 ,0 ) ) as PAY_50_less
  391. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 50 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY < 70, 1 ,0 ) ) as PAY_50_70
  392. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 70 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY < 100, 1 ,0 ) ) as PAY_70_100
  393. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 100 , 1 ,0 ) ) as PAY_100_more
  394. , BUILDINGS.A_ADM_COMPANY
  395. , BUILDINGS.the_geom, BUILDINGS.A_STATUS, BUILDINGS.ID_BILLING_USERS
  396. ";
  397. foreach ($COLSFORSTATS as $FFS) {
  398. $sql .= " , round((sum(if( USERS2_MARKETING.`{$FFS}_OPER`='BN',1,0) ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as `NAS_{$FFS}` ";
  399. foreach ($COLSFORSTATS_OPERS as $FFFS) {
  400. $sql .= " , round((
  401. sum(
  402. if( USERS2_MARKETING.`{$FFS}_OPER`='{$FFFS}', 1, 0)
  403. ) / sum(
  404. if(
  405. (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00')
  406. and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0
  407. )
  408. ) * (
  409. count(USERS2_MARKETING.S_ADDRESS_STREET)
  410. -
  411. sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  412. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  413. ) * 100, 2) as `PR_{$FFS}_{$FFFS}`
  414. ";
  415. }
  416. $sql .= "
  417. , round((
  418. sum(
  419. if(
  420. (USERS2_MARKETING.`{$FFS}_OPER`!='BN'
  421. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT` > 2
  422. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT` != 'NIEWIADOMO'), 1, 0)
  423. ) / sum(
  424. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  425. ) * (
  426. count(USERS2_MARKETING.S_ADDRESS_STREET)
  427. -
  428. sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN',1,0))
  429. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  430. ) * 100, 2) as `PR_{$FFS}_ZAINT`
  431. , round ((
  432. sum(
  433. if(
  434. (USERS2_MARKETING.`{$FFS}_OPER`!='BN'
  435. and USERS2_MARKETING.`{$FFS}_OPER`!='BRAK'
  436. and USERS2_MARKETING.`{$FFS}_OPER`!='NIEWIADOMO'), 1, 0)
  437. ) / sum(
  438. if(
  439. (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN') ,1,0 )
  440. ) * (
  441. count(USERS2_MARKETING.S_ADDRESS_STREET)
  442. -
  443. sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  444. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  445. ) * 100, 2) as `PR_{$FFS}_KONKUR`
  446. ";
  447. }
  448. $sql .= "
  449. from USERS2_MARKETING as USERS2_MARKETING
  450. left join BUILDINGS on (BUILDINGS.S_ADDRESS_STREET=USERS2_MARKETING.T_TELBOX_BUILDING_IN)
  451. where
  452. USERS2_MARKETING.A_STATUS!='DELETED'
  453. and BUILDINGS.A_STATUS!='DELETED'
  454. group by USERS2_MARKETING.T_TELBOX_BUILDING_IN
  455. -- and 1=1
  456. order by USERS2_MARKETING.M_REWIR DESC, USERS2_MARKETING.T_TELBOX_BUILDING_IN
  457. ";
  458. $sqlList[] = " create table `USERS2_MARKETING_OVERWIEV` \n {$sql} \n limit 1";
  459. $sqlList[] = " truncate table `USERS2_MARKETING_OVERWIEV` ";
  460. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` ENGINE=MYISAM ";
  461. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `ID` `ID` INT(11) NOT NULL DEFAULT '0' ";
  462. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` ADD PRIMARY KEY(`ID`) ";
  463. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT ";
  464. $sqlList[] = " insert into `USERS2_MARKETING_OVERWIEV` \n {$sql}";
  465. }
  466. { // REWIRY STATSY - USERS2_MARKETING_OVERWIEV_REWIR
  467. $sqlList[] = "drop table if exists USERS2_MARKETING_OVERWIEV_REWIR";
  468. $sql = " select 0 as ID
  469. , group_concat(distinct ' ', USERS2_MARKETING.T_TELBOX_BUILDING_IN) as T_TELBOX_BUILDING_IN
  470. , USERS2_MARKETING.M_REWIR
  471. , BUILDINGS.T_NETWORK_SERVER
  472. , sum(if(USERS2_MARKETING.I_OPER='BN',1,0) ) as ABO_I
  473. , count(USERS2_MARKETING.S_ADDRESS_STREET) as MIESZKAN
  474. , round((sum(if(USERS2_MARKETING.I_OPER='BN', 1, 0)) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as NAS_I
  475. , round(( sum( if(
  476. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  477. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  478. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-31536000)
  479. ), 1, 0)
  480. ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as BADAN_I
  481. , round(( sum( if(
  482. ( USERS2_MARKETING.I_BAD_DATE> from_unixtime(unix_timestamp(now())-315360000,'%Y-%m-%d')
  483. or USERS2_MARKETING.T_BAD_DATE> from_unixtime(unix_timestamp(now())-315360000,'%Y-%m-%d')
  484. or USERS2_MARKETING.TV_BAD_DATE> from_unixtime(unix_timestamp(now())-315360000,'%Y-%m-%d')
  485. or USERS2_MARKETING.I_OPER='BN'
  486. or USERS2_MARKETING.T_OPER='BN'
  487. or USERS2_MARKETING.TV_OPER='BN'), 1, 0)
  488. ) / count(USERS2_MARKETING.S_ADDRESS_STREET) * 100), 2) as ANKIET_I
  489. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY < 50, 1 ,0 ) ) as PAY_50_less
  490. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 50 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY < 70, 1 ,0 ) ) as PAY_50_70
  491. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 70 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY < 100, 1 ,0 ) ) as PAY_70_100
  492. , sum( if( USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 0 and USERS2_MARKETING.I_PAY + USERS2_MARKETING.T_PAY + USERS2_MARKETING.TV_PAY > 100 , 1 ,0 ) ) as PAY_100_more
  493. , BUILDINGS.A_ADM_COMPANY
  494. , MK_Rewiry.the_geom , MK_Rewiry.A_STATUS
  495. , count(BUILDINGS.ID) as BUDYNKOW -- To jest bledne - poprawka potem - nie da sie tu policzyc
  496. , sum(if(BUILDINGS.A_STATUS='NORMAL',1,0)) as BUDYNKOW_NORMAL -- to jest bledne - poprawka potem - nie da sie tu policzyc
  497. , sum(if(BUILDINGS.A_STATUS='WAITING',1,0)) as BUDYNKOW_WAITING -- to jest bledne - poprawka potem - nie da sie tu policzyc
  498. , MK_Rewiry.gis_square_ha_area
  499. , count(BUILDINGS.ID)/MK_Rewiry.gis_square_ha_area as REWIR_BUILDINGS_DENSITY -- to jest bledne - poprawka potem - nie da sie tu policzyc
  500. , count(USERS2_MARKETING.S_ADDRESS_STREET)/MK_Rewiry.gis_square_ha_area as REWIR_HOMES_DENSITY
  501. , BUILDINGS.A_CLASSIFIED
  502. ";
  503. foreach ($COLSFORSTATS as $FFS) {
  504. foreach ($COLSFORSTATS_OPERS as $FFFS) {
  505. $sql .= ", round(( sum(
  506. if(USERS2_MARKETING.`{$FFS}_OPER`='{$FFFS}', 1, 0)
  507. ) / sum(
  508. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  509. ) * (
  510. count(USERS2_MARKETING.S_ADDRESS_STREET)
  511. - sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  512. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)) * 100, 2) as `PR_{$FFS}_{$FFFS}`
  513. ";
  514. }
  515. $sql .= ", round(( sum(
  516. if(
  517. (USERS2_MARKETING.`{$FFS}_OPER`!='BN'
  518. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT` > 2
  519. and USERS2_MARKETING.`{$FFS}_OPER_ZAINT`!='NIEWIADOMO'), 1, 0)
  520. ) / sum(
  521. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  522. ) * (
  523. count(USERS2_MARKETING.S_ADDRESS_STREET)
  524. - sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN', 1, 0))
  525. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)) * 100, 2) as `PR_{$FFS}_ZAINT`
  526. , round((
  527. sum(
  528. if( (USERS2_MARKETING.`{$FFS}_OPER`!='BN' and USERS2_MARKETING.`{$FFS}_OPER`!='BRAK' and USERS2_MARKETING.`{$FFS}_OPER`!='NIEWIADOMO'), 1, 0)
  529. ) / sum(
  530. if( (USERS2_MARKETING.`{$FFS}_BAD_DATE`!='0000-00-00') and (USERS2_MARKETING.`{$FFS}_OPER`!='BN'), 1, 0)
  531. ) * (
  532. count(USERS2_MARKETING.S_ADDRESS_STREET)
  533. - sum(if(USERS2_MARKETING.`{$FFS}_OPER`='BN',1,0))
  534. ) / count(USERS2_MARKETING.S_ADDRESS_STREET)
  535. ) * 100, 2) as PR_{$FFS}_KONKUR
  536. ";
  537. }
  538. $sql .= "
  539. from USERS2_MARKETING as USERS2_MARKETING
  540. left join BUILDINGS on BUILDINGS.S_ADDRESS_STREET=USERS2_MARKETING.T_TELBOX_BUILDING_IN
  541. left join MK_Rewiry on MK_Rewiry.NAZWA_REWI=BUILDINGS.M_REWIR
  542. where USERS2_MARKETING.A_STATUS!='DELETED' and BUILDINGS.A_STATUS!='DELETED'
  543. group by USERS2_MARKETING.M_REWIR
  544. order by USERS2_MARKETING.M_REWIR DESC ,USERS2_MARKETING.T_TELBOX_BUILDING_IN
  545. ";
  546. $sqlList[] = " create table `USERS2_MARKETING_OVERWIEV_REWIR` \n {$sql} \n limit 1";
  547. $sqlList[] = " truncate table `USERS2_MARKETING_OVERWIEV_REWIR` ";
  548. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` ENGINE=MYISAM ";
  549. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `ID` `ID` INT(11) NOT NULL DEFAULT '0' ";
  550. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `M_REWIR` `M_REWIR` CHAR(255) NOT NULL DEFAULT '' ";
  551. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` ADD PRIMARY KEY(`ID`) ";
  552. $sqlList[] = " ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT ";
  553. $sqlList[] = " insert into `USERS2_MARKETING_OVERWIEV_REWIR` \n {$sql}";
  554. $sqlList[]="UPDATE `USERS2_MARKETING_OVERWIEV_REWIR` AS t1 SET t1.BUDYNKOW = ( SELECT COUNT( t2.ID ) FROM BUILDINGS AS t2 WHERE t1.M_REWIR = t2.M_REWIR ) ";
  555. $sqlList[]="UPDATE `USERS2_MARKETING_OVERWIEV_REWIR` AS t1 SET t1.BUDYNKOW_NORMAL = ( SELECT COUNT( t2.ID ) FROM BUILDINGS AS t2 WHERE t1.M_REWIR = t2.M_REWIR and t2.A_STATUS='NORMAL') ";
  556. $sqlList[]="UPDATE `USERS2_MARKETING_OVERWIEV_REWIR` AS t1 SET t1.BUDYNKOW_WAITING = ( SELECT COUNT( t2.ID ) FROM BUILDINGS AS t2 WHERE t1.M_REWIR = t2.M_REWIR and t2.A_STATUS='WAITING') ";
  557. $sqlList[]="UPDATE `USERS2_MARKETING_OVERWIEV_REWIR` AS t1 SET t1.REWIR_BUILDINGS_DENSITY = t1.BUDYNKOW/t1.gis_square_ha_area ";
  558. //22913_PODMIOT_NETDAY_zoo_podmiot
  559. $sqlList[]="UPDATE BUILDINGS t1, MK_Rewiry t2 set t1.A_ADM_COMPANY=t2.A_ADM_COMPANY, t1.A_CLASSIFIED=t2.A_CLASSIFIED where t2.NAZWA_REWI=t1.M_REWIR";
  560. $sqlList[]="UPDATE USERS2_MARKETING t1, MK_Rewiry t2 set t1.A_ADM_COMPANY=t2.A_ADM_COMPANY, t1.A_CLASSIFIED=t2.A_CLASSIFIED where t2.NAZWA_REWI=t1.M_REWIR";
  561. $sqlList[]="UPDATE BUILDINGS t1, USERS2_MARKETING t2 set t2.M_REWIR=t1.M_REWIR where t1.S_ADDRESS_STREET=t2.T_TELBOX_BUILDING_IN";
  562. $sqlList[]="UPDATE USERS2_OFFERS_GROUPS set A_CLASSIFIED='22913_PODMIOT_NETDAY_zoo_podmiot' , A_ADM_COMPANY='22913_PODMIOT_NETDAY_zoo_podmiot' where P_SERVICE_COMPANY='NETDAY' ";
  563. $sqlList[]="UPDATE USERS2_OFFERS t1, USERS2_OFFERS_GROUPS t2 set t1.A_ADM_COMPANY=t2.A_ADM_COMPANY, t1.A_CLASSIFIED=t2.A_CLASSIFIED , t1.P_SERVICE_COMPANY=t2.P_SERVICE_COMPANY where t2.ID_NET=t1.ID or t2.ID_TEL=t1.ID or t2.ID_TV=t1.ID";
  564. $sqlList[]="UPDATE USERS2_OFFERS_COSTS_GROUPS t1, USERS2_OFFERS t2 set t1.A_ADM_COMPANY=t2.A_ADM_COMPANY, t1.A_CLASSIFIED=t2.A_CLASSIFIED where t2.ID_COSTS_GROUPS=t1.ID";
  565. }
  566. {// add fields to USERS2_MARKETING_OVERWIEV
  567. /*
  568. $sqlList[] = "ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `ABO_I` `ABO_I` CHAR( 10 ) NOT NULL DEFAULT '0',
  569. CHANGE `MIESZKAN` `MIESZKAN` CHAR( 10 ) NOT NULL DEFAULT '0',
  570. CHANGE `NAS_I` `NAS_I` CHAR( 10 ) NULL DEFAULT NULL ,
  571. CHANGE `ANKIET_I` `ANKIET_I` CHAR( 10 ) NULL DEFAULT NULL ,
  572. CHANGE `PR_I_UPC` `PR_I_UPC` CHAR( 10 ) NULL DEFAULT NULL ,
  573. CHANGE `PR_I_INNY` `PR_I_INNY` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_NSM` `PR_I_NSM` CHAR( 10 ) NULL DEFAULT NULL ,
  574. CHANGE `PR_I_TP` `PR_I_TP` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_EIA` `PR_I_EIA` CHAR( 10 ) NULL DEFAULT NULL ,
  575. CHANGE `PR_I_BRAK` `PR_I_BRAK` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_KONKUR` `PR_I_KONKUR` CHAR( 10 ) NULL DEFAULT NULL ,
  576. CHANGE `BADAN_I` `BADAN_I` CHAR( 10 ) NULL DEFAULT NULL ,
  577. CHANGE `PR_I_ZAINT` `PR_I_ZAINT` CHAR( 10 ) NULL DEFAULT NULL,
  578. CHANGE `PR_I_JARSAT` `PR_I_JARSAT` CHAR( 10 ) NULL DEFAULT NULL
  579. ";
  580. */
  581. /*
  582. $sqlList[] = "ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `ABO_I` `ABO_I` CHAR( 10 ) NOT NULL DEFAULT '0',
  583. CHANGE `MIESZKAN` `MIESZKAN` CHAR( 10 ) NOT NULL DEFAULT '0',
  584. CHANGE `NAS_I` `NAS_I` CHAR( 10 ) NULL DEFAULT NULL ,
  585. CHANGE `ANKIET_I` `ANKIET_I` CHAR( 10 ) NULL DEFAULT NULL ,
  586. CHANGE `PR_I_UPC` `PR_I_UPC` CHAR( 10 ) NULL DEFAULT NULL ,
  587. CHANGE `PR_I_INNY` `PR_I_INNY` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_NSM` `PR_I_NSM` CHAR( 10 ) NULL DEFAULT NULL ,
  588. CHANGE `PR_I_TP` `PR_I_TP` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_EIA` `PR_I_EIA` CHAR( 10 ) NULL DEFAULT NULL ,
  589. CHANGE `PR_I_BRAK` `PR_I_BRAK` CHAR( 10 ) NULL DEFAULT NULL , CHANGE `PR_I_KONKUR` `PR_I_KONKUR` CHAR( 10 ) NULL DEFAULT NULL ,
  590. CHANGE `BADAN_I` `BADAN_I` CHAR( 10 ) NULL DEFAULT NULL ,
  591. CHANGE `PR_I_ZAINT` `PR_I_ZAINT` CHAR( 10 ) NULL DEFAULT NULL
  592. ";
  593. */
  594. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_CREATE_DATE varchar(30) ;";
  595. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_CREATE_AUTHOR varchar(100) not null ;";
  596. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_UPDATE_DATE varchar(30) ; ";
  597. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_RECORD_UPDATE_AUTHOR varchar(100) not null ; ";
  598. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_DATE varchar(30) not null ; ";
  599. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_USER varchar(100) not null ; ";
  600. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_PERIOD varchar(4) not null ; ";
  601. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_INFO varchar(255) not null ; ";
  602. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add L_APPOITMENT_TYPE enum('', 'ARRANGED', 'TO_ARRANGE', 'CANCELLED', 'TO_CANCEL', 'RELATE', 'WAIT') ; ";
  603. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_PROBLEM enum('', 'WARNING', 'PROBLEM', 'SERIOUS', 'UNVERIFIED') ; ";
  604. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_PROBLEM_DESC varchar(255) not null ; ";
  605. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_PROBLEM_DATE varchar(30) not null ; ";
  606. //$sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_STATUS enum('WAITING', 'NORMAL', 'MONITOR', 'WARNING', 'OFF_SOFT', 'OFF_HARD', 'DELETED') ; ";
  607. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_STATUS_INFO varchar(255) not null ; ";
  608. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add A_CLASSIFIED varchar(100) not null ; ";
  609. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS varchar(100) not null ; ";
  610. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_VALUE varchar(100) not null ; ";
  611. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_TYPE varchar(100) not null ; ";
  612. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_USER varchar(100) not null ; ";
  613. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add T_WORKPOINTS_DATE varchar(100) not null ; ";
  614. $sqlList[] = " alter table USERS2_MARKETING_OVERWIEV add P_ACCOUNT varchar(40) not null ; ";
  615. $sqlList[] = "ALTER TABLE `USERS2_MARKETING_OVERWIEV_REWIR` CHANGE `the_geom` `the_geom` POLYGON NULL DEFAULT NULL;";
  616. $sqlList[] = "ALTER TABLE `USERS2_MARKETING_OVERWIEV` CHANGE `the_geom` `the_geom` POLYGON NULL DEFAULT NULL;";
  617. $sqlList[] = "update BUILDINGS as b
  618. inner join (
  619. select p.ID , p.the_geom from IN7_MK_BAZA_DYSTRYBUCJI as p group by p.ID order by ST_Area(p.the_geom)
  620. ) as p on ST_Intersects(p.the_geom,b.the_geom)
  621. set b.ID_PROJECT=p.ID where b.ID_PROJECT<1 " ; //zrobic update BUILDINGS do ID_PROJECT na podstawie the_geom najmniejszegoi
  622. $sqlList[] = "update BADANIA_W_TERENIE as b
  623. inner join (
  624. select p.ID , p.the_geom from IN7_MK_BAZA_DYSTRYBUCJI as p group by p.ID order by ST_Area(p.the_geom)
  625. ) as p on ST_Intersects(p.the_geom,b.the_geom)
  626. set b.ID_PROJECT=p.ID where b.ID_PROJECT<1 " ; //zrobic update BUILDINGS do ID_PROJECT na podstawie the_geom najmniejszegoi
  627. $sqlList[] = " create temporary table PROBLEMS_temp select * from PROBLEMS where ID_PROJECT < 1 ;";
  628. $sqlList[] = " update PROBLEMS_temp as b
  629. inner join (
  630. select p.ID , p.the_geom from IN7_MK_BAZA_DYSTRYBUCJI as p group by p.ID order by ST_Area(p.the_geom)
  631. ) as p on ST_Intersects(p.the_geom,b.the_geom)
  632. set b.ID_PROJECT=p.ID where b.ID_PROJECT<1 ;";
  633. $sqlList[] = " update PROBLEMS_temp as b, PROBLEMS b1 set b1.ID_PROJECT=b.ID_PROJECT where b1.ID=b.ID;";
  634. $sqlList[] = " drop table IF EXISTS PROBLEMS_temp; ";
  635. }
  636. }
  637. $errors = false;
  638. foreach ($sqlList as $sql) {
  639. echo'<pre style="max-height:200px;overflow:auto;border:1px solid green;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';
  640. $res = $db->query($sql);
  641. if ($db->has_errors()) {
  642. $errors = true;
  643. 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>';
  644. }
  645. }
  646. if ($errors) {
  647. echo '<div class="alert alert-danger">' . "Uwaga wystąpiły błędy - w czerwonej ramce" . '</div>';
  648. } else {
  649. echo '<div class="alert alert-success">' . "Operacje zakończone pomyślnie" . '</div>';
  650. }
  651. }