Skip to content

Commit c5973b7

Browse files
committed
Rev update approval for Direksi - CP leaves
1 parent 584cd29 commit c5973b7

File tree

5 files changed

+387
-0
lines changed

5 files changed

+387
-0
lines changed

app/Http/Controllers/LeavesController.php

+50
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,56 @@ public function declineTwo($employee_id) {
138138
return redirect()->back();
139139
}
140140
}
141+
// 2. INDEX APPROVAL CUTI - LEVEL 3 - DIREKSI
142+
public function leavesApprove3() {
143+
$leaves = DB::table('leaves_admin')
144+
->join('employee', 'employee.employee_id', '=', 'leaves_admin.user_id')
145+
->select('leaves_admin.*', 'employee.position','employee.name',
146+
'employee.department','leaves_admin.stat_app1','leaves_admin.stat_app2',
147+
'leaves_admin.stat_app3')
148+
->where('leaves_admin.data_status','=','ACTIVE')
149+
->where('leaves_admin.stat_app2','=','Approve')
150+
->where('leaves_admin.stat_app3','=','Wait')
151+
->get();
152+
153+
return view('form.leavesapprove3', compact('leaves'));
154+
}
155+
156+
157+
158+
// 2.1. APPROVAL LEVEL 3
159+
public function approveThree($employee_id) {
160+
// DB::beginTransaction();
161+
try{
162+
LeavesAdmin::where('id',$employee_id)
163+
->update(['stat_app3' => 'Approve']);
164+
165+
// DB::commit();
166+
Toastr::success('Approve Permit Success :)','Success');
167+
return redirect()->route('form/leavesApprove3');
168+
}catch(\Exception $e){
169+
// DB::rollback();
170+
Toastr::error('Approve Permit Fail :)','Error');
171+
return redirect()->back();
172+
}
173+
}
174+
175+
// 2.2 DECLINE LEVEL 3
176+
public function declineThree($employee_id) {
177+
// DB::beginTransaction();
178+
try{
179+
LeavesAdmin::where('id',$employee_id)
180+
->update(['data_status' => 'NOT ACTIVE']);
181+
182+
// DB::commit();
183+
Toastr::success('Decline Permit Success :)','Success');
184+
return redirect()->route('form/leavesApprove3');
185+
}catch(\Exception $e){
186+
// DB::rollback();
187+
Toastr::error('Decline Permit Fail :)','Error');
188+
return redirect()->back();
189+
}
190+
}
141191

142192

