vitareinforce

GajiController.php

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