123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- <?php
-
- namespace App\Http\Controllers\api;
-
- use Illuminate\Http\Request;
- use App\Http\Controllers\Api\BaseController;
-
- use Config;
- use File;
- use Carbon\Carbon;
-
- use App\Model\Staff;
- use App\Model\StaffDetail;
- use App\Model\Module\Department;
- use App\Model\Module\DeedLaw;
- use App\Model\Module\Faulty;
-
- class DepartmentController extends BaseController
- {
-
- /**
- * Create a department list controller.
- *
- * @return json
- */
- public function departmentList()
- {
- $nested_data = array();
- $department = Department::orderBy('updated_at', 'desc')->get();
- $curr = Carbon::now()->getTimestamp();
-
- foreach($department as $a)
- {
- $n1 = '';
- $reg_time = $a->updated_at;
- $expiry_date = $reg_time->addDays(3);
- $expiry_date = $expiry_date->getTimestamp();
-
- if($curr < $expiry_date) {
- $n1 = "Baru/";
- }else{
- $n1 = "";
- }
-
- array_push($nested_data, array(
- 'jkod' => $n1.$a->jbkod,
- 'jnama' => $a->jnama,
- 'alam1' => $a->alam1,
- 'alam2' => $a->alam2,
- 'alam3' => $a->alam3,
- 'tindakan' => $a->_id
- ));
- }
- return \DataTables::of($nested_data)->make(true);
- }
-
- public function departmentDetail(Request $request)
- {
- $department = Department::where('_id',$request->get('id'))->first();
- if(!empty($department)){
- return response()->json(['status' => 'true', 'desc' => $department]);
- }else{
- return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
- }
- }
-
- public function deleteDepartment(Request $request)
- {
- $department = Department::where('_id',$request->get('jid'))->first();
- if(!empty($department)){
- $department->delete();
- return response()->json(['status' => 'true', 'desc' => 'Buang rekod jabatan ( '.$department->jnama.' )']);
- }else{
- return response()->json(['status' => 'false', 'desc' => 'Buang rekod jabatan ( '.$department->jnama.' )']);
- }
- }
-
- public function filterDepartmentBasedFaulty($id)
- {
- $data = array();
- $faulty = Faulty::with('Department')->where('_id',$id)->first();
- if(!empty($faulty)){
- if(!empty($faulty->Department)){
- foreach ($faulty->Department as $key => $k) {
- array_push($data, array(
- '_id' => $k->_id,
- 'nama' => '['.$k->jbkod.'] '.$k->jnama
- ));
- }
- }
- return $this->sendResponse($data, 'Rekod Ditemui');
- }else{
- return $this->sendError('', 'Rekod Ditemui');
- }
- }
-
- /**
- * Create a acts & uuk list controller.
- *
- * @return json
- */
- public function deedLawList()
- {
- $nested_data = array();
- $akta = DeedLaw::with('Department')->orderBy('updated_at', 'desc')->get();
- $curr = Carbon::now()->getTimestamp();
-
- foreach($akta as $key => $a)
- {
- $n1 = '';
- $reg_time = $a->updated_at;
- $expiry_date = $reg_time->addDays(3);
- $expiry_date = $expiry_date->getTimestamp();
-
- if($curr < $expiry_date) {
- $n1 = "Baru/";
- }else{
- $n1 = "";
- }
-
- $temp = [];
- if(!empty($a->Department)){
- foreach ($a->Department as $key => $d) {
- $temp[] = $d->jbkod;
- $jabatan = implode( ", ", $temp );
- }
- }else{
- $jabatan = '-';
- }
-
- array_push($nested_data, array(
- 'tarikh' => $n1.$a->tarikh,
- 'jbkod' => $jabatan,
- 'nama' => $a->nama,
- 'tindakan' => $a->_id
- ));
-
- }
- return \DataTables::of($nested_data)->make(true);
- }
-
- public function officerDeedLawList($id)
- {
- $nested_data = array(); $temp = [];
- $curr = Carbon::now()->getTimestamp();
-
- $department = Department::with(['DeedLaw' => function($q){
- $q->with('Department');
- }])->whereHas('StaffDetail', function($q) use ($id) {
- $q->where('_id', $id);
- })->get();
-
- if(!empty($department)){
- foreach ($department as $key => $de) {
- if(!empty($de->DeedLaw)){
- foreach ($de->DeedLaw as $key => $law) {
- if(!in_array($law->_id, (array)$temp)) {
- $temp[] = $law;
- }
- }
- }
- }
- }
-
- if(!empty($temp)){
- foreach($temp as $a) {
- $n1 = ''; $jabatan = '-';
- $reg_time = $a['updated_at'];
- $expiry_date = $reg_time->addDays(3);
- $expiry_date = $expiry_date->getTimestamp();
-
- if($curr < $expiry_date) {
- $n1 = "Baru/";
- }else{
- $n1 = "";
- }
-
- $tempJ = [];
- foreach ($a->Department as $key => $d) {
- if(!empty($a->Department)){
- $tempJ[] = $d->jbkod;
- }
- }
-
- $jabatan = implode( ", ", $tempJ );
-
- array_push($nested_data, array(
- 'tarikh' => $n1.$a->tarikh,
- 'jbkod' => $jabatan,
- 'nama' => $a->nama,
- 'tindakan' => $a->_id
- ));
-
- }
- }
- return \DataTables::of($nested_data)->make(true);
- }
-
- public function deedLawDetail(Request $request)
- {
- $akta = DeedLaw::where('_id',$request->get('id'))->first();
- if(!empty($akta)){
- return response()->json(['status' => 'true', 'desc' => $akta]);
- }else{
- return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
- }
- }
-
- public function deleteDeedLaw(Request $request)
- {
- $akta = DeedLaw::where('_id',$request->get('aid'))->first();
- if(!empty($akta)){
- $akta->department()->detach();
- $akta->delete();
- return response()->json(['status' => 'true', 'desc' => 'Buang rekod akta/uuk ( '.$akta->nama.' )']);
- }else{
- return response()->json(['status' => 'false', 'desc' => '( Buang rekod akta/uuk ( '.$akta->nama.' )']);
- }
- }
-
- public function getDeedlawBasedFaulty($id)
- {
- $data = array();
- $faulty = Faulty::with('DeedLaw')->where('_id',$id)->first();
- if(!empty($faulty)){
- if(!empty($faulty->DeedLaw)){
- return $this->sendResponse($faulty->DeedLaw->nama, 'Rekod Ditemui');
- }
- }else{
- return $this->sendError('', 'Rekod Ditemui');
- }
- }
-
- /**
- * Create a faulty list controller.
- *
- * @return json
- */
- public function faultyList()
- {
- $nested_data = array(); $jabatan = '-'; $n1 = '';
- $faulty = Faulty::with('DeedLaw','Department')->orderBy('updated_at', 'DESC')->get();
- $curr = Carbon::now()->getTimestamp();
-
- foreach($faulty as $k) {
-
- $tempJ = []; $jabatan = '-';
- $reg_time = $k->updated_at;
- $expiry_date = $reg_time->addDays(3);
- $expiry_date = $expiry_date->getTimestamp();
-
- if($curr < $expiry_date) {
- $n1 = "Baru/";
- }else{
- $n1 = "";
- }
-
- if(!empty($k->DeedLaw) && !empty($k->Department)){
-
- foreach($k->Department as $d){
- $tempJ[] = $d->jbkod;
- $jabatan = implode( ", ", $tempJ );
- }
-
- array_push($nested_data, array(
- 'jbkod' => $n1.$jabatan,
- 'akkod' => $k->DeedLaw->akkod,
- 'nakkod' => $k->DeedLaw->nama,
- 'sketr' => $k->sketr,
- 'nama' => $k->nama,
- 'amount14' => $k->amount_before_14,
- 'amount30' => $k->amount_before_30,
- 'amount' => $k->amount,
- 'tindakan' => $k->_id,
- ));
- }
-
- }
- return \DataTables::of($nested_data)->make(true);
- }
-
- public function officerFaultyList($id)
- {
- $nested_data = array(); $jabatan = ''; $temp = [];
- $curr = Carbon::now()->getTimestamp();
-
- $department = Department::with(['Faulty' => function($q){
- $q->with('Department');
- }])->whereHas('StaffDetail', function($q) use ($id) {
- $q->where('_id', $id);
- })->get();
-
- if(!empty($department)){
- foreach ($department as $key => $de) {
- if(!empty($de->Faulty)){
- foreach ($de->Faulty as $key => $faulty) {
- if(!in_array($faulty->_id, (array)$temp)) {
- $temp[] = $faulty;
- }
- }
- }
- }
- }
-
- foreach($temp as $k)
- {
- $n1 = ''; $jabatan = '-';
- $reg_time = $k->updated_at;
- $expiry_date = $reg_time->addDays(3);
- $expiry_date = $expiry_date->getTimestamp();
-
- if($curr < $expiry_date) {
- $n1 = "Baru/";
- }else{
- $n1 = "";
- }
-
- $tempJ = [];
- foreach ($k->Department as $key => $d) {
- if(!empty($k->Department)){
- $tempJ[] = $d->jbkod;
- }
- }
-
- $jabatan = implode( ", ", $tempJ );
-
- if(!empty($temp)){
- foreach($temp as $d){
- array_push($nested_data, array(
- 'jbkod' => $n1.$jabatan,
- 'akkod' => $k->DeedLaw->akkod,
- 'sketr' => $k->sketr,
- 'nama' => $k->nama,
- 'amount14' => $k->amount_before_14,
- 'amount30' => $k->amount_before_30,
- 'amount' => $k->amount,
- 'tindakan' => $k->_id,
- ));
- }
- }
- }
- return \DataTables::of($nested_data)->make(true);
- }
-
- public function faultyListFilter($jbkod,$akkod)
- {
- $faulty = Faulty::where('department_ids',$jbkod)->where('deed_law_id', $akkod)->get();
- if(!empty($faulty)){
- return $this->sendResponse($faulty, 'Rekod Ditemui');
- }else{
- return $this->sendError('', 'Rekod Ditemui');
- }
- }
-
- public function faultyDetail(Request $request)
- {
- $jabatan = '-';
- $faulty = Faulty::with('DeedLaw','Department')->where('_id',$request->get('id'))->first();
- if(!empty($faulty)){
-
- if(!empty($faulty->Department)){
- foreach($faulty->Department as $d){
- $tempJ[] = $d->jbkod;
- $jabatan = implode( ", ", $tempJ );
- }
- }
-
- $data = [
- '_id' => $faulty->_id,
- 'jbkod' => $jabatan,
- 'akkod' => $faulty->DeedLaw->_id,
- 'itkod' => $faulty->itkod,
- 'sketr' => $faulty->sketr,
- 'nama' => $faulty->nama,
- 'amount14' => $faulty->amount_before_14,
- 'amount30' => $faulty->amount_before_30,
- 'amount' => $faulty->amount,
- ];
- return response()->json(['status' => 'true', 'desc' => $data]);
- }else{
- return response()->json(['status' => 'false', 'desc' => 'Rekod ini tidak ditemui']);
- }
- }
-
- public function deleteFaulty(Request $request)
- {
- $faulty = Faulty::where('_id',$request->get('kid'))->first();
- if(!empty($faulty)){
- $faulty->department()->detach();
- $faulty->delete();
- return response()->json(['status' => 'true', 'desc' => 'Buang rekod seksyen/kesalahan ( '.$faulty->nama.' )']);
- }else{
- return response()->json(['status' => 'false', 'desc' => 'Buang rekod seksyen/kesalahan ( '.$faulty->nama.' )']);
- }
- }
-
- /**
- * Create fetch data deedlaw & faulty based on staff login.
- *
- * @return json
- */
-
- public function requestStaffDepartment(Request $request){
-
- $staff = Staff::with(['StaffDetail' => function($q){
- $q->with('Department');
- }])->where('api_token', $request->api_token)->first();
- $department = $staff->StaffDetail->Department;
-
- $data = array();
- if(!empty($staff)){
- if(!empty($department)){
- foreach ($department as $key => $k) {
- array_push($data, array(
- '_id' => $k->_id,
- 'jbkod' => $k->jbkod,
- 'nama' => '['.$k->jbkod.'] '.$k->jnama
- ));
- }
- return $this->sendResponse($data, 'Berjaya, mendapatkan akta kesalahan');
- }else{
- return $this->sendError('Gagal', 'Maaf, data akta kesalahan tidak ditemui');
- }
- }else {
- return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
- }
- }
-
-
- public function requestStaffDeedLaw(Request $request){
-
- $staff = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
-
- // $department = $request->department;
- // $deedlaw = DeedLaw::with('Department');
- // $deedlaw->whereHas('Department', function($q) use ($department) {
- // $q->whereIn('_id', $department);
- // });
-
- $temp = [];
- if(!empty($staff)){
- $data = array();
-
- $detail = StaffDetail::with(['Department' => function($q) {
- $q->with('DeedLaw');
- }])->where('_id', $staff->_id)->first();
-
- foreach ($detail->Department as $key => $d) {
- foreach ($d->DeedLaw as $key => $de) {
- if(!in_array($de->_id, array_column((array)$d->DeedLaw, '_id'))){
- $temp[] = $de;
- }
- }
- }
-
- if(!empty($temp)){
- foreach ($temp as $key => $k) {
- array_push($data, array(
- 'akkod' => $k->_id,
- 'tarikh' => $k->tarikh,
- 'nama' => '['.$k->akkod.'] '.$k->nama
- ));
- }
- return $this->sendResponse($data, 'Berjaya, mendapatkan akta kesalahan');
- }else{
- return $this->sendError('Gagal', 'Maaf, data akta kesalahan tidak ditemui');
- }
- }else {
- return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
- }
- }
-
- public function requestStaffFaulty(Request $request){
-
- $staff = Staff::with('StaffDetail')->where('api_token', $request->api_token)->first();
-
- if(!empty($staff)){
- $data = array();
- $faulty = Faulty::with('Department')->where('deed_law_id', $request->akkod);
- $department = $request->department;
- $faulty->whereHas('Department', function($q) use ($department) {
- $q->where('_id', $department);
- });
- $faulty = $faulty->get();
-
- if(!empty($faulty)){
- foreach($faulty as $k){
- array_push($data, array(
- 'itkod' => $k->_id,
- 'sketr' => $k->sketr,
- 'nama' => '['.$k->sketr.'] '.$k->nama,
- 'jumlah' => $k->amount, //jumlah asal kompaun
- 'kadar_sebelum_14' => $k->amount_before_14, //kadar bayar sebelum 7 hari
- 'kadar_sebelum_30' => $k->amount_before_30, //kadar bayar sebelum 14 hari
- ));
- }
- return $this->sendResponse($data, 'Berjaya, mendapatkan seksyen kesalahan');
- }else {
- return $this->sendError('Gagal', 'Maaf, data seksyen kesalahan tidak ditemui');
- }
-
- }else {
- return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak wujud');
- }
- }
- }
|