Bocian.php.view.js 106 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194
  1. var DBG = DBG || 0;
  2. var DBG1 = true;
  3. var CURRENT_DATE = CURRENT_DATE || '';
  4. var STORE_NAME = STORE_NAME || '_bocianRaportStore';
  5. if (!URL_TABLE_POWIAZANIA) throw "Brak URL_TABLE_POWIAZANIA";
  6. if (!BASE_URLS) throw "Brak BASE_URLS"
  7. var RECORD_MORE_FUNCTIONS_OPENED_NODE = null;
  8. if (!FIELD_LIST_PRACOWNICY) throw "Brak FIELD_LIST_PRACOWNICY"
  9. if (!FIELD_LIST_KONTRAHENCI) throw "Brak FIELD_LIST_KONTRAHENCI"
  10. var createReactClass = global.p5VendorJs.createReactClass;
  11. var h = global.p5VendorJs.React.createElement;
  12. var ReactDOM = global.p5VendorJs.ReactDOM;
  13. var Redux = global.p5VendorJs.Redux;
  14. var ReduxThunk = global.p5VendorJs.ReduxThunk;
  15. var createStoreWithThunkMiddleware = Redux.applyMiddleware(ReduxThunk)(Redux.createStore); // TODO: to vendor.js
  16. var swal = window.swal;
  17. var globalRaportStore; // global store with Raport cunters
  18. var P5UI__BocianHeader = createReactClass({
  19. getStateFromStore: function () {
  20. var storeState = this.props.store.getState();
  21. return {
  22. totalOdPracownicy: storeState.totalOdPracownicy,
  23. totalOdPozostale: storeState.totalOdPozostale,
  24. totalDoKontrahenci: storeState.totalDoKontrahenci,
  25. totalDoPozostale: storeState.totalDoPozostale,
  26. };
  27. },
  28. getInitialState: function() {
  29. return this.getStateFromStore();
  30. },
  31. componentDidMount: function () {
  32. this.unsubscribe = this.props.store.subscribe(this.storeUpdated)
  33. },
  34. componentWillUnmount: function () {
  35. this.unsubscribe()
  36. },
  37. storeUpdated: function () {
  38. DBG && console.log('DBG::P5UI__BocianHeader::storeUpdated ', this.getStateFromStore());
  39. this.setState(this.getStateFromStore())
  40. },
  41. addOdPozostale: function (event) {
  42. // window['createPracownikAjax'](event)
  43. window['addPozostaleOdDo'](event)
  44. },
  45. addDoPozostale: function (event) {
  46. // window['createKontrahentAjax'](event)
  47. window['addPozostaleOdDo'](event)
  48. },
  49. clearPozostaleOd: function (event) {
  50. this.props.store.dispatch({ type: 'CLEAR_POZOSTALE_OD' })
  51. },
  52. clearPozostaleDo: function (event) {
  53. this.props.store.dispatch({ type: 'CLEAR_POZOSTALE_DO' })
  54. },
  55. renderClearPozostaleOdBtn: function () {
  56. return h('i', {
  57. title: "Usuń pozostałe",
  58. className: "glyphicon glyphicon-remove",
  59. style: { 'font-size': '14px', 'line-height': '21px', 'margin-left': '3px', 'vertical-align': 'middle', color: "#f00", opacity: "0.5", cursor: "pointer" },
  60. onClick: this.clearPozostaleOd, 'line-height': '20px'
  61. });
  62. },
  63. renderClearPozostaleDoBtn: function () {
  64. return h('i', {
  65. title: "Usuń pozostałe",
  66. className: "glyphicon glyphicon-remove",
  67. style: { 'font-size': '14px', 'line-height': '21px', 'margin-left': '3px', 'vertical-align': 'middle', color: "#f00", opacity: "0.5", cursor: "pointer" },
  68. onClick: this.clearPozostaleDo, 'line-height': '20px'
  69. });
  70. },
  71. render: function () {
  72. DBG && console.log('DBG::P5UI__BocianHeader::render ', { state: this.state });
  73. var totalOd = this.state.totalOdPracownicy + this.state.totalOdPozostale;
  74. var totalDo = this.state.totalDoKontrahenci + this.state.totalDoPozostale;
  75. return h('div', { className: "container-fluid", style: { backgroundColor: "#efefef" } }, [
  76. h('h3', {}, [
  77. h('span', { style: { fontSize: "120%", color: "#d7142d" } }, "|"),
  78. " Tworzenie nowego raportu ",
  79. h('small', {}, [
  80. "(Wybierz elementy do porównania: ",
  81. h('span', { style: { color: "#d7142d" } }, " OD "),
  82. h('i', { className: "glyphicon glyphicon-random", style: { padding: '0 3px', 'font-size': "80%", color: "#d7142d" } }),
  83. h('span', { style: { color: "#d7142d" } }, " DO "),
  84. ")",
  85. ])
  86. ]),
  87. h('div', { style: { fontSize: '16px', fontWeight: "normal", color: "#777" } }, [
  88. "Wybrano:",
  89. h('ul', {}, [
  90. // h('li', { style: { marginTop: "6px" } }, [
  91. // h('div', { className: "btn-group" }, [
  92. // h('button', { type: "button", className: "btn btn-disabled btn-danger bi-btn-disabled-group-label", style: { padding: "6px 12px" } }, [
  93. // " OD ",
  94. // h('span', { className: "badge" }, totalOd),
  95. // " : "
  96. // ]),
  97. // h('button', { type: "button", className: "btn bi-btn-primary" }, [
  98. // " pracownicy ",
  99. // h('span', { className: "badge" }, this.state.totalOdPracownicy),
  100. // ]),
  101. // h('button', { type: "button", className: "btn btn-disabled btn-danger bi-btn-disabled-group-label", style: { 'font-size': "14px", padding: "6px 12px" } }, [
  102. // h('i', { className: "glyphicon glyphicon-plus" }),
  103. // ]),
  104. // h('button', { type: "button", className: "btn bi-btn-primary" }, [
  105. // " pozostałe ",
  106. // h('span', { className: "badge" }, this.state.totalOdPozostale),
  107. // (this.state.totalOdPozostale > 0) ? this.renderClearPozostaleOdBtn() : null,
  108. // ]),
  109. // ]),
  110. // ]),
  111. h('li', { style: { marginTop: "6px" } }, [
  112. h('span', {
  113. style: totalOd > 0 ? { color: "#d7142d" } : {}
  114. }, [
  115. " OD ",
  116. h('span', { className: "badge", style: totalOd > 0 ? { 'background-color': "#d7142d" } : {} }, totalOd),
  117. " : ",
  118. ]),
  119. h('a', { className: "btn btn-link", style: { padding: "6px" }, href: "#PRACOWNICY" }, [ // .bi-btn-primary
  120. " pracownicy ",
  121. h('span', { className: "badge" }, this.state.totalOdPracownicy),
  122. ]),
  123. h('i', { className: "glyphicon glyphicon-plus", style: { 'font-size': "14px", margin: "0 12px" } }),
  124. h('button', { className: "btn btn-link", style: { padding: "6px" }, onClick: this.addOdPozostale }, [ // .bi-btn-primary
  125. " pozostałe ",
  126. h('span', { className: "badge" }, this.state.totalOdPozostale),
  127. ]),
  128. (this.state.totalOdPozostale > 0) ? this.renderClearPozostaleOdBtn() : null,
  129. ]),
  130. h('li', { style: { marginTop: "6px" } }, [
  131. h('span', {
  132. style: totalDo > 0 ? { color: "#d7142d" } : {}
  133. }, [
  134. " OD ",
  135. h('span', { className: "badge", style: totalDo > 0 ? { 'background-color': "#d7142d" } : {} }, totalDo),
  136. " : ",
  137. ]),
  138. h('a', { className: "btn btn-link", style: { padding: "6px" }, href: "#KONTRAHENCI" }, [ // .bi-btn-primary
  139. " kontrahenci ",
  140. h('span', { className: "badge" }, this.state.totalDoKontrahenci),
  141. ]),
  142. h('i', { className: "glyphicon glyphicon-plus", style: { 'font-size': "14px", margin: "0 12px" } }),
  143. h('button', { className: "btn btn-link", style: { padding: "6px" }, onClick: this.addOdPozostale }, [ // .bi-btn-primary
  144. " pozostałe ",
  145. h('span', { className: "badge" }, this.state.totalDoPozostale),
  146. ]),
  147. (this.state.totalDoPozostale > 0) ? this.renderClearPozostaleDoBtn() : null,
  148. ]),
  149. ])
  150. ])
  151. ])
  152. }
  153. })
  154. function getSelectedListLocalStorageKey(from) { // from: ( OD | DO )
  155. switch (from) {
  156. case 'OD': return 'Bocian.biAuditForm.odFeatureKeys';
  157. case 'DO': return 'Bocian.biAuditForm.doFeatureKeys';
  158. default: throw "Not implemented from selected list '" + from + "' - expected 'OD' or 'DO'";
  159. }
  160. }
  161. function getListFromLocalStorage(key) {
  162. return JSON.parse( localStorage.getItem(key) || '[]' );
  163. }
  164. // function saveToSelectedListInLocalStorage(from, featureKey) {
  165. // DBG && console.log("DBG::saveToSelectedListInLocalStorage(from, featureKey)", {from, featureKey}, {added: getSelectedListFromLocalStorage(from).concat(featureKey)});
  166. // localStorage.setItem(getSelectedListLocalStorageKey(from), JSON.stringify(
  167. // getSelectedListFromLocalStorage(from).concat(featureKey)
  168. // ))
  169. // }
  170. // function removeFromSelectedListInLocalStorage(from, featureKey) {
  171. // DBG && console.log("DBG::removeFromSelectedListInLocalStorage(from, featureKey)", {from, featureKey});
  172. // localStorage.setItem(getSelectedListLocalStorageKey(from), JSON.stringify(
  173. // getSelectedListFromLocalStorage(from).filter(function (item) {
  174. // return ( item !== featureKey );
  175. // })
  176. // ))
  177. // }
  178. function bocianRaportStore(state, action) {
  179. var prevState = state;
  180. if (!prevState) {
  181. var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
  182. var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
  183. var pracownicyIds = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
  184. var kontrahenciIds = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  185. prevState = {
  186. totalOdPracownicy: pracownicyIds.length,
  187. totalOdPozostale: pozostaleOd.length,
  188. totalDoKontrahenci: kontrahenciIds.length,
  189. totalDoPozostale: pozostaleDo.length,
  190. pozostaleOd: pozostaleOd,
  191. pozostaleDo: pozostaleDo,
  192. };
  193. DBG && console.log('DBG: bocian store INIT', { prevState, action });
  194. }
  195. DBG && console.log('DBG: bocian store', { prevState, action });
  196. switch (action.type) {
  197. case 'UPDATE': return Object.assign(prevState, {
  198. totalOdPracownicy: action.totalOdPracownicy,
  199. totalDoKontrahenci: action.totalDoKontrahenci,
  200. });
  201. case 'ADD_OD': {
  202. var listPozostaleOd = prevState.pozostaleOd.concat(action.featureKey);
  203. localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify(listPozostaleOd))
  204. return Object.assign(prevState, {
  205. pozostaleOd: listPozostaleOd,
  206. totalOdPozostale: listPozostaleOd.length,
  207. })
  208. }
  209. case 'ADD_DO': {
  210. var listPozostaleDo = prevState.pozostaleDo.concat(action.featureKey);
  211. localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify(listPozostaleDo))
  212. return Object.assign(prevState, {
  213. pozostaleDo: listPozostaleDo,
  214. totalDoPozostale: listPozostaleDo.length,
  215. })
  216. }
  217. case 'RM_OD': {
  218. var featureKey = action.featureKey;
  219. var listPozostaleOd = prevState.pozostaleOd.filter(function (item) {
  220. return ( item !== featureKey );
  221. })
  222. localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify(listPozostaleOd))
  223. return Object.assign(prevState, {
  224. pozostaleOd: listPozostaleOd,
  225. totalOdPozostale: listPozostaleOd.length,
  226. })
  227. }
  228. case 'RM_DO': {
  229. var featureKey = action.featureKey;
  230. var listPozostaleDo = prevState.pozostaleDo.filter(function (item) {
  231. return ( item !== featureKey );
  232. })
  233. localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify(listPozostaleDo))
  234. return Object.assign(prevState, {
  235. pozostaleDo: listPozostaleDo,
  236. totalDoPozostale: listPozostaleDo.length,
  237. })
  238. }
  239. case 'CLEAR_POZOSTALE_OD': {
  240. localStorage.setItem(getSelectedListLocalStorageKey('OD'), JSON.stringify([]))
  241. return Object.assign(prevState, {
  242. pozostaleOd: [],
  243. totalOdPozostale: 0,
  244. })
  245. }
  246. case 'CLEAR_POZOSTALE_DO': {
  247. localStorage.setItem(getSelectedListLocalStorageKey('DO'), JSON.stringify([]))
  248. return Object.assign(prevState, {
  249. pozostaleDo: [],
  250. totalDoPozostale: 0,
  251. })
  252. }
  253. default: return prevState;
  254. }
  255. }
  256. $(window).on('hashchange', function() {
  257. initLocalStorage();
  258. rootChangeForm();
  259. updateTopCounters();
  260. hideMoreRecordFunctionsPopover()
  261. });
  262. /* DATA FOR READ REAPORT */
  263. function urlFetchKontrahenciPowiazania() {
  264. // Documentation: https://github.com/github/fetch
  265. fetch(URL_FETCH_KONTRAHENCI_POWIAZANIA, {
  266. credentials: 'same-origin'
  267. })
  268. .then(function parseJSON(response) {
  269. return response.json()
  270. })
  271. .then(function(data) {
  272. var reaportItemsKontrahenciPowiazani = null;
  273. data.body.items.forEach (function(row) {
  274. reaportItemsKontrahenciPowiazani += '<tr><td><input type="checkbox" name="kontrID[]" value="'+row['ID']+'" /></td>'+
  275. '<td align="right">'+row["ID"]+'</td>';
  276. });
  277. $( "#body-reaport-kontrahenci-powiazani-tree" ).html(reaportItemsKontrahenciPowiazani);
  278. }).catch(function(error) {
  279. if(DBG) console.log('request failed', error)
  280. });
  281. }
  282. /* FORM DATA FOR GENERATAE REAPORT */
  283. /**
  284. * Load data default title reaport in storage
  285. */
  286. function loadCurrentReaportTitleInInput(idInput) {
  287. var reaportTitleValue = getItemLocalStorage("Bocian.biAuditForm.smadReaportTitle");
  288. var currentDate = CURRENT_DATE;
  289. if ( getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle') === null ) {
  290. reaportTitleValue = setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', 'Raport bez tytułu z dnia ' + currentDate);
  291. }
  292. $(idInput).val(function() {
  293. return reaportTitleValue;
  294. });
  295. }
  296. /**
  297. * Update data title reaport in storage from input
  298. */
  299. function updateLocalStorageBiAuditReaportTitle(idInput) {
  300. $(idInput).keyup(function() {
  301. delayUpdate(function(){
  302. var newValue = $(idInput).val();
  303. setItemLocalStorage('Bocian.biAuditForm.smadReaportTitle', newValue);
  304. loadCurrentReaportTitleInInput('.smad-reaport-title-pracownicy');
  305. loadCurrentReaportTitleInInput('.smad-reaport-title-kontrahenci');
  306. }, 1000 );
  307. });
  308. }
  309. /**
  310. * Load data default depth in storage
  311. */
  312. function loadCurrentDepthInInput(idInput) {
  313. var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  314. $(idInput).val(function() {
  315. return depthValue;
  316. });
  317. }
  318. /**
  319. * Update data default depth in storage
  320. */
  321. function updateLocalStorageBiAuditDepth(idInput) {
  322. $(idInput).keyup(function() {
  323. delayUpdate(function(){
  324. var newValue = $(idInput).val();
  325. var responseValue = validateValueDepth(parseInt(newValue));
  326. setItemLocalStorage('Bocian.biAuditForm.depth', responseValue);
  327. loadCurrentDepthInInput('.smad-depth');
  328. loadCurrentDepthInInput('.smad-depth-kontrahenci');
  329. // check depth value
  330. if ( parseInt(newValue) > 6 ) {
  331. // check count praconwicy/kontrahenci
  332. var formItemsPraconwicyKontrahenci = countChoiseItemsPraconwicyKontrahenci();
  333. // disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
  334. if (
  335. (formItemsPraconwicyKontrahenci.totalPracownicy === 0 && formItemsPraconwicyKontrahenci.totalKontrahenci != 0 ) ||
  336. (formItemsPraconwicyKontrahenci.totalPracownicy != 0 && formItemsPraconwicyKontrahenci.totalKontrahenci === 0 )
  337. ) {
  338. p5UI__notifyAjaxCallback({ type: 'error', msg: messageCriticalSearchData });
  339. $('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
  340. if(DBG) console.log('popup i dodanie komunikatu niżej');
  341. } else {
  342. $('.bottom--message-warning-critical-search').text('');
  343. if(DBG) console.log('popup i dodanie wyczysc komunikatu ');
  344. }
  345. }
  346. }, 1000 );
  347. });
  348. }
  349. function validateValueDepth(newValue) {
  350. var value = null;
  351. value = newValue;
  352. if (parseInt(newValue) < 0) {
  353. value = 1;
  354. }
  355. if (parseInt(newValue) > 16) {
  356. value = 16;
  357. }
  358. return value;
  359. }
  360. var delayUpdate = (function() {
  361. var timer = 0;
  362. return function(callback, ms) {
  363. clearTimeout (timer);
  364. timer = setTimeout(callback, ms);
  365. };
  366. })();
  367. /**
  368. * Check count choise pracownicy/kontrahenci
  369. */
  370. function countChoiseItemsPraconwicyKontrahenci() {
  371. var countPracownicy = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
  372. var countKontrahenci = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  373. var formItems = {
  374. 'totalPracownicy': ((countPracownicy) ? Object.keys(countPracownicy).length : 0),
  375. 'totalKontrahenci': ((countKontrahenci) ? Object.keys(countKontrahenci).length : 0)
  376. };
  377. return formItems;
  378. }
  379. /**
  380. * Załadowanie wybranej pozycji w select czy zwracać wyniki tylko z obiektami docelowymi onlyTarget
  381. */
  382. function loadCurrentOnlyTargetsSelect() {
  383. var analizaOnlyTargets = getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets');
  384. $('#smad-select-target').val(analizaOnlyTargets).attr("selected", "selected");
  385. $('#smad-select-target-kontrahenci').val(analizaOnlyTargets).attr("selected", "selected");
  386. }
  387. /**
  388. * Załadowanie do storage informacji czy zwracać wyniki tylko z obiektami docelowymi
  389. */
  390. function updateLocalStorageBiAuditOnlyTargets(idSelect) {
  391. $(idSelect).change(function() {
  392. var newValue = $(idSelect).val();
  393. var responseValue = newValue;
  394. setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', responseValue);
  395. $('#smad-select-target').val(newValue).attr("selected", "selected");
  396. $('#smad-select-target-kontrahenci').val(newValue).attr("selected", "selected");
  397. // load in select selected option
  398. loadCurrentOnlyTargetsSelect();
  399. });
  400. }
  401. function initLocalStorage() {
  402. if (getItemLocalStorage('Bocian.biAuditForm.pracownicyIds') === null) {
  403. setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', []);
  404. }
  405. if (getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds') === null) {
  406. setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', []);
  407. }
  408. setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
  409. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
  410. if (getItemLocalStorage('Bocian.biAuditForm.depth') === null) {
  411. updateLocalStorageBiAuditDepth(6);
  412. }
  413. if (getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle') === null) {
  414. updateLocalStorageBiAuditReaportTitle('Default reaport');
  415. }
  416. if (getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets') === null) {
  417. setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', defaultOnlyTarger);
  418. }
  419. }
  420. /**
  421. * Funkcja pozwala na wyświetlenie okienka importu
  422. */
  423. function showViewUploadFile( event, headerTitle, enumType, showCheckbox, csvFileExample ) {
  424. event.preventDefault();
  425. var enumType = enumType;
  426. if( csvFileExample !== undefined) { // przykład + instrukcja do pobrania
  427. csvFileExample = '<div><a href="'+csvFileExample+'" title="Pobierz przykład" download target="_balnk">Pobierz przykład</a></div>';
  428. }
  429. swal({
  430. title: 'Importuj plik csv',
  431. input: 'file',
  432. html: csvFileExample,
  433. inputAttributes: {
  434. 'accept': 'text/csv',
  435. 'aria-label': 'Upload csv file'
  436. },
  437. confirmButtonText: 'Importuj',
  438. preConfirm: function (file) {
  439. return new Promise(function (resolve, reject) {
  440. if (!file) {
  441. reject("Proszę wybrać plik csv");
  442. return
  443. }
  444. var input = document.querySelector('input[type="file"]');
  445. var data = new FormData()
  446. data.append('file', input.files[0])
  447. data.append('showCheckbox', showCheckbox);
  448. var responseParseFile = parseCsvFile( data, enumType );
  449. resolve('file imported')
  450. })
  451. },
  452. }).then(function (result) {
  453. if(DBG) console.log('result', result);
  454. }).catch(function (e) {
  455. if(DBG) console.log('catch: ', e);
  456. });
  457. }
  458. /**
  459. * Funkcja przekazuje dane z pliku csv do przeparsowania
  460. */
  461. function parseCsvFile( fileData, enumType ) {
  462. event.preventDefault();
  463. if(DBG) console.log( 'parseCsvFile fileData', fileData);
  464. fetch(URL_FORM_DATA_CSV_FILE_AJAX, {
  465. method: 'POST',
  466. credentials: 'same-origin',
  467. body: fileData
  468. })
  469. .then(function(response) {
  470. return response.json()
  471. }).then(function(json) {
  472. swal({
  473. title: 'Dane załadowane z pliku CSV',
  474. html: json.body.view,
  475. width: Math.round(window.innerWidth * 0.9),
  476. allowOutsideClick: false, // TODO: btn Anuluj na dole?
  477. showCloseButton: true,
  478. confirmButtonText: 'Zapisz',
  479. preConfirm: function (dataForm) {
  480. return new Promise(function (resolve, reject) {
  481. if (!dataForm) {
  482. reject("Formularz nie zawiera danych do zapisania");
  483. return
  484. }
  485. // zapisanie danych
  486. var responseSaveData = saveFormCsvFileAjaxAction(enumType);
  487. resolve('data save from form')
  488. })
  489. },
  490. }).then(function (result) {
  491. if(DBG) console.log('result', result)
  492. }).catch(function (e) {
  493. if(DBG) console.log('catch: ', e)
  494. });
  495. }).catch(function(ex) {
  496. if(DBG) console.log('parsing failed', ex);
  497. });
  498. }
  499. /**
  500. * Funkcja zapisuje dane z formularza do wgrania pliku csv
  501. */
  502. function saveFormCsvFileAjaxAction(enumType) {
  503. event.preventDefault();
  504. var formDataFrom = $("#formDataFromCsv").serialize();
  505. formDataFrom = formDataFrom.replace(/%5B/g,"[");
  506. formDataFrom = formDataFrom.replace(/%5D/g,"]");
  507. fetch(URL_SAVE_FORM_CSV_FILE_AJAX, {
  508. method: 'POST',
  509. credentials: 'same-origin',
  510. headers: {
  511. 'Content-Type': 'application/json'
  512. },
  513. body: JSON.stringify({
  514. formData: formDataFrom,
  515. enumType: enumType
  516. })
  517. })
  518. .then(function(response) {
  519. return response.json()
  520. }).then(function(json) {
  521. if(DBG) console.log('parsed json', json);
  522. if (response.type == 'success') {
  523. p5UI__notifyAjaxCallback(response.msg);
  524. }
  525. // return json;
  526. }).catch(function(ex) {
  527. if(DBG) console.log('parsing failed', ex);
  528. });
  529. }
  530. function defaultBIAuditLocalStorage() {
  531. localStorage.removeItem('Bocian.biAuditForm.pracownicyIds');
  532. localStorage.removeItem('Bocian.biAuditForm.kontrahenciIds');
  533. localStorage.removeItem(getSelectedListLocalStorageKey('OD'));
  534. localStorage.removeItem(getSelectedListLocalStorageKey('DO'));
  535. setItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page', 1);
  536. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page', 1);
  537. setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', 0);
  538. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', 0);
  539. setItemLocalStorage('Bocian.biAuditForm.depth', 6);
  540. setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', defaultOnlyTarger);
  541. }
  542. function generateBiAuditRaport(event) {
  543. event.preventDefault();
  544. var idsPracownicy = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
  545. var idsKontrahenci = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  546. var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
  547. var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
  548. var allOdLength = idsPracownicy.length + pozostaleOd.length;
  549. var allDoLength = idsKontrahenci.length + pozostaleDo.length;
  550. var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  551. var smadReaportTitle = getItemLocalStorage('Bocian.biAuditForm.smadReaportTitle');
  552. var analizaOnlyTargets = getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets');
  553. if ( !smadReaportTitle ) {
  554. p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano tytułu raportu' });
  555. return;
  556. }
  557. if ( !depthValue ) {
  558. p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości dla głębokości powiązań' });
  559. return;
  560. }
  561. if ( !analizaOnlyTargets ) {
  562. p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie podano wartości czy zwracać wyniki tylko z obiektami docelowymi' });
  563. return;
  564. }
  565. if ( !allOdLength ) {
  566. p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji OD do analizy (pracownicy lub pozostałe bazy)' });
  567. return;
  568. }
  569. if ( !allOdLength && !allDoLength ) {
  570. p5UI__notifyAjaxCallback({ type: 'error', msg: 'Nie wybrano pozycji do analizy' });
  571. return;
  572. }
  573. // TODO: analizaOnlyTargets = ( 'y' | 'n' ) - allDoLength should depend of analizaOnlyTargets?
  574. // if not choise 'pracownicy' or 'kontrahenci'
  575. if ( !allOdLength || !allDoLength ) {
  576. var messageConfirm = '';
  577. if ( !allDoLength ) {
  578. messageConfirm = 'Nie wybrano podmiotów/kontrahentów! Czas przygotowania raportu może wydłużyć się ze względu na sprawdzenie powiązania ze wszystkimi podmiotami/kontrahentami w systemie. Czy jesteś pewny? ';
  579. }
  580. // show confirm window with message
  581. if (!confirm(messageConfirm)) return;
  582. }
  583. window.fetch(URL_GENERATE_BI_AUDIT_RAPORT_AJAX, {
  584. method: 'POST',
  585. headers: {
  586. 'Content-Type': 'application/json'
  587. },
  588. credentials: 'same-origin',
  589. body: JSON.stringify({
  590. pracownicyIds: idsPracownicy,
  591. kontrahenciIds: idsKontrahenci,
  592. pozostaleOd: pozostaleOd,
  593. pozostaleDo: pozostaleDo,
  594. depthValue: depthValue,
  595. smadReaportTitle: smadReaportTitle,
  596. analizaOnlyTargets: analizaOnlyTargets
  597. })
  598. })
  599. .then(function(response) {
  600. return response.text();
  601. })
  602. .then(function(responseText) {
  603. try {
  604. return JSON.parse(responseText);
  605. } catch (e) {
  606. throw responseText;
  607. }
  608. })
  609. .then(function(result) {
  610. if (result.type == 'success') {
  611. p5UI__notifyAjaxCallback(result);
  612. defaultBIAuditLocalStorage();
  613. updateTopCounters();
  614. $('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
  615. $('#smad-table-KONTRAHENCI form').find(':checkbox').prop('checked', false);
  616. $('#count-selected-item-kontrahenci').text('0');
  617. $('#count-selected-item-pracownicy').text('0');
  618. $('.bottom--message-warning-critical-search').text('');
  619. swal({
  620. title: result.msg,
  621. html: '<a href="' + BASE_URLS + 'index.php?_route=ViewTableAjax&amp;namespace=default_db/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA/BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA" title="przejdź do raportów" >Przejdź do raportów</a>',
  622. allowOutsideClick: false, // TODO: btn Anuluj na dole?
  623. showCloseButton: true,
  624. confirmButtonText: 'OK',
  625. });
  626. window.setTimeout(URL_TABLE_POWIAZANIA, 6000);
  627. resolve(result.msg);
  628. } else {
  629. reject(result.msg);
  630. }
  631. })
  632. .catch(function(error) {
  633. if(DBG) console.log('request failed', error);
  634. });
  635. }
  636. /**
  637. * Dodaj nowego pracownika
  638. */
  639. function createPracownikAjax(event) {
  640. event.preventDefault();
  641. swal({
  642. title: 'Dodaj osobę',
  643. showCancelButton: true,
  644. confirmButtonText: 'Zapisz',
  645. showLoaderOnConfirm: true,
  646. html:
  647. '<div class="form-group">'+
  648. '<input class="form-control required" id="personName" placeholder="Imię" >' +
  649. '<input class="form-control required" id="personSurname" placeholder="Nazwisko">'+
  650. '<input class="form-control required" id="personNip" placeholder="NIP">'+
  651. '<input class="form-control required" id="personPesel" placeholder="PESEL">'+
  652. '<input class="form-control required" id="personRegon" placeholder="REGON">'+
  653. '</div>',
  654. preConfirm: () => {
  655. return new Promise(function (resolve, reject) {
  656. // data from form
  657. var personName = $('#personName').val();
  658. var personSurname = $('#personSurname').val();
  659. var personNip = $('#personNip').val();
  660. var personPesel = $('#personPesel').val();
  661. var personRegon = $('#personRegon').val();
  662. //validate data from input
  663. if (!personName){
  664. reject('Proszę podać imię')
  665. return;
  666. }
  667. if (!personSurname){
  668. reject('Proszę podać nazwisko')
  669. return;
  670. }
  671. window.fetch(URL_CREATE_PRACOWNICY, {
  672. method: 'POST',
  673. header: {
  674. 'contentType': 'applications/json'
  675. },
  676. credentials: 'same-origin',
  677. body: JSON.stringify({
  678. 'personName': personName,
  679. 'personSurname': personSurname,
  680. 'personNip': personNip,
  681. 'personPesel': personPesel,
  682. 'personRegon': personRegon
  683. })
  684. })
  685. .then(function(response) {
  686. return response.text();
  687. })
  688. .then(function(responseText) {
  689. try {
  690. return JSON.parse(responseText);
  691. } catch (e) {
  692. throw responseText;
  693. }
  694. })
  695. .then(function(result) {
  696. if (result.type == 'success') {
  697. p5UI__notifyAjaxCallback(result);
  698. resolve(result.body);
  699. urlFetchPracownicy(1);
  700. }
  701. })
  702. .catch(function(error) {
  703. if(DBG) console.log('request failed', error);
  704. })
  705. })
  706. },
  707. allowOutsideClick: false
  708. }).then(function (createPerson) {
  709. if(DBG) console.log('dodanie osoby: ', createPerson);
  710. });
  711. }
  712. /**
  713. * Dodaj nowego kontrahenta
  714. */
  715. function createKontrahentAjax(event) {
  716. event.preventDefault();
  717. swal({
  718. title: 'Dodaj podmiot/kontrahenta',
  719. showCancelButton: true,
  720. confirmButtonText: 'Zapisz',
  721. showLoaderOnConfirm: true,
  722. html:
  723. '<div class="form-group">'+
  724. '<input class="form-control required" id="companyFullName" placeholder="Pelna nazwa" >' +
  725. '<input class="form-control required" id="companyShortName" placeholder="Skrócona nazwa\">'+
  726. '<input class="form-control required" id="companyNameGroup" placeholder="Nazwa grupy kapitałowej">'+
  727. '<input class="form-control required" id="companyKrs" placeholder="KRS">'+
  728. '<input class="form-control required" id="companyNip" placeholder="NIP">'+
  729. '<input class="form-control required" id="companyPesel" placeholder="PESEL">'+
  730. '<input class="form-control required" id="companyFax" placeholder="FAX">'+
  731. '<input class="form-control required" id="companyTelefon" placeholder="Telefon">'+
  732. '<input class="form-control required" id="companyMail" placeholder="Mail">'+
  733. '<input class="form-control required" id="companyStreet" placeholder="Ulica">'+
  734. '<input class="form-control required" id="companyNumberBuilding" placeholder="Numer budynku">'+
  735. '<input class="form-control required" id="companyNumberLocal" placeholder="Numer mieszkania /lokalu">'+
  736. '<input class="form-control required" id="companyPostCode" placeholder="Kod pocztowy">'+
  737. '<input class="form-control required" id="companyPlace" placeholder="Miejscowosc">'+
  738. '<input class="form-control required" id="companyCountry" placeholder="Kraj">'+
  739. '<input class="form-control required" id="companyTypeCompany" placeholder="Typ kontrahenta">'+
  740. '<input class="form-control required" id="companyTitleDocument" placeholder="Tytul dokumentu">'+
  741. '<input class="form-control required" id="companyDesc" placeholder="uwagi">'+
  742. '</div>',
  743. preConfirm: () => {
  744. return new Promise(function (resolve, reject) {
  745. // data from form
  746. var companyFullName = $('#companyFullName').val();
  747. var companyShortName = $('#companyShortName').val();
  748. var companyNameGroup = $('#companyNameGroup').val();
  749. var companyKrs = $('#companyKrs').val();
  750. var companyNip = $('#companyNip').val();
  751. var companyPesel = $('#companyPesel').val();
  752. var companyFax = $('#companyFax').val();
  753. var companyTelefon = $('#companyTelefon').val();
  754. var companyMail = $('#companyMail').val();
  755. var companyStreet = $('#companyStreet').val();
  756. var companyNumberBuilding = $('#companyNumberBuilding').val();
  757. var companyNumberLocal = $('#companyNumberLocal').val();
  758. var companyPostCode = $('#companyPostCode').val();
  759. var companyPlace = $('#companyPlace').val();
  760. var companyCountry = $('#companyCountry').val();
  761. var companyTypeCompany = $('#companyTypeCompany').val();
  762. var companyTitleDocument = $('#companyTitleDocument').val();
  763. var companyDesc = $('#companyDesc').val();
  764. //validate data from input
  765. if (!companyFullName){
  766. reject('Proszę podać pełną nazwę');
  767. return;
  768. }
  769. window.fetch(URL_CREATE_KONTRAHENCI, {
  770. method: 'POST',
  771. header: {
  772. 'contentType': 'applications/json'
  773. },
  774. credentials: 'same-origin',
  775. body: JSON.stringify({
  776. 'companyFullName': companyFullName,
  777. 'companyShortName': companyShortName,
  778. 'companyNameGroup': companyNameGroup,
  779. 'companyKrs': companyKrs,
  780. 'companyNip': companyNip,
  781. 'companyPesel': companyPesel,
  782. 'companyFax': companyFax,
  783. 'companyTelefon': companyTelefon,
  784. 'companyMail': companyMail,
  785. 'companyStreet': companyStreet,
  786. 'companyNumberBuilding': companyNumberBuilding,
  787. 'companyNumberLocal': companyNumberLocal,
  788. 'companyPostCode': companyPostCode,
  789. 'companyPlace': companyPlace,
  790. 'companyCountry': companyCountry,
  791. 'companyTypeCompany': companyTypeCompany,
  792. 'companyTitleDocument': companyTitleDocument,
  793. 'companyDesc': companyDesc
  794. })
  795. })
  796. .then(function(response) {
  797. return response.text();
  798. })
  799. .then(function(responseText) {
  800. try {
  801. return JSON.parse(responseText);
  802. } catch (e) {
  803. throw responseText;
  804. }
  805. })
  806. .then(function(result) {
  807. if (result.type == 'success') {
  808. p5UI__notifyAjaxCallback(result);
  809. resolve(result.body);
  810. urlFetchKontrahenci(1);
  811. }
  812. })
  813. .catch(function(error) {
  814. if(DBG) console.log('request failed', error);
  815. })
  816. })
  817. },
  818. allowOutsideClick: false
  819. }).then(function (createPerson) {
  820. if(DBG) console.log('dodanie podmiotu: ', createPerson);
  821. });
  822. }
  823. /**
  824. * Popup z opcja przeniesienia pracowników do innej grupy
  825. */
  826. function addPracownikToGroup(event) {
  827. event.preventDefault();
  828. var pracownicyIdsArray = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
  829. if (pracownicyIdsArray === null || !pracownicyIdsArray || !pracownicyIdsArray.length) {
  830. showTextListIdPracownikow = 'nie wybrano osób';
  831. } else {
  832. showTextListIdPracownikow = '' + pracownicyIdsArray.length + ' osób';
  833. }
  834. var arrayGroupOptions = [];
  835. var listGroupStorage = getItemLocalStorage('Bocian.biAuditForm.pracownicy.groups');
  836. // utworzenie tablicy Optionsów grupy
  837. listGroupStorage.map(function(item) {
  838. if (item.ID !== undefined) {
  839. arrayGroupOptions[item.ID] = item.NAZWA;
  840. }
  841. });
  842. swal({
  843. title: 'Dodaj do grupy',
  844. input: 'select',
  845. text: showTextListIdPracownikow,
  846. inputOptions: arrayGroupOptions,
  847. inputPlaceholder: 'Wybierz grupę',
  848. showCancelButton: true,
  849. confirmButtonText: 'Zapisz',
  850. showLoaderOnConfirm: true,
  851. preConfirm: function (idGroup) {
  852. return new Promise(function (resolve, reject) {
  853. if (!idGroup) {
  854. reject('Proszę wybrać nazwę grupy');
  855. return;
  856. }
  857. if (!pracownicyIdsArray || !pracownicyIdsArray.length) {
  858. reject('Wybierz pracowników');
  859. return;
  860. }
  861. window.fetch(URL_ADD_PRACOWNICY_TO_GROUP, {
  862. method: 'POST',
  863. header: { 'contentType': 'applications/json' },
  864. credentials: 'same-origin',
  865. body: JSON.stringify({
  866. 'idGroup': idGroup,
  867. 'pracownicyIds': getItemLocalStorage('Bocian.biAuditForm.pracownicyIds'),
  868. })
  869. })
  870. .then(function(response) {
  871. return response.text();
  872. })
  873. .then(function(responseText) {
  874. try {
  875. return JSON.parse(responseText);
  876. } catch (e) {
  877. throw responseText;
  878. }
  879. })
  880. .then(function(result) {
  881. if (result.type == 'success') {
  882. p5UI__notifyAjaxCallback(result);
  883. resolve(result.msg);
  884. } else {
  885. reject(result.msg);
  886. }
  887. })
  888. .catch(function(error) {
  889. if(DBG) console.warn('request failed', error);
  890. });
  891. })
  892. },
  893. allowOutsideClick: false
  894. }).then(function (value) {
  895. { // remove from selected
  896. setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', []);
  897. updateCountItemCheckedByType('pracownicy');
  898. $('form').find(':checkbox').prop('checked', false);
  899. }
  900. });
  901. }
  902. function addPracownikAllToGroup(event) {
  903. event.preventDefault();
  904. var showTextListIdPracownikow = 'wszystkich pracowników pasujących do kryteriów wyszukiwania';
  905. var arrayGroupOptions = [];
  906. var listGroupStorage = getItemLocalStorage('Bocian.biAuditForm.pracownicy.groups');
  907. // utworzenie tablicy Optionsów grupy
  908. listGroupStorage.map(function(item) {
  909. if (item.ID !== undefined) {
  910. arrayGroupOptions[item.ID] = item.NAZWA;
  911. }
  912. });
  913. swal({
  914. title: 'Dodaj do grupy',
  915. input: 'select',
  916. text: showTextListIdPracownikow,
  917. inputOptions: arrayGroupOptions,
  918. inputPlaceholder: 'Wybierz grupę',
  919. showCancelButton: true,
  920. confirmButtonText: 'Zapisz',
  921. showLoaderOnConfirm: true,
  922. preConfirm: function (idGroup) {
  923. return new Promise(function (resolve, reject) {
  924. if (!idGroup) {
  925. reject('Proszę wybrać nazwę grupy');
  926. return;
  927. }
  928. var filterFields = {}
  929. var frm = document.getElementById('filtersFieldRemoveBtn-PRACOWNICY').form
  930. var fieldNameList = FIELD_LIST_PRACOWNICY
  931. fieldNameList.filter(function (fieldName) {
  932. if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"');
  933. return (frm[fieldName]) ? true : false
  934. }).map(function (fieldName) {
  935. return [ fieldName, frm[fieldName].value ]
  936. }).filter(function (filter) {
  937. return ( filter[1].length > 0 )
  938. }).map(function (filter) {
  939. filterFields[ filter[0] ] = filter[1]
  940. })
  941. var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup');
  942. if (filterIdGroup) filterFields[ 'filterIdGroup' ] = filterIdGroup
  943. window.fetch(URL_ADD_PRACOWNICY_TO_GROUP, {
  944. method: 'POST',
  945. header: {
  946. 'contentType': 'applications/json'
  947. },
  948. credentials: 'same-origin',
  949. body: JSON.stringify({
  950. 'idGroup': idGroup,
  951. 'type': 'filter',
  952. 'filter': filterFields,
  953. })
  954. })
  955. .then(function(response) {
  956. return response.text();
  957. })
  958. .then(function(responseText) {
  959. try {
  960. return JSON.parse(responseText);
  961. } catch (e) {
  962. throw responseText;
  963. }
  964. })
  965. .then(function(result) {
  966. if (result.type == 'success') {
  967. p5UI__notifyAjaxCallback(result);
  968. resolve(result.msg);
  969. } else {
  970. reject(result.msg);
  971. }
  972. })
  973. .catch(function(error) {
  974. if(DBG) console.log('request failed', error);
  975. });
  976. })
  977. },
  978. allowOutsideClick: false
  979. }).then(function (groupPracownicyData) {
  980. //TODO: pIOTRKU CZY TU POWINIENEM COŚ JESZCZE OBSŁUŻYĆ
  981. });
  982. }
  983. /**
  984. * Popup z opcja przeniesienia kontrahentów do innej grupy
  985. */
  986. function addKontrahenciToGroup(event) {
  987. event.preventDefault();
  988. var kontrahenciIdsArray = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  989. if (kontrahenciIdsArray === null || !kontrahenciIdsArray || !kontrahenciIdsArray.length) {
  990. showTextListIdKontrahentow = 'nie wybrano kontrahentów';
  991. } else {
  992. showTextListIdKontrahentow = '' + kontrahenciIdsArray.length + ' podmiotów/kontrahentów';
  993. }
  994. var arrayGroupOptions = [];
  995. var listGroupStorage = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.groups');
  996. // utworzenie tablicy Optionsów grupy
  997. listGroupStorage.map(function(item) {
  998. if (item.ID !== undefined) {
  999. arrayGroupOptions[item.ID] = item.NAZWA;
  1000. }
  1001. });
  1002. swal({
  1003. title: 'Dodaj do grupy',
  1004. input: 'select',
  1005. text: showTextListIdKontrahentow,
  1006. inputOptions: arrayGroupOptions,
  1007. inputPlaceholder: 'Wybierz grupę',
  1008. showCancelButton: true,
  1009. confirmButtonText: 'Zapisz',
  1010. showLoaderOnConfirm: true,
  1011. preConfirm: function (idGroup) {
  1012. return new Promise(function (resolve, reject) {
  1013. if (!idGroup) {
  1014. reject('Proszę wybrać nazwę grupy');
  1015. return;
  1016. }
  1017. if (!kontrahenciIdsArray || !kontrahenciIdsArray.length) {
  1018. reject('Wybierz kontrahentów');
  1019. return;
  1020. }
  1021. window.fetch(URL_ADD_KONTRAHENCI_TO_GROUP, {
  1022. method: 'POST',
  1023. header: { 'contentType': 'applications/json' },
  1024. credentials: 'same-origin',
  1025. body: JSON.stringify({
  1026. 'idGroup': idGroup,
  1027. 'kontrahenciIds': getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds'),
  1028. })
  1029. })
  1030. .then(function(response) {
  1031. return response.text();
  1032. })
  1033. .then(function(responseText) {
  1034. try {
  1035. return JSON.parse(responseText);
  1036. } catch (e) {
  1037. throw responseText;
  1038. }
  1039. })
  1040. .then(function(result) {
  1041. if (result.type == 'success') {
  1042. p5UI__notifyAjaxCallback(result);
  1043. resolve(result.msg);
  1044. } else {
  1045. reject(result.msg);
  1046. }
  1047. })
  1048. .catch(function(error) {
  1049. if(DBG) console.warn('request failed', error);
  1050. });
  1051. })
  1052. },
  1053. allowOutsideClick: false
  1054. }).then(function (value) {
  1055. { // remove from selected
  1056. setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', []);
  1057. updateCountItemCheckedByType('kontrahenci');
  1058. $('form').find(':checkbox').prop('checked', false);
  1059. }
  1060. });
  1061. }
  1062. function addKontrahenciAllToGroup(event) {
  1063. event.preventDefault();
  1064. var kontrahenciIdsArray = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  1065. var showTextListIdKontrahentow = 'wszystkich podmotów/kontrahentów pasujących do kryteriów wyszukiwania';
  1066. var arrayGroupOptions = [];
  1067. var listGroupStorage = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.groups');
  1068. // utworzenie tablicy Optionsów grupy
  1069. listGroupStorage.map(function(item) {
  1070. if (item.ID !== undefined) {
  1071. arrayGroupOptions[item.ID] = item.NAZWA;
  1072. }
  1073. });
  1074. swal({
  1075. title: 'Dodaj do grupy',
  1076. input: 'select',
  1077. text: showTextListIdKontrahentow,
  1078. inputOptions: arrayGroupOptions,
  1079. inputPlaceholder: 'Wybierz grupę',
  1080. showCancelButton: true,
  1081. confirmButtonText: 'Zapisz',
  1082. showLoaderOnConfirm: true,
  1083. preConfirm: function (idGroup) {
  1084. return new Promise(function (resolve, reject) {
  1085. if (!idGroup) {
  1086. reject('Proszę wybrać nazwę grupy');
  1087. return;
  1088. }
  1089. var filterFields = {}
  1090. var frm = document.getElementById('filtersFieldRemoveBtn-KONTRAHENCI').form
  1091. var fieldNameList = FIELD_LIST_KONTRAHENCI
  1092. fieldNameList.filter(function (fieldName) {
  1093. if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"')
  1094. return (frm[fieldName]) ? true : false
  1095. }).map(function (fieldName) {
  1096. return [ fieldName, frm[fieldName].value ]
  1097. }).filter(function (filter) {
  1098. return ( filter[1].length > 0 )
  1099. }).map(function (filter) {
  1100. filterFields[ filter[0] ] = filter[1]
  1101. })
  1102. var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup');
  1103. if (filterIdGroup) filterFields[ 'filterIdGroup' ] = filterIdGroup
  1104. window.fetch(URL_ADD_KONTRAHENCI_TO_GROUP, {
  1105. method: 'POST',
  1106. header: {
  1107. 'contentType': 'applications/json'
  1108. },
  1109. credentials: 'same-origin',
  1110. body: JSON.stringify({
  1111. 'idGroup': idGroup,
  1112. 'type': 'filter',
  1113. 'filter': filterFields,
  1114. })
  1115. })
  1116. .then(function(response) {
  1117. return response.text();
  1118. })
  1119. .then(function(responseText) {
  1120. try {
  1121. return JSON.parse(responseText);
  1122. } catch (e) {
  1123. throw responseText;
  1124. }
  1125. })
  1126. .then(function(result) {
  1127. $('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
  1128. if (result.type == 'success') {
  1129. p5UI__notifyAjaxCallback(result);
  1130. resolve(result.msg);
  1131. } else {
  1132. reject(result.msg);
  1133. }
  1134. })
  1135. .catch(function(error) {
  1136. if(DBG) console.log('request failed', error);
  1137. });
  1138. })
  1139. },
  1140. allowOutsideClick: false
  1141. });
  1142. }
  1143. function removeKontrahenciFromGroup(event) {
  1144. event.preventDefault;
  1145. var kontrahenciIdsArray = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  1146. if (kontrahenciIdsArray === null || !kontrahenciIdsArray || !kontrahenciIdsArray.length) {
  1147. showTextListIdKontrahentow = 'nie wybrano kontrahentów';
  1148. } else {
  1149. showTextListIdKontrahentow = '' + kontrahenciIdsArray.length + ' podmiotów/kontrahentów';
  1150. }
  1151. var groupId = getItemLocalStorage("Bocian.biAuditForm.kontrahenci.filterIdGroup");
  1152. var removeTitle = "Czy chcesz usunąć z "
  1153. if (groupId === "0") {
  1154. removeTitle += "systemu";
  1155. } else {
  1156. var arrayGroupOptions = [];
  1157. var listGroupStorage = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.groups');
  1158. // utworzenie tablicy Optionsów grupy
  1159. listGroupStorage.map(function(item) {
  1160. if (item.ID !== undefined) {
  1161. arrayGroupOptions[item.ID] = item.NAZWA;
  1162. }
  1163. });
  1164. removeTitle += "grupy ";
  1165. removeTitle += arrayGroupOptions[groupId];
  1166. }
  1167. swal({
  1168. title: removeTitle,
  1169. text: showTextListIdKontrahentow,
  1170. showConfirmButton: true,
  1171. showCancelButton: true,
  1172. confirmButtonText: 'Usuń',
  1173. cancelButtonText: 'Anuluj',
  1174. showLoaderOnConfirm: true,
  1175. preConfirm: function () {
  1176. return new Promise(function (resolve, reject) {
  1177. if (!kontrahenciIdsArray || !kontrahenciIdsArray.length) {
  1178. reject('Wybierz kontrahentów');
  1179. return;
  1180. }
  1181. window.fetch(URL_REMOVE_KONTRAHENCI_FROM_GROUP, {
  1182. method: 'POST',
  1183. header: { 'contentType': 'applications/json' },
  1184. credentials: 'same-origin',
  1185. body: JSON.stringify({
  1186. 'idGroup': getItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup'),
  1187. 'kontrahenciIds': getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds'),
  1188. })
  1189. })
  1190. .then(function(response) {
  1191. return response.text();
  1192. })
  1193. .then(function(responseText) {
  1194. try {
  1195. return JSON.parse(responseText);
  1196. } catch (e) {
  1197. throw responseText;
  1198. }
  1199. })
  1200. .then(function(result) {
  1201. result
  1202. if (result.type == 'success') {
  1203. p5UI__notifyAjaxCallback(result);
  1204. updateTopCounters();
  1205. $('#smad-table-KONTRAHENCI form').find(':checkbox').prop('checked', false);
  1206. resolve(result.msg);
  1207. } else {
  1208. reject(result.msg);
  1209. }
  1210. })
  1211. })
  1212. },
  1213. allowOutsideClick: false
  1214. }).then((result) => {
  1215. if (!result) return;
  1216. if (result.dismiss) return;
  1217. if (!result.value) return;
  1218. { // remove from selected
  1219. setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', []);
  1220. updateCountItemCheckedByType('kontrahenci');
  1221. $('#smad-table-KONTRAHENCI form').find(':checkbox').prop('checked', false);
  1222. }
  1223. urlFetchKontrahenci(1);
  1224. });
  1225. }
  1226. function removePracownikFromGroup(event){
  1227. event.preventDefault;
  1228. var pracownicyIdsArray = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
  1229. if (pracownicyIdsArray === null || !pracownicyIdsArray || !pracownicyIdsArray.length) {
  1230. showTextListIdPracownikow = 'nie wybrano osób';
  1231. } else {
  1232. showTextListIdPracownikow = '' + pracownicyIdsArray.length + ' osób';
  1233. }
  1234. var groupId = getItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup');
  1235. var removeTitle = "Czy chcesz usunąć z "
  1236. if (!groupId) {
  1237. removeTitle += "systemu";
  1238. } else {
  1239. var arrayGroupOptions = [];
  1240. var listGroupStorage = getItemLocalStorage('Bocian.biAuditForm.pracownicy.groups');
  1241. // utworzenie tablicy Optionsów grupy
  1242. listGroupStorage.map(function(item) {
  1243. if (item.ID !== undefined) {
  1244. arrayGroupOptions[item.ID] = item.NAZWA;
  1245. }
  1246. });
  1247. removeTitle += "grupy ";
  1248. removeTitle += arrayGroupOptions[groupId];
  1249. }
  1250. swal({
  1251. title: removeTitle,
  1252. text: showTextListIdPracownikow,
  1253. showConfirmButton: true,
  1254. showCancelButton: true,
  1255. confirmButtonText: 'Usuń',
  1256. cancelButtonText: 'Anuluj',
  1257. showLoaderOnConfirm: true,
  1258. preConfirm: function () {
  1259. return new Promise(function (resolve, reject) {
  1260. if (!pracownicyIdsArray || !pracownicyIdsArray.length) {
  1261. reject('Wybierz osoby');
  1262. return;
  1263. }
  1264. window.fetch(URL_REMOVE_PRACOWNICY_FROM_GROUP, {
  1265. method: 'POST',
  1266. header: { 'contentType': 'applications/json' },
  1267. credentials: 'same-origin',
  1268. body: JSON.stringify({
  1269. 'idGroup': getItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup'),
  1270. 'pracownicyIds': getItemLocalStorage('Bocian.biAuditForm.pracownicyIds'),
  1271. })
  1272. })
  1273. .then(function(response) {
  1274. return response.text();
  1275. })
  1276. .then(function(responseText) {
  1277. try {
  1278. return JSON.parse(responseText);
  1279. } catch (e) {
  1280. throw responseText;
  1281. }
  1282. })
  1283. .then(function(result) {
  1284. if (result.type == 'success') {
  1285. p5UI__notifyAjaxCallback(result);
  1286. updateTopCounters();
  1287. $('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
  1288. resolve(result.msg);
  1289. } else {
  1290. reject(result.msg);
  1291. }
  1292. })
  1293. })
  1294. },
  1295. allowOutsideClick: false
  1296. }).then((result) => {
  1297. if (!result) return;
  1298. if (result.dismiss) return;
  1299. if (!result.value) return;
  1300. { // remove from selected
  1301. setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', []);
  1302. updateCountItemCheckedByType('pracownicy');
  1303. $('#smad-table-PRACOWNICY form').find(':checkbox').prop('checked', false);
  1304. }
  1305. urlFetchPracownicy(1);
  1306. });
  1307. }
  1308. function createGroupKontrahenci(event) {
  1309. event.preventDefault();
  1310. swal({
  1311. title: 'Utwórz grupę',
  1312. input: 'text',
  1313. showCancelButton: true,
  1314. confirmButtonText: 'Zapisz',
  1315. showLoaderOnConfirm: true,
  1316. preConfirm: function (NAZWA) {
  1317. return new Promise(function (resolve, reject) {
  1318. if (!NAZWA) {
  1319. reject('Proszę podać nazwę grupy');
  1320. return;
  1321. }
  1322. window.fetch(URL_CREATE_PRACOWNICY_GROUP, {
  1323. method: 'POST',
  1324. header: { 'contentType': 'applications/json' },
  1325. credentials: 'same-origin',
  1326. body: JSON.stringify({
  1327. 'NAZWA': NAZWA
  1328. })
  1329. })
  1330. .then(function(response) {
  1331. return response.text();
  1332. })
  1333. .then(function(responseText) {
  1334. try {
  1335. return JSON.parse(responseText);
  1336. } catch (e) {
  1337. throw responseText;
  1338. }
  1339. })
  1340. .then(function(result) {
  1341. if (result.type == 'success') {
  1342. p5UI__notifyAjaxCallback(result);
  1343. resolve(result.body);
  1344. } else {
  1345. reject("Proszę podać inną nazwę grupy");
  1346. }
  1347. })
  1348. .catch(function(error) {
  1349. if(DBG) console.log('request failed', error);
  1350. })
  1351. })
  1352. },
  1353. allowOutsideClick: false
  1354. }).then(function (result) {
  1355. if (!result) return;
  1356. if (result.dismiss) return;
  1357. if (!result.value) return;
  1358. // NOTE: swal has input, so resolver object from preConfirm is in { value: resolvedObject }
  1359. var addedGroup = result.value;
  1360. if (addedGroup.id && addedGroup.nazwa) {
  1361. $('#group-kontrahenci').append('<button class="btn btn-default" title="'+addedGroup['nazwa']+'" data-group-filter="'+addedGroup['id']+'">'+addedGroup['nazwa']+'</button>');
  1362. { // add group to local storage
  1363. setItemLocalStorage(
  1364. 'Bocian.biAuditForm.kontrahenci.groups',
  1365. [].concat(
  1366. getItemLocalStorage('Bocian.biAuditForm.kontrahenci.groups') || [],
  1367. [ { 'ID': addedGroup.id, 'NAZWA': addedGroup.nazwa } ]
  1368. )
  1369. );
  1370. }
  1371. }
  1372. //TODO: aktualizacja fitrów na widoku -> SPrawdzić co dostaniemy w odpowiedzi po dodaniu filtra grupy
  1373. });
  1374. }
  1375. function createGroupPracownicy(event) {
  1376. event.preventDefault();
  1377. swal({
  1378. title: 'Utwórz grupę',
  1379. input: 'text',
  1380. showCancelButton: true,
  1381. confirmButtonText: 'Zapisz',
  1382. showLoaderOnConfirm: true,
  1383. preConfirm: function (NAZWA) {
  1384. return new Promise(function (resolve, reject) {
  1385. if (!NAZWA) {
  1386. reject('Proszę podać nazwę grupy');
  1387. return;
  1388. }
  1389. window.fetch(URL_CREATE_PRACOWNICY_GROUP, {
  1390. method: 'POST',
  1391. header: { 'contentType': 'applications/json' },
  1392. credentials: 'same-origin',
  1393. body: JSON.stringify({
  1394. 'NAZWA': NAZWA
  1395. })
  1396. })
  1397. .then(function(response) {
  1398. return response.text();
  1399. })
  1400. .then(function(responseText) {
  1401. try {
  1402. return JSON.parse(responseText);
  1403. } catch (e) {
  1404. throw responseText;
  1405. }
  1406. })
  1407. .then(function(result) {
  1408. console.warn('DBG group added? result', result)
  1409. if (result.type == 'success') {
  1410. p5UI__notifyAjaxCallback(result);
  1411. resolve(result.body);
  1412. } else {
  1413. reject("Proszę podać inną nazwę grupy");
  1414. }
  1415. })
  1416. .catch(function(error) {
  1417. if(DBG) console.log('request failed', error);
  1418. })
  1419. })
  1420. },
  1421. allowOutsideClick: false
  1422. }).then(function (result) {
  1423. if (!result) return;
  1424. if (result.dismiss) return;
  1425. if (!result.value) return;
  1426. // NOTE: swal has input, so resolver object from preConfirm is in { value: resolvedObject }
  1427. var addedGroup = result.value;
  1428. if (addedGroup.id && addedGroup.nazwa) {
  1429. $('#group-pracownicy').append('<button class="btn btn-default" title="'+addedGroup['nazwa']+'" data-group-filter="'+addedGroup['id']+'">'+addedGroup['nazwa']+'</button>');
  1430. { // add group to local storage
  1431. setItemLocalStorage(
  1432. 'Bocian.biAuditForm.pracownicy.groups',
  1433. [].concat(
  1434. getItemLocalStorage('Bocian.biAuditForm.pracownicy.groups') || [],
  1435. [ { 'ID': addedGroup.id, 'NAZWA': addedGroup.nazwa } ]
  1436. )
  1437. );
  1438. }
  1439. }
  1440. //TODO: aktualizacja fitrów na widoku -> SPrawdzić co dostaniemy w odpowiedzi po dodaniu filtra grupy
  1441. });
  1442. }
  1443. /**
  1444. * Function for load view Form pracownicy/kontrahenci
  1445. */
  1446. function rootChangeForm() {
  1447. //todo: do przeniesienia
  1448. urlFetchKontrahenciPowiazania();
  1449. var valueUrl = global.location.hash;
  1450. switch (valueUrl) {
  1451. case '#KONTRAHENCI':
  1452. $( ".container-bi_audit_form_kontrahenci_raport" ).html( VIEW_KONTRAHENCI );
  1453. urlFetchKontrahenci(1);
  1454. fetchGroupKontrahenci();
  1455. $( ".container-bi_audit_form_pracownicy_raport" ).hide();
  1456. $( ".container-bi_audit_form_kontrahenci_raport" ).show();
  1457. $(".container-bi-audit_form_operacyjna_baza_zgloszen").hide();
  1458. //parseGraph();
  1459. break;
  1460. case '#PRACOWNICY':
  1461. $( ".container-bi_audit_form_pracownicy_raport" ).html( VIEW_PRACOWNICY );
  1462. urlFetchPracownicy(1);
  1463. fetchGroupPracownicy();
  1464. $( ".container-bi_audit_form_kontrahenci_raport" ).hide();
  1465. $( ".container-bi_audit_form_pracownicy_raport" ).show();
  1466. $(".container-bi-audit_form_operacyjna_baza_zgloszen").hide();
  1467. break;
  1468. case '#OPERACYJNA_BAZA_ZGLOSZEN':
  1469. $( ".container-bi_audit_form_operacyjna_baza_zgloszen" ).html( OPERACYJNA_BAZA_ZGLOSZEN );
  1470. // urlFetchPracownicy(1);
  1471. // fetchGroupPracownicy();
  1472. $( ".container-bi_audit_form_kontrahenci_raport" ).hide();
  1473. $( ".container-bi_audit_form_pracownicy_raport" ).hide();
  1474. $(".container-bi-audit_form_operacyjna_baza_zgloszen").show();
  1475. break;
  1476. // case '#REAPORT':
  1477. // $( ".container-bi_audit_form_raport_data" ).html( VIEW_TREE_REAPORT );
  1478. // urlFetchKontrahenciPowiazania();
  1479. // $( ".container-bi_audit_form_kontrahenci_raport" ).hide();
  1480. // $( ".container-bi_audit_form_pracownicy_raport" ).hide();
  1481. // $( ".container-bi_audit_form_raport_data" ).show();
  1482. // break;
  1483. default:
  1484. $( ".container-bi_audit_form_pracownicy_raport" ).html( VIEW_PRACOWNICY );
  1485. urlFetchPracownicy(1);
  1486. fetchGroupPracownicy();
  1487. $( ".container-bi_audit_form_kontrahenci_raport" ).hide();
  1488. $( ".container-training" ).hide();
  1489. $( ".container-about" ).hide();
  1490. $( ".container-bi_audit_form_pracownicy_raport" ).show();
  1491. break;
  1492. }
  1493. // pobranie defaultowego tytułu dla generowanego raportu
  1494. loadCurrentReaportTitleInInput('.smad-reaport-title-pracownicy');
  1495. loadCurrentReaportTitleInInput('.smad-reaport-title-kontrahenci');
  1496. // aktualizacja inputów defaultowego tytułu dla generowanego raportu
  1497. updateLocalStorageBiAuditReaportTitle('.smad-reaport-title-pracownicy');
  1498. updateLocalStorageBiAuditReaportTitle('.smad-reaport-title-kontrahenci');
  1499. //aktualizacja inputa głebokości powiazan
  1500. loadCurrentDepthInInput('.smad-depth');
  1501. loadCurrentDepthInInput('.smad-depth-kontrahenci');
  1502. updateLocalStorageBiAuditDepth('.smad-depth');
  1503. updateLocalStorageBiAuditDepth('.smad-depth-kontrahenci');
  1504. // aktualizacja select option czy zwracać wyniki tylko z obiektami docelowymi
  1505. updateLocalStorageBiAuditOnlyTargets('#smad-select-target');
  1506. updateLocalStorageBiAuditOnlyTargets('#smad-select-target-kontrahenci');
  1507. // load in select selected option BI_analiza_onlyTargets
  1508. loadCurrentOnlyTargetsSelect();
  1509. }
  1510. function getAddressData(objectValue) {
  1511. var objectValue = objectValue || [];
  1512. var listData = '';
  1513. if (!objectValue) {
  1514. return true;
  1515. }
  1516. objectValue.forEach (function(item) {
  1517. if (item['kodPocztowy']) { listData += '<div>kod pocztowy: ' + item['kodPocztowy'] + '<div>'; }
  1518. if (item['miejscowosc']) { listData += '<div>miejscowość: ' + item['miejscowosc'] + '<div>'; }
  1519. if (item['nrBudynku']) { listData += '<div>nr budynku: ' + item['nrBudynku'] + '<div>'; }
  1520. if (item['nrLokalu']) { listData += '<div>nr lokalu: ' + item['nrLokalu'] + '<div>'; }
  1521. if (item['typAdresu']) { listData += '<div>typ adresu: ' + item['typAdresu'] + '<div>'; }
  1522. if (item['ulica']) { listData += '<div>ulica: ' + item['ulica'] + '<div>'; }
  1523. listData += '<div>------<div>';
  1524. });
  1525. return listData;
  1526. }
  1527. /**
  1528. * Get name name group
  1529. */
  1530. function getNameGroupById(store, filterIdGroup) {
  1531. var NAZWA = '';
  1532. if (!store || filterIdGroup === 0 ) {
  1533. NAZWA = 'Wszyscy';
  1534. } else {
  1535. $(store).each(function() {
  1536. if ( parseInt(filterIdGroup) === parseInt(this.ID) ) {
  1537. NAZWA = this.NAZWA;
  1538. }
  1539. });
  1540. }
  1541. return NAZWA;
  1542. }
  1543. function urlFetchKontrahenci(page) {
  1544. hideMoreRecordFunctionsPopover()
  1545. var page = page || getItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page');
  1546. selectPage('KONTRAHENCI', page);
  1547. if ( page === 1) {
  1548. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page', 1);
  1549. }
  1550. var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup');
  1551. var frm = document.getElementById('filtersFieldRemoveBtn-KONTRAHENCI').form
  1552. var fieldNameList = FIELD_LIST_KONTRAHENCI
  1553. var filterFields = fieldNameList.map(function (fieldName) {
  1554. return [ fieldName, frm[fieldName].value ]
  1555. }).filter(function (filter) {
  1556. return ( filter[1].length > 0 )
  1557. }).map(function (filter) {
  1558. return '' + filter[0] + '=' + filter[1]
  1559. }).join('&')
  1560. filterFields = (filterFields.length > 0) ? '&' + filterFields : ''
  1561. fetch(URL_FETCH_KONTRAHENCI + '&page=' + page + '&filterIdGroup=' + filterIdGroup + filterFields, {
  1562. credentials: 'same-origin'
  1563. })
  1564. .then(function parseJSON(response) {
  1565. return response.json()
  1566. var filterIdGroup = filterIdGroup || getItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup');
  1567. })
  1568. .then(function(data) {
  1569. var listItemsKontrahenci = null;
  1570. data.body.items.forEach (function(row) {
  1571. listItemsKontrahenci += '<tr><td style="white-space:nowrap">' +
  1572. '<input style="vertical-align:top" type="checkbox" name="kontrID[]" value="'+row['ID']+'" />' +
  1573. '<i onClick="kontrahenciLoadMoreRecordFunctions(event, this, '+row['ID']+')" style="margin-left:6px; cursor:pointer; color:#333" class="glyphicon glyphicon-menu-hamburger" title="Więcej funkcji dla rekordu nr ' + row['ID'] + '"></i>' +
  1574. '</td>' +
  1575. '<td align="right">'+row["ID"]+'</td>'+
  1576. '<td align="right">' + ( row["Nazwa_grupy_kapitalowej"] || '' ) + '</td>' +
  1577. '<td align="right">' + ( row["Pelna_nazwa_kontrahenta"] || '' ) + '</td>' +
  1578. '<td align="right">' + ( row["Numer_kontrahenta"] || '' ) + '</td>' +
  1579. '<td align="right">' + ( row["Skrocona_Nazwa_Kontrahenta"] || '' ) + '</td>' +
  1580. '<td align="right">' + ( row["Typ_kontrahenta"] || '' ) + '</td>' +
  1581. '<td align="right">' + ( row["NIP"] || '' ) + '</td>' +
  1582. '<td align="right">' + ( row["KRS"] || '' ) + '</td>' +
  1583. '<td align="right">' + ( row["REGON"] || '' ) + '</td>' +
  1584. '<td align="right">' + ( row["PESEL"] || '' ) + '</td>' +
  1585. '<td align="right">' + ( row["Forma_prawna_dzialalnosci"] || '' ) + '</td>' +
  1586. '<td align="right">' + ( row["Ulica"] || '' ) + '</td>' +
  1587. '<td align="right">' + ( row["Numer_budynku"] || '' ) + '</td>' +
  1588. '<td align="right">' + ( row["Numer_mieszkania_lokalu"] || '' ) + '</td>' +
  1589. '<td align="right">' + ( row["Miejscowosc"] || '' ) + '</td>' +
  1590. '<td align="right">' + ( row["Kod_pocztowy"] || '' ) + '</td>' +
  1591. '<td align="right">' + ( row["Kraj"] || '' ) + '</td>' +
  1592. '<td align="right">' + ( row["Telefon"] || '' ) + '</td>' +
  1593. '<td align="right">' + ( row["Fax"] || '' ) + '</td>' +
  1594. '<td align="right">' + ( row["Mail"] || '' ) + '</td>' +
  1595. '<td align="right">' + ( row["A_ADM_COMPANY"] || '' ) + '</td>' +
  1596. '<td align="right">' + ( row["A_CLASSIFIED"] || '' ) + '</td>' +
  1597. '<td align="right">' + ( row["Dodano"] || '' ) + '</td>' +
  1598. '<td align="right">' + ( row["Podmiot_dominujacy"] || '' ) + '</td>' +
  1599. '<td align="right">' + ( row["Tytul_dokumentu"] || '' ) + '</td>' +
  1600. '<td align="right">' + ( row["ownCompany"] || '' ) + '</td>' +
  1601. '<td align="right">' + ( row["uwagi"] || '' ) + '</td></tr>';
  1602. });
  1603. if (data.body.pagination !== undefined) {
  1604. Pagination.Init(document.getElementById('pagination-kontrahenci'), {
  1605. url: BASE_URLS+'index.php?_route=UrlAction_Bocian#KONTRAHENCI',
  1606. id_pagination: 'pagination-kontrahenci',
  1607. type: 'KONTRAHENCI',
  1608. limit: data.body.pagination.limit,
  1609. total_items: data.body.pagination.total_items, // pages size
  1610. size: data.body.pagination.size, // pages size
  1611. page: page, // selected page
  1612. step: 1 // pages before and after current
  1613. });
  1614. var paginationShowNextCount = 1;
  1615. if ( parseInt(data.body.pagination.current) !== 1) {
  1616. paginationShowNextCount = parseInt(data.body.pagination.limit) * (parseInt(data.body.pagination.current) - 1 ) + 1;
  1617. }
  1618. $('#paginationShowNextCount-KONTRAHENCI').text(paginationShowNextCount);
  1619. $('#smad-filter-desc-kontrahenci').text(data.body.pagination.total_items);
  1620. if (data.body.pagination.total_items > 0) {
  1621. var btnAddAll = $('<button class="btn btn-primary" style="padding:1px 5px; margin-left:12px">DODAJ WSZYSTKIE DO ANALIZY</button>');
  1622. btnAddAll.on('click', { type: 'kontrahenci', pagination: data.body.pagination }, addAllMatchesToReport);
  1623. var btnAddByReport = $('<button class="btn btn-primary" style="padding:1px 5px; margin-left:12px">DODAJ DO ANALIZY WG RAPORTU</button>');
  1624. btnAddByReport.on('click', { type: 'kontrahenci', pagination: data.body.pagination }, addToReportByPreviousReport);
  1625. $('#smad-filter-desc-kontrahenci').append(btnAddAll);
  1626. $('#smad-filter-desc-kontrahenci').append(btnAddByReport);
  1627. }
  1628. }
  1629. var groupSelectData = getNameGroupById(getItemLocalStorage('Bocian.biAuditForm.kontrahenci.groups'), filterIdGroup);
  1630. $('#smad-filter-head-title-kontrahenci').text(groupSelectData);
  1631. if(DBG) console.log('kontrahenci groupSelectData: ', groupSelectData);
  1632. $( "#body-kontrahenci" ).html(listItemsKontrahenci);
  1633. checkAll('KONTRAHENCI');
  1634. catchEventCheckbox('KONTRAHENCI');
  1635. checkedChoiseItems('KONTRAHENCI', getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds') );
  1636. // $( ".container-bi_audit_raport" ).append( data.body.view );
  1637. if(DBG) console.log('request succeeded with JSON responseKontrahenci', data)
  1638. updateTopCounters();
  1639. }).catch(function(error) {
  1640. if(DBG) console.log('request failed', error);
  1641. })
  1642. }
  1643. function urlFetchPracownicy(page) {
  1644. hideMoreRecordFunctionsPopover()
  1645. var page = page || getItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page');
  1646. if ( page === 1) {
  1647. setItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page', 1);
  1648. }
  1649. var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup');
  1650. selectPage('PRACOWNICY', page);
  1651. var frm = document.getElementById('filtersFieldRemoveBtn-PRACOWNICY').form
  1652. var fieldNameList = FIELD_LIST_PRACOWNICY
  1653. var filterFields = fieldNameList.filter(function (fieldName) {
  1654. if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"')
  1655. return (frm[fieldName]) ? true : false
  1656. }).map(function (fieldName) {
  1657. return [ fieldName, frm[fieldName].value ]
  1658. }).filter(function (filter) {
  1659. return ( filter[1].length > 0 )
  1660. }).map(function (filter) {
  1661. return '' + filter[0] + '=' + filter[1]
  1662. }).join('&')
  1663. filterFields = (filterFields.length > 0) ? '&' + filterFields : ''
  1664. var paginationLimit = 20;
  1665. /*p5WFS_GetFeature('default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
  1666. Object.assign({
  1667. sortBy: 'ID+D',
  1668. maxFeatures: paginationLimit,
  1669. startIndex: (page - 1) * paginationLimit,
  1670. // TODO: backRefNS, backRefPK, backRefField - TODO: from groups
  1671. // resolve: 'all',
  1672. // resolveDepth: 2
  1673. 'ogc:Filter': '<wfs:Query>' + '\n' + [
  1674. '*',
  1675. 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy/*',
  1676. [
  1677. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
  1678. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row',
  1679. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_row_object',
  1680. 'default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI:BI_audit_ENERGA_RUM_KONTRAHENCI'
  1681. ].join('/')
  1682. ].map(function (fieldName) {
  1683. return '<wfs:PropertyName>' + fieldName + '</wfs:PropertyName>';
  1684. }).join('\n') + '\n' + '</wfs:Query>'
  1685. }, (filterIdGroup > 0)
  1686. ? {
  1687. backRefNS: 'default_db/BI_audit_ENERGA_PRACOWNICY_group/BI_audit_ENERGA_PRACOWNICY_group',
  1688. backRefPK: filterIdGroup,
  1689. backRefField: 'default_db__x3A__BI_audit_ENERGA_PRACOWNICY:BI_audit_ENERGA_PRACOWNICY',
  1690. }
  1691. : {}
  1692. )
  1693. ).then(function (items) {
  1694. if(DBG)console.log('p5WFS_GetFeature: items: ', items);
  1695. }).catch(function (err) {
  1696. if(DBG)console.log('p5WFS_GetFeature: err: ', err);
  1697. })*/
  1698. fetch(URL_FETCH_PRACOWNICY + '&page=' + page + '&filterIdGroup=' + filterIdGroup + filterFields, {
  1699. credentials: 'same-origin'
  1700. })
  1701. .then(function parseJSON(response) {
  1702. return response.json()
  1703. })
  1704. .then(function(data) {
  1705. var addresPerson = '';
  1706. var listItemsPracownik = null;
  1707. if(DBG) console.log('urlFetchPracownicy', data.body.items);
  1708. data.body.items.forEach (function(row) {
  1709. if (row["default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy"]) {
  1710. addresPerson = getAddressData(row["default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy"]);
  1711. }
  1712. listItemsPracownik += '<tr><td style="white-space:nowrap">' +
  1713. '<input style="vertical-align:top" type="checkbox" name="prID[]" value="'+row['ID']+'" />' +
  1714. '<i onClick="pracownicyLoadMoreRecordFunctions(event, this, '+row['ID']+')" style="margin-left:6px; cursor:pointer; color:#333" class="glyphicon glyphicon-menu-hamburger" title="Więcej funkcji dla rekordu nr ' + row['ID'] + '"></i>' +
  1715. '</td>' +
  1716. '<td align="right">'+row["ID"]+'</td>' +
  1717. '<td align="right">' + ( row["imiona"] || '' ) + '</td>' +
  1718. '<td align="right">' + ( row["nazwisko"] || '' ) + '</td>' +
  1719. '<td align="right">' + ( row["nip"] || '' ) + '</td>' +
  1720. '<td align="right">' + ( row["pesel"] || '' ) + '</td>' +
  1721. '<td align="right">' + ( row["regon"] || '' ) + '</td>' +
  1722. '<td align="right">' + ( row["source"] || '' ) + '</td>' +
  1723. '<td align="right">' + ( row["jednostka_organizacyjna"] || '' ) + '</td>' +
  1724. '<td align="right">' + ( row["A_STATUS"] || '' ) + '</td>' +
  1725. '<td align="right">' + ( row["A_STATUS_INFO"] || '' ) + '</td>' +
  1726. '<td align="right">' + ( row["L_APPOITMENT_USER"] || '' ) + '</td>' +
  1727. '<td align="right">'+ addresPerson +'</td></tr>';
  1728. });
  1729. if (data.body.pagination.size) {
  1730. Pagination.Init(document.getElementById('pagination-pracownicy'), {
  1731. url: BASE_URLS+'index.php?_route=UrlAction_Bocian#PRACOWNICY',
  1732. id_pagination: 'pagination-pracownicy',
  1733. type: 'PRACOWNICY',
  1734. limit: data.body.pagination.limit,
  1735. total_items: data.body.pagination.total_items, // pages size
  1736. size: data.body.pagination.size, // pages size
  1737. page: data.body.pagination.current, // selected page
  1738. step: 1 // pages before and after current
  1739. });
  1740. var paginationShowNextCount = 1;
  1741. if ( parseInt(data.body.pagination.current) !== 1) {
  1742. paginationShowNextCount = parseInt(data.body.pagination.limit) * (parseInt(data.body.pagination.current) - 1 ) + 1;
  1743. }
  1744. $('#paginationShowNextCount-PRACOWNICY').text(paginationShowNextCount);
  1745. $('#smad-filter-desc-pracownicy').text(data.body.pagination.total_items);
  1746. if (data.body.pagination.total_items > 0) {
  1747. var btnAddAll = $('<button class="btn btn-primary" style="padding:1px 5px; margin-left:12px">DODAJ WSZYSTKIE DO ANALIZY</button>')
  1748. btnAddAll.on('click', { type: 'pracownicy', pagination: data.body.pagination }, addAllMatchesToReport);
  1749. var btnAddByReport = $('<button class="btn btn-primary" style="padding:1px 5px; margin-left:12px">DODAJ DO ANALIZY WG RAPORTU</button>');
  1750. btnAddByReport.on('click', { type: 'pracownicy', pagination: data.body.pagination }, addToReportByPreviousReport);
  1751. $('#smad-filter-desc-pracownicy').append(btnAddAll);
  1752. $('#smad-filter-desc-pracownicy').append(btnAddByReport);
  1753. }
  1754. }
  1755. // wyświetlenie wybranej grupy w naglówku nad tabela
  1756. var groupSelectData = getNameGroupById(getItemLocalStorage('Bocian.biAuditForm.pracownicy.groups'), filterIdGroup);
  1757. $('#smad-filter-head-title-pracownicy').text(groupSelectData);
  1758. // zaladaowanie listy pracowników
  1759. $( "#body-pracownicy" ).html( listItemsPracownik);
  1760. checkAll('PRACOWNICY');
  1761. catchEventCheckbox('PRACOWNICY');
  1762. checkedChoiseItems('PRACOWNICY', getItemLocalStorage('Bocian.biAuditForm.pracownicyIds') );
  1763. updateTopCounters();
  1764. }).catch(function(error) {
  1765. if(DBG) console.log('request failed', error)
  1766. })
  1767. }
  1768. function selectPage(type, nrPage) {
  1769. var type = type.toLowerCase();
  1770. $('#pagination-' + type + ' ul li a').each(function(index, value){
  1771. if (this.text === nrPage) {
  1772. $(this).addClass('active');
  1773. } else {
  1774. $(this).removeClass('active');
  1775. }
  1776. });
  1777. }
  1778. function checkAll(type) {
  1779. $('#checkAll-' + type).change(function() {
  1780. var valueCheckbox = null;
  1781. var checkboxes = $('form').find(':checkbox');
  1782. if($(this).prop('checked')) {
  1783. checkboxes.prop('checked', true);
  1784. //valueCheckbox = checkboxes.prop("checked");
  1785. var allValsChecked = [];
  1786. var checkedValues = $('#smad-table-' + type + ' input:checkbox:checked').map(function() {
  1787. if (this.value !== 'on') {
  1788. allValsChecked.push(parseInt(this.value));
  1789. }
  1790. }).get();
  1791. updateListIdBiAuditReaport(type, allValsChecked);
  1792. } else {
  1793. checkboxes.prop('checked', false);
  1794. var allValsUnChecked = [];
  1795. var checkedValues = $('#smad-table-' + type + ' input:checkbox:not(:checked)').map(function() {
  1796. if (this.value !== 'on') {
  1797. allValsUnChecked.push(parseInt(this.value));
  1798. }
  1799. }).get();
  1800. deleteListIdBiAuditReaport(type, allValsUnChecked);
  1801. }
  1802. // update count selected IDs
  1803. updateCountItemCheckedByType(type.toLowerCase());
  1804. });
  1805. }
  1806. /**
  1807. * Select again checkbox before selected item chekbox from storage (pracownicy/kontrahenci)
  1808. */
  1809. function checkedChoiseItems(type, store) {
  1810. updateCountItemCheckedByType(type.toLowerCase());
  1811. var idElement = 'smad-table-' + type;
  1812. // if id element exist
  1813. if (document.getElementById(idElement)) {
  1814. // if not checked
  1815. if (!store) {
  1816. return false;
  1817. }
  1818. // checked again if user selected Item (pracownicy/kontrahent)
  1819. for (i = 0; i < store.length; i++) {
  1820. $('#body-'+type.toLowerCase() +' input[type=checkbox] ').map(function(k, v) {
  1821. if ( store[i] === parseInt(this.value) ){
  1822. $(this).prop('checked', true);
  1823. }
  1824. }).get();
  1825. }
  1826. }
  1827. $('#smad-table-' + type + ' input[type=checkbox]').on( 'load', function() {
  1828. var itemsCHecked = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
  1829. getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  1830. if (itemsCHecked.lenght === 0 ) {
  1831. return;
  1832. }
  1833. var valueCheckbox = null;
  1834. var checkboxes = $('form').find(':checkbox');
  1835. if($(this).prop('checked')) {
  1836. checkboxes.prop('checked', true);
  1837. var allValsChecked = [];
  1838. var checkedValues = $('#smad-table-' + type + ' input:checkbox:checked').map(function() {
  1839. if (this.value !== 'on') {
  1840. allValsChecked.push(parseInt(this.value));
  1841. }
  1842. }).get();
  1843. updateListIdBiAuditReaport(type, allValsChecked);
  1844. } else {
  1845. checkboxes.prop('checked', false);
  1846. var allValsUnChecked = [];
  1847. var checkedValues = $('#smad-table-' + type + ' input:checkbox:not(:checked)').map(function() {
  1848. if (this.value !== 'on') {
  1849. allValsUnChecked.push(parseInt(this.value));
  1850. }
  1851. }).get();
  1852. deleteListIdBiAuditReaport(type, allValsUnChecked);
  1853. }
  1854. });
  1855. }
  1856. function catchEventCheckbox(type) {
  1857. $('#smad-table-' + type + ' input[type="checkbox"]').on('change', function() {
  1858. if($(this).is(":checked")) {
  1859. var allValsChecked = [];
  1860. if (this.value !== 'on') {
  1861. allValsChecked.push(parseInt(this.value));
  1862. }
  1863. updateListIdBiAuditReaport(type, allValsChecked);
  1864. } else {
  1865. var allValsUnChecke = [];
  1866. if (this.value !== 'on') {
  1867. allValsUnChecke.push(parseInt(this.value));
  1868. }
  1869. deleteListIdBiAuditReaport(type, allValsUnChecke);
  1870. }
  1871. // update count selected IDs
  1872. updateCountItemCheckedByType(type.toLowerCase());
  1873. });
  1874. }
  1875. function clearSelectedCheckbox() {
  1876. $('#checkAll-PRACOWNICY').prop('checked', false)
  1877. $('#checkAll-KONTRAHENCI').prop('checked', false)
  1878. }
  1879. function updateListIdBiAuditReaport(type, valueArray) {
  1880. var currentStoragePracownicyIds = [];
  1881. var updateListPracownicyIds = null;
  1882. var currentStorageKontrahenciIds = [];
  1883. var updateListKontrahenciIds = null;
  1884. if ( type == 'PRACOWNICY') {
  1885. currentStoragePracownicyIds = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
  1886. if(currentStoragePracownicyIds !== null) {
  1887. updateListPracownicyIds = [...new Set([...currentStoragePracownicyIds ,...valueArray])];
  1888. }
  1889. else {
  1890. updateListPracownicyIds = valueArray;
  1891. }
  1892. setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', updateListPracownicyIds);
  1893. }
  1894. if ( type == 'KONTRAHENCI') {
  1895. currentStorageKontrahenciIds = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  1896. if(currentStorageKontrahenciIds !== null) {
  1897. updateListKontrahenciIds = [...new Set([...currentStorageKontrahenciIds ,...valueArray])];
  1898. }
  1899. else {
  1900. updateListKontrahenciIds = valueArray;
  1901. }
  1902. setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', updateListKontrahenciIds);
  1903. }
  1904. }
  1905. function deleteListIdBiAuditReaport(type, valueArray) {
  1906. if ( type == 'PRACOWNICY') {
  1907. deleteItemLocalStorage('Bocian.biAuditForm.pracownicyIds', valueArray);
  1908. }
  1909. if ( type == 'KONTRAHENCI') {
  1910. deleteItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', valueArray);
  1911. }
  1912. }
  1913. function fetchGroupPracownicy() {
  1914. fetch(URL_FETCH_GROUP_PRACOWNICY, {
  1915. credentials: 'same-origin'
  1916. })
  1917. .then(function parseJSON(response) {
  1918. return response.json()
  1919. })
  1920. .then(function(data) {
  1921. setItemLocalStorage('Bocian.biAuditForm.pracownicy.groups', data.body.itmesGroupPracownicy);
  1922. if (data.body.itmesGroupPracownicy === null) {
  1923. return;
  1924. }
  1925. var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup');
  1926. var currentDepthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  1927. setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', filterIdGroup);
  1928. setItemLocalStorage('Bocian.biAuditForm.depth', currentDepthValue);
  1929. var groupsPracownicy = '';
  1930. var activeButton = '';
  1931. data.body.itmesGroupPracownicy.forEach (function(row) {
  1932. activeButton = '';
  1933. if ( filterIdGroup === parseInt(row['ID']) ) {
  1934. activeButton = 'active';
  1935. $('#group-pracownicy button.active').removeClass('active');
  1936. }
  1937. groupsPracownicy += '<button class="btn btn-default '+activeButton+'" title="' + row['NAZWA'] + '" data-group-filter="' + row['ID'] + '">' + row['NAZWA'] + '</button>';
  1938. });
  1939. $("#group-pracownicy").append(groupsPracownicy);
  1940. updateCountItemCheckedByType('pracownicy');
  1941. detectChoiseFilter();
  1942. }).catch(function(error) {
  1943. if(DBG) console.log('request failed', error)
  1944. });
  1945. }
  1946. function fetchGroupKontrahenci() {
  1947. fetch(URL_FETCH_GROUP_KONTRAHENCI, {
  1948. credentials: 'same-origin'
  1949. })
  1950. .then(function parseJSON(response) {
  1951. return response.json()
  1952. })
  1953. .then(function(data) {
  1954. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.groups', data.body.itemsGroupKontrahenci);
  1955. if (data.body.itemsGroupKontrahenci === null) {
  1956. return;
  1957. }
  1958. var filterIdGroup = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup');
  1959. var currentDepthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  1960. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', filterIdGroup);
  1961. setItemLocalStorage('Bocian.biAuditForm.depth', currentDepthValue);
  1962. var groupsKontrahenci = '';
  1963. var activeButton = '';
  1964. data.body.itemsGroupKontrahenci.forEach (function(row) {
  1965. activeButton = '';
  1966. if ( filterIdGroup === parseInt(row['ID']) ) {
  1967. activeButton = 'active';
  1968. $('#group-kontrahenci button.active').removeClass('active');
  1969. }
  1970. groupsKontrahenci += '<button class="btn btn-default '+activeButton+'" title="'+row['NAZWA']+'" data-group-filter="'+row['ID']+'">'+row['NAZWA']+'</button>';
  1971. });
  1972. $("#group-kontrahenci").append(groupsKontrahenci);
  1973. updateCountItemCheckedByType('kontrahenci');
  1974. detectChoiseFilter();
  1975. }).catch(function(error) {
  1976. if(DBG) console.log('request failed', error)
  1977. });
  1978. }
  1979. function detectChoiseFilter() {
  1980. $('#group-kontrahenci').on('click', 'button', function(evt) {
  1981. $('#group-kontrahenci button.active').removeClass('active');
  1982. $(this).addClass('active');
  1983. // pobranie id grupy kliknietego buttonu
  1984. var filterIdGroup = $(this).attr("data-group-filter");
  1985. // aktaulna wartość zagłebienia
  1986. var currentDepthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  1987. // czy zwracać wyniki tylko z obiektami docelowymi
  1988. var analizaOnlyTargets = getItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets');
  1989. //reset LocalStorage
  1990. // defaultBIAuditLocalStorage();
  1991. // ustawienie ostaniej wartości zagłebienia przed resete
  1992. setItemLocalStorage('Bocian.biAuditForm.depth', currentDepthValue);
  1993. // czy zwracać wyniki tylko z obiektami docelowymi
  1994. setItemLocalStorage('Bocian.biAuditForm.analizaOnlyTargets', analizaOnlyTargets);
  1995. // ustawić id grupy do sesyjnej
  1996. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.filterIdGroup', parseInt(filterIdGroup));
  1997. // wywylac funckje pobrania danych
  1998. urlFetchKontrahenci(1);
  1999. });
  2000. $('#group-pracownicy').on('click', 'button', function(e) {
  2001. e.preventDefault();
  2002. $('#group-pracownicy button.active').removeClass('active');
  2003. $(this).addClass('active');
  2004. // pobranie id grupy kliknietego buttonu
  2005. var filterIdGroup = $(this).attr("data-group-filter");
  2006. // aktaulna wartość zagłebienia
  2007. var currentDepthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  2008. //reset LocalStorage
  2009. // defaultBIAuditLocalStorage();
  2010. // ustawienie ostaniej wartości zagłebienia przed resete
  2011. setItemLocalStorage('Bocian.biAuditForm.depth', currentDepthValue);
  2012. // ustawić id grupy do sesyjnej
  2013. setItemLocalStorage('Bocian.biAuditForm.pracownicy.filterIdGroup', parseInt(filterIdGroup));
  2014. // wywylac funckje pobrania danych
  2015. urlFetchPracownicy(1);
  2016. });
  2017. }
  2018. // Local storage
  2019. function setItemLocalStorage(key, array) {
  2020. localStorage.setItem(key, JSON.stringify(array));
  2021. }
  2022. function getItemLocalStorage(key) {
  2023. var retrievedData = localStorage.getItem(key);
  2024. var response = JSON.parse(retrievedData);
  2025. return response;
  2026. }
  2027. function deleteItemLocalStorage(key, itemsArray) {
  2028. var currentStorageArray = getItemLocalStorage(key);
  2029. var newStorageArray = removeItemArrayInArray(currentStorageArray, itemsArray);
  2030. setItemLocalStorage(key, newStorageArray);
  2031. }
  2032. /**
  2033. * arr - array
  2034. * item - search item
  2035. */
  2036. function removeItemInArray(arr, item) {
  2037. for(var i = arr.length; i--;) {
  2038. if(arr[i] === item) {
  2039. arr.splice(i, 1);
  2040. }
  2041. }
  2042. return arr;
  2043. }
  2044. /**
  2045. * arr - array
  2046. * item - array list items
  2047. */
  2048. function removeItemArrayInArray(arr, itemsArray) {
  2049. for(var i = arr.length; i--;) {
  2050. for(var j = itemsArray.length; j--;) {
  2051. if(arr[i] === itemsArray[j]) {
  2052. arr.splice(i, 1);
  2053. }
  2054. }
  2055. }
  2056. return arr;
  2057. }
  2058. /**
  2059. * Cleart list local storage by type
  2060. * typeNameLocalStorage - name (praconwicy/kontrahenci)
  2061. */
  2062. function clearListLocalStorageByType(typeNameLocalStorage) {
  2063. if (typeNameLocalStorage === 'pracownicy') {
  2064. setItemLocalStorage('Bocian.biAuditForm.pracownicyIds', []);
  2065. }
  2066. if (typeNameLocalStorage === 'kontrahenci') {
  2067. setItemLocalStorage('Bocian.biAuditForm.kontrahenciIds', []);
  2068. }
  2069. // update count selected item
  2070. updateCountItemCheckedByType(typeNameLocalStorage);
  2071. // unchecked checkbox
  2072. $('#smad-table-'+typeNameLocalStorage.toUpperCase()+' form').find(':checkbox').prop('checked', false);
  2073. }
  2074. /**
  2075. * Update count selected pracowniyc/kontrahenci
  2076. */
  2077. function updateCountItemCheckedByType(typeNameLocalStorage) {
  2078. var countId = 0;
  2079. updateTopCounters();
  2080. if (typeNameLocalStorage === 'pracownicy') {
  2081. var countPracownicy = getItemLocalStorage('Bocian.biAuditForm.pracownicyIds');
  2082. if (countPracownicy === null || countPracownicy === undefined) {
  2083. return countId;
  2084. }
  2085. countId = Object.keys(countPracownicy).length;
  2086. $('#count-selected-item-pracownicy').text(countId);
  2087. }
  2088. if (typeNameLocalStorage === 'kontrahenci') {
  2089. var countKontrahenci = getItemLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  2090. if (countKontrahenci === null || countKontrahenci === undefined) {
  2091. return countId;
  2092. }
  2093. countId = Object.keys(countKontrahenci).length;
  2094. $('#count-selected-item-kontrahenci').text(countId);
  2095. }
  2096. return countId;
  2097. }
  2098. function updateTopCounters() {
  2099. var idsPracownicy = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
  2100. var idsKontrahenci = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  2101. var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
  2102. var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
  2103. var allOdLength = idsPracownicy.length + pozostaleOd.length;
  2104. var allDoLength = idsKontrahenci.length + pozostaleDo.length;
  2105. var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  2106. if (globalRaportStore) globalRaportStore.dispatch({
  2107. type: 'UPDATE',
  2108. totalOdPracownicy: idsPracownicy.length,
  2109. totalDoKontrahenci: idsKontrahenci.length,
  2110. })
  2111. if(DBG) console.warn({totalPracownicy: idsPracownicy.length, totalKontrahenci: idsKontrahenci.length})
  2112. $('.top--count-selected-item-pracownicy').text(idsPracownicy.length ? '('+idsPracownicy.length+')' : '');
  2113. $('.top--count-selected-item-kontrahenci').text(idsKontrahenci.length ? '('+idsKontrahenci.length+')' : '');
  2114. $('.bottom--count-selected-item-pracownicy').text(idsPracownicy.length ? "Wybrano: (" + idsPracownicy.length + ") osób" : '');
  2115. $('.bottom--count-selected-item-kontrahenci').text(idsKontrahenci.length ? "Wybrano: (" + idsKontrahenci.length + ") podmiotów/kontrahentaów" : '');
  2116. // disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
  2117. if ( !allOdLength && !allDoLength ) {
  2118. $('.smad-generate-reaport-button').addClass('disabled');
  2119. } else {
  2120. if ( ( !allOdLength || !allDoLength ) && parseInt(depthValue) > 6 ) {
  2121. $('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
  2122. } else {
  2123. $('.bottom--message-warning-critical-search').text('');
  2124. }
  2125. $('.smad-generate-reaport-button').removeClass('disabled');
  2126. }
  2127. }
  2128. // Pagination
  2129. var Pagination = {
  2130. code: '', // end show html paginations
  2131. clickPage: 1, // set default 1 page
  2132. // --------------------
  2133. // Utility
  2134. // --------------------
  2135. // initialize default data
  2136. Extend: function(data) {
  2137. data = data || {};
  2138. Pagination.url = data.url;
  2139. Pagination.id_pagination = data.id_pagination;
  2140. Pagination.type = data.type;
  2141. Pagination.limit = data.limit;
  2142. Pagination.total_items = data.total_items;
  2143. Pagination.size = data.size || 2;
  2144. Pagination.page = data.page || 1;
  2145. Pagination.step = data.step || 3;
  2146. },
  2147. // add pages by number (from [s] to [f])
  2148. Add: function(s, f) {
  2149. for (var i = s; i < f; i++) {
  2150. Pagination.code += '<li><a href="' + Pagination.url + '" class="btn btn-default">' + i + '</a></li>';
  2151. }
  2152. },
  2153. // add last page with separator
  2154. Last: function() {
  2155. Pagination.code += '<li><a href="' + Pagination.url + '" class="btn btn-default">>></a></li>';
  2156. },
  2157. // add first page with separator
  2158. First: function() {
  2159. Pagination.code += '<li><a href="' + Pagination.url + '" class="btn btn-default"><<</a></li>';
  2160. },
  2161. // add last page with separator
  2162. Next: function() {
  2163. Pagination.code += '<li><a href="' + Pagination.url + '" class="btn btn-default">></a></li>';
  2164. },
  2165. // add first page with separator
  2166. Prev: function() {
  2167. Pagination.code += '<li><a href="' + Pagination.url + '" class="btn btn-default"><</a></li>';
  2168. },
  2169. // --------------------
  2170. // Handlers
  2171. // --------------------
  2172. // change page
  2173. Click: function() {
  2174. clearSelectedCheckbox();
  2175. var selectPage = $("#pagination-"+Pagination.type.toLowerCase()+' .tblAjax__footer__toolbar__pagination').find('a.active').text();
  2176. Pagination.clickPage = +this.innerHTML || '';
  2177. if ( selectPage === NaN || selectPage > Pagination.size) { selectPage = 1; }
  2178. switch (this.innerHTML) {
  2179. case '&gt;&gt;': // last
  2180. Pagination.clickPage = Pagination.size;
  2181. break;
  2182. case '&lt;&lt;': // first
  2183. Pagination.clickPage = 1;
  2184. break;
  2185. case '&lt;': // prev
  2186. Pagination.clickPage = parseInt(selectPage) - 1;
  2187. if (Pagination.clickPage < 1) {
  2188. Pagination.clickPage = 1;
  2189. }
  2190. break;
  2191. case '&gt;': // next
  2192. Pagination.clickPage = parseInt(selectPage) + 1;
  2193. if (Pagination.clickPage > Pagination.size) {
  2194. Pagination.clickPage = Pagination.size;
  2195. }
  2196. break;
  2197. }
  2198. if ( Pagination.type === 'KONTRAHENCI' ) {
  2199. setItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page', Pagination.clickPage);
  2200. Pagination.page = urlFetchKontrahenci(Pagination.clickPage);
  2201. }
  2202. else if ( Pagination.type === 'PRACOWNICY' ){
  2203. setItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page', Pagination.clickPage);
  2204. Pagination.page = urlFetchPracownicy(Pagination.clickPage);
  2205. }
  2206. Pagination.Start();
  2207. },
  2208. // --------------------
  2209. // Script structure pagination
  2210. // --------------------
  2211. // binding pages
  2212. Bind: function() {
  2213. var a = Pagination.e.getElementsByTagName('a');
  2214. var currentPage = Pagination.clickPage || 1;
  2215. for (var i = 0; i < a.length; i++) {
  2216. if (+a[i].innerHTML === Pagination.page) a[i].className = 'btn btn-default active';
  2217. a[i].addEventListener('click', Pagination.Click, false);
  2218. }
  2219. },
  2220. // write pagination
  2221. Finish: function() {
  2222. Pagination.e.innerHTML = Pagination.code;
  2223. Pagination.code = '</ul></nav>';
  2224. Pagination.Bind();
  2225. },
  2226. // find pagination type
  2227. Start: function() {
  2228. Pagination.code = '';
  2229. if ( Pagination.type === 'KONTRAHENCI' ) {
  2230. Pagination.code = '<div class="foot-info tblAjax__footer__toolbar__info footer_pagination_menu_items"><p>Wiersze od <span id="paginationShowNextCount-KONTRAHENCI"></span> do ' + Pagination.total_items + ' z ' + Pagination.total_items + '</p></div>';
  2231. } else if ( Pagination.type === 'PRACOWNICY' ) {
  2232. Pagination.code = '<div class="foot-info tblAjax__footer__toolbar__info footer_pagination_menu_items"><p>Wiersze od <span id="paginationShowNextCount-PRACOWNICY"></span> do ' + Pagination.total_items + ' z ' + Pagination.total_items + '</p></div>';
  2233. }
  2234. Pagination.code += '<nav aria-label="Page navigation" class="footer_pagination_menu_items"><ul class="btn-group tblAjax__footer__toolbar__pagination smad-pagination">';
  2235. Pagination.First();
  2236. Pagination.Prev();
  2237. if ( Pagination.type === 'KONTRAHENCI' ) {
  2238. Pagination.page = getItemLocalStorage('Bocian.biAuditForm.kontrahenci.pagination.page') || 1;
  2239. }
  2240. else if ( Pagination.type === 'PRACOWNICY' ) {
  2241. Pagination.page = getItemLocalStorage('Bocian.biAuditForm.pracownicy.pagination.page') || 1;
  2242. }
  2243. if ( Pagination.page > Pagination.size ) {
  2244. Pagination.page = 1;
  2245. }
  2246. if (Pagination.size < Pagination.step * 2 + 6) {
  2247. Pagination.Add(1, Pagination.size + 1);
  2248. }
  2249. else if (Pagination.page < Pagination.step * 2 + 1) {
  2250. Pagination.Add(1, Pagination.step * 2 + 4);
  2251. }
  2252. else if (Pagination.page > Pagination.size - Pagination.step * 2) {
  2253. Pagination.Add(Pagination.size - Pagination.step * 2 - 2, Pagination.size + 1);
  2254. }
  2255. else {
  2256. Pagination.Add(Pagination.page - Pagination.step, Pagination.page + Pagination.step + 1);
  2257. }
  2258. Pagination.Next();
  2259. Pagination.Last();
  2260. Pagination.Finish();
  2261. },
  2262. // --------------------
  2263. // Initialization
  2264. // --------------------
  2265. // binding buttons
  2266. Buttons: function(e) {
  2267. var nav = e.getElementsByTagName('a');
  2268. },
  2269. // create skeleton
  2270. Create: function(e) {
  2271. var html = [
  2272. '<div></div>' // pagination container
  2273. ];
  2274. e.innerHTML = html.join('');
  2275. Pagination.e = e.getElementsByTagName('div')[0];
  2276. Pagination.Buttons(e);
  2277. },
  2278. // init
  2279. Init: function(e, data) {
  2280. Pagination.Extend(data);
  2281. Pagination.Create(e);
  2282. Pagination.Start();
  2283. }
  2284. };
  2285. function todo__fetchRaport(id) {
  2286. /* p5WFS_GetFeature('default_db__x3A__BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA:BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', {
  2287. primaryKey: id,
  2288. resolve: 'all',
  2289. resolveDepth: 3,
  2290. }).then(function (features) {
  2291. if(DBG) console.log('features', features)
  2292. }).catch(function (e) {
  2293. if(DBG) console.warn(e)
  2294. p5UI__notifyAjaxCallback({ type: 'error', msg: e })
  2295. })*/
  2296. }
  2297. function removeFiltersPracownicy(event, btnNode) {
  2298. event.preventDefault()
  2299. var fieldNameList = FIELD_LIST_PRACOWNICY
  2300. fieldNameList.forEach(function (fieldName) {
  2301. btnNode.form[fieldName].value = ''
  2302. })
  2303. urlFetchPracownicy(1)
  2304. }
  2305. function removeFiltersKontrahenci(event, btnNode) {
  2306. event.preventDefault()
  2307. var fieldNameList = FIELD_LIST_KONTRAHENCI
  2308. fieldNameList.forEach(function (fieldName) {
  2309. btnNode.form[fieldName].value = ''
  2310. })
  2311. urlFetchKontrahenci(1)
  2312. }
  2313. function onChangeFiltersPracownicy(event, inputNode) {
  2314. urlFetchPracownicy(1)
  2315. }
  2316. function onKeypressFiltersPracownicy(event, inputNode) {
  2317. if ("Enter" === event.key) {
  2318. event.stopPropagation()
  2319. event.preventDefault()
  2320. urlFetchPracownicy(1)
  2321. return false
  2322. }
  2323. }
  2324. function onChangeFiltersKontrahenci(event, inputNode) {
  2325. urlFetchKontrahenci(1)
  2326. }
  2327. function onKeypressFiltersKontrahenci(event, inputNode) {
  2328. if ("Enter" === event.key) {
  2329. event.stopPropagation()
  2330. event.preventDefault()
  2331. urlFetchKontrahenci(1)
  2332. return false
  2333. }
  2334. }
  2335. function loadMoreRecordFunctions(event, node, rowPK, namespace) {
  2336. var _node = node
  2337. var _rowPK = rowPK
  2338. var toShow = true
  2339. if (RECORD_MORE_FUNCTIONS_OPENED_NODE) {
  2340. if (RECORD_MORE_FUNCTIONS_OPENED_NODE === node) toShow = false
  2341. if (RECORD_MORE_FUNCTIONS_OPENED_NODE !== node) {
  2342. jQuery(RECORD_MORE_FUNCTIONS_OPENED_NODE).popover('destroy')
  2343. }
  2344. }
  2345. RECORD_MORE_FUNCTIONS_OPENED_NODE = node
  2346. // jQuery(node).popover({
  2347. // container: 'body',
  2348. // placement: 'right',
  2349. // trigger: 'click',
  2350. // template: '<div class="popover" role="tooltip" style="max-width:600px;width:440px;">' +
  2351. // '<div class="arrow"></div>' +
  2352. // '<div style="display:block;position:relative;">' +
  2353. // '<div class="popover-title">' +
  2354. // '</div>' +
  2355. // '<button type="button" class="close" onclick="return hideMoreRecordFunctionsPopover();" style="position:absolute;right:8px;top:6px;">&times;</button>' +
  2356. // '</div>' +
  2357. // '<div class="popover-content"></div>' +
  2358. // '</div>' +
  2359. // '',
  2360. // html: true,
  2361. // })
  2362. // jQuery(node).popover('show')
  2363. global.fetch(BASE_URLS + 'index.php?_route=ViewTableAjax&namespace=' + namespace + '&_task=moreFunctionsCellAjax&ID=' + rowPK, {
  2364. credentials: 'same-origin'
  2365. }).then(function (response) {
  2366. return response.json()
  2367. }).then(function (json) {
  2368. var funcListWrap = $('<div></div>')
  2369. var funcListNode = $('<ul class="list-unstyled popoverRowFunctions"></ul>').appendTo(funcListWrap)
  2370. if (_node === RECORD_MORE_FUNCTIONS_OPENED_NODE) {
  2371. if (json && 'success' === json.type && json.rowFunctions && json.rowFunctions.length > 0) {
  2372. json.rowFunctions.forEach(function(funObj) {
  2373. var funcNode = p5UI_TableAjax_generateFunctionNode(funObj, _rowPK, {ico: true, label: true});
  2374. var funcItemNode = jQuery('<li></li>')
  2375. funcItemNode.append(funcNode)
  2376. funcListNode.append(funcItemNode)
  2377. });
  2378. }
  2379. }
  2380. // jQuery(RECORD_MORE_FUNCTIONS_OPENED_NODE).popover('destroy')
  2381. jQuery(RECORD_MORE_FUNCTIONS_OPENED_NODE).popover({
  2382. container: 'body',
  2383. placement: 'right',
  2384. trigger: 'click',
  2385. template: '<div class="popover" role="tooltip" style="max-width:600px;width:440px;">' +
  2386. '<div class="arrow"></div>' +
  2387. '<div style="display:block;position:relative;">' +
  2388. '<div class="popover-title">' +
  2389. '</div>' +
  2390. '<button type="button" class="close" onclick="return hideMoreRecordFunctionsPopover();" style="position:absolute;right:8px;top:6px;">&times;</button>' +
  2391. '</div>' +
  2392. '<div class="popover-content"></div>' +
  2393. '</div>' +
  2394. '',
  2395. html: true,
  2396. content: funcListWrap.html(),
  2397. })
  2398. jQuery(RECORD_MORE_FUNCTIONS_OPENED_NODE).popover('show')
  2399. }).catch(function (err) {
  2400. if(DBG) console.log('err', err);
  2401. })
  2402. }
  2403. var p5UI_TableAjax_generateFunctionNode = function(funObj, rowPK, props) {
  2404. var defaultsProps = {
  2405. ico: true,
  2406. label: false
  2407. },
  2408. props = jQuery.extend({}, defaultsProps, props);
  2409. funcNode = $('<a href="#" style="margin:0 2px;"></a>')
  2410. ;
  2411. if ('href' in funObj) funcNode.attr('href', p5Utils__format(funObj.href, [rowPK]));
  2412. if (props.ico) {
  2413. if ('ico' in funObj) funcNode.append('<span class="' + funObj.ico + '"></span>');
  2414. }
  2415. if ('onclick' in funObj) funcNode.attr('onclick', p5Utils__format(funObj.onclick, [rowPK]));
  2416. if ('title' in funObj) funcNode.attr('title', funObj.title);
  2417. if ('target' in funObj) funcNode.attr('target', funObj.target);
  2418. if (props.label) {
  2419. if ('label' in funObj) {
  2420. funcNode.append(' ' + funObj.label);
  2421. } else if ('title' in funObj) {
  2422. funcNode.append(' ' + funObj.title);
  2423. }
  2424. }
  2425. return funcNode;
  2426. };
  2427. global.p5UI_TableAjax_generateFunctionNode = p5UI_TableAjax_generateFunctionNode
  2428. function addAllMatchesToReport(event) {
  2429. switch (event.data.type) {
  2430. case 'kontrahenci': break; // OK
  2431. case 'pracownicy': break; // OK
  2432. default: throw "Wrong type";
  2433. }
  2434. var postData = {}
  2435. if ('filter_idGroup' in event.data.pagination && event.data.pagination['filter_idGroup']) postData['filter_idGroup'] = event.data.pagination['filter_idGroup']
  2436. Object.keys(event.data.pagination).filter(function (key) {
  2437. return ('f_' === key.substr(0, 2))
  2438. }).forEach(function (filterKey) {
  2439. var value = event.data.pagination[filterKey]
  2440. postData[filterKey] = value
  2441. })
  2442. var thisButton = $(this)
  2443. thisButton.attr('disabled', true)
  2444. thisButton.text( thisButton.text() + '...' )
  2445. if ('pracownicy' === event.data.type) {
  2446. p5UI__notifyAjaxCallback({ type: 'info', msg: "Pobieranie pracowników..." })
  2447. var frm = document.getElementById('filtersFieldRemoveBtn-PRACOWNICY').form
  2448. var fieldNameList = FIELD_LIST_PRACOWNICY
  2449. fieldNameList.filter(function (fieldName) {
  2450. if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"')
  2451. return (frm[fieldName]) ? true : false
  2452. }).map(function (fieldName) {
  2453. return [ fieldName, frm[fieldName].value ]
  2454. }).filter(function (filter) {
  2455. return ( filter[1].length > 0 )
  2456. }).forEach(function (filter) {
  2457. postData[ filter[0] ] = filter[1];
  2458. })
  2459. global.fetch(URL_FETCH_PRACOWNICY_IDS_AJAX, {
  2460. credentials: 'same-origin',
  2461. method: 'POST',
  2462. headers: { 'Content-Type': 'application/json' },
  2463. body: JSON.stringify(postData)
  2464. })
  2465. .then(function __parseJSON(response) {
  2466. return response.json()
  2467. })
  2468. .then(function (json) {
  2469. if ('success' === json.type && json.body && json.body.ids) {
  2470. updateListIdBiAuditReaport('PRACOWNICY', json.body.ids.map(function (id) {
  2471. return parseInt(id)
  2472. }))
  2473. // jQuery('#body-pracownicy').find('input[name="prID[]"]').attr('checked', true)
  2474. jQuery('#body-pracownicy').find('input[name="prID[]"]').each(function (idx, inputNode) {
  2475. inputNode.checked = true;
  2476. })
  2477. thisButton.attr('disabled', false)
  2478. var txt = thisButton.text()
  2479. thisButton.text( '...' === txt.substr(-3) ? txt.substr(0, txt.length - 3) : txt )
  2480. updateCountItemCheckedByType('pracownicy');
  2481. p5UI__notifyAjaxCallback({ type: 'success', msg: "Dodano "+json.body.ids.length+" pracowników" })
  2482. }
  2483. })
  2484. .catch(function (e) {
  2485. p5UI__notifyAjaxCallback({ type: 'error', msg: '' + e })
  2486. thisButton.attr('disabled', false)
  2487. var txt = thisButton.text()
  2488. thisButton.text( '...' === txt.substr(-3) ? txt.substr(0, txt.length - 3) : txt )
  2489. })
  2490. }
  2491. if ('kontrahenci' === event.data.type) {
  2492. p5UI__notifyAjaxCallback({ type: 'info', msg: "Pobieranie podmiotów/kontrahentów..." })
  2493. var frm = document.getElementById('filtersFieldRemoveBtn-KONTRAHENCI').form
  2494. var fieldNameList = FIELD_LIST_KONTRAHENCI
  2495. fieldNameList.filter(function (fieldName) {
  2496. if (!frm[fieldName] && DBG) console.log('Err missing field: "'+fieldName+'"')
  2497. return (frm[fieldName]) ? true : false
  2498. }).map(function (fieldName) {
  2499. return [ fieldName, frm[fieldName].value ]
  2500. }).filter(function (filter) {
  2501. return ( filter[1].length > 0 )
  2502. }).forEach(function (filter) {
  2503. postData[ filter[0] ] = filter[1];
  2504. })
  2505. global.fetch(URL_FETCH_KONTRAHENCI_IDS_AJAX, {
  2506. credentials: 'same-origin',
  2507. method: 'POST',
  2508. headers: { 'Content-Type': 'application/json' },
  2509. body: JSON.stringify(postData)
  2510. })
  2511. .then(function __parseJSON(response) {
  2512. return response.json()
  2513. })
  2514. .then(function (json) {
  2515. if ('success' === json.type && json.body && json.body.ids) {
  2516. updateListIdBiAuditReaport('KONTRAHENCI', json.body.ids.map(function (id) {
  2517. return parseInt(id)
  2518. }))
  2519. // jQuery('#body-kontrahenci').find('input[name="kontrID[]"]').attr('checked', true); // Not working
  2520. jQuery('#body-kontrahenci').find('input[name="kontrID[]"]').each(function (idx, inputNode) {
  2521. inputNode.checked = true;
  2522. })
  2523. thisButton.attr('disabled', false);
  2524. var txt = thisButton.text()
  2525. thisButton.text( '...' === txt.substr(-3) ? txt.substr(0, txt.length - 3) : txt )
  2526. updateCountItemCheckedByType('kontrahenci');
  2527. p5UI__notifyAjaxCallback({ type: 'success', msg: "Dodano "+json.body.ids.length+" kontrahentów" })
  2528. }
  2529. })
  2530. .catch(function (e) {
  2531. p5UI__notifyAjaxCallback({ type: 'error', msg: '' + e })
  2532. thisButton.attr('disabled', false)
  2533. var txt = thisButton.text()
  2534. thisButton.text( '...' === txt.substr(-3) ? txt.substr(0, txt.length - 3) : txt )
  2535. });
  2536. }
  2537. }
  2538. function mock_error__fetchLastReports(id) {
  2539. return new Promise(function (resolve) {
  2540. throw "Wystąpił błąd, spróbuj ponownie później"
  2541. })
  2542. }
  2543. function mock__fetchLastReports(id) {
  2544. return new Promise(function (resolve) {
  2545. var fakeResponse = '{"type":"success","msg":"ostatnie raporty","body":{"items":[{"id":"103","adnotacje":"raport pani x","totalPracownicy":"1","totalKontrahenci":"2"},{"id":"102","adnotacje":"test","totalPracownicy":"1","totalKontrahenci":"1"},{"id":"101","adnotacje":"Zuranski test all 7","totalPracownicy":"1","totalKontrahenci":"9307"},{"id":"100","adnotacje":"kike all 4","totalPracownicy":"5","totalKontrahenci":"9305"},{"id":"99","adnotacje":"test pracownik z KRS bez celu 3","totalPracownicy":"1","totalKontrahenci":"9305"}]}}';
  2546. var json = JSON.parse(fakeResponse);
  2547. var items = json.body.items;
  2548. console.log('items', items)
  2549. setTimeout(function () {
  2550. console.log('resolve items', items)
  2551. resolve(items);
  2552. }, 500);
  2553. });
  2554. }
  2555. function fetchLastReports(id) {
  2556. return global.fetch(URL_FETCH_LAST_REPORTS_AJAX, {
  2557. credentials: 'same-origin',
  2558. method: 'POST',
  2559. headers: { 'Content-Type': 'application/json' },
  2560. body: JSON.stringify({ id: id })
  2561. })
  2562. .then(function __parseJSON(response) {
  2563. return response.json()
  2564. })
  2565. .then(function (json) {
  2566. if ('success' === json.type && json.body && json.body.items) {
  2567. if (!json.body.items.length) throw "Brak danych"
  2568. return json.body.items;
  2569. }
  2570. throw "Wystąpił błąd, spróbuj ponownie później.";
  2571. })
  2572. }
  2573. function fetchPracownicyIdsByReport(id) {
  2574. return global.fetch(URL_FETCH_PRACOWNICY_IDS_BY_REPORT_AJAX, {
  2575. credentials: 'same-origin',
  2576. method: 'POST',
  2577. headers: { 'Content-Type': 'application/json' },
  2578. body: JSON.stringify({ id: id })
  2579. })
  2580. .then(function __parseJSON(response) {
  2581. return response.json()
  2582. })
  2583. .then(function (json) {
  2584. if ('success' === json.type && json.body && json.body.ids) {
  2585. if (!json.body.ids.length) throw "Brak danych"
  2586. return json.body.ids;
  2587. }
  2588. throw "Wystąpił błąd, spróbuj ponownie później.";
  2589. })
  2590. }
  2591. function fetchKontrahenciIdsByReport(id) {
  2592. return global.fetch(URL_FETCH_KONTRAHENCI_IDS_BY_REPORT_AJAX, {
  2593. credentials: 'same-origin',
  2594. method: 'POST',
  2595. headers: { 'Content-Type': 'application/json' },
  2596. body: JSON.stringify({ id: id })
  2597. })
  2598. .then(function __parseJSON(response) {
  2599. return response.json()
  2600. })
  2601. .then(function (json) {
  2602. if ('success' === json.type && json.body && json.body.ids) {
  2603. if (!json.body.ids.length) throw "Brak danych"
  2604. return json.body.ids;
  2605. }
  2606. throw "Wystąpił błąd, spróbuj ponownie później.";
  2607. })
  2608. }
  2609. function addToReportByPreviousReport(event) {
  2610. var pageType = (event.data.type) ? event.data.type : '';
  2611. switch (pageType) {
  2612. case 'pracownicy': break; // OK
  2613. case 'kontrahenci': break; // OK
  2614. default: throw "Wrong type";
  2615. }
  2616. var thisButton = $(this)
  2617. thisButton.attr('disabled', true)
  2618. thisButton.text( thisButton.text() + '...' )
  2619. function this__enableButton() {
  2620. thisButton.attr('disabled', false)
  2621. var txt = thisButton.text()
  2622. thisButton.text( '...' === txt.substr(-3) ? txt.substr(0, txt.length - 3) : txt )
  2623. }
  2624. var lastReportOptions = new Promise(function (resolve) {
  2625. fetchLastReports() // TODO: TEST remote `mock__`
  2626. .then(function (items) {
  2627. var options = {};
  2628. items.forEach(function (item) {
  2629. var label = "Nr " + item.id + ": " + item.adnotacje + " ";
  2630. var total = 0;
  2631. switch (pageType) {
  2632. case 'pracownicy': total = parseInt(item.totalPracownicy); break;
  2633. case 'kontrahenci': total = parseInt(item.totalKontrahenci); break;
  2634. }
  2635. label += ( total > 0 ? "(" + total + ")" : "brak");
  2636. options['raport-'+item.id] = label;
  2637. });
  2638. resolve(options);
  2639. })
  2640. .catch(function (e) {
  2641. swal.showValidationError(''+e)
  2642. swal.hideLoading();
  2643. resolve();
  2644. })
  2645. });
  2646. swal({
  2647. title: "Dodaj " + ('pracownicy' === pageType ? "praconików" : "kontrahentów") + " do analizy",
  2648. showCancelButton: true,
  2649. cancelButtonText: "Anuluj",
  2650. showConfirmButton: true,
  2651. confirmButtonText: "Wybierz",
  2652. focusCancel: true,
  2653. width: 600,
  2654. input: 'select',
  2655. inputOptions: lastReportOptions,
  2656. inputClass: "form-control input-lg",
  2657. preConfirm: function (selected) {
  2658. var id = parseInt(selected.substr('raport-'.length));
  2659. swal.showLoading();
  2660. if ('pracownicy' === pageType) {
  2661. return new Promise(function (resolve) {
  2662. fetchPracownicyIdsByReport(id)
  2663. .then(function (ids) {
  2664. updateListIdBiAuditReaport('PRACOWNICY', ids.map(function (id) {
  2665. return parseInt(id)
  2666. }))
  2667. ids.forEach(function (id) {
  2668. jQuery('#body-pracownicy').find('input[name="prID[]"][value="'+id+'"]').each(function (idx, inputNode) {
  2669. inputNode.checked = true;
  2670. })
  2671. })
  2672. updateCountItemCheckedByType('pracownicy');
  2673. p5UI__notifyAjaxCallback({ type: 'success', msg: "Dodano "+ids.length+" pracowników" })
  2674. resolve();
  2675. })
  2676. .catch(function (e) {
  2677. swal.showValidationError(''+e)
  2678. swal.hideLoading();
  2679. resolve();
  2680. });
  2681. });
  2682. } else if ('kontrahenci' === pageType) {
  2683. return new Promise(function (resolve) {
  2684. fetchKontrahenciIdsByReport(id)
  2685. .then(function (ids) {
  2686. updateListIdBiAuditReaport('KONTRAHENCI', ids.map(function (id) {
  2687. return parseInt(id)
  2688. }))
  2689. ids.forEach(function (id) {
  2690. jQuery('#body-kontrahenci').find('input[name="kontrID[]"][value="'+id+'"]').each(function (idx, inputNode) {
  2691. inputNode.checked = true;
  2692. })
  2693. })
  2694. updateCountItemCheckedByType('kontrahenci');
  2695. p5UI__notifyAjaxCallback({ type: 'success', msg: "Dodano "+ids.length+" kontrahentów" })
  2696. resolve();
  2697. })
  2698. .catch(function (e) {
  2699. swal.showValidationError(''+e)
  2700. swal.hideLoading();
  2701. resolve();
  2702. });
  2703. });
  2704. } else return true;
  2705. },
  2706. // inputValidator: (value) => {
  2707. // return !value && 'Proszę wybrać raport'
  2708. // }
  2709. // html: '<p>Ostatnie raporty:</p>' + '<ul id="' + uniqHtmlId + '"></ul></p>',
  2710. }).then(function (selected) {
  2711. this__enableButton();
  2712. }).catch(function (e) {
  2713. this__enableButton();
  2714. })
  2715. }
  2716. $(document).ready(function(){
  2717. globalRaportStore = createStoreWithThunkMiddleware(bocianRaportStore);
  2718. global[STORE_NAME] = globalRaportStore;
  2719. DBG && console.warn('DBG:: SET window[STORE_NAME]', { store: window[STORE_NAME], STORE_NAME: STORE_NAME, globalRaportStore })
  2720. ReactDOM.render(
  2721. h(P5UI__BocianHeader, {
  2722. store: globalRaportStore
  2723. }),
  2724. document.getElementById('bi_audit_header')
  2725. );
  2726. rootChangeForm();
  2727. updateTopCounters();
  2728. var unsubscribe = globalRaportStore.subscribe(function () {
  2729. // TODO: fetch data from globalRaportStore.getState()
  2730. var idsPracownicy = getListFromLocalStorage('Bocian.biAuditForm.pracownicyIds');
  2731. var idsKontrahenci = getListFromLocalStorage('Bocian.biAuditForm.kontrahenciIds');
  2732. var pozostaleOd = getListFromLocalStorage(getSelectedListLocalStorageKey('OD'));
  2733. var pozostaleDo = getListFromLocalStorage(getSelectedListLocalStorageKey('DO'));
  2734. var allOdLength = idsPracownicy.length + pozostaleOd.length;
  2735. var allDoLength = idsKontrahenci.length + pozostaleDo.length;
  2736. var depthValue = getItemLocalStorage('Bocian.biAuditForm.depth');
  2737. if(DBG) console.warn({totalPracownicy: idsPracownicy.length, totalKontrahenci: idsKontrahenci.length})
  2738. $('.top--count-selected-item-pracownicy').text(idsPracownicy.length ? '('+idsPracownicy.length+')' : '');
  2739. $('.top--count-selected-item-kontrahenci').text(idsKontrahenci.length ? '('+idsKontrahenci.length+')' : '');
  2740. $('.bottom--count-selected-item-pracownicy').text(idsPracownicy.length ? "Wybrano: (" + idsPracownicy.length + ") osób" : '');
  2741. $('.bottom--count-selected-item-kontrahenci').text(idsKontrahenci.length ? "Wybrano: (" + idsKontrahenci.length + ") podmiotów/kontrahentaów" : '');
  2742. // disable button generate reaport if not choise 'praconwicy' or 'kontrahenci'
  2743. if ( !allOdLength && !allDoLength ) {
  2744. $('.smad-generate-reaport-button').addClass('disabled');
  2745. } else {
  2746. if ( ( !allOdLength || !allDoLength ) && parseInt(depthValue) > 6 ) {
  2747. $('.bottom--message-warning-critical-search').text(messageCriticalSearchData);
  2748. } else {
  2749. $('.bottom--message-warning-critical-search').text('');
  2750. }
  2751. $('.smad-generate-reaport-button').removeClass('disabled');
  2752. }
  2753. })
  2754. });
  2755. global.hideMoreRecordFunctionsPopover = function() {
  2756. if (RECORD_MORE_FUNCTIONS_OPENED_NODE) jQuery(RECORD_MORE_FUNCTIONS_OPENED_NODE).popover('destroy')
  2757. }
  2758. global.pracownicyLoadMoreRecordFunctions = function(event, node, rowPK) {
  2759. return loadMoreRecordFunctions(event, node, rowPK, "default_db/BI_audit_ENERGA_PRACOWNICY/BI_audit_ENERGA_PRACOWNICY")
  2760. }
  2761. global.kontrahenciLoadMoreRecordFunctions = function(event, node, rowPK) {
  2762. return loadMoreRecordFunctions(event, node, rowPK, "default_db/BI_audit_ENERGA_RUM_KONTRAHENCI/BI_audit_ENERGA_RUM_KONTRAHENCI")
  2763. }
  2764. global.removeFiltersPracownicy = removeFiltersPracownicy;
  2765. global.removeFiltersKontrahenci = removeFiltersKontrahenci;
  2766. global.onChangeFiltersPracownicy = onChangeFiltersPracownicy;
  2767. global.onKeypressFiltersPracownicy = onKeypressFiltersPracownicy;
  2768. global.onChangeFiltersKontrahenci = onChangeFiltersKontrahenci;
  2769. global.onKeypressFiltersKontrahenci = onKeypressFiltersKontrahenci;
  2770. global.checkAll = checkAll;
  2771. global.checkedChoiseItems = checkedChoiseItems;
  2772. global.catchEventCheckbox = catchEventCheckbox;
  2773. global.clearSelectedCheckbox = clearSelectedCheckbox;
  2774. global.getNameGroupById = getNameGroupById;
  2775. global.createGroupPracownicy = createGroupPracownicy;
  2776. global.createGroupKontrahenci = createGroupKontrahenci;
  2777. global.selectPage = selectPage;
  2778. global.detectChoiseFilter = detectChoiseFilter;
  2779. global.updateListIdBiAuditReaport = updateListIdBiAuditReaport;
  2780. global.deleteListIdBiAuditReaport = deleteListIdBiAuditReaport;
  2781. global.urlFetchPracownicy = urlFetchPracownicy;
  2782. global.urlFetchKontrahenci = urlFetchKontrahenci;
  2783. global.generateBiAuditRaport = generateBiAuditRaport;
  2784. global.getAddressData = getAddressData;
  2785. global.loadCurrentReaportTitleInInput = loadCurrentReaportTitleInInput;
  2786. global.updateLocalStorageBiAuditReaportTitle = updateLocalStorageBiAuditReaportTitle;
  2787. global.Pagination = Pagination;
  2788. global.todo__fetchRaport = todo__fetchRaport;
  2789. global.initLocalStorage = initLocalStorage;
  2790. global.setItemLocalStorage = setItemLocalStorage;
  2791. global.getItemLocalStorage = getItemLocalStorage;
  2792. global.deleteItemLocalStorage = deleteItemLocalStorage;
  2793. global.defaultBIAuditLocalStorage = defaultBIAuditLocalStorage;
  2794. global.removeItemInArray = removeItemInArray;
  2795. global.removeItemArrayInArray = removeItemArrayInArray;
  2796. global.addPracownikToGroup = addPracownikToGroup;
  2797. global.addPracownikAllToGroup = addPracownikAllToGroup;
  2798. global.addKontrahenciToGroup = addKontrahenciToGroup;
  2799. global.addKontrahenciAllToGroup = addKontrahenciAllToGroup;
  2800. global.createPracownikAjax = createPracownikAjax;
  2801. global.createKontrahentAjax = createKontrahentAjax;
  2802. global.removePracownikFromGroup = removePracownikFromGroup;
  2803. global.removeKontrahenciFromGroup = removeKontrahenciFromGroup;
  2804. global.showViewUploadFile = showViewUploadFile;
  2805. global.parseCsvFile = parseCsvFile;
  2806. global.clearListLocalStorageByType = clearListLocalStorageByType;
  2807. // message
  2808. global.messageCriticalSearchData = 'Krytyczne wielkości danych do przeszukania. Optymalna wartość głębokość szukania powiaząń to: 6';
  2809. global.defaultOnlyTarger = 'y';