Advertisement
vitareinforce

detail.blade.php

Mar 25th, 2021
736
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 69.04 KB | None | 0 0
  1. @extends('layouts.master')
  2.  
  3. @section('title')
  4.     Rincian Gaji
  5. @endsection
  6.  
  7. @section('css')
  8.     <style>
  9.         /* table {
  10.             border-collapse: collapse !important;
  11.             border-spacing: 0 !important;
  12.             width: 100% !important;
  13.             border: 1px solid #ddd !important;
  14.         } */
  15.  
  16.         .horizontal-scroll-wrapper {
  17.             width: 1000px;
  18.             height: 500px;
  19.             /* overflow-x: auto; */
  20.             /* overflow-y: hidden; */
  21.             /* transform-origin: right top; */
  22.         }
  23.  
  24.         .horizontal-scroll-wrapper > div {
  25.             width: 1000px;
  26.             height: 20px;
  27.             /* transform-origin: right top; */
  28.         }
  29.  
  30.         #table-upah {
  31.            table-layout: auto;
  32.             width: 5500px;
  33.             position: sticky;
  34.             overflow-x: auto;
  35.             /* transform-origin: right top; */
  36.         }
  37.  
  38.         /**
  39.             Fix container luar
  40.          */
  41.         .fixed-table-container {
  42.             overflow-y: hidden;
  43.             overflow-x: hidden;
  44.             height: 500px;
  45.         }
  46.  
  47.         /**
  48.             Fix container dalam
  49.          */
  50.         .fixed-table-body {
  51.             overflow-y: scroll;
  52.             overflow-x: scroll;
  53.             height: 500px;
  54.         }
  55.  
  56.         .thead_karyawan, tr {
  57.             display: table;
  58.             width: 5500px;
  59.             position: sticky;
  60.             top: 0;
  61.             table-layout: fixed;
  62.  
  63.             /**
  64.                 Menaruh header di lapisan z paling atas
  65.              */
  66.             z-index: 99;
  67.         }
  68.  
  69.         /* ------------------------------- */
  70.  
  71.  
  72.  
  73.         /* .thead_karyawan, tbody tr {
  74.             display: table;
  75.             width: 5500px;
  76.             position: sticky;
  77.             table-layout: fixed;
  78.         } */
  79.  
  80.         tbody {
  81.             display: block;
  82.             position: sticky;
  83.             /* overflow-y: scroll;
  84.             overflow-x: scroll; */
  85.             table-layout: auto;
  86.             /* max-height: 280px; */
  87.         }
  88.  
  89.  
  90.         th,
  91.         td {
  92.             text-align: center !important;
  93.             padding: 2px !important;
  94.         }
  95.  
  96.         tr:nth-child(even) {
  97.             background-color: #f2f2f2
  98.        }
  99.         .nomor-col {
  100.         width: 100px !important;
  101.         }
  102.         .adjust-col {
  103.         width: 150px !important;
  104.         }
  105.  
  106.     </style>
  107. @endsection
  108.  
  109. @section('content')
  110.     <div class="toast float-right" style="position: absolute; right: 0; top: 0;">
  111.         <div class="toast-header">
  112.             <strong class="mr-auto">Penyimpanan Data</strong>
  113.         </div>
  114.         <div class="toast-body">
  115.             Data Telah Tersimpan
  116.         </div>
  117.     </div>
  118.     <div class="row">
  119.         <div class="card-body">
  120.             <div class="form-group">
  121.                 <a href="{{ route('gaji.index') }}" class="btn btn-outline-success btn-sm">kembali</a>
  122.             </div>
  123.             <h5 class="card-title">{{ date('d M Y', strtotime($periodegaji->tanggal_mulai_periode)) }} s/d
  124.                 {{ date('d M Y', strtotime($periodegaji->tanggal_selesai_periode)) }}</h5>
  125.             <hr>
  126.             <div class="row">
  127.                 <div class="col-sm-12">
  128.                     <p>Daftar Upah Pegawai</p>
  129.                     <div class="col-lg-12 my-2 my-lg-0 float-right" style="padding-right: 10px">
  130.                     </div>
  131.                 </div>
  132.                 <div class="col-sm-12">
  133.                     <div style="overflow-x:hidden; width: 1000px;">
  134.                         <div class="row">
  135.                             <div class="col-sm-12">
  136.                                 <div class="float-left">
  137.                                     <form id="savedraft" method="post" action="{{ route('gaji.savedraft') }}">
  138.                                         @csrf
  139.                                         <input type="hidden" id="gajikaryawandata" name="gajikaryawandata" value="" />
  140.                                         <button id="simpanperubahan" type="submit" class="btn btn-primary">Simpan Perubahan</button>
  141.                                     </form>
  142.                                 </div>
  143.                                 <div class="float-left">
  144.                                     <form id="bayarsemua" method="post" action="{{ route('gaji.bayarsemua') }}">
  145.                                         @csrf
  146.                                         <input type="hidden" id="gajikaryawandatadibayar" name="gajikaryawandatadibayar" value="" />
  147.                                         <button id="bayarsemua" type="submit" class="btn btn-success">Bayar</button>
  148.                                     </form>
  149.                                 </div>
  150.                                 <div class="dropdown">
  151.                                     <button type="button" class="btn btn-primary dropdown-toggle float-right aksi" data-toggle="dropdown">
  152.                                     <i class="fas fa-file-export"></i>
  153.                                     </button>
  154.                                     <div class="dropdown-menu">
  155.                                         <button onclick="exportExcelPeriode(`Gaji Periode {{ date('d', strtotime($periodegaji->tanggal_mulai_periode)) }} s/d {{ date('d M Y', strtotime($periodegaji->tanggal_selesai_periode)) }}`)" class="dropdown-item" >Export data Karyawan</button>
  156.                                         <button onclick="exportExcel(`Gaji Group Periode {{ date('d', strtotime($periodegaji->tanggal_mulai_periode)) }} s/d {{ date('d M Y', strtotime($periodegaji->tanggal_selesai_periode)) }}`)" class="dropdown-item" >Export data Group</button>
  157.                                     </div>
  158.  
  159.                                 </div>
  160.                                 <div class="form-inline my-2 my-lg-0 float-right ">
  161.                                     <select class="form-control float-right" id="frm-pilih" name="pilih">
  162.                                         <option value="karyawan" {{ old('status') == 'karyawan' ? 'selected' : '' }}>Karyawan</option>
  163.                                         <option value="grup" {{ old('status') == 'grup' ? 'selected' : '' }}>Grup</option>
  164.                                     </select>
  165.                                 </div>
  166.  
  167.                                 <select id="selectgroup" class="float-right" style="height: 38px !important; border-radius: 0.25rem; border: 1px solid #ced4da;">
  168.                                     <option value="-">Pilih Group</option>
  169.                                     @foreach ($group as $data)
  170.                                     <option value="{{$data->id}}">{{$data->nama}}</option>
  171.                                     @endforeach
  172.                                 </select>
  173.                             </div>
  174.                         </div>
  175.                         <div class="row">
  176.                             <!--isi grup-->
  177.                             <div id="divFrmkaryawan" class="col-lg-12 new-div" style="width: 1000px; height: 600px;">
  178.                                 <table id="tabel-upah" data-toggle="table"
  179.                                     data-url="/gaji/api/{{ request()->route()->parameter('id') }}" data-pagination="false"
  180.                                     data-pagination-h-align="left" data-pagination-detail-h-align="right" data-search="true"
  181.                                     data-show-search-button="true" data-show-fullscreen="true" data-show-export="false"
  182.                                     data-search-on-enter-key="true" data-filter-control="true" data-page-list="[10, 20, 50, 100, all]"
  183.                                     data-sticky-header="true"
  184.                                     class="col-lg-12 table table-striped table-hover">
  185.                                     <thead class="thead_karyawan">
  186.                                         <tr>
  187.                                             <th data-searchable="false" data-sortable="false" data-field="index" data-formatter="formatUrutan" class="nomor-col">No.</th>
  188.                                             <th data-searchable="true" data-sortable="true" data-field="nama_karyawan">Nama</th>
  189.                                             <th data-searchable="true" data-sortable="true" data-field="group_karyawan">Group</th>
  190.                                             <th data-searchable="true" data-sortable="true" data-field="poin" class="adjust-col">Poin<br />Rutin</th>
  191.                                             <th data-searchable="true" data-sortable="true" data-field="poin_ngeplus" class="adjust-col">Poin<br />Ngeplus</th>
  192.                                             <th data-searchable="true" data-sortable="true" data-field="upah_rutin_harian" data-formatter="formatRupiah">Upah Rutin Harian</th>
  193.                                             <th data-searchable="true" data-sortable="true" data-field="upah_kotor" data-formatter="formatRupiah">Upah Kotor</th>
  194.                                             <th data-searchable="true" data-sortable="true" data-field="nominal_dasar" data-formatter="formatBayarUpahDasarRupiah">Upah Dasar</th>
  195.                                             {{-- <th data-searchable="false" data-sortable="false" data-field="bayar_upah_dasar" data-formatter="formatBayar" data-events="checkBayarUpahDasar">Bayar Upah Dasar</th> <!-- check --> --}}
  196.                                             <th data-searchable="true" data-sortable="true" data-field="nominal_bonus" data-formatter="formatRupiah">Bonus</th>
  197.                                             {{-- <th data-searchable="false" data-sortable="false" data-field="bayar_bonus" data-formatter="formatBayarBonus" data-events="checkBayarBonus">Bayar Bonus</th> <!-- check --> --}}
  198.                                             <th data-searchable="true" data-sortable="true" data-field="total_potongan_tunggakan" data-formatter="formatRupiah">Potongan Tunggakan</th>
  199.                                             <th data-searchable="false" data-sortable="false" data-field="bayar_nominal_tunggakan" data-formatter="formatBayarTunggakan" data-events="checkBayarPotonganTunggakan">Bayar Potongan <br> Tunggakan</th><!-- check -->
  200.                                             <th data-searchable="true" data-sortable="true" data-field="nominal_cicilan" data-formatter="formatRupiah">Potongan Cicilan <br> (100%)</th>
  201.                                             <th data-searchable="false" data-sortable="false" data-field="persentase_cicilan" data-formatter="formatPersentaseCicilan" data-events="hitungPersentaseCicilan" class="adjust-col">Persentase <br> Cicilan</th><!-- check -->
  202.                                             <th data-searchable="true" data-sortable="true" data-field="nominal_calculated_cicilan" data-formatter="inputCicilan"  data-events="inputanCicilan" >Potongan Cicilan <br> (terhitung)</th>
  203.                                             <th data-searchable="false" data-sortable="false" data-field="bayar_nominal_cicilan" data-formatter="formatBayarCicilan" data-events="checkBayarPotonganCicilan">Bayar Potongan <br> Cicilan</th> <!-- check -->
  204.                                             <th data-searchable="true" data-sortable="true" data-field="total_upah_sebelum_cicilan" data-formatter="formatRupiah">Total Upah <br /> Sebelum Cicilan</th>
  205.                                             <th data-searchable="true" data-sortable="true" data-field="nominal_jamsostek" data-formatter="formatRupiah">Potongan Jamsostek</th>
  206.                                             <th data-searchable="false" data-sortable="false" data-field="bayar_nominal_jamsostek" data-formatter="formatBayarJamsostek" data-events="checkBayarPotonganJamsostek">Bayar Potongan <br> Jamsostek</th><!-- check -->
  207.                                             <th data-searchable="true" data-sortable="true" data-field="nominal_bpjs" data-formatter="formatRupiah">Potongan BPJS</th>
  208.                                             <th data-searchable="false" data-sortable="false" data-field="bayar_nominal_bpjs" data-formatter="formatBayarBPJS" data-events="checkBayarPotonganBpjs">Bayar Potongan <br> BPJS</th> <!-- check -->
  209.                                             <th data-searchable="true" data-sortable="true" data-field="total_tunggakan" data-formatter="formatRupiah">Total Potongan</th>
  210.                                             <th data-searchable="true" data-sortable="true" data-field="total" data-formatter="formatRupiah">Upah Bersih</th>
  211.                                             {{-- <th data-searchable="false" data-sortable="false" data-field="total" data-formatter="formatBayarSemua" class="adjust-col">Bayar Semua</th> <!-- check --> --}}
  212.                                             <th data-searchable="true" data-sortable="true" data-field="nominal" data-formatter="formatTotalTerbayarkanRupiah">Total Terbayarkan</th>
  213.                                             {{-- <th data-searchable="false" data-sortable="false" data-field="total" data-formatter="formatBayarSesungguhnya" >Bayar Semua</th> --}}
  214.                                             <th data-searchable="false" data-sortable="false" data-field="slip" data-formatter="formatSlip" class="adjust-col">Slip</th>
  215.                                             {{-- <th data-searchable="true" data-sortable="true" data-field="tanggal_pembayaran" data-formatter="formatTanggal">Tanggal Pembayaran</th> --}}
  216.                                         </tr>
  217.                                     </thead>
  218.                                     <tbody></tbody>
  219.                                 </table>
  220.                             </div>
  221.  
  222.                             <!--isi grup-->
  223.                             <div id="divFrmgrup" class="col-lg-12 margin-tb mt-3 mb-3 form-pilih-div" style="display:none">
  224.                                 <table id="tabel-upahgrup" data-toggle="table"
  225.                                     data-url="/gaji/apigroup/{{ request()->route()->parameter('id') }}" data-pagination="false"
  226.                                     data-pagination-h-align="left" data-pagination-detail-h-align="right" data-search="true"
  227.                                     data-show-search-button="true" data-show-fullscreen="true" data-show-export="false"
  228.                                     data-filter-control="true" data-page-list="[10, 20, 50, 100, all]"
  229.                                     data-search-on-enter-key="true" class="col-lg-12 table table-striped table-hover">
  230.                                     <thead>
  231.                                         <tr>
  232.                                             <th data-searchable="false" data-sortable="false" data-field="index" data-formatter="formatUrutan" class="nomor-col">No.</th>
  233.                                             <th data-searchable="true" data-sortable="true" data-field="nama">Nama Group</th>
  234.                                             <th data-searchable="true" data-sortable="true" data-field="total_karyawan" class="adjust-col">Total <br> Karyawan</th>
  235.                                             <th data-searchable="true" data-sortable="true" data-field="total_poin" class="adjust-col">Total Poin</th>
  236.                                             <th data-searchable="true" data-sortable="true" data-field="upah_kotor" class="adjust-col" data-formatter="formatRupiah">Upah Kotor</th>
  237.                                             <th data-searchable="true" data-sortable="true" data-field="upa_bersih" class="adjust-col" data-formatter="formatRupiah">Upah Bersih</th>
  238.                                             <th data-searchable="true" data-sortable="true" data-field="bpjs" class="adjust-col" data-formatter="formatRupiah">Bpjs</th>
  239.                                             <th data-searchable="true" data-sortable="true" data-field="jamsostek" class="adjust-col" data-formatter="formatRupiah">Jamsostek</th>
  240.                                             <th data-searchable="true" data-sortable="true" data-field="cicilan" class="adjust-col" data-formatter="formatRupiah">Cicilan</th>
  241.                                             <th data-searchable="true" data-sortable="true" data-field="total_upah_group" data-formatter="formatRupiah">Total <br> Pembayaran <br> Upah</th>
  242.                                             {{-- <th data-searchable="false" data-sortable="true" data-field="button_bayar" data-formatter="formatBayarGroup" class="nomor-col">Bayar</th> --}}
  243.                                             <th data-searchable="true" data-sortable="true" data-field="tanggal_pembayaran" data-formatter="formatTanggal">Tanggal Pembayaran</th>
  244.                                             <th data-searchable="false" data-sortable="true" data-field="button_print" data-formatter="formatSlipGroup" class="adjust-col" >Slip Gaji</th>
  245.                                         </tr>
  246.                                     </thead>
  247.                                 </table>
  248.                             </div>
  249.                         </div>
  250.                     </div>
  251.                 </div>
  252.             </div>
  253.         </div>
  254.     </div>
  255.  
  256.  
  257.     </div>
  258. @endsection
  259.  
  260. @section('js')
  261. <link rel="stylesheet" href="extensions/sticky-header/bootstrap-table-sticky-header.css">
  262. <script src="extensions/sticky-header/bootstrap-table-sticky-header.js"></script>
  263.     <script>
  264.         function exportExcelPeriode(name) {
  265.             let table_html = $('#tabel-upah').bootstrapTable()[0].outerHTML;
  266.             // convert ke json
  267.             let table_json = HtmlTableToJson.parse(table_html).results[0];
  268.             for(let i = 0; i < table_json.length; i++) {
  269.                 delete table_json[i]['2']
  270.                 delete table_json[i]['Bayar']
  271.                 delete table_json[i]['Bayar Upah Dasar']
  272.                 delete table_json[i]['Bayar Potongan Tunggakan']
  273.                 delete table_json[i]['Bayar Potongan Cicilan']
  274.                 delete table_json[i]['Bayar Potongan Jamsostek']
  275.                 delete table_json[i]['Bayar Potongan BPJS']
  276.                 delete table_json[i]['Bayar Bonus']
  277.                 delete table_json[i]['Bayar Semua']
  278.                 delete table_json[i]['Slip']
  279.             }
  280.             JSONToCSVConvertor(table_json, name, 1);
  281.         }
  282.  
  283.         //GRUP UPAH EXPORT
  284.         function exportExcel(name) {
  285.             let table_html = $('#tabel-upahgrup').bootstrapTable()[0].outerHTML;
  286.             // convert ke json
  287.             let table_json = HtmlTableToJson.parse(table_html).results[0];
  288.             for (let i = 0; i < table_json.length; i++) {
  289.                 delete table_json[i]['2']
  290.             }
  291.             JSONToCSVConvertor(table_json, name, 1);
  292.         }
  293.  
  294.         function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
  295.  
  296.             //If JSONData is not an object then JSON.parse will parse the JSON string in an Object
  297.             var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
  298.             var CSV = '';
  299.             //This condition will generate the Label/Header
  300.             if (ShowLabel) {
  301.                 var row = "";
  302.  
  303.                 //This loop will extract the label from 1st index of on array
  304.                 for (var index in arrData[0]) {
  305.                     //Now convert each value to string and comma-seprated
  306.                     row += index + ',';
  307.                 }
  308.                 row = row.slice(0, -1);
  309.                 //append Label row with line break
  310.                 CSV += row + '\r\n';
  311.             }
  312.  
  313.             //1st loop is to extract each row
  314.             for (var i = 0; i < arrData.length; i++) {
  315.                 var row = "";
  316.                 //2nd loop will extract each column and convert it in string comma-seprated
  317.                 for (var index in arrData[i]) {
  318.                     row += '"' + arrData[i][index] + '",';
  319.                 }
  320.                 row.slice(0, row.length - 1);
  321.                 //add a line break after each row
  322.                 CSV += row + '\r\n';
  323.             }
  324.  
  325.             if (CSV == '') {
  326.                 alert("Invalid data");
  327.                 return;
  328.             }
  329.  
  330.  
  331.             //this trick will generate a temp "a" tag
  332.             var link = document.createElement("a");
  333.             link.id = "lnkDwnldLnk";
  334.  
  335.             //this part will append the anchor tag and remove it after automatic click
  336.             document.body.appendChild(link);
  337.  
  338.             var csv = CSV;
  339.             blob = new Blob([csv], {
  340.                 type: 'text/csv'
  341.             });
  342.             var csvUrl = window.webkitURL.createObjectURL(blob);
  343.             var filename = (ReportTitle || 'UserExport') + '.csv';
  344.             $("#lnkDwnldLnk")
  345.                 .attr({
  346.                     'download': filename,
  347.                     'href': csvUrl
  348.                 });
  349.  
  350.             $('#lnkDwnldLnk')[0].click();
  351.             document.body.removeChild(link);
  352.         }
  353.         //END EXPORT UPAH GRUP
  354.  
  355.     </script>
  356.     <script>
  357.         $(function() {
  358.  
  359.             $table_upah = $('#tabel-upah').bootstrapTable();
  360.             $table_upahgroup = $('#tabel-upahgrup').bootstrapTable();
  361.  
  362.             if($('#gajikaryawandata').val() == '') {
  363.                 $('#simpanperubahan').attr('disabled','disabled');
  364.             } else {
  365.                 $('#simpanperubahan').removeAttr('disabled');
  366.             }
  367.  
  368.  
  369.             $('#savedraft').submit(function(e){
  370.                 e.preventDefault();
  371.  
  372.                 let gaji = $('#tabel-upah').bootstrapTable('getData');
  373.                 console.log(gaji);
  374.  
  375.                 $('#gajikaryawandata').val(JSON.stringify(gaji));
  376.                 $('#gajikaryawandatadibayar').val(JSON.stringify(gaji));
  377.  
  378.                 $.ajax({
  379.                     url: "{{ route('gaji.savedraft') }}",
  380.                     type: 'post',
  381.                     data: $('#savedraft').serialize(),
  382.                     success: function(){
  383.                         $('.toast').toast('show');
  384.                     }
  385.                 });
  386.             });
  387.  
  388.             $('#bayarsemua').submit(function(e){
  389.                 e.preventDefault();
  390.  
  391.                 let gaji = $('#tabel-upah').bootstrapTable('getData');
  392.                 console.log(gaji);
  393.  
  394.                 for(i = 0; i < gaji.length; i++) {
  395.                     // jamsostek
  396.                     gaji[i].nominal = gaji[i].nominal - gaji[i].nominal_jamsostek;
  397.                     gaji[i].sisa = gaji[i].total - gaji[i].nominal_jamsostek;
  398.                     console.log("jamsostek");
  399.                     console.log(gaji[i].total);
  400.                     console.log(gaji[i].nominal);
  401.                     console.log(gaji[i].sisa);
  402.  
  403.                     // bpjs
  404.                     gaji[i].nominal = gaji[i].nominal - gaji[i].nominal_bpjs;
  405.                     gaji[i].sisa = gaji[i].total - gaji[i].nominal_bpjs;
  406.                     console.log("bpjs");
  407.                     console.log(gaji[i].total);
  408.                     console.log(gaji[i].nominal);
  409.                     console.log(gaji[i].sisa);
  410.  
  411.                     // tunggakan
  412.                     gaji[i].nominal = gaji[i].nominal - gaji[i].total_potongan_tunggakan;
  413.                     gaji[i].sisa = gaji[i].total - gaji[i].total_potongan_tunggakan;
  414.                     console.log("tunggakan");
  415.                     console.log(gaji[i].total);
  416.                     console.log(gaji[i].nominal);
  417.                     console.log(gaji[i].sisa);
  418.  
  419.                     // cicilan
  420.                     gaji[i].nominal = gaji[i].nominal - gaji[i].nominal_calculated_cicilan;
  421.                     gaji[i].sisa = gaji[i].total - gaji[i].nominal_calculated_cicilan;
  422.                     console.log("cicilan");
  423.                     console.log(gaji[i].total);
  424.                     console.log(gaji[i].nominal);
  425.                     console.log(gaji[i].sisa);
  426.                 }
  427.  
  428.                 $('#gajikaryawandata').val(JSON.stringify(gaji));
  429.                 $('#gajikaryawandatadibayar').val(JSON.stringify(gaji));
  430.  
  431.                 $.ajax({
  432.                     url: "{{ route('gaji.bayarsemua') }}",
  433.                     type: 'post',
  434.                     data: $('#bayarsemua').serialize(),
  435.                     success: function(){
  436.                         $('.toast').toast('show');
  437.                         // save ke frontend
  438.                         $('#tabel-upah').bootstrapTable('refresh');
  439.                     }
  440.                 });
  441.             });
  442.  
  443.             // $("table").on("click", "tr td", function () {
  444.             //     var col = $(this).index();
  445.             //     if(col != 2){
  446.             //         console.log("OK");
  447.             //     }
  448.             // });
  449.  
  450.             // run on change for the selectbox
  451.             $("#frm-pilih").change(function() {
  452.                 updatePilihDivs();
  453.             });
  454.  
  455.             // handle the updating of the duration divs
  456.             function updatePilihDivs() {
  457.                 // hide all form-duration-divs
  458.                 // $('.form-pilih-div').hide();
  459.  
  460.                 var divKey = $("#frm-pilih option:selected").val();
  461.                 // $('#divFrm' + divKey).show();
  462.  
  463.                 if (divKey == "grup") {
  464.                     $('#divFrmkaryawan').hide();
  465.                     $('#divFrmgrup').show();
  466.                     $('thead tr, tbody tr').css("width","2000px");
  467.  
  468.                     // $('.horizontal-scroll-wrapper2').css("width","auto").show();
  469.                 }
  470.                 if (divKey == "karyawan") {
  471.                     $('#divFrmgrup').hide();
  472.                     $('#divFrmkaryawan').show();
  473.                     $('thead tr,tbody tr').css("width","5500px");
  474.  
  475.                     // $('.horizontal-scroll-wrapper').css("width","1060px").show();
  476.                 }
  477.  
  478.             }
  479.  
  480.             $('#selectgroup').change(function(){
  481.                 var selected = $(this).children("option:selected").val();
  482.                 console.log(selected);
  483.                 if(selected != '-') {
  484.                     $table_upah.bootstrapTable('filterBy', {
  485.                         group_id: parseInt(selected)
  486.                     });
  487.                     $table_upahgroup.bootstrapTable('filterBy', {
  488.                         id: parseInt(selected)
  489.                     });
  490.                 } else {
  491.                     $table_upah.bootstrapTable('filterBy', {});
  492.                     $table_upahgroup.bootstrapTable('filterBy', {});
  493.                 }
  494.             });
  495.  
  496.             // run at load, for the currently selected div to show up
  497.             updatePilihDivs();
  498.  
  499.         });
  500.  
  501.         function formatUrutan(value, row, index) {
  502.             return index + 1;
  503.         }
  504.  
  505.         function formatNik(value, row) {
  506.             if (row.group_karyawan) {
  507.                 return row.group_karyawan;
  508.             } else {
  509.                 return '-'
  510.             }
  511.         }
  512.  
  513.         function formatTanggal(value, row, index) {
  514.             return moment(value).format("DD MMMM yyyy");
  515.         }
  516.  
  517.         function formatRupiah(value) {
  518.             return "Rp " + new Intl.NumberFormat().format(value) + ".00";
  519.         }
  520.  
  521.         function formatTotalTerbayarkanRupiah(value) {
  522.             var totalDibayar = `<br/><b><p>Rp` + new Intl.NumberFormat().format(value) + `.00</p></b>`;
  523.             return totalDibayar;
  524.         }
  525.  
  526.         function formatTotalTunggakan(value, row) {
  527.             let tunggakan = 0;
  528.             if (row.status_pembayaran_bpjs == 'next') {
  529.                 tunggakan = tunggakan + row.nominal_bpjs;
  530.             }
  531.             if (row.status_pembayaran_jamsostek == 'next') {
  532.                 tunggakan = tunggakan + row.nominal_jamsostek;
  533.             }
  534.             if (row.status_pembayaran_cicilan == 'next') {
  535.                 tunggakan = tunggakan + row.nominal_cicilan;
  536.             }
  537.             if (row.status_pembayaran_tunggakan == 'next') {
  538.                 tunggakan = tunggakan + row.nominal_tunggakan;
  539.             }
  540.             return "Rp " + new Intl.NumberFormat().format(tunggakan) + ".00";
  541.         }
  542.  
  543.         function formatBayar(value, row, index) {
  544.             var tombolBayar = null;
  545.             if (row.status_pembayaran_upahdasar == 'bayar') {
  546.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  547.             } else if (row.status_pembayaran_upahdasar == 'siap bayar') {
  548.                 tombolBayar = `<a class="btn btn-sm btn-default">siap dibayar</a>`;
  549.             } else {
  550.                 tombolBayar =
  551.                     // `<a href="{{ route('gaji.storebayarupahdasaronly', ':id') }}" class="btn btn-sm btn-info">tambah</a>`;
  552.                     `<input class="chkBayarUpahDasar" type="checkbox" name="bayar" id="bayar_` + index + `" />`;
  553.             }
  554.             tombolBayar = tombolBayar.replace(':id', row.id);
  555.             tombolBayar = tombolBayar.replace(':karyawan_id', row.id);
  556.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  557.  
  558.             return tombolBayar;
  559.         }
  560.  
  561.         function formatBayarUpahDasarRupiah(value, row) {
  562.             var tombolBayar = `<br /><a href=":id/bayarupah/:karyawan_id">Rp ` + new Intl.NumberFormat().format(value) +
  563.                 `.00</a>`;
  564.  
  565.             tombolBayar = tombolBayar.replace(':id', row.id);
  566.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  567.             tombolBayar = tombolBayar.replace(':karyawan_id', row.karyawan_id);
  568.             return tombolBayar;
  569.         }
  570.  
  571.         function formatBayarGroup(value, row) {
  572.             var tombolBayar = null;
  573.             var counter = 0;
  574.             for (let k = 0; k < row.karyawans.length; k++) {
  575.                 for (let g = 0; g < row.karyawans[k].gajis.length; g++) {
  576.                     if (row.karyawans[k].gajis[g].is_final == 'bayar' && (row.karyawans[k].gajis[g].periodegaji_id ==
  577.                             {{ request()->route()->parameter('id') }})) {
  578.                         counter = counter + 1;
  579.                     }
  580.                 }
  581.  
  582.             }
  583.  
  584.             if (counter == row.karyawans.length) {
  585.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  586.             } else {
  587.                 tombolBayar = `<a href=":id/bayarupahgroup/:group_id" class="btn btn-sm btn-success">bayarkan</a>`
  588.                 tombolBayar = tombolBayar.replace(':id', "{{ request()->route()->parameter('id') }}");
  589.                 tombolBayar = tombolBayar.replace(':group_id', row.id);
  590.             }
  591.  
  592.             // if (row.is_final == 'bayar') {
  593.             //     tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  594.             // } else {
  595.             //     tombolBayar = `<a href=":id/bayarupahgroup/:group_id" class="btn btn-sm btn-success">bayarkan</a>`
  596.             // }
  597.  
  598.  
  599.             return tombolBayar;
  600.         }
  601.  
  602.         function inputCicilan(value, row, index) {
  603.             let status = '';
  604.             if(row.total_setengah_hari !== undefined && row.total_setengah_hari >= 5 && row.poin > 1) {
  605.                 status = 'readonly';
  606.             }
  607.             let inputan = `<input class="form-control inputCicilan" id="input_nominal_calculated_cicilan_` + index + `" value=Rp.`+ new Intl.NumberFormat().format(value)+`,00 ` +status+` readonly />`;
  608.             return inputan;
  609.         }
  610.  
  611.         function formatPersentaseCicilan(value, row, index) {
  612.             let status = '';
  613.             // if(row.total_setengah_hari !== undefined && row.total_setengah_hari >= 5 && row.poin > 1) {
  614.             //     status = 'style="display:none"';
  615.             // }
  616.             var kalkulasi = 0;
  617.             var dropdownPersentase = null;
  618.             var dropdownPersentaseAwal = `<div `+status+`><select class="form-control persentaseCicilan" id="persentaseCicilan_`+ index +`">`;
  619.             var nol = ``;
  620.             var lima = ``;
  621.             var sepuluh = ``;
  622.             var limabelas = ``;
  623.             var duapuluh = ``;
  624.             var dualima = ``;
  625.             var tigapuluh = ``;
  626.             var tigalima = ``;
  627.             var empatpuluh = ``;
  628.             var empatlima = ``;
  629.             var limapuluh = ``;
  630.             var limalima = ``;
  631.             var enampuluh = ``;
  632.             var enamlima = ``;
  633.             var tujuhpuluh = ``;
  634.             var tujuhlima = ``;
  635.             var delapanpuluh = ``;
  636.             var delapanlima = ``;
  637.             var sembilanpuluh = ``;
  638.             var sembilanlima = ``;
  639.             var seratus = ``;
  640.  
  641.             // if(row.poinfull >= 5){
  642.             //     delapanpuluh = `<option value="80">80%</option>`;
  643.             //     delapanlima = `<option value="85">85%</option>`;
  644.             //     sembilanpuluh = `<option value="90">90%</option>`;
  645.             //     sembilanlima = `<option value="95">95%</option>`;
  646.             //     seratus = `<option value="100" selected>100%</option>`;
  647.             //     kalkulasi = row.nominal_cicilan * (100/100);
  648.             // }else if(row.poinfull >= 1 && row.poinfull <= 1.75){
  649.             //     nol = `<option value="0">0%</option>`;
  650.             //     lima = `<option value="5">5%</option>`;
  651.             //     sepuluh = `<option value="10">10%</option>`;
  652.             //     limabelas = `<option value="15">15%</option>`;
  653.             //     duapuluh = `<option value="20" selected>20%</option>`;
  654.             //     seratus = `<option value="100">100%</option>`;
  655.             //     kalkulasi = row.nominal_cicilan * (20/100);
  656.             // }else if(row.poinfull >= 2 && row.poinfull <= 2.75){
  657.             //     duapuluh = `<option value="20">20%</option>`;
  658.             //     dualima = `<option value="25">25%</option>`;
  659.             //     tigapuluh = `<option value="30">30%</option>`;
  660.             //     tigalima = `<option value="35">35%</option>`;
  661.             //     empatpuluh = `<option value="40" selected>40%</option>`;
  662.             //     seratus = `<option value="100">100%</option>`;
  663.             //     kalkulasi = row.nominal_cicilan * (40/100);
  664.             // }else if(row.poinfull >= 3 && row.poinfull <= 3.75){
  665.             //     empatpuluh = `<option value="40">40%</option>`;
  666.             //     empatlima = `<option value="45">45%</option>`;
  667.             //     limapuluh = `<option value="50">50%</option>`;
  668.             //     limalima = `<option value="55">55%</option>`;
  669.             //     enampuluh = `<option value="60" selected>60%</option>`;
  670.             //     seratus = `<option value="100">100%</option>`;
  671.             //     kalkulasi = row.nominal_cicilan * (60/100);
  672.             // }else if(row.poinfull >= 4 && row.poinfull >= 4.75){
  673.             //     enampuluh = `<option value="60">60%</option>`;
  674.             //     enamlima = `<option value="65">65%</option>`;
  675.             //     tujuhpuluh = `<option value="70">70%</option>`;
  676.             //     tujuhlima = `<option value="75">75%</option>`;
  677.             //     delapanpuluh = `<option value="80" selected>80%</option>`;
  678.             //     seratus = `<option value="100">100%</option>`;
  679.             //     kalkulasi = row.nominal_cicilan * (80/100);
  680.             // }else{
  681.             //     nol = `<option value="0" selected>0%</option>`;
  682.             //     lima = `<option value="5">5%</option>`;
  683.             //     sepuluh = `<option value="10">10%</option>`;
  684.             //     limabelas = `<option value="15">15%</option>`;
  685.             //     duapuluh = `<option value="20">20%</option>`;
  686.             //     seratus = `<option value="100">100%</option>`;
  687.             //     kalkulasi = row.nominal_cicilan * (0/100);
  688.             // }
  689.  
  690.             switch(row.persentase_cicilan) {
  691.                 case 0:
  692.                     nol = `<option value="0" selected>0%</option>`;
  693.                     lima = `<option value="5">5%</option>`;
  694.                     sepuluh = `<option value="10">10%</option>`;
  695.                     limabelas = `<option value="15">15%</option>`;
  696.                     duapuluh = `<option value="20">20%</option>`;
  697.                     seratus = `<option value="100">100%</option>`;
  698.                     kalkulasi = row.nominal_cicilan * (0/100);
  699.                     break;
  700.                 case 5:
  701.                     nol = `<option value="0">0%</option>`;
  702.                     lima = `<option value="5" selected>5%</option>`;
  703.                     sepuluh = `<option value="10">10%</option>`;
  704.                     limabelas = `<option value="15">15%</option>`;
  705.                     duapuluh = `<option value="20">20%</option>`;
  706.                     seratus = `<option value="100">100%</option>`;
  707.                     kalkulasi = row.nominal_cicilan * (5/100);
  708.                     break;
  709.                 case 10:
  710.                     nol = `<option value="0">0%</option>`;
  711.                     lima = `<option value="5">5%</option>`;
  712.                     sepuluh = `<option value="10" selected>10%</option>`;
  713.                     limabelas = `<option value="15">15%</option>`;
  714.                     duapuluh = `<option value="20">20%</option>`;
  715.                     seratus = `<option value="100">100%</option>`;
  716.                     kalkulasi = row.nominal_cicilan * (10/100);
  717.                     break;
  718.                 case 15:
  719.                     nol = `<option value="0">0%</option>`;
  720.                     lima = `<option value="5">5%</option>`;
  721.                     sepuluh = `<option value="10">10%</option>`;
  722.                     limabelas = `<option value="15" selected>15%</option>`;
  723.                     duapuluh = `<option value="20">20%</option>`;
  724.                     seratus = `<option value="100">100%</option>`;
  725.                     kalkulasi = row.nominal_cicilan * (15/100);
  726.                     break;
  727.                 case 20:
  728.                     nol = `<option value="0">0%</option>`;
  729.                     lima = `<option value="5">5%</option>`;
  730.                     sepuluh = `<option value="10">10%</option>`;
  731.                     limabelas = `<option value="15">15%</option>`;
  732.                     duapuluh = `<option value="20" selected>20%</option>`;
  733.                     seratus = `<option value="100">100%</option>`;
  734.                     kalkulasi = row.nominal_cicilan * (20/100);
  735.                     break;
  736.                 case 25:
  737.                     duapuluh = `<option value="20">20%</option>`;
  738.                     dualima = `<option value="25" selected>25%</option>`;
  739.                     tigapuluh = `<option value="30">30%</option>`;
  740.                     tigalima = `<option value="35">35%</option>`;
  741.                     empatpuluh = `<option value="40">40%</option>`;
  742.                     seratus = `<option value="100">100%</option>`;
  743.                     kalkulasi = row.nominal_cicilan * (25/100);
  744.                     break;
  745.                 case 30:
  746.                     duapuluh = `<option value="20">20%</option>`;
  747.                     dualima = `<option value="25">25%</option>`;
  748.                     tigapuluh = `<option value="30" selected>30%</option>`;
  749.                     tigalima = `<option value="35">35%</option>`;
  750.                     empatpuluh = `<option value="40">40%</option>`;
  751.                     seratus = `<option value="100">100%</option>`;
  752.                     kalkulasi = row.nominal_cicilan * (30/100);
  753.                     break;
  754.                 case 35:
  755.                     duapuluh = `<option value="20">20%</option>`;
  756.                     dualima = `<option value="25">25%</option>`;
  757.                     tigapuluh = `<option value="30">30%</option>`;
  758.                     tigalima = `<option value="35" selected>35%</option>`;
  759.                     empatpuluh = `<option value="40" selected>40%</option>`;
  760.                     seratus = `<option value="100">100%</option>`;
  761.                     kalkulasi = row.nominal_cicilan * (35/100);
  762.                     break;
  763.                 case 40:
  764.                     duapuluh = `<option value="20">20%</option>`;
  765.                     dualima = `<option value="25">25%</option>`;
  766.                     tigapuluh = `<option value="30">30%</option>`;
  767.                     tigalima = `<option value="35">35%</option>`;
  768.                     empatpuluh = `<option value="40" selected>40%</option>`;
  769.                     seratus = `<option value="100">100%</option>`;
  770.                     kalkulasi = row.nominal_cicilan * (40/100);
  771.                     break;
  772.                 case 45:
  773.                     empatpuluh = `<option value="40">40%</option>`;
  774.                     empatlima = `<option value="45" selected>45%</option>`;
  775.                     limapuluh = `<option value="50">50%</option>`;
  776.                     limalima = `<option value="55">55%</option>`;
  777.                     enampuluh = `<option value="60">60%</option>`;
  778.                     seratus = `<option value="100">100%</option>`;
  779.                     kalkulasi = row.nominal_cicilan * (45/100);
  780.                     break;
  781.                 case 50:
  782.                     empatpuluh = `<option value="40">40%</option>`;
  783.                     empatlima = `<option value="45">45%</option>`;
  784.                     limapuluh = `<option value="50" selected>50%</option>`;
  785.                     limalima = `<option value="55">55%</option>`;
  786.                     enampuluh = `<option value="60">60%</option>`;
  787.                     seratus = `<option value="100">100%</option>`;
  788.                     kalkulasi = row.nominal_cicilan * (50/100);
  789.                     break;
  790.                 case 55:
  791.                     empatpuluh = `<option value="40">40%</option>`;
  792.                     empatlima = `<option value="45">45%</option>`;
  793.                     limapuluh = `<option value="50">50%</option>`;
  794.                     limalima = `<option value="55" selected>55%</option>`;
  795.                     enampuluh = `<option value="60">60%</option>`;
  796.                     seratus = `<option value="100">100%</option>`;
  797.                     kalkulasi = row.nominal_cicilan * (55/100);
  798.                     break;
  799.                 case 60:
  800.                     empatpuluh = `<option value="40">40%</option>`;
  801.                     empatlima = `<option value="45">45%</option>`;
  802.                     limapuluh = `<option value="50">50%</option>`;
  803.                     limalima = `<option value="55">55%</option>`;
  804.                     enampuluh = `<option value="60" selected>60%</option>`;
  805.                     seratus = `<option value="100">100%</option>`;
  806.                     kalkulasi = row.nominal_cicilan * (60/100);
  807.                     break;
  808.                 case 65:
  809.                     enampuluh = `<option value="60">60%</option>`;
  810.                     enamlima = `<option value="65" selected>65%</option>`;
  811.                     tujuhpuluh = `<option value="70">70%</option>`;
  812.                     tujuhlima = `<option value="75">75%</option>`;
  813.                     delapanpuluh = `<option value="80">80%</option>`;
  814.                     seratus = `<option value="100">100%</option>`;
  815.                     kalkulasi = row.nominal_cicilan * (65/100);
  816.                     break;
  817.                 case 70:
  818.                     enampuluh = `<option value="60">60%</option>`;
  819.                     enamlima = `<option value="65">65%</option>`;
  820.                     tujuhpuluh = `<option value="70" selected>70%</option>`;
  821.                     tujuhlima = `<option value="75">75%</option>`;
  822.                     delapanpuluh = `<option value="80">80%</option>`;
  823.                     seratus = `<option value="100">100%</option>`;
  824.                     kalkulasi = row.nominal_cicilan * (70/100);
  825.                     break;
  826.                 case 75:
  827.                     enampuluh = `<option value="60">60%</option>`;
  828.                     enamlima = `<option value="65">65%</option>`;
  829.                     tujuhpuluh = `<option value="70">70%</option>`;
  830.                     tujuhlima = `<option value="75" selected>75%</option>`;
  831.                     delapanpuluh = `<option value="80">80%</option>`;
  832.                     seratus = `<option value="100">100%</option>`;
  833.                     kalkulasi = row.nominal_cicilan * (75/100);
  834.                     break;
  835.                 case 80:
  836.                     enampuluh = `<option value="60">60%</option>`;
  837.                     enamlima = `<option value="65">65%</option>`;
  838.                     tujuhpuluh = `<option value="70">70%</option>`;
  839.                     tujuhlima = `<option value="75">75%</option>`;
  840.                     delapanpuluh = `<option value="80" selected>80%</option>`;
  841.                     seratus = `<option value="100">100%</option>`;
  842.                     kalkulasi = row.nominal_cicilan * (80/100);
  843.                     break;
  844.                 case 85:
  845.                     delapanpuluh = `<option value="80">80%</option>`;
  846.                     delapanlima = `<option value="85" selected>85%</option>`;
  847.                     sembilanpuluh = `<option value="90">90%</option>`;
  848.                     sembilanlima = `<option value="95">95%</option>`;
  849.                     seratus = `<option value="100">100%</option>`;
  850.                     kalkulasi = row.nominal_cicilan * (85/100);
  851.                     break;
  852.                 case 90:
  853.                     delapanpuluh = `<option value="80">80%</option>`;
  854.                     delapanlima = `<option value="85">85%</option>`;
  855.                     sembilanpuluh = `<option value="90" selected>90%</option>`;
  856.                     sembilanlima = `<option value="95">95%</option>`;
  857.                     seratus = `<option value="100">100%</option>`;
  858.                     kalkulasi = row.nominal_cicilan * (90/100);
  859.                     break;
  860.                 case 95:
  861.                     delapanpuluh = `<option value="80">80%</option>`;
  862.                     delapanlima = `<option value="85">85%</option>`;
  863.                     sembilanpuluh = `<option value="90">90%</option>`;
  864.                     sembilanlima = `<option value="95" selected>95%</option>`;
  865.                     seratus = `<option value="100">100%</option>`;
  866.                     kalkulasi = row.nominal_cicilan * (95/100);
  867.                     break;
  868.                 case 100:
  869.                     delapanpuluh = `<option value="80">80%</option>`;
  870.                     delapanlima = `<option value="85">85%</option>`;
  871.                     sembilanpuluh = `<option value="90">90%</option>`;
  872.                     sembilanlima = `<option value="95">95%</option>`;
  873.                     seratus = `<option value="100" selected>100%</option>`;
  874.                     kalkulasi = row.nominal_cicilan * (100/100);
  875.                     break;
  876.                 default:
  877.                     break;
  878.             }
  879.  
  880.             var dropdownPersentaseAkhir = `<select id="persentaseCicilan">`;
  881.             dropdownPersentase = dropdownPersentaseAwal +
  882.                                  nol +
  883.                                  lima +
  884.                                  sepuluh +
  885.                                  limabelas +
  886.                                  duapuluh +
  887.                                  dualima +
  888.                                  tigapuluh +
  889.                                  tigalima +
  890.                                  empatpuluh +
  891.                                  empatlima +
  892.                                  limapuluh +
  893.                                  limalima +
  894.                                  enampuluh +
  895.                                  enamlima +
  896.                                  tujuhpuluh +
  897.                                  tujuhlima +
  898.                                  delapanpuluh +
  899.                                  delapanlima +
  900.                                  sembilanpuluh +
  901.                                  sembilanlima +
  902.                                  seratus +
  903.                                  dropdownPersentaseAkhir;
  904.             // row.nominal_calculated_cicilan = kalkulasi;
  905.             return dropdownPersentase;
  906.         }
  907.  
  908.         window.hitungPersentaseCicilan = {
  909.             'change .persentaseCicilan': function (e, value, row, index) {
  910.                 var persentase = e.target.value;
  911.                 row.nominal_calculated_cicilan = (persentase / 100) * row.nominal_cicilan;
  912.                 row.persentase_cicilan = persentase;
  913.                 $('#input_nominal_calculated_cicilan_' + index).val(`Rp.`+new Intl.NumberFormat().format(row.nominal_calculated_cicilan)+`,00`);
  914.                 $('#persenrtaseCicilan' + index).val(persentase);
  915.                 $('#row_' + index).val(JSON.stringify(row));
  916.                 $('#submit_' + index).val(JSON.stringify(row));
  917.  
  918.                 // Ambil data 1 tabel utuh
  919.                 $data = $('#tabel-upah').bootstrapTable('getData');
  920.                 $('#gajikaryawandata').val(JSON.stringify($data));
  921.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  922.                 $('#simpanperubahan').removeAttr('disabled');
  923.             }
  924.         }
  925.  
  926.         window.inputanCicilan = {
  927.             'input .inputCicilan': function (e, value, row, index) {
  928.                 row.nominal_calculated_cicilan = e.target.value;
  929.                 $('#input_nominal_calculated_cicilan_' + index).val(row.nominal_calculated_cicilan);
  930.                 $('#row_' + index).val(JSON.stringify(row));
  931.                 $('#submit_' + index).val(JSON.stringify(row));
  932.  
  933.                 // Ambil data 1 tabel utuh
  934.                 $data = $('#tabel-upah').bootstrapTable('getData');
  935.                 $('#gajikaryawandata').val(JSON.stringify($data));
  936.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  937.                 $('#simpanperubahan').removeAttr('disabled');
  938.             }
  939.         }
  940.  
  941.         window.checkBayarUpahDasar = {
  942.             'change .chkBayarUpahDasar': function (e, value, row, index) {
  943.                 console.log(e.target.checked);
  944.                 if(e.target.checked == true) {
  945.                     row.status_pembayaran_upahdasar = "siap bayar";
  946.                     $('#rowUpahDasar_' + index).val(JSON.stringify(row));
  947.  
  948.                     // Ambil data 1 tabel utuh
  949.                     $data = $('#tabel-upah').bootstrapTable('getData');
  950.                     $('#gajikaryawandata').val(JSON.stringify($data));
  951.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  952.                     $('#simpanperubahan').removeAttr('disabled');
  953.                     console.log($data);
  954.                 } else {
  955.                     row.status_pembayaran_upahdasar = "selected";
  956.                     $('#rowUpahDasar_' + index).val(JSON.stringify(row));
  957.  
  958.                     // Ambil data 1 tabel utuh
  959.                     $data = $('#tabel-upah').bootstrapTable('getData');
  960.                     $('#gajikaryawandata').val(JSON.stringify($data));
  961.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  962.                     $('#simpanperubahan').removeAttr('disabled');
  963.                     console.log($data);
  964.                 }
  965.             }
  966.         }
  967.  
  968.         window.checkBayarBonus = {
  969.             'change .chkBayarBonus': function (e, value, row, index) {
  970.                 if(e.target.checked == true) {
  971.                     row.status_pembayaran_bonus = "siap bayar";
  972.                     $('#rowBonus_' + index).val(JSON.stringify(row));
  973.  
  974.                     // Ambil data 1 tabel utuh
  975.                     $data = $('#tabel-upah').bootstrapTable('getData');
  976.                     $('#gajikaryawandata').val(JSON.stringify($data));
  977.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  978.                     $('#simpanperubahan').removeAttr('disabled');
  979.                     console.log($data);
  980.                 } else {
  981.                     row.status_pembayaran_bonus = "selected";
  982.                     $('#rowBonus_' + index).val(JSON.stringify(row));
  983.  
  984.                     // Ambil data 1 tabel utuh
  985.                     $data = $('#tabel-upah').bootstrapTable('getData');
  986.                     $('#gajikaryawandata').val(JSON.stringify($data));
  987.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  988.                     $('#simpanperubahan').removeAttr('disabled');
  989.                     console.log($data);
  990.                 }
  991.             }
  992.         }
  993.  
  994.         window.checkBayarPotonganTunggakan = {
  995.             'change .chkBayarPotonganTunggakan': function (e, value, row, index) {
  996.                 if(e.target.checked == true) {
  997.                     row.status_pembayaran_tunggakan = "siap bayar";
  998.                     $('#rowPotonganTunggakan_' + index).val(JSON.stringify(row));
  999.  
  1000.                     // Ambil data 1 tabel utuh
  1001.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1002.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1003.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1004.                     $('#simpanperubahan').removeAttr('disabled');
  1005.                     console.log($data);
  1006.                 } else {
  1007.                     row.status_pembayaran_tunggakan = "selected";
  1008.                     $('#rowPotonganTunggakan_' + index).val(JSON.stringify(row));
  1009.  
  1010.                     // Ambil data 1 tabel utuh
  1011.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1012.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1013.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1014.                     $('#simpanperubahan').removeAttr('disabled');
  1015.                     console.log($data);
  1016.                 }
  1017.             }
  1018.         }
  1019.  
  1020.         window.checkBayarPotonganCicilan = {
  1021.             'checked .chkBayarPotonganCicilan': function (e, value, row, index) {
  1022.                 if(e.target.checked == true) {
  1023.                     row.status_pembayaran_cicilan = "siap bayar";
  1024.                     $('#rowPotonganCicilan_' + index).val(JSON.stringify(row));
  1025.  
  1026.                     // Ambil data 1 tabel utuh
  1027.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1028.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1029.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1030.                     $('#simpanperubahan').removeAttr('disabled');
  1031.                     console.log($data);
  1032.                 } else {
  1033.                     row.status_pembayaran_cicilan = "selected";
  1034.                     $('#rowPotonganCicilan_' + index).val(JSON.stringify(row));
  1035.  
  1036.                     // Ambil data 1 tabel utuh
  1037.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1038.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1039.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1040.                     $('#simpanperubahan').removeAttr('disabled');
  1041.                     console.log($data);
  1042.                 }
  1043.             }
  1044.         }
  1045.  
  1046.         window.checkBayarPotonganJamsostek = {
  1047.             'change .chkBayarPotonganJamsostek': function (e, value, row, index) {
  1048.                 if(e.target.checked == true) {
  1049.                     row.status_pembayaran_jamsostek = "siap bayar";
  1050.                     $('#rowPotonganJamsostek_' + index).val(JSON.stringify(row));
  1051.  
  1052.                     // Ambil data 1 tabel utuh
  1053.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1054.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1055.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1056.                     $('#simpanperubahan').removeAttr('disabled');
  1057.                 } else {
  1058.                     row.status_pembayaran_jamsostek = "selected";
  1059.                     $('#rowPotonganJamsostek_' + index).val(JSON.stringify(row));
  1060.  
  1061.                     // Ambil data 1 tabel utuh
  1062.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1063.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1064.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1065.                     $('#simpanperubahan').removeAttr('disabled');
  1066.                 }
  1067.             }
  1068.         }
  1069.  
  1070.         window.checkBayarPotonganBpjs = {
  1071.             'checked .chkBayarPotonganBpjs': function (e, value, row, index) {
  1072.                 if(e.target.checked == true) {
  1073.                     row.status_pembayaran_bpjs = "siap bayar";
  1074.                     $('#rowPotonganBpjs_' + index).val(JSON.stringify(row));
  1075.  
  1076.                     // Ambil data 1 tabel utuh
  1077.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1078.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1079.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1080.                     $('#simpanperubahan').removeAttr('disabled');
  1081.                     console.log($data);
  1082.                 } else {
  1083.                     row.status_pembayaran_bpjs = "selected";
  1084.                     $('#rowPotonganBpjs_' + index).val(JSON.stringify(row));
  1085.  
  1086.                     // Ambil data 1 tabel utuh
  1087.                     $data = $('#tabel-upah').bootstrapTable('getData');
  1088.                     $('#gajikaryawandata').val(JSON.stringify($data));
  1089.                     $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1090.                     $('#simpanperubahan').removeAttr('disabled');
  1091.                     console.log($data);
  1092.                 }
  1093.             }
  1094.         }
  1095.  
  1096.         function formatBayarBonus(value, row ,index) {
  1097.             var tombolBayar = null;
  1098.             // var tombolBayar = `<form method="post" action="{{ route('gaji.storebayarbonusonly',':id') }}">`;
  1099.             // tombolBayar = `@csrf`;
  1100.             if (row.status_pembayaran_bonus == 'bayar') {
  1101.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1102.             } else if (row.status_pembayaran_bonus == 'siap bayar') {
  1103.                 tombolBayar = `<a class="btn btn-sm btn-default">siap dibayar</a>`;
  1104.             } else if (row.status_pembayaran_bonus == 'tidak dibayar') {
  1105.                 tombolBayar = `<a class="btn btn-sm btn-danger">tidak dibayar</a>`;
  1106.             } else {
  1107.                 if(row.checkbox_bonus == 1) {
  1108.                     tombolBayar = `<input class="chkBayarBonus" type="checkbox" name="bayarbonus" id="bayarbonus_` + index + `" checked />`;
  1109.                     row.status_pembayaran_bonus = "siap bayar";
  1110.                 } else {
  1111.                     tombolBayar = `<input class="chkBayarBonus" type="checkbox" name="bayarbonus" id="bayarbonus_` + index + `" />`;
  1112.                     row.status_pembayaran_bonus = "selected";
  1113.                 }
  1114.                 // Ambil data 1 tabel utuh
  1115.                 $data = $('#tabel-upah').bootstrapTable('getData');
  1116.                 $('#gajikaryawandata').val(JSON.stringify($data));
  1117.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1118.             }
  1119.             // tombolBayar = '</form>';
  1120.             tombolBayar = tombolBayar.replace(':id', row.id);
  1121.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1122.             return tombolBayar;
  1123.         }
  1124.  
  1125.         function formatBayarTunggakan(value, row,index) {
  1126.             var tombolBayar = null;
  1127.             // var tombolBayar = `<form method="post" action="{{ route('gaji.storebayartunggakanonly',':id') }}">`;
  1128.             // tombolBayar = `@csrf`;
  1129.             // tombolBayar += `<input type="hidden" id="row_` + index + `"  name="row" value='` + JSON.stringify(row) + `' />`;
  1130.  
  1131.             if (row.status_pembayaran_tunggakan == 'siap bayar') {
  1132.                 tombolBayar = `<a class="btn btn-sm btn-default">siap dibayar</a>`;
  1133.             } else if (row.status_pembayaran_tunggakan == 'bayar') {
  1134.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1135.             } else if (row.status_pembayaran_tunggakan == 'next') {
  1136.                 tombolBayar = `<a class="btn btn-sm btn-default">bayar nanti</a>`;
  1137.             } else if (row.status_pembayaran_tunggakan == 'tunggak') {
  1138.                 tombolBayar = `<a class="btn btn-sm btn-danger">tunggak</a>`;
  1139.             } else {
  1140.                 if(row.checkbox_tunggakan == 1) {
  1141.                     tombolBayar = `<input class="chkBayarPotonganTunggakan" type="checkbox" name="bayartunggakan" id="bayartunggakan_` + index + `" checked />`;
  1142.                     row.status_pembayaran_tunggakan = "siap bayar";
  1143.                 } else {
  1144.                     tombolBayar = `<input class="chkBayarPotonganTunggakan" type="checkbox" name="bayartunggakan" id="bayartunggakan_` + index + `" />`;
  1145.                     row.status_pembayaran_tunggakan = "selected";
  1146.                 }
  1147.                 // Ambil data 1 tabel utuh
  1148.                 $data = $('#tabel-upah').bootstrapTable('getData');
  1149.                 $('#gajikaryawandata').val(JSON.stringify($data));
  1150.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1151.             }
  1152.             // tombolBayar = '</form>';
  1153.             tombolBayar = tombolBayar.replace(':id', row.id);
  1154.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1155.             return tombolBayar;
  1156.         }
  1157.  
  1158.         function formatBayarCicilan(value, row, index) {
  1159.             var tombolBayar = `<form method="post" action="{{ route('gaji.storebayarcicilanonly',':id') }}">`;
  1160.             tombolBayar += `@csrf`;
  1161.             tombolBayar += `<input type="hidden" id="row_` + index + `"  name="row" value='` + JSON.stringify(row) + `' />`;
  1162.             if (row.status_pembayaran_cicilan == 'siap bayar') {
  1163.                 tombolBayar += `<a class="btn btn-sm btn-default">siap dibayar</a>`;
  1164.             } else if (row.status_pembayaran_cicilan == 'bayar') {
  1165.                 tombolBayar += `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1166.             } else if (row.status_pembayaran_cicilan == 'next') {
  1167.                 tombolBayar += `<a class="btn btn-sm btn-default">bayar nanti</a>`;
  1168.             } else if (row.status_pembayaran_cicilan == 'tidak dibayar') {
  1169.                 tombolBayar += `<a class="btn btn-sm btn-danger">tidak dibayar</a>`;
  1170.             } else {
  1171.                 // tombolBayar += `<a href="{{ route('gaji.storebayarcicilanonly', ':id') }}" class="btn btn-sm btn-info">tambah</a>`;
  1172.                 // tombolBayar += `<button type="submit" class="btn btn-sm btn-info">tambah</button>`;
  1173.                 if(row.checkbox_cicilan == 1) {
  1174.                     tombolBayar += `<input class="chkBayarPotonganCicilan" type="checkbox" name="bayarcicilan" id="bayarcicilan_` + index + `" checked />`;
  1175.                     row.status_pembayaran_cicilan = "siap bayar";
  1176.                 } else {
  1177.                     tombolBayar += `<input class="chkBayarPotonganCicilan" type="checkbox" name="bayarcicilan" id="bayarcicilan_` + index + `" />`;
  1178.                     row.status_pembayaran_cicilan = "selected";
  1179.                 }
  1180.                 // Ambil data 1 tabel utuh
  1181.                 $data = $('#tabel-upah').bootstrapTable('getData');
  1182.                 $('#gajikaryawandata').val(JSON.stringify($data));
  1183.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1184.             }
  1185.             tombolBayar += '</form>';
  1186.             tombolBayar = tombolBayar.replace(':id', row.id);
  1187.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1188.             return tombolBayar;
  1189.         }
  1190.  
  1191.         function formatBayarJamsostek(value, row ,index) {
  1192.             var tombolBayar = null;
  1193.             // var tombolBayar = `<form method="post" action="{{ route('gaji.storebayarjamsostekonly',':id') }}">`;
  1194.             // tombolBayar += `@csrf`;
  1195.  
  1196.             if (row.status_pembayaran_jamsostek == 'siap bayar') {
  1197.                 tombolBayar = `<a class="btn btn-sm btn-default">siap dibayar</a>`;
  1198.             } else if (row.status_pembayaran_jamsostek == 'bayar') {
  1199.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1200.             } else if (row.status_pembayaran_jamsostek == 'next') {
  1201.                 tombolBayar = `<a class="btn btn-sm btn-default">bayar nanti</a>`;
  1202.             } else if (row.status_pembayaran_jamsostek == 'tunggak') {
  1203.                 tombolBayar = `<a class="btn btn-sm btn-danger">tunggak</a>`;
  1204.             } else {
  1205.                 if(row.checkbox_jamsostek == 1) {
  1206.                     tombolBayar = `<input class="chkBayarPotonganJamsostek" type="checkbox" name="bayarjamsostek" id="bayarjamsostek_` + index + `" checked />`;
  1207.                     row.status_pembayaran_jamsostek == 'siap bayar';
  1208.                 } else {
  1209.                     tombolBayar = `<input class="chkBayarPotonganJamsostek" type="checkbox" name="bayarjamsostek" id="bayarjamsostek_` + index + `" />`;
  1210.                     row.status_pembayaran_jamsostek == 'selected'
  1211.                 }
  1212.                 // Ambil data 1 tabel utuh
  1213.                 $data = $('#tabel-upah').bootstrapTable('getData');
  1214.                 $('#gajikaryawandata').val(JSON.stringify($data));
  1215.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1216.             }
  1217.             // tombolBayar = '</form>';
  1218.  
  1219.             tombolBayar = tombolBayar.replace(':id', row.id);
  1220.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1221.             return tombolBayar;
  1222.         }
  1223.  
  1224.         function formatBayarBPJS(value, row ,index) {
  1225.             var tombolBayar = null;
  1226.  
  1227.             // var tombolBayar = `<form method="post" action="{{ route('gaji.storebayarnbpjsonly',':id') }}">`;
  1228.             // tombolBayar += `@csrf`;
  1229.  
  1230.  
  1231.             if (row.status_pembayaran_bpjs == 'siap bayar') {
  1232.                 tombolBayar = `<a class="btn btn-sm btn-default">siap dibayar</a>`;
  1233.             } else if (row.status_pembayaran_bpjs == 'bayar') {
  1234.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1235.             } else if (row.status_pembayaran_bpjs == 'next') {
  1236.                 tombolBayar = `<a class="btn btn-sm btn-default">bayar nanti</a>`;
  1237.             } else if (row.status_pembayaran_bpjs == 'tunggak') {
  1238.                 tombolBayar = `<a class="btn btn-sm btn-danger">tunggak</a>`;
  1239.             } else {
  1240.                 if(row.checkbox_bpjs == 1) {
  1241.                     tombolBayar = `<input class="chkBayarPotonganBpjs" type="checkbox" name="bayarbpjs" id="bayarbpjs_` + index + `" checked />`;
  1242.                     row.status_pembayaran_bpjs == 'siap bayar';
  1243.                 } else {
  1244.                     tombolBayar = `<input class="chkBayarPotonganBpjs" type="checkbox" name="bayarbpjs" id="bayarbpjs_` + index + `" />`;
  1245.                     row.status_pembayaran_bpjs == 'selected';
  1246.                 }
  1247.                 // Ambil data 1 tabel utuh
  1248.                 $data = $('#tabel-upah').bootstrapTable('getData');
  1249.                 $('#gajikaryawandata').val(JSON.stringify($data));
  1250.                 $('#gajikaryawandatadibayar').val(JSON.stringify($data));
  1251.             }
  1252.             // tombolBayar = '</form>';
  1253.             tombolBayar = tombolBayar.replace(':id', row.id);
  1254.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1255.             tombolBayar = tombolBayar.replace(':karyawan_id', row.id);
  1256.             return tombolBayar;
  1257.         }
  1258.  
  1259.         function formatBayarSemua(value, row, index) {
  1260.             var tombolBayar = `<form method="post" action="{{ route('gaji.storebayarupahonly', ':id') }}">`;
  1261.             tombolBayar += `@csrf`;
  1262.             tombolBayar += `<input type="hidden" id="submit_` + index + `"  name="row" value='` + JSON.stringify(row) + `' />`;
  1263.             if (row.status_pembayaran_semua_kalkulasi == 'siap bayar' ||
  1264.                 row.status_pembayaran_upahdasar == 'siap bayar' ||
  1265.                 row.status_pembayaran_bonus == 'siap bayar' ||
  1266.                 row.status_pembayaran_jamsostek == 'siap bayar' ||
  1267.                 row.status_pembayaran_cicilan == 'siap bayar' ||
  1268.                 row.status_pembayaran_bpjs == 'siap bayar' ||
  1269.                 row.status_pembayaran_tunggakan == 'siap bayar') {
  1270.                 tombolBayar += `<a class="btn btn-sm btn-default">bayar satuan</a>`;
  1271.             } else if (row.status_pembayaran_semua_kalkulasi == 'bayar') {
  1272.                 tombolBayar += `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1273.             } else {
  1274.                 // tombolBayar += `<button type="submit" class="btn btn-sm btn-info">tambah semua</buton>`;
  1275.                 tombolBayar += `<input type="checkbox" name="bayartunggakan" id="bayarsemua_` + index + `" />`;;
  1276.             }
  1277.             tombolBayar += '</form>';
  1278.             tombolBayar = tombolBayar.replace(':id', row.id);
  1279.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1280.             return tombolBayar;
  1281.         }
  1282.  
  1283.         function formatBayarSesungguhnya(value, row) {
  1284.             var tombolBayar = null;
  1285.             if (row.status_pembayaran_semua_kalkulasi == 'bayar') {
  1286.                 tombolBayar = `<a class="btn btn-sm btn-default">sudah dibayar</a>`;
  1287.             } else if (row.status_pembayaran_upahdasar != 'siap bayar') {
  1288.                 tombolBayar = `<a class="btn btn-sm btn-light">upah dasar belum ditambah</a>`;
  1289.             } else {
  1290.                 tombolBayar =
  1291.                     `<a href="{{ route('gaji.storebayarsesungguhnya', ':id') }}" class="btn btn-sm btn-success">bayarkan</a>`;
  1292.             }
  1293.             tombolBayar = tombolBayar.replace(':id', row.id);
  1294.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1295.             return tombolBayar;
  1296.         }
  1297.  
  1298.         function formatSlip(value, row) {
  1299.             var tombolBayar = `<a href=":id/slipgajikaryawan" class="btn btn-sm btn-primary">cetak</a>`;
  1300.             tombolBayar = tombolBayar.replace(':id', row.id);
  1301.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1302.             return tombolBayar;
  1303.         }
  1304.  
  1305.         function formatSlipGroup(value, row) {
  1306.             var tombolBayar = `<a href=":id/slipgajigroup/:group_id" class="btn btn-sm btn-primary">cetak</a>`;
  1307.             tombolBayar = tombolBayar.replace(':id', "{{ request()->route()->parameter('id') }}");
  1308.             tombolBayar = tombolBayar.replace(':group_id', row.id);
  1309.             return tombolBayar;
  1310.         }
  1311.  
  1312.     </script>
  1313.  
  1314. @endsection
  1315.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement