vitareinforce

perhitungan upah

Apr 4th, 2021
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 153.03 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use App\Bonus;
  6. use App\Bpjs;
  7. use App\Cicilan;
  8. use App\Gaji;
  9. use App\Group;
  10. use App\IzinPenguranganCicilan;
  11. use App\Jamsostek;
  12. use App\Karyawan;
  13. use App\PengajuanUtang;
  14. use App\PeriodeGaji;
  15. use App\Presensi;
  16. use App\SettingPoin;
  17. use App\SettingUpah;
  18. use App\ClosingTime;
  19. use App\JadwalHariKerja;
  20. use App\JadwalIzin;
  21. use App\JadwalLibur;
  22. use App\JadwalNgeplus;
  23. use App\RiwayatPinjaman;
  24. use App\SettingPresensi;
  25. use App\Jadwal;
  26. use App\Pemberitahuan;
  27. use Carbon\Carbon;
  28. use DatePeriod;
  29. use Illuminate\Http\Request;
  30. use Illuminate\Support\Facades\Auth;
  31. use Exporter;
  32. use Response;
  33. use PDF;
  34.  
  35. class GajiController extends Controller
  36. {
  37.     public function export()
  38.     {
  39.         $data = Bpjs::all();
  40.         return Exporter::make('Excel')->load($data)->stream("export.xlsx");
  41.     }
  42.  
  43.     public function exportupahgrup($id)
  44.     {
  45.         $periodegaji = PeriodeGaji::find($id);
  46.         $group = Group::with('karyawans.gajis.periodegaji')->get();
  47.         $result = array();
  48.         array_push($result, array('Nomor Urut', 'Nama Group', 'Total karyawan', 'Total Poin', 'Total Pembayaran Upah'));
  49.         for ($g = 0; $g < count($group); $g++) {
  50.             $nomorurut = $g + 1;
  51.             $nama = $group[$g]->nama;
  52.             $tot_kar = $group[$g]->karyawans->count();
  53.             $poin = 0;
  54.             $upah = 0;
  55.             for ($k = 0; $k < count($group[$g]->karyawans); $k++) {
  56.                 if (isset($group[$g]->karyawans[$k]->gajis)) {
  57.                     for ($gj = 0; $gj < count($group[$g]->karyawans[$k]->gajis); $gj++) {
  58.                         if ($group[$g]->karyawans[$k]->gajis[$gj]->periodegaji_id == $id) {
  59.                             $poin = $poin + $group[$g]->karyawans[$k]->gajis[$gj]->poin;
  60.                             $upah = $upah + $group[$g]->karyawans[$k]->gajis[$gj]->total;
  61.                         }
  62.                     }
  63.                 }
  64.             }
  65.             array_push($result, array(
  66.                 $nomorurut,
  67.                 $nama,
  68.                 $tot_kar,
  69.                 $poin,
  70.                 $upah,
  71.  
  72.             ));
  73.         }
  74.  
  75.         return Exporter::make('Excel')->load(collect($result))->stream("export.xlsx");
  76.     }
  77.  
  78.     public function exportpdfupahgrup($id)
  79.     {
  80.         $periodegaji = PeriodeGaji::find($id);
  81.         $periodemulai = $periodegaji->tanggal_mulai_periode;
  82.         $periodeselesai = $periodegaji->tanggal_selesai_periode;
  83.  
  84.         $group = Group::with('karyawans.gajis.periodegaji')->get();
  85.         for ($g = 0; $g < count($group); $g++) {
  86.             $poin = 0;
  87.             $upah = 0;
  88.             $upah_kotor = 0;
  89.             $upah_bersih = 0;
  90.             $bpjs = 0;
  91.             $jamsostek = 0;
  92.             $cicilan = 0;
  93.             for ($k = 0; $k < count($group[$g]->karyawans); $k++) {
  94.                 if (isset($group[$g]->karyawans[$k]->gajis)) {
  95.                     for ($gj = 0; $gj < count($group[$g]->karyawans[$k]->gajis); $gj++) {
  96.                         if ($group[$g]->karyawans[$k]->gajis[$gj]->periodegaji_id == $id) {
  97.                             $poin = $poin + $group[$g]->karyawans[$k]->gajis[$gj]->poin;
  98.                             $upah = $upah + $group[$g]->karyawans[$k]->gajis[$gj]->total;
  99.                             $bpjs = $bpjs + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_bpjs;
  100.                             $jamsostek = $jamsostek + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_jamsostek;
  101.                             $cicilan = $cicilan + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_cicilan;
  102.                             $upah_kotor = $upah_kotor + ($group[$g]->karyawans[$k]->gajis[$gj]->nominal_dasar + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_bonus);
  103.                             $upah_bersih = $upah_bersih + (($group[$g]->karyawans[$k]->gajis[$gj]->nominal_dasar + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_bonus) - ($group[$g]->karyawans[$k]->gajis[$gj]->nominal_bpjs + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_jamsostek + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_cicilan));
  104.                         }
  105.                     }
  106.                 }
  107.             }
  108.             // $group[$g]->setAttribute('periode_mulai', $periodemulai);
  109.             // $group[$g]->setAttribute('periode_selesai', $periodeselesai);
  110.             $group[$g]->setAttribute('total_karyawan', count($group[$g]->karyawans));
  111.             $group[$g]->setAttribute('total_poin', $poin);
  112.             $group[$g]->setAttribute('total_upah_group', $upah);
  113.             $group[$g]->setAttribute('upah_kotor', $upah_kotor);
  114.             $group[$g]->setAttribute('upah_bersih', $upah_bersih);
  115.             $group[$g]->setAttribute('bpjs', $bpjs);
  116.             $group[$g]->setAttribute('jamsostek', $jamsostek);
  117.             $group[$g]->setAttribute('cicilan', $cicilan);
  118.         }
  119.  
  120.         $pdf = PDF::loadview('Gaji.exportpdfupahgrup', compact('periodegaji', 'group'));
  121.         $dom_pdf = $pdf->getDomPDF();
  122.         $dom_pdf->set_paper('letter', 'landscape');
  123.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  124.         $dom_pdf->set_option('default_font', 'Courier');
  125.         return $pdf->stream();
  126.     }
  127.  
  128.     public function exportpdfpinjaman()
  129.     {
  130.         $listpinjaman = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus', 'jadwal', 'gajis')->where('status_karyawan', '!=', 'nonaktif')->where('total_pinjaman', '!=', 0)->get();
  131.  
  132.         $pdf = PDF::loadview('Gaji.exportpdfpinjaman', compact('listpinjaman'));
  133.         $dom_pdf = $pdf->getDomPDF();
  134.         $dom_pdf->set_paper('letter', 'landscape');
  135.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  136.         $dom_pdf->set_option('default_font', 'Courier');
  137.         return $pdf->stream();
  138.     }
  139.  
  140.     public function exportpdfriwayatpinjaman($id)
  141.     {
  142.         $karyawan = Karyawan::find($id);
  143.         $riwayat = RiwayatPinjaman::where('karyawan_id', '=', $karyawan->id)->get();
  144.  
  145.         $pdf = PDF::loadview('Gaji.exportpdfriwayatpinjaman', compact('karyawan','riwayat'));
  146.         $dom_pdf = $pdf->getDomPDF();
  147.         $dom_pdf->set_paper('letter', 'landscape');
  148.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  149.         $dom_pdf->set_option('default_font', 'Courier');
  150.         return $pdf->stream();
  151.     }
  152.  
  153.     public function exportpdfbonus()
  154.     {
  155.         $listbonus = Karyawan::with('group')->where('bonus_overtime', '!=', null)->orwhere('bonus_kehadiran', '!=', null)->get();
  156.         $pdf = PDF::loadview('Gaji.exportpdfbonus', compact('listbonus'));
  157.         $dom_pdf = $pdf->getDomPDF();
  158.         $dom_pdf->set_paper('letter', 'landscape');
  159.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  160.         $dom_pdf->set_option('default_font', 'Courier');
  161.         return $pdf->stream();
  162.     }
  163.  
  164.     public function apiHitungUpahGroup($id)
  165.     {
  166.         $periodegaji = PeriodeGaji::find($id);
  167.         $periodemulai = $periodegaji->tanggal_mulai_periode;
  168.         $periodeselesai = $periodegaji->tanggal_selesai_periode;
  169.  
  170.         $group = Group::with('karyawans.gajis.periodegaji')->get();
  171.         for ($g = 0; $g < count($group); $g++) {
  172.             $poin = 0;
  173.             $upah = 0;
  174.             $upah_kotor = 0;
  175.             $upah_bersih = 0;
  176.             $bpjs = 0;
  177.             $jamsostek = 0;
  178.             $cicilan = 0;
  179.             for ($k = 0; $k < count($group[$g]->karyawans); $k++) {
  180.                 if (isset($group[$g]->karyawans[$k]->gajis)) {
  181.                     for ($gj = 0; $gj < count($group[$g]->karyawans[$k]->gajis); $gj++) {
  182.                         if ($group[$g]->karyawans[$k]->gajis[$gj]->periodegaji_id == $id) {
  183.                             $poin = $poin + $group[$g]->karyawans[$k]->gajis[$gj]->poin;
  184.                             $upah = $upah + $group[$g]->karyawans[$k]->gajis[$gj]->total;
  185.                             $bpjs = $bpjs + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_bpjs;
  186.                             $jamsostek = $jamsostek + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_jamsostek;
  187.                             $cicilan = $cicilan + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_cicilan;
  188.                             $upah_kotor = $upah_kotor + ($group[$g]->karyawans[$k]->gajis[$gj]->nominal_dasar + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_bonus);
  189.                             $upah_bersih = $upah_bersih + (($group[$g]->karyawans[$k]->gajis[$gj]->nominal_dasar + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_bonus) - ($group[$g]->karyawans[$k]->gajis[$gj]->nominal_bpjs + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_jamsostek + $group[$g]->karyawans[$k]->gajis[$gj]->nominal_cicilan));
  190.                         }
  191.                     }
  192.                 }
  193.             }
  194.             // $group[$g]->setAttribute('periode_mulai', $periodemulai);
  195.             // $group[$g]->setAttribute('periode_selesai', $periodeselesai);
  196.             $group[$g]->setAttribute('total_karyawan', count($group[$g]->karyawans));
  197.             $group[$g]->setAttribute('total_poin', $poin);
  198.             $group[$g]->setAttribute('total_upah_group', $upah);
  199.             $group[$g]->setAttribute('upah_kotor', $upah_kotor);
  200.             $group[$g]->setAttribute('upah_bersih', $upah_bersih);
  201.             $group[$g]->setAttribute('bpjs', $bpjs);
  202.             $group[$g]->setAttribute('jamsostek', $jamsostek);
  203.             $group[$g]->setAttribute('cicilan', $cicilan);
  204.         }
  205.  
  206.         return Response::json($group);
  207.     }
  208.  
  209.     public function savedraft(Request $request)
  210.     {
  211.         // set awal
  212.         $total_gaji_kotor = 0;
  213.         $total_gaji_bersih = 0;
  214.         $total_bonus = 0;
  215.         $total_bpjs = 0;
  216.         $total_jamsostek = 0;
  217.         $total_cicilan = 0;
  218.  
  219.         $gaji_data = json_decode($request->gajikaryawandata, true);
  220.         for($i = 0; $i < count($gaji_data); $i++) {
  221.             $gaji = Gaji::find($gaji_data[$i]['id']);
  222.             unset($gaji_data[$i]['karyawan']);
  223.  
  224.             // set status berdasarkan checkbox
  225.             if ($gaji_data[$i]['checkbox_jamsostek'] == true) {
  226.                 $gaji_data[$i]['status_pembayaran_jamsostek'] == 'siap bayar';
  227.             }
  228.             if ($gaji_data[$i]['checkbox_cicilan'] == true) {
  229.                 $gaji_data[$i]['status_pembayaran_cicilan'] = 'siap bayar';
  230.             }
  231.             if ($gaji_data[$i]['checkbox_bpjs'] == true) {
  232.                 $gaji_data[$i]['status_pembayaran_bpjs'] = 'siap bayar';
  233.             }
  234.             if ($gaji_data[$i]['checkbox_tunggakan'] == true) {
  235.                 $gaji_data[$i]['status_pembayaran_tunggakan'] = 'siap bayar';
  236.             }
  237.  
  238.             $gaji->update($gaji_data[$i]);
  239.  
  240.             // jumlahkan semua
  241.             $total_gaji_kotor += ($gaji_data[$i]['nominal_dasar'] + $gaji_data[$i]['nominal_bonus']);
  242.             $total_gaji_bersih += ($gaji_data[$i]['nominal_dasar'] + $gaji_data[$i]['nominal_bonus']) - ($gaji_data[$i]['nominal_bpjs'] + $gaji_data[$i]['nominal_jamsostek'] + $gaji_data[$i]['nominal_cicilan'] + $gaji_data[$i]['total_potongan_tunggakan']);
  243.             $total_bpjs += $gaji_data[$i]['nominal_bpjs'];
  244.             $total_jamsostek += $gaji_data[$i]['nominal_jamsostek'];
  245.             $total_cicilan += $gaji_data[$i]['nominal_cicilan'];
  246.         }
  247.  
  248.         toast('Data upah berhasil disimpan.', 'success');
  249.  
  250.         // return redirect()->back();
  251.         return Response::json([ 'status' => 200, 'message' => 'Data upah berhasil disimpan']);
  252.     }
  253.  
  254.     public function bayarsemua(Request $request)
  255.     {
  256.         // set awal
  257.         $total_gaji_kotor = 0;
  258.         $total_gaji_bersih = 0;
  259.         $total_bpjs = 0;
  260.         $total_jamsostek = 0;
  261.         $total_cicilan = 0;
  262.  
  263.         // periode gaji
  264.         $periodegaji_id = null;
  265.  
  266.         $gaji_data = json_decode($request->gajikaryawandatadibayar, true);
  267.         // dd($gaji_data);
  268.         for($i = 0; $i < count($gaji_data); $i++) {
  269.             $gaji = Gaji::find($gaji_data[$i]['id']);
  270.             $karyawan = Karyawan::find($gaji_data[$i]['karyawan_id']);
  271.             unset($gaji_data[$i]['karyawan']);
  272.  
  273.             $periodegaji_id = $gaji_data[$i]['periodegaji_id'];
  274.             $gaji_data[$i]['tanggal_pembayaran'] = date('Y-m-d');
  275.             $gaji_data[$i]['tanggal_pembayaran'] = date('Y-m-d');
  276.  
  277.             if ($gaji_data[$i]['status_pembayaran_jamsostek'] == 'siap bayar') {
  278.                 $gaji_data[$i]['status_pembayaran_jamsostek'] = 'bayar';
  279.             } else {
  280.                 $gaji_data[$i]['status_pembayaran_jamsostek'] = 'tunggak';
  281.             }
  282.             if ($gaji_data[$i]['status_pembayaran_cicilan'] == 'siap bayar') {
  283.                 $gaji_data[$i]['status_pembayaran_cicilan'] = 'bayar';
  284.             } else {
  285.                 $gaji_data[$i]['status_pembayaran_cicilan'] = 'tunggak';
  286.             }
  287.             if ($gaji_data[$i]['status_pembayaran_bpjs'] == 'siap bayar') {
  288.                 $gaji_data[$i]['status_pembayaran_bpjs'] = 'bayar';
  289.             } else {
  290.                 $gaji_data[$i]['status_pembayaran_bpjs'] = 'tunggak';
  291.             }
  292.             if ($gaji_data[$i]['status_pembayaran_tunggakan'] == 'siap bayar') {
  293.                 $gaji_data[$i]['status_pembayaran_tunggakan'] = 'bayar';
  294.             } else {
  295.                 $gaji_data[$i]['status_pembayaran_tunggakan'] = 'tunggak';
  296.             }
  297.  
  298.             // dd($gaji);
  299.  
  300.             /**
  301.              * KONDISI TERBAYARKAN
  302.              */
  303.             $karyawan->nominal_upah_dasar = $gaji_data[$i]['nominal_dasar'];
  304.             $karyawan->save();
  305.  
  306.             if ($gaji_data[$i]['status_pembayaran_bonus'] == 'bayar') {
  307.                 $karyawan->bonus_overtime = 0;
  308.                 $karyawan->bonus_kehadiran = 0;
  309.                 $karyawan->upah_bonus_2 = 0;
  310.                 $karyawan->periode_mulai_kehadiran = null;
  311.                 $karyawan->periode_selesai_kehadiran = null;
  312.                 $karyawan->periode_mulai_overtime = null;
  313.                 $karyawan->periode_selesai_overtime = null;
  314.                 $karyawan->upah_bonus = $gaji_data[$i]['nominal_bonus'];
  315.                 $karyawan->save();
  316.             }
  317.  
  318.             if ($gaji_data[$i]['status_pembayaran_cicilan'] == 'bayar') {
  319.                 if ($karyawan->potongan_cicilan != 0) {
  320.                     $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $gaji_data[$i]['nominal_calculated_cicilan'];
  321.                     $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $gaji_data[$i]['nominal_calculated_cicilan'];
  322.  
  323.                     if($gaji_data[$i]['nominal_calculated_cicilan'] != 0) {
  324.                         $riwayat_pinjaman = new RiwayatPinjaman();
  325.                         $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  326.                         $riwayat_pinjaman->karyawan_id = $karyawan->id;
  327.                         $riwayat_pinjaman->jenis = 'Bayar Cicilan dengan Potongan';
  328.                         $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  329.                         $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  330.                         $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  331.                         $riwayat_pinjaman->cicilan_pinjaman = $karyawan->potongan_cicilan;
  332.                         $riwayat_pinjaman->save();
  333.                     }
  334.  
  335.  
  336.                     // $cicilan->nominal_sementara = 0;
  337.                     // $cicilan->status = 0;
  338.                     // $cicilan->save();
  339.                 } else {
  340.                     $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $gaji_data[$i]['nominal_calculated_cicilan'];
  341.                     $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $gaji_data[$i]['nominal_calculated_cicilan'];
  342.  
  343.                     if($gaji_data[$i]['nominal_calculated_cicilan'] != 0) {
  344.                         $riwayat_pinjaman = new RiwayatPinjaman();
  345.                         $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  346.                         $riwayat_pinjaman->karyawan_id = $karyawan->id;
  347.                         $riwayat_pinjaman->jenis = 'Bayar Cicilan';
  348.                         $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  349.                         $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  350.                         $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  351.                         $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  352.                         $riwayat_pinjaman->save();
  353.                     }
  354.                 }
  355.  
  356.                 $karyawan->upah_potongan_cicilan = $gaji_data[$i]['nominal_calculated_cicilan'];
  357.                 $karyawan->potongan_cicilan = 0;
  358.                 $karyawan->save();
  359.  
  360.                 if ($karyawan->sisa_pinjaman == 0) {
  361.                     $karyawan->cicilan_pinjaman = 0;
  362.                     $karyawan->potongan_cicilan = 0;
  363.                     $karyawan->save();
  364.                 }
  365.             }
  366.  
  367.             if ($gaji_data[$i]['status_pembayaran_tunggakan'] == 'bayar') {
  368.                 $karyawan->total_tunggakan = $karyawan->total_tunggakan - $gaji->total_potongan_tunggakan;
  369.                 $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - $gaji->total_potongan_tunggakan;
  370.                 $karyawan->save();
  371.             }
  372.  
  373.             if ($gaji_data[$i]['status_pembayaran_jamsostek'] == 'bayar') {
  374.                 $karyawan->upah_potongan_jamsostek = $gaji_data[$i]['nominal_jamsostek'];
  375.                 $karyawan->save();
  376.             }
  377.  
  378.             if ($gaji_data[$i]['status_pembayaran_bpjs'] == 'bayar') {
  379.                 $karyawan->upah_potongan_bpjs = $gaji_data[$i]['nominal_bpjs'];
  380.                 $karyawan->save();
  381.             }
  382.  
  383.             /**
  384.              * KONDISI TERTUNGGAK
  385.              */
  386.             if ($gaji_data[$i]['status_pembayaran_jamsostek'] == 'tunggak') {
  387.                 $gaji_data[$i]['nominal_tunggakan'] = $gaji_data[$i]['nominal_tunggakan'] + $gaji_data[$i]['nominal_jamsostek'];
  388.                 $gaji_data[$i]['fixed_total_potongan_tunggakan'] = $gaji_data[$i]['fixed_total_potongan_tunggakan'] + $gaji_data[$i]['nominal_jamsostek'];
  389.                 $karyawan->total_tunggakan = $karyawan->total_tunggakan + $gaji_data[$i]['nominal_jamsostek'];
  390.                 $karyawan->save();
  391.             }
  392.  
  393.             if ($gaji_data[$i]['status_pembayaran_bpjs'] == 'tunggak') {
  394.                 $gaji_data[$i]['nominal_tunggakan'] = $gaji_data[$i]['nominal_tunggakan'] + $gaji_data[$i]['nominal_bpjs'];
  395.                 $gaji_data[$i]['fixed_total_potongan_tunggakan'] = $gaji_data[$i]['fixed_total_potongan_tunggakan'] + $gaji_data[$i]['nominal_bpjs'];
  396.                 $karyawan->total_tunggakan = $karyawan->total_tunggakan + $gaji_data[$i]['nominal_bpjs'];
  397.                 $karyawan->save();
  398.             }
  399.  
  400.             if ($gaji_data[$i]['status_pembayaran_tunggakan'] == 'tunggak') {
  401.                 $gaji_data[$i]['nominal_tunggakan'] = $gaji_data[$i]['nominal_tunggakan']+ $gaji_data[$i]['total_potongan_tunggakan'];
  402.             }
  403.  
  404.             $gaji->update($gaji_data[$i]);
  405.  
  406.             // jumlahkan semua
  407.             $total_gaji_kotor += ($gaji_data[$i]['nominal_dasar'] + $gaji_data[$i]['nominal_bonus']);
  408.             $total_gaji_bersih += ($gaji_data[$i]['nominal_dasar'] + $gaji_data[$i]['nominal_bonus']) - ($gaji_data[$i]['nominal_bpjs'] + $gaji_data[$i]['nominal_jamsostek'] + $gaji_data[$i]['nominal_cicilan'] + $gaji_data[$i]['total_potongan_tunggakan']);
  409.             $total_bpjs += $gaji_data[$i]['nominal_bpjs'];
  410.             $total_jamsostek += $gaji_data[$i]['nominal_jamsostek'];
  411.             $total_cicilan += $gaji_data[$i]['nominal_cicilan'];
  412.         }
  413.  
  414.         // update ke periode gaji
  415.         if(isset($periodegaji_id)) {
  416.             $periodegaji = PeriodeGaji::find($periodegaji_id);
  417.             $periodegaji->total_upah_kotor = $total_gaji_kotor;
  418.             $periodegaji->total_upah_bersih = $total_gaji_bersih;
  419.             $periodegaji->total_bpjs = $total_bpjs;
  420.             $periodegaji->total_jamsostek = $total_jamsostek;
  421.             $periodegaji->total_cicilan = $total_cicilan;
  422.             $periodegaji->is_final = 'bayar';
  423.             // dd($periodegaji);
  424.             $periodegaji->save();
  425.         }
  426.  
  427.         toast('Data upah berhasil dibayarkan.', 'success');
  428.  
  429.         // return redirect()->back();
  430.         return Response::json([ 'status' => 200, 'message' => 'Data upah berhasil dibayarkan']);
  431.     }
  432.  
  433.     // public function apiHitungUpahGroup($id)
  434.     // {
  435.     //     $periodegaji = PeriodeGaji::find($id);
  436.     //     $periodemulai = $periodegaji->tanggal_mulai_periode;
  437.     //     $periodeselesai = $periodegaji->tanggal_selesai_periode;
  438.  
  439.     //     $group = Group::with('karyawans.presensis', 'karyawans.settingpresensi', 'karyawans.settingupah', 'karyawans.cicilan')->get();
  440.  
  441.     //     // $karyawan = Karyawan::with('presensis', 'group', 'jadwal', 'jadwalGroup', 'jadwalNgeplus', 'settingpresensi', 'settingupah')->orderBy('nama', 'ASC')->get();
  442.     //     $result = array();
  443.     //     $closingTime = "00:40:00";
  444.     //     $queryClosingTime = ClosingTime::find(1)->jangka_waktu;
  445.     //     if (isset($queryClosingTime)) {
  446.     //         $closingTime = $queryClosingTime;
  447.     //     }
  448.  
  449.     //     for ($g = 0; $g < count($group); $g++) {
  450.     //         if (isset($group[$g]->karyawans)) {
  451.     //             $totalkaryawan = count($group[$g]->karyawans);
  452.     //             $group[$g]->setAttribute("total_karyawan", $totalkaryawan);
  453.     //             for ($i = 0; $i < count($group[$g]->karyawans); $i++) {
  454.     //                 $poinkaryawan = 0;
  455.     //                 // $maxpointkaryawan = 7;
  456.     //                 $upah_dasar = 0;
  457.     //                 $potongancicilan = 0;
  458.     //                 $bonus = 0;
  459.     //                 $potonganjamsostek = 0;
  460.     //                 $bpjs = 0;
  461.     //                 $upah_only = 0;
  462.     //                 $potongan_only = 0;
  463.     //                 $total_upah = 0;
  464.     //                 $total_tunggakan = 0;
  465.  
  466.     //                 // $karyawan[$i]->setAttribute("closing_time", $closingTime);
  467.     //                 // if (isset($karyawan[$i]->jadwal_id) || isset($karyawan[$i]->jadwal_group_id)) {
  468.     //                 //     array_push($result, $group[$g]->karyawans[$i]);
  469.     //                 // }
  470.     //                 if (count($group[$g]->karyawans[$i]->presensis) > 0) {
  471.     //                     for ($j = 0; $j < count($group[$g]->karyawans[$i]->presensis); $j++) {
  472.     //                         if ((strtotime($group[$g]->karyawans[$i]->presensis[$j]->tanggal_dan_waktu_tap) >= $periodemulai) && (strtotime($group[$g]->karyawans[$i]->presensis[$j]->tanggal_dan_waktu_tap) >= $periodeselesai)) {
  473.     //                             $poinkaryawan = $poinkaryawan + $group[$g]->karyawans[$i]->presensis[$j]->poin;
  474.     //                         }
  475.     //                     }
  476.     //                 }
  477.  
  478.     //                 $potongancicilan = Cicilan::where('karyawan_id', $group[$g]->karyawans[$i]->id)->pluck('nominal');
  479.     //                 $potonganjamsostek = Jamsostek::where('karyawan_id', $group[$g]->karyawans[$i]->id)->pluck('nominal');
  480.     //                 $bonus = Bonus::where('karyawan_id', $group[$g]->karyawans[$i]->id)->pluck('nominal_dasar');
  481.     //                 $bpjs = Bpjs::where('id', $group[$g]->karyawans[$i]->bpjs_id)->pluck('nominal');
  482.     //                 // if ($karyawan[$i]->id == $karyawan[$i]->cicilan->karyawan_id) {
  483.     //                 //     $potongancicilan = Cicilan::get('nominal');
  484.     //                 // }
  485.  
  486.     //                 // dd($bpjs);
  487.  
  488.     //                 if (count($bonus) <= 0) {
  489.     //                     $bonus[0] = 0;
  490.     //                 }
  491.  
  492.     //                 if (count($potongancicilan) <= 0) {
  493.     //                     $potongancicilan[0] = 0;
  494.     //                 }
  495.  
  496.     //                 if (count($potonganjamsostek) <= 0) {
  497.     //                     $potonganjamsostek[0] = 0;
  498.     //                 }
  499.  
  500.     //                 if (count($bpjs) <= 0) {
  501.     //                     $bpjs[0] = 0;
  502.     //                 }
  503.  
  504.     //                 // $karyawan[$i]->setAttribute("potongan_jamsostek", $potonganjamsostek);
  505.  
  506.     //                 $persentasepoin = $poinkaryawan;
  507.     //                 if (isset($group[$g]->karyawans[$i]->settingupah)) {
  508.     //                     $upah_dasar = $group[$g]->karyawans[$i]->settingupah->nominal_dasar * $persentasepoin;
  509.     //                 }
  510.  
  511.  
  512.     //                 $upah_only = $upah_dasar + $bonus[0];
  513.  
  514.  
  515.     //                 $potongan_only = $potonganjamsostek[0] + $bpjs[0];
  516.  
  517.  
  518.     //                 $total_upah = $upah_dasar
  519.     //                     + $bonus[0]
  520.     //                     - $potongancicilan[0]
  521.     //                     - $potonganjamsostek[0]
  522.     //                     - $bpjs[0];
  523.     //             }
  524.     //             $group[$g]->setAttribute("total_poin", $poinkaryawan);
  525.     //             $group[$g]->setAttribute("total_upah_group", $total_upah);
  526.     //             $group[$g]->setAttribute("upah_bonus", $bonus[0]);
  527.     //             $group[$g]->setAttribute("potongan_cicilan", $potongancicilan[0]);
  528.     //             $group[$g]->setAttribute("potongan_jamsostek", $potonganjamsostek[0]);
  529.     //             $group[$g]->setAttribute("potongan_bpjs", $bpjs[0]);
  530.     //             $group[$g]->setAttribute("total_tunggakan", $total_tunggakan);
  531.     //             $group[$g]->setAttribute("upah_dasar", $upah_dasar);
  532.     //             $group[$g]->setAttribute("upah_only", $upah_only);
  533.     //             $group[$g]->setAttribute("potongan_only", $potongan_only);
  534.     //         }
  535.     //     }
  536.     //     return Response::json($group);
  537.     // }
  538.  
  539.     public function apiHitungUpah($id)
  540.     {
  541.         $gaji = Gaji::with('karyawan.group')->where('periodegaji_id', '=', $id)->orderBy('group_karyawan', 'asc')->get();
  542.         return Response::json($gaji);
  543.     }
  544.  
  545.     public function apiHitungUpahKaryawanPerGroup($id, $group_id)
  546.     {
  547.         $gaji = Gaji::with('karyawan.group')->where('periodegaji_id', '=', $id)->where('group_id', '=', $group_id)->orderBy('group_karyawan', 'asc')->get();
  548.         return Response::json($gaji);
  549.     }
  550.  
  551.     public function apiJamsostek()
  552.     {
  553.         // $jamsostek = Jamsostek::with('karyawan', 'group', 'settingupah')->get();
  554.         $Karyawan = Karyawan::with('group', 'jamsostek', 'settingupah')->where('is_jamsostek', 1)->get();
  555.         return Response::json($Karyawan);
  556.     }
  557.  
  558.     /**
  559.      * Display a listing of the resource.
  560.      *
  561.      * @return \Illuminate\Http\Response
  562.      */
  563.     public function index()
  564.     {
  565.         $bpjs = Bpjs::all();
  566.         $bonus = Bonus::with('group', 'karyawan', 'settingupah')->get();
  567.         $pinjaman = PengajuanUtang::with('karyawan', 'group')->get();
  568.         $karyawan = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus', 'jadwal', 'gajis')->where('status_karyawan', '!=', 'nonaktif')->get();
  569.         $listpinjaman = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus', 'jadwal', 'gajis')->where('status_karyawan', '!=', 'nonaktif')->where('total_pinjaman', '!=', 0)->get();
  570.         $listbonus = Karyawan::where('bonus_overtime', '!=', null)->orwhere('bonus_kehadiran', '!=', null)->get();
  571.         // $karyawan = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus', 'jadwal')->where('jadwal_id', !null)->get();
  572.         $listbpjs = Karyawan::with('bpjs')->where('status_karyawan', '!=', 'nonaktif')->get();
  573.         // $cicilan = Cicilan::with('karyawan', 'group')->get();
  574.         $jamsostek = Jamsostek::with('karyawan', 'group', 'settingupah')->get();
  575.         $settingupah = SettingUpah::with('karyawan', 'group')->get();
  576.         $periodegaji = PeriodeGaji::all();
  577.         $tunggakan = Gaji::all();
  578.         $group = Group::all();
  579.         for ($p = 0; $p < count($periodegaji); $p++) {
  580.             $jumlah_karyawan = 0;
  581.             $jumlah_upah = 0;
  582.             $gaji = Gaji::where('periodegaji_id', '=', $periodegaji[$p]->id)->get();
  583.             $jumlah_karyawan = count($gaji);
  584.             for ($g = 0; $g < count($gaji); $g++) {
  585.                 if ($gaji[$g]->total != null) {
  586.                     $jumlah_upah = $jumlah_upah + $gaji[$g]->total;
  587.                 }
  588.             }
  589.             $periodegaji[$p]->setAttribute('jumlah_karyawan', $jumlah_karyawan);
  590.             $periodegaji[$p]->setAttribute('jumlah_upah', $jumlah_upah);
  591.         }
  592.         // $upah = SettingUpah::all();
  593.  
  594.         // for ($i = 0; $i < count($karyawan); $i++) {
  595.         //     $totaltunggakan = 0;
  596.         //     if (count($karyawan[$i]->gajis) > 0) {
  597.         //         for ($j = 0; $j < count($karyawan[$i]->gajis); $j++) {
  598.         //             if ($karyawan[$i]->gajis[$j]->sisa != null) {
  599.  
  600.         //                 $totaltunggakan = $totaltunggakan + $karyawan[$i]->gajis[$j]->sisa;
  601.         //             } else {
  602.         //                 $totaltunggakan = $totaltunggakan + 0;
  603.         //             }
  604.         //         }
  605.         //     }
  606.         //     $karyawan[$i]->setAttribute("total_tunggakan", $totaltunggakan);
  607.         // }
  608.  
  609.         return view('Gaji.index', compact('bpjs', 'bonus', 'pinjaman', 'karyawan', 'jamsostek', 'settingupah', 'periodegaji', 'listbpjs', 'tunggakan', 'listbonus', 'listpinjaman', 'group'));
  610.     }
  611.  
  612.     public function apibpjs()
  613.     {
  614.         $kelas_bpjs = null;
  615.         $nominal_bpjs = 0;
  616.         $listbpjs = Karyawan::with('group', 'settingupah')->where('status_karyawan', '!=', 'nonaktif')->get();
  617.         for ($i = 0; $i < count($listbpjs); $i++) {
  618.             if ($listbpjs[$i]->bpjs_id != null) {
  619.                 $bpjs = Bpjs::find($listbpjs[$i]->bpjs_id);
  620.                 $kelas_bpjs = $bpjs->nomor;
  621.                 $nominal_bpjs = $bpjs->nominal;
  622.             }
  623.             $listbpjs[$i]->setAttribute('kelas_bpjs', $kelas_bpjs);
  624.             $listbpjs[$i]->setAttribute('nominal_bpjs', $nominal_bpjs);
  625.         }
  626.         return Response::json($listbpjs);
  627.     }
  628.  
  629.     public function apipinjaman()
  630.     {
  631.         $listpinjaman = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus', 'jadwal', 'gajis')->where('status_karyawan', '!=', 'nonaktif')->where('total_pinjaman', '!=', 0)->get();
  632.         return Response::json($listpinjaman);
  633.     }
  634.  
  635.     public function apibonus()
  636.     {
  637.         $listbonus = Karyawan::with('group')->where('bonus_overtime', '!=', null)->orwhere('bonus_kehadiran', '!=', null)->get();
  638.         return Response::json($listbonus);
  639.     }
  640.  
  641.     public function apitunggakan()
  642.     {
  643.         $karyawan = Karyawan::with('group', 'gajis')->where('status_karyawan', '!=', 'nonaktif')->get();
  644.         return Response::json($karyawan);
  645.     }
  646.  
  647.     /*
  648.      *
  649.      * @param  int  $id
  650.      * @return \Illuminate\Http\Response
  651.      */
  652.     public function tanggalupah()
  653.     {
  654.         $presensi = Presensi::with('karyawan', 'bpjs', 'jamsostek', 'settingupah')->get();
  655.         return view('Gaji.tanggalupah', compact('presensi'));
  656.     }
  657.  
  658.     public function storetunggakan(Request $request)
  659.     {
  660.         // dd($request->all());
  661.         //yang ngurangin pinjaman
  662.         if ($request->bayar_periode_selanjutnya != null) {
  663.             foreach ($request->bayar_periode_selanjutnya as $i) {
  664.                 $bayar = Gaji::find((int)$i);
  665.                 // $bayar->status_pembayaran_bpjs = 'next';
  666.                 // $bayar->status_pembayaran_jamsostek = 'next';
  667.                 // $bayar->status_pembayaran_cicilan = 'next';
  668.                 $bayar->is_bayar_tunggakan = 'confirm later';
  669.                 $bayar->save();
  670.  
  671.                 foreach ($request->id_karyawan as $j) {
  672.                     $karyawan = Karyawan::find((int)$j);
  673.                     // $cicilan = Cicilan::where('karyawan_id', '=', $karyawan->id)->first();
  674.                     foreach ($request->nominal as $k) {
  675.                         $karyawan->potongan_cicilan = 0;
  676.                         $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya + (int)$k;
  677.                         $karyawan->save();
  678.                         // if (isset($cicilan)) {
  679.                         //     $cicilan->nominal_sementara = 0;
  680.                         //     $cicilan->status = 0;
  681.                         //     $cicilan->save();
  682.                         // }
  683.                     }
  684.  
  685.                     return redirect()->route('gaji.tunggakan', $karyawan->id);
  686.                 }
  687.             }
  688.         }
  689.  
  690.         //yang langsung dibayar
  691.         if ($request->bayar_langsung != null) {
  692.             foreach ($request->bayar_langsung as $i) {
  693.                 $bayar = Gaji::find((int)$i);
  694.                 $periodegaji = PeriodeGaji::find($bayar->periodegaji_id);
  695.                 $bayar->tanggal_bayar_tunggakan = date('Y-m-d');
  696.                 $bayar->is_bayar_tunggakan = 'confirm now';
  697.                 $bayar->status_pembayaran_bpjs = 'bayar';
  698.                 $bayar->status_pembayaran_jamsostek = 'bayar';
  699.                 $bayar->status_pembayaran_cicilan = 'bayar';
  700.                 $bayar->save();
  701.  
  702.                 foreach ($request->id_karyawan as $j) {
  703.                     $karyawan = Karyawan::find((int)$j);
  704.                     $group = Group::find($karyawan->group_id);
  705.                     // $cicilan = Cicilan::where('karyawan_id', '=', $karyawan->id)->first();
  706.                     // $all_gaji = Gaji::where('karyawan_id', '=', $karyawan->id)->get();
  707.                     // $pinjaman = Pinjaman::where('karyawan_id', '=', $karyawan_id)->get();
  708.                     // for ($i = 0; $i < count($all_gaji); $i++) {
  709.                     //     $all_gaji[$i]->total_potongan_tunggakan = 0;
  710.                     //     $all_gaji[$i]->save();
  711.                     // }
  712.                     foreach ($request->nominal as $k) {
  713.                         $karyawan->total_tunggakan = $karyawan->total_tunggakan - $bayar->fixed_total_potongan_tunggakan;
  714.                         if ($karyawan->total_tunggakan_periode_berikutnya != 0) {
  715.                             $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - $bayar->fixed_total_potongan_tunggakan;
  716.                         }
  717.                         //$karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $bayar->nominal_penanda_cicilan;
  718.                         //$karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $bayar->nominal_penanda_cicilan;
  719.  
  720.                         // if ($bayar->nominal_penanda_cicilan != 0) {
  721.                         //     $riwayat_pinjaman = new RiwayatPinjaman();
  722.                         //     $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  723.                         //     $riwayat_pinjaman->karyawan_id = $karyawan->id;
  724.                         //     $riwayat_pinjaman->jenis = 'Bayar Tunggakan Cicilan';
  725.                         //     $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  726.                         //     $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  727.                         //     $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  728.                         //     $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  729.                         //     $riwayat_pinjaman->save();
  730.                         // }
  731.  
  732.                         // $karyawan->potongan_cicilan = 0;
  733.                         // $karyawan->akumulasi_cicilan = 0;
  734.                         $karyawan->save();
  735.  
  736.                         // foreach($request->nama_user as $l) {
  737.  
  738.                             $pemberitahuan = new Pemberitahuan();
  739.                             $pemberitahuan->nama_pemberitahuan = "Bayar langsung tunggakan - " . $karyawan->nama . " - Periode gaji " . date('Y m d', strtotime($periodegaji->tanggal_mulai_periode)) . " s/d " . date('Y m d', strtotime($periodegaji->tanggal_selesai_periode));
  740.                             $pemberitahuan->sumber_pemberitahuan = "upah";
  741.                             $pemberitahuan->id_karyawan = $karyawan->id;
  742.                             $pemberitahuan->nama_karyawan = $karyawan->nama;
  743.                             $pemberitahuan->id_group = $karyawan->group_id;
  744.                             if(isset($group)) {
  745.                                 $pemberitahuan->nama_group = $group->nama;
  746.                             }
  747.                             $pemberitahuan->nik = $karyawan->nik;
  748.                             $pemberitahuan->nama_admin = $request->nama_user;
  749.                             $pemberitahuan->save();
  750.                         // }
  751.  
  752.  
  753.                         // if (isset($cicilan)) {
  754.                         //     $cicilan->nominal_sementara = 0;
  755.                         //     $cicilan->status = 0;
  756.                         //     $cicilan->save();
  757.                         // }
  758.                     }
  759.                     return redirect()->route('gaji.tunggakan', $karyawan->id);
  760.                 }
  761.             }
  762.         }
  763.  
  764.         if ($request->reset_periode_selanjutnya != null) {
  765.             foreach ($request->reset_periode_selanjutnya as $i) {
  766.                 $bayar = Gaji::find((int)$i);
  767.                 // $bayar->status_pembayaran_bpjs = 'next';
  768.                 // $bayar->status_pembayaran_jamsostek = 'next';
  769.                 // $bayar->status_pembayaran_cicilan = 'next';
  770.                 $bayar->is_bayar_tunggakan = null;
  771.                 $bayar->save();
  772.  
  773.                 foreach ($request->id_karyawan as $j) {
  774.                     $karyawan = Karyawan::find((int)$j);
  775.                     // $cicilan = Cicilan::where('karyawan_id', '=', $karyawan->id)->first();
  776.                     foreach ($request->nominal as $k) {
  777.                         $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - (int)$k;
  778.                         $karyawan->save();
  779.                     }
  780.                     return redirect()->route('gaji.tunggakan', $karyawan->id);
  781.                 }
  782.             }
  783.         }
  784.     }
  785.  
  786.     public function storetanggalupah(Request $request)
  787.     {
  788.         //dd($request->potongan_cicilan);
  789.         $pembayaran = $request->input('status_pembayaran');
  790.         //simpan ke periodegaji
  791.         $dateupah = new PeriodeGaji();
  792.         $dateupah->tanggal_mulai_periode = $request->tanggal_mulai_periode; //set tanggal mulai periode
  793.         $dateupah->tanggal_selesai_periode = $request->tanggal_selesai_periode; //set tanggal selesai periode
  794.  
  795.         if ($request->potongan_bpjs != null) {
  796.             $dateupah->is_potongan_bpjs = true; //jika checkbox di checklist
  797.         } else {
  798.             $dateupah->is_potongan_bpjs = false; //jika checkbox tidak di checklist
  799.         }
  800.  
  801.         if ($request->potongan_jamsostek != null) {
  802.             $dateupah->is_potongan_jamsostek = true; //jika checkbox di checklist
  803.         } else {
  804.             $dateupah->is_potongan_jamsostek = false; //jika checkbox tidak di checklist
  805.         }
  806.  
  807.         if ($request->potongan_cicilan != null) {
  808.             $dateupah->is_potongan_cicilan = true; //jika checkbox di checklist
  809.         } else {
  810.             $dateupah->is_potongan_cicilan = false; //jika checkbox tidak di checklist
  811.         }
  812.  
  813.         if ($request->potongan_tunggakan != null) {
  814.             $dateupah->is_potongan_tunggakan = true; //jika checkbox di checklist
  815.         } else {
  816.             $dateupah->is_potongan_tunggakan = false; //jika checkbox tidak di checklist
  817.         }
  818.         $dateupah->save();
  819.         //end of save periode gaji
  820.  
  821.         $settingan_poin = SettingPoin::find(1);
  822.         $karyawan = Karyawan::with('presensis', 'group', 'jadwal', 'jadwalharikerja', 'jadwalGroup', 'jadwalNgeplus', 'settingpresensi', 'settingupah')->orderBy('nama', 'ASC')->get();
  823.         // $group = Group::find($karyawan[$i]->group_id);
  824.  
  825.         // set awal
  826.         $total_gaji_dasar = 0;
  827.         $total_bonus = 0;
  828.         $total_gaji_kotor = 0;
  829.         $total_gaji_bersih = 0;
  830.         $total_bpjs = 0;
  831.         $total_jamsostek = 0;
  832.         $total_cicilan = 0;
  833.  
  834.         // set awal kehadiran
  835.         $total_poin = 0;
  836.         $total_poin_tiga_perempat = 0;
  837.         $total_poin_setengah = 0;
  838.         $total_poin_seperempat = 0;
  839.         $total_sakit = 0;
  840.         $total_izin = 0;
  841.         $total_bolos = 0;
  842.         $total_libur = 0;
  843.  
  844.         for ($i = 0; $i < count($karyawan); $i++) {
  845.             $new_entry_gaji = new Gaji();
  846.             $new_entry_gaji->karyawan_id = $karyawan[$i]->id; //set karyawan id
  847.             $new_entry_gaji->nama_karyawan = $karyawan[$i]->nama; //set nama karyawan
  848.             if(isset($karyawan[$i]->group)) {
  849.                 $new_entry_gaji->group_karyawan = $karyawan[$i]->group->nama . $karyawan[$i]->groupno; //set nama group
  850.                 $new_entry_gaji->group_id = $karyawan[$i]->group->id; //set nama group
  851.             }
  852.             $new_entry_gaji->bpjs_id = $karyawan[$i]->bpjs_id; //set bpjs id
  853.  
  854.             $maxpointkaryawan = 0;
  855.             $nominal_dasar = 0;
  856.             $nominal_ngeplus = 0; //yg ini sebelumnya tidak ada deklarasi awal jadinya error
  857.             $setting_poin = 0;
  858.             $poinkaryawan = 0;
  859.             $poinkaryawanngeplus = 0;
  860.             $poinfull = 0;
  861.             $total_hari = 0;
  862.             // $total_hari_setengah = 0;
  863.             $total_hari_rutin = 0;
  864.             $total_hari_ngeplus = 0;
  865.             $perhitungan_nominal_dasar = 0;
  866.             $perhitungan_nominal_ngeplus = 0;
  867.             $upah_kotor = 0;
  868.             $total_upah_sebelum_cicilan = 0;
  869.             $checkbox_upah_kotor = 0;
  870.             $checkbox_jamsostek = 0;
  871.             $checkbox_bpjs = 0;
  872.             $checkbox_cicilan = 0;
  873.             $checkbox_tunggakan = 0;
  874.  
  875.             $jumlah_karyawan_sakit = 0;
  876.             $jumlah_karyawan_izin = 0;
  877.             $jumlah_karyawan_libur = 0;
  878.  
  879.             // $tidak_hadir = 0;
  880.             // $hadir = 0;
  881.             // $cuti = 0;
  882.  
  883.             $new_entry_gaji->nominal_bonus = 0; //set awal nominal bonus
  884.             $new_entry_gaji->nominal_bpjs = 0; //set awal nominal bpjs
  885.             $new_entry_gaji->nominal_jamsostek = 0; //set awal nominal jamsostek
  886.             $new_entry_gaji->nominal_cicilan = 0; //set awal nominal cicilan
  887.             $new_entry_gaji->persentase_cicilan = 0; //set awal persentase cicilan
  888.             $new_entry_gaji->nominal_calculated_cicilan = 0; //set awal nominal cicilan
  889.             $new_entry_gaji->total_tunggakan = 0; //set awal nominal tunggakan
  890.             $new_entry_gaji->poin = 0; //set awal poin
  891.             $new_entry_gaji->total = 0; //set awal total
  892.             $new_entry_gaji->nominal = 0; //set awal nominal
  893.             $new_entry_gaji->sisa = 0; //set awal sisa
  894.             $new_entry_gaji->total_potongan_tunggakan = 0; //set awal total potongan tunggakan
  895.  
  896.             $jumlah_karyawan_sakit = JadwalIzin::where('karyawan_id', $karyawan[$i]->id)->where('status', 'sakit')->where('approval', 1)->where('tanggal_mulai', '>=', date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode)))->where('tanggal_selesai', '<=', date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))->get()->count();
  897.             $jumlah_karyawan_izin = JadwalIzin::where('karyawan_id', $karyawan[$i]->id)->where('status', 'izin')->where('approval', 1)->where('tanggal_mulai', '>=', date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode)))->where('tanggal_selesai', '<=', date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))->get()->count();
  898.             $jumlah_karyawan_libur = JadwalLibur::where('karyawan_id', $karyawan[$i]->id)->where('approval', 1)->where('tanggal_mulai', '>=', date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode)))->where('tanggal_selesai', '<=', date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))->get()->count();
  899.  
  900.             $total_sakit += $jumlah_karyawan_sakit;
  901.             $total_izin += $jumlah_karyawan_izin;
  902.             $total_libur += $jumlah_karyawan_libur;
  903.  
  904.             if (count($karyawan[$i]->presensis) > 0) {
  905.                 for ($j = 0; $j < count($karyawan[$i]->presensis); $j++) {
  906.                     if (
  907.                         $karyawan[$i]->presensis[$j]->status == 'Rutin'
  908.                         &&
  909.                         (date('Y-m-d', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) >= date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode)))
  910.                         &&
  911.                         (date('Y-m-d', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) <= date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))
  912.                     ) {
  913.                         $poinkaryawan = $poinkaryawan + $karyawan[$i]->presensis[$j]->poin; //set poin
  914.                     }
  915.                     if (
  916.                         ($karyawan[$i]->presensis[$j]->status == 'nge-plus' || $karyawan[$i]->presensis[$j]->status == 'ngeplus-group')
  917.                         &&
  918.                         (date('Y-m-d', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) >= date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode)))
  919.                         &&
  920.                         (date('Y-m-d', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) <= date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))
  921.                     ) {
  922.                         $poinkaryawanngeplus = $poinkaryawanngeplus + $karyawan[$i]->presensis[$j]->poin; //set poin ngeplus
  923.                     }
  924.                 }
  925.             }
  926.  
  927.             if (count($karyawan[$i]->presensis) > 0) {
  928.                 // $total_hari_setengah = 0;
  929.                 // dd($karyawan[$i]->presensis);
  930.                 for ($j = 0; $j < count($karyawan[$i]->presensis); $j++) {
  931.                     // $total_hari = 0;
  932.                     $total_hari_setengah = 0;
  933.                     if ((date('Y-m-d', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) >= date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode))) && (date('Y-m-d', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) <= date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))) {
  934.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_senin == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Monday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  935.                         //     $totalhari = 1;
  936.                         // }
  937.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_selasa == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Tuesday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  938.                         //     $totalhari = $totalhari + 1;
  939.                         // }
  940.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_rabu == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Wednesday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  941.                         //     $totalhari = $totalhari + 1;
  942.                         // }
  943.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_kamis == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Thursday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  944.                         //     $totalhari = $totalhari + 1;
  945.                         // }
  946.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_jumat == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Friday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  947.                         //     $totalhari = $totalhari;
  948.                         // }
  949.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_sabtu == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Saturday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  950.                         //     $totalhari = $totalhari + 5;
  951.                         // }
  952.                         // $totalhari = $totalhari;
  953.                         // if ($karyawan[$i]->jadwalharikerja->checkbox_harikerja_minggu == 1 && date('l', strtotime($karyawan[$i]->presensis[$j]->tanggal_dan_waktu_tap)) == 'Sunday' && $karyawan[$i]->presensis[$j]->slotjam == 'Pulang') {
  954.                         //     $totalhari = $totalhari + 1;
  955.                         // }
  956.                         $jumlah_pulang = Presensi::where('karyawan_id', $karyawan[$i]->id)->where('slotjam', 'Pulang')->get();
  957.                         $total_hari = $jumlah_pulang->count();
  958.                         //dd($total_hari);
  959.  
  960.                         // $total_hari_setengah = 0;
  961.  
  962.                         $jumlah_istirahat_mulai = Presensi::where('karyawan_id', $karyawan[$i]->id)->where('slotjam', '!=', null)->where('tanggal_dan_waktu_tap', '>=', date('Y-m-d', strtotime($dateupah->tanggal_mulai_periode)))->where('tanggal_dan_waktu_tap', '<=', date('Y-m-d', strtotime($dateupah->tanggal_selesai_periode)))->get();
  963.                         $total_hari_setengah = $jumlah_istirahat_mulai->count();
  964.                         //$new_entry_gaji->total_setengah_hari = $total_hari_setengah;
  965.  
  966.                         $jumlah_rutin = Presensi::where('karyawan_id', $karyawan[$i]->id)->where('status', '=', 'Rutin')->get();
  967.                         $total_hari_rutin = $jumlah_rutin->count();
  968.                         //dd($total_hari_rutin);
  969.  
  970.                         $jumlah_ngeplus = Presensi::where('karyawan_id', $karyawan[$i]->id)->where(function ($query) {
  971.                             $query->where('status', '=', 'nge-plus')->orWhere('status', '=', 'ngeplus-group');
  972.                         })->get();
  973.                         $total_hari_ngeplus = $jumlah_ngeplus->count();
  974.                         //dd($total_hari_ngeplus);
  975.                     }
  976.                 }
  977.             }
  978.  
  979.             $new_entry_gaji->total_hari = $total_hari;
  980.             $new_entry_gaji->total_setengah_hari = $total_hari_setengah;
  981.             $new_entry_gaji->total_hari_rutin = $total_hari_rutin;
  982.             $new_entry_gaji->total_hari_ngeplus = $total_hari_ngeplus;
  983.  
  984.             // dd($poinkaryawan);
  985.  
  986.             // if($total_hari_setengah > 5) {
  987.             //     $new_entry_gaji->persentase_cicilan = 100;
  988.             // } else if($total_hari_setengah == 5) {
  989.             //     $new_entry_gaji->persentase_cicilan = 90;
  990.             // } else if($total_hari_setengah == 4) {
  991.             //     $new_entry_gaji->persentase_cicilan = 70;
  992.             // } else if($total_hari_setengah == 3) {
  993.             //     $new_entry_gaji->persentase_cicilan = 50;
  994.             // } else if($total_hari_setengah == 2) {
  995.             //     $new_entry_gaji->persentase_cicilan = 30;
  996.             // } else if($total_hari_setengah == 1) {
  997.             //     $new_entry_gaji->persentase_cicilan = 10;
  998.             // } else {
  999.             //     $new_entry_gaji->persentase_cicilan = 0;
  1000.             // }
  1001.  
  1002.             $poinfull = $poinkaryawan + $poinkaryawanngeplus;
  1003.             $new_entry_gaji->poinfull = $poinfull;
  1004.  
  1005.             if($poinfull >= 5){
  1006.                 $new_entry_gaji->persentase_cicilan = 100;
  1007.             } else if($poinfull >= 1 && $poinfull <= 1.75) {
  1008.                 $new_entry_gaji->persentase_cicilan = 20;
  1009.             } else if($poinfull >= 2 && $poinfull <= 2.75) {
  1010.                 $new_entry_gaji->persentase_cicilan = 40;
  1011.             } else if($poinfull >= 3 && $poinfull <= 3.75) {
  1012.                 $new_entry_gaji->persentase_cicilan = 60;
  1013.             } else if($poinfull >= 4 && $poinfull >= 4.75) {
  1014.                 $new_entry_gaji->persentase_cicilan = 80;
  1015.             } else{
  1016.                 $new_entry_gaji->persentase_cicilan = 0;
  1017.             }
  1018.  
  1019.             // dd($poinfull);
  1020.  
  1021.             // if($poinfull >= 5) {
  1022.             //     $new_entry_gaji->persentase_cicilan = 100;
  1023.             // } else  if($poinfull >= 4 && $poinfull <= 4.75) {
  1024.             //     $new_entry_gaji->persentase_cicilan = 80;
  1025.             // } else if($poinfull >= 3 && $poinfull <= 3.75) {
  1026.             //     $new_entry_gaji->persentase_cicilan = 60;
  1027.             // } else if($poinfull >= 2 && $poinfull <= 2.75) {
  1028.             //     $new_entry_gaji->persentase_cicilan = 40;
  1029.             // } else if($poinfull >= 1 && $poinfull <= 1.75) {
  1030.             //     $new_entry_gaji->persentase_cicilan = 20;
  1031.             // } else {
  1032.             //     $new_entry_gaji->persentase_cicilan = 0;
  1033.             // }
  1034.             // dd($new_entry_gaji->total_setengah_hari . '-' . $new_entry_gaji->persentase_cicilan);
  1035.  
  1036.             if (isset($karyawan[$i]->settingupah->nominal_dasar) || isset($karyawan[$i]->settingupah->nominal_ngeplus)) {
  1037.                 $nominal_dasar = $karyawan[$i]->settingupah->nominal_dasar; //set upah dasar
  1038.                 $nominal_ngeplus = $karyawan[$i]->settingupah->nominal_ngeplus; //set upah dasar ngeplus
  1039.             }
  1040.             if (isset($settingan_poin->poin)) {
  1041.                 $setting_poin = $settingan_poin->poin; //set poin
  1042.  
  1043.             }
  1044.  
  1045.             // $jumlah_hari = Presensi::where('karyawan_id', $karyawan[$i]->id)->where('slotjam', 'Pulang')->get();
  1046.             // $total_hari = $jumlah_hari->count();
  1047.  
  1048.             $new_entry_gaji->poin = $poinkaryawan;
  1049.             $new_entry_gaji->poin_ngeplus = $poinkaryawanngeplus;
  1050.             $new_entry_gaji->setting_poin = $setting_poin;
  1051.             if (((int)$setting_poin * $total_hari_rutin) != 0 && (int)($poinkaryawan * ($nominal_dasar * $total_hari_rutin)) != 0) {
  1052.                 // $perhitungan_nominal_dasar = (int)($poinkaryawan * ($nominal_dasar * $total_hari_rutin)) / ((int)$setting_poin * $total_hari_rutin);
  1053.                 $perhitungan_nominal_dasar = (int)($poinkaryawan * $nominal_dasar);
  1054.             } else {
  1055.                 $perhitungan_nominal_dasar = 0;
  1056.             }
  1057.             if (((int)$setting_poin * $total_hari_ngeplus) != 0 && (int)($poinkaryawanngeplus * ($nominal_ngeplus * $total_hari_ngeplus)) != 0) {
  1058.                 // $perhitungan_nominal_ngeplus = (int)($poinkaryawanngeplus * ($nominal_ngeplus * $total_hari_ngeplus)) / ((int)$setting_poin * $total_hari_ngeplus);
  1059.                 $perhitungan_nominal_ngeplus = (int)($poinkaryawanngeplus * $nominal_ngeplus);
  1060.             } else {
  1061.                 $perhitungan_nominal_ngeplus = 0;
  1062.             }
  1063.  
  1064.  
  1065.             $new_entry_gaji->nominal_dasar = (int)($perhitungan_nominal_dasar + $perhitungan_nominal_ngeplus);
  1066.             // $new_entry_gaji->nominal_dasar = $poinkaryawan * ($nominal_dasar * $total_hari) / $setting_poin * $total_hari;
  1067.             // dd($perhitungan_nominal_ngeplus);
  1068.  
  1069.             //input total tunggakan
  1070.             // $utang_id = Cicilan::select('id')->where('karyawan_id', $new_entry_gaji->karyawan_id)->first();
  1071.             // if ($utang_id !== null) {
  1072.             //     $tot_utang = Cicilan::select('total')->where('id', $utang_id->id)->first();
  1073.             //     $new_entry_gaji->total_tunggakan = $tot_utang->total;
  1074.             //     // $new_entry_gaji->jenis_tunggakan = $tot_utang->type;
  1075.             // } else {
  1076.             //     $new_entry_gaji->total_tunggakan = 0;
  1077.             // }
  1078.  
  1079.             $jamsostek_id = Jamsostek::select('id')->where('karyawan_id', $new_entry_gaji->karyawan_id)->first();
  1080.             if (!$jamsostek_id) {
  1081.                 $new_entry_gaji->jamsostek_id = null;
  1082.             } else {
  1083.                 $new_entry_gaji->jamsostek_id = $jamsostek_id->id;
  1084.             }
  1085.  
  1086.             if ($dateupah->is_potongan_jamsostek == true) {
  1087.                 if ($jamsostek_id !== null) {
  1088.                     $nom_jamsostek = Jamsostek::select('nominal')->where('id', $jamsostek_id->id)->first();
  1089.                     $new_entry_gaji->nominal_jamsostek  = $nom_jamsostek->nominal;
  1090.                 }
  1091.             } else {
  1092.                 $new_entry_gaji->nominal_jamsostek = 0;
  1093.             }
  1094.  
  1095.             if ($dateupah->is_potongan_bpjs == true) {
  1096.                 if ($new_entry_gaji->bpjs_id !== null) {
  1097.                     $nom_bpjs = Bpjs::select('nominal')->where('id', $new_entry_gaji->bpjs_id)->first();
  1098.                     $new_entry_gaji->nominal_bpjs = $nom_bpjs->nominal; //set nominal
  1099.                 }
  1100.             } else {
  1101.                 $new_entry_gaji->nominal_bpjs = 0;
  1102.             }
  1103.  
  1104.             if ($dateupah->is_potongan_cicilan == true) {
  1105.                 if ($karyawan[$i]->potongan_cicilan != 0) {
  1106.                     if ($karyawan[$i]->sisa_pinjaman >= $karyawan[$i]->cicilan_pinjaman) {
  1107.                         $new_entry_gaji->nominal_cicilan = $karyawan[$i]->potongan_cicilan;
  1108.                         $new_entry_gaji->nominal_calculated_cicilan = $karyawan[$i]->potongancicilan * ($new_entry_gaji->persentase_cicilan/100);
  1109.                     }
  1110.                     if ($karyawan[$i]->sisa_pinjaman < $karyawan[$i]->cicilan_pinjaman) {
  1111.                         $new_entry_gaji->nominal_cicilan = $karyawan[$i]->sisa_pinjaman;
  1112.                         $new_entry_gaji->nominal_calculated_cicilan = $karyawan[$i]->sisa_pinjaman * ($new_entry_gaji->persentase_cicilan/100);
  1113.                     }
  1114.                 } else {
  1115.                     if ($karyawan[$i]->sisa_pinjaman >= $karyawan[$i]->cicilan_pinjaman) {
  1116.                         $new_entry_gaji->nominal_cicilan = $karyawan[$i]->cicilan_pinjaman;
  1117.                         $new_entry_gaji->nominal_calculated_cicilan = $karyawan[$i]->cicilan_pinjaman * ($new_entry_gaji->persentase_cicilan/100);
  1118.                     }
  1119.                     if ($karyawan[$i]->sisa_pinjaman < $karyawan[$i]->cicilan_pinjaman) {
  1120.                         $new_entry_gaji->nominal_cicilan = $karyawan[$i]->sisa_pinjaman;
  1121.                         $new_entry_gaji->nominal_calculated_cicilan = $karyawan[$i]->sisa_pinjaman * ($new_entry_gaji->persentase_cicilan/100);
  1122.                     }
  1123.                 }
  1124.             } else {
  1125.                 $new_entry_gaji->nominal_cicilan = 0;
  1126.                 $new_entry_gaji->nominal_calculated_cicilan = 0 * ($new_entry_gaji->persentase_cicilan/100);
  1127.             }
  1128.  
  1129.             // $cicilan_id = Cicilan::select('id')->where('karyawan_id', $new_entry_gaji->karyawan_id)->first();
  1130.             // if (!$cicilan_id) {
  1131.             //     $new_entry_gaji->cicilan_id = null;
  1132.             // } else {
  1133.             //     $new_entry_gaji->cicilan_id = $cicilan_id->id;
  1134.             // }
  1135.  
  1136.             // if ($cicilan_id !== null) {
  1137.             //     $nom_cicilan = Cicilan::select('nominal')->where('id', $cicilan_id->id)->first();
  1138.             //     $new_entry_gaji->nominal_cicilan  = $nom_cicilan->nominal;
  1139.             // }
  1140.  
  1141.             $settingupah_id = SettingUpah::where('karyawan_id', $new_entry_gaji->karyawan_id)->first();
  1142.             if (!$settingupah_id) {
  1143.                 $new_entry_gaji->setting_upah_id = null;
  1144.                 $new_entry_gaji->upah_rutin_harian = 0;
  1145.                 $new_entry_gaji->nominal_upah_rutin = 0;
  1146.                 $new_entry_gaji->nominal_upah_ngeplus = 0;
  1147.             } else {
  1148.                 $new_entry_gaji->setting_upah_id = $settingupah_id->id;
  1149.                 $new_entry_gaji->upah_rutin_harian = (int)$settingupah_id->nominal_dasar;
  1150.                 $new_entry_gaji->nominal_upah_rutin = (int)$settingupah_id->nominal_dasar;
  1151.                 $new_entry_gaji->nominal_upah_ngeplus = (int)$settingupah_id->nominal_ngeplus;
  1152.             }
  1153.  
  1154.             // if ($settingupah_id != null) {
  1155.             //     $total_upah = SettingUpah::select('nominal_dasar', 'nominal_ngeplus')->where('id', $settingupah_id->id)->first();
  1156.  
  1157.             // }
  1158.  
  1159.             // $bonus_id = Bonus::select('id')->where('karyawan_id', $new_entry_gaji->karyawan_id)->first();
  1160.             // if (!$bonus_id) {
  1161.             //     $new_entry_gaji->bonus_id = null;
  1162.             // } else {
  1163.             //     $new_entry_gaji->bonus_id = $bonus_id->id;
  1164.             // }
  1165.  
  1166.             // if ($bonus_id !== null) {
  1167.             //     $nom_bonus = Bonus::select('nominal_dasar')->where('id', $bonus_id->id)->first();
  1168.  
  1169.             // }
  1170.  
  1171.             $new_entry_gaji->nominal_bonus_overtime = $karyawan[$i]->bonus_overtime;
  1172.             $new_entry_gaji->nominal_bonus_kehadiran = $karyawan[$i]->bonus_kehadiran;
  1173.             $new_entry_gaji->nominal_bonus  = $karyawan[$i]->bonus_kehadiran + $karyawan[$i]->bonus_overtime;
  1174.  
  1175.             //KONDISI ISI TUNGGAKAN KETIKA TIDAK CEK
  1176.  
  1177.             $new_entry_gaji->status_pembayaran_upahdasar = "selected";
  1178.             $new_entry_gaji->status_bayar_semua = "selected";
  1179.             $new_entry_gaji->status_pembayaran_bonus = "selected";
  1180.  
  1181.             // set default nya 0
  1182.             $new_entry_gaji->checkbox_cicilan = 0;
  1183.             $new_entry_gaji->checkbox_jamsostek = 0;
  1184.             $new_entry_gaji->checkbox_bpjs = 0;
  1185.             $new_entry_gaji->checkbox_tunggakan = 0;
  1186.  
  1187.  
  1188.             if ($request->potongan_cicilan != null) {
  1189.                 $new_entry_gaji->status_pembayaran_cicilan = "selected";
  1190.                 $new_entry_gaji->checkbox_cicilan = 1;
  1191.  
  1192.  
  1193.             } else {
  1194.                 $new_entry_gaji->status_pembayaran_cicilan = "next";
  1195.                 $new_entry_gaji->checkbox_cicilan = $checkbox_cicilan;
  1196.  
  1197.                 // $new_entry_gaji->nominal_tunggakan = $new_entry_gaji->nominal_tunggakan + $new_entry_gaji->nominal_cicilan;
  1198.                 // $new_entry_gaji->total_tunggakan = $new_entry_gaji->total_tunggakan + $new_entry_gaji->nominal_cicilan;
  1199.             }
  1200.  
  1201.             if ($request->potongan_bpjs != null) {
  1202.                 $new_entry_gaji->status_pembayaran_bpjs = "selected";
  1203.                 $new_entry_gaji->checkbox_bpjs = 1;
  1204.  
  1205.                 // $new_entry_gaji->total_tunggakan = $new_entry_gaji->total_tunggakan + $new_entry_gaji->nominal_bpjs;
  1206.             } else {
  1207.                 $new_entry_gaji->status_pembayaran_bpjs = "next";
  1208.                 $new_entry_gaji->checkbox_bpjs = $checkbox_bpjs;
  1209.  
  1210.                 // $new_entry_gaji->nominal_tunggakan = $new_entry_gaji->nominal_tunggakan + $new_entry_gaji->nominal_bpjs;
  1211.                 // $new_entry_gaji->total_tunggakan = $new_entry_gaji->total_tunggakan + $new_entry_gaji->nominal_bpjs;
  1212.             }
  1213.  
  1214.             if ($request->potongan_jamsostek != null) {
  1215.                 $new_entry_gaji->status_pembayaran_jamsostek = "selected";
  1216.                 $new_entry_gaji->checkbox_jamsostek = 1;
  1217.                 // $new_entry_gaji->total_tunggakan = $new_entry_gaji->total_tunggakan + $new_entry_gaji->nominal_jamsostek;
  1218.             } else {
  1219.                 $new_entry_gaji->status_pembayaran_jamsostek = "next";
  1220.                 $new_entry_gaji->checkbox_jamsostek = $checkbox_jamsostek;
  1221.                 // $new_entry_gaji->nominal_tunggakan = $new_entry_gaji->nominal_tunggakan + $new_entry_gaji->nominal_jamsostek;
  1222.                 // $new_entry_gaji->total_tunggakan = $new_entry_gaji->total_tunggakan + $new_entry_gaji->nominal_jamsostek;
  1223.             }
  1224.  
  1225.             if ($request->potongan_tunggakan != null) {
  1226.                 $new_entry_gaji->status_pembayaran_tunggakan = "selected";
  1227.                 $new_entry_gaji->checkbox_tunggakan = 1;
  1228.  
  1229.             } else {
  1230.                 $new_entry_gaji->status_pembayaran_tunggakan = "next";
  1231.                 $new_entry_gaji->checkbox_tunggakan = $checkbox_tunggakan;
  1232.  
  1233.             }
  1234.  
  1235.             $new_entry_gaji->periodegaji_id = $dateupah->id;
  1236.             $new_entry_gaji->tanggal_mulai_periode = $dateupah->tanggal_mulai_periode;
  1237.             $new_entry_gaji->tanggal_selesai_periode = $dateupah->tanggal_selesai_periode;
  1238.             //$adatunggakan = Gaji::where('karyawan_id', $karyawan[$i]->id)->sum('total_potongan_tunggakan');
  1239.             //dd($adatunggakan);
  1240.             // dd($adatunggakan);
  1241.             // if ($adatunggakan !== null) {
  1242.             //     for ($k = 0; $k < count($adatunggakan); $k++) {
  1243.             //         if ($adatunggakan[$i]->total_potongan_tunggakan !== 0) {
  1244.  
  1245.             //             // $cari_tunggakan = $new_entry_gaji->total_potongan_tunggakan + $adatunggakan[$i]->total_potongan_tunggakan;
  1246.             //             $cari_tunggakan = $adatunggakan->sum('total_potongan_tunggakan');
  1247.             //         }
  1248.             //     }
  1249.  
  1250.             //     $kalkulasi_tunggakan = $cari_tunggakan;
  1251.             // } else {
  1252.             //     $kalkulasi_tunggakan = 0;
  1253.             // }
  1254.  
  1255.             if ($dateupah->is_potongan_tunggakan == true) {
  1256.                 $new_entry_gaji->total_potongan_tunggakan = $karyawan[$i]->total_tunggakan_periode_berikutnya;
  1257.             } else {
  1258.                 $new_entry_gaji->total_potongan_tunggakan = 0;
  1259.             }
  1260.  
  1261.             $new_entry_gaji->total_tunggakan = $new_entry_gaji->total_potongan_tunggakan + $new_entry_gaji->nominal_bpjs + $new_entry_gaji->nominal_jamsostek + $new_entry_gaji->nominal_cicilan;
  1262.             // dd($new_entry_gaji->total_potongan_tunggakan);
  1263.  
  1264.             // $new_entry_gaji->total = ($new_entry_gaji->nominal_dasar + $new_entry_gaji->nominal_bonus) - ($new_entry_gaji->nominal_bpjs + $new_entry_gaji->nominal_jamsostek + $new_entry_gaji->nominal_cicilan);
  1265.  
  1266.             if (isset($settingupah_id)) {
  1267.                 $new_entry_gaji->kalkulasi_rutin = $poinkaryawan * $settingupah_id->nominal_dasar;
  1268.                 $new_entry_gaji->kalkulasi_ngeplus = $poinkaryawanngeplus * $settingupah_id->nominal_ngeplus;
  1269.             } else {
  1270.                 $new_entry_gaji->kalkulasi_rutin = $poinkaryawan * 0;
  1271.                 $new_entry_gaji->kalkulasi_ngeplus = $poinkaryawanngeplus * 0;
  1272.             }
  1273.             $new_entry_gaji->kalkulasi_bonus = $new_entry_gaji->nominal_bonus_overtime + $new_entry_gaji->nominal_bonus_kehadiran;
  1274.             //TOTAL UPAH KARYAWAN + BONUS - POTONGAN
  1275.             $new_entry_gaji->total = $new_entry_gaji->nominal_dasar + $new_entry_gaji->kalkulasi_bonus - $new_entry_gaji->nominal_cicilan - $new_entry_gaji->total_potongan_tunggakan - $new_entry_gaji->nominal_bpjs - $new_entry_gaji->nominal_jamsostek;
  1276.             //NOMINAL UPAH DASAR KARYAWANN
  1277.             $new_entry_gaji->nominal = 0;
  1278.             //TOTAL UPAH KARYAWAN + BONUS YANG AKAN TERJADI PENGURANGAN DARI TUNGGAKAN
  1279.             $new_entry_gaji->sisa = $new_entry_gaji->total;
  1280.             // $new_entry_gaji->sisa = $new_entry_gaji->nominal_bpjs + $new_entry_gaji->nominal_jamsostek + $new_entry_gaji->nominal_cicilan;
  1281.  
  1282.             $new_entry_gaji->is_final = 'belum bayar';
  1283.             // dd($new_entry_gaji->toArray());
  1284.  
  1285.             // reset persentase cicilan jadi 0 jika poin < 1
  1286.             if($new_entry_gaji->poin < 1) {
  1287.                 $new_entry_gaji->persentase_cicilan = 0;
  1288.                 $new_entry_gaji->nominal_calculated_cicilan = 0;
  1289.             }
  1290.  
  1291.             // input JUMLAH UPAH KOTOR DAN CHECKBOXNYA
  1292.             $new_entry_gaji->upah_kotor = $new_entry_gaji->nominal_dasar + $new_entry_gaji->nominal_bonus;
  1293.             $new_entry_gaji->total_upah_sebelum_cicilan = $new_entry_gaji->nominal_dasar;
  1294.             $new_entry_gaji->checkbox_upah_kotor = 1;
  1295.  
  1296.  
  1297.             // dd($new_entry_gaji);
  1298.  
  1299.             $new_entry_gaji->save();
  1300.  
  1301.             // jumlahin semuanya
  1302.             $total_gaji_dasar += $new_entry_gaji->nominal_dasar;
  1303.             $total_bonus += $new_entry_gaji->nominal_bonus;
  1304.             $total_gaji_kotor += ($new_entry_gaji->nominal_dasar + $new_entry_gaji->nominal_bonus);
  1305.             $total_gaji_bersih += 0;
  1306.             $total_bpjs += $new_entry_gaji->nominal_bpjs;
  1307.             $total_jamsostek += $new_entry_gaji->nominal_jamsostek;
  1308.             $total_cicilan += $new_entry_gaji->nominal_cicilan;
  1309.  
  1310.             // jumlah paraameter kehadiran
  1311.             $total_poin += $poinfull;
  1312.         }
  1313.  
  1314.         $periodegaji = PeriodeGaji::find($dateupah->id);
  1315.         $periodegaji->total_upah_dasar = $total_gaji_dasar;
  1316.         $periodegaji->total_bonus = $total_bonus;
  1317.         $periodegaji->total_upah_kotor = $total_gaji_kotor;
  1318.         $periodegaji->total_upah_bersih = $total_gaji_bersih;
  1319.         $periodegaji->total_bpjs = $total_bpjs;
  1320.         $periodegaji->total_jamsostek = $total_jamsostek;
  1321.         $periodegaji->total_cicilan = $total_cicilan;
  1322.         $periodegaji->total_poin = $total_poin;
  1323.         $periodegaji->total_sakit = $total_sakit;
  1324.         $periodegaji->total_izin = $total_izin;
  1325.         $periodegaji->total_libur = $total_libur;
  1326.         $periodegaji->save();
  1327.  
  1328.         alert()->success('Sukses', 'Data Tanggal Upah berhasil ditambah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  1329.  
  1330.         return redirect()->route('gaji.index');
  1331.     }
  1332.  
  1333.     /**
  1334.      * @param  int  $id
  1335.      * @return \Illuminate\Http\Response
  1336.      */
  1337.     public function bayarupahGroup($id, $group_id)
  1338.     {
  1339.         $hari_ini = Carbon::now();
  1340.         $anggota = Karyawan::where('group_id', $group_id)->get();
  1341.         // $periode = PeriodeGaji::find($id);
  1342.         $gaji = Gaji::where('periodegaji_id', $id)->get();
  1343.         $final_count = 0;
  1344.         foreach ($gaji as $k) {
  1345.             for ($i = 0; $i < count($anggota); $i++) {
  1346.  
  1347.                 if ($k->karyawan_id == $anggota[$i]->id) {
  1348.  
  1349.                     // $k->tanggal_pembayaran = $hari_ini;
  1350.                     // $k->nominal = $k->nominal - $k->nominal_bpjs - $k->nominal_jamsostek - $k->nominal_cicilan + $k->nominal_bonus;
  1351.                     // $k->sisa = $k->sisa - $k->nominal_bpjs - $k->nominal_jamsostek - $k->nominal_cicilan + $k->nominal_bonus;
  1352.                     // $k->nominal_tunggakan = $k->nominal_bpjs + $k->nominal_jamsostek + $k->nominal_cicilan;
  1353.                     // $k->status_pembayaran_jamsostek = 'bayar';
  1354.                     // $k->status_pembayaran_bpjs = 'bayar';
  1355.                     // $k->status_pembayaran_cicilan = 'bayar';
  1356.                     // $k->status_pembayaran_tunggakan = 'bayar';
  1357.                     // $k->status_pembayaran_bonus = 'bayar';
  1358.                     // $k->status_pembayaran_upahdasar = 'bayar';
  1359.  
  1360.                     if ($k->is_final == 'belum bayar' || $k->is_final == null) {
  1361.                         $k->status_pembayaran_semua_kalkulasi = 'bayar';
  1362.                         $k->status_pembayaran_upahdasar = 'bayar';
  1363.                         $k->tanggal_pembayaran = date('Y-m-d');
  1364.                         $k->status_pembayaran_bonus = 'bayar';
  1365.                         $k->status_pembayaran_jamsostek = 'bayar';
  1366.                         $k->status_pembayaran_cicilan = 'bayar';
  1367.                         $k->status_pembayaran_bpjs = 'bayar';
  1368.                         $k->status_pembayaran_tunggakan = 'bayar';
  1369.                         $k->nominal = $k->total;
  1370.                         $k->is_final = 'bayar';
  1371.                         $k->update();
  1372.  
  1373.                         $anggota[$i]->nominal_upah_dasar = $k->nominal_dasar;
  1374.                         $anggota[$i]->save();
  1375.  
  1376.                         if ($k->status_pembayaran_bonus == 'bayar') {
  1377.                             $anggota[$i]->bonus_overtime = 0;
  1378.                             $anggota[$i]->bonus_kehadiran = 0;
  1379.                             $anggota[$i]->periode_mulai_kehadiran = null;
  1380.                             $anggota[$i]->periode_selesai_kehadiran = null;
  1381.                             $anggota[$i]->periode_mulai_overtime = null;
  1382.                             $anggota[$i]->periode_selesai_overtime = null;
  1383.                             $anggota[$i]->upah_bonus = $k->nominal_bonus;
  1384.                             $anggota[$i]->save();
  1385.                         }
  1386.  
  1387.                         if ($k->status_pembayaran_cicilan == 'bayar') {
  1388.                             if ($anggota[$i]->potongan_cicilan != 0) {
  1389.                                 $anggota[$i]->nominal_pinjaman = $anggota[$i]->nominal_pinjaman + $k->nominal_calculated_cicilan;
  1390.                                 $anggota[$i]->sisa_pinjaman = $anggota[$i]->sisa_pinjaman - $k->nominal_calculated_cicilan;
  1391.  
  1392.                                 if($k->nominal_calculated_cicilan != 0) {
  1393.                                     $riwayat_pinjaman = new RiwayatPinjaman();
  1394.                                     $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1395.                                     $riwayat_pinjaman->karyawan_id = $anggota[$i]->id;
  1396.                                     $riwayat_pinjaman->jenis = 'Bayar Cicilan dengan Potongan';
  1397.                                     $riwayat_pinjaman->total_pinjaman = $anggota[$i]->total_pinjaman;
  1398.                                     $riwayat_pinjaman->nominal_pinjaman = $anggota[$i]->nominal_pinjaman;
  1399.                                     $riwayat_pinjaman->sisa_pinjaman = $anggota[$i]->sisa_pinjaman;
  1400.                                     $riwayat_pinjaman->cicilan_pinjaman = $anggota[$i]->potongan_cicilan;
  1401.                                     $riwayat_pinjaman->save();
  1402.                                 }
  1403.  
  1404.  
  1405.                                 $anggota[$i]->potongan_cicilan = 0;
  1406.                                 $anggota[$i]->upah_potongan_cicilan = $k->nominal_calculated_cicilan;
  1407.                                 $anggota[$i]->save();
  1408.                                 if ($anggota[$i]->sisa_pinjaman == 0) {
  1409.                                     $anggota[$i]->cicilan_pinjaman = 0;
  1410.                                     $anggota[$i]->potongan_cicilan = 0;
  1411.                                     $anggota[$i]->save();
  1412.                                 }
  1413.                                 // $cicilan->nominal_sementara = 0;
  1414.                                 // $cicilan->status = 0;
  1415.                                 // $cicilan->save();
  1416.                             } else {
  1417.                                 $anggota[$i]->nominal_pinjaman = $anggota[$i]->nominal_pinjaman + $k->nominal_calculated_cicilan;
  1418.                                 $anggota[$i]->sisa_pinjaman = $anggota[$i]->sisa_pinjaman - $k->nominal_calculated_cicilan;
  1419.  
  1420.                                 if($k->nominal_calculated_cicilan != 0) {
  1421.                                     $riwayat_pinjaman = new RiwayatPinjaman();
  1422.                                     $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1423.                                     $riwayat_pinjaman->karyawan_id = $anggota[$i]->id;
  1424.                                     $riwayat_pinjaman->jenis = 'Bayar Cicilan';
  1425.                                     $riwayat_pinjaman->total_pinjaman = $anggota[$i]->total_pinjaman;
  1426.                                     $riwayat_pinjaman->nominal_pinjaman = $anggota[$i]->nominal_pinjaman;
  1427.                                     $riwayat_pinjaman->sisa_pinjaman = $anggota[$i]->sisa_pinjaman;
  1428.                                     $riwayat_pinjaman->cicilan_pinjaman = $anggota[$i]->cicilan_pinjaman;
  1429.                                     $riwayat_pinjaman->save();
  1430.                                 }
  1431.  
  1432.                                 $anggota[$i]->upah_potongan_cicilan = $k->nominal_calculated_cicilan;
  1433.                                 $anggota[$i]->save();
  1434.                                 if ($anggota[$i]->sisa_pinjaman == 0) {
  1435.                                     $anggota[$i]->cicilan_pinjaman = 0;
  1436.                                     $anggota[$i]->potongan_cicilan = 0;
  1437.                                     $anggota[$i]->save();
  1438.                                 }
  1439.                             }
  1440.                         }
  1441.  
  1442.                         if ($k->status_pembayaran_tunggakan == 'bayar') {
  1443.                             //$anggota[$i]->nominal_pinjaman = $anggota[$i]->nominal_pinjaman + $anggota[$i]->akumulasi_cicilan;
  1444.                             //$anggota[$i]->sisa_pinjaman = $anggota[$i]->sisa_pinjaman - $anggota[$i]->akumulasi_cicilan;
  1445.                             $anggota[$i]->total_tunggakan = $anggota[$i]->total_tunggakan - $k->total_potongan_tunggakan;
  1446.                             $anggota[$i]->total_tunggakan_periode_berikutnya = $anggota[$i]->total_tunggakan_periode_berikutnya - $k->total_potongan_tunggakan;
  1447.  
  1448.                             // $riwayat_pinjaman = new RiwayatPinjaman();
  1449.                             // $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1450.                             // $riwayat_pinjaman->karyawan_id = $anggota[$i]->id;
  1451.                             // $riwayat_pinjaman->jenis = 'Bayar Tunggakan Cicilan';
  1452.                             // $riwayat_pinjaman->total_pinjaman = $anggota[$i]->total_pinjaman;
  1453.                             // $riwayat_pinjaman->nominal_pinjaman = $anggota[$i]->nominal_pinjaman;
  1454.                             // $riwayat_pinjaman->sisa_pinjaman = $anggota[$i]->sisa_pinjaman;
  1455.                             // $riwayat_pinjaman->cicilan_pinjaman = $anggota[$i]->cicilan_pinjaman;
  1456.                             // $riwayat_pinjaman->save();
  1457.  
  1458.                             // $karyawan->akumulasi_cicilan = 0;
  1459.                             $anggota[$i]->save();
  1460.                             // if ($anggota[$i]->sisa_pinjaman == 0) {
  1461.                             //     $anggota[$i]->cicilan_pinjaman = 0;
  1462.                             //     $anggota[$i]->potongan_cicilan = 0;
  1463.                             //     $anggota[$i]->save();
  1464.                             // }
  1465.                         }
  1466.  
  1467.                         if ($k->status_pembayaran_jamsostek == 'bayar') {
  1468.                             $anggota[$i]->upah_potongan_jamsostek = $k->nominal_jamsostek;
  1469.                             $anggota[$i]->save();
  1470.                         }
  1471.  
  1472.                         if ($k->status_pembayaran_bpjs == 'bayar') {
  1473.                             $anggota[$i]->upah_potongan_bpjs = $k->nominal_bpjs;
  1474.                             $anggota[$i]->save();
  1475.                         }
  1476.                     }
  1477.  
  1478.                     // $cicilan_id = Cicilan::where('karyawan_id', $anggota[$i]->id)->first();
  1479.  
  1480.                     // if ($cicilan_id !== null) {
  1481.                     //     $cicilan = Cicilan::find($cicilan_id->id);
  1482.                     //     $cicilan->total = $cicilan->total - $cicilan->nominal;
  1483.                     //     // dd($k->nominal_cicilan);
  1484.                     //     $cicilan->sisa = $cicilan->total;
  1485.                     //     $cicilan->tanggal_pembayaran = date('Y-m-d H:i:s');
  1486.                     //     $cicilan->save();
  1487.                     // };
  1488.  
  1489.                     // $bonus_id = Bonus::where('karyawan_id', $anggota[$i]->id)->first();
  1490.                     // if ($bonus_id !== null) {
  1491.  
  1492.                     //     $bonus = Bonus::find($bonus_id->id);
  1493.                     //     $bonus->destroy($bonus_id->id);
  1494.                     // }
  1495.                     $final_count += 1;
  1496.                 }
  1497.                 // dd($k);
  1498.             }
  1499.         }
  1500.         alert()->success('Sukses', ' Pembayaran Upah Grup berhasil .')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  1501.  
  1502.         $periodegaji = PeriodeGaji::where('id', '=', $id)->first();
  1503.         return redirect()->route('gaji.detail', $periodegaji->id);
  1504.     }
  1505.  
  1506.     //bayar semua upah pertanggal tersebut
  1507.     public function bayartanggal($id)
  1508.     {
  1509.  
  1510.         $periode_id = PeriodeGaji::find($id);
  1511.         $data = Gaji::where('periodegaji_id', $id)->get();
  1512.         foreach ($data as $k) {
  1513.             $karyawan = Karyawan::find($k->karyawan_id);
  1514.  
  1515.             // variable $cicilan tidak dipakai
  1516.             // $cicilan = Cicilan::where('karyawan_id', '=', $k->karyawan_id)->first();
  1517.  
  1518.             if ($k->is_final == 'belum bayar' || $k->is_final == null) {
  1519.                 $k->status_pembayaran_semua_kalkulasi = 'bayar';
  1520.                 $k->status_pembayaran_upahdasar = 'bayar';
  1521.                 $k->tanggal_pembayaran = date('Y-m-d');
  1522.                 $k->status_pembayaran_bonus = 'bayar';
  1523.                 $k->status_pembayaran_jamsostek = 'bayar';
  1524.                 $k->status_pembayaran_cicilan = 'bayar';
  1525.                 $k->status_pembayaran_bpjs = 'bayar';
  1526.                 $k->status_pembayaran_tunggakan = 'bayar';
  1527.                 $k->nominal = $k->total;
  1528.                 $k->is_final = 'bayar';
  1529.  
  1530.                 $karyawan->nominal_upah_dasar = $k->nominal_dasar;
  1531.                 $karyawan->save();
  1532.  
  1533.                 if ($k->status_pembayaran_bonus == 'bayar') {
  1534.                     $karyawan->bonus_overtime = 0;
  1535.                     $karyawan->bonus_kehadiran = 0;
  1536.                     $karyawan->periode_mulai_kehadiran = null;
  1537.                     $karyawan->periode_selesai_kehadiran = null;
  1538.                     $karyawan->periode_mulai_overtime = null;
  1539.                     $karyawan->periode_selesai_overtime = null;
  1540.                     $karyawan->upah_bonus = $k->nominal_bonus;
  1541.                     $karyawan->save();
  1542.                 }
  1543.  
  1544.                 if ($k->status_pembayaran_cicilan == 'bayar') {
  1545.                     if ($karyawan->potongan_cicilan != 0) {
  1546.                         $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $karyawan->cicilan_pinjaman;
  1547.                         $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $karyawan->cicilan_pinjaman;
  1548.  
  1549.                         if($karyawan->cicilan_pinjaman != 0) {
  1550.                             $riwayat_pinjaman = new RiwayatPinjaman();
  1551.                             $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1552.                             $riwayat_pinjaman->karyawan_id = $karyawan->id;
  1553.                             $riwayat_pinjaman->jenis = 'Bayar Cicilan dengan Potongan';
  1554.                             $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  1555.                             $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  1556.                             $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  1557.                             $riwayat_pinjaman->cicilan_pinjaman = $karyawan->potongan_cicilan;
  1558.                             $riwayat_pinjaman->save();
  1559.                         }
  1560.  
  1561.                         $karyawan->potongan_cicilan = 0;
  1562.                         $karyawan->upah_potongan_cicilan = $k->nominal_calculated_cicilan;
  1563.                         $karyawan->save();
  1564.                         if ($karyawan->sisa_pinjaman == 0) {
  1565.                             $karyawan->cicilan_pinjaman = 0;
  1566.                             $karyawan->potongan_cicilan = 0;
  1567.                             $karyawan->save();
  1568.                         }
  1569.                         // if(isset($cicilan)) {
  1570.                         //     $cicilan->nominal_sementara = 0;
  1571.                         //     $cicilan->status = 0;
  1572.                         //     $cicilan->save();
  1573.                         // }
  1574.                     } else {
  1575.                         $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $k->nominal_calculated_cicilan;
  1576.                         $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $k->nominal_calculated_cicilan;
  1577.  
  1578.                         if($karyawan->cicilan_pinjaman != 0) {
  1579.                             $riwayat_pinjaman = new RiwayatPinjaman();
  1580.                             $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1581.                             $riwayat_pinjaman->karyawan_id = $karyawan->id;
  1582.                             $riwayat_pinjaman->jenis = 'Bayar Cicilan dengan Potongan';
  1583.                             $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  1584.                             $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  1585.                             $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  1586.                             $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  1587.                             $riwayat_pinjaman->save();
  1588.                         }
  1589.  
  1590.                         $karyawan->upah_potongan_cicilan = $k->nominal_calculated_cicilan;
  1591.                         $karyawan->save();
  1592.                         if ($karyawan->sisa_pinjaman == 0) {
  1593.                             $karyawan->cicilan_pinjaman = 0;
  1594.                             $karyawan->potongan_cicilan = 0;
  1595.                             $karyawan->save();
  1596.                         }
  1597.                     }
  1598.                 }
  1599.  
  1600.                 if ($k->status_pembayaran_tunggakan == 'bayar') {
  1601.                     //$karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $karyawan->akumulasi_cicilan;
  1602.                     //$karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $karyawan->akumulasi_cicilan;
  1603.                     $karyawan->total_tunggakan = $karyawan->total_tunggakan - $k->total_potongan_tunggakan;
  1604.                     $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - $k->total_potongan_tunggakan;
  1605.  
  1606.                     // $riwayat_pinjaman = new RiwayatPinjaman();
  1607.                     // $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1608.                     // $riwayat_pinjaman->karyawan_id = $karyawan->id;
  1609.                     // $riwayat_pinjaman->jenis = 'Bayar Tunggakan Cicilan';
  1610.                     // $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  1611.                     // $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  1612.                     // $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  1613.                     // $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  1614.                     // $riwayat_pinjaman->save();
  1615.  
  1616.                     // $karyawan->akumulasi_cicilan = 0;
  1617.                     $karyawan->save();
  1618.                     // if ($karyawan->sisa_pinjaman == 0) {
  1619.                     //     $karyawan->cicilan_pinjaman = 0;
  1620.                     //     $karyawan->potongan_cicilan = 0;
  1621.                     //     $karyawan->save();
  1622.                     // }
  1623.                 }
  1624.  
  1625.                 if ($k->status_pembayaran_jamsostek == 'bayar') {
  1626.                     $karyawan->upah_potongan_jamsostek = $k->nominal_jamsostek;
  1627.                     $karyawan->save();
  1628.                 }
  1629.  
  1630.                 if ($k->status_pembayaran_bpjs == 'bayar') {
  1631.                     $karyawan->upah_potongan_bpjs = $k->nominal_bpjs;
  1632.                     $karyawan->save();
  1633.                 }
  1634.             }
  1635.  
  1636.  
  1637.  
  1638.             //backup
  1639.             // if ($k->status_pembayaran_jamsostek == 'selected') {
  1640.             //     $k->status_pembayaran_jamsostek = 'bayar';
  1641.             //     $k->nominal = $k->nominal - $k->nominal_jamsostek;
  1642.             //     $k->sisa = $k->sisa - $k->nominal_jamsostek;
  1643.             //     $k->nominal_tunggakan = $k->nominal_tunggakan + $k->nominal_jamsostek;
  1644.             // }
  1645.             // if ($k->status_pembayaran_cicilan == 'selected') {
  1646.             //     $k->status_pembayaran_cicilan = 'bayar';
  1647.             //     $k->nominal = $k->nominal - $k->nominal_cicilan;
  1648.             //     $k->sisa = $k->sisa - $k->nominal_cicilan;
  1649.             //     $k->nominal_tunggakan = $k->nominal_tunggakan + $k->nominal_cicilan;
  1650.             // }
  1651.             // if ($k->status_pembayaran_bpjs == 'selected') {
  1652.             //     $k->status_pembayaran_bpjs = 'bayar';
  1653.             //     $k->nominal = $k->nominal - $k->nominal_bpjs;
  1654.             //     $k->sisa = $k->sisa - $k->nominal_bpjs;
  1655.             //     $k->nominal_tunggakan = $k->nominal_tunggakan + $k->nominal_bpjs;
  1656.             // }
  1657.             // if ($k->status_pembayaran_bonus == 'selected') {
  1658.             //     $k->status_pembayaran_bonus = 'bayar';
  1659.             //     $k->nominal = $k->nominal - $k->nominal_bonus;
  1660.             //     $k->sisa = $k->sisa - $k->nominal_bonus;
  1661.             // }
  1662.             // // dd($k->nominal);
  1663.             $k->save();
  1664.         }
  1665.  
  1666.         $periode_id->is_final = 'bayar';
  1667.         $periode_id->save();
  1668.         alert()->success('Sukses', ' Pembayaran Upah Per Periode berhasil .')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  1669.  
  1670.         return redirect()->route('gaji.index');
  1671.     }
  1672.  
  1673.  
  1674.     /**
  1675.      * @param  int  $id
  1676.      * @return \Illuminate\Http\Response
  1677.      */
  1678.     public function bayarupah($id, $karyawan_id)
  1679.     {
  1680.         $nominal_dasar = 0;
  1681.         $gaji = Gaji::with('karyawan.group', 'karyawan.jamsostek', 'karyawan.settingUpah', 'karyawan.bpjs', 'karyawan.bonus')->find($id);
  1682.         $gaji->setAttribute('bayar_jamsostek', 0);
  1683.         $gaji->setAttribute('bayar_bpjs', 0);
  1684.         $gaji->setAttribute('bayar_cicilan', 0);
  1685.         $gaji->setAttribute('bayar_tunggakan', 0);
  1686.         if (($gaji->status_pembayaran_jamsostek == "selected") || ($gaji->status_pembayaran_jamsostek == "bayar")) {
  1687.             $gaji->bayar_jamsostek = $gaji->nominal_jamsostek;
  1688.         }
  1689.         if (($gaji->status_pembayaran_bpjs == "selected") || ($gaji->status_pembayaran_bpjs == "bayar")) {
  1690.             $gaji->bayar_bpjs = $gaji->nominal_bpjs;
  1691.         }
  1692.         if (($gaji->status_pembayaran_cicilan == "selected") || ($gaji->status_pembayaran_cicilan == "bayar")) {
  1693.             $gaji->bayar_cicilan = $gaji->nominal_calculated_cicilan;
  1694.         }
  1695.         if (($gaji->status_pembayaran_tunggakan == "selected") || ($gaji->status_pembayaran_bayar == "bayar")) {
  1696.             $gaji->bayar_tunggakan = $gaji->total_tunggakan;
  1697.         }
  1698.         $gaji->total = ($gaji->nominal_dasar + $gaji->nominal_bonus) - ($gaji->bayar_jamsostek + $gaji->bayar_bpjs + $gaji->bayar_cicilan + $gaji->bayar_tunggakan);
  1699.         if ($gaji->karyawan['settingUpah'] !== null) {
  1700.             $nominal_dasar = $gaji->karyawan['settingUpah']->nominal_dasar;
  1701.         } else {
  1702.             $nominal_dasar = 0;
  1703.         }
  1704.         return view('Gaji.bayarupah', compact('gaji', 'nominal_dasar'));
  1705.     }
  1706.  
  1707.     /**
  1708.      * Update the specified resource in storage.
  1709.      *
  1710.      * @param  \Illuminate\Http\Request  $request
  1711.      * @param  int  $id
  1712.      * @return \Illuminate\Http\Response
  1713.      */
  1714.     public function storebayarupah(Request $request, $id)
  1715.     {
  1716.         $data = json_decode($request->gaji);
  1717.         $gaji = Gaji::find($id);
  1718.         $gaji->total = $data->total;
  1719.         $karyawan = Karyawan::find($gaji->karyawan_id);
  1720.         // $cicilan = Cicilan::where('karyawan_id', '=', $gaji->karyawan_id)->first();
  1721.  
  1722.         $gaji->status_pembayaran_semua_kalkulasi = 'bayar';
  1723.         $gaji->status_pembayaran_upahdasar = 'bayar';
  1724.         $gaji->tanggal_pembayaran = date('Y-m-d');
  1725.         $gaji->status_pembayaran_bonus = 'bayar';
  1726.         $gaji->status_pembayaran_jamsostek = 'bayar';
  1727.         $gaji->status_pembayaran_cicilan = 'bayar';
  1728.         $gaji->status_pembayaran_bpjs = 'bayar';
  1729.         $gaji->status_pembayaran_tunggakan = 'bayar';
  1730.         $gaji->nominal = $gaji->nominal + $gaji->nominal_dasar + $gaji->kalkulasi_bonus - $gaji->nominal_calculated_cicilan - $gaji->total_potongan_tunggakan - $gaji->nominal_bpjs - $gaji->nominal_jamsostek;
  1731.         $gaji->sisa = $gaji->sisa - $gaji->nominal;
  1732.  
  1733.         /**
  1734.          * KONDISI TERBAYARKAN
  1735.          */
  1736.         if ($gaji->status_pembayaran_cicilan == 'bayar') {
  1737.             if ($karyawan->potongan_cicilan != 0) {
  1738.                 $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $gaji->nominal_calculated_cicilan;
  1739.                 $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $gaji->nominal_calculated_cicilan;
  1740.                 $karyawan->potongan_cicilan = 0;
  1741.                 $karyawan->save();
  1742.                 if ($karyawan->sisa_pinjaman == 0) {
  1743.                     $karyawan->cicilan_pinjaman = 0;
  1744.                     $karyawan->potongan_cicilan = 0;
  1745.                     $karyawan->save();
  1746.                 }
  1747.                 // $cicilan->nominal_sementara = 0;
  1748.                 // $cicilan->status = 0;
  1749.                 // $cicilan->save();
  1750.             } else {
  1751.                 $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $gaji->nominal_calculated_cicilan;
  1752.                 $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $gaji->nominal_calculated_cicilan;
  1753.                 $karyawan->save();
  1754.                 if ($karyawan->sisa_pinjaman == 0) {
  1755.                     $karyawan->cicilan_pinjaman = 0;
  1756.                     $karyawan->potongan_cicilan = 0;
  1757.                     $karyawan->save();
  1758.                 }
  1759.             }
  1760.         }
  1761.  
  1762.         if ($gaji->status_pembayaran_tunggakan == 'bayar') {
  1763.             //$karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $karyawan->akumulasi_cicilan;
  1764.             //$karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $karyawan->akumulasi_cicilan;
  1765.             $karyawan->total_tunggakan = $karyawan->total_tunggakan - $gaji->total_potongan_tunggakan;
  1766.             $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - $gaji->total_potongan_tunggakan;
  1767.             // $karyawan->akumulasi_cicilan = 0;
  1768.             $karyawan->save();
  1769.             // if ($karyawan->sisa_pinjaman == 0) {
  1770.             //     $karyawan->cicilan_pinjaman = 0;
  1771.             //     $karyawan->potongan_cicilan = 0;
  1772.             //     $karyawan->save();
  1773.             // }
  1774.         }
  1775.  
  1776.         // //backup
  1777.         // if ($gaji->status_pembayaran_jamsostek == "selected") {
  1778.         //     $gaji->tanggal_jamsostek = date('Y-m-d H:i:s');
  1779.         //     $gaji->status_pembayaran_jamsostek = $request->bayar;
  1780.         // }
  1781.         // // dd($gaji->status_pembayaran_jamsostek);
  1782.         // if ($gaji->status_pembayaran_bpjs == "selected") {
  1783.         //     $gaji->status_pembayaran_bpjs = "bayar";
  1784.         //     $gaji->tanggal_bpjs = date('Y-m-d H:i:s');
  1785.         // }
  1786.         // // dd($gaji->status_pembayaran_bpjs);
  1787.         // if ($gaji->status_pembayaran_cicilan == "selected") {
  1788.         //     $gaji->status_pembayaran_cicilan = "bayar";
  1789.         //     $gaji->tanggal_cicilan = date('Y-m-d H:i:s');
  1790.         // }
  1791.         // if ($gaji->status_pembayaran_tunggakan == "selected") {
  1792.         //     $gaji->status_pembayaran_tunggakan = "bayar";
  1793.         //     $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  1794.         // }
  1795.         // if ($gaji->status_pembayaran_bonus == "selected") {
  1796.         //     $gaji->status_pembayaran_bonus = "bayar";
  1797.         //     $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  1798.         // }
  1799.         // $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  1800.  
  1801.         $gaji->is_final = 'bayar';
  1802.         $gaji->save();
  1803.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  1804.         return redirect()->route('gaji.detail', $periodegaji->id);
  1805.     }
  1806.  
  1807.     public function storebayarsesungguhnya($id)
  1808.     {
  1809.         $gaji = Gaji::find($id);
  1810.         $karyawan = Karyawan::find($gaji->karyawan_id);
  1811.         //$cicilan = Cicilan::where('karyawan_id', '=', $gaji->karyawan_id)->first();
  1812.         //dd($cicilan);
  1813.  
  1814.         $gaji->status_pembayaran_semua_kalkulasi = 'bayar';
  1815.         $gaji->status_pembayaran_upahdasar = 'bayar';
  1816.         $gaji->tanggal_pembayaran = date('Y-m-d');
  1817.  
  1818.         if ($gaji->status_pembayaran_bonus == 'siap bayar') {
  1819.             $gaji->status_pembayaran_bonus = 'bayar';
  1820.         } else {
  1821.             $gaji->status_pembayaran_bonus = 'tidak dibayar';
  1822.         }
  1823.  
  1824.         if ($gaji->status_pembayaran_jamsostek == 'siap bayar') {
  1825.             $gaji->status_pembayaran_jamsostek = 'bayar';
  1826.         } else {
  1827.             $gaji->status_pembayaran_jamsostek = 'tunggak';
  1828.         }
  1829.  
  1830.         if ($gaji->status_pembayaran_cicilan == 'siap bayar') {
  1831.             $gaji->status_pembayaran_cicilan = 'bayar';
  1832.         } else {
  1833.             $gaji->status_pembayaran_cicilan = 'tidak dibayar';
  1834.         }
  1835.  
  1836.         if ($gaji->status_pembayaran_bpjs == 'siap bayar') {
  1837.             $gaji->status_pembayaran_bpjs = 'bayar';
  1838.         } else {
  1839.             $gaji->status_pembayaran_bpjs = 'tunggak';
  1840.         }
  1841.  
  1842.         if ($gaji->status_pembayaran_tunggakan == 'siap bayar') {
  1843.             $gaji->status_pembayaran_tunggakan = 'bayar';
  1844.         } else {
  1845.             $gaji->status_pembayaran_tunggakan = 'tunggak';
  1846.         }
  1847.  
  1848.         /**
  1849.          * KONDISI TERBAYARKAN
  1850.          */
  1851.         $karyawan->nominal_upah_dasar = $gaji->nominal_dasar;
  1852.         $karyawan->save();
  1853.  
  1854.         if ($gaji->status_pembayaran_bonus == 'bayar') {
  1855.             $karyawan->bonus_overtime = 0;
  1856.             $karyawan->bonus_kehadiran = 0;
  1857.             $karyawan->periode_mulai_kehadiran = null;
  1858.             $karyawan->periode_selesai_kehadiran = null;
  1859.             $karyawan->periode_mulai_overtime = null;
  1860.             $karyawan->periode_selesai_overtime = null;
  1861.             $karyawan->upah_bonus = $gaji->nominal_bonus;
  1862.             $karyawan->save();
  1863.         }
  1864.  
  1865.         if ($gaji->status_pembayaran_cicilan == 'bayar') {
  1866.             if ($karyawan->potongan_cicilan != 0) {
  1867.                 $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $gaji->nominal_calculated_cicilan;
  1868.                 $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $gaji->nominal_calculated_cicilan;
  1869.  
  1870.                 if($gaji->nominal_calculated_cicilan != 0) {
  1871.                     $riwayat_pinjaman = new RiwayatPinjaman();
  1872.                     $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1873.                     $riwayat_pinjaman->karyawan_id = $karyawan->id;
  1874.                     $riwayat_pinjaman->jenis = 'Bayar Cicilan dengan Potongan';
  1875.                     $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  1876.                     $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  1877.                     $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  1878.                     $riwayat_pinjaman->cicilan_pinjaman = $karyawan->potongan_cicilan;
  1879.                     $riwayat_pinjaman->save();
  1880.                 }
  1881.  
  1882.  
  1883.                 // $cicilan->nominal_sementara = 0;
  1884.                 // $cicilan->status = 0;
  1885.                 // $cicilan->save();
  1886.             } else {
  1887.                 $karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $gaji->nominal_calculated_cicilan;
  1888.                 $karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $gaji->nominal_calculated_cicilan;
  1889.  
  1890.                 if($gaji->nominal_calculated_cicilan != 0) {
  1891.                     $riwayat_pinjaman = new RiwayatPinjaman();
  1892.                     $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1893.                     $riwayat_pinjaman->karyawan_id = $karyawan->id;
  1894.                     $riwayat_pinjaman->jenis = 'Bayar Cicilan';
  1895.                     $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  1896.                     $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  1897.                     $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  1898.                     $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  1899.                     $riwayat_pinjaman->save();
  1900.                 }
  1901.             }
  1902.  
  1903.             $karyawan->upah_potongan_cicilan = $gaji->nominal_calculated_cicilan;
  1904.             $karyawan->potongan_cicilan = 0;
  1905.             $karyawan->save();
  1906.  
  1907.             if ($karyawan->sisa_pinjaman == 0) {
  1908.                 $karyawan->cicilan_pinjaman = 0;
  1909.                 $karyawan->potongan_cicilan = 0;
  1910.                 $karyawan->save();
  1911.             }
  1912.         }
  1913.  
  1914.         if ($gaji->status_pembayaran_tunggakan == 'bayar') {
  1915.             //$karyawan->nominal_pinjaman = $karyawan->nominal_pinjaman + $karyawan->akumulasi_cicilan;
  1916.             //$karyawan->sisa_pinjaman = $karyawan->sisa_pinjaman - $karyawan->akumulasi_cicilan;
  1917.             $karyawan->total_tunggakan = $karyawan->total_tunggakan - $gaji->total_potongan_tunggakan;
  1918.             $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - $gaji->total_potongan_tunggakan;
  1919.  
  1920.             // $riwayat_pinjaman = new RiwayatPinjaman();
  1921.             // $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  1922.             // $riwayat_pinjaman->karyawan_id = $karyawan->id;
  1923.             // $riwayat_pinjaman->jenis = 'Bayar Tunggakan Cicilan';
  1924.             // $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  1925.             // $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  1926.             // $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  1927.             // $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  1928.             // $riwayat_pinjaman->save();
  1929.  
  1930.             // $karyawan->akumulasi_cicilan = 0;
  1931.             $karyawan->save();
  1932.             // if ($karyawan->sisa_pinjaman == 0) {
  1933.             //     $karyawan->cicilan_pinjaman = 0;
  1934.             //     $karyawan->potongan_cicilan = 0;
  1935.             //     $karyawan->save();
  1936.             // }
  1937.         }
  1938.  
  1939.         if ($gaji->status_pembayaran_jamsostek == 'bayar') {
  1940.             $karyawan->upah_potongan_jamsostek = $gaji->nominal_jamsostek;
  1941.             $karyawan->save();
  1942.         }
  1943.  
  1944.         if ($gaji->status_pembayaran_bpjs == 'bayar') {
  1945.             $karyawan->upah_potongan_bpjs = $gaji->nominal_bpjs;
  1946.             $karyawan->save();
  1947.         }
  1948.  
  1949.         /**
  1950.          * KONDISI TERTUNGGAK
  1951.          */
  1952.         if ($gaji->status_pembayaran_jamsostek == 'tunggak') {
  1953.             $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_jamsostek;
  1954.             $gaji->fixed_total_potongan_tunggakan = $gaji->fixed_total_potongan_tunggakan + $gaji->nominal_jamsostek;
  1955.             $karyawan->total_tunggakan = $karyawan->total_tunggakan + $gaji->nominal_jamsostek;
  1956.             $karyawan->save();
  1957.         }
  1958.  
  1959.         if ($gaji->status_pembayaran_bpjs == 'tunggak') {
  1960.             $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_bpjs;
  1961.             $gaji->fixed_total_potongan_tunggakan = $gaji->fixed_total_potongan_tunggakan + $gaji->nominal_bpjs;
  1962.             $karyawan->total_tunggakan = $karyawan->total_tunggakan + $gaji->nominal_bpjs;
  1963.             $karyawan->save();
  1964.         }
  1965.  
  1966.         // if ($gaji->status_pembayaran_cicilan == 'tunggak') {
  1967.         //     $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_cicilan;
  1968.         //     $gaji->nominal_penanda_cicilan = $gaji->nominal_cicilan;
  1969.         //     $gaji->fixed_total_potongan_tunggakan = $gaji->fixed_total_potongan_tunggakan + $gaji->nominal_cicilan;
  1970.         //     $karyawan->akumulasi_cicilan = $karyawan->akumulasi_cicilan + $gaji->nominal_cicilan;
  1971.         //     $karyawan->total_tunggakan = $karyawan->total_tunggakan + $gaji->nominal_cicilan;
  1972.         //     $karyawan->save();
  1973.         // }
  1974.  
  1975.         if ($gaji->status_pembayaran_tunggakan == 'tunggak') {
  1976.             $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->total_potongan_tunggakan;
  1977.             // $gaji->fixed_total_potongan_tunggakan = $gaji->fixed_total_potongan_tunggakan + $gaji->total_potongan_tunggakan;
  1978.             // $karyawan->total_tunggakan = $karyawan->total_tunggakan + $gaji->total_potongan_tunggakan;
  1979.             // $karyawan->save();
  1980.         }
  1981.  
  1982.         $gaji->is_final = 'bayar';
  1983.         $gaji->save();
  1984.  
  1985.         toast('Data upah berhasil dibayar.', 'success');
  1986.  
  1987.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  1988.         return redirect()->route('gaji.detail', $periodegaji->id);
  1989.     }
  1990.  
  1991.     //bayar semua
  1992.     public function storebayarupahonly(Request $request, $id)
  1993.     {
  1994.         $gaji = Gaji::find($id);
  1995.         $gaji_data = json_decode($request->row, true);
  1996.  
  1997.         if ($gaji_data['status_pembayaran_jamsostek'] != 'next') {
  1998.             $gaji_data['status_pembayaran_jamsostek'] = 'siap bayar';
  1999.         }
  2000.         if ($gaji_data['status_pembayaran_cicilan'] != 'next') {
  2001.             $gaji_data['status_pembayaran_cicilan'] = 'siap bayar';
  2002.         }
  2003.         if ($gaji_data['status_pembayaran_bpjs'] != 'next') {
  2004.             $gaji_data['status_pembayaran_bpjs'] = 'siap bayar';
  2005.         }
  2006.         if ($gaji_data['status_pembayaran_tunggakan'] != 'next') {
  2007.             $gaji_data['status_pembayaran_tunggakan'] = 'siap bayar';
  2008.         }
  2009.  
  2010.         $gaji_data['status_pembayaran_upahdasar'] = 'siap bayar';
  2011.         $gaji_data['status_pembayaran_bonus'] = 'siap bayar';
  2012.         $gaji_data['status_bayar_semua'] = 'siap bayar';
  2013.  
  2014.         $gaji_data['nominal'] = $gaji_data['nominal'] + $gaji_data['nominal_dasar'] + $gaji_data['nominal_bonus'] - $gaji_data['nominal_jamsostek'] - $gaji_data['nominal_calculated_cicilan'] - $gaji_data['nominal_bpjs'] - $gaji_data['total_potongan_tunggakan'];
  2015.         $gaji_data['sisa'] = $gaji_data['sisa'] - $gaji_data['nominal'];
  2016.         // $gaji->save();
  2017.  
  2018.         unset($gaji_data['karyawan']);
  2019.         $gaji->update($gaji_data);
  2020.  
  2021.         toast('Semua komponen upah berhasil ditambah.', 'success');
  2022.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2023.         return redirect()->route('gaji.detail', $periodegaji->id);
  2024.     }
  2025.  
  2026.     // pembayaran upah dasar
  2027.     public function storebayarupahdasaronly($id)
  2028.     {
  2029.         $gaji = Gaji::find($id);
  2030.         $gaji->nominal = $gaji->nominal + $gaji->nominal_dasar;
  2031.         $gaji->sisa = $gaji->nominal + $gaji->nominal_dasar;
  2032.         // $gaji->total_tunggakan = $gaji->total_tunggakan + $gaji->nominal_dasar;
  2033.         $gaji->status_pembayaran_upahdasar = "siap bayar";
  2034.         //$gaji->tanggal_pembayaran = date('Y-m-d');
  2035.         //$gaji->tanggal_bayar_tunggakan = date('Y-m-d H:i:s');
  2036.  
  2037.         $gaji->save();
  2038.  
  2039.         toast('Komponen upah dasar berhasil ditambah.', 'success');
  2040.  
  2041.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2042.         return redirect()->route('gaji.detail', $periodegaji->id);
  2043.     }
  2044.  
  2045.     // potongan tunggakan
  2046.     public function storebayartunggakanonly($id)
  2047.     {
  2048.         $gaji = Gaji::find($id);
  2049.         $gaji->status_pembayaran_tunggakan = "siap bayar";
  2050.         // $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  2051.         // $gaji->tanggal_bayar_tunggakan = date('Y-m-d H:i:s');
  2052.         // $gaji->nominal = $gaji->nominal - $gaji->nominal_dasar;
  2053.         // $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_dasar;
  2054.         $gaji->nominal = $gaji->nominal - $gaji->total_potongan_tunggakan;
  2055.         $gaji->sisa = $gaji->total - $gaji->total_potongan_tunggakan;
  2056.         $gaji->save();
  2057.  
  2058.         toast('Komponen tunggakan berhasil ditambah.', 'success');
  2059.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2060.         return redirect()->route('gaji.detail', $periodegaji->id);
  2061.  
  2062.         // return redirect()->route('gaji.index');
  2063.     }
  2064.  
  2065.     // // potongan cicilan
  2066.     // public function storebayarpotonganonly($id)
  2067.     // {
  2068.     //     $gaji = Gaji::find($id);
  2069.     //     $gaji->status_pembayaran_potongan = "bayar";
  2070.     //     $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  2071.     //     $gaji->nominal = $gaji->total - $gaji->nominal_cicilan;
  2072.     //     $gaji->sisa = $gaji->nominal;
  2073.     //     // $gaji->total_tunggakan = $gaji->total_tunggakan - $gaji->nominal_cicilan;
  2074.     //     $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_cicilan;
  2075.     //     $gaji->save();
  2076.  
  2077.     //     return redirect()->route('gaji.index');
  2078.     // }
  2079.  
  2080.     public function storebayarjamsostekonly($id)
  2081.     {
  2082.         $gaji = Gaji::find($id);
  2083.         $gaji->status_pembayaran_jamsostek = "siap bayar";
  2084.         // $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  2085.         // $gaji->tanggal_jamsostek = date('Y-m-d H:i:s');
  2086.         // $gaji->tanggal_bayar_tunggakan = date('Y-m-d H:i:s');
  2087.         $gaji->nominal = $gaji->nominal - $gaji->nominal_jamsostek;
  2088.         $gaji->sisa = $gaji->sisa - $gaji->nominal_jamsostek;
  2089.         // $gaji->total_tunggakan = $gaji->total_tunggakan - $gaji->nominal_jamsostek;
  2090.         // $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_jamsostek;
  2091.         $gaji->save();
  2092.  
  2093.         toast('Komponen Jamsostek berhasil ditambah.', 'success');
  2094.  
  2095.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2096.         return redirect()->route('gaji.detail', $periodegaji->id);
  2097.     }
  2098.  
  2099.     public function storebayarnbpjsonly($id)
  2100.     {
  2101.         // $kar_id = Gaji::where('karyawan_id', $karyawan_id)->first();
  2102.         // $gaji_id = PeriodeGaji::find($id);
  2103.         $gaji = Gaji::find($id);
  2104.         // dd($gaji);
  2105.         $gaji->status_pembayaran_bpjs = "siap bayar";
  2106.         // $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  2107.         // $gaji->tanggal_bpjs = date('Y-m-d H:i:s');
  2108.         // $gaji->tanggal_bayar_tunggakan = date('Y-m-d H:i:s');
  2109.         $gaji->nominal = $gaji->nominal - $gaji->nominal_bpjs;
  2110.         $gaji->sisa = $gaji->sisa - $gaji->nominal_bpjs;
  2111.         // $gaji->total_tunggakan = $gaji->total_tunggakan - $gaji->nominal_bpjs;
  2112.         // $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_bpjs;
  2113.         $gaji->save();
  2114.  
  2115.         toast('Komponen BPJS berhasil ditambah.', 'success');
  2116.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2117.         return redirect()->route('gaji.detail', $periodegaji->id);
  2118.     }
  2119.  
  2120.     //bayar cicilan
  2121.     public function storebayarcicilanonly(Request $request, $id)
  2122.     {
  2123.         $gaji = Gaji::find($id);
  2124.         $gaji_data = json_decode($request->row, true);
  2125.         $gaji_data['status_pembayaran_cicilan'] = "siap bayar";
  2126.         // $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  2127.         // $gaji->tanggal_cicilan = date('Y-m-d H:i:s');
  2128.         // $gaji->tanggal_bayar_tunggakan = date('Y-m-d H:i:s');
  2129.         $gaji_data['nominal'] = $gaji_data['nominal'] - $gaji_data['nominal_calculated_cicilan'];
  2130.         $gaji_data['sisa'] = $gaji_data['total'] - $gaji_data['nominal_calculated_cicilan'];
  2131.         // $gaji->total_tunggakan = $gaji->total_tunggakan - $gaji->nominal_cicilan;
  2132.         // $gaji->nominal_tunggakan = $gaji->nominal_tunggakan + $gaji->nominal_cicilan;
  2133.         unset($gaji_data['karyawan']);
  2134.         $gaji->update($gaji_data);
  2135.  
  2136.         // $cicilan_id = Cicilan::where('karyawan_id', $gaji->karyawan_id)->first();
  2137.         // if ($cicilan_id !== null) {
  2138.         //     $cicilan = Cicilan::find($cicilan_id->id);
  2139.         //     $cicilan->total = $cicilan->total - $cicilan->nominal;
  2140.         //     $cicilan->sisa = $cicilan->total;
  2141.         //     $cicilan->tanggal_pembayaran = date('Y-m-d H:i:s');
  2142.         //     $cicilan->save();
  2143.         // }
  2144.         // dd($cicilan->total);
  2145.  
  2146.         toast('Komponen cicilan berhasil ditambah.', 'success');
  2147.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2148.         return redirect()->route('gaji.detail', $periodegaji->id);
  2149.     }
  2150.  
  2151.     //bayar bonus
  2152.     public function storebayarbonusonly($id)
  2153.     {
  2154.         $gaji = Gaji::find($id);
  2155.         $gaji->status_pembayaran_bonus = "siap bayar";
  2156.         // $gaji->tanggal_pembayaran = date('Y-m-d H:i:s');
  2157.         // $gaji->tanggal_bayar_tunggakan = date('Y-m-d H:i:s');
  2158.         $gaji->nominal = $gaji->nominal + $gaji->nominal_bonus;
  2159.         $gaji->sisa = $gaji->sisa + $gaji->nominal_bonus;
  2160.         $gaji->save();
  2161.  
  2162.  
  2163.         // $bonus_id = Bonus::where('karyawan_id', $gaji->karyawan_id)->first();
  2164.         // if ($bonus_id !== null) {
  2165.  
  2166.         //     $bonus = Bonus::find($bonus_id->id);
  2167.         //     $bonus->destroy($bonus_id->id);
  2168.         // }
  2169.         // dd($bonus_id->id);
  2170.  
  2171.         toast('Komponen bonus berhasil ditambah.', 'success');
  2172.  
  2173.         $periodegaji = PeriodeGaji::where('id', '=', $gaji->periodegaji_id)->first();
  2174.         return redirect()->route('gaji.detail', $periodegaji->id);
  2175.     }
  2176.  
  2177.     /**
  2178.      * Display the specified resource.
  2179.      *
  2180.      * @param  int  $id
  2181.      * @return \Illuminate\Http\Response
  2182.      */
  2183.     public function pengajuanpinjaman(Request $request)
  2184.     {
  2185.         $karyawan = Karyawan::with('pengajuanutang')->get();
  2186.         $utang = PengajuanUtang::all();
  2187.  
  2188.         //user
  2189.         $logged_user = Auth::user()->name;
  2190.         $logged_user_id = Auth::user()->id;
  2191.         $split_user_data = explode(" - ", $logged_user);
  2192.         $user = $split_user_data[0];
  2193.         $group_um = "-";
  2194.         if(count($split_user_data) > 1) {
  2195.             $group_um = $split_user_data[1];
  2196.         }
  2197.         // dd($logged_user);
  2198.         return view('Gaji.pengajuanpinjaman', compact('karyawan', 'utang','user','group_um','logged_user_id'));
  2199.     }
  2200.  
  2201.     /**
  2202.      * Display the specified resource.
  2203.      *
  2204.      * @param  int  $id
  2205.      * @return \Illuminate\Http\Response
  2206.      */
  2207.     public function editpengajuanpinjaman($id)
  2208.     {
  2209.         $karyawan = Karyawan::with('pengajuanutang')->find($id);
  2210.         $utang = PengajuanUtang::all();
  2211.  
  2212.         //user
  2213.         $logged_user = Auth::user()->name;
  2214.         $logged_user_id = Auth::user()->id;
  2215.         $split_user_data = explode(" - ", $logged_user);
  2216.         $user = $split_user_data[0];
  2217.         $group_um = "-";
  2218.         if(count($split_user_data) > 1) {
  2219.             $group_um = $split_user_data[1];
  2220.         }
  2221.  
  2222.         return view('Gaji.editpengajuanpinjaman', compact('karyawan', 'utang','user','group_um','logged_user_id'));
  2223.     }
  2224.  
  2225.     public function updatepengajuanpinjaman(Request $request, $id)
  2226.     {
  2227.  
  2228.         // ambil dulu data karyawan
  2229.         $karyawan = Karyawan::with('pengajuanutang')->find($id);
  2230.         // ambil data nominal sebelumnya
  2231.         $nominal = $karyawan->nominal_pinjaman;
  2232.         // ambil data inputan dari form
  2233.         $total_request = $request->total;
  2234.         //compare dulu
  2235.         if ($request->nominal < $nominal) {
  2236.             return redirect()->route('gaji.editpengajuanpinjaman', $karyawan->id)->with(['error' => 'Total Input Kurang dari Nominal']);
  2237.         }
  2238.  
  2239.         if ($request->nominal >= $nominal) {
  2240.             // fungsi save disini
  2241.             $karyawan->is_update = 'pernah';
  2242.             $karyawan->total_pinjaman = $request->nominal;
  2243.             $karyawan->sisa_pinjaman = $request->nominal - $karyawan->nominal_pinjaman;
  2244.  
  2245.             $riwayat_pinjaman = new RiwayatPinjaman();
  2246.             $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  2247.             $riwayat_pinjaman->karyawan_id = $karyawan->id;
  2248.             $riwayat_pinjaman->jenis = 'Ubah Data Pinjaman';
  2249.             $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  2250.             $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  2251.             $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  2252.             $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  2253.             $riwayat_pinjaman->save();
  2254.  
  2255.             $karyawan->save();
  2256.  
  2257.             $pemberitahuan = new Pemberitahuan();
  2258.             $pemberitahuan->nama_pemberitahuan = 'Ubah pinjaman - ' . $karyawan->nama;
  2259.             $pemberitahuan->sumber_pemberitahuan = 'upah';
  2260.             $pemberitahuan->id_karyawan = $karyawan->id;
  2261.             $pemberitahuan->nama_karyawan = $karyawan->nama;
  2262.             $pemberitahuan->id_group = $karyawan->group_id;
  2263.             if($karyawan->group_id != null){
  2264.                 $group = Group::select('nama')->where('id',$karyawan->group_id)->first();
  2265.                 $pemberitahuan->nama_group = $group->nama;
  2266.             }else{
  2267.                 $pemberitahuan->nama_group = null;
  2268.             }
  2269.             $pemberitahuan->nik = $karyawan->nik;
  2270.             $pemberitahuan->id_admin =  $request->id_user;
  2271.             $pemberitahuan->nama_admin =  $request->nama_user ;
  2272.  
  2273.             // dd($pemberitahuan);
  2274.             $pemberitahuan->save();
  2275.  
  2276.             alert()->success('Sukses', 'Total pinjaman berhasil diubah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2277.  
  2278.             return redirect()->route('gaji.index');
  2279.         }
  2280.     }
  2281.  
  2282.     /**
  2283.      * Display the specified resource.
  2284.      *
  2285.      * @param  int  $id
  2286.      * @return \Illuminate\Http\Response
  2287.      */
  2288.     public function deletepengajuanpinjaman($id)
  2289.     {
  2290.         $karyawan = Karyawan::with('pengajuanutang')->find($id);
  2291.         $karyawan->is_delete = 'pernah';
  2292.         $karyawan->total_pinjaman = 0;
  2293.         $karyawan->nominal_pinjaman = 0;
  2294.         $karyawan->sisa_pinjaman = 0;
  2295.         $karyawan->cicilan_pinjaman = 0;
  2296.  
  2297.         $riwayat_pinjaman = new RiwayatPinjaman();
  2298.         $riwayat_pinjaman->tanggal_riwayat = date('Y-m-d');
  2299.         $riwayat_pinjaman->karyawan_id = $karyawan->id;
  2300.         $riwayat_pinjaman->jenis = 'Reset Pinjaman';
  2301.         $riwayat_pinjaman->total_pinjaman = $karyawan->total_pinjaman;
  2302.         $riwayat_pinjaman->nominal_pinjaman = $karyawan->nominal_pinjaman;
  2303.         $riwayat_pinjaman->sisa_pinjaman = $karyawan->sisa_pinjaman;
  2304.         $riwayat_pinjaman->cicilan_pinjaman = $karyawan->cicilan_pinjaman;
  2305.         $riwayat_pinjaman->save();
  2306.  
  2307.         $karyawan->save();
  2308.  
  2309.         //user
  2310.         $logged_user = Auth::user()->name;
  2311.         $logged_user_id = Auth::user()->id;
  2312.         $split_user_data = explode(" - ", $logged_user);
  2313.         $user = $split_user_data[0];
  2314.         $group_um = "-";
  2315.         if(count($split_user_data) > 1) {
  2316.             $group_um = $split_user_data[1];
  2317.         }
  2318.  
  2319.         $pemberitahuan = new Pemberitahuan();
  2320.         $pemberitahuan->nama_pemberitahuan = 'Hapus pinjaman - '. $karyawan->nama;
  2321.         $pemberitahuan->sumber_pemberitahuan = 'upah';
  2322.         $pemberitahuan->id_karyawan = $karyawan->id;
  2323.         $pemberitahuan->nama_karyawan = $karyawan->nama;
  2324.         $pemberitahuan->id_group = $karyawan->group_id;
  2325.         if($karyawan->group_id != null){
  2326.             $group = Group::select('nama')->where('id',$karyawan->group_id)->first();
  2327.             $pemberitahuan->nama_group = $group->nama;
  2328.         }else{
  2329.             $pemberitahuan->nama_group = null;
  2330.         }
  2331.         $pemberitahuan->nik = $karyawan->nik;
  2332.         $pemberitahuan->id_admin =  $logged_user_id;
  2333.         $pemberitahuan->nama_admin =  $logged_user;
  2334.  
  2335.         // dd($pemberitahuan);
  2336.         $pemberitahuan->save();
  2337.  
  2338.         return redirect()->route('gaji.index');
  2339.     }
  2340.  
  2341.     /**
  2342.      * Update the specified resource in storage.
  2343.      *
  2344.      * @param  \Illuminate\Http\Request  $request
  2345.      * @param  int  $id
  2346.      * @return \Illuminate\Http\Response
  2347.      */
  2348.     public function storepengajuanpinjaman(Request $request)
  2349.     {
  2350.         //JIKA KARYAWAN BISA MEMINJAM LAGI
  2351.         $request->validate([
  2352.             'uploads' => 'image|mimes:jpeg,jpg|max:4000',
  2353.         ]);
  2354.         $create_utang = new PengajuanUtang();
  2355.         $create_utang->karyawan_id = $request->karyawan_id;
  2356.         $create_utang->nominal = $request->nominal;
  2357.         $create_utang->approval = 0;
  2358.         $create_utang->approvedNominal = 0;
  2359.         $create_utang->type = 'pinjaman';
  2360.         $create_utang->catatan = $request->catatan;
  2361.         $nama = Karyawan::find($request->karyawan_id);
  2362.         $create_utang->nama_karyawan = $nama->nama;
  2363.         $create_utang->sisa_pinjaman = $nama->sisa_pinjaman;
  2364.         $create_utang->cicilan_pinjaman = $nama->cicilan_pinjaman;
  2365.         $create_utang->group_karyawan = null;
  2366.         $create_utang->nik_karyawan = null;
  2367.         $create_utang->nama_user = $request->nama_user;
  2368.         $create_utang->group_user = $request->group_user;
  2369.         if (isset($nama->group_id)) {
  2370.             $group_id = Group::select('id')->where('id', $nama->group_id)->first();
  2371.             $group = Group::find($group_id->id);
  2372.             $create_utang->group_karyawan = $group->nama;
  2373.             $create_utang->nik_karyawan = $group->nama . $nama->groupno;
  2374.         }
  2375.  
  2376.         $file = $request->file('uploads');
  2377.  
  2378.         if ($request->hasFile('uploads')) {
  2379.             $create_utang['foto'] = $request->uploads->getClientOriginalName();
  2380.             $file->move(public_path() . "/uploads", $create_utang['foto']);
  2381.         }
  2382.         // dd($create_utang);
  2383.         $create_utang->save();
  2384.  
  2385.         $pemberitahuan = new Pemberitahuan();
  2386.         $pemberitahuan->nama_pemberitahuan = 'Pengajuan pinjaman diajukan - '. $nama->nama;
  2387.         $pemberitahuan->sumber_pemberitahuan = 'upah';
  2388.         $pemberitahuan->id_karyawan = $request->karyawan_id;
  2389.         $pemberitahuan->nama_karyawan = $nama->nama;
  2390.         $pemberitahuan->id_group = $nama->group_id;
  2391.         $pemberitahuan->nama_group = $create_utang->group_karyawan;
  2392.         $pemberitahuan->nik = $create_utang->nik_karyawan;
  2393.         $pemberitahuan->id_admin = $request->id_user;
  2394.         $pemberitahuan->nama_admin = $request->nama_user ;
  2395.  
  2396.         // dd($pemberitahuan);
  2397.         $pemberitahuan->save();
  2398.  
  2399.         // $id = PengajuanUtang::select('id')->where('karyawan_id', '=', $request->karyawan_id)->first();
  2400.         // if ($id) {
  2401.         //     $karyawan_existing = PengajuanUtang::find($id->id);
  2402.         //     $karyawan_existing->nominal = $karyawan_existing->nominal + $request->nominal;
  2403.         //     $karyawan_existing->catatan = $request->catatan;
  2404.         //     $karyawan_existing->approval = 0;
  2405.         //     $karyawan_existing->approvedNominal = null;
  2406.         //     $karyawan_existing->update();
  2407.         //     if ($request->hasFile('uploads')) {
  2408.         //         $request->file('uploads')->move('uploads/', $request->file('uploads')->getClientOriginalName());
  2409.         //         $karyawan_existing->foto = $request->file('uploads')->getClientOriginalName();
  2410.         //         $karyawan_existing->save();
  2411.         //     }
  2412.         //     // dd($karyawan_existing);
  2413.         // } else if (!$id) {
  2414.         //     $data = new PengajuanUtang();
  2415.         //     $data->karyawan_id = $request->karyawan_id;
  2416.         //     $data->nominal = $request->nominal;
  2417.         //     $data->approval = 0;
  2418.         //     $data->approvedNominal = 0;
  2419.         //     $data->type = 'pinjaman';
  2420.         //     $data->catatan = $request->catatan;
  2421.  
  2422.         //     $file = $request->file('uploads');
  2423.  
  2424.         //     if ($request->hasFile('uploads')) {
  2425.         //         $data['foto'] = $request->uploads->getClientOriginalName();
  2426.         //         $file->move(public_path() . "/uploads", $data['foto']);
  2427.         //     }
  2428.         //     $data->save();
  2429.         // }
  2430.         // dd($data);
  2431.  
  2432.         return redirect()->route('gaji.index');
  2433.     }
  2434.     /**
  2435.      * Display the specified resource.
  2436.      *
  2437.      * @param  int  $id
  2438.      * @return \Illuminate\Http\Response
  2439.      */
  2440.     public function cicilan(Request $request)
  2441.     {
  2442.         // $karyawan = Karyawan::where('total_pinjaman', '!=', 0)->orWhere('total_pinjaman', '!=', null)->with('group', 'pengajuanutang')->get();
  2443.         // $karyawan = Karyawan::where([['total_pinjaman', '!=', 0], ['total_pinjaman', '!=', null]])->with('group', 'pengajuanutang')->get();
  2444.         $karyawan = Karyawan::where('status_karyawan','!=','nonaktif')->with('group', 'pengajuanutang')->get();
  2445.         $group = Group::all();
  2446.         $utang = PengajuanUtang::with('karyawan', 'group')->where('approval', 1)->get();
  2447.  
  2448.         //user
  2449.         $logged_user = Auth::user()->name;
  2450.         $logged_user_id = Auth::user()->id;
  2451.         $split_user_data = explode(" - ", $logged_user);
  2452.         $user = $split_user_data[0];
  2453.         $group_um = "-";
  2454.         if(count($split_user_data) > 1) {
  2455.             $group_um = $split_user_data[1];
  2456.         }
  2457.         // dd($logged_user_id);
  2458.         // $cicilan = Cicilan::select('nominal', 'karyawan_id')->pluck('nominal', 'karyawan_id');
  2459.         return view('Gaji.cicilan', compact('karyawan', 'group', 'utang','group_um','user','logged_user_id'));
  2460.     }
  2461.  
  2462.     /**
  2463.      * Update the specified resource in storage.
  2464.      *
  2465.      * @param  \Illuminate\Http\Request  $request
  2466.      * @param  int  $id
  2467.      * @return \Illuminate\Http\Response
  2468.      */
  2469.     public function storecicilan(Request $request)
  2470.     {
  2471.  
  2472.         $id = Karyawan::select('id')->where('id', '=', $request->input('karyawan_id'))->first();
  2473.         // dd($id);
  2474.         $data_karyawan = Karyawan::find($id->id);
  2475.  
  2476.         $pemberitahuan = new Pemberitahuan();
  2477.         $pemberitahuan->nama_pemberitahuan = 'set cicilan '. $data_karyawan->nama;
  2478.         $pemberitahuan->sumber_pemberitahuan = 'upah';
  2479.         $pemberitahuan->id_karyawan = $request->karyawan_id;
  2480.         $pemberitahuan->nama_karyawan = $data_karyawan->nama;
  2481.         $pemberitahuan->id_group = $data_karyawan->group_id;
  2482.         if($data_karyawan->group_id != null){
  2483.             $group = Group::select('nama')->where('id',$data_karyawan->group_id)->first();
  2484.             $pemberitahuan->nama_group = $group->nama;
  2485.         }else{
  2486.             $pemberitahuan->nama_group = null;
  2487.         }
  2488.         $pemberitahuan->nik = $data_karyawan->nik;
  2489.         $pemberitahuan->id_admin =  $request->id_user;
  2490.         $pemberitahuan->nama_admin =  $request->nama_user ;
  2491.  
  2492.         // dd($pemberitahuan);
  2493.         $pemberitahuan->save();
  2494.  
  2495.         // $cicilan_id = Cicilan::select('id')->where('karyawan_id', $id->id)->first();
  2496.         // // dd($cicilan_id);
  2497.         // if ($cicilan_id) {
  2498.  
  2499.         //     $data = Cicilan::find($cicilan_id->id);
  2500.         //     $data->total = $request->total_pinjaman;
  2501.         //     $data->update($request->all());
  2502.  
  2503.         //     $data_karyawan = Karyawan::find($id->id);
  2504.         //     $data_karyawan->cicilan_pinjaman = $request->nominal;
  2505.         //     $data_karyawan->save();
  2506.         // } else if (!$cicilan_id) {
  2507.         //     $total = PengajuanUtang::select('approvedNominal')->where('karyawan_id', '=', $id->id)->first();
  2508.         //     // dd($total);
  2509.         //     $data = new Cicilan();
  2510.         //     $data->karyawan_id = $request->karyawan_id;
  2511.         //     $data->total = $total->approvedNominal;
  2512.         //     // dd($data->total);
  2513.         //     $data->sisa = 0;
  2514.         //     $data->nominal = $request->nominal;
  2515.         //     // dd($data);
  2516.         //     $data->save();
  2517.         // }
  2518.  
  2519.  
  2520.         // $file = $request->file('uploads');
  2521.         // if ($request->hasFile('uploads')) {
  2522.         //     $data['foto'] = $request->uploads->getClientOriginalName();
  2523.         //     $file->move(public_path() . "/uploads", $data['foto']);
  2524.         // }
  2525.  
  2526.  
  2527.         // $cicilan_id = $data->id;
  2528.         // $cicilan = Gaji::select('id')->where('karyawan_id', '=', $request->Input('karyawan_id'))->first();
  2529.         // $cicilan->cicilan_id = $cicilan_id;
  2530.         // $cicilan->update();
  2531.  
  2532.         // dd($request->all());
  2533.  
  2534.         if($request->nominal >= $data_karyawan->cicilan_pinjaman) {
  2535.             $data_karyawan->cicilan_pinjaman = $request->nominal;
  2536.             $data_karyawan->save();
  2537.  
  2538.             alert()->success('Sukses', 'Data Cicilan berhasil ditambah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2539.             return redirect()->route('gaji.index');
  2540.         }
  2541.  
  2542.         if($request->nominal < $data_karyawan->cicilan_pinjaman) {
  2543.             alert()->error('Gagal', 'Cicilan Per Minggu tidak boleh kurang dari Cicilan Saat Ini.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2544.             return redirect()->route('gaji.cicilan');
  2545.         }
  2546.  
  2547.  
  2548.     }
  2549.  
  2550.     public function potongancicilan()
  2551.     {
  2552.         $karyawan = Karyawan::with('group', 'pengajuanutang')->get();
  2553.         $group = Group::all();
  2554.         $utang = PengajuanUtang::with('karyawan', 'group')->where('approval', 1)->get();
  2555.  
  2556.         //user
  2557.         $logged_user = Auth::user()->name;
  2558.         $logged_user_id = Auth::user()->id;
  2559.         $split_user_data = explode(" - ", $logged_user);
  2560.         $user = $split_user_data[0];
  2561.         $group_um = "-";
  2562.         if(count($split_user_data) > 1) {
  2563.             $group_um = $split_user_data[1];
  2564.         }
  2565.         // dd($logged_user_id);
  2566.         // $cicilan = Cicilan::with('karyawan', 'group')->get();
  2567.         return view('Gaji.potongancicilan', compact('karyawan', 'group', 'utang','user','group_um','logged_user_id'));
  2568.     }
  2569.  
  2570.     public function storepotongancicilan(Request $request)
  2571.     {
  2572.         $request->validate([
  2573.             'uploads' => 'image|mimes:jpeg,jpg|max:4000',
  2574.         ]);
  2575.  
  2576.         $id = Karyawan::select('id')->where('id', '=', $request->input('karyawan_id'))->first();
  2577.  
  2578.         // $cicilan_id = Cicilan::select('id')->where('karyawan_id', $id->id)->first();
  2579.         // dd($cicilan_id);
  2580.         $data = new IzinPenguranganCicilan();
  2581.         $data->karyawan_id = $request->karyawan_id;
  2582.         $data->cicilan_yang_diajukan = $request->cicilan_yang_diajukan;
  2583.         $data->approval = 0;
  2584.         // $data->cicilan_id = $cicilan_id->id;
  2585.         // dd($data->cicilan_id);
  2586.         $data->type = 'pengurangan cicilan';
  2587.         $data->tanggal_pengajuan = $request->tanggal_pengajuan;
  2588.         $data->alasan = $request->alasan;
  2589.         $nama = Karyawan::find($request->karyawan_id);
  2590.         $data->nama_karyawan = $nama->nama;
  2591.         $data->sisa_pinjaman = $nama->sisa_pinjaman;
  2592.         $data->cicilan_per_minggu = $nama->cicilan_pinjaman;
  2593.         $data->current_cicilan = $nama->cicilan_pinjaman;
  2594.         $data->group_karyawan = null;
  2595.         $data->nik_karyawan = null;
  2596.         if (isset($nama->group_id)) {
  2597.             $group_id = Group::select('id')->where('id', $nama->group_id)->first();
  2598.             $group = Group::find($group_id->id);
  2599.             $data->group_karyawan = $group->nama;
  2600.             $data->nik_karyawan = $group->nama . $nama->groupno;
  2601.         }
  2602.         // dd($data);
  2603.         $file = $request->file('uploads');
  2604.  
  2605.         if ($request->hasFile('uploads')) {
  2606.             $data['lampiran'] = $request->uploads->getClientOriginalName();
  2607.             $file->move(public_path() . "/uploads", $data['lampiran']);
  2608.         }
  2609.         $data->save();
  2610.  
  2611.         $pemberitahuan = new Pemberitahuan();
  2612.         $pemberitahuan->nama_pemberitahuan = 'pengurangan cicilan ' . $nama->nama;
  2613.         $pemberitahuan->sumber_pemberitahuan = 'upah';
  2614.         $pemberitahuan->id_karyawan = $request->karyawan_id;
  2615.         $pemberitahuan->nama_karyawan = $nama->nama;
  2616.         $pemberitahuan->id_group = $nama->group_id;
  2617.         if($nama->group_id != null){
  2618.             $group = Group::select('nama')->where('id',$nama->group_id)->first();
  2619.             $pemberitahuan->nama_group = $group->nama;
  2620.         }else{
  2621.             $pemberitahuan->nama_group = null;
  2622.         }
  2623.         $pemberitahuan->nik = $nama->nik;
  2624.         $pemberitahuan->id_admin =  $request->id_user ;
  2625.         $pemberitahuan->nama_admin =  $request->nama_user;
  2626.  
  2627.         // dd($pemberitahuan);
  2628.         $pemberitahuan->save();
  2629.  
  2630.  
  2631.         return redirect()->route('gaji.index');
  2632.     }
  2633.  
  2634.     /**
  2635.      * Show the form for creating a new resource.
  2636.      *
  2637.      * @return \Illuminate\Http\Response
  2638.      */
  2639.     public function tambahbonus()
  2640.     {
  2641.         $karyawan = Karyawan::where('status_karyawan', '!=', 'nonaktif')->get();
  2642.         $karyawans = Karyawan::with('bonuses')->get();
  2643.         $bonus = Bonus::with('karyawan')->get();
  2644.         return view('Gaji.tambahbonus', compact('karyawan', 'karyawans', 'bonus'));
  2645.     }
  2646.  
  2647.     /**
  2648.      * Store a newly created resource in storage.
  2649.      *
  2650.      * @param  \Illuminate\Http\Request  $request
  2651.      * @return \Illuminate\Http\Response
  2652.      */
  2653.     public function storebonus(Request $request)
  2654.     {
  2655.         //dd($request->all());
  2656.         $group_id = karyawan::select('group_id')->where('id', '=', $request->input('karyawan_id'))->first();
  2657.         $nama = karyawan::select('nama')->where('id', '=', $request->input('karyawan_id'))->first();
  2658.         $karyawan = Karyawan::with('group')->find((int)$request->karyawan_id);
  2659.         $tanggal_mulai_bonus = $request->tanggal_mulai_bonus;
  2660.         $tanggal_selesai_bonus = $request->tanggal_selesai_bonus;
  2661.         $presensi = Presensi::where('karyawan_id', '=', $karyawan->id)->where('tanggal_dan_waktu_tap', '>=', $tanggal_mulai_bonus)->where('tanggal_dan_waktu_tap', '<=', $tanggal_selesai_bonus)->get();
  2662.         $setting_presensi = SettingPresensi::find(1);
  2663.         $jadwal = Jadwal::all();
  2664.  
  2665.         $total_poin = 0;
  2666.         $poin_karyawan = 0;
  2667.  
  2668.         //$jangka_waktu = date_diff(date_create($tanggal_mulai_bonus), date_create($tanggal_mulai_bonus));
  2669.         //dd($jangka_waktu);
  2670.  
  2671.         for ($i = 0; $i < count($presensi); $i++) {
  2672.             $poin_karyawan = $poin_karyawan + $presensi[$i]->poin;
  2673.         }
  2674.  
  2675.         //dd($poin_karyawan);
  2676.  
  2677.         // $data = new Bonus();
  2678.         // $data->nama = $nama->nama;
  2679.         // $data->karyawan_id = $request->karyawan_id;
  2680.         // $data->group_id = $group_id->group_id;
  2681.         // $data->nominal_dasar = $request->nominal_dasar;
  2682.         // $data->save();
  2683.  
  2684.         // $bonus_id = $data->id;
  2685.         // $bonus = Gaji::select('id')->where('karyawan_id', '=', $request->Input('karyawan_id'))->first();
  2686.         // $bonus->bonus_id = $bonus_id;
  2687.         // $bonus->update();
  2688.  
  2689.         // alert()->success('Sukses', 'Data Bonus berhasil ditambah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2690.  
  2691.         return view('Gaji.bonuskehadiran', compact('nama', 'group_id', 'karyawan', 'tanggal_mulai_bonus', 'tanggal_selesai_bonus', 'poin_karyawan'));
  2692.     }
  2693.  
  2694.  
  2695.     /**
  2696.      * Show the form for creating a new resource.
  2697.      *
  2698.      * @return \Illuminate\Http\Response
  2699.      */
  2700.     public function bonusovertime(Request $request)
  2701.     {
  2702.         $karyawan = Karyawan::where('status_karyawan', '!=', 'nonaktif')->get();
  2703.         $karyawans = Karyawan::with('bonuses')->get();
  2704.         $bonus = Bonus::with('karyawan')->get();
  2705.         return view('Gaji.bonusovertime', compact('karyawan', 'karyawans', 'bonus'));
  2706.     }
  2707.  
  2708.     /**
  2709.      * Store a newly created resource in storage.
  2710.      *
  2711.      * @param  \Illuminate\Http\Request  $request
  2712.      * @return \Illuminate\Http\Response
  2713.      */
  2714.     public function storebonusovertime(Request $request)
  2715.     {
  2716.         $group_id = karyawan::select('group_id')->where('id', '=', $request->input('karyawan_id'))->first();
  2717.         $nama = karyawan::select('nama')->where('id', '=', $request->input('karyawan_id'))->first();
  2718.  
  2719.  
  2720.         // $data = new Bonus();
  2721.         // $data->nama = $nama->nama;
  2722.         // $data->karyawan_id = $request->karyawan_id;
  2723.         // $data->group_id = $group_id->group_id;
  2724.         // $data->tanggal_mulai_bonus = $request->tanggal_mulai_bonus;
  2725.         // $data->tanggal_selesai_bonus = $request->tanggal_selesai_bonus;
  2726.         // // $data->nominal_dasar = $request->nominal_dasar;
  2727.         // $data->save();
  2728.  
  2729.         // alert()->success('Sukses', 'Data Bonus berhasil ditambah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2730.  
  2731.  
  2732.         return redirect()->route('gaji.createovertime');
  2733.     }
  2734.  
  2735.  
  2736.  
  2737.     /**
  2738.      * Show the form for creating a new resource.
  2739.      *
  2740.      * @return \Illuminate\Http\Response
  2741.      */
  2742.     public function createovertime(Request $request)
  2743.     {
  2744.         // dd($request->all());
  2745.         // $karyawan = Karyawan::where('status_karyawan', '!=', 'nonaktif')->get();
  2746.         $karyawan = Karyawan::with('bonuses', 'group')->where('id', $request->input('karyawan_id'))->get();
  2747.         $karyawans = Karyawan::with('bonuses')->where('id', $request->input('karyawan_id'))->get();
  2748.         $bonus = Bonus::with('karyawan')->where('karyawan_id', $request->input('karyawan_id'))->get();
  2749.         $tanggal_mulai = $request->input('tanggal_mulai_bonus');
  2750.         $tanggal_selesai = $request->input('tanggal_selesai_bonus');
  2751.  
  2752.         $group_id = karyawan::select('group_id')->where('id', '=', $request->input('karyawan_id'))->first();
  2753.  
  2754.         $presensi = Presensi::with('jadwal')->where('karyawan_id', $request->input('karyawan_id'))->get();
  2755.         $jadwalrutin = JadwalHariKerja::where('karyawan_id', $request->input('karyawan_id'))->get();
  2756.  
  2757.         return view('Gaji.createovertime', compact('karyawan', 'karyawans', 'bonus', 'group_id', 'tanggal_mulai', 'tanggal_selesai', 'presensi', 'jadwalrutin'));
  2758.     }
  2759.  
  2760.     public function createbonuskehadiran(Request $request)
  2761.     {
  2762.         // dd($request->all());
  2763.         // $karyawan = Karyawan::where('status_karyawan', '!=', 'nonaktif')->get();
  2764.         $karyawan = Karyawan::with('bonuses', 'group')->where('id', $request->input('karyawan_id'))->get();
  2765.         $karyawans = Karyawan::with('bonuses')->where('id', $request->input('karyawan_id'))->get();
  2766.         $bonus = Bonus::with('karyawan')->where('karyawan_id', $request->input('karyawan_id'))->get();
  2767.         $tanggal_mulai = $request->input('tanggal_mulai_bonus');
  2768.         $tanggal_selesai = $request->input('tanggal_selesai_bonus');
  2769.  
  2770.         $group_id = karyawan::select('group_id')->where('id', '=', $request->input('karyawan_id'))->first();
  2771.  
  2772.         $presensi = Presensi::with('jadwal')->where('karyawan_id', $request->input('karyawan_id'))->get();
  2773.         $jadwalrutin = JadwalHariKerja::where('karyawan_id', $request->input('karyawan_id'))->get();
  2774.  
  2775.         return view('Gaji.bonuskehadiran', compact('karyawan', 'karyawans', 'bonus', 'group_id', 'tanggal_mulai', 'tanggal_selesai', 'presensi', 'jadwalrutin'));
  2776.     }
  2777.  
  2778.     /**
  2779.      * Show the form for creating a new resource.
  2780.      *
  2781.      * @return \Illuminate\Http\Response
  2782.      */
  2783.     public function storeovertime(Request $request)
  2784.     {
  2785.         // dd($request->all());
  2786.         $karyawan = Karyawan::find((int)$request->karyawanid);
  2787.         $karyawan->bonus_overtime = $request->nominal_dasar;
  2788.         $karyawan->periode_mulai_overtime = $request->tanggal_mulai_bonus;
  2789.         $karyawan->periode_selesai_overtime = $request->tanggal_selesai_bonus;
  2790.         $karyawan->save();
  2791.  
  2792.         // $data = new Bonus();
  2793.         // $data->nama = $request->nama;
  2794.         // $data->karyawan_id = $request->karyawanid;
  2795.         // $data->group_id = $request->group_id;
  2796.         // $data->nominal_dasar = $request->nominal_dasar;
  2797.         // $data->tanggal_mulai_bonus = $request->tanggal_mulai_bonus;
  2798.         // $data->tanggal_selesai_bonus = $request->tanggal_selesai_bonus;
  2799.         // $data->jenis_bonus = $request->jenis_bonus;
  2800.         // $data->save();
  2801.         alert()->success('Sukses', 'Data Bonus Overtime berhasil ditambah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2802.  
  2803.         return redirect()->route('gaji.index');
  2804.     }
  2805.  
  2806.     public function storebonuskehadiran(Request $request)
  2807.     {
  2808.         // dd($request->all());
  2809.         $karyawan = Karyawan::find((int)$request->karyawanid);
  2810.         $karyawan->bonus_kehadiran = $request->nominal_dasar;
  2811.         $karyawan->periode_mulai_kehadiran = $request->tanggal_mulai_bonus;
  2812.         $karyawan->periode_selesai_kehadiran = $request->tanggal_selesai_bonus;
  2813.         $karyawan->save();
  2814.  
  2815.         alert()->success('Sukses', 'Data Bonus Kehadiran berhasil ditambah.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  2816.  
  2817.         return redirect()->route('gaji.index');
  2818.     }
  2819.  
  2820.  
  2821.     /**
  2822.      * Show the form for creating a new resource.
  2823.      *
  2824.      * @return \Illuminate\Http\Response
  2825.      */
  2826.     public function editbonus($id)
  2827.     {
  2828.         $karyawan = Karyawan::where('status_karyawan', '=', 'aktif')->get();
  2829.         $bonus = Bonus::with('karyawan', 'group')->find($id);
  2830.         return view('Gaji.editbonus', compact('karyawan', 'bonus'));
  2831.     }
  2832.     /**
  2833.      * Show the form for creating a new resource.
  2834.      *
  2835.      * @return \Illuminate\Http\Response
  2836.      */
  2837.     public function updatebonus(Request $request, $id)
  2838.     {
  2839.         // $data = $request->all();
  2840.         // Bonus::find($id)->update($data);
  2841.  
  2842.         $data = Bonus::find($id);
  2843.         $data->nominal_dasar = $request->nominal_dasar;
  2844.         $data->update();
  2845.  
  2846.         return redirect()->route('gaji.index');
  2847.     }
  2848.  
  2849.     /**
  2850.      * Show the form for creating a new resource.
  2851.      *
  2852.      * @return \Illuminate\Http\Response
  2853.      */
  2854.     public function tambahjamsostek()
  2855.     {
  2856.         return view('Gaji.tambahjamsostek');
  2857.     }
  2858.  
  2859.     /**
  2860.      * Store a newly created resource in storage.
  2861.      *
  2862.      * @param  \Illuminate\Http\Request  $request
  2863.      * @return \Illuminate\Http\Response
  2864.      */
  2865.     public function storejamsostek(Request $request)
  2866.     {
  2867.         //
  2868.     }
  2869.  
  2870.     /**
  2871.      * Show the form for creating a new resource.
  2872.      *
  2873.      * @return \Illuminate\Http\Response
  2874.      */
  2875.     public function create()
  2876.     {
  2877.         return view('Gaji.create');
  2878.     }
  2879.  
  2880.     /**
  2881.      * Store a newly created resource in storage.
  2882.      *
  2883.      * @param  \Illuminate\Http\Request  $request
  2884.      * @return \Illuminate\Http\Response
  2885.      */
  2886.     public function store(Request $request)
  2887.     {
  2888.         //
  2889.     }
  2890.  
  2891.     /**
  2892.      * Display the specified resource.
  2893.      *
  2894.      * @param  int  $id
  2895.      * @return \Illuminate\Http\Response
  2896.      */
  2897.     // Detail setelah masuk via periode gaji
  2898.     public function show($id)
  2899.     {
  2900.         // $jamsostek = Jamsostek::with('karyawan')->where('karyawan_id', '=', 'karyawan.id')->first()->nominal;
  2901.         $jamsostek = Jamsostek::all();
  2902.         $settingupah = SettingUpah::all();
  2903.         // $cicilan = Cicilan::all();
  2904.         $bonus = Bonus::all();
  2905.         $karyawan = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus')->get();
  2906.         $group = Group::with('karyawans', 'presensis')->get();
  2907.         $periodegaji = PeriodeGaji::find($id);
  2908.  
  2909.         //dd($group);
  2910.  
  2911.         return view('Gaji.detail', compact('karyawan', 'jamsostek', 'settingupah', 'bonus', 'group', 'periodegaji'));
  2912.     }
  2913.  
  2914.     public function exportpdfdetilupah(Request $request, $id)
  2915.     {
  2916.         $group = Group::find($request->group_id);
  2917.         $periodegaji = PeriodeGaji::find($id);
  2918.  
  2919.         if(isset($group)) {
  2920.             $gaji = Gaji::with('karyawan.group')->where('periodegaji_id', '=', $id)->where('group_id', '=', $group->id)->orderBy('group_karyawan', 'asc')->get();
  2921.         } else {
  2922.             $gaji = Gaji::with('karyawan.group')->where('periodegaji_id', '=', $id)->orderBy('group_karyawan', 'asc')->get();
  2923.         }
  2924.  
  2925.         $pdf = PDF::loadview('Gaji.exportdetailupahkaryawan', compact('gaji', 'periodegaji'));
  2926.         $dom_pdf = $pdf->getDomPDF();
  2927.         $dom_pdf->set_paper('letter', 'landscape');
  2928.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  2929.         $dom_pdf->set_option('default_font', 'Courier');
  2930.         return $pdf->stream();
  2931.     }
  2932.  
  2933.     public function showGroup($id, $group_id)
  2934.     {
  2935.         // $jamsostek = Jamsostek::with('karyawan')->where('karyawan_id', '=', 'karyawan.id')->first()->nominal;
  2936.         $jamsostek = Jamsostek::all();
  2937.         $settingupah = SettingUpah::all();
  2938.         // $cicilan = Cicilan::all();
  2939.         $bonus = Bonus::all();
  2940.         $karyawan = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus')->get();
  2941.         $group = Group::with('karyawans', 'presensis')->get();
  2942.         $periodegaji = PeriodeGaji::find($id);
  2943.  
  2944.         //dd($group);
  2945.  
  2946.         return view('Gaji.detail', compact('karyawan', 'jamsostek', 'settingupah', 'bonus', 'group', 'periodegaji'));
  2947.     }
  2948.  
  2949.     public function detailTunggakan($id)
  2950.     {
  2951.         $karyawan = Karyawan::with('group', 'jamsostek', 'bpjs', 'settingupah', 'bonus', 'gajis')->find($id);
  2952.         $tunggakan = Gaji::where('karyawan_id', '=', $karyawan->id)->get();
  2953.         $total_semua_tunggakan = 0;
  2954.         for ($i = 0; $i < count($tunggakan); $i++) {
  2955.             //if($status_pembayaran_bpjs == 'tunggak' || $status_pembayaran_cicilan == 'tunggak' || $status_pembayaran_jamsostek == 'tunggak') {}
  2956.             $total_semua_tunggakan = $total_semua_tunggakan + $tunggakan[$i]->nominal_tunggakan;
  2957.         }
  2958.  
  2959.         $logged_user = Auth::user()->name;
  2960.         $split_user_data = explode(" - ", $logged_user);
  2961.         $user = $split_user_data[0];
  2962.         $group_um = "-";
  2963.         if(count($split_user_data) > 1) {
  2964.             $group_um = $split_user_data[1];
  2965.         }
  2966.  
  2967.         return view('Gaji.tunggakan', compact('karyawan', 'tunggakan', 'total_semua_tunggakan', 'user', 'group_um'));
  2968.     }
  2969.  
  2970.     public function riwayatupah($id)
  2971.     {
  2972.         return view('Gaji.riwayatupah');
  2973.     }
  2974.  
  2975.     public function riwayatpinjaman($id)
  2976.     {
  2977.         $karyawan = Karyawan::find($id);
  2978.         $riwayat = RiwayatPinjaman::where('karyawan_id', '=', $karyawan->id)->get();
  2979.         // $pinjaman = PengajuanUtang::with('karyawan', 'group')->find($id);
  2980.         // // $karyawan = Karyawan::with('group')->where('id', $pinjaman->karyawan_id)->get();
  2981.         // // $karyawan = Karyawan::with('group')->where('id', $pinjaman->karyawan_id)->get();
  2982.         // $cicilan = cicilan::where('karyawan_id', $pinjaman->karyawan_id)->first();
  2983.         // if ($cicilan) {
  2984.  
  2985.         //     $gaji = Gaji::where('cicilan_id', $cicilan->id)->first();
  2986.         // } else {
  2987.         //     $gaji = null;
  2988.         // }
  2989.  
  2990.         // if (!$gaji) {
  2991.         //     $periode = 0;
  2992.         // } else {
  2993.  
  2994.         //     $periode = PeriodeGaji::where('id', $gaji->periodegaji_id)->get();
  2995.         // }
  2996.         // dd($periode);
  2997.  
  2998.         return view('Gaji.riwayatpinjaman', compact('riwayat', 'karyawan'));
  2999.     }
  3000.  
  3001.     /**
  3002.      * Display the specified resource.
  3003.      *
  3004.      * @param  int  $id
  3005.      * @return \Illuminate\Http\Response
  3006.      */
  3007.     public function detailbonus($id)
  3008.     {
  3009.         $bonus = Karyawan::with('group')->find($id);
  3010.         return view('Gaji.detailbonus', compact('bonus'));
  3011.     }
  3012.  
  3013.     /**
  3014.      * Show the form for editing the specified resource.
  3015.      *
  3016.      * @param  int  $id
  3017.      * @return \Illuminate\Http\Response
  3018.      */
  3019.     public function edit($id)
  3020.     {
  3021.         return view('Gaji.edit');
  3022.     }
  3023.  
  3024.     /**
  3025.      * Update the specified resource in storage.
  3026.      *
  3027.      * @param  \Illuminate\Http\Request  $request
  3028.      * @param  int  $id
  3029.      * @return \Illuminate\Http\Response
  3030.      */
  3031.     public function update(Request $request, $id)
  3032.     {
  3033.         //
  3034.     }
  3035.  
  3036.     public function editjamsostek()
  3037.     {
  3038.         return view('Gaji.editjamsostek');
  3039.     }
  3040.  
  3041.     public function updatejamsostek(Request $request, $id)
  3042.     {
  3043.         return view('Gaji.index');
  3044.     }
  3045.  
  3046.  
  3047.     /**
  3048.      * Remove the specified resource from storage.
  3049.      *
  3050.      * @param  int  $id
  3051.      * @return \Illuminate\Http\Response
  3052.      */
  3053.     public function destroy($id)
  3054.     {
  3055.         //
  3056.     }
  3057.     /**
  3058.      * Remove the specified resource from storage.
  3059.      *
  3060.      * @param  int  $id
  3061.      * @return \Illuminate\Http\Response
  3062.      */
  3063.     public function deletebonus($id)
  3064.     {
  3065.         $karyawan = Karyawan::find($id);
  3066.         $karyawan->bonus_kehadiran = 0;
  3067.         $karyawan->bonus_overtime = 0;
  3068.         $karyawan->periode_mulai_kehadiran;
  3069.         $karyawan->periode_selesai_kehadiran;
  3070.         $karyawan->periode_mulai_overtime;
  3071.         $karyawan->periode_selesai_overtime;
  3072.         $karyawan->save();
  3073.  
  3074.         alert()->success('Sukses', 'Data Bonus berhasil dihapus.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  3075.  
  3076.         return redirect()->route('gaji.index');
  3077.     }
  3078.  
  3079.     public function deletetanggal($id)
  3080.     {
  3081.         $gaji = Gaji::where('periodegaji_id', $id)->get();
  3082.         if(count($gaji) > 0) {
  3083.             foreach($gaji as $g) {
  3084.                 $karyawan = Karyawan::find($g->karyawan_id);
  3085.                 if(isset($karyawan)) {
  3086.                     if($g->status_pembayaran_jamsostek == 'tunggak' || $g->status_pembayaran_bpjs == 'tunggak' || $g->status_pembayaran_tunggakan == 'tunggak') {
  3087.                         $karyawan->total_tunggakan_periode_berikutnya = $karyawan->total_tunggakan_periode_berikutnya - $g->total_tunggakan;
  3088.                         $karyawan->total_tunggakan = $karyawan->total_tunggakan - $g->total_tunggakan;
  3089.                         if($karyawan->total_tunggakan_periode_berikutnya < 0) {
  3090.                             $karyawan->total_tunggakan_periode_berikutnya = 0;
  3091.                         }
  3092.                         if($karyawan->total_tunggakan < 0) {
  3093.                             $karyawan->total_tunggakan = 0;
  3094.                         }
  3095.                         $karyawan->save();
  3096.                     }
  3097.                 }
  3098.                 Gaji::destroy($g->id);
  3099.             }
  3100.         }
  3101.         $periodegaji = PeriodeGaji::find($id);
  3102.         $periodegaji->destroy($id);
  3103.  
  3104.         alert()->success('Sukses', 'Data Tanggal Upah berhasil dihapus.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  3105.  
  3106.         return redirect()->route('gaji.index');
  3107.     }
  3108.  
  3109.     public function slipgajikaryawan($id)
  3110.     {
  3111.         $nominal_dasar = 0;
  3112.         $gaji = Gaji::with('karyawan.group', 'karyawan.jamsostek', 'karyawan.settingUpah', 'karyawan.bpjs', 'karyawan.bonus')->find($id);
  3113.         // $gaji->setAttribute('bayar_jamsostek', 0);
  3114.         // $gaji->setAttribute('bayar_bpjs', 0);
  3115.         // $gaji->setAttribute('bayar_cicilan', 0);
  3116.         // $gaji->setAttribute('bayar_tunggakan', 0);
  3117.         // if (($gaji->status_pembayaran_jamsostek == "selected") || ($gaji->status_pembayaran_jamsostek == "bayar")) {
  3118.         //     $gaji->bayar_jamsostek = $gaji->nominal_jamsostek;
  3119.         // }
  3120.         // if (($gaji->status_pembayaran_bpjs == "selected") || ($gaji->status_pembayaran_bpjs == "bayar")) {
  3121.         //     $gaji->bayar_bpjs = $gaji->nominal_bpjs;
  3122.         // }
  3123.         // if (($gaji->status_pembayaran_cicilan == "selected") || ($gaji->status_pembayaran_cicilan == "bayar")) {
  3124.         //     $gaji->bayar_cicilan = $gaji->nominal_cicilan;
  3125.         // }
  3126.         // if (($gaji->status_pembayaran_tunggakan == "selected") || ($gaji->status_pembayaran_bayar == "bayar")) {
  3127.         //     $gaji->bayar_tunggakan = $gaji->total_tunggakan;
  3128.         // }
  3129.         // $gaji->total = ($gaji->nominal_dasar + $gaji->nominal_bonus) - ($gaji->bayar_jamsostek + $gaji->bayar_bpjs + $gaji->bayar_cicilan + $gaji->bayar_tunggakan);
  3130.         // if ($gaji->karyawan['settingUpah'] !== null) {
  3131.         //     $nominal_dasar = $gaji->karyawan['settingUpah']->nominal_dasar;
  3132.         // } else {
  3133.         //     $nominal_dasar = 0;
  3134.         // }
  3135.  
  3136.         $pdf = PDF::loadview('Gaji.slipkaryawan', compact('gaji', 'nominal_dasar'));
  3137.         $dom_pdf = $pdf->getDomPDF();
  3138.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  3139.         $dom_pdf->set_option('default_font', 'Courier');
  3140.         return $pdf->stream();
  3141.     }
  3142.  
  3143.     public function slipgajigroup($id, $group_id)
  3144.     {
  3145.         $periodegaji = PeriodeGaji::find($id);
  3146.         $periodemulai = $periodegaji->tanggal_mulai_periode;
  3147.         $periodeselesai = $periodegaji->tanggal_selesai_periode;
  3148.         $group = Group::with('karyawans.gajis')->find($group_id);
  3149.         $gaji = Gaji::where('group_id', '=', $group->id)->where('periodegaji_id', '=', $periodegaji->id)->get();
  3150.         $poin = 0;
  3151.         $upah = 0;
  3152.  
  3153.         /**
  3154.          * Backup 1
  3155.          */
  3156.         // for ($k = 0; $k < count($group->karyawans); $k++) {
  3157.         //     $nominal_dasar = 0;
  3158.         //     $gaji_karyawan = null;
  3159.         //     if (isset($group->karyawans[$k]->gajis)) {
  3160.         //         for ($gj = 0; $gj < count($group->karyawans[$k]->gajis); $gj++) {
  3161.         //             if ($group->karyawans[$k]->gajis[$gj]->periodegaji_id == $id) {
  3162.         //                 $gaji_karyawan = $group->karyawans[$k]->gajis[$gj];
  3163.         //             }
  3164.         //         }
  3165.         //     }
  3166.         //     $group->karyawans[$k]->setAttribute('gaji_karyawan', $gaji_karyawan);
  3167.         // }
  3168.  
  3169.         $pdf = PDF::loadview('Gaji.slipgroup', compact('gaji'));
  3170.         $dom_pdf = $pdf->getDomPDF();
  3171.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  3172.         $dom_pdf->set_option('default_font', 'Courier');
  3173.         return $pdf->stream();
  3174.     }
  3175.  
  3176.     public function slipgajisemuakaryawan($id)
  3177.     {
  3178.         $nominal_dasar = 0;
  3179.         $periodegaji = PeriodeGaji::find($id);
  3180.         $gaji = Gaji::with('karyawan.group', 'karyawan.jamsostek', 'karyawan.settingUpah', 'karyawan.bpjs', 'karyawan.bonus')->where('periodegaji_id', '=', $id)->get();
  3181.         // for ($i = 0; $i < count($gaji); $i++) {
  3182.         //     $gaji[$i]->setAttribute('bayar_jamsostek', 0);
  3183.         //     $gaji[$i]->setAttribute('bayar_bpjs', 0);
  3184.         //     $gaji[$i]->setAttribute('bayar_cicilan', 0);
  3185.         //     $gaji[$i]->setAttribute('bayar_tunggakan', 0);
  3186.         //     if (($gaji[$i]->status_pembayaran_jamsostek == "selected") || ($gaji[$i]->status_pembayaran_jamsostek == "bayar")) {
  3187.         //         $gaji[$i]->bayar_jamsostek = $gaji[$i]->nominal_jamsostek;
  3188.         //     }
  3189.         //     if (($gaji[$i]->status_pembayaran_bpjs == "selected") || ($gaji[$i]->status_pembayaran_bpjs == "bayar")) {
  3190.         //         $gaji[$i]->bayar_bpjs = $gaji[$i]->nominal_bpjs;
  3191.         //     }
  3192.         //     if (($gaji[$i]->status_pembayaran_cicilan == "selected") || ($gaji[$i]->status_pembayaran_cicilan == "bayar")) {
  3193.         //         $gaji[$i]->bayar_cicilan = $gaji[$i]->nominal_cicilan;
  3194.         //     }
  3195.         //     if (($gaji[$i]->status_pembayaran_tunggakan == "selected") || ($gaji[$i]->status_pembayaran_bayar == "bayar")) {
  3196.         //         $gaji[$i]->bayar_tunggakan = $gaji[$i]->total_tunggakan;
  3197.         //     }
  3198.         //     $gaji[$i]->total = ($gaji[$i]->nominal_dasar + $gaji[$i]->nominal_bonus) - ($gaji[$i]->bayar_jamsostek + $gaji[$i]->bayar_bpjs + $gaji[$i]->bayar_cicilan + $gaji[$i]->bayar_tunggakan);
  3199.         //     if ($gaji[$i]->karyawan['settingUpah'] !== null) {
  3200.         //         $nominal_dasar = $gaji[$i]->karyawan['settingUpah']->nominal_dasar;
  3201.         //     } else {
  3202.         //         $nominal_dasar = 0;
  3203.         //     }
  3204.         // }
  3205.  
  3206.         $pdf = PDF::loadview('Gaji.slipall', compact('gaji', 'nominal_dasar', 'periodegaji'));
  3207.         $dom_pdf = $pdf->getDomPDF();
  3208.         $dom_pdf->set_option('font_dir', storage_path('fonts/'));
  3209.         $dom_pdf->set_option('default_font', 'Courier');
  3210.         return $pdf->stream();
  3211.     }
  3212. }
  3213.  
  3214. //-----BACKUPS-----
  3215. /**
  3216.  * Backup detailTunggakan()
  3217.  */
  3218. // for ($i = 0; $i < count($karyawan->gajis); $i++) {
  3219. //     if ($karyawan->gajis[$i]->nominal_bpjs != null && $karyawan->gajis[$i]->status_pembayaran_bpjs != "bayar") {
  3220. //         $content = [
  3221. //             "tanggal_mulai_periode" => $karyawan->gajis[$i]->tanggal_mulai_periode,
  3222. //             "tanggal_selesai_periode" => $karyawan->gajis[$i]->tanggal_selesai_periode,
  3223. //             "jenis_tunggakan" => "BPJS",
  3224. //             "nominal" => $karyawan->gajis[$i]->nominal_bpjs,
  3225. //             "tanggal_bayar" => $karyawan->gajis[$i]->tanggal_bpjs,
  3226. //         ];
  3227. //         array_push($result, $content);
  3228. //     }
  3229. //     if ($karyawan->gajis[$i]->nominal_cicilan != null && $karyawan->gajis[$i]->status_pembayaran_cicilan != "bayar") {
  3230. //         $content = [
  3231. //             "tanggal_mulai_periode" => $karyawan->gajis[$i]->tanggal_mulai_periode,
  3232. //             "tanggal_selesai_periode" => $karyawan->gajis[$i]->tanggal_selesai_periode,
  3233. //             "jenis_tunggakan" => "Cicilan",
  3234. //             "nominal" => $karyawan->gajis[$i]->nominal_cicilan,
  3235. //             "tanggal_bayar" => $karyawan->gajis[$i]->tanggal_cicilan,
  3236. //         ];
  3237. //         array_push($result, $content);
  3238. //     }
  3239. //     if ($karyawan->gajis[$i]->nominal_jamsostek != null && $karyawan->gajis[$i]->status_pembayaran_jamsostek != "bayar") {
  3240. //         $content = [
  3241. //             "tanggal_mulai_periode" => $karyawan->gajis[$i]->tanggal_mulai_periode,
  3242. //             "tanggal_selesai_periode" => $karyawan->gajis[$i]->tanggal_selesai_periode,
  3243. //             "jenis_tunggakan" => "Jamsostek",
  3244. //             "nominal" => $karyawan->gajis[$i]->nominal_jamsostek,
  3245. //             "tanggal_bayar" => $karyawan->gajis[$i]->tanggal_jamsostek,
  3246. //         ];
  3247. //         array_push($result, $content);
  3248. //     }
  3249. // }
  3250.  
Add Comment
Please, Sign In to add comment