Advertisement
vitareinforce

tabel terlambat.vue

Dec 4th, 2021
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 59.03 KB | None | 0 0
  1. <template>
  2. <div style="margin-top: 50px;">
  3. <div class="row mb-3">
  4. <div class="col-sm-3">
  5. <input type="text" name="permission" placeholder="Cari..." v-model="key" v-on:keyup="enterSearch" value="" style="width: 60%; height: 38px; border: 1px solid #ced4da; padding: 0.375rem 0.75rem; border-radius: 0.25rem;" />
  6. <button style="width: 15%;" v-if="key != ''" class="btn btn-danger" @click="deleteSearch()"><span class="fa fa-times"></span></button>
  7. <button style="width: 15%;" class="btn btn-primary" @click="search(key)"><span class="fa fa-search"></span></button>
  8. </div>
  9. <div class="col-sm-3">
  10. <input type="date" id="filtertanggal" class="form-control" v-model="tanggal">
  11. </div>
  12. <div class="col-sm-3">
  13. <select v-model="filterGroup" class="form-control">
  14. <option value="">Semua Group</option>
  15. <option v-for="item in group" :key="item.id" :value="item.id">{{ item.nama }}</option>
  16. </select>
  17. </div>
  18. <div class="col-sm-3">
  19. <select v-model="filterKaryawan" class="form-control">
  20. <option value="">Semua Karyawan</option>
  21. <option v-for="item in karyawan" :key="item.id" :value="item.id">{{ item.nama }} <span v-if="item.group != null"> - {{ item.group.nama }}{{ item.groupno }}</span></option>
  22. </select>
  23. </div>
  24. <!-- <div class="col-sm-3">
  25. <select v-model="toggleMenu" class="form-control">
  26. <option value="Harian">Harian</option>
  27. <option value="Mingguan Jam">Mingguan Jam</option>
  28. </select>
  29. </div> -->
  30. </div>
  31. <!-- <div class="row float-right">
  32. <div class="col-sm-12 search-div">
  33.  
  34. <input type="text" name="permission" placeholder="Cari..." v-model="key" v-on:keyup="enterSearch" value="" style="width: 70%; height: 40px; border: 1px solid rgba(184, 55, 62, 0.5); background-color: white; border-radius: 5px; padding: 5px;" />
  35. <button v-if="key != ''" class="btn btn-erase" @click="deleteSearch()"><span class="fa fa-times"></span></button>
  36. <button class="btn btn-primary" @click="search(key)"><span class="fa fa-search"></span></button>
  37.  
  38. </div>
  39. </div>
  40. <br />
  41. <br /> -->
  42. <!-- <div class="row">
  43. <label>Tabel Terlambat</label>
  44. </div> -->
  45.  
  46. <!-- HARIAN -->
  47. <div class="row" v-if="(toggleMenu == 'Harian')">
  48. <b-table striped hover sticky-header
  49. id="terlambat-table"
  50. :busy="loading"
  51. :items="filtered"
  52. :fields="fields"
  53. :filter="query"
  54. class="col-lg-12 table table-hover my-table-scroll"
  55. style="margin-top: 15px; max-height: 400px !important;">
  56. <template #table-busy>
  57. <div class="text-center my-2">
  58. <span style="font-size: 32px; color: black;">Loading, please wait...</span>
  59. </div>
  60. </template>
  61. <template v-slot:cell(index)="data">
  62. <span>{{ data.index + 1 }}</span>
  63. </template>
  64. <template v-slot:cell(nama)="data">
  65. <span>{{ data.item.nama }}</span>
  66. </template>
  67. <template v-slot:cell(nama_group)="data">
  68. <span>{{ data.item.nama_group }}</span>
  69. </template>
  70. <template v-slot:cell(hari)="data">
  71. <span>{{ data.item.hari }}</span>
  72. </template>
  73. <template v-slot:cell(tanggal_hari_ini)="data">
  74. <span>{{ formatTanggalKolom(data.item.tanggal_hari_ini) }}</span>
  75. </template>
  76. <template v-slot:cell(slotjam_masuk)="data">
  77. <span v-html="cekMasuk(data.item.slotjam_masuk, data.item.slotjam_masuk_status)"></span>
  78. <!-- <span v-if="data.item.source_id_rutin != null" v-html="cekTerlambat(data.item.slotjam_masuk, data.item.hari, data.item.jam_masuk, data.item.jam_istirahat_mulai, data.item.toleransi_keterlambatan)"></span>
  79. <span v-if="data.item.source_id_group_rutin != null" v-html="cekTerlambat(data.item.slotjam_masuk, data.item.hari, data.item.jam_masuk_group, data.item.jam_istirahat_mulai_group, data.item.toleransi_keterlambatan)"></span> -->
  80. </template>
  81. <template v-slot:cell(slotjam_istirahat_mulai)="data">
  82. <span>{{ formatJam(data.item.slotjam_istirahat_mulai) }}</span>
  83. </template>
  84. <template v-slot:cell(slotjam_istirahat_selesai)="data">
  85. <span v-if="cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai, data.item.jam_pulang) != '-' && cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai_group, data.item.jam_pulang_group) == '-'" v-html="cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai, data.item.jam_pulang)"></span>
  86. <span v-if="cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai_group, data.item.jam_pulang_group) != '-' && cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai, data.item.jam_pulang) == '-'" v-html="cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai_group, data.item.jam_pulang_group)"></span>
  87. <span v-if="cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai, data.item.jam_pulang) != '-' && cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai_group, data.item.jam_pulang_group) != '-'" v-html="cekIstirahatSelesai(data.item.slotjam_istirahat_selesai, data.item.jam_istirahat_selesai, data.item.jam_pulang)"></span>
  88. <!-- <span v-if="data.item.source_id_rutin != null" v-html="cekTerlambat(data.item.slotjam_istirahat_selesai, data.item.hari, data.item.jam_istirahat_selesai, data.item.jam_pulang, data.item.toleransi_keterlambatan)"></span>
  89. <span v-if="data.item.source_id_group_rutin != null" v-html="cekTerlambat(data.item.slotjam_istirahat_selesai, data.item.hari, data.item.jam_istirahat_selesai_group, data.item.jam_pulang_group, data.item.toleransi_keterlambatan)"></span> -->
  90. </template>
  91. <template v-slot:cell(slotjam_pulang)="data">
  92. <span>{{ formatJam(data.item.slotjam_pulang) }}</span>
  93. </template>
  94. <template v-slot:cell(kalkulasi_poin_rutin)="data">
  95. <span>{{ data.item.kalkulasi_poin_rutin }}</span>
  96. </template>
  97. </b-table>
  98.  
  99.  
  100. <!-- <table class="col-lg-12 table table-hover" style="margin-top: 15px;">
  101. <thead>
  102. <tr>
  103. <th>No.</th>
  104. <th>Nama</th>
  105. <th>Group</th>
  106. <th>Hari</th>
  107. <th>Tanggal</th>
  108. <th>Masuk</th>
  109. <th>Istirahat Mulai</th>
  110. <th>Istirahat Selesai</th>
  111. <th>Pulang</th>
  112. <th>Poin</th>
  113. </tr>
  114. </thead>
  115. <tbody>
  116. <tr v-for="(d, index) in filtered" :key="d.id">
  117. <td v-if="cekKondisi(d)">{{ index + 1 }}</td>
  118. <td v-if="cekKondisi(d)">{{ d.nama }}</td>
  119. <td v-if="cekKondisi(d)"><span v-if="d.group_id">{{ d.group.nama }}-{{ d.groupno }}</span></td>
  120. <td v-if="cekKondisi(d)">{{ formatHari() }}</td>
  121. <td v-if="cekKondisi(d)">{{ formatTanggal() }}</td>
  122. <td v-if="cekKondisi(d)"><span v-if="d.presensis" v-html="filterJamMasuk(d.presensis, d.jadwal_karyawan.jadwal_masuk)"></span></td>
  123. <td v-if="cekKondisi(d)"><span v-if="d.presensis" v-html="filterJamIstirahatMulai(d.presensis, d.jadwal_karyawan.jadwal_masuk)"></span></td>
  124. <td v-if="cekKondisi(d)"><span v-if="d.presensis" v-html="filterJamIstirahatSelesai(d.presensis, d.jadwal_karyawan.jadwal_masuk)"></span></td>
  125. <td v-if="cekKondisi(d)"><span v-if="d.presensis" v-html="filterJamPulang(d.presensis, d.jadwal_karyawan.jadwal_masuk)"></span></td>
  126. <td v-if="cekKondisi(d)">{{ calculatePoint(d.presensis, d.jadwal_karyawan.jadwal_masuk) }}</td>
  127. </tr>
  128. </tbody>
  129. </table> -->
  130. </div>
  131. </div>
  132. </template>
  133. <script>
  134.  
  135. import axios from 'axios'
  136. import moment from 'moment'
  137.  
  138. export default {
  139. computed: {
  140. filtered() {
  141. let result
  142. let newdata_1 = this.data.filter(x => {
  143. const tanggalFromData = moment(x.tanggal_hari_ini).format('YYYY-MM-DD');
  144. const todayDate = this.tanggal;
  145.  
  146. return tanggalFromData === todayDate;
  147. });
  148. let newdata = []
  149. // for(let i = 0; i < newdata1.length; i++) {
  150. // if(this.cekKondisi(newdata1[i])) {
  151. // newdata.push(newdata1[i])
  152. // }
  153. // }
  154.  
  155. for(let i = 0; i< newdata_1.length; i++) {
  156. let terlambat_masuk = this.cekMasukStatus(newdata_1[i].slotjam_masuk, newdata_1[i].slotjam_masuk_status)
  157. let terlambat_istirahat = this.cekIstirahatSelesaiStatus(newdata_1[i].slotjam_istirahat_selesai, newdata_1[i].jam_istirahat_selesai, newdata_1[i].jam_pulang)
  158. // harus ada terlambat istirahat selesai group
  159. if(terlambat_masuk == true || terlambat_istirahat == true) {
  160. newdata.push(newdata_1[i])
  161. }
  162. }
  163.  
  164. if(this.filterGroup == '' && this.filterKaryawan == '') {
  165. result = newdata
  166. } else if(this.filterGroup != '' && this.filterKaryawan == ''){
  167. result = newdata.filter(x => x.group_id == this.filterGroup)
  168. } else if(this.filterGroup == '' && this.filterKaryawan != '') {
  169. result = newdata.filter(x => x.karyawan_id == this.filterKaryawan)
  170. } else {
  171. result = newdata.filter(x => x.karyawan_id == this.filterKaryawan && x.group_id == this.filterGroup)
  172. }
  173.  
  174. return result
  175. }
  176. },
  177. data() {
  178. return {
  179. loading: true,
  180. key: '',
  181. query: '',
  182. data: [],
  183. group: [],
  184. karyawan: [],
  185. filterGroup: '',
  186. filterKaryawan: '',
  187. tanggal: moment().format('YYYY-MM-DD'),
  188. toggleMenu: 'Harian',
  189. fields: [
  190. { key: 'index' , label: 'No.' },
  191. { key: 'nama' , label: 'Nama', sortable: true },
  192. { key: 'nama_group' , label: 'Group', sortable: true },
  193. { key: 'hari' , label: 'Hari', sortable: true },
  194. { key: 'tanggal_hari_ini' , label: 'Tanggal', sortable: true },
  195. { key: 'slotjam_masuk' , label: 'Masuk', sortable: true },
  196. { key: 'slotjam_istirahat_mulai' , label: 'Istirahat Mulai', sortable: true },
  197. { key: 'slotjam_istirahat_selesai' , label: 'Istirahat Selesai', sortable: true },
  198. { key: 'slotjam_pulang' , label: 'Pulang', sortable: true },
  199. { key: 'kalkulasi_poin_rutin' , label: 'Poin', sortable: true },
  200. ]
  201. };
  202. },
  203. props: ['exportpermission'],
  204. mounted: async function () {
  205. let data = await axios.get(
  206. process.env.MIX_APP_URL + "/presensi/apitaprutin"
  207. )
  208. this.data = data.data
  209. this.loading = false
  210. let group = await axios.get(
  211. process.env.MIX_APP_URL + "/group/api"
  212. )
  213. let karyawan = await axios.get(
  214. process.env.MIX_APP_URL + "/karyawan/apijadwal"
  215. )
  216. this.group = group.data
  217. this.karyawan = karyawan.data
  218. },
  219. methods: {
  220. search: function(key) {
  221. this.query = key
  222. },
  223. deleteSearch: function() {
  224. this.query = ''
  225. this.key = ''
  226. },
  227. enterSearch: function(e) {
  228. if (e.keyCode === 13) {
  229. this.query = e.target.value
  230. }
  231. },
  232. formatHari: function() {
  233. let hari = moment(this.tanggal).format('dddd')
  234. let result = null;
  235. switch(hari) {
  236. case 'Sunday':
  237. result = 'Minggu'
  238. break;
  239. case 'Monday':
  240. result = 'Senin'
  241. break;
  242. case 'Tuesday':
  243. result = 'Selasa'
  244. break;
  245. case 'Wednesday':
  246. result = 'Rabu'
  247. break;
  248. case 'Thursday':
  249. result = 'Kamis'
  250. break;
  251. case 'Friday':
  252. result = 'Jumat'
  253. break;
  254. case 'Saturday':
  255. result = 'Sabtu'
  256. break;
  257. default:
  258. break;
  259. }
  260. return result
  261. },
  262. formatTanggal: function() {
  263. return moment(this.tanggal).format('DD-MMMM-YYYY')
  264. },
  265. formatTanggalKolom: function(date) {
  266. return moment(date).format('DD-MMMM-YYYY')
  267. },
  268. cekKondisi: function (json) {
  269. // defaultnya false
  270. let kondisi = false
  271.  
  272. // cek hari
  273. switch(json.hari) {
  274. case 'Minggu':
  275. if(json.checkbox_harikerja_minggu == 1) {
  276. if(json.source_id_rutin != null) {
  277. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  278. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  279. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  280. // kondisi = true
  281. // }
  282. if(cek_masuk == true) {
  283. kondisi = true
  284. }
  285. }
  286. } else if(json.checkbox_harikerja_minggu_group == 1) {
  287. if(json.source_id_group_rutin) {
  288. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  289. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  290. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  291. // kondisi = true
  292. // }
  293. if(cek_masuk_group == true) {
  294. kondisi = true
  295. }
  296. }
  297. }
  298. break;
  299. case 'Senin':
  300. if(json.checkbox_harikerja_senin == 1) {
  301. if(json.source_id_rutin != null) {
  302. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  303. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  304. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  305. // kondisi = true
  306. // }
  307. if(cek_masuk == true) {
  308. kondisi = true
  309. }
  310. }
  311. } else if(json.checkbox_harikerja_senin_group == 1) {
  312. if(json.source_id_group_rutin != null) {
  313. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  314. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  315. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  316. // kondisi = true
  317. // }
  318. if(cek_masuk_group == true) {
  319. kondisi = true
  320. }
  321. }
  322. }
  323. break;
  324. case 'Selasa':
  325. if(json.checkbox_harikerja_selasa == 1) {
  326. if(json.source_id_rutin != null) {
  327. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  328. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  329. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  330. // kondisi = true
  331. // }
  332. if(cek_masuk == true) {
  333. kondisi = true
  334. }
  335. }
  336. } else if(json.checkbox_harikerja_selasa_group == 1) {
  337. if(json.source_id_group_rutin != null) {
  338. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  339. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  340. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  341. // kondisi = true
  342. // }
  343. if(cek_masuk_group == true) {
  344. kondisi = true
  345. }
  346. }
  347. }
  348. break;
  349. case 'Rabu':
  350. if(json.checkbox_harikerja_rabu == 1) {
  351. if(json.source_id_rutin != null) {
  352. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  353. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  354. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  355. // kondisi = true
  356. // }
  357. if(cek_masuk == true) {
  358. kondisi = true
  359. }
  360. }
  361. } else if(json.checkbox_harikerja_rabu_group == 1) {
  362. if(json.source_id_group_rutin != null) {
  363. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  364. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  365. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  366. // kondisi = true
  367. // }
  368. if(cek_masuk_group == true) {
  369. kondisi = true
  370. }
  371. }
  372. }
  373. break;
  374. case 'Kamis':
  375. if(json.checkbox_harikerja_kamis == 1) {
  376. if(json.source_id_rutin != null) {
  377. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  378. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  379. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  380. // kondisi = true
  381. // }
  382. if(cek_masuk == true) {
  383. kondisi = true
  384. }
  385. }
  386. } else if(json.checkbox_harikerja_kamis_group == 1) {
  387. if(json.source_id_group_rutin != null) {
  388. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  389. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  390. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  391. // kondisi = true
  392. // }
  393. if(cek_masuk_group == true) {
  394. kondisi = true
  395. }
  396. }
  397. }
  398. break;
  399. case 'Jum at':
  400. if(json.checkbox_harikerja_jumat == 1) {
  401. if(json.source_id_rutin != null) {
  402. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  403. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  404. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  405. // kondisi = true
  406. // }
  407. if(cek_masuk == true) {
  408. kondisi = true
  409. }
  410. }
  411. } else if(json.checkbox_harikerja_jumat_group == 1) {
  412. if(json.source_id_group_rutin != null) {
  413. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  414. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  415. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  416. // kondisi = true
  417. // }
  418. if(cek_masuk_group == true) {
  419. kondisi = true
  420. }
  421. }
  422. }
  423. break;
  424. case 'Sabtu':
  425. if(json.checkbox_harikerja_sabtu == 1) {
  426. if(json.source_id_rutin != null) {
  427. let cek_masuk = this.cekTelat(json.slotjam_masuk, json.jam_masuk, json.jam_istirahat_mulai, json.toleransi_keterlambatan)
  428. let cek_istirahat_selesai = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai, json.jam_pulang, json.toleransi_keterlambatan)
  429. // if(cek_masuk == true || cek_istirahat_selesai == true) {
  430. // kondisi = true
  431. // }
  432. if(cek_masuk == true) {
  433. kondisi = true
  434. }
  435. }
  436. } else if(json.checkbox_harikerja_sabtu_group == 1) {
  437. if(json.source_id_group_rutin != null) {
  438. let cek_masuk_group = this.cekTelat(json.slotjam_masuk, json.jam_masuk_group, json.jam_istirahat_mulai_group, json.toleransi_keterlambatan)
  439. let cek_istirahat_selesai_group = this.cekTelat(json.slotjam_istirahat_selesai, json.jam_istirahat_selesai_group, json.jam_pulang_group, json.toleransi_keterlambatan)
  440. // if(cek_masuk_group == true || cek_istirahat_selesai_group == true) {
  441. // kondisi = true
  442. // }
  443. if(cek_masuk_group == true) {
  444. kondisi = true
  445. }
  446. }
  447. }
  448. break;
  449. default:
  450. kondisi = false;
  451. break;
  452. }
  453. return kondisi;
  454. },
  455. filterJamMasuk: function(json, jadwal) {
  456. let jam_terpilih = '-'
  457. let hari = moment(this.tanggal).format('dddd')
  458. let jadwal_terpilih = null
  459. let tanggal_dipilih = false
  460. let adajadwal = 0
  461. for(let jd = 0; jd < jadwal.length; jd++) {
  462. switch(hari) {
  463. case 'Sunday':
  464. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  465. adajadwal = 1
  466. }
  467. break;
  468. case 'Monday':
  469. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  470. adajadwal = 1
  471. }
  472. break;
  473. case 'Tuesday':
  474. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  475. adajadwal = 1
  476. }
  477. break;
  478. case 'Wednesday':
  479. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  480. adajadwal = 1
  481. }
  482. break;
  483. case 'Thursday':
  484. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  485. adajadwal = 1
  486. }
  487. break;
  488. case 'Friday':
  489. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  490. adajadwal = 1
  491. }
  492. break;
  493. case 'Saturday':
  494. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  495. adajadwal = 1
  496. }
  497. break;
  498. default:
  499. break;
  500. }
  501.  
  502. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  503. jadwal_terpilih = jadwal[jd]
  504. }
  505. }
  506. for(let jm = 0; jm < json.length; jm++) {
  507. if(json[jm].status == 'Rutin') {
  508. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  509. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  510. let slotjam = json[jm].slotjam
  511. let status = json[jm].status
  512. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Masuk') && (tanggal_dipilih == false)) {
  513. jam_terpilih = moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm')
  514. tanggal_dipilih = true
  515. }
  516. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Terlambat Masuk') && (tanggal_dipilih == false)) {
  517. jam_terpilih = '<span style="color: red">' + moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm') + '</span>'
  518. tanggal_dipilih == true
  519. }
  520. }
  521. }
  522. return jam_terpilih;
  523. },
  524. formatJam: function(jam) {
  525. if(jam != null) {
  526. return moment(jam,"HH:mm").format("HH:mm")
  527. } else {
  528. return '-'
  529. }
  530. },
  531. cekTelat: function (jam, bataswaktu, bataswaktu_selanjutnya, toleransi_keterlambatan) {
  532. let kondisi = false
  533. let toleransi = moment.duration(toleransi_keterlambatan).asMinutes()
  534. let jam_limit = moment(bataswaktu,'HH:mm').add(toleransi, 'minutes')
  535. let jam_limit_next = moment(bataswaktu_selanjutnya,'HH:mm').subtract(toleransi, 'minutes')
  536.  
  537. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  538. kondisi = false
  539. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  540. kondisi = true
  541. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  542. kondisi = false
  543. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  544. kondisi = true
  545. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  546. kondisi = true
  547. }
  548. return kondisi;
  549. },
  550. cekMasuk: function (jam, status) {
  551. let jamtap = '-'
  552. if(jam !== null) {
  553. if(status == 'Masuk') {
  554. jamtap = moment(jam,"HH:mm").format("HH:mm")
  555. } else if(status == 'Terlambat Masuk') {
  556. jamtap = '<span style="color: red">' + moment(jam,"HH:mm").format("HH:mm") + '</span>'
  557. }
  558. }
  559. return jamtap
  560. },
  561. cekMasukStatus: function (jam, status) {
  562. let jamtap = false
  563. if(jam !== null) {
  564. if(status == 'Masuk') {
  565. jamtap = false
  566. } else if(status == 'Terlambat Masuk') {
  567. jamtap = true
  568. }
  569. }
  570. return jamtap
  571. },
  572. cekIstirahatSelesai: function (jam, bataswaktu, bataswaktu_selanjutnya) {
  573. let jamtap = '-'
  574. let jam_limit = moment(bataswaktu,'HH:mm').add(10, 'minutes')
  575. let jam_limit_next = moment(bataswaktu_selanjutnya,'HH:mm').subtract(10, 'minutes')
  576.  
  577. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  578. jamtap = moment(jam,"HH:mm").format("HH:mm")
  579. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  580. jamtap = '<span style="color: red">' + moment(jam,"HH:mm").format("HH:mm") + '</span>'
  581. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  582. jamtap = '<span style="color: red">' + moment(jam,"HH:mm").format("HH:mm") + '</span>'
  583. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  584. jamtap = '<span style="color: red">' + moment(jam,"HH:mm").format("HH:mm") + '</span>'
  585. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  586. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  587. }
  588. return jamtap
  589. },
  590. cekIstirahatSelesaiStatus: function (jam, bataswaktu, bataswaktu_selanjutnya) {
  591. let jamtap = false
  592. let jam_limit = moment(bataswaktu,'HH:mm').add(10, 'minutes')
  593. let jam_limit_next = moment(bataswaktu_selanjutnya,'HH:mm').subtract(10, 'minutes')
  594.  
  595. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  596. jamtap = false
  597. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  598. jamtap = true
  599. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  600. jamtap = true
  601. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  602. jamtap = true
  603. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  604. jamtap = false
  605. }
  606. return jamtap
  607. },
  608. cekTerlambat: function (jam, hari, bataswaktu, bataswaktu_selanjutnya, toleransi_keterlambatan) {
  609. let jamtap = '-'
  610. let toleransi = moment.duration(toleransi_keterlambatan).asMinutes()
  611. let jam_limit = moment(bataswaktu,'HH:mm').add(toleransi, 'minutes')
  612. let jam_limit_next = moment(bataswaktu_selanjutnya,'HH:mm').subtract(toleransi, 'minutes')
  613.  
  614. if(jam != null) {
  615. switch(hari) {
  616. case "Senin":
  617. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  618. jamtap = moment(jam, "HH:mm").format("HH:mm")
  619. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  620. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  621. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  622. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  623. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  624. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  625. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  626. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  627. }
  628. break;
  629. case "Selasa":
  630. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  631. jamtap = moment(jam, "HH:mm").format("HH:mm")
  632. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  633. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  634. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  635. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  636. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  637. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  638. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  639. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  640. }
  641. break;
  642. case "Rabu":
  643. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  644. jamtap = moment(jam, "HH:mm").format("HH:mm")
  645. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  646. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  647. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  648. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  649. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  650. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  651. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  652. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  653. }
  654. break;
  655. case "Kamis":
  656. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  657. jamtap = moment(jam, "HH:mm").format("HH:mm")
  658. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  659. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  660. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  661. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  662. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  663. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  664. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  665. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  666. }
  667. break;
  668. case "Jum at":
  669. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  670. jamtap = moment(jam, "HH:mm").format("HH:mm")
  671. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  672. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  673. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  674. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  675. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  676. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  677. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  678. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  679. }
  680. break;
  681. case "Sabtu":
  682. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  683. jamtap = moment(jam, "HH:mm").format("HH:mm")
  684. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  685. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  686. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  687. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  688. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  689. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  690. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  691. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  692. }
  693. break;
  694. case "Minggu":
  695. if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit) {
  696. jamtap = moment(jam, "HH:mm").format("HH:mm")
  697. } else if(jam_limit < jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit) {
  698. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  699. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") > jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  700. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  701. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") >= moment("00:00:00", "HH:mm:ss") && moment(jam, "HH:mm:ss") < jam_limit_next) {
  702. jamtap = '<span style="color: red">' + moment(jam, "HH:mm").format("HH:mm") + '</span>'
  703. } else if(jam_limit > jam_limit_next && moment(jam,"HH:mm:ss") <= jam_limit && moment(jam, "HH:mm:ss") < moment("24:00:00", "HH:mm:ss")) {
  704. jamtap = moment(jam,"HH:mm:ss").format("HH:mm")
  705. }
  706. break;
  707. default:
  708. break;
  709. }
  710. }
  711. return jamtap
  712. },
  713. cekJamMasuk: function(json, jadwal) {
  714. let jam_terpilih = '-'
  715. let hari = moment(this.tanggal).format('dddd')
  716. let jadwal_terpilih = null
  717. let tanggal_dipilih = false
  718. let adajadwal = 0
  719. for(let jd = 0; jd < jadwal.length; jd++) {
  720. switch(hari) {
  721. case 'Sunday':
  722. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  723. adajadwal = 1
  724. }
  725. break;
  726. case 'Monday':
  727. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  728. adajadwal = 1
  729. }
  730. break;
  731. case 'Tuesday':
  732. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  733. adajadwal = 1
  734. }
  735. break;
  736. case 'Wednesday':
  737. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  738. adajadwal = 1
  739. }
  740. break;
  741. case 'Thursday':
  742. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  743. adajadwal = 1
  744. }
  745. break;
  746. case 'Friday':
  747. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  748. adajadwal = 1
  749. }
  750. break;
  751. case 'Saturday':
  752. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  753. adajadwal = 1
  754. }
  755. break;
  756. default:
  757. break;
  758. }
  759.  
  760. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  761. jadwal_terpilih = jadwal[jd]
  762. }
  763. }
  764. for(let jm = 0; jm < json.length; jm++) {
  765. if(json[jm].status == 'Rutin') {
  766. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  767. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  768. let slotjam = json[jm].slotjam
  769. let status = json[jm].status
  770. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Masuk') && (tanggal_dipilih == false)) {
  771. jam_terpilih = false
  772. tanggal_dipilih = true
  773. }
  774. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Terlambat Masuk') && (tanggal_dipilih == false)) {
  775. jam_terpilih = true
  776. tanggal_dipilih == true
  777. }
  778. }
  779. }
  780. return jam_terpilih;
  781. },
  782. filterJamIstirahatMulai: function(json, jadwal) {
  783. let jam_terpilih = '-'
  784. let hari = moment(this.tanggal).format('dddd')
  785. let jadwal_terpilih = null
  786. let tanggal_dipilih =false
  787. let adajadwal = 0
  788. for(let jd = 0; jd < jadwal.length; jd++) {
  789. switch(hari) {
  790. case 'Sunday':
  791. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  792. adajadwal = 1
  793. }
  794. break;
  795. case 'Monday':
  796. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  797. adajadwal = 1
  798. }
  799. break;
  800. case 'Tuesday':
  801. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  802. adajadwal = 1
  803. }
  804. break;
  805. case 'Wednesday':
  806. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  807. adajadwal = 1
  808. }
  809. break;
  810. case 'Thursday':
  811. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  812. adajadwal = 1
  813. }
  814. break;
  815. case 'Friday':
  816. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  817. adajadwal = 1
  818. }
  819. break;
  820. case 'Saturday':
  821. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  822. adajadwal = 1
  823. }
  824. break;
  825. default:
  826. break;
  827. }
  828.  
  829. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  830. jadwal_terpilih = jadwal[jd]
  831. }
  832. }
  833. for(let jm = 0; jm < json.length; jm++) {
  834. if(json[jm].status == 'Rutin') {
  835. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  836. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  837. let slotjam = json[jm].slotjam
  838. let status = json[jm].status
  839. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Istirahat Mulai') && (tanggal_dipilih == false)) {
  840. jam_terpilih = moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm')
  841. tanggal_dipilih = true
  842. }
  843. }
  844. }
  845. return jam_terpilih;
  846. },
  847. filterJamIstirahatSelesai: function(json, jadwal, toleransi_keterlambatan) {
  848. let jam_terpilih = '-'
  849. let hari = moment(this.tanggal).format('dddd')
  850. let jadwal_terpilih = null
  851. let tanggal_dipilih = false
  852. let adajadwal = 0
  853. for(let jd = 0; jd < jadwal.length; jd++) {
  854. switch(hari) {
  855. case 'Sunday':
  856. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  857. adajadwal = 1
  858. }
  859. break;
  860. case 'Monday':
  861. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  862. adajadwal = 1
  863. }
  864. break;
  865. case 'Tuesday':
  866. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  867. adajadwal = 1
  868. }
  869. break;
  870. case 'Wednesday':
  871. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  872. adajadwal = 1
  873. }
  874. break;
  875. case 'Thursday':
  876. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  877. adajadwal = 1
  878. }
  879. break;
  880. case 'Friday':
  881. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  882. adajadwal = 1
  883. }
  884. break;
  885. case 'Saturday':
  886. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  887. adajadwal = 1
  888. }
  889. break;
  890. default:
  891. break;
  892. }
  893.  
  894. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  895. jadwal_terpilih = jadwal[jd]
  896.  
  897. for(let jm = 0; jm < json.length; jm++) {
  898. if(json[jm].status == 'Rutin') {
  899. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  900. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  901. let slotjam = json[jm].slotjam
  902. let status = json[jm].status
  903. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Istirahat Selesai') && (tanggal_dipilih == false) ) {
  904. let jam = moment(json[jm].tanggal_dan_waktu_tap)
  905. let toleransi = moment.duration(toleransi_keterlambatan).asMinutes()
  906. let jam_istirahat_selesai = moment(jadwal_terpilih.jam_istirahat_selesai,'HH:mm').add(toleransi, 'minutes')
  907. if(jam <= jam_istirahat_selesai) {
  908. jam_terpilih = moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm')
  909. } else {
  910. jam_terpilih = '<span style="color: red">' + moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm') + '</span>'
  911. }
  912. tanggal_dipilih = true
  913. }
  914. // if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Terlambat Istirahat Selesai')&& (tanggal_dipilih == false)) {
  915. // let jam = moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm')
  916. // let jam_istirahat_selesai = moment(jadwal_terpilih.jam_istirahat_selesai,'HH:mm').format('HH:mm')
  917. // if(jam <= jam_istirahat_selesai) {
  918. // jam_terpilih = moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm')
  919. // } else {
  920. // jam_terpilih = '<span style="color: red">' + moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm') + '</span>'
  921. // }
  922. // tanggal_dipilih = true
  923. // }
  924. }
  925. }
  926. }
  927. }
  928. return jam_terpilih;
  929. },
  930. cekJamIstirahatSelesai: function(json, jadwal, toleransi_keterlambatan) {
  931. let jam_terpilih = '-'
  932. let hari = moment(this.tanggal).format('dddd')
  933. let jadwal_terpilih = null
  934. let tanggal_dipilih = false
  935. let adajadwal = 0
  936. for(let jd = 0; jd < jadwal.length; jd++) {
  937. switch(hari) {
  938. case 'Sunday':
  939. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  940. adajadwal = 1
  941. }
  942. break;
  943. case 'Monday':
  944. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  945. adajadwal = 1
  946. }
  947. break;
  948. case 'Tuesday':
  949. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  950. adajadwal = 1
  951. }
  952. break;
  953. case 'Wednesday':
  954. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  955. adajadwal = 1
  956. }
  957. break;
  958. case 'Thursday':
  959. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  960. adajadwal = 1
  961. }
  962. break;
  963. case 'Friday':
  964. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  965. adajadwal = 1
  966. }
  967. break;
  968. case 'Saturday':
  969. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  970. adajadwal = 1
  971. }
  972. break;
  973. default:
  974. break;
  975. }
  976.  
  977. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  978. jadwal_terpilih = jadwal[jd]
  979.  
  980. for(let jm = 0; jm < json.length; jm++) {
  981. if(json[jm].status == 'Rutin') {
  982. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  983. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  984. let slotjam = json[jm].slotjam
  985. let status = json[jm].status
  986. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Istirahat Selesai') && (tanggal_dipilih == false) ) {
  987. let jam = moment(json[jm].tanggal_dan_waktu_tap)
  988. let toleransi = moment.duration(toleransi_keterlambatan).asMinutes()
  989. let jam_istirahat_selesai = moment(jadwal_terpilih.jam_istirahat_selesai,'HH:mm').add(toleransi, 'minutes')
  990. if(jam <= jam_istirahat_selesai) {
  991. jam_terpilih = false
  992. } else {
  993. jam_terpilih = true
  994. }
  995. tanggal_dipilih = true
  996. }
  997. }
  998. }
  999. }
  1000. }
  1001. return jam_terpilih;
  1002. },
  1003. filterJamPulang: function(json, jadwal) {
  1004. let jam_terpilih = '-'
  1005. let hari = moment(this.tanggal).format('dddd')
  1006. let jadwal_terpilih = null
  1007. let tanggal_dipilih = false
  1008. let adajadwal = 0
  1009. for(let jd = 0; jd < jadwal.length; jd++) {
  1010. switch(hari) {
  1011. case 'Sunday':
  1012. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  1013. adajadwal = 1
  1014. }
  1015. break;
  1016. case 'Monday':
  1017. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  1018. adajadwal = 1
  1019. }
  1020. break;
  1021. case 'Tuesday':
  1022. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  1023. adajadwal = 1
  1024. }
  1025. break;
  1026. case 'Wednesday':
  1027. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  1028. adajadwal = 1
  1029. }
  1030. break;
  1031. case 'Thursday':
  1032. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  1033. adajadwal = 1
  1034. }
  1035. break;
  1036. case 'Friday':
  1037. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  1038. adajadwal = 1
  1039. }
  1040. break;
  1041. case 'Saturday':
  1042. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  1043. adajadwal = 1
  1044. }
  1045. break;
  1046. default:
  1047. break;
  1048. }
  1049.  
  1050. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  1051. jadwal_terpilih = jadwal[jd]
  1052. }
  1053. }
  1054. for(let jm = 0; jm < json.length; jm++) {
  1055. if(json[jm].status == 'Rutin') {
  1056. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  1057. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  1058. let slotjam = json[jm].slotjam
  1059. let status = json[jm].status
  1060. if((tanggaltap == hariini) && (status == 'Rutin') && (slotjam == 'Pulang') && (tanggal_dipilih == false)) {
  1061. jam_terpilih = moment(json[jm].tanggal_dan_waktu_tap).format('HH:mm')
  1062. tanggal_dipilih = true
  1063. }
  1064. }
  1065. }
  1066. return jam_terpilih;
  1067. },
  1068. calculatePoint: function(json, jadwal) {
  1069. let poinjammasuk = 0
  1070. let poinjamistirahatmulai = 0
  1071. let poinjamistirahatselesai = 0
  1072. let poinjampulang = 0
  1073. let poin = 0
  1074. let hari = moment(this.tanggal).format('dddd')
  1075. let jadwal_terpilih = null
  1076. let adajadwal = 0
  1077. for(let jd = 0; jd < jadwal.length; jd++) {
  1078. switch(hari) {
  1079. case 'Sunday':
  1080. if(jadwal[jd].checkbox_harikerja_minggu == 1) {
  1081. adajadwal = 1
  1082. }
  1083. break;
  1084. case 'Monday':
  1085. if(jadwal[jd].checkbox_harikerja_senin == 1) {
  1086. adajadwal = 1
  1087. }
  1088. break;
  1089. case 'Tuesday':
  1090. if(jadwal[jd].checkbox_harikerja_selasa == 1) {
  1091. adajadwal = 1
  1092. }
  1093. break;
  1094. case 'Wednesday':
  1095. if(jadwal[jd].checkbox_harikerja_rabu == 1) {
  1096. adajadwal = 1
  1097. }
  1098. break;
  1099. case 'Thursday':
  1100. if(jadwal[jd].checkbox_harikerja_kamis == 1) {
  1101. adajadwal = 1
  1102. }
  1103. break;
  1104. case 'Friday':
  1105. if(jadwal[jd].checkbox_harikerja_jumat == 1) {
  1106. adajadwal = 1
  1107. }
  1108. break;
  1109. case 'Saturday':
  1110. if(jadwal[jd].checkbox_harikerja_sabtu == 1) {
  1111. adajadwal = 1
  1112. }
  1113. break;
  1114. default:
  1115. break;
  1116. }
  1117.  
  1118. if((jadwal_terpilih == null) && (adajadwal == 1)) {
  1119. jadwal_terpilih = jadwal[jd]
  1120. }
  1121. }
  1122. for(let jm = 0; jm < json.length; jm++) {
  1123. if(json[jm].status == 'Rutin') {
  1124. let tanggaltap = moment(json[jm].tanggal_dan_waktu_tap).format('YYYY-MM-DD')
  1125. let hariini = moment(this.tanggal).format('YYYY-MM-DD')
  1126. let slotjam = json[jm].slotjam
  1127. if((tanggaltap == hariini) && (slotjam == 'Masuk')) {
  1128. poinjammasuk = json[jm].poin
  1129. }
  1130. if((tanggaltap == hariini) && (slotjam == 'Terlambat Masuk')) {
  1131. poinjammasuk = json[jm].poin
  1132. }
  1133. if((tanggaltap == hariini) && (slotjam == 'Istirahat Mulai')) {
  1134. poinjamistirahatmulai = json[jm].poin
  1135. }
  1136. if((tanggaltap == hariini) && (slotjam == 'Istirahat Selesai')) {
  1137. poinjamistirahatselesai = json[jm].poin
  1138. }
  1139. // if((tanggaltap == hariini) && (slotjam == 'Terlambat Istirahat Selesai')) {
  1140. // poinjamistirahatselesai = json[jm].poin
  1141. // }
  1142. if((tanggaltap == hariini) && (slotjam == 'Pulang')) {
  1143. poinjampulang += json[jm].poin
  1144. }
  1145. }
  1146. }
  1147. poin = poinjammasuk + poinjamistirahatmulai + poinjamistirahatselesai + poinjampulang
  1148. return poin
  1149. }
  1150. }
  1151. };
  1152. </script>
  1153. <style lang="scss" scoped>
  1154. .b-table-sticky-header {
  1155. overflow-x: scroll !important;
  1156. overflow-y: scroll !important;
  1157. table {
  1158. tbody {
  1159. display: contents !important;
  1160. }
  1161. }
  1162. }
  1163. </style>
  1164.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement