Dashboard sipadu mbip
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

DepartmentController.php 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  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. 'nakkod' => $k->DeedLaw->nama,
  232. 'sketr' => $k->sketr,
  233. 'nama' => $k->nama,
  234. 'amount14' => $k->amount_before_14,
  235. 'amount30' => $k->amount_before_30,
  236. 'amount' => $k->amount,
  237. 'tindakan' => $k->_id,
  238. ));
  239. }
  240. }
  241. return \DataTables::of($nested_data)->make(true);
  242. }
  243. public function officerFaultyList($id)
  244. {
  245. $nested_data = array(); $jabatan = ''; $temp = [];
  246. $curr = Carbon::now()->getTimestamp();
  247. $department = Department::with(['Faulty' => function($q){
  248. $q->with('Department');
  249. }])->whereHas('StaffDetail', function($q) use ($id) {
  250. $q->where('_id', $id);
  251. })->get();
  252. if(!empty($department)){
  253. foreach ($department as $key => $de) {
  254. if(!empty($de->Faulty)){
  255. foreach ($de->Faulty as $key => $faulty) {
  256. if(!in_array($faulty->_id, (array)$temp)) {
  257. $temp[] = $faulty;
  258. }
  259. }
  260. }
  261. }
  262. }
  263. foreach($temp as $k)
  264. {
  265. $n1 = ''; $jabatan = '-';
  266. $reg_time = $k->updated_at;
  267. $expiry_date = $reg_time->addDays(3);
  268. $expiry_date = $expiry_date->getTimestamp();
  269. if($curr < $expiry_date) {
  270. $n1 = "Baru/";
  271. }else{
  272. $n1 = "";
  273. }
  274. $tempJ = [];
  275. foreach ($k->Department as $key => $d) {
  276. if(!empty($k->Department)){
  277. $tempJ[] = $d->jbkod;
  278. }
  279. }
  280. $jabatan = implode( ", ", $tempJ );
  281. if(!empty($temp)){
  282. foreach($temp as $d){
  283. array_push($nested_data, array(
  284. 'jbkod' => $n1.$jabatan,
  285. 'akkod' => $k->DeedLaw->akkod,
  286. 'sketr' => $k->sketr,
  287. 'nama' => $k->nama,
  288. 'amount14' => $k->amount_before_14,
  289. 'amount30' => $k->amount_before_30,
  290. 'amount' => $k->amount,
  291. 'tindakan' => $k->_id,
  292. ));
  293. }
  294. }
  295. }
  296. return \DataTables::of($nested_data)->make(true);
  297. }
  298. public function faultyListFilter($jbkod,$akkod)
  299. {
  300. $faulty = Faulty::where('department_ids',$jbkod)->where('deed_law_id', $akkod)->get();
  301. if(!empty($faulty)){
  302. return $this->sendResponse($faulty, 'Rekod Ditemui');
  303. }else{
  304. return $this->sendError('', 'Rekod Ditemui');
  305. }
  306. }
  307. public function faultyDetail(Request $request)
  308. {
  309. $jabatan = '-';
  310. $faulty = Faulty::with('DeedLaw','Department')->where('_id',$request->get('id'))->first();
  311. if(!empty($faulty)){
  312. if(!empty($faulty->Department)){
  313. foreach($faulty->Department as $d){
  314. $tempJ[] = $d->jbkod;
  315. $jabatan = implode( ", ", $tempJ );
  316. }
  317. }
  318. $data = [
  319. '_id' => $faulty->_id,
  320. 'jbkod' => $jabatan,
  321. 'akkod' => $faulty->DeedLaw->_id,
  322. 'itkod' => $faulty->itkod,
  323. 'sketr' => $faulty->sketr,
  324. 'nama' => $faulty->nama,
  325. 'amount14' => $faulty->amount_before_14,
  326. 'amount30' => $faulty->amount_before_30,
  327. 'amount' => $faulty->amount,
  328. ];
  329. return response()->json(['status' => 'true', 'desc' => $data]);
  330. }else{
  331. return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
  332. }
  333. }
  334. public function deleteFaulty(Request $request)
  335. {
  336. $faulty = Faulty::where('_id',$request->get('kid'))->first();
  337. if(!empty($faulty)){
  338. $faulty->department()->detach();
  339. $faulty->delete();
  340. return response()->json(['status' => 'true', 'desc' => 'Buang rekod seksyen/kesalahan ( '.$faulty->nama.' )']);
  341. }else{
  342. return response()->json(['status' => 'false', 'desc' => 'Buang rekod seksyen/kesalahan ( '.$faulty->nama.' )']);
  343. }
  344. }
  345. /**
  346. * Create fetch data deedlaw & faulty based on staff login.
  347. *
  348. * @return json
  349. */
  350. public function requestStaffDepartment(Request $request){
  351. $staff = Staff::with(['StaffDetail' => function($q){
  352. $q->with('Department');
  353. }])->where('api_token', $request->api_token)->first();
  354. $department = $staff->StaffDetail->Department;
  355. $data = array();
  356. if(!empty($staff)){
  357. if(!empty($department)){
  358. foreach ($department as $key => $k) {
  359. array_push($data, array(
  360. '_id' => $k->_id,
  361. 'jbkod' => $k->jbkod,
  362. 'nama' => '['.$k->jbkod.'] '.$k->jnama
  363. ));
  364. }
  365. return $this->sendResponse($data, 'Berjaya, mendapatkan akta kesalahan');
  366. }else{
  367. return $this->sendError('Gagal', 'Maaf, data akta kesalahan tidak ditemui');
  368. }
  369. }else {
  370. return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
  371. }
  372. }
  373. public function requestStaffDeedLaw(Request $request){
  374. $staff = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
  375. // $department = $request->department;
  376. // $deedlaw = DeedLaw::with('Department');
  377. // $deedlaw->whereHas('Department', function($q) use ($department) {
  378. // $q->whereIn('_id', $department);
  379. // });
  380. $temp = [];
  381. if(!empty($staff)){
  382. $data = array();
  383. $detail = StaffDetail::with(['Department' => function($q) {
  384. $q->with('DeedLaw');
  385. }])->where('_id', $staff->_id)->first();
  386. foreach ($detail->Department as $key => $d) {
  387. foreach ($d->DeedLaw as $key => $de) {
  388. if(!in_array($de->_id, array_column((array)$d->DeedLaw, '_id'))){
  389. $temp[] = $de;
  390. }
  391. }
  392. }
  393. if(!empty($temp)){
  394. foreach ($temp as $key => $k) {
  395. array_push($data, array(
  396. 'akkod' => $k->_id,
  397. 'tarikh' => $k->tarikh,
  398. 'nama' => '['.$k->akkod.'] '.$k->nama
  399. ));
  400. }
  401. return $this->sendResponse($data, 'Berjaya, mendapatkan akta kesalahan');
  402. }else{
  403. return $this->sendError('Gagal', 'Maaf, data akta kesalahan tidak ditemui');
  404. }
  405. }else {
  406. return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
  407. }
  408. }
  409. public function requestStaffFaulty(Request $request){
  410. $staff = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
  411. if(!empty($staff)){
  412. $data = array();
  413. $faulty = Faulty::with('Department')->where('deed_law_id', $request->akkod);
  414. $department = $request->department;
  415. $faulty->whereHas('Department', function($q) use ($department) {
  416. $q->where('_id', $department);
  417. });
  418. $faulty = $faulty->get();
  419. if(!empty($faulty)){
  420. foreach($faulty as $k){
  421. array_push($data, array(
  422. 'itkod' => $k->_id,
  423. 'sketr' => $k->sketr,
  424. 'nama' => '['.$k->sketr.'] '.$k->nama,
  425. 'jumlah' => $k->amount, //jumlah asal kompaun
  426. 'kadar_sebelum_14' => $k->amount_before_14, //kadar bayar sebelum 7 hari
  427. 'kadar_sebelum_30' => $k->amount_before_30, //kadar bayar sebelum 14 hari
  428. ));
  429. }
  430. return $this->sendResponse($data, 'Berjaya, mendapatkan seksyen kesalahan');
  431. }else {
  432. return $this->sendError('Gagal', 'Maaf, data seksyen kesalahan tidak ditemui');
  433. }
  434. }else {
  435. return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
  436. }
  437. }
  438. }