123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- <?php
-
- namespace App\Http\Controllers\Officer;
-
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Auth;
- use LynX39\LaraPdfMerger\Facades\PdfMerger;
-
- use Carbon\Carbon;
- use Validator;
- use PDF;
-
- use App\Model\Staff;
- use App\Model\StaffDetail;
- use App\Model\Module\Department;
- use App\Model\Module\Roles;
- use App\Model\Module\Attachment;
- use App\Model\Module\Faulty;
- use App\Model\Module\Memo;
- use App\Model\Module\History;
- use App\Model\Module\SubHistory;
- use App\Model\Module\Compound;
- use App\Model\Module\ConfidentialFile;
-
- use App\Jobs\UpdateCompoundPrice;
-
- class MemoController extends Controller
- {
-
- public function requestAddMemo(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', '<strong>Tidak Berjaya!</strong> Sila isikan ruangan tawaran dengan format yang betul');
- }
-
- }else{
- return redirect()->back()->withInput()->with('error_msg', '<strong>Tidak Berjaya!</strong> 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', '<strong>Gagal!</strong> memuatnaik pdf');
- }
-
- return redirect()->back()->with('success_msg', '<strong>Berjaya!</strong> Simpan rekod memo di kategori modul <strong>('.$modul->name.')</strong>');
- }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', '<strong>Berjaya!</strong> Simpan rekod memo di kategori modul <strong>('.$modul->name.')</strong>');
- }
- }
- }
-
- 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', '<strong>Tidak Berjaya!</strong> Sila isikan ruangan tawaran dengan format yang betul');
- }
-
- }else{
- return redirect()->back()->withInput()->with('error_msg', '<strong>Tidak Berjaya!</strong> 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', '<strong>Gagal!</strong> memuatnaik pdf');
- }
-
- return redirect()->back()->with('success_msg', '<strong>Berjaya!</strong> Kemaskini rekod memo <strong>('.$memo->no_rujukan.')</strong>. 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', '<strong>Berjaya!</strong> Kemaskini rekod memo <strong>('.$memo->no_rujukan.')</strong>. Untuk berkuat serta merta, sila sahkan semula memo nie jika perlu.');
- }
- }
- }
- }
|