Dashboard sipadu mbip
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

DepartmentController.php 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. <?php
  2. namespace App\Http\Controllers\api;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Api\BaseController;
  5. use Config;
  6. use File;
  7. use Carbon\Carbon;
  8. use App\Model\Staff;
  9. use App\Model\StaffDetail;
  10. use App\Model\Module\Department;
  11. use App\Model\Module\DeedLaw;
  12. use App\Model\Module\Faulty;
  13. class DepartmentController extends BaseController
  14. {
  15. /**
  16. * Create a department list controller.
  17. *
  18. * @return json
  19. */
  20. public function departmentList()
  21. {
  22. $nested_data = array();
  23. $department = Department::orderBy('updated_at', 'desc')->get();
  24. $curr = Carbon::now()->getTimestamp();
  25. foreach($department as $a)
  26. {
  27. $n1 = '';
  28. $reg_time = $a->updated_at;
  29. $expiry_date = $reg_time->addDays(3);
  30. $expiry_date = $expiry_date->getTimestamp();
  31. if($curr < $expiry_date) {
  32. $n1 = "Baru/";
  33. }else{
  34. $n1 = "";
  35. }
  36. array_push($nested_data, array(
  37. 'jkod' => $n1.$a->jbkod,
  38. 'jnama' => $a->jnama,
  39. 'alam1' => $a->alam1,
  40. 'alam2' => $a->alam2,
  41. 'alam3' => $a->alam3,
  42. 'tindakan' => $a->_id
  43. ));
  44. }
  45. return \DataTables::of($nested_data)->make(true);
  46. }
  47. public function departmentDetail(Request $request)
  48. {
  49. $department = Department::where('_id',$request->get('id'))->first();
  50. if(!empty($department)){
  51. return response()->json(['status' => 'true', 'desc' => $department]);
  52. }else{
  53. return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
  54. }
  55. }
  56. public function deleteDepartment(Request $request)
  57. {
  58. $department = Department::where('_id',$request->get('jid'))->first();
  59. if(!empty($department)){
  60. $department->delete();
  61. return response()->json(['status' => 'true', 'desc' => 'Buang rekod jabatan ( '.$department->jnama.' )']);
  62. }else{
  63. return response()->json(['status' => 'false', 'desc' => 'Buang rekod jabatan ( '.$department->jnama.' )']);
  64. }
  65. }
  66. public function filterDepartmentBasedFaulty($id)
  67. {
  68. $data = array();
  69. $faulty = Faulty::with('Department')->where('_id',$id)->first();
  70. if(!empty($faulty)){
  71. if(!empty($faulty->Department)){
  72. foreach ($faulty->Department as $key => $k) {
  73. array_push($data, array(
  74. '_id' => $k->_id,
  75. 'nama' => '['.$k->jbkod.'] '.$k->jnama
  76. ));
  77. }
  78. }
  79. return $this->sendResponse($data, 'Rekod Ditemui');
  80. }else{
  81. return $this->sendError('', 'Rekod Ditemui');
  82. }
  83. }
  84. /**
  85. * Create a acts & uuk list controller.
  86. *
  87. * @return json
  88. */
  89. public function deedLawList()
  90. {
  91. $nested_data = array();
  92. $akta = DeedLaw::with('Department')->orderBy('updated_at', 'desc')->get();
  93. $curr = Carbon::now()->getTimestamp();
  94. foreach($akta as $key => $a)
  95. {
  96. $n1 = '';
  97. $reg_time = $a->updated_at;
  98. $expiry_date = $reg_time->addDays(3);
  99. $expiry_date = $expiry_date->getTimestamp();
  100. if($curr < $expiry_date) {
  101. $n1 = "Baru/";
  102. }else{
  103. $n1 = "";
  104. }
  105. $temp = [];
  106. if(!empty($a->Department)){
  107. foreach ($a->Department as $key => $d) {
  108. $temp[] = $d->jbkod;
  109. $jabatan = implode( ", ", $temp );
  110. }
  111. }else{
  112. $jabatan = '-';
  113. }
  114. array_push($nested_data, array(
  115. 'tarikh' => $n1.$a->tarikh,
  116. 'jbkod' => $jabatan,
  117. 'nama' => $a->nama,
  118. 'tindakan' => $a->_id
  119. ));
  120. }
  121. return \DataTables::of($nested_data)->make(true);
  122. }
  123. public function officerDeedLawList($id)
  124. {
  125. $nested_data = array(); $temp = [];
  126. $curr = Carbon::now()->getTimestamp();
  127. $department = Department::with(['DeedLaw' => function($q){
  128. $q->with('Department');
  129. }])->whereHas('StaffDetail', function($q) use ($id) {
  130. $q->where('_id', $id);
  131. })->get();
  132. if(!empty($department)){
  133. foreach ($department as $key => $de) {
  134. if(!empty($de->DeedLaw)){
  135. foreach ($de->DeedLaw as $key => $law) {
  136. if(!in_array($law->_id, (array)$temp)) {
  137. $temp[] = $law;
  138. }
  139. }
  140. }
  141. }
  142. }
  143. if(!empty($temp)){
  144. foreach($temp as $a) {
  145. $n1 = ''; $jabatan = '-';
  146. $reg_time = $a['updated_at'];
  147. $expiry_date = $reg_time->addDays(3);
  148. $expiry_date = $expiry_date->getTimestamp();
  149. if($curr < $expiry_date) {
  150. $n1 = "Baru/";
  151. }else{
  152. $n1 = "";
  153. }
  154. $tempJ = [];
  155. foreach ($a->Department as $key => $d) {
  156. if(!empty($a->Department)){
  157. $tempJ[] = $d->jbkod;
  158. }
  159. }
  160. $jabatan = implode( ", ", $tempJ );
  161. array_push($nested_data, array(
  162. 'tarikh' => $n1.$a->tarikh,
  163. 'jbkod' => $jabatan,
  164. 'nama' => $a->nama,
  165. 'tindakan' => $a->_id
  166. ));
  167. }
  168. }
  169. return \DataTables::of($nested_data)->make(true);
  170. }
  171. public function deedLawDetail(Request $request)
  172. {
  173. $akta = DeedLaw::where('_id',$request->get('id'))->first();
  174. if(!empty($akta)){
  175. return response()->json(['status' => 'true', 'desc' => $akta]);
  176. }else{
  177. return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
  178. }
  179. }
  180. public function deleteDeedLaw(Request $request)
  181. {
  182. $akta = DeedLaw::where('_id',$request->get('aid'))->first();
  183. if(!empty($akta)){
  184. $akta->department()->detach();
  185. $akta->delete();
  186. return response()->json(['status' => 'true', 'desc' => 'Buang rekod akta/uuk ( '.$akta->nama.' )']);
  187. }else{
  188. return response()->json(['status' => 'false', 'desc' => '( Buang rekod akta/uuk ( '.$akta->nama.' )']);
  189. }
  190. }
  191. public function getDeedlawBasedFaulty($id)
  192. {
  193. $data = array();
  194. $faulty = Faulty::with('DeedLaw')->where('_id',$id)->first();
  195. if(!empty($faulty)){
  196. if(!empty($faulty->DeedLaw)){
  197. return $this->sendResponse($faulty->DeedLaw->nama, 'Rekod Ditemui');
  198. }
  199. }else{
  200. return $this->sendError('', 'Rekod Ditemui');
  201. }
  202. }
  203. /**
  204. * Create a faulty list controller.
  205. *
  206. * @return json
  207. */
  208. public function faultyList()
  209. {
  210. $nested_data = array(); $jabatan = '-'; $n1 = '';
  211. $faulty = Faulty::with('DeedLaw','Department')->orderBy('updated_at', 'DESC')->get();
  212. $curr = Carbon::now()->getTimestamp();
  213. foreach($faulty as $k) {
  214. $tempJ = []; $jabatan = '-';
  215. $reg_time = $k->updated_at;
  216. $expiry_date = $reg_time->addDays(3);
  217. $expiry_date = $expiry_date->getTimestamp();
  218. if($curr < $expiry_date) {
  219. $n1 = "Baru/";
  220. }else{
  221. $n1 = "";
  222. }
  223. if(!empty($k->DeedLaw) && !empty($k->Department)){
  224. foreach($k->Department as $d){
  225. $tempJ[] = $d->jbkod;
  226. $jabatan = implode( ", ", $tempJ );
  227. }
  228. array_push($nested_data, array(
  229. 'jbkod' => $n1.$jabatan,
  230. 'akkod' => $k->DeedLaw->akkod,
  231. 'sketr' => $k->sketr,
  232. 'nama' => $k->nama,
  233. 'amount14' => $k->amount_before_14,
  234. 'amount30' => $k->amount_before_30,
  235. 'amount' => $k->amount,
  236. 'tindakan' => $k->_id,
  237. ));
  238. }
  239. }
  240. return \DataTables::of($nested_data)->make(true);
  241. }
  242. public function officerFaultyList($id)
  243. {
  244. $nested_data = array(); $jabatan = ''; $temp = [];
  245. $curr = Carbon::now()->getTimestamp();
  246. $department = Department::with(['Faulty' => function($q){
  247. $q->with('Department');
  248. }])->whereHas('StaffDetail', function($q) use ($id) {
  249. $q->where('_id', $id);
  250. })->get();
  251. if(!empty($department)){
  252. foreach ($department as $key => $de) {
  253. if(!empty($de->Faulty)){
  254. foreach ($de->Faulty as $key => $faulty) {
  255. if(!in_array($faulty->_id, (array)$temp)) {
  256. $temp[] = $faulty;
  257. }
  258. }
  259. }
  260. }
  261. }
  262. foreach($temp as $k)
  263. {
  264. $n1 = ''; $jabatan = '-';
  265. $reg_time = $k->updated_at;
  266. $expiry_date = $reg_time->addDays(3);
  267. $expiry_date = $expiry_date->getTimestamp();
  268. if($curr < $expiry_date) {
  269. $n1 = "Baru/";
  270. }else{
  271. $n1 = "";
  272. }
  273. $tempJ = [];
  274. foreach ($k->Department as $key => $d) {
  275. if(!empty($k->Department)){
  276. $tempJ[] = $d->jbkod;
  277. }
  278. }
  279. $jabatan = implode( ", ", $tempJ );
  280. if(!empty($temp)){
  281. foreach($temp as $d){
  282. array_push($nested_data, array(
  283. 'jbkod' => $n1.$jabatan,
  284. 'akkod' => $k->DeedLaw->akkod,
  285. 'sketr' => $k->sketr,
  286. 'nama' => $k->nama,
  287. 'amount14' => $k->amount_before_14,
  288. 'amount30' => $k->amount_before_30,
  289. 'amount' => $k->amount,
  290. 'tindakan' => $k->_id,
  291. ));
  292. }
  293. }
  294. }
  295. return \DataTables::of($nested_data)->make(true);
  296. }
  297. public function faultyListFilter($jbkod,$akkod)
  298. {
  299. $faulty = Faulty::where('department_ids',$jbkod)->where('deed_law_id', $akkod)->get();
  300. if(!empty($faulty)){
  301. return $this->sendResponse($faulty, 'Rekod Ditemui');
  302. }else{
  303. return $this->sendError('', 'Rekod Ditemui');
  304. }
  305. }
  306. public function faultyDetail(Request $request)
  307. {
  308. $jabatan = '-';
  309. $faulty = Faulty::with('DeedLaw','Department')->where('_id',$request->get('id'))->first();
  310. if(!empty($faulty)){
  311. if(!empty($faulty->Department)){
  312. foreach($faulty->Department as $d){
  313. $tempJ[] = $d->jbkod;
  314. $jabatan = implode( ", ", $tempJ );
  315. }
  316. }
  317. $data = [
  318. '_id' => $faulty->_id,
  319. 'jbkod' => $jabatan,
  320. 'akkod' => $faulty->DeedLaw->_id,
  321. 'itkod' => $faulty->itkod,
  322. 'sketr' => $faulty->sketr,
  323. 'nama' => $faulty->nama,
  324. 'amount14' => $faulty->amount_before_14,
  325. 'amount30' => $faulty->amount_before_30,
  326. 'amount' => $faulty->amount,
  327. ];
  328. return response()->json(['status' => 'true', 'desc' => $data]);
  329. }else{
  330. return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
  331. }
  332. }
  333. public function deleteFaulty(Request $request)
  334. {
  335. $faulty = Faulty::where('_id',$request->get('kid'))->first();
  336. if(!empty($faulty)){
  337. $faulty->department()->detach();
  338. $faulty->delete();
  339. return response()->json(['status' => 'true', 'desc' => 'Buang rekod seksyen/kesalahan ( '.$faulty->nama.' )']);
  340. }else{
  341. return response()->json(['status' => 'false', 'desc' => 'Buang rekod seksyen/kesalahan ( '.$faulty->nama.' )']);
  342. }
  343. }
  344. /**
  345. * Create fetch data deedlaw & faulty based on staff login.
  346. *
  347. * @return json
  348. */
  349. public function requestStaffDepartment(Request $request){
  350. $staff = Staff::with(['StaffDetail' => function($q){
  351. $q->with('Department');
  352. }])->where('api_token', $request->api_token)->first();
  353. $department = $staff->StaffDetail->Department;
  354. $data = array();
  355. if(!empty($staff)){
  356. if(!empty($department)){
  357. foreach ($department as $key => $k) {
  358. array_push($data, array(
  359. '_id' => $k->_id,
  360. 'jbkod' => $k->jbkod,
  361. 'nama' => '['.$k->jbkod.'] '.$k->jnama
  362. ));
  363. }
  364. return $this->sendResponse($data, 'Berjaya, mendapatkan akta kesalahan');
  365. }else{
  366. return $this->sendError('Gagal', 'Maaf, data akta kesalahan tidak ditemui');
  367. }
  368. }else {
  369. return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
  370. }
  371. }
  372. public function requestStaffDeedLaw(Request $request){
  373. $staff = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
  374. // $department = $request->department;
  375. // $deedlaw = DeedLaw::with('Department');
  376. // $deedlaw->whereHas('Department', function($q) use ($department) {
  377. // $q->whereIn('_id', $department);
  378. // });
  379. $temp = [];
  380. if(!empty($staff)){
  381. $data = array();
  382. $detail = StaffDetail::with(['Department' => function($q) {
  383. $q->with('DeedLaw');
  384. }])->where('_id', $staff->_id)->first();
  385. foreach ($detail->Department as $key => $d) {
  386. foreach ($d->DeedLaw as $key => $de) {
  387. if(!in_array($de->_id, array_column((array)$d->DeedLaw, '_id'))){
  388. $temp[] = $de;
  389. }
  390. }
  391. }
  392. if(!empty($temp)){
  393. foreach ($temp as $key => $k) {
  394. array_push($data, array(
  395. 'akkod' => $k->_id,
  396. 'tarikh' => $k->tarikh,
  397. 'nama' => '['.$k->akkod.'] '.$k->nama
  398. ));
  399. }
  400. return $this->sendResponse($data, 'Berjaya, mendapatkan akta kesalahan');
  401. }else{
  402. return $this->sendError('Gagal', 'Maaf, data akta kesalahan tidak ditemui');
  403. }
  404. }else {
  405. return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
  406. }
  407. }
  408. public function requestStaffFaulty(Request $request){
  409. $staff = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
  410. if(!empty($staff)){
  411. $data = array();
  412. $faulty = Faulty::with('Department')->where('deed_law_id', $request->akkod);
  413. $department = $request->department;
  414. $faulty->whereHas('Department', function($q) use ($department) {
  415. $q->where('_id', $department);
  416. });
  417. $faulty = $faulty->get();
  418. if(!empty($faulty)){
  419. foreach($faulty as $k){
  420. array_push($data, array(
  421. 'itkod' => $k->_id,
  422. 'sketr' => $k->sketr,
  423. 'nama' => '['.$k->sketr.'] '.$k->nama,
  424. 'jumlah' => $k->amount, //jumlah asal kompaun
  425. 'kadar_sebelum_14' => $k->amount_before_14, //kadar bayar sebelum 7 hari
  426. 'kadar_sebelum_30' => $k->amount_before_30, //kadar bayar sebelum 14 hari
  427. ));
  428. }
  429. return $this->sendResponse($data, 'Berjaya, mendapatkan seksyen kesalahan');
  430. }else {
  431. return $this->sendError('Gagal', 'Maaf, data seksyen kesalahan tidak ditemui');
  432. }
  433. }else {
  434. return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
  435. }
  436. }
  437. }