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('sadmin')->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.');
}
}
}
}