File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/AttendanceController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Attendance;
use App\Models\UserAuth;
use Illuminate\Http\Request;
use App\Library\UserLib;
class AttendanceController extends Controller
{
protected $userLib;
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
### All Records
public function allAttendance()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Attendance = Attendance::select('tbl_attendance.*', 'tbl_user.FirstName as FirstName', 'tbl_user.LastName as LastName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_attendance.CreatedById', '=', 'tbl_admin.UserId')
->leftJoin('tbl_user', 'tbl_attendance.OwnerId', '=', 'tbl_user.UserId')
->where('tbl_attendance.IsDeleted', '=', '0')
->orderBy('tbl_attendance.id', 'desc')
->get();
$TrashAttendance = Attendance::select('tbl_attendance.*', 'tbl_user.FirstName as FirstName', 'tbl_user.LastName as LastName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_attendance.LastModifiedById', '=', 'tbl_admin.UserId')
->leftJoin('tbl_user', 'tbl_attendance.OwnerId', '=', 'tbl_user.UserId')
->where('tbl_attendance.IsDeleted', '=', '1')
->orderBy('tbl_attendance.id', 'desc')
->get();
return view('admin.attendance', ['Attendance' => $Attendance, 'TrashAttendance' => $TrashAttendance]);
}
### Trash Record
public function TrashAttendance()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Attendance = Attendance::select('tbl_attendance.*', 'tbl_user.FirstName as FirstName', 'tbl_user.LastName as LastName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_attendance.LastModifiedById', '=', 'tbl_admin.UserId')
->leftJoin('tbl_user', 'tbl_attendance.OwnerId', '=', 'tbl_user.UserId')
->where('tbl_attendance.IsDeleted', '=', '0')
->orderBy('tbl_attendance.id', 'desc')
->get();
$TrashAttendance = Attendance::select('tbl_attendance.*', 'tbl_user.FirstName as FirstName', 'tbl_user.LastName as LastName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_attendance.LastModifiedById', '=', 'tbl_admin.UserId')
->leftJoin('tbl_user', 'tbl_attendance.OwnerId', '=', 'tbl_user.UserId')
->where('tbl_attendance.IsDeleted', '=', '1')
->orderBy('tbl_attendance.id', 'desc')
->get();
return view('admin.trash-attendance', ['Attendance' => $Attendance, 'TrashAttendance' => $TrashAttendance]);
}
### View Record
public function ViewAttendance($AttendanceId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$ViewAttendance = Attendance::select('tbl_attendance.*', 'tbl_user.FirstName as FirstName', 'tbl_user.LastName as LastName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->where('AttendanceId', '=', $AttendanceId)
->leftJoin('tbl_admin', 'tbl_attendance.LastModifiedById', '=', 'tbl_admin.UserId')
->leftJoin('tbl_user', 'tbl_attendance.OwnerId', '=', 'tbl_user.UserId')
->get()->first();
return view('admin.view-attendance', ['ViewAttendance' => $ViewAttendance]);
}
### Store New Attendance
public function storeAttendance(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AttendanceDate = '';
if ($request->input('AttendanceDate')) {
$Date = str_replace('/', '-', $request->input('AttendanceDate'));
}
$AttendanceDate = date('d-m-Y', strtotime($Date));
$data['AttendanceId'] = $this->userLib->useridGenrator();
$data['OwnerId'] = $request->input('UserName');
$data['AttendanceDateTime'] = $AttendanceDate;
$GetCheckInTime = $request->input('CheckIn');
$CheckInTime = date('h:i A', strtotime($GetCheckInTime));
$data['CheckInDateTime'] = $CheckInTime;
$data['IsDeleted'] = 0;
$data['Status'] = 1;
$data['CreatedById'] = session('UserId');
$data['Created_by'] = session('UserId');
$data['CreatedDate'] = date('Y-m-d H:i:s', time());
$data['Created_at'] = date('Y-m-d H:i:s', time());
$data['LastModifiedById'] = session('UserId');
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$data['ModifiedDate'] = date('Y-m-d H:i:s', time());
$Attendance = Attendance::insert($data);
if ($Attendance) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
### Update Record
public function updateAttendance(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AttendanceId = $request->input('AttendanceId');
$AttendanceDate = '';
if ($request->input('AttendanceDate')) {
$Date = str_replace('/', '-', $request->input('AttendanceDate'));
}
$AttendanceDate = date('d-m-Y', strtotime($Date));
$data['OwnerId'] = $request->input('UserName');
$data['AttendanceDateTime'] = $AttendanceDate;
$GetCheckInTime = $request->input('CheckIn');
$CheckInTime = date('h:i A', strtotime($GetCheckInTime));
$data['CheckInDateTime'] = $CheckInTime;
if ($request->input('CheckOut')) {
$GetCheckOutTime = $request->input('CheckOut');
$CheckOutTime = date('h:i A', strtotime($GetCheckOutTime));
$data['CheckOutDateTime'] = $CheckOutTime;
}
if ($request->input('Location')) {
$data['Location'] = $request->input('Location');
}
$data['LastModifiedById'] = session('UserId');
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$Attendance = Attendance::where('AttendanceId', $AttendanceId)->update($data);
if ($Attendance) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Delete Attendance
public function deleteAttendance($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['LastModifiedDate'] = $CreatedDate;
$data['LastModifiedById'] = session('UserId');
$data['IsDeleted'] = '1';
$Attendance_delete = Attendance::where('AttendanceId', $id)->update($data);
if ($Attendance_delete) {
return response()->json('status_success');
} else {
echo 'failed';
}
}
#### Delete Permanent
public function destroyAttendance($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$destroyData = Attendance::where('AttendanceId', $id);
$destroyData->delete();
}
#### Restore Attendance
public function restoreAttendance($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['LastModifiedDate'] = $CreatedDate;
$data['LastModifiedById'] = session('UserId');
$data['IsDeleted'] = '0';
$Attendance_restore = Attendance::where('AttendanceId', $id)->update($data);
if ($Attendance_restore) {
return response()->json('status_success');
} else {
echo 'failed';
}
}
#### Delete Selected Record
public function deleteSelectedAttendance(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$id = $request->input('SelectedAttendance');
if ($id) {
foreach ($id as $AttendanceId) {
$checkData = Attendance::select('tbl_attendance.*')
->where('AttendanceId', '=', $AttendanceId)
->get()->first();
if ($checkData->IsDeleted == '0') {
$UpdatedDate = date(
'Y-m-d H:i:s',
time()
);
$data = array();
$data['Updated_at'] = $UpdatedDate;
$data['IsDeleted'] = '1';
$selected_entry = Attendance::where('AttendanceId', $AttendanceId)->update($data);
if ($selected_entry) {
echo '1';
} else {
echo '0';
}
} else {
$selected_entry = Attendance::select('tbl_attendance.*')
->where('AttendanceId', '=', $AttendanceId)
->get()->first();
$selected_entry->delete();
}
}
}
return redirect()->back()->with('status_success');
}
#### CheckOut Attendance
public function checkoutAttendance($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$UpdateDate = date('Y-m-d H:i:s', time());
$CheckOut = date('h:i A');
$data = array();
$data['LastModifiedDate'] = $UpdateDate;
$data['CheckOutDateTime'] = $CheckOut;
$data['CheckOutDate'] = date('d-m-Y', time());
$data['LastModifiedById'] = session('UserId');
$Attendance_checkout = Attendance::where('AttendanceId', $id)->update($data);
if ($Attendance_checkout) {
$AttendanceData = Attendance::where('AttendanceId', $id)
->get()->first();
$OwnerId = $AttendanceData->OwnerId;
if($OwnerId)
{
$UserAuthData = UserAuth::where('UserId', $OwnerId)->delete();
}
if ($UserAuthData) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
}
#### CheckOut Late Attendance
public function checkoutLateAttendance(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AttendanceId = $request->input('AttendanceId');
$UpdateDate = date('Y-m-d H:i:s', time());
$CheckOutTime = '';
if ($request->input('CheckOutTime')) {
$GetCheckOut = $request->input('CheckOutTime');
$CheckOutTime = date('h:i A', strtotime($GetCheckOut));
}
$CheckOutDate = '';
if ($request->input('checkOutDate')) {
$Date = str_replace('/', '-', $request->input('checkOutDate'));
}
$CheckOutDate = date('d-m-Y', strtotime($Date));
$data = array();
$data['LastModifiedDate'] = $UpdateDate;
$data['CheckOutDateTime'] = $CheckOutTime;
$data['CheckOutDate'] = $CheckOutDate;
$data['LastModifiedById'] = session('UserId');
$Attendance_checkout = Attendance::where('AttendanceId', $AttendanceId)->update($data);
if ($Attendance_checkout) {
$AttendanceData = Attendance::where('AttendanceId', $AttendanceId)
->get()->first();
$OwnerId = $AttendanceData->OwnerId;
if($OwnerId)
{
$UserAuthData = UserAuth::where('UserId', $OwnerId)->delete();
}
if ($UserAuthData) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
}
### Edit Records
public function editAttendance($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Attendance = Attendance::select('tbl_attendance.*', 'tbl_user.FirstName as FirstName', 'tbl_user.LastName as LastName')->where('AttendanceId', '=', $id)
->leftJoin('tbl_user', 'tbl_attendance.OwnerId', '=', 'tbl_user.UserId')
->get()->first();
return response()->json([
'status' => 200,
'Attendance' => $Attendance,
]);
}
}