BraveCare.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  1. <?php
  2. Lib::loadClass('RouteToolBase');
  3. Lib::loadClass('UI');
  4. Lib::loadClass('Response');
  5. Lib::loadClass('Theme');
  6. // index.php?_route=UrlAction_BraveCare - uruchamia defaultAction
  7. class RouteTool_BraveCare extends RouteToolBase {
  8. public function defaultAction() {
  9. UI::gora();
  10. Theme::top();
  11. echo '<div id="smad-wrapper">';
  12. echo '<div class="container-bi_audit_raport"></div>';
  13. /*try {
  14. $items = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA')->buildQuery([
  15. 'cols' => [ // TODO:? propertyName = []
  16. 'ID',
  17. 'L_APPOITMENT_USER',
  18. 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
  19. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
  20. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
  21. 'default_db__x3A__BI_audit_KW_requested_person:BI_audit_KW_requested_person',
  22. ]
  23. ])->getItems([
  24. 'limit' => 10
  25. ]);
  26. DBG::nicePrint($items, '$items BiAudit');
  27. UI::inlineJS(__FILE__ . '.view.js', [
  28. 'URL_FETCH_TEST' => $this->getLink('fetchEnergaRumKontrahenciPowiazaniaAjax'),
  29. 'URL_FETCH_TEST_KRS' => $this->getLink('fetchTestKrsAjax'),
  30. 'URL_FETCH_TEST_CEIDG' => $this->getLink('fetchTestCeidgAjax'),
  31. 'URL_FETCH_PRACOWNICY' => $this->getLink('fetchPracownicyAjax'),
  32. 'DBG' => V::get('DBG', 0, $_GET),
  33. ]);
  34. throw new Exception("TODO...");
  35. } catch (Exception $e) {
  36. DBG::log($e);
  37. UI::alert('danger', $e->getMessage());
  38. }*/
  39. UI::inlineJS(__FILE__ . '.view.js', [
  40. 'URL_FETCH_TEST' => $this->getLink('fetchEnergaRumKontrahenciPowiazaniaAjax'),
  41. 'URL_FETCH_TEST_KRS' => $this->getLink('fetchTestKrsAjax'),
  42. 'URL_FETCH_TEST_CEIDG' => $this->getLink('fetchTestCeidgAjax'),
  43. 'URL_FETCH_PRACOWNICY' => $this->getLink('fetchPracownicyAjax'),
  44. 'URL_FETCH_KONTRAHENCI' => $this->getLink('fetchKontrahenciAjax'),
  45. 'URL_FETCH_FAMILIES' => $this->getLink('fetchFamiliesAjax'),
  46. 'DBG' => V::get('DBG', 0, $_GET),
  47. 'VIEW_KONTRAHENCI' => $this->htmlViewFormBiAudit([], 'KONTRAHENCI'),
  48. 'VIEW_PRACOWNICY' => $this->htmlViewFormBiAudit([], 'PRACOWNICY'),
  49. 'VIEW_FAMILIES' => $this->getHtmlForScreen_Families([], 'FAMILIES'),
  50. ]);
  51. echo '</div>'; // #smad-wrapper
  52. UI::dol();
  53. }
  54. /*
  55. public function fetchEnergaRumKontrahenciPowiazaniaAjaxAction() {
  56. Response::sendTryCatchJson(array($this, 'fetchEnergaRumKontrahenciPowiazaniaAjax')); // , $args = 'JSON_FROM_REQUEST_BODY');
  57. }
  58. public function fetchEnergaRumKontrahenciPowiazaniaAjax($args) {
  59. $id = V::get('ID', 1, $_REQUEST, 'int');
  60. $items = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA')->buildQuery([
  61. 'cols' => [ // TODO:? propertyName = []
  62. 'ID',
  63. 'A_ADM_COMPANY',
  64. 'L_APPOITMENT_USER',
  65. 'A_CLASSIFIED',
  66. 'A_STATUS',
  67. 'A_STATUS_INFO',
  68. 'BI_analiza_depth',
  69. 'BI_analiza_reloadCache',
  70. 'FILE_STATUS',
  71. 'FILE_STATUS_info',
  72. 'L_APPOITMENT_USER',
  73. 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
  74. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI',
  75. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
  76. 'default_db__x3A__BI_audit_KW_requested_person:BI_audit_KW_requested_person',
  77. ],
  78. //'f_ID' => $id,
  79. ])->getItems([
  80. 'limit' => 10
  81. ]);
  82. // $items = [
  83. // [ 'ID' => 1, 'L_APPOITMENT_INFO' => 'x', 'BI_analiza_depth' => 'a', 'FILE_STATUS' => 1, 'FILE_STATUS_info' => 'test1'],
  84. // [ 'ID' => 2, 'L_APPOITMENT_INFO' => 'y', 'BI_analiza_depth' => 'b', 'FILE_STATUS' => 0, 'FILE_STATUS_info' => 'test2'],
  85. // [ 'ID' => 3, 'L_APPOITMENT_INFO' => 'z', 'BI_analiza_depth' => 'c', 'FILE_STATUS' => 1, 'FILE_STATUS_info' => 'test3'],
  86. // ];
  87. return [
  88. 'type' => 'success',
  89. 'msg' => 'OK',
  90. '__req_args' => $_REQUEST,
  91. '__args' => $args,
  92. 'body' => [
  93. 'items' => $items,
  94. 'view' => $this->showPowiazaniaEnergaRumKontrahenciPowiazania($items),
  95. ]
  96. ];
  97. }
  98. public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
  99. $view = '<form class="form-horizontal" method="post">
  100. <table class="table table-bordered table-hover table-striped" height=5>
  101. <thead>
  102. <tr style="">
  103. <td width=1><input type="checkbox" name="checkAll" id="checkAll" /></td>
  104. <td width=1>ID</td>
  105. <td>Adnotacje</td>
  106. <td>Głębokość analizy</td>
  107. <td>Status raportu</td>
  108. <td>Status raportu - informacje</td>
  109. </tr>
  110. </thead>
  111. <tbody>
  112. ';
  113. foreach ($items as $key => $row) {
  114. $view .= '<tr>
  115. <td><input type="checkbox" name="prID[]" value="'.$row['ID'].'" onClick="checkAll()"/></td>
  116. <td align="right">'.$row["ID"].'</td>
  117. <td align="right">'.$row["L_APPOITMENT_INFO"].'</td>
  118. <td align="right">'.$row["BI_analiza_depth"].'</td>
  119. <td align="right">'.$row["FILE_STATUS"].'</td>
  120. <td align="right">'.$row["FILE_STATUS_info"].'</td>';
  121. }
  122. $view .= '</tbody></table></form>';
  123. return $view;
  124. }
  125. */
  126. public function fetchTestKrsAjaxAction() {
  127. Response::sendTryCatchJson(array($this, 'fetchTestKrsAjax')); // , $args = 'JSON_FROM_REQUEST_BODY');
  128. }
  129. public function fetchTestKrsAjax($args) {
  130. $id = V::get('ID', 1, $_REQUEST, 'int');
  131. $items = ACL::getAclByNamespace('default_db/BI_audit_KRS/BI_audit_KRS')->buildQuery([
  132. 'cols' => [ // TODO:? propertyName = []
  133. 'A_kod',
  134. 'A_kraj',
  135. 'A_miejscowosc',
  136. 'A_nrDomu',
  137. 'A_nrLokalu',
  138. 'A_poczta',
  139. 'A_ulica',
  140. 'ID',
  141. 'S_gmina',
  142. 'S_kraj',
  143. 'S_miejscowosc',
  144. 'S_powiat',
  145. 'S_wojewodztwo',
  146. 'dataDokumentu',
  147. 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/ID',
  148. 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/krs',
  149. 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/nazwa',
  150. 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/regon',
  151. 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/ID',
  152. 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/imiona',
  153. 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/nazwisko',
  154. 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/pesel',
  155. 'krs',
  156. 'nazwa',
  157. 'nip',
  158. 'regon',
  159. ],
  160. 'f_ID' => "{$id}",
  161. ])->getItems([
  162. 'limit' => 10
  163. ]);
  164. return [
  165. 'type' => 'success',
  166. 'msg' => 'KRS',
  167. '__req_args' => $_REQUEST,
  168. '__args' => $args,
  169. 'body' => [
  170. 'items' => $items,
  171. ]
  172. ];
  173. }
  174. public function fetchTestCeidgAjaxAction() {
  175. Response::sendTryCatchJson(array($this, 'fetchTestCeidgAjax')); // , $args = 'JSON_FROM_REQUEST_BODY');
  176. }
  177. public function fetchTestCeidgAjax($args) {
  178. $id = V::get('ID', 0, $_REQUEST, 'int');
  179. $items = ACL::getAclByNamespace('default_db/BI_audit_CEIDG/BI_audit_CEIDG')->buildQuery([
  180. 'cols' => [ // TODO:? propertyName = []
  181. 'ID',
  182. 'budynek',
  183. 'firma',
  184. 'gmina',
  185. 'identyfikatorWpisu',
  186. 'imie',
  187. 'kodPocztowy',
  188. 'kraj',
  189. 'lokal',
  190. 'miejscowosc',
  191. 'nazwisko',
  192. 'nip',
  193. 'poczta',
  194. 'powiat',
  195. 'regon',
  196. 'ulica',
  197. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/ID',
  198. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/budynek',
  199. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/gmina',
  200. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/kodPocztowy',
  201. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/lokal',
  202. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/miejscowosc',
  203. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/nazwa',
  204. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/nip',
  205. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/poczta',
  206. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/powiat',
  207. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/ulica',
  208. 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/wojewodztwo',
  209. 'default_db__x3A__BI_audit_CEIDG_powiazania:BI_audit_CEIDG_powiazania/ID',
  210. 'default_db__x3A__BI_audit_CEIDG_powiazania:BI_audit_CEIDG_powiazania/nip',
  211. 'default_db__x3A__BI_audit_CEIDG_powiazania:BI_audit_CEIDG_powiazania/regon',
  212. ],
  213. // 'f_ID' => $id,
  214. ])->getItems([
  215. 'limit' => 10
  216. ]);
  217. return [
  218. 'type' => 'success',
  219. 'msg' => 'CEIDG',
  220. '__req_args' => $_REQUEST,
  221. '__args' => $args,
  222. 'body' => [
  223. 'items' => $items,
  224. ]
  225. ];
  226. }
  227. /**
  228. * KONTRAHENCI
  229. */
  230. //TODO: NIE wiem czemu nie mogę pobrać infoamcji o kontrahentach
  231. public function fetchKontrahenciAjaxAction() {
  232. Response::sendTryCatchJson(array($this, 'fetchKontrahenciAjax'));
  233. }
  234. public function fetchKontrahenciAjax($args) {
  235. //$id = V::get('ID', 1, $_REQUEST, 'int');
  236. $items = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI')->buildQuery([
  237. 'cols' => [ // TODO:? propertyName = []
  238. 'ID',
  239. 'Nazwa_grupy_kapitalowej',
  240. 'Pelna_nazwa_kontrahenta',
  241. 'NIP',
  242. 'KRS',
  243. 'REGON',
  244. 'Miejscowosc',
  245. 'Kod_pocztowy',
  246. 'Telefon'
  247. ],
  248. //'f_ID' => $id,
  249. ])->getItems([
  250. 'limit' => 10
  251. ]);
  252. return [
  253. 'type' => 'success',
  254. 'msg' => 'showKontrahenci',
  255. '__req_args' => $_REQUEST,
  256. '__args' => $args,
  257. 'body' => [
  258. 'items' => $items,
  259. 'view' => $this->htmlViewFormBiAudit($items, 'KONTRAHENCI')
  260. ]
  261. ];
  262. }
  263. public function showListKontrahenci($items) {
  264. $view = '<form class="form-horizontal" method="post">
  265. <table class="table table-bordered table-hover table-striped" height=5>
  266. <thead>
  267. <tr>
  268. <td width=1><input type="checkbox" name="checkAll" id="checkAll" /></td>
  269. <td width=1>ID</td>
  270. <td>Nazwa grupy kapitalowej</td>
  271. <td>Pelnanazwa kontrahenta</td>
  272. <td>NIP</td>
  273. <td>KRS</td>
  274. <td>Regon</td>
  275. <td>Miejscowosc</td>
  276. <td>Kod_pocztowy</td>
  277. <td>Telefon</td>
  278. </tr>
  279. </thead>
  280. <tbody>
  281. ';
  282. foreach ($items as $key => $row) {
  283. $view .= '<tr>
  284. <td><input type="checkbox" name="prID[]" value="'.$row['ID'].'" /></td>
  285. <td align="right">'.$row["ID"].'</td>
  286. <td align="right">'.$row["Nazwa_grupy_kapitalowej"].'</td>
  287. <td align="right">'.$row["Pelna_nazwa_kontrahenta"].'</td>
  288. <td align="right">'.$row["NIP"].'</td>
  289. <td align="right">'.$row["KRS"].'</td>
  290. <td align="right">'.$row["REGON"].'</td>
  291. <td align="right">'.$row["Miejscowosc"].'</td>
  292. <td align="right">'.$row["Kod_pocztowy"].'</td>
  293. <td align="right">'.$row["Telefon"].'</td>
  294. ';
  295. }
  296. $view .= '</tbody></table></form>';
  297. return $view;
  298. }
  299. /**
  300. * BraveCare Families Test & Fetch & Show Screen
  301. * Nazwa = crm_families.FamilyName
  302. * Telefon = crm_families.MainPhoneNumber
  303. * Firma = crm_families.CompanyId => crm_companies[Id==CompanyId]->CompanyName
  304. * Partner Zagraniczny = crm_families.CoordId => crm_coordinators[Id==CoordId]->CoordinatorName
  305. * Stan = crm_families.IsActive (0='ZAMKNIĘTE', 1='OTWARTE')
  306. * Opis = Pole generowane na podstawie danych:
  307. * crm_families.Id => crm_ordercarrers[ FamilyId==crm_families.Id ]
  308. * crm_ordercarrers.FirstName + ' ' + crm_ordercarrers.SurName + ' ' + crm_ordercarrers.DateStart + ' ' + crm_ordercarrers.DateEnd
  309. */
  310. public function fetchFamiliesAjaxAction() {
  311. // sleep(2);
  312. Response::sendTryCatchJson( array($this, 'fetchFamiliesAjax') );
  313. }
  314. public function fetchFamiliesAjax($args) {
  315. $id = V::get('Id', 1, $_REQUEST, 'int');
  316. $items = ACL::getAclByNamespace('default_db/crm_families')->buildQuery([
  317. 'cols' => [ // TODO:? propertyName = []
  318. 'Id',
  319. 'FamilyName',
  320. 'MainPhoneNumber',
  321. 'CompanyId',
  322. 'CoordId',
  323. 'EMail'
  324. ],
  325. //'f_ID' => $id,
  326. ])->getItems([
  327. 'limit' => 5
  328. ]);
  329. /*
  330. // DEBUG:
  331. $debugLog = print_r( array_values($items), true );
  332. error_log("-------------- fetchFamiliesAjax() --- Items(".count($items)."): ".$debugLog, 0);
  333. */
  334. return [
  335. 'type' => 'success',
  336. 'msg' => 'showFamilies',
  337. '__req_args' => $_REQUEST,
  338. '__args' => $args,
  339. 'body' => [
  340. 'items' => $items,
  341. //'view' => $this->htmlViewFormBiAudit($items, 'FAMILIES')
  342. ]
  343. ];
  344. }
  345. public function getHtmlForTable_Families($items) {
  346. $htmlForTable = '<form class="form-horizontal" method="post">
  347. <table class="table table-bordered table-hover table-striped" height=5>
  348. <thead>
  349. <tr>
  350. <td width=1><input type="checkbox" name="checkAll" id="checkAll" /></td>
  351. <!--<td class="table_column_heading" width=1>ID</td>-->
  352. <td class="table_column_heading">Nazwisko</td>
  353. <td class="table_column_heading">Telefon</td>
  354. <td class="table_column_heading">Firma ID</td>
  355. <td class="table_column_heading">Partner Zagraniczny ID</td>
  356. <td class="table_column_heading">EMail</td>
  357. </tr>
  358. </thead>
  359. <tbody id="tbody-families">
  360. ';
  361. /*
  362. foreach ($items as $key => $row) {
  363. $view .= '<tr>
  364. <td><input type="checkbox" name="prID[]" value="'.$row['ID'].'" /></td>
  365. <td align="right">'.$row["ID"].'</td>
  366. <td align="right">'.$row["FamilyName"].'</td>
  367. <td align="right">'.$row["MainPhoneNumber"].'</td>
  368. <td align="right">'.$row["CompanyId"].'</td>
  369. <td align="right">'.$row["CoordId"].'</td>
  370. <td align="right">'.$row["EMail"].'</td>
  371. ';
  372. }
  373. */
  374. $htmlForTable .= '</tbody></table></form>';
  375. return $htmlForTable;
  376. }
  377. /**
  378. * EOF BraveCare Families Test
  379. */
  380. /**
  381. * Pracownicy
  382. */
  383. public function fetchPracownicyAjaxAction() {
  384. // sleep(2);
  385. Response::sendTryCatchJson(array($this, 'fetchPracownicyAjax'));
  386. }
  387. public function fetchPracownicyAjax($args) {
  388. $id = V::get('ID', 1, $_REQUEST, 'int');
  389. $items = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY')->buildQuery([
  390. 'cols' => [ // TODO:? propertyName = []
  391. 'ID',
  392. 'imiona',
  393. 'nazwisko',
  394. 'nip',
  395. 'pesel',
  396. 'regon',
  397. 'A_ADM_COMPANY',
  398. 'A_STATUS',
  399. 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy/*'
  400. ],
  401. //'f_ID' => $id,
  402. ])->getItems([
  403. 'limit' => 10
  404. ]);
  405. return [
  406. 'type' => 'success',
  407. 'msg' => 'showPracownicy',
  408. '__req_args' => $_REQUEST,
  409. '__args' => $args,
  410. 'body' => [
  411. 'items' => $items,
  412. 'view' => $this->htmlViewFormBiAudit($items, 'PRACOWNICY')
  413. ]
  414. ];
  415. }
  416. public function showListPracownicy($items) {
  417. $view = '<form class="form-horizontal" method="post">
  418. <table class="table table-bordered table-hover table-striped" height=5>
  419. <thead>
  420. <tr>
  421. <td width=1><input type="checkbox" name="checkAll" id="checkAll" /></td>
  422. <td width=1>ID</td>
  423. <td>Imię/Imiona</td>
  424. <td>Nazwisko</td>
  425. <td>NIP</td>
  426. <td>Pesel</td>
  427. <td>Regon</td>
  428. <td>A_ADM_COMPANY</td>
  429. <td>A_STATUS</td>
  430. <td>Adresy</td>
  431. </tr>
  432. </thead>
  433. <tbody>
  434. ';
  435. foreach ($items as $key => $row) {
  436. $view .= '<tr>
  437. <td><input type="checkbox" name="prID[]" value="'.$row['ID'].'" /></td>
  438. <td align="right">'.$row["ID"].'</td>
  439. <td align="right">'.$row["imiona"].'</td>
  440. <td align="right">'.$row["nazwisko"].'</td>
  441. <td align="right">'.$row["nip"].'</td>
  442. <td align="right">'.$row["pesel"].'</td>
  443. <td align="right">'.$row["regon"].'</td>
  444. <td align="right">'.$row["A_ADM_COMPANY"].'</td>
  445. <td align="right">'.$row["A_STATUS"].'</td>
  446. <td align="right">'.$row["default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy"].'</td>
  447. ';
  448. }
  449. $view .= '</tbody></table></form>';
  450. return $view;
  451. }
  452. // link do ackji w php: $saveFormUrl = $this->getLink('saveRaportAjax');
  453. // przekazać link do JavaScript i tam:
  454. // window.fetch('{$saveFormUrl}', { ... }).then(...) - dokumentacja: https://github.com/github/fetch
  455. public function saveRaportAjaxAction() {
  456. // Response::sendTryCatchJson(array($this, 'saveRaportAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em
  457. Response::sendTryCatchJson(array($this, 'saveRaportAjax'));
  458. }
  459. public function saveRaportAjax($args) {
  460. // TODO: przejrzeć $args (jeśli JSON) lub $_POST
  461. // Tworzenie rekrodu w bazie - Raport -
  462. $idRaport = DB::getDB()->insert('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', [
  463. 'A_RECORD_CREATE_AUTHOR' => User::getLogin(),
  464. 'A_RECORD_CREATE_DATE' => 'NOW()',
  465. // 'A_STATUS' => 'WAITING', // jeśli trzeba to ustawić
  466. ]);
  467. // TODO: validate args ...
  468. // throw new Exception("Wrong field..."); // lub inny komunikat błędu - spowoduje wysłanie json-a { 'msg' => 'Wrong field...', 'type' => 'error' }
  469. // Tworzenie relacji Raport do Pracownicy
  470. $pracownicyIds = []; // TODO: array z nr ID na podstawie wysłanego formularza
  471. $refPowiazaniaToPracownicy = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
  472. 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY');
  473. foreach ($pracownicyIds as $idPracownik) {
  474. DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idPracownik]);
  475. }
  476. // Tworzenie relacji Raport do Kontrahenci - analogicznie jak wyżej
  477. $kontrahenciIds = []; // TODO: array z nr ID na podstawie wysłanego formularza
  478. $refPowiazaniaToKontrahenci = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA',
  479. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI');
  480. foreach ($kontrahenciIds as $idKontrahent) {
  481. DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idKontrahent]);
  482. }
  483. // ...
  484. return [
  485. 'msg' => "Utworzono raport",
  486. 'type' => "success",
  487. 'body' => [
  488. 'id' => $idRaport,
  489. ]
  490. ];
  491. }
  492. public function htmlViewFormBiAudit($items, $type) {
  493. $activeFormSteps = '';
  494. switch($type) {
  495. case 'KONTRAHENCI':
  496. $activeFormSteps = 'complete';
  497. $titleHeader = 'KONTRAHENCI';
  498. break;
  499. case 'PRACOWNICY':
  500. $titleHeader = 'PRACOWNICY';
  501. break;
  502. case 'FAMILIES':
  503. $titleHeader = 'FAMILIES';
  504. break;
  505. }
  506. $viewEployees = '
  507. <!-- start:employees-section-->
  508. <div id="smad-employees-section">
  509. <div class="container-fluid">
  510. <div class="row">
  511. <div class="container padding-lr-0">
  512. <div id="smad-menu-section">
  513. <div class="col-sm-12 col-md-6 padding-lr-0">
  514. <div class="menu-items">
  515. <div class="smad-heder-title menu-item"><span class="smad-line-red">|</span> ' . $titleHeader . ' </div>
  516. </div>
  517. </div>
  518. <div class="col-sm-12 col-md-6 padding-lr-0">
  519. <div class="form-steps">
  520. <!-- start:form steps wizard -->
  521. <div class="row smad-wizard" style="border-bottom:0;">
  522. <div class="col-xs-4 col-md-4 smad-wizard-step complete"><!-- complited line -->
  523. <div class="text-center smad-wizard-stepnum">&nbsp;</div>
  524. <div class="progress"><div class="progress-bar"></div></div>
  525. <a href="#" class="smad-wizard-dot"></a>
  526. <div class="smad-wizard-info complete text-center">
  527. <div class="step-item">Krok 1</div>
  528. <div class="step-title ">PRACOWNICY</div>
  529. </div>
  530. </div>
  531. <div class="col-xs-4 col-md-4 smad-wizard-step ' . $activeFormSteps . '">
  532. <div class="text-center smad-wizard-stepnum">&nbsp;</div>
  533. <div class="progress"><div class="progress-bar"></div></div>
  534. <a href="#" class="smad-wizard-dot"></a>
  535. <div class="smad-wizard-info text-center">
  536. <div class="step-item">Krok 2</div>
  537. <div class="step-title ">KONTRAHENCI</div>
  538. </div>
  539. </div>
  540. <div class="col-xs-4 col-md-4 smad-wizard-step ">
  541. <div class="text-center smad-wizard-stepnum">&nbsp;</div>
  542. <div class="progress"><div class="progress-bar"></div></div>
  543. <a href="#" class="smad-wizard-dot"></a>
  544. <div class="smad-wizard-info text-center">
  545. <div class="step-item>Krok 3</div>
  546. <div class="step-title ">SZUKANIE POWIĄZAŃ</div>
  547. </div>
  548. </div>
  549. </div>
  550. <!-- end:form steps wizard -->
  551. </div>
  552. </div>
  553. </div>
  554. </div>
  555. </div>
  556. </div>
  557. <div class="container-fluid">
  558. <div class="container padding-lr-0">
  559. <div class="smad-divider"></div>
  560. </div>
  561. </div>
  562. <!-- start:filters -->
  563. <div class="container-fluid">
  564. <div class="row">
  565. <div class="container">
  566. <div class="smad-employees-form-section" class="border-top-grey">
  567. <div class="col-md-9 smad-border-col">
  568. <div class="menu-items">
  569. <div class="menu-item">
  570. <ul class="padding-0">
  571. <li>
  572. <span class="button-checkbox">
  573. <button type="button" class="btn" data-color="grey-border">WSZYSCY</button>
  574. <input type="checkbox" class="hidden" checked />
  575. </span>
  576. </li>
  577. <li>
  578. <span class="button-checkbox">
  579. <button type="button" class="btn btn-info" data-color="grey-border">WYSOKIEGO RYZYKA</button>
  580. <input type="checkbox" class="hidden" />
  581. </span>
  582. </li>
  583. <li><a href="#" title="STWÓRZ GRUPĘ" class="btn btn-default" data-color-noactive="">+ STWÓRZ GRUPĘ</a></li>
  584. </ul>
  585. </div>
  586. </div>
  587. </div>
  588. <div class="col-md-3">
  589. <div class="form-input">
  590. <div class="form-item col-md-8 smad-heder-title">głębokość powiązań:</div>
  591. <div class="form-item col-md-4">
  592. <input type="depth" class="form-control" placeholder="1-16" />
  593. </div>
  594. </div>
  595. </div>
  596. </div>
  597. </div>
  598. </div>
  599. </div>
  600. <!-- end:filters -->
  601. <!-- start:list employees -->
  602. <div class="container-fluid">
  603. <div class="row">
  604. <div class="container padding-0 smad-employees-list-head">
  605. <div class="col-md-6">
  606. <header>
  607. <h2 class="title">Wszyscy</h2>
  608. </header>
  609. <div class="desc">
  610. Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym.
  611. </div>
  612. </div>
  613. <div class="col-md-6">
  614. <div class="menu-items">
  615. <div class="menu-item">
  616. <ul class="padding-0">
  617. <li><a href="#" title="IMPORT PRACOWNIKÓW" class="btn btn-info data-color-noactive="">IMPORT PRACOWNIKÓW</a></li>
  618. <li><a href="#" title="DODAJ PRACOWNIKÓW" class="btn btn-info" data-color-noactive="">+ DODAJ PRACOWNIKÓW</a></li>
  619. </ul>
  620. </div>
  621. </div>
  622. </div>
  623. </div>
  624. </div>
  625. </div>
  626. <div class="container-fluid">
  627. <div class="container padding-0">
  628. ' . $this->showListDataByType($items, $type) . '
  629. </div>
  630. </div>
  631. <!-- end:list employees -->
  632. <!-- start:bottom buttons -->
  633. <div class="container-fluid smad-employees-bottom-navigation">
  634. <div class="container padding-0">
  635. <div class="col-lg-6 ">
  636. <a href="#" title="PRZENIEŚ DO GRUPY" class="btn btn-info">PRZENIEŚ DO GRUPY</a>
  637. </div>
  638. <div class="col-lg-6 text-right">
  639. <a href="index.php?_route=UrlAction_BiAuditRaport#KONTRAHENCI" onClick="reload" title="DODAJ DO ANALIZY" class="btn btn-primary">DODAJ DO ANALIZY</a>
  640. </div>
  641. </div>
  642. </div>
  643. <!-- end:bottom buttons -->
  644. </div>
  645. <!-- start:employees-section -->
  646. ';
  647. return $viewEployees;
  648. }
  649. public function showListDataByType($items, $type='PRACOWNICY') {
  650. switch ($type) {
  651. case 'PRACOWNICY':
  652. return $this->showListPracownicy($items);
  653. break;
  654. case 'KONTRAHENCI':
  655. return $this->showListKontrahenci($items);
  656. break;
  657. case 'FAMILIES':
  658. return $this->showListFamilies($items);
  659. break;
  660. }
  661. }
  662. /**
  663. * BraveCare Families Screen
  664. */
  665. public function getHtmlForScreen_Families( $items, $type ) { //HTML for Screen - Families
  666. $this->getCss();
  667. switch($type) {
  668. case 'FAMILIES':
  669. $titleHeader = 'KLIENCI (RODZINY)';
  670. break;
  671. }
  672. $screen_Families = '
  673. <!-- start: Families section -->
  674. <div class=container-fluid>
  675. <div class=row>
  676. <div class=col-md-12 style=padding-top:10px;>' . $titleHeader . ' <a href="#" title="Narzędzia" class="btn btn-default btn-xs" style=float:right; cursor:pointer; height=10px; id=narzedzia>Narzędzia v</a>
  677. </div>
  678. <div class=col-md-12 id=viewxyz style=padding-top:15px; border=1px solid red;>
  679. </div>
  680. </div>
  681. </div>
  682. <!-- smad-employees-section -->
  683. <div id="smad-employees-section">
  684. <!-- Buttons and Filters SECTION -->
  685. <div class="container-fluid">
  686. <div class="row">
  687. <div class="container padding-0 smad-employees-list-head" style="border: 1px solid red; margin-bottom:15px;">
  688. TUTAJ JEST SEKCJA Z PRZYCISKAMI I FILTRAMI - Typ obiektu: ' . $type . ' - Liczba el. pobranych z BD: '. count($items) . ' ELEMENTY: ' . print_r( array_values($items), true ) . '
  689. </div>
  690. </div>
  691. </div>
  692. <!-- EOF Buttons and Filters SECTION -->
  693. <!-- Table from Database SECTION -->
  694. <div class="container-fluid">
  695. <div class="container padding-0">
  696. ' . $this->getHtmlForTableByType($items, $type) . '
  697. </div>
  698. </div>
  699. <!-- EOF Table from Database SECTION -->
  700. <!-- Bottom SECTION -->
  701. <div class="container-fluid smad-employees-bottom-navigation">
  702. <div class="container padding-0">
  703. <div class="col-lg-12 " style=padding-bottom:15px;>
  704. </div>
  705. </div>
  706. </div>
  707. <!-- EOF Bottom SECTION -->
  708. </div>
  709. <!-- EOF smad-employees-section -->
  710. ';
  711. return $screen_Families;
  712. }
  713. public function getHtmlForTableByType( $items, $type='FAMILIES' ) {
  714. switch( $type ) {
  715. case 'FAMILIES':
  716. return $this->getHtmlForTable_Families($items);
  717. break;
  718. }
  719. }
  720. /* EOF BraveCare Families - getHtmlForScreen_Families() */
  721. public function getCss(){
  722. ?>
  723. <style>
  724. .table_column_heading {
  725. font-weight:bold;
  726. color:#00a;
  727. cursor:pointer;
  728. }
  729. .table_column_heading:hover {
  730. color:#08a;
  731. }
  732. </style>
  733. <?php
  734. }
  735. }