AktivasiProgramController.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <?php
  2. namespace App\Http\Controllers\Core;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Support\Facades\Crypt;
  5. use Illuminate\Http\Request;
  6. use App\Model\Privillage\Role;
  7. use App\Model\Inspeksi\Inspeksi;
  8. use App\Model\TahunProgram;
  9. use App\Model\TemplateProgram;
  10. use App\Model\TemplateProgramDetail;
  11. use App\Model\TahunProgramDetail;
  12. use App\Model\UPTSModel;
  13. use Auth;
  14. use Session;
  15. class AktivasiProgramController extends Controller
  16. {
  17. public function __construct()
  18. {
  19. $this->middleware('auth');
  20. $this->table = new TahunProgram;
  21. }
  22. public function index () {
  23. return view('aktivasi-program/aktivasi-program');
  24. }
  25. public function edit($id) {
  26. $data = $this->table->with('tahunProgramDetail')->find($id);
  27. $templateProgram = TemplateProgram::get();
  28. $templateProgramDetail = TemplateProgramDetail::get();
  29. $upt = UPTSModel::get();
  30. return view('aktivasi-program/edit', compact('id','data','templateProgram','templateProgramDetail','upt'));
  31. }
  32. public function detail($id) {
  33. $data = $this->table->with('tahunProgramDetail')->find($id);
  34. $templateProgram = TemplateProgram::get();
  35. $templateProgramDetail = TemplateProgramDetail::get();
  36. $upt = UPTSModel::get();
  37. return view('aktivasi-program/detail', compact('id','data','templateProgram','templateProgramDetail','upt'));
  38. }
  39. public function add() {
  40. $nama = Auth::user()->name;
  41. $templateProgram = TemplateProgram::get();
  42. $upt = UPTSModel::get();
  43. return view('aktivasi-program/add', compact('nama','templateProgram','upt'));
  44. }
  45. function checkActiveTahunProgram($id){
  46. $ok = true;
  47. $query = $this->table->where('status',1);
  48. if(!empty($id)){
  49. $query = $query->where('id','!=',$id);
  50. }
  51. if($query->count() > 0){
  52. $ok = false;
  53. }
  54. return $ok;
  55. }
  56. public function update($id,Request $request){
  57. $query = $this->table->find($id);
  58. $query->value = $request->value;
  59. $query->label_tahun_program = $request->value;
  60. $query->status = $request->status;
  61. if($query->status == 1 && !$this->checkActiveTahunProgram($id)){
  62. Session::flash('info', 'Program Tahun '.$query->value);
  63. Session::flash('colors', 'red');
  64. Session::flash('icons', 'fas fa-times');
  65. Session::flash('alert', 'Gagal Menyimpan Data. masih terdapat tahun program yang "Aktif" di tahun program lainnya');
  66. return redirect()->back();
  67. }
  68. if($query->save()){
  69. $tahunProgramIds = [];
  70. if($request->has('uniqids') && $request->uniqids != ""){
  71. $uniqids = explode(",",$request->uniqids);
  72. foreach($uniqids as $row){
  73. $attribute = [];
  74. $attribute['id_template_program_detail'] = $request->get('id_template_program_detail_'.$row);
  75. $attribute['id_template_program'] = $request->get('id_template_program_'.$row);
  76. $attribute['satuan'] = $request->get('satuan_'.$row);
  77. $attribute['jumlah'] = $request->get('jumlah_'.$row);
  78. $id = !empty($request->get('id_'.$row))?$request->get('id_'.$row):null;
  79. $qTahunProgramDetail = $query->tahunProgramDetail()->updateOrCreate(['id'=>$id],$attribute);
  80. $tahunProgramIds[] = $qTahunProgramDetail->id;
  81. }
  82. }
  83. //delete unused data
  84. TahunProgramDetail::where('id_tahun_program',$query->id)->whereNotIn('id',$tahunProgramIds)->delete();
  85. if($query){
  86. Session::flash('info', 'Program Tahun '.$query->value);
  87. Session::flash('colors', 'green');
  88. Session::flash('icons', 'fas fa-clipboard-check');
  89. Session::flash('alert', 'Berhasil Menyimpan Data!');
  90. return redirect()->back();
  91. }else{
  92. Session::flash('info', 'Program Tahun '.$query->value);
  93. Session::flash('colors', 'red');
  94. Session::flash('icons', 'fas fa-times');
  95. Session::flash('alert', 'Gagal Menyimpan Data!');
  96. return redirect()->back();
  97. }
  98. }else{
  99. Session::flash('info', 'Program Tahun '.$query->value);
  100. Session::flash('colors', 'red');
  101. Session::flash('icons', 'fas fa-times');
  102. Session::flash('alert', 'Gagal Menyimpan Data!');
  103. return redirect()->back();
  104. }
  105. }
  106. public function create(Request $request){
  107. $query = $this->table;
  108. $query->value = $request->value;
  109. $query->label_tahun_program = $request->value;
  110. $query->status = $request->status;
  111. if($query->status == 1 && !$this->checkActiveTahunProgram(null)){
  112. Session::flash('info', 'Program Tahun '.$query->value);
  113. Session::flash('colors', 'red');
  114. Session::flash('icons', 'fas fa-times');
  115. Session::flash('alert', 'Gagal Menyimpan Data, masih terdapat tahun program yang "Aktif" di tahun program lainnya');
  116. return redirect()->back();
  117. }
  118. if($query->save()){
  119. if($request->has('uniqids') && $request->uniqids != ""){
  120. $uniqids = explode(",",$request->uniqids);
  121. foreach($uniqids as $row){
  122. $attribute = [];
  123. $attribute['id_template_program_detail'] = $request->get('id_template_program_detail_'.$row);
  124. $attribute['id_template_program'] = $request->get('id_template_program_'.$row);
  125. $attribute['satuan'] = $request->get('satuan_'.$row);
  126. $attribute['jumlah'] = $request->get('jumlah_'.$row);
  127. $id = !empty($request->get('id_'.$row))?$request->get('id_'.$row):null;
  128. $qItemProgram = $query->tahunProgramDetail()->updateOrCreate(['id'=>$id],$attribute);
  129. }
  130. }
  131. if($query){
  132. Session::flash('info', 'Program Tahun '.$query->value);
  133. Session::flash('colors', 'green');
  134. Session::flash('icons', 'fas fa-clipboard-check');
  135. Session::flash('alert', 'Berhasil Menyimpan Data!');
  136. return redirect('pengaturan/aktivasi-program/edit/'.$query->id);
  137. }else{
  138. Session::flash('info', 'Program Tahun '.$query->value);
  139. Session::flash('colors', 'red');
  140. Session::flash('icons', 'fas fa-times');
  141. Session::flash('alert', 'Gagal Menyimpan Data!');
  142. return redirect()->back();
  143. }
  144. }else{
  145. Session::flash('info', 'Program Tahun '.$query->value);
  146. Session::flash('colors', 'red');
  147. Session::flash('icons', 'fas fa-times');
  148. Session::flash('alert', 'Gagal Menyimpan Data!');
  149. return redirect()->back();
  150. }
  151. }
  152. public function delete($id, Request $request){
  153. $query = $this->table->find($id);
  154. if($query->delete()){
  155. Session::flash('info', 'Sukses');
  156. Session::flash('colors', 'green');
  157. Session::flash('icons', 'fas fa-clipboard-check');
  158. Session::flash('alert', 'Berhasil Menghapus Data!');
  159. return redirect()->back();
  160. }else{
  161. Session::flash('info', 'Gagal');
  162. Session::flash('colors', 'red');
  163. Session::flash('icons', 'fas fa-times');
  164. Session::flash('alert', 'Gagal Menghapus Data!');
  165. return redirect()->back();
  166. }
  167. }
  168. }