File: /var/www/html/dev-hrms/app/Http/Controllers/EmployeeProbationPeriodController.php
<?php
namespace App\Http\Controllers;
use App\Models\EmployeeProbationPeriod;
use App\Models\EmployeeProfile;
use App\Models\Profiles;
use App\Models\Approval;
use App\Library\UserLib;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use Illuminate\Http\Request;
class EmployeeProbationPeriodController extends Controller
{
protected $userLib;
protected $UserSessionId;
protected $TeamList = array();
protected $LevelList = array();
protected $ViewProfileIds = array();
protected $ViewApprovalUsers = array();
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
public function getAccessUserProfileList($ProfileId = '')
{
$users = Profiles::select('*')
->leftJoin('tbl_roles', 'tbl_roles.RoleId', '=', 'tbl_profiles.RoleId')
->where('tbl_roles.ReadPermission', 'like', '1')
->where('tbl_roles.WritePermission', 'like', '1')
->where('tbl_roles.UpdatePermission', 'like', '1')
->where('tbl_roles.ApprovalPermission', 'like', '1')
->where('tbl_profiles.ServiceBookApprovalPermission', 'like', 'YES')
->where('tbl_profiles.ProfileId', 'like', $ProfileId) //check not equal to user profile
->get();
if ($users->count() > 0) { //email is exist
foreach ($users as $key => $UValue) {
$ProfileId = $UValue['ProfileId'];
$ProfileName = $UValue['ProfileName'];
$ParentId = $UValue['ParentId'];
$this->TeamList[] = $UValue;
$this->ViewProfileIds[] = $ProfileId;
if ($ParentId) {
$this->getAccessUserProfileList($ParentId);
}
}
}
return $responseData = $this->ViewProfileIds;
//return response()->json($responseData);
}
// Get Approval User
public function getApprovalUserLevel($ProfileId = '', $Level = 1)
{
$users = Profiles::select('*')
->leftJoin('tbl_roles', 'tbl_roles.RoleId', '=', 'tbl_profiles.RoleId')
->where('tbl_roles.ReadPermission', 'like', '1')
->where('tbl_roles.WritePermission', 'like', '1')
->where('tbl_roles.UpdatePermission', 'like', '1')
->where('tbl_roles.ApprovalPermission', 'like', '1')
//->where('tbl_profiles.ServiceBookApprovalPermission','like','YES')
->where('tbl_profiles.ProfileId', 'like', $ProfileId) //check not equal to user profile
->get();
// echo $users;
//exit;
if ($users->count() > 0) { //email is exist
foreach ($users as $key => $UValue) {
$ProfileId = $UValue['ProfileId'];
$ProfileName = $UValue['ProfileName'];
$ParentId = $UValue['ParentId'];
$this->TeamList[] = $UValue;
$this->ViewApprovalUsers[] = $ProfileId;
//$this->LevelList[] = $Level;
//echo $Level.'-'.$ParentId.'<br/>';
if ($Level >= 2) {
continue;
}
if ($ParentId) {
$Level++;
$this->getApprovalUserLevel($ParentId, $Level);
}
}
}
return $this->ViewApprovalUsers;
}
public function pendingEmpProbationPeriodList()
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$CurrentDate = date('d-m-Y');
$GetPendingProbationPeriod = EmployeeProbationPeriod::select('tbl_employee_probation_period.*', 'tbl_employees.EmployeeName as EmployeeName', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_employee_probation_period.Updated_by', '=', 'tbl_admin.UserId')
->leftJoin('tbl_employees', 'tbl_employee_probation_period.EmployeeId', '=', 'tbl_employees.EmployeeId')
->where('tbl_employee_probation_period.Status', '=', '1')
->where('tbl_employee_probation_period.IsDeleted', '=', '0')
->orderBy('tbl_employee_probation_period.id', 'DESC')
//->orderBy('tbl_employee_probation_period.EmployeeCode', 'ASC')
//->WhereNull('tbl_employee_probation_period.DateOfClearProbationPeriod')
->get();
// $GetProbationPeriodEmpList = EmployeeProfile::select('tbl_employees.*', 'tbl_designation.DesignationName as DesignationName')
// ->leftJoin('tbl_designation', 'tbl_employees.DesignationId', '=', 'tbl_designation.DesignationId')
// ->where('tbl_employees.Status', '=', '1')
// ->where('tbl_employees.IsDeleted', '=', '0')
// ->whereNotNull('tbl_employees.ProbationPeriodClearDate')
// //->where('tbl_employees.ProbationPeriodClearDate', '<', date('d-m-Y', strtotime($CurrentDate)))
// ->whereNotIn('tbl_employees.EmployeeId', $GetProbationPeriod)
// ->get();
// print_r(json_encode($GetRemainingEmployee));
// exit;
return view('admin.EmployeeProfile.employee-probation-period', ['GetPendingProbationPeriod' => $GetPendingProbationPeriod]);
}
#### View Employee Probation
public function viewEmpProbation($ProbationPeriodId)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$ViewEmpProbation = EmployeeProbationPeriod::select('tbl_employee_probation_period.*', 'tbl_employees.*')
->where('tbl_employee_probation_period.ProbationPeriodId', '=', $ProbationPeriodId)
->leftJoin('tbl_employees', 'tbl_employee_probation_period.EmployeeId', '=', 'tbl_employees.EmployeeId')
->get()->first();
return view('admin.EmployeeProfile.view-employee-probation', ['ViewEmpProbation' => $ViewEmpProbation]);
}
#### Store ProbationPeriod
public function storeEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$input = $request->all();
$data = $input;
$ProbationPeriodOrderDate = '';
if ($request->input('OrderDate')) {
$OrderDate = str_replace('/', '-', $request->input('OrderDate'));
}
$ProbationPeriodOrderDate = date('d-m-Y', strtotime($OrderDate));
// ProbationPeriod Order
$CertName = $this->userLib->useridGenrator();
$ProbationPeriodCertificatePath = '';
if ($request->hasFile('ProbationPeriodCertificate')) {
$file = $request->file('ProbationPeriodCertificate');
$extension = $file->getClientOriginalExtension();
$FileName = $CertName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/permanency_order',
$file,
$FileName
);
$ProbationPeriodCertificatePath = Storage::url('permanency_order/' . $FileName);
}
unset($data['_token']);
unset($data['ProbationPeriodCertificate']);
unset($data['OrderDate']);
$data['ProbationPeriodId'] = $this->userLib->useridGenrator();
$data['ProbationPeriodCertificatePath'] = $ProbationPeriodCertificatePath;
$data['ProbationPeriodOrderDate'] = $ProbationPeriodOrderDate;
$data['IsDeleted'] = 0;
$data['Status'] = 1;
$data['Created_by'] = session('UserId');
$data['Created_at'] = date('Y-m-d H:i:s', time());
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$ProbationPeriod = EmployeeProbationPeriod::insert($data);
if ($ProbationPeriod) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
### Edit ProbationPeriod
public function editEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$ProbationPeriodId = $request->input('ProbationPeriodId');
$GetEmpProbationPeriod = EmployeeProbationPeriod::select('tbl_employee_probation_period.*', 'tbl_employees.EmployeeName as EmployeeName')
->leftJoin('tbl_employees', 'tbl_employee_probation_period.EmployeeId', '=', 'tbl_employees.EmployeeId')
->where('ProbationPeriodId', $ProbationPeriodId)
//->where('IsDeleted', '=', '0')
->get()->first();
return response()->json([
'status' => 200,
'GetEmpProbationPeriod' => $GetEmpProbationPeriod,
]);
}
#### Change Status Emp Probation Period
public function changeStatusEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$input = $request->all();
$data = $input;
$ProbationPeriodId = $request->input('ProbationPeriodId');
$IsCleared = $request->input('IsCleared');
$IsRevised = $request->input('IsRevised');
$ProbationOrderNo = $request->input('ProbationOrderNo');
$ProbationOrderDate = '';
if ($request->input('OrderDate')) {
$OrderDate = str_replace('/', '-', $request->input('OrderDate'));
$ProbationOrderDate = date('Y-m-d', strtotime($OrderDate));
$data['ProbationOrderDate'] = $ProbationOrderDate;
}
$ClearReviseDate = '';
if ($request->input('ClearAndReviseDate')) {
$ClearAndReviseDate = str_replace('/', '-', $request->input('ClearAndReviseDate'));
$ClearReviseDate = date('Y-m-d', strtotime($ClearAndReviseDate));
$data['ClearReviseDate'] = $ClearReviseDate;
}
$NextProbationPeriodClearDate = '';
if ($request->input('NextProbationClearDate')) {
$NextDate = str_replace('/', '-', $request->input('NextProbationClearDate'));
$NextProbationPeriodClearDate = date('Y-m-d', strtotime($NextDate));
}
// Probation Period Order
$CertName = $this->userLib->useridGenrator();
$ProbationPeriodCertificatePath = '';
if ($request->hasFile('ProbationPeriodCertificate')) {
$file = $request->file('ProbationPeriodCertificate');
$extension = $file->getClientOriginalExtension();
$FileName = $CertName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/probation_period_order',
$file,
$FileName
);
$ProbationPeriodCertificatePath = Storage::url('probation_period_order/' . $FileName);
$data['ProbationPeriodCertificatePath'] = $ProbationPeriodCertificatePath;
}
unset($data['_token']);
unset($data['OrderDate']);
unset($data['ClearAndReviseDate']);
unset($data['ProbationPeriodCertificate']);
unset($data['NextProbationClearDate']);
if ($IsRevised == '1') {
$GetProbationPeriodData = EmployeeProbationPeriod::select('tbl_employee_probation_period.*')
->where('ProbationPeriodId', '=', $ProbationPeriodId)
->get()
->first();
$ReviseData['ProbationPeriodId'] = $this->userLib->useridGenrator();
$ReviseData['EmployeeId'] = $GetProbationPeriodData->EmployeeId;
$ReviseData['EmployeeCode'] = $GetProbationPeriodData->EmployeeCode;
$ReviseData['JoiningDate'] = $GetProbationPeriodData->JoiningDate;
$ReviseData['JoiningTime'] = $GetProbationPeriodData->JoiningTime;
$ReviseData['ProbationPeriodClearDate'] = $NextProbationPeriodClearDate;
$ReviseData['Created_by'] = session('UserId');
$ReviseData['Created_at'] = date('Y-m-d H:i:s', time());
$ReviseData['Updated_by'] = session('UserId');
$ReviseData['Updated_at'] = date('Y-m-d H:i:s', time());
$ReviseProbationPeriod = EmployeeProbationPeriod::insert($ReviseData);
}
//exit;
//$data['IsCleared'] = '1';
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$ProbationPeriodChangeStatus = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId)->update($data);
if ($ProbationPeriodChangeStatus) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Update ProbationPeriod
public function updateEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$ProbationPeriodId = $request->input('ProbationPeriodId');
$JoiningTime = $request->input('JoiningTime');
$JoiningDate = '';
if ($request->input('ProbationJoiningDate')) {
$JDate = str_replace('/', '-', $request->input('ProbationJoiningDate'));
}
$JoiningDate = date('Y-m-d', strtotime($JDate));
$ProbationPeriodClearDate = '';
if ($request->input('ProbationPeriodClearDate')) {
$CDate = str_replace('/', '-', $request->input('ProbationPeriodClearDate'));
}
$ProbationPeriodClearDate = date('Y-m-d', strtotime($CDate));
$data['JoiningTime'] = $JoiningTime;
$data['JoiningDate'] = $JoiningDate;
$data['ProbationPeriodClearDate'] = $ProbationPeriodClearDate;
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$ProbationPeriodUpdate = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId)->update($data);
if ($ProbationPeriodUpdate) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Update Status Emp Probation Period
public function updateStatusEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$input = $request->all();
$data = $input;
$ProbationPeriodId = $request->input('ProbationPeriodId');
$IsCleared = $request->input('IsCleared');
$IsRevised = $request->input('IsRevised');
$ProbationOrderNo = $request->input('ProbationOrderNo');
$ProbationOrderDate = '';
if ($request->input('OrderDate')) {
$OrderDate = str_replace('/', '-', $request->input('OrderDate'));
$ProbationOrderDate = date('Y-m-d', strtotime($OrderDate));
}
$ClearReviseDate = '';
if ($request->input('ClearAndReviseDate')) {
$ClearAndReviseDate = str_replace('/', '-', $request->input('ClearAndReviseDate'));
$ClearReviseDate = date('Y-m-d', strtotime($ClearAndReviseDate));
}
$ProbationPeriodClearDate = '';
if ($request->input('ProbationClearDate')) {
$ProbDate = str_replace('/', '-', $request->input('ProbationClearDate'));
$ProbationPeriodClearDate = date('Y-m-d', strtotime($ProbDate));
}
// Probation Period Order
$CertName = $this->userLib->useridGenrator();
$ProbationPeriodCertificatePath = '';
if ($request->hasFile('ProbationPeriodCertificate')) {
$file = $request->file('ProbationPeriodCertificate');
$extension = $file->getClientOriginalExtension();
$FileName = $CertName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/probation_period_order',
$file,
$FileName
);
$ProbationPeriodCertificatePath = Storage::url('probation_period_order/' . $FileName);
}
unset($data['_token']);
unset($data['OrderDate']);
unset($data['ClearAndReviseDate']);
unset($data['ProbationPeriodCertificate']);
unset($data['NextProbationClearDate']);
if ($IsRevised == '1') {
$UpdateReviseData['ProbationOrderNo'] = $ProbationOrderNo;
$UpdateReviseData['ProbationOrderDate'] = $ProbationOrderDate;
$UpdateReviseData['ProbationPeriodClearDate'] = $ProbationPeriodClearDate;
$UpdateReviseData['ClearReviseDate'] = $ClearReviseDate;
$UpdateReviseData['ProbationPeriodCertificatePath'] = $ProbationPeriodCertificatePath;
$UpdateReviseData['Updated_by'] = session('UserId');
$UpdateReviseData['Updated_at'] = date('Y-m-d H:i:s', time());
$UpdateProbationPeriod = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId)->update($UpdateReviseData);
} elseif ($IsCleared == '1') {
$UpdateReviseData['ProbationOrderNo'] = $ProbationOrderNo;
$UpdateReviseData['ProbationOrderDate'] = $ProbationOrderDate;
$UpdateReviseData['ProbationPeriodClearDate'] = $ProbationPeriodClearDate;
$UpdateReviseData['ClearReviseDate'] = $ClearReviseDate;
$UpdateReviseData['ProbationPeriodCertificatePath'] = $ProbationPeriodCertificatePath;
$UpdateReviseData['Updated_by'] = session('UserId');
$UpdateReviseData['Updated_at'] = date('Y-m-d H:i:s', time());
$UpdateProbationPeriod = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId)->update($UpdateReviseData);
} else {
$UpdateReviseData['ProbationOrderNo'] = null;
$UpdateReviseData['ProbationOrderDate'] = null;
$UpdateReviseData['ProbationPeriodClearDate'] = $ProbationPeriodClearDate;
$UpdateReviseData['IsRevised'] = $IsRevised;
$UpdateReviseData['IsCleared'] = $IsCleared;
$UpdateReviseData['ClearReviseDate'] = null;
$UpdateReviseData['ProbationPeriodCertificatePath'] = null;
$UpdateReviseData['Updated_by'] = session('UserId');
$UpdateReviseData['Updated_at'] = date('Y-m-d H:i:s', time());
$UpdateProbationPeriod = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId)->update($UpdateReviseData);
}
if ($UpdateProbationPeriod) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Delete Probation Period
public function deleteEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$data = array();
$ProbationPeriodId = $request->input('ProbationPeriodId');
$data['IsDeleted'] = 1;
$data['Status'] = 0;
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$deleteData = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId)->update($data);
if ($deleteData) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Delete Permanent Probation Period
public function destroyEmpProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$ProbationPeriodId = $request->input('ProbationPeriodId');
$destroyData = EmployeeProbationPeriod::where('ProbationPeriodId', $ProbationPeriodId);
$destroyData->delete();
if ($destroyData) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Submit For Approval
public function SubmitProbationPeriodApproval(Request $request, $ProfileId = '')
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$data = array();
$EmployeeId = $request->input('EmployeeId');
$ProfileId = $request->input('ProfileId');
$UserId = $request->input('UserId');
$ApprovalRemark = $request->input('ApprovalRemark');
// In case of Farward for review
$ModuleId = $request->input('ModuleId');
$data['ApprovalStatus'] = 0;
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
if ($ModuleId) {
$GetNoOfApproval = EmployeeProbationPeriod::where('EmployeeId', $EmployeeId)
->where('ApprovalLock', '1')
->where('ApprovalStatus', '0')
->where('IsDeleted', '0')
->get();
foreach ($GetNoOfApproval as $key => $ApprovalCount) {
$NoOfApproval = $ApprovalCount->NoOfApproval + 1;
// Update Employee EmployeeProbationPeriod Table in case of Farward for review
$data['NoOfApproval'] = $NoOfApproval;
$ApprovalRequest = EmployeeProbationPeriod::where('EmployeeId', $EmployeeId)
->where('ApprovalLock', '1')
->where('ApprovalStatus', '0')
->where('IsDeleted', '0')
->update($data);
}
// Update Approval Table in case of Farward for review
$update_approval['ApprovalStatus'] = '3'; // Approve = 1, Reject = 2, Forward = 3.
$update_approval['ApprovalLevel'] = $NoOfApproval;
$update_approval['Updated_by'] = session('UserId');
$update_approval['Updated_at'] = date('Y-m-d H:i:s', time());
$Update_Approval_Module = Approval::where('ModuleId', $ModuleId)
->where('ProfileId', session('ProfileId'))
->where('UserId', session('UserId'))
->where('ApprovalStatus', '=', '0')
->update($update_approval);
if ($Update_Approval_Module) {
$approval = array();
$approval['ModuleId'] = $ModuleId;
$approval['EmployeeId'] = $EmployeeId;
$approval['ModuleTitle'] = 'ProbationPeriod';
$approval['ApprovalStatus'] = '0';
$approval['ApprovalComments'] = $ApprovalRemark;
$approval['ApprovalFrom'] = session('UserId');
$approval['ProfileId'] = $ProfileId;
$approval['UserId'] = $UserId;
//$approval['ApprovalLevel'] = '';
$approval['Created_at'] = date('Y-m-d H:i:s', time());
$approval['Created_by'] = session('UserId');
$approval['Updated_by'] = session('UserId');
$approval['Updated_at'] = date('Y-m-d H:i:s', time());
$Approval_Module_New = Approval::insert($approval);
if ($Approval_Module_New) {
return response()->json('status_success');
} else {
return response()->json('status_fail');
}
}
} else {
$data['ApprovalLock'] = 1;
$data['NoOfApproval'] = 0;
$data['ApprovalComment'] = '';
$ApprovalRequest = EmployeeProbationPeriod::where('EmployeeId', $EmployeeId)
->where('ApprovalStatus', '=', '0')
->where('ApprovalLock', '0')
->where('IsDeleted', '0')
->update($data);
if ($ApprovalRequest) {
$approval = array();
$approval['ModuleId'] = $this->userLib->useridGenrator();
$approval['EmployeeId'] = $EmployeeId;
$approval['ModuleTitle'] = 'ProbationPeriod';
$approval['ApprovalStatus'] = '0';
$approval['ApprovalComments'] = $ApprovalRemark;
$approval['ApprovalFrom'] = session('UserId');
$approval['ProfileId'] = $ProfileId;
$approval['UserId'] = $UserId;
//$approval['ApprovalLevel'] = '';
$approval['Created_at'] = date('Y-m-d H:i:s', time());
$approval['Created_by'] = session('UserId');
$approval['Updated_at'] = date('Y-m-d H:i:s', time());
$approval['Updated_by'] = session('UserId');
$Approval_Module = Approval::insert($approval);
if ($Approval_Module) {
return response()->json('status_success');
} else {
return response()->json('status_fail');
}
}
}
}
#### Approve Probation Period
public function ApproveProbationPeriod(Request $request, $EmployeeId = '', $ModuleId = '')
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$LoginUserProfileId = session('ProfileId');
$UserId = session('UserId');
$EmployeeId = $request->input('EmployeeId');
$ModuleId = $request->input('ModuleId');
$ApprovalStatusTbl = $request->input('ApprovalStatus');
$GetNoOfApproval = EmployeeProbationPeriod::select('NoOfApproval')
->where('EmployeeId', $EmployeeId)
->where('ApprovalStatus', '0')
->where('ApprovalLock', '1')
//->where('NoOfApproval', '!=', '0')
->where('IsDeleted', '0')
->orderBy('id', 'DESC')
->get()
->first();
$NoOfApproval = $GetNoOfApproval->NoOfApproval + 1;
$approval = array();
$approval['ApprovalStatus'] = $ApprovalStatusTbl;
$approval['ApprovalLevel'] = $NoOfApproval;
$approval['Updated_by'] = session('UserId');
$approval['Updated_at'] = date('Y-m-d H:i:s', time());
$ApprovalUpdate = Approval::where('ModuleId', $ModuleId)->where('EmployeeId', $EmployeeId)->where('ProfileId', $LoginUserProfileId)->where('UserId', $UserId)->update($approval);
if ($ApprovalUpdate) {
// Update EmployeeProbationPeriod Table
$data = array();
$data['ApprovalStatus'] = 1;
$data['NoOfApproval'] = $NoOfApproval;
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$approveData = EmployeeProbationPeriod::where('EmployeeId', $EmployeeId)
->where('ApprovalLock', '1')
->where('ApprovalStatus', '0')
->where('IsDeleted', '0')
->update($data);
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Reject Probation Period
public function RejectProbationPeriod(Request $request)
{
$this->UserSessionId = session('UserId');
if (empty($this->UserSessionId)) {
return redirect('/');
}
$data = array();
$EmployeeId = $request->input('EmployeeId');
$Comment = $request->input('RejectComment');
$LoginUserProfileId = session('ProfileId');
$UserId = session('UserId');
$ModuleId = $request->input('ModuleId');
$ApprovalStatusTbl = $request->input('ApprovalStatus');
$GetNoOfApproval = EmployeeProbationPeriod::select('NoOfApproval')
->where('EmployeeId', $EmployeeId)
->where('ApprovalStatus', '0')
->where('ApprovalLock', '1')
//->where('NoOfApproval', '!=', '0')
->where('IsDeleted', '0')
->orderBy('id', 'DESC')
->get()
->first();
$NoOfApproval = $GetNoOfApproval->NoOfApproval + 1;
// Rejected = 2,
$data['ApprovalStatus'] = $ApprovalStatusTbl;
$data['ApprovalLock'] = 0;
$data['NoOfApproval'] = $NoOfApproval;
$data['ApprovalComment'] = $Comment;
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$approval = array();
$approval['ApprovalStatus'] = $ApprovalStatusTbl;
$approval['ApprovalLevel'] = $NoOfApproval;
$approval['ApprovalComments'] = $Comment;
$approval['Updated_by'] = session('UserId');
$approval['Updated_at'] = date('Y-m-d H:i:s', time());
$ApprovalUpdate = Approval::where('ModuleId', $ModuleId)->where('EmployeeId', $EmployeeId)->where('ProfileId', $LoginUserProfileId)->where('UserId', $UserId)->update($approval);
if ($ApprovalUpdate) {
$rejectData = EmployeeProbationPeriod::where('EmployeeId', $EmployeeId)
->where('ApprovalLock', '1')
->where('ApprovalStatus', '0')
->where('IsDeleted', '0')->update($data);
if ($rejectData) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
} else {
return response()->json('status_failed');
}
}
}