Dashboard sipadu mbip
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

enforcer.blade.php 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. @extends('layout.master', ['uid' => $user->_id, 'token' => $user->token_firebase])
  2. @section('page_title', 'Kompaun')
  3. @section('sub_page_title', '')
  4. @section('name', $user->StaffDetail->full_name)
  5. @section('img_profile', $user->StaffDetail->profile_img)
  6. @section('content')
  7. <style type="text/css">
  8. select.form-control, select.form-control:focus, select.form-control:hover {
  9. border: 1px solid #ccc !important;
  10. height: auto !important;
  11. }
  12. .glyphicon { margin-right:10px; }
  13. th { font-weight: 600; text-align: center}
  14. table.dataTable.nowrap th, table.dataTable.nowrap td {
  15. white-space: pre-line !important;
  16. }
  17. table.nowrap th, table.nowrap td {
  18. white-space: pre-line !important;
  19. }
  20. </style>
  21. <div class="inner-page">
  22. <div class="row">
  23. <div class="col-md-2">
  24. <div class="card">
  25. <div class="card-block">
  26. <div class="form-group" style="margin-top: 1.25em">
  27. <label><b>Tahun <code>*</code></b></label>
  28. <select name="tahun" id="tahun" class="form-control" required>
  29. <option value="null">Pilih tahun</option>
  30. <option value="2016">2016</option>
  31. <option value="2017">2017</option>
  32. <option value="2018">2018</option>
  33. <option value="2019">2019</option>
  34. <option value="2020">2020</option>
  35. </select>
  36. </div>
  37. <div class="form-group" style="margin-top: 1.25em">
  38. <label><b>Jabatan <code>*</code></b></label>
  39. <select name="jabatan" id="jabatan" class="form-control" required>
  40. <option value="null">Pilih jabatan</option>
  41. @foreach($department as $d)
  42. <option value="{{ $d->_id }}">{{ $d->jbkod }}</option>
  43. @endforeach
  44. </select>
  45. </div>
  46. <div class="form-group">
  47. <button id="jana" class="btn btn-info btn-block waves-effect waves-light">Jana Report</button>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. <div class="col-sm-10">
  53. <div class="card">
  54. <div class="card-header">
  55. <h5>Statistik Pengeluaran Kompaun</h5>
  56. <div id="link" style="float:right"></div>
  57. </div>
  58. <div class="card-block">
  59. <div class="row m-b-30">
  60. <div class="col-lg-12 col-xl-12">
  61. <!-- Nav tabs -->
  62. <ul class="nav nav-tabs md-tabs" role="tablist">
  63. <li class="nav-item">
  64. <a class="nav-link active" data-toggle="tab" href="#keping" role="tab">Keping</a>
  65. <div class="slide"></div>
  66. </li>
  67. <li class="nav-item">
  68. <a class="nav-link" data-toggle="tab" href="#jumlah" role="tab">Jumlah</a>
  69. <div class="slide"></div>
  70. </li>
  71. </ul>
  72. <!-- Tab panes -->
  73. <div class="tab-content card-block">
  74. <div class="tab-pane active" id="keping" role="tabpanel">
  75. <div class="dt-responsive table-responsive">
  76. <table id="reportK" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
  77. <thead>
  78. <tr>
  79. <th rowspan="2">BIL</th>
  80. <th rowspan="2">NAMA ANGGOTA</th>
  81. <th colspan="12">Bulan</th>
  82. <th rowspan="2">JUM</th>
  83. </tr>
  84. <tr>
  85. <th>JAN</th>
  86. <th>FEB</th>
  87. <th>MAC</th>
  88. <th>APRIL</th>
  89. <th>MEI</th>
  90. <th>JUN</th>
  91. <th>JULAI</th>
  92. <th>OGOS</th>
  93. <th>SEPT</th>
  94. <th>OKT</th>
  95. <th>NOV</th>
  96. <th>DIS</th>
  97. </tr>
  98. </thead>
  99. <tfoot>
  100. <tr>
  101. <th></th>
  102. <th>JUMLAH BESAR</th>
  103. <th>FEB</th>
  104. <th>MAC</th>
  105. <th>APRIL</th>
  106. <th>MEI</th>
  107. <th>JUN</th>
  108. <th>JULAI</th>
  109. <th>OGOS</th>
  110. <th>SEPT</th>
  111. <th>OKT</th>
  112. <th>NOV</th>
  113. <th>DIS</th>
  114. <th>DIS</th>
  115. <th>JUM</th>
  116. </tr>
  117. </tfoot>
  118. </table>
  119. </div>
  120. </div>
  121. <div class="tab-pane" id="jumlah" role="tabpanel">
  122. <div class="dt-responsive table-responsive">
  123. <table id="reportJ" class="table table-sm table-striped table-bordered nowrap" style="width:100%">
  124. <thead>
  125. <tr>
  126. <th rowspan="2">BIL</th>
  127. <th rowspan="2">NAMA ANGGOTA</th>
  128. <th colspan="12">Bulan</th>
  129. <th rowspan="2">JUM</th>
  130. </tr>
  131. <tr>
  132. <th>JAN</th>
  133. <th>FEB</th>
  134. <th>MAC</th>
  135. <th>APRIL</th>
  136. <th>MEI</th>
  137. <th>JUN</th>
  138. <th>JULAI</th>
  139. <th>OGOS</th>
  140. <th>SEPT</th>
  141. <th>OKT</th>
  142. <th>NOV</th>
  143. <th>DIS</th>
  144. </tr>
  145. </thead>
  146. <tfoot>
  147. <tr>
  148. <th></th>
  149. <th>JUMLAH BESAR</th>
  150. <th>FEB</th>
  151. <th>MAC</th>
  152. <th>APRIL</th>
  153. <th>MEI</th>
  154. <th>JUN</th>
  155. <th>JULAI</th>
  156. <th>OGOS</th>
  157. <th>SEPT</th>
  158. <th>OKT</th>
  159. <th>NOV</th>
  160. <th>DIS</th>
  161. <th>DIS</th>
  162. <th>JUM</th>
  163. </tr>
  164. </tfoot>
  165. </table>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. </div>
  176. @endsection
  177. @section('external_js')
  178. <script type="text/javascript">
  179. var current_id = "{{ $user->_id }}";
  180. $.ajaxSetup({
  181. headers: {
  182. 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  183. }
  184. });
  185. var table;
  186. $(document).ready(function() {
  187. table1 = $('#reportK').DataTable({
  188. "ordering": false,
  189. "searching": false,
  190. "lengthChange": false,
  191. "pageLength": -1,
  192. "paging": false,
  193. "processing": true,
  194. "serverSide": true,
  195. "ajax": {
  196. "url": "{{ url('api/get/statistic-compound/enforcer') }}",
  197. "data": {
  198. "year": function() { return $('#tahun').val() },
  199. "jabatan": function() { return $('#jabatan').val() },
  200. "jenis": "keping",
  201. "current_id": current_id,
  202. }
  203. },
  204. "columns": [
  205. { "data": "index", "name": "index" },
  206. { "data" : "name", "name": "name" },
  207. { "data": "jan", "jan": "kpd" },
  208. { "data": "feb", "name": "feb" },
  209. { "data": "mac", "name": "mac" },
  210. { "data": "apr", "name": "apr" },
  211. { "data": "mei", "name": "mei" },
  212. { "data": "jun", "name": "jun" },
  213. { "data": "july", "name": "july" },
  214. { "data": "ogos", "name": "ogos" },
  215. { "data": "sept", "name": "sept" },
  216. { "data": "okt", "name": "okt" },
  217. { "data": "nov", "name": "nov" },
  218. { "data": "dis", "name": "dis" },
  219. { "data": "total", "name": "total" },
  220. ],
  221. "columnDefs": [
  222. {
  223. "render": function ( data, type, row, meta ) {
  224. return (meta.row+1);
  225. },
  226. "targets": 0,
  227. },
  228. ],
  229. "footerCallback": function(row, data, start, end, display) {
  230. var api = this.api();
  231. var jan,feb,mar,apr,mei,jun,jul,ogos,sept,okt,nov,dis,jum;
  232. jan = api.column( 2 ).data().reduce( function (a, b) {
  233. return parseFloat(a) + parseFloat(b);
  234. }, 0 );
  235. $( api.column( 2 ).footer() ).html(jan);
  236. feb = api.column( 3 ).data().reduce( function (a, b) {
  237. return parseFloat(a) + parseFloat(b);
  238. }, 0 );
  239. $( api.column( 3 ).footer() ).html(feb);
  240. mar = api.column( 4 ).data().reduce( function (a, b) {
  241. return parseFloat(a) + parseFloat(b);
  242. }, 0 );
  243. $( api.column( 4 ).footer() ).html(mar);
  244. apr = api.column( 5 ).data().reduce( function (a, b) {
  245. return parseFloat(a) + parseFloat(b);
  246. }, 0 );
  247. $( api.column( 5 ).footer() ).html(apr);
  248. mei = api.column( 6 ).data().reduce( function (a, b) {
  249. return parseFloat(a) + parseFloat(b);
  250. }, 0 );
  251. $( api.column( 6 ).footer() ).html(mei);
  252. jun = api.column( 7 ).data().reduce( function (a, b) {
  253. return parseFloat(a) + parseFloat(b);
  254. }, 0 );
  255. $( api.column( 7 ).footer() ).html(jun);
  256. jul = api.column( 8 ).data().reduce( function (a, b) {
  257. return parseFloat(a) + parseFloat(b);
  258. }, 0 );
  259. $( api.column( 8 ).footer() ).html(jul);
  260. ogos = api.column( 9 ).data().reduce( function (a, b) {
  261. return parseFloat(a) + parseFloat(b);
  262. }, 0 );
  263. $( api.column( 9 ).footer() ).html(ogos);
  264. sept = api.column( 10 ).data().reduce( function (a, b) {
  265. return parseFloat(a) + parseFloat(b);
  266. }, 0 );
  267. $( api.column( 10 ).footer() ).html(sept);
  268. okt = api.column( 11 ).data().reduce( function (a, b) {
  269. return parseFloat(a) + parseFloat(b);
  270. }, 0 );
  271. $( api.column( 11 ).footer() ).html(okt);
  272. nov = api.column( 12 ).data().reduce( function (a, b) {
  273. return parseFloat(a) + parseFloat(b);
  274. }, 0 );
  275. $( api.column( 12 ).footer() ).html(nov);
  276. dis = api.column( 13 ).data().reduce( function (a, b) {
  277. return parseFloat(a) + parseFloat(b);
  278. }, 0 );
  279. $( api.column( 13 ).footer() ).html(dis);
  280. jum = api.column( 14 ).data().reduce( function (a, b) {
  281. return parseFloat(a) + parseFloat(b);
  282. }, 0 );
  283. $( api.column( 14 ).footer() ).html(jum);
  284. },
  285. "drawCallback": function(settings) {
  286. var api = this.api();
  287. // Output the data for the visible rows to the browser's console
  288. var data = api.rows( {page:'current'} ).data().toArray();
  289. if (data && data.length > 0) {
  290. var link = "{{ url('main/export/report/enforcer') }}/"+$('#tahun').val()+"/"+$('#jenis').val()+"/"+$('#jabatan').val();
  291. $('#link').html('<a target="_blank" href="'+link+'" class="btn btn-primary btn-sm waves-effect waves-light">Excel</a>');
  292. }
  293. },
  294. });
  295. table2 = $('#reportJ').DataTable({
  296. "ordering": false,
  297. "searching": false,
  298. "lengthChange": false,
  299. "pageLength": -1,
  300. "paging": false,
  301. "processing": true,
  302. "serverSide": true,
  303. "ajax": {
  304. "url": "{{ url('api/get/statistic-compound/enforcer') }}",
  305. "data": {
  306. "year": function() { return $('#tahun').val() },
  307. "jabatan": function() { return $('#jabatan').val() },
  308. "jenis": "jumlah",
  309. "current_id": current_id,
  310. }
  311. },
  312. "columns": [
  313. { "data": "index", "name": "index" },
  314. { "data" : "name", "name": "name" },
  315. { "data": "jan", "jan": "kpd" },
  316. { "data": "feb", "name": "feb" },
  317. { "data": "mac", "name": "mac" },
  318. { "data": "apr", "name": "apr" },
  319. { "data": "mei", "name": "mei" },
  320. { "data": "jun", "name": "jun" },
  321. { "data": "july", "name": "july" },
  322. { "data": "ogos", "name": "ogos" },
  323. { "data": "sept", "name": "sept" },
  324. { "data": "okt", "name": "okt" },
  325. { "data": "nov", "name": "nov" },
  326. { "data": "dis", "name": "dis" },
  327. { "data": "total", "name": "total" },
  328. ],
  329. "columnDefs": [
  330. {
  331. "render": function ( data, type, row, meta ) {
  332. return (meta.row+1);
  333. },
  334. "targets": 0,
  335. },
  336. ],
  337. "footerCallback": function(row, data, start, end, display) {
  338. var api = this.api();
  339. var jan,feb,mar,apr,mei,jun,jul,ogos,sept,okt,nov,dis,jum;
  340. jan = api.column( 2 ).data().reduce( function (a, b) {
  341. return parseFloat(a) + parseFloat(b);
  342. }, 0 );
  343. $( api.column( 2 ).footer() ).html(jan);
  344. feb = api.column( 3 ).data().reduce( function (a, b) {
  345. return parseFloat(a) + parseFloat(b);
  346. }, 0 );
  347. $( api.column( 3 ).footer() ).html(feb);
  348. mar = api.column( 4 ).data().reduce( function (a, b) {
  349. return parseFloat(a) + parseFloat(b);
  350. }, 0 );
  351. $( api.column( 4 ).footer() ).html(mar);
  352. apr = api.column( 5 ).data().reduce( function (a, b) {
  353. return parseFloat(a) + parseFloat(b);
  354. }, 0 );
  355. $( api.column( 5 ).footer() ).html(apr);
  356. mei = api.column( 6 ).data().reduce( function (a, b) {
  357. return parseFloat(a) + parseFloat(b);
  358. }, 0 );
  359. $( api.column( 6 ).footer() ).html(mei);
  360. jun = api.column( 7 ).data().reduce( function (a, b) {
  361. return parseFloat(a) + parseFloat(b);
  362. }, 0 );
  363. $( api.column( 7 ).footer() ).html(jun);
  364. jul = api.column( 8 ).data().reduce( function (a, b) {
  365. return parseFloat(a) + parseFloat(b);
  366. }, 0 );
  367. $( api.column( 8 ).footer() ).html(jul);
  368. ogos = api.column( 9 ).data().reduce( function (a, b) {
  369. return parseFloat(a) + parseFloat(b);
  370. }, 0 );
  371. $( api.column( 9 ).footer() ).html(ogos);
  372. sept = api.column( 10 ).data().reduce( function (a, b) {
  373. return parseFloat(a) + parseFloat(b);
  374. }, 0 );
  375. $( api.column( 10 ).footer() ).html(sept);
  376. okt = api.column( 11 ).data().reduce( function (a, b) {
  377. return parseFloat(a) + parseFloat(b);
  378. }, 0 );
  379. $( api.column( 11 ).footer() ).html(okt);
  380. nov = api.column( 12 ).data().reduce( function (a, b) {
  381. return parseFloat(a) + parseFloat(b);
  382. }, 0 );
  383. $( api.column( 12 ).footer() ).html(nov);
  384. dis = api.column( 13 ).data().reduce( function (a, b) {
  385. return parseFloat(a) + parseFloat(b);
  386. }, 0 );
  387. $( api.column( 13 ).footer() ).html(dis);
  388. jum = api.column( 14 ).data().reduce( function (a, b) {
  389. return parseFloat(a) + parseFloat(b);
  390. }, 0 );
  391. $( api.column( 14 ).footer() ).html(jum);
  392. },
  393. });
  394. $('#jana').on('click', function(e){
  395. e.preventDefault();
  396. if($('#tahun').val() == 'null' || $('#jabatan').val() == 'null'){
  397. alert('Sila pilih tahun dan jabatan');
  398. }else {
  399. console.log("jabatan " + $('#jabatan').val());
  400. table1.ajax.reload();
  401. table2.ajax.reload();
  402. }
  403. });
  404. });
  405. </script>
  406. @endsection