"static/sweetalert2.min.js"]); echo UI::h('link', ['rel'=>"stylesheet", 'type'=>"text/css", 'href'=>"static/sweetalert2.min.css"]); Theme::top(); //echo '
'; // todo: sprawdzi czy można usunać echo ''; echo ''; // echo ''; UI::inlineJS(__FILE__ . '.view.js', [ 'URL_FETCH_KONTRAHENCI_POWIAZANIA' => $this->getLink('fetchEnergaRumKontrahenciPowiazaniaAjax'), 'URL_FETCH_TEST_KRS' => $this->getLink('fetchTestKrsAjax'), 'URL_FETCH_TEST_CEIDG' => $this->getLink('fetchTestCeidgAjax'), 'URL_FETCH_PRACOWNICY' => $this->getLink('fetchPracownicyAjax'), 'URL_FETCH_KONTRAHENCI' => $this->getLink('fetchKontrahenciAjax'), 'URL_CREATE_PRACOWNICY_GROUP' => $this->getLink('createPracownicyGroupAjax'), 'URL_CREATE_KONTRAHENCIS_GROUP' => $this->getLink('createKontrahenciGroupAjax'), 'URL_ADD_PRACOWNICY_TO_GROUP' => $this->getLink('addPracownicyToGroupAjax'), 'URL_ADD_KONTRAHENCI_TO_GROUP' => $this->getLink('addKontrahenciToGroupAjax'), 'URL_FETCH_GROUP_PRACOWNICY' => $this->getLink('fetchGroupPracownicyAjax'), 'URL_FETCH_GROUP_KONTRAHENCI' => $this->getLink('fetchGroupKontrahenciAjax'), 'URL_GENERATE_BI_AUDIT_RAPORT_AJAX' => $this->getLink('generateBiAuditRaportAjax'), 'DBG' => V::get('DBG', 0, $_GET), 'VIEW_KONTRAHENCI' => $this->defaultViewFormBiAudit([], 'KONTRAHENCI'), 'VIEW_PRACOWNICY' => $this->defaultViewFormBiAudit([], 'PRACOWNICY'), 'URL_PARSE_CSV_FILE_AJAX' => $this->getLink('parseCsvFileAjax'), ]); echo '
'; // #smad-wrapper UI::dol(); } public function parseCsvFileAjaxAction() { Response::sendTryCatchJson(array($this, 'parseCsvFileAjax')); // , $args = 'JSON_FROM_REQUEST_BODY'); } public function parseCsvFileAjax() { if (!file_exists($_FILES['file']['tmp_name'])) throw new Exception("Wybierz plik do przesłania."); $file = file($_FILES['file']['tmp_name']); // nagłowki csv $headCsv = array(); // wiersze CSV(poza pierwszym) $arrayRows = array(); $i = 0; $viewFormHtml = '
'; foreach ($file as $line) { if ( $i == 0 ) { $headCsv = explode(';', $line); } else { $arrayRows = explode(';', $line); foreach ($arrayRows as $keyData => $rowData) { // sprawdzenie czy ustawiony naglówek - jeśli nie to wyświetl komunikat if ($headCsv[$keyData]) throw new Exception("Brak nagłówka w kolumnie " . ($keyData + 1) . "w pliku CSV."); $viewFormHtml .= ''; } } $i++; } $viewFormHtml .= '
'; //return $viewFormHtml; return [ 'type' => 'success', 'msg' => 'OK', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'view' => $viewFormHtml, ] ]; // if (!isset($_FILES['fileData'])) throw new Exception("Błąd formularza "); } public function fetchEnergaRumKontrahenciPowiazaniaAjaxAction() { Response::sendTryCatchJson(array($this, 'fetchEnergaRumKontrahenciPowiazaniaAjax')); // , $args = 'JSON_FROM_REQUEST_BODY'); } public function fetchEnergaRumKontrahenciPowiazaniaAjax($args) { $id = V::get('ID', 26, $_REQUEST, 'int'); $items = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'A_ADM_COMPANY', 'L_APPOITMENT_USER', 'A_CLASSIFIED', 'A_STATUS', 'A_STATUS_INFO', 'BI_analiza_maxDepth', 'BI_analiza_minDepth', 'BI_analiza_onlyTargets', 'BI_analiza_reloadCache', 'FILE_STATUS', 'FILE_STATUS_info', 'L_APPOITMENT_USER', 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY', 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI', 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row', 'default_db__x3A__BI_audit_KW_requested_person:BI_audit_KW_requested_person', ], 'f_ID' => "{$id}", ])->getItems([ 'limit' => 10 ]); // $items = [ // [ 'ID' => 1, 'L_APPOITMENT_INFO' => 'x', 'BI_analiza_depth' => 'a', 'FILE_STATUS' => 1, 'FILE_STATUS_info' => 'test1'], // [ 'ID' => 2, 'L_APPOITMENT_INFO' => 'y', 'BI_analiza_depth' => 'b', 'FILE_STATUS' => 0, 'FILE_STATUS_info' => 'test2'], // [ 'ID' => 3, 'L_APPOITMENT_INFO' => 'z', 'BI_analiza_depth' => 'c', 'FILE_STATUS' => 1, 'FILE_STATUS_info' => 'test3'], // ]; return [ 'type' => 'success', 'msg' => 'OK', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'items' => $items, 'view' => $this->showPowiazaniaEnergaRumKontrahenciPowiazania($items), ] ]; } public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) { $view = '
'; foreach ($items as $key => $row) { $view .= ''; } $view .= '
ID Adnotacje Głębokość analizy Status raportu Status raportu - informacje
'.$row["ID"].' '.$row["L_APPOITMENT_INFO"].' '.$row["BI_analiza_depth"].' '.$row["FILE_STATUS"].' '.$row["FILE_STATUS_info"].'
'; return $view; } public function fetchTestKrsAjaxAction() { Response::sendTryCatchJson(array($this, 'fetchTestKrsAjax')); // , $args = 'JSON_FROM_REQUEST_BODY'); } public function fetchTestKrsAjax($args) { $id = V::get('ID', 1, $_REQUEST, 'int'); $items = ACL::getAclByNamespace('default_db/BI_audit_KRS/BI_audit_KRS')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'A_kod', 'A_kraj', 'A_miejscowosc', 'A_nrDomu', 'A_nrLokalu', 'A_poczta', 'A_ulica', 'ID', 'S_gmina', 'S_kraj', 'S_miejscowosc', 'S_powiat', 'S_wojewodztwo', 'dataDokumentu', 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/ID', 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/krs', 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/nazwa', 'default_db__x3A__BI_audit_KRS_company:BI_audit_KRS_company/regon', 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/ID', 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/imiona', 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/nazwisko', 'default_db__x3A__BI_audit_KRS_person:BI_audit_KRS_person/pesel', 'krs', 'nazwa', 'nip', 'regon', ], 'f_ID' => "{$id}", ])->getItems([ 'limit' => 10 ]); return [ 'type' => 'success', 'msg' => 'KRS', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'items' => $items, ] ]; } public function fetchTestCeidgAjaxAction() { Response::sendTryCatchJson(array($this, 'fetchTestCeidgAjax')); // , $args = 'JSON_FROM_REQUEST_BODY'); } public function fetchTestCeidgAjax($args) { $id = V::get('ID', 0, $_REQUEST, 'int'); $items = ACL::getAclByNamespace('default_db/BI_audit_CEIDG/BI_audit_CEIDG')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'budynek', 'firma', 'gmina', 'identyfikatorWpisu', 'imie', 'kodPocztowy', 'kraj', 'lokal', 'miejscowosc', 'nazwisko', 'nip', 'poczta', 'powiat', 'regon', 'ulica', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/ID', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/budynek', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/gmina', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/kodPocztowy', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/lokal', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/miejscowosc', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/nazwa', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/nip', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/poczta', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/powiat', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/ulica', 'default_db__x3A__BI_audit_CEIDG_pelnomocnicy:BI_audit_CEIDG_pelnomocnicy/wojewodztwo', 'default_db__x3A__BI_audit_CEIDG_powiazania:BI_audit_CEIDG_powiazania/ID', 'default_db__x3A__BI_audit_CEIDG_powiazania:BI_audit_CEIDG_powiazania/nip', 'default_db__x3A__BI_audit_CEIDG_powiazania:BI_audit_CEIDG_powiazania/regon', ], // 'f_ID' => $id, ])->getItems([ 'limit' => 10 ]); return [ 'type' => 'success', 'msg' => 'CEIDG', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'items' => $items, ] ]; } /** * KONTRAHENCI */ public function fetchKontrahenciAjaxAction() { Response::sendTryCatchJson(array($this, 'fetchKontrahenciAjax')); } public function fetchKontrahenciAjax($args) { $idGroup = V::get('filterIdGroup', 0, $_REQUEST, 'int'); // TODO: dla filtrów "Wysokiego ryzyka" - przekazywany ID rekodu if ($idGroup < 0) $idGroup = 0; $limit = 5; $limitstart = V::get('limitstart', 0, $_REQUEST, 'int'); if ($limitstart < 0) $limitstart = 0; $page = V::get('page', 0, $_REQUEST, 'int'); $limitstart = ($page - 1) * $limit; $search = V::get('search', '', $_REQUEST); $searchParams = []; if (!empty($search)) { $ogcSearch = "*{$search}*"; // wildCard="*" -> mysql '%' $searchParams['ogc:Filter'] = ' NIP ' . $ogcSearch . ' Nazwa_grupy_kapitalowej ' . $ogcSearch . ' Pelna_nazwa_kontrahenta ' . $ogcSearch . ' '; } $backRefFilter = []; if ($idGroup > 0) { $backRefFilter['__backRef'] = [ 'namespace' => 'default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_KONTRAHENCIS_GRUPY', // TODO: nowy rejetr na grupy / filty KONTRAHENCI 'primaryKey' => $idGroup, 'fieldName' => 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_KONTRAHENCIS', ]; // TODO: Storage dodać obiekt xsd default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_KONTRAHENCI_GRUPY: // - ID // - ID_USER - id usera który stworzył grupę (tylko dla niego będzie widoczna) // - NAZWA - nazwa grupy // - 'default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_KONTRAHENCI' minOccurs="0" maxOccurs="unbounded" } $acl = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI'); $query = $acl->buildQuery(array_merge([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'Nazwa_grupy_kapitalowej', 'Pelna_nazwa_kontrahenta', 'Numer_kontrahenta', 'Skrocona_Nazwa_Kontrahenta', 'Typ_kontrahenta', 'NIP', 'KRS', 'REGON', 'PESEL', 'Forma_prawna_dzialalnosci', 'Ulica', 'Numer_budynku', 'Numer_mieszkania_lokalu', 'Miejscowosc', 'Kod_pocztowy', 'Kraj', 'Telefon', 'Fax', 'Mail', 'A_ADM_COMPANY', 'A_CLASSIFIED', 'A_STATUS', 'A_STATUS_INFO', 'Dodano', 'L_APPOITMENT_USER', 'Podmiot_dominujacy', 'Tytul_dokumentu', 'ownCompany', 'uwagi', ], //'f_ID' => $id, 'limit' => $limit, 'limitstart' => $limitstart, // offset ], $searchParams, $backRefFilter)); $total = $query->getTotal(); $items = $query->getItems(); $pagination = array(); $pagination['total_items'] = $total; $pagination['size'] = ceil($total/$limit); // pages size $pagination['current'] = $page; $pagination['limit'] = $limit; return [ 'type' => 'success', 'msg' => 'showKontrajenci', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'items' => $items, //'view' => $this->htmlViewFormBiAudit($items, 'KONTRAHENCI'), 'pagination' => $pagination ] ]; } // // public function fetchKontrahenciAjaxOld($args) { // //$id = V::get('ID', 1, $_REQUEST, 'int'); // $items = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI')->buildQuery([ // 'cols' => [ // TODO:? propertyName = [] // 'ID', // 'Nazwa_grupy_kapitalowej', // 'Pelna_nazwa_kontrahenta', // 'NIP', // 'KRS', // 'REGON', // 'Miejscowosc', // 'Kod_pocztowy', // 'Telefon' // ], // //'f_ID' => $id, // ])->getItems([ // 'limit' => 10 // ]); // // return [ // 'type' => 'success', // 'msg' => 'showKontrahenci', // '__req_args' => $_REQUEST, // '__args' => $args, // 'body' => [ // 'items' => $items, // 'view' => $this->htmlViewFormBiAudit($items, 'KONTRAHENCI') // ] // ]; // } public function showTableKontrahenci($items) { $view = '
ID Nazwa grupy kapitalowej Pelna nazwa kontrahenta Numer kontrahenta Skrócona nazwa kontrahenta Typ_kontrahenta NIP KRS Regon PESEL Forma prawna działalności Ulica Numer budynku Numer mieszkania lokalu Miejscowosc Kod pocztowy Kraj Telefon Fax Mail A_ADM_COMPANY A_CLASSIFIED A_STATUS A_STATUS_INFO Dodano L_APPOITMENT_USER Podmiot dominujacy Tytul dokumentu ownCompany uwagi
'; return $view; } // tworzenie grupy kontrahentów public function createKontrahenciGroupAjaxAction() { Response::sendTryCatchJson(array($this, 'createKontrahenciGroupAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em } public function createKontrahenciGroupAjax($args) { $nazwa = V::get('NAZWA', '', $args); // TODO: vlaidacja nazwy - sprawdzenie czy już nie występuje $idGroup = DB::getPDO()->insert('BI_audit_ENERGA_KONTRAHENCI_GRUPY', [ 'A_RECORD_CREATE_AUTHOR' => User::getLogin(), 'A_RECORD_CREATE_DATE' => 'NOW()', 'NAZWA' => $nazwa, ]); return [ 'msg' => "Utworzona grupę {$idGroup}", 'type' => "success", 'body' => [ 'id' => $idGroup, ] ]; } // Dodanie do grupy filtra kontrahentów public function addKontrahenciToGroupAjaxAction() { // Response::sendTryCatchJson(array($this, 'addKontrahenciToGroupAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em Response::sendTryCatchJson(array($this, 'addKontrahenciToGroupAjax')); } public function addKontrahenciToGroupAjax($args) { $idGroup = V::get('idGroup', 0, $_REQUEST, 'int'); $kontrahenciIds = V::get('kontrahenciIds', [], $_REQUEST, 'array'); // validate if (!$idGroup) throw new Exception("Nie wybrano grupa"); if (!$kontrahenciIds || count($kontrahenciIds) == 0 ) throw new Exception("Proszę wybrać kontrahentów"); $group = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_KONTRAHENCI_GRUPY/BI_audit_ENERGA_KONTRAHENCI_GRUPY')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'ID_USER', 'NAZWA', ], // 'f_ID_USER' => User::getID() ])->getItem($idGroup); if (!$group) throw new Exception("Grupa nie istnieje"); if (User::getID() != $group['ID_USER']) throw new Exception("Brak uprawnień do grupy"); // $refGrupyToPracownicy = ACL::getRefTable('obiekt główny', 'nazwa pola - powiązane rekordy'); $refGrupyToKontrahenci = ACL::getRefTable('default_db/BI_audit_ENERGA_KONTRAHENCI_GRUPY/BI_audit_ENERGA_KONTRAHENCI_GRUPY', 'default_db__x3A__BI_audit_ENERGA_KONTRAHENCI:BI_audit_ENERGA_KONTRAHENCI'); foreach ($kontrahenciIds as $kontrahentIds) { DB::getPDO()->insert($refGrupyToKontrahenci, ['PRIMARY_KEY' => $idGroup, 'REMOTE_PRIMARY_KEY' => $kontrahentIds]); } return [ 'msg' => "Powiązano kontrahentów z grupą {$idGroup}", 'type' => "success", ]; } public function fetchGroupKontrahenciAjaxAction() { Response::sendTryCatchJson(array($this, 'fetchGroupKontrahenciAjax')); } public function fetchGroupKontrahenciAjax() { // TODO: odkomentować jak zostanie dodana tabela default_db/BI_audit_ENERGA_KONTRAHENCI_GRUPY/BI_audit_ENERGA_KONTRAHENCI_GRUPY /*$group = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_KONTRAHENCI_GRUPY/BI_audit_ENERGA_KONTRAHENCI_GRUPY')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'ID_USER', 'NAZWA', ], 'f_ID_USER' => User::getID() ])->getItem($idGroup); if (!$group) throw new Exception("Grupa nie istnieje"); if (User::getID() != $group['ID_USER']) throw new Exception("Brak uprawnień do grupy"); $itemsKontrahenci = $query->getItems(); $arrayGroupKontrahenci = array(); foreach ($itemsKontrahenci as $key => $value) { $arrayGroupKontrahenci[$value['ID']] = $value['NAZWA']; } */ //TODO: USUNAĆ listę grup wpisane na sztywno $arrayGroupKontrahenci = array(); $arrayGroupKontrahenci[0]["ID"] = 1; $arrayGroupKontrahenci[0]["NAZWA"] = "Grupa 1"; $arrayGroupKontrahenci[1]["ID"] = 2; $arrayGroupKontrahenci[1]["NAZWA"] = "Grupa 2"; $arrayGroupKontrahenci[2]["ID"] = 3; $arrayGroupKontrahenci[2]["NAZWA"] = "Grupa 3"; $arrayGroupKontrahenci[3]["ID"] = 4; $arrayGroupKontrahenci[3]["NAZWA"] = "Grupa 4"; $arrayGroupKontrahenci[4]["ID"] = 5; $arrayGroupKontrahenci[4]["NAZWA"] = "Grupa 5"; $arrayGroupKontrahenci[5]["ID"] = 6; $arrayGroupKontrahenci[5]["NAZWA"] = "Grupa 6"; $arrayGroupKontrahenci[6]["ID"] = 7; $arrayGroupKontrahenci[6]["NAZWA"] = "Grupa 7"; $arrayGroupKontrahenci[7]["ID"] = 8; $arrayGroupKontrahenci[7]["NAZWA"] = "Grupa 8"; $arrayGroupKontrahenci[8]["ID"] = 9; $arrayGroupKontrahenci[8]["NAZWA"] = "Grupa 9"; $arrayGroupKontrahenci[9]["ID"] = 10; $arrayGroupKontrahenci[9]["NAZWA"] = "Grupa 10"; $arrayGroupKontrahenci[9]["ID"] = 11; $arrayGroupKontrahenci[9]["NAZWA"] = "Grupa 11"; return [ 'type' => 'success', 'msg' => 'fetchKontrahenciToGroup', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'itemsGroupKontrahenci' => $arrayGroupKontrahenci ] ]; } /* * PRACOWNICY */ public function fetchPracownicyAjaxAction() { // sleep(2); Response::sendTryCatchJson(array($this, 'fetchPracownicyAjax')); } public function fetchPracownicyAjax($args) { $idGroup = V::get('filterIdGroup', 0, $_REQUEST, 'int'); // TODO: dla filtrów "Wysokiego ryzyka" - przekazywany ID rekodu if ($idGroup < 0) $idGroup = 0; $limit = 2; $limitstart = V::get('limitstart', 0, $_REQUEST, 'int'); if ($limitstart < 0) $limitstart = 0; $page = V::get('page', 0, $_REQUEST, 'int'); $limitstart = ($page - 1) * $limit; $search = V::get('search', '', $_REQUEST); $searchParams = []; if (!empty($search)) { $ogcSearch = "*{$search}*"; // wildCard="*" -> mysql '%' $searchParams['ogc:Filter'] = ' nip ' . $ogcSearch . ' nazwisko ' . $ogcSearch . ' '; } $backRefFilter = []; if ($idGroup > 0) { $backRefFilter['__backRef'] = [ 'namespace' => 'default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY', // TODO: nowy rejetr na grupy / filty pracowników 'primaryKey' => $idGroup, 'fieldName' => 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY', ]; // TODO: Storage dodać obiekt xsd default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY: // - ID // - ID_USER - id usera który stworzył grupę (tylko dla niego będzie widoczna) // - NAZWA - nazwa grupy // - 'default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY' minOccurs="0" maxOccurs="unbounded" } $acl = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY'); $query = $acl->buildQuery(array_merge([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'imiona', 'nazwisko', 'nip', 'pesel', 'regon', 'source', 'A_ADM_COMPANY', 'A_CLASSIFIED', 'A_STATUS', 'A_STATUS_INFO', 'L_APPOITMENT_USER', 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy/*' ], //'f_ID' => $id, 'limit' => $limit, 'limitstart' => $limitstart, // offset // 'order_by' => 'ID', // sortowanie po kolumnie // 'order_dir' => 'DESC', // kierunek sortowania // 'f_nip' = "=12345", // szukamy dokładnie tej wartości - mysql: where nip = "12345" // 'f_nip' = "12345", // szukamy dokładnie tej wartości - mysql: where nip like "%12345%" // 'f_nip' = "12345%", // szukamy dokładnie tej wartości - mysql: where nip like "12345%" // 'f_ID' = "=12345", // szukamy dokładnie tej wartości - mysql: where ID = "12345" ], $searchParams, $backRefFilter)); $total = $query->getTotal(); $items = $query->getItems(); $pagination = array(); $pagination['total_items'] = $total; $pagination['size'] = ceil($total/$limit); // pages size $pagination['current'] = $page; $pagination['limit'] = $limit; // { // tworzenie własnego zapytanie mysql // $rootTableName = $acl->getRootTableName(); // DB::getPDO()->fetchAll(" // select t.* // from {$rootTableName} t // where t.ID in ( // select x.ID // from ... x // where // ) // "); // } return [ 'type' => 'success', 'msg' => 'showPracownicy', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'items' => $items, //'view' => $this->htmlViewFormBiAudit($items, 'PRACOWNICY'), 'pagination' => $pagination ] ]; } public function showTablePracownicy() { $view = '
ID Imię/Imiona Nazwisko NIP Pesel Regon source A_ADM_COMPANY A_CLASSIFIED A_STATUS A_STATUS_INFO L_APPOITMENT_USER Adresy
'; return $view; } // tworzenie grupy pracowników public function createPracownicyGroupAjaxAction() { Response::sendTryCatchJson(array($this, 'createPracownicyGroupAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em // Response::sendTryCatchJson(array($this, 'createPracownicyGroupAjax')); } public function createPracownicyGroupAjax($args) { $nazwa = V::get('NAZWA', '', $args); // TODO: vlaidacja nazwy - sprawdzenie czy już nie występuje // validate if (!$nazwa) throw new Exception("Nie wybrano grupa"); if (!$kontrahenciIds || count($kontrahenciIds) == 0 ) throw new Exception("Proszę wybrać kontrahentów"); $idGroup = DB::getPDO()->insert('BI_audit_ENERGA_PRACOWNICY_GRUPY', [ 'A_RECORD_CREATE_AUTHOR' => User::getLogin(), 'A_RECORD_CREATE_DATE' => 'NOW()', // 'A_STATUS' => 'WAITING', // jeśli trzeba to ustawić 'NAZWA' => $nazwa, ]); // DB::getPDO()->insert('BI_audit_ENERGA_PRACOWNICY_GRUPY_HIST', [ // 'A_RECORD_CREATE_AUTHOR' => User::getLogin(), // 'A_RECORD_CREATE_DATE' => 'NOW()', // 'ID_USERS2' => $idRaport, // // 'A_STATUS' => 'WAITING', // jeśli trzeba to ustawić // 'NAZWA' => $nazwa, // ]); return [ 'msg' => "Utworzona grupę {$idGroup}", 'type' => "success", 'body' => [ 'id' => $idGroup, ] ]; } // Dodanie do grupy filtra pracowników public function addPracownicyToGroupAjaxAction() { // Response::sendTryCatchJson(array($this, 'addPracownicyToGroupAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em Response::sendTryCatchJson(array($this, 'addPracownicyToGroupAjax')); } public function addPracownicyToGroupAjax($args) { $idGroup = V::get('idGroup', 0, $_REQUEST, 'int'); $pracownicyIds = V::get('pracownicyIds', [], $_REQUEST, 'array'); // validate if (!$nazwa) throw new Exception("Nie wybrano grupa"); if (!$pracownicyIds || count($pracownicyIds) == 0 ) throw new Exception("Proszę wybrać pracowników"); // TODO: SPRWADZENIE CZY NIE DODANOU JUZ PRACOWNIKAS // default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY // default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY $group = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'ID_USER', 'NAZWA', ], // 'f_ID_USER' => User::getID() ])->getItem($idGroup); if (!$group) throw new Exception("Grupa nie istnieje"); if (User::getID() != $group['ID_USER']) throw new Exception("Brak uprawnień do grupy"); // $refGrupyToPracownicy = ACL::getRefTable('obiekt główny', 'nazwa pola - powiązane rekordy'); $refGrupyToPracownicy = ACL::getRefTable('default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY', 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY'); foreach ($pracownicyIds as $idPracownik) { DB::getPDO()->insert($refGrupyToPracownicy, ['PRIMARY_KEY' => $idGroup, 'REMOTE_PRIMARY_KEY' => $idPracownik]); } return [ 'msg' => "Powiązano pracowników z grupą {$idGroup}", 'type' => "success", ]; } public function fetchGroupPracownicyAjaxAction() { Response::sendTryCatchJson(array($this, 'fetchGroupPracownicyAjax')); } public function fetchGroupPracownicyAjax() { // TODO: odkomentować jak zostanie dodana tabela default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY /*$group = ACL::getAclByNamespace('default_db/BI_audit_ENERGA_PRACOWNICY_GRUPY/BI_audit_ENERGA_PRACOWNICY_GRUPY')->buildQuery([ 'cols' => [ // TODO:? propertyName = [] 'ID', 'ID_USER', 'NAZWA', ], 'f_ID_USER' => User::getID() ])->getItem($idGroup); if (!$group) throw new Exception("Grupa nie istnieje"); if (User::getID() != $group['ID_USER']) throw new Exception("Brak uprawnień do grupy"); $items = $query->getItems(); $arrayGroupPracownicy = array(); foreach ($items as $key => $value) { $arrayGroupPracownicy[$value['ID']] = $value['NAZWA']; } */ //TODO: USUNAĆ listę grup wpisane na sztywno $arrayGroupPracownicy = array(); $arrayGroupPracownicy[0]["ID"] = 1; $arrayGroupPracownicy[0]["NAZWA"] = "Grupa 1"; $arrayGroupPracownicy[1]["ID"] = 2; $arrayGroupPracownicy[1]["NAZWA"] = "Grupa 2"; $arrayGroupPracownicy[2]["ID"] = 3; $arrayGroupPracownicy[2]["NAZWA"] = "Grupa 3"; $arrayGroupPracownicy[3]["ID"] = 4; $arrayGroupPracownicy[3]["NAZWA"] = "Grupa 4"; $arrayGroupPracownicy[4]["ID"] = 5; $arrayGroupPracownicy[4]["NAZWA"] = "Grupa 5"; return [ 'type' => 'success', 'msg' => 'fetchGroupPracownicyAjax', '__req_args' => $_REQUEST, '__args' => $args, 'body' => [ 'itmesGroupPracownicy' => $arrayGroupPracownicy ] ]; } // link do ackji w php: $saveFormUrl = $this->getLink('saveRaportAjax'); // przekazać link do JavaScript i tam: // window.fetch('{$saveFormUrl}', { ... }).then(...) - dokumentacja: https://github.com/github/fetch public function generateBiAuditRaportAjaxAction() { //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 Response::sendTryCatchJson(array($this, 'generateBiAuditRaportAjax'), $args = 'JSON_FROM_REQUEST_BODY'); //Response::sendTryCatchJson(array($this, 'generateBiAuditRaportAjax')); } public function generateBiAuditRaportAjax($args) { // głebokość powiazan $depthValue = V::get('depthValue', '', $args); if (!$depthValue) { throw new Exception("Nie podano wartości dla głębokości powiązań"); } // Tworzenie relacji Raport do Pracownicy $pracownicyIds = []; // array z nr ID na podstawie wysłanego formularza $pracownicyIds = V::get('pracownicyIds', '', $args); // walidacja id pracowników if (!$pracownicyIds) { throw new Exception("Nie wybrano pracowników"); } $kontrahenciIds = []; // array z nr ID na podstawie wysłanego formularza $kontrahenciIds = V::get('kontrahenciIds', '', $args); // walidacja id kontrahetów if (!$kontrahenciIds) { throw new Exception("Nie wybrano kontrahentów"); } // Tworzenie rekrodu w bazie - Raport - $idRaport = DB::getPDO()->insert('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', [ 'A_RECORD_CREATE_AUTHOR' => User::getLogin(), 'A_RECORD_CREATE_DATE' => 'NOW()', 'A_STATUS' => 'WAITING', // TODO: czy trzeba to ustawić (pytanie do Mariusza) 'FILE_STATUS' => "TO_GENERATE", 'BI_analiza_minDepth' => 1, 'BI_analiza_maxDepth' => $depthValue ]); // Tworzenie relacji Raport do Pracownicy $refPowiazaniaToPracownicy = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY'); foreach ($pracownicyIds as $idPracownik) { DB::getPDO()->insert($refPowiazaniaToPracownicy, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idPracownik]); } // Tworzenie relacji Raport do Kontrahenci - analogicznie jak wyżej $refPowiazaniaToKontrahenci = ACL::getRefTable('default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI'); foreach ($kontrahenciIds as $idKontrahent) { DB::getPDO()->insert($refPowiazaniaToKontrahenci, ['PRIMARY_KEY' => $idRaport, 'REMOTE_PRIMARY_KEY' => $idKontrahent ]); } // ... return [ 'msg' => "Zadanie do wygnerowania raportu zostało zapisane.", 'type' => "success", 'body' => [ 'id' => $idRaport, ] ]; } /** * Widok formularza dodawania pracowników i kontrahentów */ public function defaultViewFormBiAudit($items, $type) { $activeFormSteps = ''; switch($type) { case 'KONTRAHENCI': $activeFormStepsKontrahent = 'complete'; $titleHeader = 'KONTRAHENCI'; $groupFilterList = '
'; $formAddNewData ='
  • IMPORT KONTRAHENCI
  • '; //todo: dodać obsługe doddawania kontrahentow $showButtonNextStep = ''; $pagination_form = '
    '; break; case 'PRACOWNICY': $titleHeader = 'PRACOWNICY'; $groupFilterList = '
    '; $formAddNewData ='
  • IMPORT PRACOWNIKÓW
  • '; //todo: dodać obsługe doddawania pracownikow $showButtonNextStep = 'DODAJ DO ANALIZY'; $pagination_form = '
    '; break; } $view = '
     
    Krok 1
    PRACOWNICY
     
    Krok 2
    KONTRAHENCI
     
    Krok 3
    SZUKANIE POWIĄZAŃ
    głębokość powiązań:

    Wszyscy

    Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym.
    ' . $this->showListDataByType($items, $type) . '
    '. $pagination_form .'
    ' . $showButtonNextStep . '
    '; return $view; } public function showListDataByType($items, $type='PRACOWNICY') { switch ($type) { case 'PRACOWNICY': return $this->showTablePracownicy(); break; case 'KONTRAHENCI': return $this->showTableKontrahenci($items); break; } } }