Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function apiHitungUpahGroup($id)
- {
- $periodegaji = PeriodeGaji::find($id);
- $periodemulai = $periodegaji->tanggal_mulai_periode;
- $periodeselesai = $periodegaji->tanggal_selesai_periode;
- $group = Group::with('karyawans.presensis', 'karyawans.settingpresensi', 'karyawan.settingupah', 'karyawan.cicilan')->get();
- // $karyawan = Karyawan::with('presensis', 'group', 'jadwal', 'jadwalGroup', 'jadwalNgeplus', 'settingpresensi', 'settingupah', 'cicilan')->orderBy('nama', 'ASC')->get();
- $result = array();
- $closingTime = "00:40:00";
- $queryClosingTime = ClosingTime::find(1)->jangka_waktu;
- if (isset($queryClosingTime)) {
- $closingTime = $queryClosingTime;
- }
- for ($g = 0; $g < count($group); $g++) {
- if(isset($group[$g]->karyawans)) {
- for ($i = 0; $i < count($group[$g]->karyawans); $i++) {
- $poinkaryawan = 0;
- // $maxpointkaryawan = 7;
- $upah_dasar = 0;
- $potongancicilan = 0;
- $bonus = 0;
- $potonganjamsostek = 0;
- $bpjs = 0;
- $upah_only = 0;
- $potongan_only = 0;
- $total_upah = 0;
- $total_tunggakan = 0;
- // $karyawan[$i]->setAttribute("closing_time", $closingTime);
- // if (isset($karyawan[$i]->jadwal_id) || isset($karyawan[$i]->jadwal_group_id)) {
- // array_push($result, $group[$g]->karyawans[$i]);
- // }
- if (count($group[$g]->karyawans[$i]->presensis) > 0) {
- for ($j = 0; $j < count($group[$g]->karyawans[$i]->presensis); $j++) {
- 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)) {
- $poinkaryawan = $poinkaryawan + $group[$g]->karyawans[$i]->presensis[$j]->poin;
- }
- }
- }
- $potongancicilan = Cicilan::where('karyawan_id', $group[$g]->karyawans[$i]->id)->pluck('nominal');
- $potonganjamsostek = Jamsostek::where('karyawan_id', $group[$g]->karyawans[$i]->id)->pluck('nominal');
- $bonus = Bonus::where('karyawan_id', $group[$g]->karyawans[$i]->id)->pluck('nominal_dasar');
- $bpjs = Bpjs::where('id', $group[$g]->karyawans[$i]->bpjs_id)->pluck('nominal');
- // if ($karyawan[$i]->id == $karyawan[$i]->cicilan->karyawan_id) {
- // $potongancicilan = Cicilan::get('nominal');
- // }
- // dd($bpjs);
- if (count($bonus) <= 0) {
- $bonus[0] = 0;
- }
- if (count($potongancicilan) <= 0) {
- $potongancicilan[0] = 0;
- }
- if (count($potonganjamsostek) <= 0) {
- $potonganjamsostek[0] = 0;
- }
- if (count($bpjs) <= 0) {
- $bpjs[0] = 0;
- }
- $group[$g]->karyawans[$i]->setAttribute("total_poin", $poinkaryawan);
- $group[$g]->karyawans[$i]->setAttribute("upah_bonus", $bonus[0]);
- $group[$g]->karyawans[$i]->setAttribute("potongan_cicilan", $potongancicilan[0]);
- $group[$g]->karyawans[$i]->setAttribute("potongan_jamsostek", $potonganjamsostek[0]);
- $group[$g]->karyawans[$i]->setAttribute("potongan_bpjs", $bpjs[0]);
- $group[$g]->karyawans[$i]->setAttribute("total_tunggakan", $total_tunggakan);
- // $karyawan[$i]->setAttribute("potongan_jamsostek", $potonganjamsostek);
- $persentasepoin = $poinkaryawan;
- if (isset($group[$g]->karyawans[$i]->settingupah)) {
- $upah_dasar = $group[$g]->karyawans[$i]->settingupah->nominal_dasar * $persentasepoin;
- }
- $group[$g]->karyawans[$i]->setAttribute("upah_dasar", $upah_dasar);
- $upah_only = $upah_dasar + $bonus[0];
- $group[$g]->karyawans[$i]->setAttribute("upah_only", $upah_only);
- $potongan_only = $potonganjamsostek[0] + $bpjs[0];
- $group[$g]->karyawans[$i]->setAttribute("potongan_only", $potongan_only);
- $total_upah = $upah_dasar
- + $bonus[0]
- - $potongancicilan[0]
- - $potonganjamsostek[0]
- - $bpjs[0];
- $group[$g]->karyawans[$i]->setAttribute("total_upah", $total_upah);
- }
- }
- }
- return Response::json($group);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement