vitareinforce

updateRollingExtuder

Dec 8th, 2021 (edited)
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 18.25 KB | None | 0 0
  1.     public function updaterollingextuder(Request $request)
  2.     {
  3.         // dd($request->all());
  4.  
  5.         if ($request->pilih == 'grup') {
  6.             $group_first = Group::with('jadwal')->find($request->group_id);
  7.             // dd($group_first);
  8.  
  9.             $jadwal_first = JadwalExtuder::with('group')->where('group_id', '=', $group_first->id)->first();
  10.             // dd($jadwal_first);
  11.             $jadwal_second = JadwalExtuder::with('group')->find($request->jadwal_baru_group);
  12.             // dd($jadwal_second);
  13.  
  14.             $group_second = Group::with('jadwal')->where('jadwal_id', '=', $jadwal_second->id)->first();
  15.             // dd($group_second);
  16.  
  17.             $jadwalKerja_first = JadwalHariKerjaExtuder::where('source_id', '=', $jadwal_first->id)->get();
  18.  
  19.             $karyawan_first = Karyawan::where('group_id', '=', $group_first->id)->get();
  20.            
  21.             $group_first_jadwal_id = $group_first->jadwal_id;
  22.             $jadwal_first_group_id = $jadwal_first->group_id;
  23.            
  24.             if ($group_second != null) {
  25.                 $karyawan_second = Karyawan::where('group_id', '=', $group_second->id)->get();
  26.            
  27.                 $group_second_jadwal_id = $group_second->jadwal_id;
  28.            
  29.                 $jadwal_second_group_id = $jadwal_second->group_id;
  30.                 $jadwalKerja_second = JadwalHariKerjaExtuder::where('source_id', '=', $jadwal_second->id)->get();
  31.            
  32.                 $jadwal_first->group_id = $group_second->id;
  33.                 $jadwal_second->group_id = $group_first->id;
  34.                 $jadwal_first->save();
  35.                 $jadwal_second->save();
  36.  
  37.                 for ($i = 0; $i < count($jadwalKerja_first); $i++) {
  38.                     $jadwalKerja_first[$i]->destroy($jadwalKerja_first[$i]->id);
  39.                 }
  40.                 for ($i = 0; $i < count($jadwalKerja_second); $i++) {
  41.                     $jadwalKerja_second[$i]->destroy($jadwalKerja_second[$i]->id);
  42.                 }
  43.                 for ($i = 0; $i < count($karyawan_first); $i++) {
  44.                     $jadwalHariKerja = new JadwalHariKerjaExtuder();
  45.                     $jadwalHariKerja->checkbox_harikerja_senin = $jadwal_second->checkbox_harikerja_senin;
  46.                     $jadwalHariKerja->checkbox_harikerja_selasa = $jadwal_second->checkbox_harikerja_selasa;
  47.                     $jadwalHariKerja->checkbox_harikerja_rabu = $jadwal_second->checkbox_harikerja_rabu;
  48.                     $jadwalHariKerja->checkbox_harikerja_kamis = $jadwal_second->checkbox_harikerja_kamis;
  49.                     $jadwalHariKerja->checkbox_harikerja_jumat = $jadwal_second->checkbox_harikerja_jumat;
  50.                     $jadwalHariKerja->checkbox_harikerja_sabtu = $jadwal_second->checkbox_harikerja_sabtu;
  51.                     $jadwalHariKerja->checkbox_harikerja_minggu = $jadwal_second->checkbox_harikerja_minggu;
  52.                     $jadwalHariKerja->jam_masuk = $jadwal_second->jam_masuk;
  53.                     $jadwalHariKerja->jam_istirahat_mulai = $jadwal_second->jam_istirahat_mulai;
  54.                     $jadwalHariKerja->jam_istirahat_selesai = $jadwal_second->jam_istirahat_selesai;
  55.                     $jadwalHariKerja->jam_pulang = $jadwal_second->jam_pulang;
  56.                     $jadwalHariKerja->group_id = $group_first->id;
  57.                     $jadwalHariKerja->karyawan_id = $karyawan_first[$i]->id;
  58.                     // $jadwalHariKerja->status = 'rutin-group';
  59.                     $jadwalHariKerja->approval = 0;
  60.                     $jadwalHariKerja->nama_jadwal = $jadwal_second->nama_jadwal;
  61.                     $jadwalHariKerja->warna = $jadwal_second->warna;
  62.                     $jadwalHariKerja->status_hadir = null;
  63.                     $jadwalHariKerja->keterangan = $jadwal_second->keterangan;
  64.                     $jadwalHariKerja->source_id = $jadwal_second->id;
  65.                     // $jadwalHariKerja->source = 'jadwal_group_rutin';
  66.                     $jadwalHariKerja->save();
  67.                 }
  68.                 for ($i = 0; $i < count($karyawan_second); $i++) {
  69.                     $jadwalHariKerja = new JadwalHariKerjaExtuder();
  70.                     $jadwalHariKerja->checkbox_harikerja_senin = $jadwal_first->checkbox_harikerja_senin;
  71.                     $jadwalHariKerja->checkbox_harikerja_selasa = $jadwal_first->checkbox_harikerja_selasa;
  72.                     $jadwalHariKerja->checkbox_harikerja_rabu = $jadwal_first->checkbox_harikerja_rabu;
  73.                     $jadwalHariKerja->checkbox_harikerja_kamis = $jadwal_first->checkbox_harikerja_kamis;
  74.                     $jadwalHariKerja->checkbox_harikerja_jumat = $jadwal_first->checkbox_harikerja_jumat;
  75.                     $jadwalHariKerja->checkbox_harikerja_sabtu = $jadwal_first->checkbox_harikerja_sabtu;
  76.                     $jadwalHariKerja->checkbox_harikerja_minggu = $jadwal_first->checkbox_harikerja_minggu;
  77.                     $jadwalHariKerja->jam_masuk = $jadwal_first->jam_masuk;
  78.                     $jadwalHariKerja->jam_istirahat_mulai = $jadwal_first->jam_istirahat_mulai;
  79.                     $jadwalHariKerja->jam_istirahat_selesai = $jadwal_first->jam_istirahat_selesai;
  80.                     $jadwalHariKerja->jam_pulang = $jadwal_first->jam_pulang;
  81.                     $jadwalHariKerja->group_id = $group_second->id;
  82.                     $jadwalHariKerja->karyawan_id = $karyawan_second[$i]->id;
  83.                     // $jadwalHariKerja->status = 'rutin-group';
  84.                     $jadwalHariKerja->approval = 0;
  85.                     $jadwalHariKerja->nama_jadwal = $jadwal_first->nama_jadwal;
  86.                     $jadwalHariKerja->warna = $jadwal_first->warna;
  87.                     $jadwalHariKerja->status_hadir = null;
  88.                     $jadwalHariKerja->keterangan = $jadwal_first->keterangan;
  89.                     $jadwalHariKerja->source_id = $jadwal_first->id;
  90.                     // $jadwalHariKerja->source = 'jadwal_group_rutin';
  91.                     $jadwalHariKerja->save();
  92.                 }
  93.            
  94.                 for ($i = 0; $i < count($karyawan_first); $i++) {
  95.                     $karyawan_first[$i]->jadwal_group_id = $jadwal_second->id;
  96.                     $karyawan_first[$i]->save();
  97.                 }
  98.  
  99.                 for ($i = 0; $i < count($karyawan_second); $i++) {
  100.                     $karyawan_second[$i]->jadwal_group_id = $jadwal_first->id;
  101.                     $karyawan_second[$i]->save();
  102.                 }
  103.  
  104.                 $group_first->jadwal_id = $jadwal_second->id;
  105.                 $group_second->jadwal_id = $jadwal_first->id;
  106.                 $group_first->save();
  107.                 $group_second->save();
  108.  
  109.             } else {
  110.                 $jadwal_first->group_id = null;
  111.                 $jadwal_second->group_id = $group_first->id;
  112.                 $jadwal_first->save();
  113.                 $jadwal_second->save();
  114.  
  115.                 for ($i = 0; $i < count($jadwalKerja_first); $i++) {
  116.                     $jadwalKerja_first[$i]->destroy($jadwalKerja_first[$i]->id);
  117.                 }
  118.                 for ($i = 0; $i < count($karyawan_first); $i++) {
  119.                     $jadwalHariKerja = new JadwalHariKerjaExtuder();
  120.                     $jadwalHariKerja->checkbox_harikerja_senin = $jadwal_second->checkbox_harikerja_senin;
  121.                     $jadwalHariKerja->checkbox_harikerja_selasa = $jadwal_second->checkbox_harikerja_selasa;
  122.                     $jadwalHariKerja->checkbox_harikerja_rabu = $jadwal_second->checkbox_harikerja_rabu;
  123.                     $jadwalHariKerja->checkbox_harikerja_kamis = $jadwal_second->checkbox_harikerja_kamis;
  124.                     $jadwalHariKerja->checkbox_harikerja_jumat = $jadwal_second->checkbox_harikerja_jumat;
  125.                     $jadwalHariKerja->checkbox_harikerja_sabtu = $jadwal_second->checkbox_harikerja_sabtu;
  126.                     $jadwalHariKerja->checkbox_harikerja_minggu = $jadwal_second->checkbox_harikerja_minggu;
  127.                     $jadwalHariKerja->jam_masuk = $jadwal_second->jam_masuk;
  128.                     $jadwalHariKerja->jam_istirahat_mulai = $jadwal_second->jam_istirahat_mulai;
  129.                     $jadwalHariKerja->jam_istirahat_selesai = $jadwal_second->jam_istirahat_selesai;
  130.                     $jadwalHariKerja->jam_pulang = $jadwal_second->jam_pulang;
  131.                     $jadwalHariKerja->group_id = $group_first->id;
  132.                     $jadwalHariKerja->karyawan_id = $karyawan_first[$i]->id;
  133.                     // $jadwalHariKerja->status = 'rutin-group';
  134.                     $jadwalHariKerja->approval = 0;
  135.                     $jadwalHariKerja->nama_jadwal = $jadwal_second->nama_jadwal;
  136.                     $jadwalHariKerja->warna = $jadwal_second->warna;
  137.                     $jadwalHariKerja->status_hadir = null;
  138.                     $jadwalHariKerja->keterangan = $jadwal_second->keterangan;
  139.                     $jadwalHariKerja->source_id = $jadwal_second->id;
  140.                     // $jadwalHariKerja->source = 'jadwal_group_rutin';
  141.                     $jadwalHariKerja->save();
  142.                 }
  143.  
  144.                 for ($i = 0; $i < count($karyawan_first); $i++) {
  145.                     $karyawan_first[$i]->jadwal_group_id = $jadwal_second->id;
  146.                     $karyawan_first[$i]->save();
  147.                 }
  148.  
  149.                 $group_first->jadwal_id = $jadwal_second->id;
  150.                 $group_first->save();
  151.             }
  152.         }
  153.  
  154.         if ($request->pilih == 'karyawan') {
  155.             $jadwal_existing = JadwalExtuder::with('group')->find($request->jadwal_baru_karyawan);
  156.             // dd($jadwal_existing->status);
  157.             if ($jadwal_existing->group_id == null) {
  158.                 foreach ($request->karyawan as $k) {
  159.                     $karyawan_existing = Karyawan::find($k);
  160.                     $jadwal_master = self::getJadwalKaryawan($k);
  161.                     // dd($jadwal_master);
  162.                     if ($karyawan_existing->jadwal_id == null) {
  163.                         // dd('masuk null');
  164.                         $karyawan_existing->jadwal_id = $jadwal_existing->id;
  165.                         $karyawan_existing->save();
  166.                     } else {
  167.                         // dd('masuk tidak null');
  168.                         $jadwalKerja_existing = JadwalHariKerjaExtuder::where('karyawan_id', '=', $karyawan_existing->id)->where('source_id', '=', $karyawan_existing->jadwal_id)->get();
  169.                         for ($i = 0; $i < count($jadwalKerja_existing); $i++) {
  170.                             $jadwalKerja_existing[0]->destroy($jadwalKerja_existing[0]->id);
  171.                         }
  172.                     }
  173.                     $jadwalHariKerja = new JadwalHariKerjaExtuder();
  174.                     $jadwalHariKerja->checkbox_harikerja_senin = $jadwal_existing->checkbox_harikerja_senin;
  175.                     $jadwalHariKerja->checkbox_harikerja_selasa = $jadwal_existing->checkbox_harikerja_selasa;
  176.                     $jadwalHariKerja->checkbox_harikerja_rabu = $jadwal_existing->checkbox_harikerja_rabu;
  177.                     $jadwalHariKerja->checkbox_harikerja_kamis = $jadwal_existing->checkbox_harikerja_kamis;
  178.                     $jadwalHariKerja->checkbox_harikerja_jumat = $jadwal_existing->checkbox_harikerja_jumat;
  179.                     $jadwalHariKerja->checkbox_harikerja_sabtu = $jadwal_existing->checkbox_harikerja_sabtu;
  180.                     $jadwalHariKerja->checkbox_harikerja_minggu = $jadwal_existing->checkbox_harikerja_minggu;
  181.                     $jadwalHariKerja->jam_masuk = $jadwal_existing->jam_masuk;
  182.                     $jadwalHariKerja->jam_istirahat_mulai = $jadwal_existing->jam_masuk;
  183.                     $jadwalHariKerja->jam_istirahat_selesai = $jadwal_existing->jam_masuk;
  184.                     $jadwalHariKerja->jam_pulang = $jadwal_existing->jam_masuk;
  185.                     $jadwalHariKerja->karyawan_id = $k;
  186.                     // $jadwalHariKerja->status = 'rutin';
  187.                     $jadwalHariKerja->approval = 0;
  188.                     $jadwalHariKerja->nama_jadwal = $jadwal_existing->nama_jadwal;
  189.                     $jadwalHariKerja->warna = $jadwal_existing->warna;
  190.                     $jadwalHariKerja->status_hadir = null;
  191.                     $jadwalHariKerja->keterangan = $jadwal_existing->keterangan;
  192.                     $jadwalHariKerja->source_id = $jadwal_existing->id;
  193.                     // $jadwalHariKerja->source = 'jadwal_rutin';
  194.                     $jadwalHariKerja->save();
  195.  
  196.                 }
  197.             }
  198.  
  199.             if ($jadwal_existing->status != null) {
  200.                 foreach ($request->karyawan as $k) {
  201.                     $karyawan_existing = Karyawan::find($k);
  202.                     $jadwal_master = self::getJadwalKaryawan($k);
  203.                     // dd($jadwal_master);
  204.                     $group_lookup = Group::find($jadwal_existing->group_id);
  205.                     if ($karyawan_existing->group_id == null) {
  206.                         // dd('masuk null');
  207.                         $karyawan_existing->group_id = $jadwal_existing->group_id;
  208.                         $karyawan_existing->nik = $group_lookup->nama . $karyawan_existing->groupno;
  209.                         $karyawan_existing->jadwal_group_id = $jadwal_existing->id;
  210.                         $karyawan_existing->save();
  211.                     } else {
  212.                         // dd('masuk tidak null');
  213.                         $jadwalKerja_existing = JadwalHariKerja::where('karyawan_id', '=', $karyawan_existing->id)->where('group_id', '=', $request->group_id)->where('source_id', '=', $karyawan_existing->jadwal_group_id)->where('source', '=', 'jadwal_group_rutin')->get();
  214.                         // dd($jadwalKerja_existing);
  215.                         for ($i = 0; $i < count($jadwalKerja_existing); $i++) {
  216.                             $jadwalKerja_existing[0]->destroy($jadwalKerja_existing[0]->id);
  217.                         }
  218.                         $karyawan_existing->group_id = $jadwal_existing->group_id;
  219.                         $karyawan_existing->nik = $group_lookup->nama . $karyawan_existing->groupno;
  220.                         $karyawan_existing->jadwal_group_id = $jadwal_existing->id;
  221.                         $karyawan_existing->save();
  222.                     }
  223.                     $jadwalHariKerja = new JadwalHariKerja();
  224.                     $jadwalHariKerja->checkbox_harikerja_senin = $jadwal_existing->checkbox_harikerja_senin;
  225.                     $jadwalHariKerja->checkbox_harikerja_selasa = $jadwal_existing->checkbox_harikerja_selasa;
  226.                     $jadwalHariKerja->checkbox_harikerja_rabu = $jadwal_existing->checkbox_harikerja_rabu;
  227.                     $jadwalHariKerja->checkbox_harikerja_kamis = $jadwal_existing->checkbox_harikerja_kamis;
  228.                     $jadwalHariKerja->checkbox_harikerja_jumat = $jadwal_existing->checkbox_harikerja_jumat;
  229.                     $jadwalHariKerja->checkbox_harikerja_sabtu = $jadwal_existing->checkbox_harikerja_sabtu;
  230.                     $jadwalHariKerja->checkbox_harikerja_minggu = $jadwal_existing->checkbox_harikerja_minggu;
  231.                     $jadwalHariKerja->jam_masuk = $jadwal_existing->jam_masuk;
  232.                     $jadwalHariKerja->jam_istirahat_mulai = $jadwal_existing->jam_masuk;
  233.                     $jadwalHariKerja->jam_istirahat_selesai = $jadwal_existing->jam_masuk;
  234.                     $jadwalHariKerja->jam_pulang = $jadwal_existing->jam_masuk;
  235.                     $jadwalHariKerja->karyawan_id = $k;
  236.                     $jadwalHariKerja->group_id = $karyawan_existing->group_id;
  237.                     $jadwalHariKerja->status = 'rutin-group';
  238.                     $jadwalHariKerja->approval = 0;
  239.                     $jadwalHariKerja->nama_jadwal = $jadwal_existing->nama_jadwal;
  240.                     $jadwalHariKerja->warna = $jadwal_existing->warna;
  241.                     $jadwalHariKerja->status_hadir = null;
  242.                     $jadwalHariKerja->keterangan = $jadwal_existing->keterangan;
  243.                     $jadwalHariKerja->source_id = $jadwal_existing->id;
  244.                     $jadwalHariKerja->source = 'jadwal_group_rutin';
  245.                     $jadwalHariKerja->save();
  246.  
  247.                     // kph kpm disini
  248.                     $get_storage = KalkulasiPoinHarian::where('karyawan_id', $karyawan_existing->id)->where('tanggal_hari_ini', Carbon::now()->toDateString())->first();
  249.                     if($get_storage != null) {
  250.                         $get_storage->source_group_rutin = 'jadwal_group_rutin';
  251.                         $get_storage->source_id_group_rutin = $jadwal_existing->id;
  252.                         $get_storage->save();
  253.                     }
  254.  
  255.                     // minguan jam
  256.                     // input mingguan jam rutin
  257.                     $awal_minggu = Carbon::now()->startOfWeek()->format('Y-m-d 00:00:00');
  258.                     $akhir_minggu = Carbon::now()->endOfWeek()->format('Y-m-d 00:00:00');
  259.                     $minggu_ke = idate('W', strtotime(Carbon::now()->format("Y-m-d")));
  260.  
  261.                     $get_storage_rutin = MingguanJamRutin::where('karyawan_id', $karyawan_existing->id)->where('tanggal_awal', $awal_minggu)->where('tanggal_akhir', $akhir_minggu)->where('minggu_ke', $minggu_ke)->first();
  262.                     if($get_storage_rutin != null) {
  263.                         $get_storage_rutin->source_group = 'jadwal_group_rutin';
  264.                         $get_storage_rutin->source_id_group = $jadwal_existing->id;
  265.                         $get_storage_rutin->nama_jadwal_group = $jadwal_existing->nama_jadwal;
  266.                         $get_storage_rutin->save();
  267.                     }
  268.  
  269.                     // mingguan poin lupa kemasukin
  270.                     $generate_storage = KalkulasiPoinMingguan::where('karyawan_id', $karyawan_existing[$i]->id)
  271.                                                 ->where('tanggal_awal_minggu', $awal_minggu)
  272.                                                 ->where('tanggal_akhir_minggu', $akhir_minggu)
  273.                                                 ->where('minggu_ke', $minggu_ke)->first();
  274.                     if($generate_storage != null) {
  275.                         $generate_storage->source_rutin_group = 'jadwal_group_rutin';
  276.                         $generate_storage->source_id_rutin_group = $jadwal_existing->id;
  277.                         $generate_storage->save();
  278.                     }
  279.                 }
  280.             }
  281.         }
  282.  
  283.         alert()->success('Sukses', 'Rolling Jadwal Extuder berhasil.')->persistent(true, false)->showConfirmButton('Okay', '#064a25');
  284.  
  285.         return redirect()->route('group.index');
  286.     }
Add Comment
Please, Sign In to add comment