update addon HRM
Some checks failed
Build, Push and Deploy / build-and-push (push) Failing after 3m30s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 15s
Build, Push and Deploy / deploy-staging (push) Has been skipped
Build, Push and Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-05-04 23:04:09 +07:00
parent 7be161f4e4
commit 3e1b64e008
131 changed files with 8281 additions and 290 deletions

View File

@@ -0,0 +1,71 @@
<div class="modal fade common-validation-modal" id="attendances-create-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Attendance') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.attendances.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Employee') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="employee_id" required class="form-control get-employee-shift">
<option value="">{{ __('Select a One') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}">{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Shift') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="shift_id" required class="form-control shift-select" @readonly(true)>
<option value="">{{ __('Select a One') }}</option>
{{-- Options will be populated via JS --}}
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{__('Date')}}</label>
<input type="date" name="date" required value="{{ date('Y-m-d') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Time In') }}</label>
<input type="time" name="time_in" required value="{{ date('H:i') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Time Out') }}</label>
<input type="time" name="time_out" required value="{{ date('H:i') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label>{{__('Note')}}</label>
<textarea name="note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('attendances.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" value="{{ route('hrm.attendances.getShift') }}" id="get-shift">

View File

@@ -0,0 +1,79 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('attendances.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Shift') }}</th>
<th class="text-start">{{ __('date') }}</th>
<th class="text-start">{{ __('Time In') }}</th>
<th class="text-start">{{ __('Time Out') }}</th>
<th class="text-start">{{ __('Duration') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($attendances as $attendance)
<tr>
@usercan('attendances.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete" value="{{ $attendance->id }}">
</td>
@endusercan
<td>{{ ($attendances->currentPage() - 1) * $attendances->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $attendance->employee->name ?? '' }}</td>
<td class="text-start">{{ ucfirst($attendance->month ?? '') }}</td>
<td class="text-start">{{ $attendance->shift->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($attendance->date) }}</td>
<td class="text-start">{{ formatted_time($attendance->time_in) }}</td>
<td class="text-start">{{ formatted_time($attendance->time_out) }}</td>
<td class="text-start">{{ formatTimeToWords($attendance->duration) }}</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('attendances.update')
<li>
<a href="#attendances-edit-modal" data-bs-toggle="modal"
class="attendances-edit-btn"
data-url="{{ route('hrm.attendances.update', $attendance->id) }}"
data-employee-id="{{ $attendance->employee_id }}"
data-month="{{ $attendance->month }}" data-date="{{ $attendance->date }}"
data-time-in="{{ $attendance->time_in }}"
data-time-out="{{ $attendance->time_out }}"
data-note="{{ $attendance->note }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('attendances.delete')
<li>
<a href="{{ route('hrm.attendances.destroy', $attendance->id) }}"
class="confirm-action" data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $attendances->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,69 @@
<div class="modal fade common-validation-modal editModal" id="attendances-edit-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Attendance') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload editAttendanceForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Employee') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="employee_id" id="employee_id" required class="form-control get-employee-shift">
<option value="">{{ __('Select a One') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}">{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Shift') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="shift_id" required class="form-control shift-select" @readonly(true)>
<option value="">{{ __('Select a One') }}</option>
{{-- Options will be populated via JS --}}
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{__('Date')}}</label>
<input type="date" name="date" required value="{{ date('Y-m-d') }}" id="date" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Time In') }}</label>
<input type="time" name="time_in" value="{{ date('H:i') }}" id="time_in" required class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Time Out') }}</label>
<input type="time" name="time_out" value="{{ date('H:i') }}" id="time_out" required class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label>{{__('Note')}}</label>
<textarea name="note" id="note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('attendances.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" value="{{ route('hrm.attendances.getShift') }}" id="get-shift">

View File

@@ -0,0 +1,94 @@
@extends('layouts.business.master')
@section('title')
{{ __('Attendance List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Attendance List') }}</h4>
@usercan('attendances.create')
<a type="button" href="#attendances-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Attendance') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<div class="d-flex align-items-center gap-1 flex-wrap">
<form action="{{ route('hrm.attendances.index') }}" method="GET" class="filter-form" table="#attendances-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" />
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round" />
</svg>
</span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none employee-select ">
<select name="employee" class="form-control">
<option value="">{{ __('Select employee') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}" @selected(request('employee') == $employee->id) >{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none">
<select name="month" class="form-control">
<option value="">{{__('All month')}}</option>
@for ($month = 1; $month <= 12; $month++)
@php
$monthSlug = strtolower(date('F', mktime(0, 0, 0, $month, 1)));
@endphp
<option value="{{ $monthSlug }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.attendances.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="attendances-data">
@include('hrmaddon::attendances.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::attendances.create')
@include('hrmaddon::attendances.edit')
@endpush

View File

@@ -0,0 +1,22 @@
<div class="modal fade" id="multi-delete-modal" tabindex="-1" aria-labelledby="multi-delete-modal-label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="text-end">
<button type="button" class="btn-close m-3 mb-0" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body pt-0">
<div class="delete-modal">
<h5>{{ __('Are You Sure?') }}</h5>
<p>{{ __("You want to delete everything!") }}</p>
</div>
<div class="multiple-button-group">
<button class="btn reset-btn" data-bs-dismiss="modal">{{ __('Cancel') }}</button>
<form id="dynamic-delete-form" method="POST" class="ajaxform_instant_reload">
@csrf
<button class="btn theme-btn submit-btn create-all-delete" type="submit">{{ __('Yes, Delete It!') }}</button>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,36 @@
<div class="modal fade common-validation-modal" id="department-create-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Department') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.department.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-12 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" required class="form-control" placeholder="{{ __('Enter Department Name') }}">
</div>
<div class="col-lg-12 mt-1">
<label>{{__('Description')}}</label>
<textarea name="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('department.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,74 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('department.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Name') }}</th>
<th class="text-start">{{ __('Description') }}</th>
<th>{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($departments as $department)
<tr>
@usercan('department.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $department->id }}">
</td>
@endusercan
<td>{{ ($departments->currentPage() - 1) * $departments->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $department->name }}</td>
<td class="text-start">{{ Str::limit($department->description, 20, '...') }}</td>
<td>
<label class="switch">
<input type="checkbox" {{ $department->status == 1 ? 'checked' : '' }} class="status"
data-url="{{ route('hrm.department.status', $department->id) }}">
<span class="slider round"></span>
</label>
</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('department.update')
<li>
<a href="#department-edit-modal" data-bs-toggle="modal" class="department-edit-btn"
data-url="{{ route('hrm.department.update', $department->id) }}"
data-department-name="{{ $department->name }}"
data-department-description="{{ $department->description }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('department.delete')
<li>
<a href="{{ route('hrm.department.destroy', $department->id) }}"
class="confirm-action" data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $departments->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,37 @@
<div class="modal fade common-validation-modal" id="department-edit-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Department') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload departmentUpdateForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-12 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" id="department_view_name" required class="form-control" placeholder="{{ __('Enter Department Name') }}">
</div>
<div class="col-lg-12 mb-2">
<label>{{__('Description')}}</label>
<textarea name="description" id="department_view_description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<a href="{{ route('hrm.department.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
@usercan('department.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,66 @@
@extends('layouts.business.master')
@section('title')
{{ __('Department List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Department List') }}</h4>
@usercan('department.create')
<a type="button" href="#department-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add Department') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<form action="{{ route('hrm.department.index') }}" method="GET" class="filter-form" table="#department-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
</div>
</form>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.department.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="department-data">
@include('hrmaddon::department.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::department.create')
@include('hrmaddon::department.edit')
@endpush

View File

@@ -0,0 +1,36 @@
<div class="modal fade common-validation-modal" id="designations-create-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Designation') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.designations.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-12 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" required class="form-control" placeholder="{{ __('Enter Designation Name') }}">
</div>
<div class="col-lg-12 mt-1">
<label>{{__('Description')}}</label>
<textarea name="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('designations.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,75 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('designations.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Name') }}</th>
<th class="text-start">{{ __('Description') }}</th>
<th>{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($designations as $designation)
<tr>
@usercan('designations.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $designation->id }}">
</td>
@endusercan
<td>{{ ($designations->currentPage() - 1) * $designations->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $designation->name }}</td>
<td class="text-start">{{ Str::limit($designation->description, 20, '...') }}</td>
<td>
<label class="switch">
<input type="checkbox" {{ $designation->status == 1 ? 'checked' : '' }} class="status"
data-url="{{ route('hrm.designations.status', $designation->id) }}">
<span class="slider round"></span>
</label>
</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('designations.read')
<li>
<a href="#designations-edit-modal" data-bs-toggle="modal"
class="designations-edit-btn"
data-url="{{ route('hrm.designations.update', $designation->id) }}"
data-designations-name="{{ $designation->name }}"
data-designations-description="{{ $designation->description }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('designations.delete')
<li>
<a href="{{ route('hrm.designations.destroy', $designation->id) }}"
class="confirm-action" data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $designations->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,37 @@
<div class="modal fade common-validation-modal" id="designations-edit-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Designation') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload designationUpdateForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-12 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" id="designations_view_name" required class="form-control" placeholder="{{ __('Enter Designation Name') }}">
</div>
<div class="col-lg-12 mb-2">
<label>{{__('Description')}}</label>
<textarea name="description" id="designations_view_description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<a href="{{ route('hrm.designations.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
@usercan('designations.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,66 @@
@extends('layouts.business.master')
@section('title')
{{ __('Designation List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Designation List') }}</h4>
@usercan('designations.create')
<a type="button" href="#designations-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add Designation') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<form action="{{ route('hrm.designations.index') }}" method="GET" class="filter-form" table="#designations-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
</div>
</form>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.designations.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="designations-data">
@include('hrmaddon::designations.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::designations.create')
@include('hrmaddon::designations.edit')
@endpush

View File

@@ -0,0 +1,152 @@
<div class="modal fade" id="employees-import-modal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-xl">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">{{__('Bulk Upload')}}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<!-- Modal Body -->
<div class="modal-body">
<div class="erp-table-section">
<div class="container-fluid">
<div class="border-0">
<div class="card-bodys">
<form action="{{ route('hrm.employees.bulk-store') }}" method="post" enctype="multipart/form-data" class="ajaxform">
@csrf
<div class="bulk-upload-container w-100">
<div class="d-flex justify-content-between align-items-center w-100">
<div class="bulk-input w-100">
<div class="row align-items-center">
<div class="col-lg-12">
<div class="custom-upload-wrapper">
<div class="custom-file-box">
<div class="custom-file-content">
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 5V19M5 12H19" stroke="#4B5563" stroke-width="2.0" stroke-linecap="round"/>
</svg>
<span class="custom-upload-text">{{ __('Add File') }}</span>
</div>
<p class="preview-file d-none"></p>
<input type="file" name="file" class="preview-file-input" required>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="d-flex align-items-center justify-content-center gap-2 flex-wrap">
<button type="submit" class="add-order-btn process-csv-btn rounded-2 border-0 submit-btn mt-3">{{__('Submit')}}</button>
<a href="{{ asset('assets/employee-bulk-upload.xlsx') }}" download="employee-bulk-upload.xlsx" class="download-file-btn mt-3"><i class="fas fa-download"></i> {{__('Download Sample File')}}</a>
</div>
</div>
<div class="bulk-upload-container mt-3">
<div class="instruction-header">
<h5>{{__('Instructions')}}</h5>
<div class="mt-3">
<h6><strong>{{__('Note')}}: </strong> {{__('Please follow the instructions below to upload your file.')}}</h6>
<ul>
<li><b>{{__('1.')}}</b> {{__('Download the sample file first and add all your purchases data to it.')}}</li>
<li><b>{{__('2.')}}</b> <span class="text-danger">*</span> {{__('Indicates a required field. If you do not provide the required fields, the system will ignore except party information.')}}</li>
<li><b>{{__('3.')}}</b> {{__('After adding all your data, please save the file and then upload the updated version.')}}</li>
</ul>
</div>
</div>
</div>
{{-- Fields Documentation Table --}}
<div class="responsive-table mt-4">
<table class="table" id="datatable">
<thead>
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Field Name') }}</th>
<th class="text-start">{{ __('Description') }}</th>
</tr>
</thead>
<tbody id="business-category-data">
<tr>
<td>{{__('1.')}}</td>
<td class="text-start">{{__('Employee Name')}} <span class="text-danger fw-bold">*</span></td>
<td class="text-start">{{__('Enter the full name of the employee')}} ({{__('e.g.,')}} <b>{{__('James')}}</b>).</td>
</tr>
<tr>
<td>{{__('2.')}}</td>
<td class="text-start">{{__('Gender')}}<span class="text-danger fw-bold">*</span></td>
<td class="text-start">
{{__('Enter the gender of the employee')}} ({{__('e.g.,')}} <b>{{__('male, female, or other')}}</b>).
</td>
</tr>
<tr>
<td>{{__('3.')}}</td>
<td class="text-start">{{__('Phone Number')}} <span class="text-danger fw-bold">*</span></td>
<td class="text-start">
{{__('Enter the employees valid phone number')}} ({{__('e.g.,')}} <b>{{__('01*******')}}</b>).
</td>
</tr>
<tr>
<td>{{__('4.')}}</td>
<td class="text-start">{{__('Designation')}}</td>
<td class="text-start">
{{__('Enter the employees job title or position within the organization.')}} ({{__('e.g.,')}} <b>{{__('Ceo')}}</b>)
</td>
</tr>
<tr>
<td>{{__('5.')}}</td>
<td class="text-start">{{__('Department')}}</td>
<td class="text-start">
{{__('Enter the department where the employee works.')}} ({{__('e.g.,')}} <b>{{__('It')}}</b>)
</td>
</tr>
<tr>
<td>{{__('6.')}}</td>
<td class="text-start">{{__('Email')}}</td>
<td class="text-start">
{{__('Enter a valid and unique email address for the employee.')}} ({{__('e.g.,')}} <b>{{__('demo@gmail.com')}}</b>).
<br><small>{{__('Duplicate email addresses will be ignored during upload.')}}</small>
</td>
</tr>
<tr>
<td>{{__('7.')}}</td>
<td class="text-start">{{__('Birth Date')}}</td>
<td class="text-start">
{{__('Enter the employees date of birth.')}} ({{__('e.g.,')}} <b>{{__('01/01/2026')}}</b>)
</td>
</tr>
<tr>
<td>{{__('8.')}}</td>
<td class="text-start">{{__('Joining Date')}}</td>
<td class="text-start">
{{__('Enter the employees joining date.')}} ({{__('e.g.,')}} <b>{{__('01/01/2026')}}</b>)
</td>
</tr>
<tr>
<td>{{__('9.')}}</td>
<td class="text-start">{{__('Salary')}}</td>
<td class="text-start">{{__('Enter the employees salary amount.')}} ({{__('e.g.,')}} <b>{{__('500')}}</b>)</td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,160 @@
@extends('layouts.business.master')
@section('title')
{{ __('Create Employee') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card border-0">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Add new Employee') }}</h4>
<div class="d-flex align-items-center gap-3">
<a data-bs-toggle="modal" data-bs-target="#employees-import-modal" class="save-publish-btn" href="#">
{{__('Bulk Upload')}}
</a>
@usercan('employees.read')
<a href="{{ route('hrm.employees.index') }}" class="add-order-btn rounded-2"><i class="far fa-list" aria-hidden="true"></i> {{ __('Employee List') }}</a>
@endusercan
</div>
</div>
<div class="order-form-section p-16">
<form action="{{ route('hrm.employees.store') }}" method="POST"
class="ajaxform_instant_reload">
@csrf
<div class="add-suplier-modal-wrapper d-block">
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" required class="form-control"
placeholder="{{ __('Enter employee name') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Designation') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="designation_id" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
@foreach ($designations as $designation)
<option value="{{ $designation->id }}"> {{ ucfirst($designation->name) }}
</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Department') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="department_id" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
@foreach ($departments as $department)
<option value="{{ $department->id }}"> {{ ucfirst($department->name) }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Shift') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="shift_id" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
@foreach ($shifts as $shift)
<option value="{{ $shift->id }}"> {{ ucfirst($shift->name) }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Gender') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="gender" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
<option value="male">{{ __('Male')}}</option>
<option value="female">{{ __('Female')}}</option>
<option value="others">{{ __('Others')}}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Birth Date') }}</label>
<input type="date" name="birth_date" value="{{ date('Y-m-d') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Email') }}</label>
<input type="email" name="email" class="form-control" placeholder="{{ __('Enter email address') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Country') }}</label>
<input type="text" name="country" class="form-control" placeholder="{{ __('Enter country') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Phone') }}</label>
<input type="number" name="phone" required class="form-control" placeholder="{{ __('Enter phone number') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Salary') }}</label>
<input type="number" name="amount" required class="form-control" placeholder="{{ __('Enter salary amount') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Join Date') }}</label>
<input type="date" name="join_date" value="{{ date('Y-m-d') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Status') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="status" class="form-control table-select w-100 role" required>
<option value="">{{ __('Select one') }}</option>
<option value="active">{{ __('Active')}}</option>
<option value="terminated">{{ __('Terminate')}}</option>
<option value="suspended">{{ __('Suspended')}}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6">
<label class="img-label">{{ __('Image') }}</label>
<div class="custom-upload-wrapper">
<div class="custom-image-box">
<div class="custom-image-content">
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span class="custom-upload-text">{{ __('Add Image') }}</span>
</div>
<!-- Preview image -->
<img class="preview-image d-none" id="image" src="" alt="Preview">
<input type="file" name="image" class="preview-image-input" data-id="#image" accept="image/*">
</div>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('employees.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::employees.bulk-upload.employees-import')
@endpush

View File

@@ -0,0 +1,110 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('employees.delete')
<th class="w-60 d-print-none">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th> {{ __('SL') }}. </th>
<th> {{ __('Image') }}. </th>
@if (auth()->user()->accessToMultiBranch())
<th>{{ __('Branch') }}</th>
@endif
<th> {{ __('Name') }} </th>
<th> {{ __('Department') }} </th>
<th> {{ __('Designation') }} </th>
<th> {{ __('shift') }} </th>
<th> {{ __('Phone') }} </th>
<th> {{ __('Salary') }} </th>
<th> {{ __('Action') }} </th>
</tr>
</thead>
<tbody>
@foreach ($employees as $employee)
<tr>
@usercan('employees.delete')
<td class="w-60 checkbox d-print-none">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $employee->id }}">
</td>
@endusercan
<td>{{ ($employees->currentPage() - 1) * $employees->perPage() + $loop->iteration }}</td>
<td>
<img src="{{ asset($employee->image ?? 'assets/images/logo/upload2.jpg') }}" alt="Img"
class="table-product-img">
</td>
@if (auth()->user()->accessToMultiBranch())
<td>{{ $employee->branch->name ?? '' }}</td>
@endif
<td>{{ $employee->name }}</td>
<td>{{ $employee->department->name ?? '' }}</td>
<td>{{ $employee->designation->name ?? '' }}</td>
<td>{{ $employee->shift->name ?? '' }}</td>
<td>{{ $employee->phone }}</td>
<td>{{ currency_format($employee->amount, 'icon', 2, business_currency()) }}</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('employees.read')
<li>
<a href="#employees-view" class="employees-view" data-bs-toggle="modal"
data-employees-name="{{ $employee->name }}"
data-employees-gender="{{ $employee->gender }}"
data-employees-phone="{{ $employee->phone }}"
data-employees-amount="{{ currency_format($employee->amount, 'icon', 2, business_currency()) }}"
data-employees-email="{{ $employee->email }}"
data-employees-country="{{ $employee->country }}"
data-employees-birth-date="{{ $employee->birth_date }}"
data-employees-join-date="{{ $employee->join_date }}"
data-employees-designation="{{ $employee->designation->name ?? '' }}"
data-employees-department="{{ $employee->department->name ?? '' }}"
data-employees-shift="{{ $employee->shift->name ?? '' }}"
data-employees-status="{{ $employee->status }}"
data-employees-image="{{ asset($employee->image ?? 'assets/images/logo/upload2.jpg') }}">
<i class="fal fa-eye"></i>
{{ __('View') }}
</a>
</li>
@endusercan
@usercan('employees.update')
<li>
<a href="{{ route('hrm.employees.edit', $employee->id) }}">
<i class="fal fa-edit"></i>
{{ __('Edit') }}
</a>
</li>
@endusercan
@usercan('employees.delete')
<li>
<a href="{{ route('hrm.employees.destroy', $employee->id) }}"
class="confirm-action" data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $employees->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,150 @@
@extends('layouts.business.master')
@section('title')
{{ __('Edit Employee') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card border-0">
<div class="card-bodys ">
<div class="table-header p-16">
<h4>{{ __('Edit Employee') }}</h4>
@usercan('employees.read')
<a href="{{ route('hrm.employees.index') }}" class="add-order-btn rounded-2"><i class="far fa-list" aria-hidden="true"></i> {{ __('Employee List') }}</a>
@endusercan
</div>
<div class="order-form-section p-16">
<form action="{{ route('hrm.employees.update', $employee->id) }}" method="POST"
class="ajaxform_instant_reload">
@csrf
@method('put')
<div class="add-suplier-modal-wrapper d-block">
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" value="{{ $employee->name }}" required class="form-control"
placeholder="{{ __('Enter employee name') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Designation') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="designation_id" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
@foreach ($designations as $designation)
<option @selected($employee->designation_id) value="{{ $designation->id }}"> {{ ucfirst($designation->name) }}
</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Department') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="department_id" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
@foreach ($departments as $department)
<option @selected($employee->department_id) value="{{ $department->id }}"> {{ ucfirst($department->name) }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Shift') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="shift_id" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
@foreach ($shifts as $shift)
<option @selected($employee->shift_id) value="{{ $shift->id }}"> {{ ucfirst($shift->name) }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Gender') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="gender" class="form-control table-select w-100 role" required>
<option value=""> {{ __('Select one') }}</option>
<option @selected($employee->gender == 'male') value="male">{{ __('Male')}}</option>
<option @selected($employee->gender == 'female') value="female">{{ __('Female')}}</option>
<option @selected($employee->gender == 'others') value="others">{{ __('Others')}}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Birth Date') }}</label>
<input type="date" name="birth_date" value="{{ $employee->birth_date ?? date('Y-m-d') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Email') }}</label>
<input type="email" name="email" value="{{ $employee->email }}" class="form-control" placeholder="{{ __('Enter email address') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Country') }}</label>
<input type="text" name="country" value="{{ $employee->country }}" class="form-control" placeholder="{{ __('Enter country') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Phone') }}</label>
<input type="number" name="phone" value="{{ $employee->phone }}" required class="form-control" placeholder="{{ __('Enter phone number') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Salary') }}</label>
<input type="number" name="amount" required value="{{ $employee->amount }}" class="form-control" placeholder="{{ __('Enter salary amount') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Join Date') }}</label>
<input type="date" name="join_date" value="{{ $employee->join_date ?? date('Y-m-d') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Status') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="status" class="form-control table-select w-100 role" required>
<option value="">{{ __('Select one') }}</option>
<option @selected($employee->status == 'active') value="active">{{ __('Active')}}</option>
<option @selected($employee->status == 'terminated') value="terminated">{{ __('Terminate')}}</option>
<option @selected($employee->status == 'suspended') value="suspended">{{ __('Suspended')}}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6">
<label class="img-label">{{ __('Image') }}</label>
<div class="custom-upload-wrapper">
<div class="custom-image-box">
<div class="custom-image-content">
<svg width="30" height="30" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.3327 7.5026V12.5026C18.3327 14.8596 18.3327 16.0381 17.6004 16.7704C16.8682 17.5026 15.6897 17.5026 13.3327 17.5026H6.66602C4.309 17.5026 3.13048 17.5026 2.39825 16.7704C1.66602 16.0381 1.66602 14.8596 1.66602 12.5026V9.21404C1.66602 8.39729 1.66602 7.98892 1.76053 7.65502C1.99698 6.81974 2.64982 6.1669 3.48509 5.93046C3.819 5.83594 4.22736 5.83594 5.04409 5.83594C5.34907 5.83594 5.50157 5.83594 5.64361 5.81118C5.99556 5.74983 6.31847 5.577 6.56476 5.3182C6.66415 5.21375 6.91352 4.8397 7.08268 4.58594C7.413 4.09048 7.57815 3.84275 7.80393 3.67233C7.94181 3.56826 8.09502 3.48627 8.25809 3.42927C8.52512 3.33594 8.82287 3.33594 9.41837 3.33594H10.8327" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M13.3327 11.2474C13.3327 13.0883 11.8403 14.5807 9.99937 14.5807C8.1584 14.5807 6.66602 13.0883 6.66602 11.2474C6.66602 9.40641 8.1584 7.91406 9.99937 7.91406C11.8403 7.91406 13.3327 9.40641 13.3327 11.2474Z" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M13.334 4.58333H17.5007M15.4173 6.66667V2.5" stroke="#4B5563" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span class="custom-upload-text">{{ __('Add Image') }}</span>
</div>
<!-- Preview image -->
<img class="preview-image d-none" id="image" src="{{ asset( $employee->image) }}" alt="Preview">
<input type="file" name="image" class="preview-image-input" data-id="#image" accept="image/*">
</div>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('employees.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,84 @@
@extends('layouts.business.master')
@section('title')
{{ __('Employee List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card ">
<div class="card-bodys">
<div class="table-header p-16 d-print-none">
<h4>{{ __('Employee List') }}</h4>
@usercan('employees.create')
<a type="button" href="{{ route('hrm.employees.create') }}" class="add-order-btn rounded-2" class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Employee') }}</a>
@endusercan
</div>
<div class="table-header justify-content-center border-0 text-center d-none d-block d-print-block">
@include('business::print.header')
<h4 class="mt-2">{{ __('Employee List') }}</h4>
</div>
<div class="table-top-form p-16">
<form action="{{ route('hrm.employees.index') }}" method="GET" class="filter-form" table="#employees-data">
<div class="table-top-left d-flex gap-3">
<div class="gpt-up-down-arrow position-relative d-print-none">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
@if(auth()->user()->accessToMultiBranch())
<div class="table-search position-relative">
<div class="gpt-up-down-arrow position-relative">
<select name="branch_id" class="form-control">
<option value="">{{ __('Select Branch') }}</option>
@foreach ($branches as $branch)
<option value="{{ $branch->id }}" @selected(request('branch_id') == $branch->id) >{{ $branch->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
@endif
<div class="table-search position-relative d-print-none">
<input class="form-control searchInput" type="text" name="search" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
</div>
</form>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.employees.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="employees-data">
@include('hrmaddon::employees.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::employees.view')
@endpush

View File

@@ -0,0 +1,81 @@
<div class="modal fade p-0" id="employees-view">
<div class="modal-dialog modal-dialog-centered modal-md">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('View') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body order-form-section">
<table class="info-table">
<tbody>
<tr>
<td>{{ __('Image') }}</td>
<td>:</td>
<td><img class="table-img" src="" alt="" id="employees_image"></td>
</tr>
<tr>
<td>{{ __('Name') }}</td>
<td>:</td>
<td id="employees_name"></td>
</tr>
<tr>
<td>{{ __('Gender') }}</td>
<td>:</td>
<td id="employees_gender"></td>
</tr>
<tr>
<td>{{ __('Phone') }}</td>
<td>:</td>
<td id="employees_phone"></td>
</tr>
<tr>
<td>{{ __('Salary') }}</td>
<td>:</td>
<td id="employees_amount"></td>
</tr>
<tr>
<td>{{ __('Email') }}</td>
<td>:</td>
<td id="employees_email"></td>
</tr>
<tr>
<td>{{ __('Country') }}</td>
<td>:</td>
<td id="employees_country"></td>
</tr>
<tr>
<td>{{ __('Birth Date') }}</td>
<td>:</td>
<td id="employees_birth_date"></td>
</tr>
<tr>
<td>{{ __('Join Date') }}</td>
<td>:</td>
<td id="employees_join_date"></td>
</tr>
<tr>
<td>{{ __('Designation') }}</td>
<td>:</td>
<td id="employees_designation"></td>
</tr>
<tr>
<td>{{ __('Department') }}</td>
<td>:</td>
<td id="employees_department"></td>
</tr>
<tr>
<td>{{ __('Shift') }}</td>
<td>:</td>
<td id="employees_shift"></td>
</tr>
<tr>
<td>{{ __('Status') }}</td>
<td>:</td>
<td id="employees_status"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,48 @@
<div class="modal fade common-validation-modal" id="holidays-create-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Holiday') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.holidays.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" required class="form-control" placeholder="{{ __('Enter Name') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Start Date') }}</label>
<input type="date" name="start_date" value="{{ date('Y-m-d') }}" required class="form-control holy-start">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('End Date') }}</label>
<input type="date" name="end_date" value="{{ date('Y-m-d') }}" required class="form-control holy-end">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Duration') }}</label>
<input type="text" class="form-control holy-duration" placeholder="{{ __('1 days') }}" readonly>
</div>
<div class="col-lg-12 mt-1">
<label>{{__('Description')}}</label>
<textarea name="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('holidays.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,77 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('holidays.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Name') }}</th>
@if (auth()->user()->accessToMultiBranch())
<th class="text-start">{{ __('Branch') }}</th>
@endif
<th class="text-start">{{ __('Start Date') }}</th>
<th class="text-start">{{ __('End Date') }}</th>
<th class="text-start">{{ __('Description') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($holidays as $holiday)
<tr>
@usercan('holidays.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $holiday->id }}">
</td>
@endusercan
<td>{{ ($holidays->currentPage() - 1) * $holidays->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $holiday->name }}</td>
@if (auth()->user()->accessToMultiBranch())
<td class="text-start">{{ $holiday->branch->name ?? '' }}</td>
@endif
<td class="text-start">{{ formatted_date($holiday->start_date) }}</td>
<td class="text-start">{{ formatted_date($holiday->end_date) }}</td>
<td class="text-start">{{ Str::limit($holiday->description, 20, '...') }}</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('holidays.update')
<li>
<a href="#holidays-edit-modal" data-bs-toggle="modal" class="holidays-edit-btn"
data-url="{{ route('hrm.holidays.update', $holiday->id) }}"
data-holidays-name="{{ $holiday->name }}"
data-holidays-start-date="{{ $holiday->start_date }}"
data-holidays-end-date="{{ $holiday->end_date }}"
data-holidays-description="{{ $holiday->description }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('holidays.delete')
<li>
<a href="{{ route('hrm.holidays.destroy', $holiday->id) }}" class="confirm-action"
data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $holidays->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,50 @@
<div class="modal fade common-validation-modal" id="holidays-edit-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Holiday') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload editHoldayForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" id="name" required class="form-control" placeholder="{{ __('Enter Name') }}">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Start Date') }}</label>
<input type="date" name="start_date" id="start_date" required class="form-control holy-start">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('End Date') }}</label>
<input type="date" name="end_date" id="end_date" required class="form-control holy-end">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Duration') }}</label>
<input type="text" class="form-control holy-duration" placeholder="{{ __('1 days') }}" readonly>
</div>
<div class="col-lg-12 mb-2">
<label>{{__('Description')}}</label>
<textarea name="description" id="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<a href="{{ route('hrm.holidays.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
@usercan('holidays.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,80 @@
@extends('layouts.business.master')
@section('title')
{{ __('Holiday List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Holiday List') }}</h4>
@usercan('holidays.create')
<a type="button" href="#holidays-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Holiday') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<form action="{{ route('hrm.holidays.index') }}" method="GET" class="filter-form" table="#holidays-data">
<div class="table-top-left d-flex gap-3 margin-lr-16 flex-wrap">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
@if(auth()->user()->accessToMultiBranch())
<div class="table-search position-relative">
<div class="gpt-up-down-arrow position-relative">
<select name="branch_id" class="form-control">
<option value="">{{ __('Select Branch') }}</option>
@foreach ($branches as $branch)
<option value="{{ $branch->id }}" @selected(request('branch_id') == $branch->id) >{{ $branch->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
@endif
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
</div>
</form>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.holidays.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="holidays-data">
@include('hrmaddon::holidays.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::holidays.create')
@include('hrmaddon::holidays.edit')
@endpush

View File

@@ -0,0 +1,37 @@
<div class="modal fade common-validation-modal" id="leave-types-create-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Leave Type') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.leave-types.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-12 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" required class="form-control" placeholder="{{ __('Enter Name') }}">
</div>
<div class="col-lg-12 mt-1">
<label>{{__('Description')}}</label>
<textarea name="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('leave-types.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,74 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('leave-types.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Name') }}</th>
<th class="text-start">{{ __('Description') }}</th>
<th>{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($leave_types as $leave_type)
<tr>
@usercan('leave-types.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $leave_type->id }}">
</td>
@endusercan
<td>{{ ($leave_types->currentPage() - 1) * $leave_types->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $leave_type->name }}</td>
<td class="text-start">{{ Str::limit($leave_type->description, 20, '...') }}</td>
<td>
<label class="switch">
<input type="checkbox" {{ $leave_type->status == 1 ? 'checked' : '' }} class="status" data-url="{{ route('hrm.leave-types.status', $leave_type->id) }}">
<span class="slider round"></span>
</label>
</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('leave-types.update')
<li>
<a href="#leave-types-edit-modal" data-bs-toggle="modal"
class="leave-types-edit-btn"
data-url="{{ route('hrm.leave-types.update', $leave_type->id) }}"
data-leave-types-name="{{ $leave_type->name }}"
data-leave-types-description="{{ $leave_type->description }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('leave-types.delete')
<li>
<a href="{{ route('hrm.leave-types.destroy', $leave_type->id) }}"
class="confirm-action" data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $leave_types->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,37 @@
<div class="modal fade common-validation-modal" id="leave-types-edit-modal">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Leave Type') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload leaveTypeEditForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-12 mb-2">
<label>{{ __('Name') }}</label>
<input type="text" name="name" id="leave_types_name" required class="form-control" placeholder="{{ __('Enter Name') }}">
</div>
<div class="col-lg-12 mb-2">
<label>{{__('Description')}}</label>
<textarea name="description" id="leave_types_description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<a href="{{ route('hrm.leave-types.index') }}" class="theme-btn border-btn m-2">{{ __('Cancel') }}</a>
@usercan('leave-types.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,64 @@
@extends('layouts.business.master')
@section('title')
{{ __('Leave Type List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Leave Type List') }}</h4>
@usercan('leave-types.read')
<a type="button" href="#leave-types-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add Leave Type') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<form action="{{ route('hrm.leave-types.index') }}" method="GET" class="filter-form" table="#leave-types-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
</div>
</form>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.leave-types.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="leave-types-data">
@include('hrmaddon::leave-types.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::leave-types.create')
@include('hrmaddon::leave-types.edit')
@endpush

View File

@@ -0,0 +1,103 @@
<div class="modal fade common-validation-modal" id="leaves-create-modal">
<div class="modal-dialog modal-dialog-centered modal-lg ">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Leave') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.leaves.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Employee') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="employee_id" required class="form-control get-employee-department">
<option value="">{{ __('Select a One') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}">{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Department') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="department_id" required class="form-control department-select" @readonly(true)>
<option value="">{{ __('Select a One') }}</option>
{{-- Options will be populated via JS --}}
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Leave Type') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="leave_type_id" required class="form-control">
<option value="">{{ __('Select a One') }}</option>
@foreach ($leave_types as $leave_type)
<option value="{{ $leave_type->id }}">{{ $leave_type->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Apply Month') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="month" required class="form-control">
<option value="">{{ __('Select One') }}</option>
@for ($month = 1; $month <= 12; $month++)
<option {{ $month == date('m') ? 'selected' : '' }} value="{{ strtolower(date('F', mktime(0, 0, 0, $month, 1))) }}">{{ date('F', mktime(0, 0, 0, $month, 1)) }}</option>
@endfor
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{__('Start Date')}}</label>
<input type="date" name="start_date" value="{{ date('Y-m-d') }}" required class="form-control leave_start_date">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('End Date') }}</label>
<input type="date" name="end_date" value="{{ date('Y-m-d') }}" required class="form-control leave_end_date">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Leave Duration') }}</label>
<input type="number" name="leave_duration" class="form-control leave_duration_cal" readonly>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Status') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="status" class="form-control" required>
<option value="pending">{{ __('Pending') }}</option>
<option value="approved">{{ __('Approved') }}</option>
<option value="rejected">{{ __('Rejected') }}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-12 mb-2">
<label>{{__('Description')}}</label>
<textarea name="description" class="form-control" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('leaves.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" value="{{ route('hrm.leaves.get.department') }}" id="get-department">

View File

@@ -0,0 +1,100 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('leaves.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
@if (auth()->user()->accessToMultiBranch())
<th class="text-start">{{ __('Branch') }}</th>
@endif
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Department') }}</th>
<th class="text-start">{{ __('Start Date') }}</th>
<th class="text-start">{{ __('End Date') }}</th>
<th class="text-start">{{ __('Leave Type') }}</th>
<th class="text-start">{{ __('Leave Duration') }}</th>
<th class="text-center">{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($leaves as $leave)
<tr>
@usercan('leaves.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $leave->id }}">
</td>
@endusercan
<td>{{ ($leaves->currentPage() - 1) * $leaves->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $leave->employee->name ?? '' }}</td>
@if (auth()->user()->accessToMultiBranch())
<td class="text-start">{{ $leave->branch->name ?? '' }}</td>
@endif
<td class="text-start">{{ ucfirst($leave->month) }}</td>
<td class="text-start">{{ $leave->department->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($leave->start_date) }}</td>
<td class="text-start">{{ formatted_date($leave->end_date) }}</td>
<td class="text-start">{{ $leave->leave_type->name ?? '' }}</td>
<td class="text-start">{{ $leave->leave_duration }} {{ __('Days') }}</td>
@if ($leave->status == 'pending')
<td class="text-warning text-center">
<div class="padding-status">Pending</div>
</td>
@elseif ($leave->status == 'approved')
<td class="text-warning text-center">
<div class="approved-status">Approved</div>
</td>
@elseif ($leave->status == 'rejected')
<td class="text-warning text-center">
<div class="rejected-status">Rejected</div>
</td>
@endif
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('leaves.update')
<li>
<a href="#leaves-edit-modal" data-bs-toggle="modal" class="leaves-edit-btn"
data-url="{{ route('hrm.leaves.update', $leave->id) }}"
data-employee-id="{{ $leave->employee_id }}" data-month="{{ $leave->month }}"
data-leave-type-id="{{ $leave->leave_type_id }}"
data-start-date="{{ $leave->start_date }}"
data-end-date="{{ $leave->end_date }}"
data-leave-duration="{{ $leave->leave_duration }}"
data-status="{{ $leave->status }}"
data-description="{{ $leave->description }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('leaves.delete')
<li>
<a href="{{ route('hrm.leaves.destroy', $leave->id) }}" class="confirm-action"
data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $leaves->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,106 @@
<div class="modal fade common-validation-modal editModal" id="leaves-edit-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Leave') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload editLeaveForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Employee') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="employee_id" required id="employee_id" class="form-control get-employee-department">
<option value="">{{ __('Selectm a One') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}">{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Department') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="department_id" required class="form-control department-select" @readonly(true)>
<option value="">{{ __('Select a One') }}</option>
{{-- Options will be populated via JS --}}
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Leave Type') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="leave_type_id" required id="leave_type_id" class="form-control">
<option value="">{{ __('Select a One') }}</option>
@foreach ($leave_types as $leave_type)
<option value="{{ $leave_type->id }}">{{ $leave_type->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Apply Month') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="month" id="month" required class="form-control">
<option value="">{{ __('Select One') }}</option>
@for ($month = 1; $month <= 12; $month++)
<option {{ $month == date('m') ? 'selected' : '' }} value="{{ strtolower(date('F', mktime(0, 0, 0, $month, 1))) }}">{{ date('F', mktime(0, 0, 0, $month, 1)) }}</option>
@endfor
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{__('Start Date')}}</label>
<input type="date" name="start_date" id="start_date" required class="form-control leave_edit_start_date">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('End Date') }}</label>
<input type="date" name="end_date" id="end_date" required class="form-control leave_edit_end_date">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Leave Duration') }}</label>
<input type="number" name="leave_duration" id="leave_duration" readonly class="form-control leave_edit_duration">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Status') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="status" id="status" class="form-control" required>
<option value="pending">{{ __('Pending') }}</option>
<option value="approved">{{ __('Approved') }}</option>
<option value="rejected">{{ __('Rejected') }}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-12 mb-2">
<label>{{__('Description')}}</label>
<textarea name="description" class="form-control" id="description" placeholder="{{ __('Enter Description') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('leaves.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" value="{{ route('hrm.leaves.get.department') }}" id="get-department">

View File

@@ -0,0 +1,107 @@
@extends('layouts.business.master')
@section('title')
{{ __('Leave List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Leave List') }}</h4>
@usercan('leaves.create')
<a type="button" href="#leaves-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Leave') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<div class="d-flex align-items-center gap-1 flex-wrap">
<form action="{{ route('hrm.leaves.index') }}" method="GET" class="filter-form" table="#leaves-data">
<div class="table-top-left d-flex gap-3 margin-lr-16 flex-wrap">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
@if(auth()->user()->accessToMultiBranch())
<div class="gpt-up-down-arrow position-relative">
<select name="branch_id" class="form-control">
<option value="">{{ __('Select Branch') }}</option>
@foreach ($branches as $branch)
<option value="{{ $branch->id }}" @selected(request('branch_id') == $branch->id) >{{ $branch->name }}</option>
@endforeach
</select>
<span></span>
</div>
@endif
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none employee-select">
<select name="employee" class="form-control">
<option value="">{{ __('Select employee') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}" @selected(request('employee') == $employee->id) >{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none">
<select name="month" class="form-control">
<option value=""> {{__('All month')}} </option>
@for ($month = 1; $month <= 12; $month++)
@php
$monthSlug = strtolower(date('F', mktime(0, 0, 0, $month, 1)));
@endphp
<option value="{{ $monthSlug }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.leaves.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="leaves-data">
@include('hrmaddon::leaves.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::leaves.create')
@include('hrmaddon::leaves.edit')
@endpush

View File

@@ -0,0 +1,99 @@
<div class="modal fade common-validation-modal" id="payrolls-create-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Payroll') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.payrolls.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Employee') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="employee_id" class="form-control empAmount" required>
<option value="">{{ __('Select a One') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}">{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Payment Year') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select class="form-control" name="payemnt_year">
@for ($i = date('Y'); $i >= 2022; $i--)
<option @selected($i == date('Y')) value="{{ $i }}">
{{ $i }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Month') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="month" id="month" class="form-control" required>
<option value="">{{ __('Select a One') }}</option>
@for ($month = 1; $month <= 12; $month++)
<option {{ $month == date('m') ? 'selected' : '' }}
value="{{ strtolower(date('F', mktime(0, 0, 0, $month, 1))) }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}</option>
@endfor
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Date') }}</label>
<input type="date" name="date" value="{{ date('Y-m-d') }}" class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Amount') }}</label>
<input type="number" name="amount" readonly class="form-control amountInput" placeholder="{{ __('Enter amount') }}">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Payment Type') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="payment_type_id" required class="form-control">
<option value="">{{ __('Select a One') }}</option>
<option value="cash">{{ __('Cash') }}</option>
@foreach ($payment_types as $payment_type)
<option value="{{ $payment_type->id }}">{{ $payment_type->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-12 mb-2">
<label>{{ __('Note') }}</label>
<textarea name="note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('payrolls.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" value="{{ route('hrm.payrolls.getEmpAmount') }}" id="get-empAmount">

View File

@@ -0,0 +1,88 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('payrolls.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
@if (auth()->user()->accessToMultiBranch())
<th class="text-start">{{ __('Branch') }}</th>
@endif
<th class="text-start">{{ __('Payment Year') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Receipt No') }}</th>
<th class="text-start">{{ __('date') }}</th>
<th class="text-start">{{ __('Amount') }}</th>
<th class="text-start">{{ __('Payment Type') }}</th>
<th class="text-center">{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($payrolls as $payroll)
<tr>
@usercan('payrolls.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $payroll->id }}">
</td>
@endusercan
<td>{{ ($payrolls->currentPage() - 1) * $payrolls->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $payroll->employee->name ?? '' }}</td>
@if (auth()->user()->accessToMultiBranch())
<td class="text-start">{{ $payroll->branch->name ?? '' }}</td>
@endif
<td class="text-start">{{ $payroll->payemnt_year }}</td>
<td class="text-start">{{ ucfirst($payroll->month) }}</td>
<td class="text-start">{{ $payroll->puid }}</td>
<td class="text-start">{{ formatted_date($payroll->date) }}</td>
<td class="text-start">{{ currency_format($payroll->amount, 'icon', 2, business_currency()) }}</td>
<td class="text-start">{{ $payroll->payment_type->name ?? 'Cash' }}</td>
<td class="text-warning text-center">
<div class="approved-status">Paid</div>
</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('payrolls.update')
<li>
<a href="#payrolls-edit-modal" data-bs-toggle="modal" class="payrolls-edit-btn"
data-url="{{ route('hrm.payrolls.update', $payroll->id) }}"
data-employee-id="{{ $payroll->employee_id }}"
data-payment-type-id="{{ $payroll->payment_type_id }}"
data-date="{{ $payroll->date }}" data-month="{{ $payroll->month }}"
data-note="{{ $payroll->note }}" data-amount="{{ $payroll->amount }}"
data-payment-year="{{ $payroll->payemnt_year }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('payrolls.delete')
<li>
<a href="{{ route('hrm.payrolls.destroy', $payroll->id) }}" class="confirm-action"
data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $payrolls->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,97 @@
<div class="modal fade common-validation-modal" id="payrolls-edit-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Payroll') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload editPayrollForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Employee') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="employee_id" id="employee_id" required class="form-control empAmount">
<option value="">{{ __('Select a One') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}">{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Payment Year') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select class="form-control" name="payemnt_year" id="payment_year">
@for ($i = date('Y'); $i >= 2022; $i--)
<option @selected($i == date('Y')) value="{{ $i }}">
{{ $i }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Month') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="month" id="month" required class="form-control salary-month">
<option value="">{{ __('Select a One') }}</option>
@for ($month = 1; $month <= 12; $month++)
<option value="{{ strtolower(date('F', mktime(0, 0, 0, $month, 1))) }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Date') }}</label>
<input type="date" name="date" value="{{ date('Y-m-d') }}" id="date"
class="form-control">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Amount') }}</label>
<input type="number" name="amount" readonly class="form-control amountInput"
placeholder="{{ __('Enter amount') }}">
</div>
<div class="col-lg-6 mb-2">
<label class="required">{{ __('Payment Type') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="payment_type_id" id="payment_type_id" required class="form-control">
<option value="cash">{{ __('Cash') }}</option>
@foreach ($payment_types as $payment_type)
<option value="{{ $payment_type->id }}">{{ $payment_type->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
<div class="col-lg-12 mb-2">
<label>{{ __('Note') }}</label>
<textarea name="note" id="note" class="form-control" placeholder="{{ __('Enter note') }}"></textarea>
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('payrolls.udpate')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" value="{{ route('hrm.payrolls.getEmpAmount') }}" id="get-empAmount">

View File

@@ -0,0 +1,107 @@
@extends('layouts.business.master')
@section('title')
{{ __('Payroll List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Payroll List') }}</h4>
@usercan('payrolls.create')
<a type="button" href="#payrolls-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Payroll') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<div class="d-flex align-items-center gap-1 flex-wrap">
<form action="{{ route('hrm.payrolls.index') }}" method="GET" class="filter-form" table="#payrolls-data">
<div class="table-top-left d-flex gap-3 margin-lr-16 flex-wrap">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
@if(auth()->user()->accessToMultiBranch())
<div class="gpt-up-down-arrow position-relative">
<select name="branch_id" class="form-control">
<option value="">{{ __('Select Branch') }}</option>
@foreach ($branches as $branch)
<option value="{{ $branch->id }}" @selected(request('branch_id') == $branch->id) >{{ $branch->name }}</option>
@endforeach
</select>
<span></span>
</div>
@endif
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none employee-select">
<select name="employee" class="form-control custom-days">
<option value="">{{ __('Select employee') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}" @selected(request('employee') == $employee->id) >{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none">
<select name="month" class="form-control custom-days">
<option value=""> {{__('All month')}} </option>
@for ($month = 1; $month <= 12; $month++)
@php
$monthSlug = strtolower(date('F', mktime(0, 0, 0, $month, 1)));
@endphp
<option value="{{ $monthSlug }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.payrolls.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="payrolls-data">
@include('hrmaddon::payrolls.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::payrolls.create')
@include('hrmaddon::payrolls.edit')
@endpush

View File

@@ -0,0 +1,34 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Date') }}</th>
<th class="text-start d-print-none">{{ __('Month') }}</th>
<th class="text-start">{{ __('Shift') }}</th>
<th class="text-start">{{ __('Time In') }}</th>
<th class="text-start">{{ __('Time Out') }}</th>
<th class="text-start">{{ __('Duration') }}</th>
</tr>
</thead>
<tbody>
@foreach ($attendances as $attendance)
<tr>
<td>{{ ($attendances->currentPage() - 1) * $attendances->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $attendance->employee->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($attendance->date) }}</td>
<td class="text-start d-print-none">{{ ucfirst($attendance->month) }}</td>
<td class="text-start">{{ $attendance->shift->name ?? '' }}</td>
<td class="text-start">{{ formatted_time($attendance->time_in) }}</td>
<td class="text-start">{{ formatted_time($attendance->time_out) }}</td>
<td class="text-start">{{ formatTimeToWords($attendance->duration) }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $attendances->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,28 @@
<table class="table" id="datatable">
<thead>
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Date') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Shift') }}</th>
<th class="text-start">{{ __('Time In') }}</th>
<th class="text-start">{{ __('Time Out') }}</th>
<th class="text-start">{{ __('Duration') }}</th>
</tr>
</thead>
<tbody>
@foreach ($attendances as $attendance)
<tr>
<td>{{ $loop->iteration }}</td>
<td class="text-start">{{ $attendance->employee->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($attendance->date) }}</td>
<td class="text-start">{{ ucfirst($attendance->month) }}</td>
<td class="text-start">{{ $attendance->shift->name ?? '' }}</td>
<td class="text-start">{{ formatted_time($attendance->time_in) }}</td>
<td class="text-start">{{ formatted_time($attendance->time_out) }}</td>
<td class="text-start">{{ formatTimeToWords($attendance->duration) }}</td>
</tr>
@endforeach
</tbody>
</table>

View File

@@ -0,0 +1,106 @@
@extends('layouts.business.master')
@section('title')
{{ __('Attendance Report') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16 d-print-none">
<h4>{{ __('Attendance Report') }}</h4>
</div>
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
@include('business::print.header')
<h4 class="mt-2">{{ __('Attendance Report List') }}</h4>
</div>
<div class="table-top-form p-16-0">
<div class="d-flex align-items-center gap-1 flex-wrap">
<form action="{{ route('hrm.attendance-reports.index') }}" method="GET" class="filter-form d-print-none" table="#attendances-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" />
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round" />
</svg>
</span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none employee-select">
<select name="employee" class="form-control">
<option value="">{{ __('Select employee') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}" @selected(request('employee') == $employee->id) >{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none">
<select name="month" class="form-control">
<option value="">{{ __('All month') }}</option>
@for ($month = 1; $month <= 12; $month++)
@php
$monthSlug = strtolower(date('F', mktime(0, 0, 0, $month, 1)));
@endphp
<option value="{{ $monthSlug }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
</form>
</div>
<div class="table-top-btn-group d-print-none">
<ul>
<li>
<a href="{{ route('hrm.attendance-reports.csv') }}">
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
</a>
</li>
<li>
<a href="{{ route('hrm.attendance-reports.excel') }}">
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
</a>
</li>
<li>
<a target="blank" href="{{ route('hrm.attendance-reports.pdf') }}">
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
</a>
</li>
<li>
<a onclick="window.print()" class="print-window">
<img src="{{ asset('assets/images/logo/printer.svg') }}" alt="">
</a>
</li>
</ul>
</div>
</div>
</div>
<div id="attendances-data">
@include('hrmaddon::reports.attendances.datas')
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,50 @@
@extends('layouts.business.pdf.pdf_layout')
@section('pdf_title')
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
@include('business::print.header')
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Attendance Report List') }}</h4>
</div>
@endsection
@section('pdf_content')
<table width="100%" cellpadding="6" cellspacing="0"
style="border-collapse: collapse; border: 1px solid gainsboro; font-size:12px;"
id="datatable">
<thead>
<tr style="background-color: #C52127; color: white;">
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Employee') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Date') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Shift') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Time In') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Time Out') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Duration') }}</th>
</tr>
</thead>
<tbody>
@foreach ($attendances as $attendance)
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
<td style="border:1px solid gainsboro; text-align:center;">
{{ $attendance->employee->name ?? '' }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatted_date($attendance->date) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ $attendance->shift->name ?? '' }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatted_time($attendance->time_in) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatted_time($attendance->time_out) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatTimeToWords($attendance->duration) }}
</td>
</tr>
@endforeach
</tbody>
</table>
@endsection

View File

@@ -0,0 +1,47 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
<th class="d-print-none">{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start d-print-none">{{ __('Department') }}</th>
<th class="text-start">{{ __('Start Date') }}</th>
<th class="text-start">{{ __('End Date') }}</th>
<th class="text-start">{{ __('Leave Type') }}</th>
<th class="text-start d-print-none">{{ __('Leave Duration') }}</th>
<th class="text-center">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
@foreach ($leaves as $leave)
<tr>
<td class="d-print-none">{{ ($leaves->currentPage() - 1) * $leaves->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $leave->employee->name ?? '' }}</td>
<td class="text-start">{{ ucfirst($leave->month) }}</td>
<td class="text-start d-print-none">{{ $leave->department->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($leave->start_date) }}</td>
<td class="text-start">{{ formatted_date($leave->end_date) }}</td>
<td class="text-start">{{ $leave->leave_type->name ?? '' }}</td>
<td class="text-start d-print-none">{{ $leave->leave_duration }} {{ __('Days') }}</td>
@if ($leave->status == 'pending')
<td class="text-warning text-center">
<div class="padding-status">{{__('Pending')}}</div>
</td>
@elseif ($leave->status == 'approved')
<td class="text-warning text-center">
<div class="approved-status">{{__('Approved')}}</div>
</td>
@elseif ($leave->status == 'rejected')
<td class="text-warning text-center">
<div class="rejected-status">{{__('Rejected')}}</div>
</td>
@endif
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $leaves->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,42 @@
<table class="table" id="datatable">
<thead>
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Department') }}</th>
<th class="text-start">{{ __('Start Date') }}</th>
<th class="text-start">{{ __('End Date') }}</th>
<th class="text-start">{{ __('Leave Type') }}</th>
<th class="text-start">{{ __('Leave Duration') }}</th>
<th class="text-center">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
@foreach ($leaves as $leave)
<tr>
<td>{{ $loop->iteration }}</td>
<td class="text-start">{{ $leave->employee->name ?? '' }}</td>
<td class="text-start">{{ ucfirst($leave->month) }}</td>
<td class="text-start">{{ $leave->department->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($leave->start_date) }}</td>
<td class="text-start">{{ formatted_date($leave->end_date) }}</td>
<td class="text-start">{{ $leave->leave_type->name ?? '' }}</td>
<td class="text-start">{{ $leave->leave_duration }} {{ __('Days') }}</td>
@if ($leave->status == 'pending')
<td class="text-warning text-center">
<div class="padding-status">{{__('Pending')}}</div>
</td>
@elseif ($leave->status == 'approved')
<td class="text-warning text-center">
<div class="approved-status">{{__('Approved')}}</div>
</td>
@elseif ($leave->status == 'rejected')
<td class="text-warning text-center">
<div class="rejected-status">{{__('Rejected')}}</div>
</td>
@endif
</tr>
@endforeach
</tbody>
</table>

View File

@@ -0,0 +1,106 @@
@extends('layouts.business.master')
@section('title')
{{ __('Leave Report') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16 d-print-none">
<h4>{{ __('Leave Report') }}</h4>
</div>
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
@include('business::print.header')
<h4 class="mt-2">{{ __('Leave Report List') }}</h4>
</div>
<div class="table-top-form p-16-0">
<div class="d-flex align-items-center gap-1 flex-wrap">
<form action="{{ route('hrm.leave-reports.index') }}" method="GET" class="filter-form d-print-none" table="#leaves-report-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none employee-select">
<select name="employee" class="form-control">
<option value="">{{ __('Select employee') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}" @selected(request('employee') == $employee->id) >{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none ">
<select name="month" class="form-control">
<option value="">{{ __('All month') }}</option>
@for ($month = 1; $month <= 12; $month++)
@php
$monthSlug = strtolower(date('F', mktime(0, 0, 0, $month, 1)));
@endphp
<option value="{{ $monthSlug }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
</form>
</div>
<div class="table-top-btn-group d-print-none">
<ul>
<li>
<a href="{{ route('hrm.leave-reports.csv') }}">
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
</a>
</li>
<li>
<a href="{{ route('hrm.leave-reports.excel') }}">
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
</a>
</li>
<li>
<a target="blank" href="{{ route('hrm.leave-reports.pdf') }}">
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
</a>
</li>
<li>
<a onclick="window.print()" class="print-window">
<img src="{{ asset('assets/images/logo/printer.svg') }}" alt="">
</a>
</li>
</ul>
</div>
</div>
</div>
<div id="leaves-report-data">
@include('hrmaddon::reports.leaves.datas')
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,60 @@
@extends('layouts.business.pdf.pdf_layout')
@section('pdf_title')
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
@include('business::print.header')
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Leave Report List') }}</h4>
</div>
@endsection
@section('pdf_content')
<table width="100%" cellpadding="6" cellspacing="0"
style="border-collapse: collapse; border: 1px solid gainsboro; font-size:12px;"
id="datatable">
<thead>
<tr style="background-color: #C52127; color: white;">
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Employee') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Month') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Start Date') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('End Date') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Leave Type') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Duration') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
@foreach ($leaves as $leave)
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
<td style="border:1px solid gainsboro; text-align:center;">
{{ $leave->employee?->name }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ ucfirst($leave->month) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatted_date($leave->start_date) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatted_date($leave->end_date) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ $leave->leave_type?->name }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ $leave->leave_duration }} {{ __('Days') }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
@if ($leave->status == 'pending')
{{__('Pending')}}
@elseif ($leave->status == 'approved')
{{__('Approved')}}
@elseif ($leave->status == 'rejected')
{{__('Rejected')}}
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
@endsection

View File

@@ -0,0 +1,53 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Date') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Slip No') }}</th>
<th class="text-start">{{ __('Amount') }}</th>
<th class="text-start">{{ __('Payment Type') }}</th>
<th class="text-center">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
@foreach ($payrolls as $payroll)
<tr>
<td>{{ ($payrolls->currentPage() - 1) * $payrolls->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $payroll->employee->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($payroll->date) }}</td>
<td class="text-start">{{ ucfirst($payroll->month) }}</td>
<td class="text-start">{{ $payroll->puid }}</td>
<td class="text-start">{{ currency_format($payroll->amount, currency: business_currency()) }}</td>
<td class="text-start">{{ $payroll->payment_type->name ?? 'Cash' }}</td>
@if ($payroll->status == 'unpaid')
<td class="text-warning text-center">
<div class="padding-status">Unpaid</div>
</td>
@else
<td class="text-warning text-center">
<div class="approved-status">Paid</div>
</td>
@endif
</tr>
@endforeach
</tbody>
@if ($payrolls->count() > 0)
<tr class="table-footer">
<td class="text-start">{{__('Total')}}</td>
<td class="text-start"></td>
<td class="text-start"></td>
<td class="text-start"></td>
<td class="text-start"></td>
<td class="text-start">{{ currency_format($payrolls->sum('amount'), currency: business_currency()) }}</td>
<td class="text-start"></td>
<td class="text-start"></td>
</tr>
@endif
</table>
</div>
<div class="mt-3">
{{ $payrolls->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,48 @@
<table class="table" id="datatable">
<thead>
<tr>
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Employee') }}</th>
<th class="text-start">{{ __('Date') }}</th>
<th class="text-start">{{ __('Month') }}</th>
<th class="text-start">{{ __('Slip No') }}</th>
<th class="text-start">{{ __('Amount') }}</th>
<th class="text-start">{{ __('Payment Type') }}</th>
<th class="text-center">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
@foreach ($payrolls as $payroll)
<tr>
<td>{{ $loop->iteration }}</td>
<td class="text-start">{{ $payroll->employee->name ?? '' }}</td>
<td class="text-start">{{ formatted_date($payroll->date) }}</td>
<td class="text-start">{{ ucfirst($payroll->month) }}</td>
<td class="text-start">{{ $payroll->puid }}</td>
<td class="text-start">{{ currency_format($payroll->amount, currency: business_currency()) }}</td>
<td class="text-start">{{ $payroll->payment_type->name ?? 'Cash' }}</td>
@if ($payroll->status == 'unpaid')
<td class="text-warning text-center">
<div class="padding-status">Unpaid</div>
</td>
@else
<td class="text-warning text-center">
<div class="approved-status">Paid</div>
</td>
@endif
</tr>
@endforeach
</tbody>
@if ($payrolls->count() > 0)
<tr class="table-footer">
<td class="text-start">{{__('Total')}}</td>
<td class="text-start"></td>
<td class="text-start"></td>
<td class="text-start"></td>
<td class="text-start"></td>
<td class="text-start">{{ currency_format($payrolls->sum('amount'), currency: business_currency()) }}</td>
<td class="text-start"></td>
<td class="text-start"></td>
</tr>
@endif
</table>

View File

@@ -0,0 +1,104 @@
@extends('layouts.business.master')
@section('title')
{{ __('Payroll Report') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16 d-print-none">
<h4>{{ __('Payroll Report') }}</h4>
</div>
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
@include('business::print.header')
<h4 class="mt-2">{{ __('Payroll Report List') }}</h4>
</div>
<div class="table-top-form p-16-0">
<div class="d-flex align-items-center gap-1 flex-wrap">
<form action="{{ route('hrm.payroll-reports.index') }}" method="GET" class="filter-form d-print-none" table="#payrolls-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none employee-select">
<select name="employee" class="form-control custom-days">
<option value="">{{ __('Select employee') }}</option>
@foreach ($employees as $employee)
<option value="{{ $employee->id }}" @selected(request('employee_id') == $employee->id) >{{ $employee->name }}</option>
@endforeach
</select>
<span></span>
</div>
<div class="gpt-up-down-arrow position-relative d-print-none">
<select name="month" class="form-control custom-days">
<option value="">{{ __('All month') }}</option>
@for ($month = 1; $month <= 12; $month++)
@php
$monthSlug = strtolower(date('F', mktime(0, 0, 0, $month, 1)));
@endphp
<option value="{{ $monthSlug }}">
{{ date('F', mktime(0, 0, 0, $month, 1)) }}
</option>
@endfor
</select>
<span></span>
</div>
</div>
</form>
</div>
<div class="table-top-btn-group d-print-none">
<ul>
<li>
<a href="{{ route('hrm.payroll-reports.csv') }}">
<img src="{{ asset('assets/images/logo/csv.svg') }}" alt="">
</a>
</li>
<li>
<a href="{{ route('hrm.payroll-reports.excel') }}">
<img src="{{ asset('assets/images/logo/excel.svg') }}" alt="">
</a>
</li>
<li>
<a target="blank" href="{{ route('hrm.payroll-reports.pdf') }}">
<img src="{{ asset('assets/images/logo/pdf.svg') }}" alt="">
</a>
</li>
<li>
<a onclick="window.print()" class="print-window">
<img src="{{ asset('assets/images/logo/printer.svg') }}" alt="">
</a>
</li>
</ul>
</div>
</div>
</div>
<div id="payrolls-data">
@include('hrmaddon::reports.payrolls.datas')
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,65 @@
@extends('layouts.business.pdf.pdf_layout')
@section('pdf_title')
<div class="table-header justify-content-center border-0 d-none d-block d-print-block text-center">
@include('business::print.header')
<h4 style="text-align: center; margin: 0; padding: 0; font-size: 16px;" class="">{{ __('Payroll Report List') }}</h4>
</div>
@endsection
@section('pdf_content')
<table width="100%" cellpadding="6" cellspacing="0"
style="border-collapse: collapse; border: 1px solid gainsboro; font-size:12px;"
id="datatable">
<thead>
<tr style="background-color: #C52127; color: white;">
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Employee') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Date') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Slip No') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Amount') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Payment') }}</th>
<th style="font-size:12px; border:1px solid gainsboro; color: white" class="text-start">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
@foreach ($payrolls as $payroll)
<tr style="background-color: {{ $loop->even ? '#F5F5F5' : '#FFFFFF' }};">
<td style="border:1px solid gainsboro; text-align:center;">
{{ $payroll->employee->name ?? '' }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ formatted_date($payroll->date) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ $payroll->puid }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ currency_format($payroll->amount, currency: business_currency()) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ $payroll->payment_type->name ?? 'Cash' }}
</td>
<td style="border:1px solid gainsboro; text-align:center;">
{{ $payroll->status == 'unpaid' ? 'Unpaid' : 'Paid' }}
</td>
</tr>
@endforeach
</tbody>
@if ($payrolls->count() > 0)
<tfoot>
<tr style="background-color:#C52127; color:#FFFFFF; font-weight:bold;">
<td style="border:1px solid gainsboro; text-align:center; color: white">
{{ __('Total') }}
</td>
<td style="border:1px solid gainsboro; text-align:center;"></td>
<td style="border:1px solid gainsboro; text-align:center;"></td>
<td style="border:1px solid gainsboro; text-align:center; color: white; font-weight: 600;">
{{ currency_format($payrolls->sum('amount'), currency: business_currency()) }}
</td>
<td style="border:1px solid gainsboro; text-align:center;"></td>
</tr>
</tfoot>
@endif
</table>
@endsection

View File

@@ -0,0 +1,68 @@
<div class="modal fade common-validation-modal" id="shifts-create-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Create Shift') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="{{ route('hrm.shifts.store') }}" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload">
@csrf
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Select Name') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="name" required class="form-control table-select w-100 role">
<option value=""> {{ __('Select one') }}</option>
<option value="Morning">{{ __('Morning') }}</option>
<option value="Day">{{ __('Day') }}</option>
<option value="Evening">{{ __('Evening') }}</option>
<option value="Night">{{ __('Night') }}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Break Status') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="break_status" class="form-control table-select w-100 role break-status">
<option value=""> {{ __('Select a one') }}</option>
<option selected value="yes">{{ __('Yes') }}</option>
<option value="no">{{ __('No') }}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Start Time') }}</label>
<input type="time" value="{{ date('H:i') }}" required class="form-control" name="start_time">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('End Time') }}</label>
<input type="time" value="{{ date('H:i') }}" required class="form-control" name="end_time">
</div>
<div class="col-lg-6 mb-2 start-break-time">
<label>{{ __('Start Break Time') }}</label>
<input type="time" value="{{ date('H:i') }}" class="form-control" name="start_break_time">
</div>
<div class="col-lg-6 mb-2 start-break-time">
<label>{{ __('End Break Time') }}</label>
<input type="time" value="{{ date('H:i') }}" class="form-control" name="end_break_time">
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('shifts.create')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,85 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('shifts.delete')
<th class="w-60">
<div class="d-flex align-items-center gap-3">
<input type="checkbox" class="select-all-delete multi-delete">
</div>
</th>
@endusercan
<th>{{ __('SL') }}.</th>
<th class="text-start">{{ __('Name') }}</th>
<th class="text-start">{{ __('Start Time') }}</th>
<th class="text-start">{{ __('End Time') }}</th>
<th class="text-start">{{ __('Break Time') }}</th>
<th class="text-start">{{ __('Break Duration') }}</th>
<th>{{ __('Status') }}</th>
<th>{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($shifts as $shift)
<tr>
@usercan('shifts.delete')
<td class="w-60 checkbox">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete"
value="{{ $shift->id }}">
</td>
@endusercan
<td>{{ ($shifts->currentPage() - 1) * $shifts->perPage() + $loop->iteration }}</td>
<td class="text-start">{{ $shift->name }}</td>
<td class="text-start">{{ formatted_time($shift->start_time) }}</td>
<td class="text-start">{{ formatted_time($shift->end_time) }}</td>
<td class="text-start">{{ formatted_time($shift->start_break_time ?? '') }} -
{{ formatted_time($shift->end_break_time ?? '') }} </td>
<td class="text-start">{{ formatTimeToWords($shift->break_time) }}</td>
<td>
<label class="switch">
<input type="checkbox" {{ $shift->status == 1 ? 'checked' : '' }} class="status"
data-url="{{ route('hrm.shifts.status', $shift->id) }}">
<span class="slider round"></span>
</label>
</td>
<td class="print-d-none">
<div class="dropdown table-action">
<button type="button" data-bs-toggle="dropdown">
<i class="far fa-ellipsis-v"></i>
</button>
<ul class="dropdown-menu">
@usercan('shifts.update')
<li>
<a href="#shifts-edit-modal" data-bs-toggle="modal" class="shifts-edit-btn"
data-url="{{ route('hrm.shifts.update', $shift->id) }}"
data-shifts-name="{{ $shift->name }}"
data-shifts-break-status="{{ $shift->break_status }}"
data-shifts-start="{{ $shift->start_time }}"
data-shifts-end="{{ $shift->end_time }}"
data-start-break-time="{{ $shift->start_break_time }}"
data-end-break-time="{{ $shift->end_break_time }}">
<i class="fal fa-pencil-alt"></i>{{ __('Edit') }}</a>
</li>
@endusercan
@usercan('shifts.delete')
<li>
<a href="{{ route('hrm.shifts.destroy', $shift->id) }}" class="confirm-action"
data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
</li>
@endusercan
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $shifts->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,69 @@
<div class="modal fade common-validation-modal editShiftModal" id="shifts-edit-modal">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5">{{ __('Edit Shift') }}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="personal-info">
<form action="" method="post" enctype="multipart/form-data"
class="ajaxform_instant_reload editShiftForm">
@csrf
@method('put')
<div class="row">
<div class="col-lg-6 mb-2">
<label>{{ __('Select Name') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="name" id="shift_eidt_name" required class="form-control table-select w-100 role">
<option value=""> {{ __('Select one') }}</option>
<option value="Morning">{{ __('Morning') }}</option>
<option value="Day">{{ __('Day') }}</option>
<option value="Evening">{{ __('Evening') }}</option>
<option value="Night">{{ __('Night') }}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Break Status') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="break_status" id="break_status" class="form-control table-select w-100 role break-status">
<option value=""> {{ __('Select a one') }}</option>
<option value="yes">{{ __('Yes') }}</option>
<option value="no">{{ __('No') }}</option>
</select>
<span></span>
</div>
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('Start Time') }}</label>
<input type="time" value="{{ date('H:i') }}" required id="shift_start_time" class="form-control" name="start_time">
</div>
<div class="col-lg-6 mb-2">
<label>{{ __('End Time') }}</label>
<input type="time" value="{{ date('H:i') }}" required id="shift_end_time" class="form-control" name="end_time">
</div>
<div class="col-lg-6 mb-2 start-break-time">
<label>{{ __('Start Break Time') }}</label>
<input type="time" value="{{ date('H:i') }}" id="edit_start_break_time" class="form-control" name="start_break_time">
</div>
<div class="col-lg-6 mb-2 end-break-time">
<label>{{ __('End Break Time') }}</label>
<input type="time" value="{{ date('H:i') }}" id="edit_end_break_time" class="form-control" name="end_break_time">
</div>
</div>
<div class="col-lg-12">
<div class="button-group text-center mt-5">
<button type="reset" class="theme-btn border-btn m-2">{{ __('Reset') }}</button>
@usercan('shifts.update')
<button class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,64 @@
@extends('layouts.business.master')
@section('title')
{{ __('Shift List') }}
@endsection
@section('main_content')
<div class="erp-table-section">
<div class="container-fluid">
<div class="card">
<div class="card-bodys">
<div class="table-header p-16">
<h4>{{ __('Shift List') }}</h4>
@usercan('shifts.read')
<a type="button" href="#shifts-create-modal" data-bs-toggle="modal" class="add-order-btn rounded-2"><i class="fas fa-plus-circle me-1"></i>{{ __('Add new Shift') }}</a>
@endusercan
</div>
<div class="table-top-form p-16-0">
<form action="{{ route('hrm.shifts.index') }}" method="GET" class="filter-form" table="#shifts-data">
<div class="table-top-left d-flex gap-3 margin-l-16">
<div class="gpt-up-down-arrow position-relative">
<select name="per_page" class="form-control">
<option @selected(request('per_page') == 20) value="20">{{ __('Show 20') }}</option>
<option @selected(request('per_page') == 50) value="50">{{ __('Show 50') }}</option>
<option @selected(request('per_page') == 100) value="100">{{ __('Show 100') }}</option>
<option @selected(request('per_page') == 500) value="500">{{ __('Show 500') }}</option>
</select>
<span></span>
</div>
<div class="table-search position-relative">
<input type="text" name="search" class="form-control" placeholder="{{ __('Search...') }}" value="{{ request('search') }}">
<span class="position-absolute">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.582 14.582L18.332 18.332" stroke="#4D4D4D" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.668 9.16797C16.668 5.02584 13.3101 1.66797 9.16797 1.66797C5.02584 1.66797 1.66797 5.02584 1.66797 9.16797C1.66797 13.3101 5.02584 16.668 9.16797 16.668C13.3101 16.668 16.668 13.3101 16.668 9.16797Z" stroke="#4D4D4D" stroke-width="1.25" stroke-linejoin="round"/>
</svg>
</span>
</div>
</div>
</form>
</div>
</div>
<div class="delete-item delete-show d-none">
<div class="delete-item-show">
<p class="fw-bold"><span class="selected-count"></span> {{ __('items show') }}</p>
<button data-bs-toggle="modal" class="trigger-modal" data-bs-target="#multi-delete-modal" data-url="{{ route('hrm.shifts.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="shifts-data">
@include('hrmaddon::shifts.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('hrmaddon::component.delete-modal')
@include('hrmaddon::shifts.create')
@include('hrmaddon::shifts.edit')
@endpush