143193

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
@extends('layouts.masterapproval2')
2+
@section('content')
3+
<!-- Page Wrapper -->
4+
<div class="page-wrapper">
5+
<!-- Page Content -->
6+
<div class="content container-fluid">
7+
<!-- Page Header -->
8+
<div class="page-header">
9+
<div class="row align-items-center">
10+
<div class="col">
11+
<h3 class="page-title">Approval Direksi Leave Permit <span id="year"></span></h3>
12+
<ul class="breadcrumb">
13+
<li class="breadcrumb-item"><a href="{{ route('home') }}">Approval</a></li>
14+
<li class="breadcrumb-item active">Leaves Permit</li>
15+
</ul>
16+
</div>
17+
{{-- <div class="col-auto float-right ml-auto">
18+
<a href="#" class="btn add-btn" data-toggle="modal" data-target="#add_leave"><i class="fa fa-plus"></i> Add Leave</a>
19+
</div> --}}
20+
</div>
21+
</div>
22+
23+
24+
<!-- /Page Header -->
25+
{{-- message --}}
26+
{!! Toastr::message() !!}
27+
<div class="row">
28+
<div class="col-md-12">
29+
<div class="table-responsive">
30+
<table class="table table-striped custom-table mb-0 datatable">
31+
<thead>
32+
<tr>
33+
<th class="text-center">Approve ?</th>
34+
<th>Status</th>
35+
<th>Employee</th>
36+
<th>Type</th>
37+
<th>From</th>
38+
<th>To</th>
39+
<th>No of Days</th>
40+
<th>Remain of Leaves</th>
41+
<th>Reason</th>
42+
</tr>
43+
</thead>
44+
45+
<tbody>
46+
@if(!empty($leaves))
47+
@foreach ($leaves as $items )
48+
<tr>
49+
<td hidden class="id">{{ $items->id }}</td>
50+
<td class="text-center">
51+
<div class="dropdown dropdown-action">
52+
<a href="#" class="action-icon dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-eye fa-lg"></i></i></a>
53+
<div class="dropdown-menu dropdown-menu-right">
54+
<a class="dropdown-item" href="{{url('form/leavesApprove/app2/acc/'.$items->id) }}"onclick="return confirm('Are you sure to want to approve it?')"><i class="fa fa-check m-r-5"></i> Approve</a>
55+
<a class="dropdown-item" href="{{url('form/leavesApprove/app2/decline/'.$items->id) }}"onclick="return confirm('Are you sure to want to decline it?')"><i class="fa fa-trash-o m-r-5"></i> Decline</a>
56+
</div>
57+
</div>
58+
</td>
59+
<td class="statusApp_Edit">{{ $items->stat_app3 }}</td>
60+
<td><h2 class="table-avatar"><a>{{ $items->name }}<span>{{ $items->position }}</span></a></h2></td>
61+
<td class="leave_type">{{$items->leave_type}}</td>
62+
<td hidden class="from_date">{{ $items->from_date }}</td>
63+
<td>{{date('d F, Y',strtotime($items->from_date)) }}</td>
64+
<td hidden class="to_date">{{$items->to_date}}</td>
65+
<td>{{date('d F, Y',strtotime($items->to_date)) }}</td>
66+
<td class="day">{{$items->day}} Day</td>
67+
<td class="remain_cuti">{{$items->remain_cuti}} Day</td>
68+
<td class="leave_reason">{{$items->leave_reason}}</td>
69+
</tr>
70+
@endforeach
71+
@endif
72+
</tbody>
73+
</table>
74+
</div>
75+
</div>
76+
</div>
77+
</div>
78+
<!-- /Page Content -->
79+
80+
{{-- Modals 2 Button Decline / Approve --}}
81+
<div id="approveLeaves" class="modal custom-modal-fade" role="dialog">
82+
<div class="modal-dialog modal-dialog-centered" role="document">
83+
<div class="modal-content">
84+
{{-- <div class="modal-header">
85+
<h5 class="modal-title">Update Approval Leaves</h5>
86+
</div> --}}
87+
<div class="modal-body">
88+
<div class="form-header">
89+
<h3>Approve or Decline Permit ?</h3>
90+
</div>
91+
<div class="modal-btn delete-action">
92+
{{-- <form action="#" method="post">
93+
@csrf
94+
<input type="hidden" name="id" class="" value=""> --}}
95+
{{-- <div class="row">
96+
<div class="col-6">
97+
<a class="btn btn-primary continue-btn" href="javascript:void(0);">Approve</a>
98+
</div>
99+
<div class="col-6">
100+
<a class="btn btn-primary continue-btn" href="{{ url('form/leavesApprove/app2/decline/'.$items->id) }}" onclick="return confirm('Yakin Decline ?')">Decline</a>
101+
</div>
102+
</div> --}}
103+
{{-- </form> --}}
104+
</div>
105+
</div>
106+
</div>
107+
</div>
108+
</div>
109+
{{-- /Modals 2 Button Decline / Approve --}}
110+
</div>
111+
<!-- /Page Wrapper -->
112+
@section('script')
113+
<script>
114+
$(document).on('click','.update_Status',function()
115+
{
116+
var _this = $(this).parents('tr');
117+
$('#editStatus_id').val(_this.find('.id').text());
118+
$('#statusApp_Edit').val(_this.find('.statusApp_Edit').text());
119+
$('#statusHidd_Edit').val(_this.find('.statusHidd_Edit').text());
120+
});
121+
</script>
122+
@endsection
123+
@endsection
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
7+
<meta name="description" content="SoengSouy Admin Template">
8+
<meta name="keywords" content="admin, estimates, bootstrap, business, corporate, creative, management, minimal, modern, accounts, invoice, html5, responsive, CRM, Projects">
9+
<meta name="author" content="SoengSouy Admin Template">
10+
<meta name="robots" content="noindex, nofollow">
11+
<title>Dashboard - E-PERMIT TCH</title>
12+
<!-- favicon1 -->
13+
<link rel="shortcut icon" type="image/x-icon" href="{{ URL::to('assets/img/logotch.png') }}">
14+
<!-- Bootstrap CSS -->
15+
<link rel="stylesheet" href="{{ URL::to('assets/css/bootstrap.min.css') }}">
16+
<!-- Fontawesome CSS -->
17+
<link rel="stylesheet" href="{{ URL::to('assets/css/font-awesome.min.css') }}">
18+
<!-- Lineawesome CSS -->
19+
<link rel="stylesheet" href="{{ URL::to('assets/css/line-awesome.min.css') }}">
20+
<!-- Datatable CSS -->
21+
<link rel="stylesheet" href="{{ URL::to('assets/css/dataTables.bootstrap4.min.css') }}">
22+
<!-- Select2 CSS -->
23+
<link rel="stylesheet" href="{{ URL::to('assets/css/select2.min.css') }}">
24+
<!-- Datetimepicker CSS -->
25+
<link rel="stylesheet" href="{{ URL::to('assets/css/bootstrap-datetimepicker.min.css') }}">
26+
<!-- Chart CSS -->
27+
<link rel="stylesheet" href="{{ URL::to('ssets/plugins/morris/morris.css') }}">
28+
<!-- Main CSS -->
29+
<link rel="stylesheet" href="{{ URL::to('assets/css/style.css') }}">
30+
31+
{{-- message toastr --}}
32+
<link rel="stylesheet" href="{{ URL::to('assets/css/toastr.min.css') }}">
33+
<script src="{{ URL::to('assets/js/toastr_jquery.min.js') }}"></script>
34+
<script src="{{ URL::to('assets/js/toastr.min.js') }}"></script>
35+
</head>
36+
37+
<body>
38+
<style>
39+
.invalid-feedback{
40+
font-size: 14px;
41+
}
42+
</style>
43+
<!-- Main Wrapper -->
44+
<div class="main-wrapper">
45+
46+
<!-- Loader -->
47+
<div id="loader-wrapper">
48+
<div id="loader">
49+
<div class="loader-ellips">
50+
<span class="loader-ellips__dot"></span>
51+
<span class="loader-ellips__dot"></span>
52+
<span class="loader-ellips__dot"></span>
53+
<span class="loader-ellips__dot"></span>
54+
</div>
55+
</div>
56+
</div>
57+
<!-- /Loader -->
58+
59+
<!-- Header -->
60+
<div class="header">
61+
<!-- Logo -->
62+
<div class="header-left">
63+
<a href="{{ route('home') }}" class="logo">
64+
<img src="{{ URL::to('/assets/images/'. Auth::user()->avatar) }}" width="40" height="40" alt="">
65+
</a>
66+
</div>
67+
<!-- /Logo -->
68+
<a id="toggle_btn" href="javascript:void(0);">
69+
<span class="bar-icon">
70+
<span></span>
71+
<span></span>
72+
<span></span>
73+
</span>
74+
</a>
75+
<!-- Header Title -->
76+
<div class="page-title-box">
77+
<h3>Hi, {{ Session::get('name') }}</h3>
78+
</div>
79+
<!-- /Header Title -->
80+
<a id="mobile_btn" class="mobile_btn" href="#sidebar"><i class="fa fa-bars"></i></a>
81+
<!-- Header Menu -->
82+
<ul class="nav user-menu">
83+
<!-- Search -->
84+
<li class="nav-item">
85+
<div class="top-nav-search">
86+
<a href="javascript:void(0);" class="responsive-search"> <i class="fa fa-search"></i> </a>
87+
<form action="search.html">
88+
<input class="form-control" type="text" placeholder="Search here">
89+
<button class="btn" type="submit">
90+
<i class="fa fa-search"></i>
91+
</button>
92+
</form>
93+
</div>
94+
</li>
95+
<!-- /Search -->
96+
97+
98+
<li class="nav-item dropdown has-arrow main-drop">
99+
<a href="#" class="dropdown-toggle nav-link" data-toggle="dropdown">
100+
<span class="user-img">
101+
<img src="{{ URL::to('/assets/images/'. Auth::user()->avatar) }}" alt="{{ Auth::user()->name }}">
102+
<span class="status online"></span></span>
103+
<span>{{ Session::get('name') }}</span>
104+
</a>
105+
<div class="dropdown-menu">
106+
<a class="dropdown-item" href="{{ route('profile_user') }}">My Profile</a>
107+
<a class="dropdown-item" href="{{ route('company/settings/page') }}">Settings</a>
108+
<a class="dropdown-item" href="{{ route('logout') }}">Logout</a>
109+
</div>
110+
</li>
111+
</ul>
112+
<!-- /Header Menu -->
113+
114+
<!-- Mobile Menu -->
115+
<div class="dropdown mobile-user-menu">
116+
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
117+
<i class="fa fa-ellipsis-v"></i>
118+
</a>
119+
<div class="dropdown-menu dropdown-menu-right">
120+
<a class="dropdown-item" href="{{ route('profile_user') }}">My Profile</a>
121+
<a class="dropdown-item" href="{{ route('company/settings/page') }}">Settings</a>
122+
<a class="dropdown-item" href="{{ route('logout') }}">Logout</a>
123+
</div>
124+
</div>
125+
<!-- /Mobile Menu -->
126+
127+
</div>
128+
<!-- /Header -->
129+
<!-- Sidebar -->
130+
@include('sidebar.sidebarapprove3')
131+
<!-- /Sidebar -->
132+
<!-- Page Wrapper -->
133+
@yield('content')
134+
<!-- /Page Wrapper -->
135+
</div>
136+
<!-- /Main Wrapper -->
137+
138+
<!-- jQuery -->
139+
<script src="{{ URL::to('assets/js/jquery-3.5.1.min.js') }}"></script>
140+
<!-- Bootstrap Core JS -->
141+
<script src="{{ URL::to('assets/js/popper.min.js') }}"></script>
142+
<script src="{{ URL::to('assets/js/bootstrap.min.js') }}"></script>
143+
<!-- Chart JS -->
144+
<script src="{{ URL::to('assets/plugins/morris/morris.min.js') }}"></script>
145+
<script src="{{ URL::to('assets/plugins/raphael/raphael.min.js') }}"></script>
146+
<script src="{{ URL::to('assets/js/chart.js') }}"></script>
147+
<script src="{{ URL::to('assets/js/Chart.min.js') }}"></script>
148+
<script src="{{ URL::to('assets/js/line-chart.js') }}"></script>
149+
<!-- Slimscroll JS -->
150+
<script src="{{ URL::to('assets/js/jquery.slimscroll.min.js') }}"></script>
151+
<!-- Select2 JS -->
152+
<script src="{{ URL::to('assets/js/select2.min.js') }}"></script>
153+
<!-- Datetimepicker JS -->
154+
<script src="{{ URL::to('assets/js/moment.min.js') }}"></script>
155+
<script src="{{ URL::to('assets/js/bootstrap-datetimepicker.min.js') }}"></script>
156+
<!-- Datatable JS -->
157+
<script src="{{ URL::to('assets/js/jquery.dataTables.min.js') }}"></script>
158+
<script src="{{ URL::to('assets/js/dataTables.bootstrap4.min.js') }}"></script>
159+
<!-- Multiselect JS -->
160+
<script src="{{ URL::to('assets/js/multiselect.min.js') }}"></script>
161+
<!-- Custom JS -->
162+
<script src="{{ URL::to('assets/js/app.js') }}"></script>
163+
@yield('script')
164+
</body>
165+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<!-- Sidebar -->
2+
<div class="sidebar" id="sidebar">
3+
<div class="sidebar-inner slimscroll">
4+
<div id="sidebar-menu" class="sidebar-menu">
5+
<ul>
6+
<li class="menu-title">
7+
<h1>
8+
<span>E-PERMIT</span>
9+
</h1>
10+
</li>
11+
12+
@if (Auth::user()->role_name=='Manager')
13+
{{-- <li class="menu-title"> <span>Authentication</span> </li>
14+
<li class="{{set_active(['search/user/list','userManagement','activity/log','activity/login/logout'])}} submenu">
15+
<a href="#" class="{{ set_active(['search/user/list','userManagement','activity/log','activity/login/logout']) ? 'noti-dot' : '' }}">
16+
<i class="la la-user-secret"></i> <span> User Controller</span> <span class="menu-arrow"></span>
17+
</a>
18+
<ul style="{{ request()->is('/*') ? 'display: block;' : 'display: none;' }}">
19+
<li><a class="{{set_active(['search/user/list','userManagement'])}}" href="{{ route('userManagement') }}">All User</a></li>
20+
<li><a class="{{set_active(['activity/log'])}}" href="{{ route('activity/log') }}">Activity Log</a></li>
21+
<li><a class="{{set_active(['activity/login/logout'])}}" href="{{ route('activity/login/logout') }}">Activity User</a></li>
22+
</ul>
23+
</li> --}}
24+
@endif
25+
26+
<li class="menu-title"> <span>Menu Approval Direktur</span> </li>
27+
<li class="{{set_active(['create/estimate/page','form/estimates/page','payments','expenses/page'])}} submenu">
28+
<a href="#" class="{{ set_active(['create/estimate/page','form/estimates/page','payments','expenses/page']) ? 'noti-dot' : '' }}">
29+
<i class="la la-edit"></i>
30+
<span>Approval Page</span>
31+
<span class="menu-arrow"></span>
32+
</a>
33+
<ul style="{{ request()->is('/*') ? 'display: block;' : 'display: none;' }}">
34+
{{-- <li><a class="{{set_active(['form/leavesApprove'])}}" href="{{ route('form/leavesApprove') }}">Approval 1 Leave Permit</a></li> --}}
35+
<li><a class="{{set_active(['form/leavesApprove2'])}}" href="{{ route('form/leavesApprove2') }}">Approval 3 Leave Permit</a></li>
36+
{{-- <li><a class="{{set_active(['form/sickApprove'])}}" href="{{ route('form/sickApprove') }}">Approval 1 Sick Leave</a></li> --}}
37+
<li><a class="{{set_active(['form/sickApprove2'])}}" href="{{ route('form/sickApprove2') }}">Approval 3 Sick Leave</a></li>
38+
<!-- <li><a class="{{set_active(['expenses/page'])}}" href="{{ route('expenses/page') }}">Expenses</a></li> -->
39+
</ul>
40+
</li>
41+
</ul>
42+
</div>
43+
</div>
44+
</div>
45+
<!-- /Sidebar -->

0 commit comments

Comments
 (0)