| @@ 181-237 (lines=57) @@ | ||
| 178 | * @param \App\Prestasi $prestasi |
|
| 179 | * @return \Illuminate\Http\Response |
|
| 180 | */ |
|
| 181 | public function store(Request $request) |
|
| 182 | { |
|
| 183 | $prestasi = $this->prestasi; |
|
| 184 | ||
| 185 | $validator = Validator::make($request->all(), [ |
|
| 186 | 'nomor_un' => "required|exists:{$this->siswa->getTable()},nomor_un|unique:{$this->prestasi->getTable()},nomor_un,NULL,id,deleted_at,NULL", |
|
| 187 | 'master_prestasi_id' => "required|exists:{$this->master_prestasi->getTable()},id", |
|
| 188 | 'nama_lomba' => 'required|max:255', |
|
| 189 | // 'nilai' => 'required|numeric|min:0|max:100', |
|
| 190 | 'user_id' => "required|exists:{$this->user->getTable()},id", |
|
| 191 | ]); |
|
| 192 | ||
| 193 | if ($validator->fails()) { |
|
| 194 | $error = true; |
|
| 195 | $response['message'] = $validator->errors()->first(); |
|
| 196 | } else { |
|
| 197 | $prestasi_master_prestasi_id = $request->input('master_prestasi_id'); |
|
| 198 | $master_prestasi = $this->master_prestasi->findOrFail($prestasi_master_prestasi_id); |
|
| 199 | ||
| 200 | $prestasi->nomor_un = $request->input('nomor_un'); |
|
| 201 | $prestasi->master_prestasi_id = $prestasi_master_prestasi_id; |
|
| 202 | $prestasi->nama_lomba = $request->input('nama_lomba'); |
|
| 203 | $prestasi->nilai = $master_prestasi->nilai; |
|
| 204 | $prestasi->user_id = $request->input('user_id'); |
|
| 205 | ||
| 206 | $nilai = $this->nilai->updateOrCreate( |
|
| 207 | [ |
|
| 208 | 'nomor_un' => $prestasi->nomor_un, |
|
| 209 | ], |
|
| 210 | [ |
|
| 211 | 'prestasi' => $prestasi->nilai, |
|
| 212 | 'kegiatan_id' => null, |
|
| 213 | 'total' => null, |
|
| 214 | 'user_id' => $prestasi->user_id, |
|
| 215 | ] |
|
| 216 | ); |
|
| 217 | ||
| 218 | DB::beginTransaction(); |
|
| 219 | ||
| 220 | if ($prestasi->save() && $nilai->save()) |
|
| 221 | { |
|
| 222 | DB::commit(); |
|
| 223 | ||
| 224 | $error = false; |
|
| 225 | $response['message'] = 'success'; |
|
| 226 | } else { |
|
| 227 | DB::rollBack(); |
|
| 228 | ||
| 229 | $error = true; |
|
| 230 | $response['message'] = 'Failed'; |
|
| 231 | } |
|
| 232 | } |
|
| 233 | ||
| 234 | $response['status'] = true; |
|
| 235 | ||
| 236 | return response()->json($response); |
|
| 237 | } |
|
| 238 | ||
| 239 | /** |
|
| 240 | * Store a newly created resource in storage. |
|
| @@ 289-345 (lines=57) @@ | ||
| 286 | * @param \App\Prestasi $prestasi |
|
| 287 | * @return \Illuminate\Http\Response |
|
| 288 | */ |
|
| 289 | public function update(Request $request, $id) |
|
| 290 | { |
|
| 291 | $prestasi = $this->prestasi; |
|
| 292 | ||
| 293 | $validator = Validator::make($request->all(), [ |
|
| 294 | 'nomor_un' => "required|exists:{$this->siswa->getTable()},nomor_un|unique:{$this->prestasi->getTable()},nomor_un,{$id},id,deleted_at,NULL", |
|
| 295 | 'master_prestasi_id' => "required|exists:{$this->master_prestasi->getTable()},id", |
|
| 296 | 'nama_lomba' => 'required|max:255', |
|
| 297 | // 'nilai' => 'required|numeric|min:0|max:100', |
|
| 298 | 'user_id' => "required|exists:{$this->user->getTable()},id", |
|
| 299 | ]); |
|
| 300 | ||
| 301 | if ($validator->fails()) { |
|
| 302 | $error = true; |
|
| 303 | $response['message'] = $validator->errors()->first(); |
|
| 304 | } else { |
|
| 305 | $prestasi_master_prestasi_id = $request->input('master_prestasi_id'); |
|
| 306 | $master_prestasi = $this->master_prestasi->findOrFail($prestasi_master_prestasi_id); |
|
| 307 | ||
| 308 | $prestasi->nomor_un = $request->input('nomor_un'); |
|
| 309 | $prestasi->master_prestasi_id = $prestasi_master_prestasi_id; |
|
| 310 | $prestasi->nama_lomba = $request->input('nama_lomba'); |
|
| 311 | $prestasi->nilai = $master_prestasi->nilai; |
|
| 312 | $prestasi->user_id = $request->input('user_id'); |
|
| 313 | ||
| 314 | $nilai = $this->nilai->updateOrCreate( |
|
| 315 | [ |
|
| 316 | 'nomor_un' => $prestasi->nomor_un, |
|
| 317 | ], |
|
| 318 | [ |
|
| 319 | 'prestasi' => $prestasi->nilai, |
|
| 320 | 'kegiatan_id' => null, |
|
| 321 | 'total' => null, |
|
| 322 | 'user_id' => $prestasi->user_id, |
|
| 323 | ] |
|
| 324 | ); |
|
| 325 | ||
| 326 | DB::beginTransaction(); |
|
| 327 | ||
| 328 | if ($prestasi->save() && $nilai->save()) |
|
| 329 | { |
|
| 330 | DB::commit(); |
|
| 331 | ||
| 332 | $error = false; |
|
| 333 | $response['message'] = 'success'; |
|
| 334 | } else { |
|
| 335 | DB::rollBack(); |
|
| 336 | ||
| 337 | $error = true; |
|
| 338 | $response['message'] = 'Failed'; |
|
| 339 | } |
|
| 340 | } |
|
| 341 | ||
| 342 | $response['status'] = true; |
|
| 343 | ||
| 344 | return response()->json($response); |
|
| 345 | } |
|
| 346 | ||
| 347 | /** |
|
| 348 | * Remove the specified resource from storage. |
|