id(); $user = Staff::with('StaffDetail')->find($id); if($request->jenis_memo == "Tambahan" || $request->jenis_memo == "Potongan"){ if($request->has('tawaran')){ if (preg_match("/^100+%$|[0-9]+%/", $request->get('tawaran'))){ }else{ return redirect()->back()->withInput()->with('error_msg', 'Tidak Berjaya! Sila isikan ruangan tawaran dengan format yang betul'); } }else{ return redirect()->back()->withInput()->with('error_msg', 'Tidak Berjaya! Sila isikan ruangan tawaran sekiranya anda memilih memo jenis potongan mahupun tambahan'); } } $validator = Validator::make($request->all(), [ 'attachment.*' => 'mimes:pdf|max:2048', ]); if ($validator->fails()) { return redirect()->back()->withInput()->withErrors($validator); } $sahkan = ''; if($user->StaffDetail->roles_access == "Ketua Jabatan"){ $sahkan = $user->_id; } $compound = Compound::with('ConfidentialFile')->where('kpd', $request->kpd)->first(); if($compound->ConfidentialFile->modul != '-'){ $modul = Roles::where('kod', $compound->modul)->first(); $now = Carbon::now(); $gDate = $now->format('F Y'); if($request->hasfile('attachment')){ $memo = Memo::create([ 'itkod' => '-', 'modul' => $compound->modul, 'jenis_memo' => $request->get('jenis_memo'), 'no_rujukan' => $request->get('no_rujukan'), 'tawaran_kompaun' => $request->get('tawaran'), 'tarikh_mula' => $request->get('tarikh_mula'), 'tarikh_akhir' => $request->get('tarikh_akhir'), 'dikeluarkan' => $user->_id, 'disahkan' => $sahkan, 'jenis_data' => 'pdf', 'subjek' => $request->get('subjek'), 'penerangan' => $request->get('penerangan'), 'created_at' => $now, ]); $compound->ConfidentialFile->memo()->attach($memo); $this->dispatch(new UpdateCompoundPrice($request->kpd)); $historyData = [ 'tarikh_kumpulan' => $gDate, ]; $subHistory = [ 'no_siri' => $compound->ConfidentialFile->no_siri, 'tajuk' => "Penambahan Memo[ ".$request->get('no_rujukan')." ] : ".$request->get('subjek'), 'huraian' => $request->get('penerangan'), ]; $groupByDate = History::where('tarikh_kumpulan', $gDate)->first(); if(!empty($groupByDate)){ $groupByDate->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($groupByDate); }else{ $history = History::create($historyData); $history->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($history); } $upload = []; foreach($request->file('attachment') as $f){ $upload[] = [ 'name' => 'file[]', 'contents' => fopen( $f->getPathname(), 'r' ), 'filename' => $f->getClientOriginalName() ]; } $upload[] = [ 'name' => 'no_siri', 'contents' => $compound->ConfidentialFile->no_siri, ]; $upload [] = [ 'name' => 'type', 'contents' => 'mbip' ]; $client = new \GuzzleHttp\Client(); $result = $client->request('POST', 'https://files.sipadu.my/api/upload/file/memo/pdf', [ 'multipart' => $upload ]); $response = json_decode($result->getBody()->getContents()); if($response->success == true){ foreach ($response->data as $key => $d) { $attach = new Attachment(); $attach->path = $d; $memo->attachment()->save($attach); } }else if($response->success == false){ return redirect()->back()->with('error_msg', 'Gagal! memuatnaik pdf'); } return redirect()->back()->with('success_msg', 'Berjaya! Simpan rekod memo di kategori modul ('.$modul->name.')'); }else{ $memo = Memo::create([ 'itkod' => '-', 'modul' => $compound->modul, 'jenis_memo' => $request->get('jenis_memo'), 'no_rujukan' => $request->get('no_rujukan'), 'tawaran_kompaun' => $request->get('tawaran'), 'tarikh_mula' => $request->get('tarikh_mula'), 'tarikh_akhir' => $request->get('tarikh_akhir'), 'dikeluarkan' => $user->_id, 'disahkan' => $sahkan, 'jenis_data' => 'manual', 'subjek' => $request->get('subjek'), 'penerangan' => $request->get('penerangan'), 'created_at' => $now, ]); $compound->ConfidentialFile->memo()->attach($memo); $this->dispatch(new UpdateCompoundPrice($request->kpd)); $historyData = [ 'tarikh_kumpulan' => $gDate, ]; $subHistory = [ 'no_siri' => $compound->ConfidentialFile->no_siri, 'tajuk' => "Penambahan Memo[ ".$request->get('no_rujukan')." ] : ".$request->get('subjek'), 'huraian' => $request->get('penerangan'), ]; $groupByDate = History::where('tarikh_kumpulan', $gDate)->first(); if(!empty($groupByDate)){ $groupByDate->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($groupByDate); }else{ $history = History::create($historyData); $history->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($history); } return redirect()->back()->with('success_msg', 'Berjaya! Simpan rekod memo di kategori modul ('.$modul->name.')'); } } } public function requestEditMemo(Request $request) { $id = Auth::guard('ofr')->id(); $user = Staff::with('StaffDetail')->find($id); if($request->jenis_memo == "Tambahan" || $request->jenis_memo == "Potongan"){ if($request->has('tawaran')){ if (preg_match("/^100+%$|[0-9]+%/", $request->get('tawaran'))){ }else{ return redirect()->back()->withInput()->with('error_msg', 'Tidak Berjaya! Sila isikan ruangan tawaran dengan format yang betul'); } }else{ return redirect()->back()->withInput()->with('error_msg', 'Tidak Berjaya! Sila isikan ruangan tawaran sekiranya anda memilih memo jenis potongan mahupun tambahan'); } } $sahkan = ''; if($user->StaffDetail->roles_access == "Ketua Jabatan"){ $sahkan = $user->_id; } $compound = Compound::with('ConfidentialFile')->where('kpd', $request->kpd)->first(); $memo = Memo::where('_id', $request->memo_id)->first(); if(!empty($memo)){ $now = Carbon::now(); $gDate = $now->format('F Y'); if($request->hasfile('attachment')){ $uploadNew = false; if($memo->jenis_data == "pdf"){ foreach ($memo->Attachment as $m) { $m->forceDelete(); } $uploadNew = true; }else if($memo->jenis_data == "manual"){ $uploadNew = true; } if($uploadNew == true){ $memo->jenis_memo = $request->get('jenis_memo'); $memo->no_rujukan = $request->get('no_rujukan'); $memo->tawaran_kompaun = $request->get('tawaran'); $memo->tarikh_mula = $request->get('tarikh_mula'); $memo->tarikh_akhir = $request->get('tarikh_akhir'); $memo->jenis_data = 'pdf'; $memo->subjek = $request->get('subjek'); $memo->penerangan = $request->get('penerangan'); $memo->disahkan = $sahkan; $memo->save(); $this->dispatch(new UpdateCompoundPrice($request->kpd)); $historyData = [ 'tarikh_kumpulan' => $gDate, ]; $subHistory = [ 'no_siri' => $compound->ConfidentialFile->no_siri, 'tajuk' => "Kemaskini Memo[ ".$request->get('no_rujukan')." ] : ".$request->get('subjek'), 'huraian' => $request->get('penerangan'), ]; $groupByDate = History::where('tarikh_kumpulan', $gDate)->first(); if(!empty($groupByDate)){ $groupByDate->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($groupByDate); }else{ $history = History::create($historyData); $history->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($history); } $upload = []; foreach($request->file('attachment') as $f){ $upload[] = [ 'name' => 'file[]', 'contents' => fopen( $f->getPathname(), 'r' ), 'filename' => $f->getClientOriginalName() ]; } $upload[] = [ 'name' => 'no_siri', 'contents' => $compound->ConfidentialFile->no_siri, ]; $upload [] = [ 'name' => 'type', 'contents' => 'mbip' ]; $client = new \GuzzleHttp\Client(); $result = $client->request('POST', 'https://files.sipadu.my/api/upload/file/memo/pdf', [ 'multipart' => $upload ]); $response = json_decode($result->getBody()->getContents()); if($response->success == true){ foreach ($response->data as $key => $d) { $attach = new Attachment(); $attach->path = $d; $memo->attachment()->save($attach); } }else if($response->success == false){ return redirect()->back()->with('error_msg', 'Gagal! memuatnaik pdf'); } return redirect()->back()->with('success_msg', 'Berjaya! Kemaskini rekod memo ('.$memo->no_rujukan.'). Untuk berkuat serta merta, sila sahkan semula memo nie jika perlu.'); } }else{ $memo->jenis_memo = $request->get('jenis_memo'); $memo->no_rujukan = $request->get('no_rujukan'); $memo->tawaran_kompaun = $request->get('tawaran'); $memo->tarikh_mula = $request->get('tarikh_mula'); $memo->tarikh_akhir = $request->get('tarikh_akhir'); $memo->jenis_data = 'manual'; $memo->subjek = $request->get('subjek'); $memo->penerangan = $request->get('penerangan'); $memo->disahkan = $sahkan; $memo->save(); $this->dispatch(new UpdateCompoundPrice($request->kpd)); $historyData = [ 'tarikh_kumpulan' => $gDate, ]; $subHistory = [ 'no_siri' => $compound->ConfidentialFile->no_siri, 'tajuk' => "Kemaskini Memo[ ".$request->get('no_rujukan')." ] : ".$request->get('subjek'), 'huraian' => $request->get('penerangan'), ]; $groupByDate = History::where('tarikh_kumpulan', $gDate)->first(); if(!empty($groupByDate)){ $groupByDate->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($groupByDate); }else{ $history = History::create($historyData); $history->subhistory()->create($subHistory); $compound->ConfidentialFile->history()->attach($history); } return redirect()->back()->with('success_msg', 'Berjaya! Kemaskini rekod memo ('.$memo->no_rujukan.'). Untuk berkuat serta merta, sila sahkan semula memo nie jika perlu.'); } } } }