migrate to gtea from bistbucket

This commit is contained in:
2026-03-15 17:08:23 +07:00
commit 129ca2260c
3716 changed files with 566316 additions and 0 deletions

View File

@@ -0,0 +1,248 @@
@extends('layouts.business.master')
@section('title')
{{ __('Roles') }}
@endsection
@php
$colClass = auth()->user()->accessToMultiBranch() ? 'col-lg-3' : 'col-lg-4';
@endphp
@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>{{ __('Add New Role') }}</h4>
<a href="{{ route('business.roles.index') }}"
class="add-order-btn rounded-2"><i class="far fa-list me-1" aria-hidden="true"></i> {{ __('View List') }}
</a>
</div>
<div class="row justify-content-center mt-2 roles-permissions p-16">
<div class="col-md-12">
<form action="{{ route('business.roles.store') }}" method="post" class="row ajaxform_instant_reload">
@csrf
@if(auth()->user()->accessToMultiBranch())
<div class="{{ $colClass }} form-group role-input-label">
<label>{{ __('Branch') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="branch_id" class="form-control">
<option value="">{{ __('All Branch') }}</option>
@foreach ($branches as $branch)
<option value="{{ $branch->id }}">{{ $branch->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
@endif
<div class="{{ $colClass }} form-group role-input-label">
<label for="name" class="required">{{ __('Name') }}</label>
<input type="text" name="name" class="form-control" placeholder="{{ __('Enter name') }}" required>
</div>
<div class="{{ $colClass }} form-group role-input-label">
<label for="email" class="required">{{ __('Email') }}</label>
<input type="email" name="email" class="form-control" placeholder="{{ __('Enter email') }}" required>
</div>
<div class="{{ $colClass }} form-group role-input-label">
<label for="password" class="required">{{ __('Password') }}</label>
<input type="password" name="password" class="form-control" placeholder="{{ __('*******') }}" required>
</div>
<div class="col-lg-12 mt-3">
<div class="table-responsive">
<table class="table">
<tbody>
<tr>
<th class="text-nowrap text-start ">
{{ __('SL') }}
</th>
<th class="text-nowrap text-start">
{{ __('Features') }}
</th>
<th class="text-start">
<div class="custom-control custom-checkbox d-flex align-items-center gap-2">
<input type="checkbox" class="custom-control-input delete-checkbox-item multi-delete"
id="selectAll">
<label class="custom-control-label"
for="selectAll">{{ __('Select All') }}</label>
</div>
</th>
</tr>
@php
$permissions = [
'dashboard' => ['Read'],
'sales' => ['Read', 'Create', 'Update', 'Delete'],
'inventory' => ['Read', 'Create'],
'sale-returns' => ['Read', 'Create'],
'purchases' => ['Read', 'Create', 'Update', 'Delete', 'Price'],
'purchase-returns' => ['Read', 'Create', 'Price'],
'products' => ['Read', 'Create', 'Update', 'Delete', 'Price'],
'products-expired' => ['Read', 'Price'],
'barcodes' => ['Read', 'Create'],
'bulk-uploads' => ['Read', 'Create'],
'categories' => ['Read', 'Create', 'Update', 'Delete'],
'brands' => ['Read', 'Create', 'Update', 'Delete'],
'units' => ['Read', 'Create', 'Update', 'Delete'],
'product-models' => ['Read', 'Create', 'Update', 'Delete'],
'variations' => ['Read', 'Create', 'Update', 'Delete'],
'stocks' => ['Read', 'Price'],
'expired-products' => ['Read'],
'parties' => ['Read', 'Create', 'Update', 'Delete',],
'incomes' => ['Read', 'Create', 'Update', 'Delete',],
'income-categories' => ['Read', 'Create', 'Update', 'Delete'],
'expenses' => ['Read', 'Create', 'Update', 'Delete'],
'expense-categories' => ['Read', 'Create', 'Update', 'Delete'],
'vats' => ['Read', 'Create', 'Update', 'Delete'],
'dues' => ['Read',],
'subscriptions' => ['Read'],
'loss-profits' => ['Read'],
'payment-types' => ['Read', 'Create', 'Update', 'Delete'],
'roles' => ['Read', 'Create', 'Update', 'Delete'],
'manage-settings' => ['Read', 'Update'],
'download-apk' => ['Read'],
'sale-reports' => ['Read'],
'sale-return-reports' => ['Read'],
'purchase-reports' => ['Read'],
'purchase-return-reports' => ['Read'],
'vat-reports' => ['Read'],
'income-reports' => ['Read'],
'expense-reports' => ['Read'],
'loss-profits-details' => ['Read'],
'stock-reports' => ['Read'],
'due-reports' => ['Read'],
'supplier-due-reports' => ['Read'],
'loss-profit-reports' => ['Read'],
'transaction-history-reports' => ['Read'],
'subscription-reports' => ['Read'],
'expired-product-reports' => ['Read', 'Price'],
'banks' => ['Read', 'Create', 'Update', 'Delete'],
'cashes' => ['Read', 'Create', 'Update', 'Delete'],
'cheques' => ['Read'],
'loss-profit-history' => ['Read'],
'day-book-reports' => ['Read'],
'cash-flow-reports' => ['Read'],
'bill-wise-profits' => ['Read'],
'transactions' => ['Read'],
'product-loss-profit-reports' => ['Read'],
'top-customers-reports' => ['Read'],
'top-suppliers-reports' => ['Read'],
'top-product-reports' => ['Read'],
'combo-product-reports' => ['Read'],
'discount-product-reports' => ['Read'],
'product-purchase-reports' => ['Read'],
'product-sale-reports' => ['Read'],
'customer-ledger' => ['Read'],
'supplier-ledger' => ['Read'],
'party-loss-profit' => ['Read'],
'loss-profit-history-reports' => ['Read'],
'product-sale-history-reports' => ['Read'],
'product-purchase-history-reports' => ['Read'],
];
if (moduleCheck('HrmAddon')) {
$permissions = array_merge($permissions, [
'department' => ['Read', 'Create', 'Update', 'Delete'],
'designations' => ['Read', 'Create', 'Update', 'Delete'],
'shifts' => ['Read', 'Create', 'Update', 'Delete'],
'employees' => ['Read', 'Create', 'Update', 'Delete'],
'leave-types' => ['Read', 'Create', 'Update', 'Delete'],
'leaves' => ['Read', 'Create', 'Update', 'Delete'],
'holidays' => ['Read', 'Create', 'Update', 'Delete'],
'attendances' => ['Read', 'Create', 'Update', 'Delete'],
'payrolls' => ['Read', 'Create', 'Update', 'Delete'],
'attendance-reports' => ['Read'],
'payroll-reports' => ['Read'],
'leave-reports' => ['Read'],
]);
}
if (moduleCheck('WarehouseAddon')) {
$permissions = array_merge($permissions, [
'warehouses' => ['Read', 'Create', 'Update', 'Delete'],
'transfers' => ['Read', 'Create', 'Update', 'Delete'],
'racks' => ['Read', 'Create', 'Update', 'Delete'],
'shelfs' => ['Read', 'Create', 'Update', 'Delete'],
]);
}
if (moduleCheck('MultiBranchAddon') && auth()->user()->accessToMultiBranch()) {
$permissions = array_merge($permissions, [
'branches' => ['Read', 'Create', 'Update', 'Delete'],
]);
}
if (moduleCheck('CustomDomainAddon')) {
$permissions = array_merge($permissions, [
'domains' => ['Read', 'Create', 'Update', 'Delete'],
]);
}
if (moduleCheck('CustomReportsAddon')) {
$permissions = array_merge($permissions, [
'custom-reports' => ['Read', 'Create', 'Update', 'Delete']
]);
}
@endphp
@foreach ($permissions as $module => $actions)
<tr>
<td class="text-start">{{ $loop->iteration }}</td>
<td class="text-nowrap text-start">
{{ ucfirst(str_replace('-', ' ', $module)) }}</td>
<td>
<div class="d-flex">
@foreach ($actions as $action)
@php
$key = strtolower($action);
$id = $module . '_' . $key;
$name = 'permissions' . '[' . $module . ']' . '[' . $key . ']';
@endphp
<div
class="custom-control custom-checkbox mr-3 me-lg-5 d-flex align-items-center gap-2">
<input type="hidden" name="{{ $name }}" value="0">
<input type="checkbox" name="{{ $name }}" value="1" class="custom-control-input delete-checkbox-item multi-delete" id="{{ $id }}">
<label class="custom-control-label" for="{{ $id }}">
{{ $action }}
</label>
</div>
@endforeach
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="col-12 text-center mt-2">
<button type="reset" class="theme-btn border-btn m-2 ">
{{ __('Reset') }}
</button>
@usercan('roles.create')
<button type="submit" class="theme-btn m-2 submit-btn "> {{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,85 @@
<div class="responsive-table m-0">
<table class="table" id="datatable">
<thead>
<tr>
@usercan('roles.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> {{ __('Name') }} </th>
@if (auth()->user()->accessToMultiBranch())
<th> {{ __('Branch') }} </th>
@endif
<th> {{ __('Features') }} </th>
<th class="d-print-none"> {{ __('Action') }} </th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
@usercan('roles.delete')
<td class="w-60 checkbox d-print-none">
<input type="checkbox" name="ids[]" class="delete-checkbox-item multi-delete" value="{{ $user->id }}">
</td>
@endusercan
<td>{{ ($users->currentPage() - 1) * $users->perPage() + $loop->iteration }}</td>
<td>{{ $user->name }}</td>
@if (auth()->user()->accessToMultiBranch())
<td>{{ $user->branch->name ?? '' }}</td>
@endif
<td>
@php
$count = 0;
foreach ($user->visibility ?? [] as $module) {
if (is_array($module)) {
foreach ($module as $value) {
if ($value == '1' || $value === true) {
$count++;
}
}
}
}
@endphp
{{ $count }}
</td>
<td class="d-print-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">
<li>
@usercan('roles.update')
<a href="{{ route('business.roles.edit', $user->id) }}">
<i class="fal fa-edit"></i>
{{ __('Edit') }}
</a>
@endusercan
</li>
<li>
@usercan('roles.delete')
<a href="{{ route('business.roles.destroy', $user->id) }}" class="confirm-action"
data-method="DELETE">
<i class="fal fa-trash-alt"></i>
{{ __('Delete') }}
</a>
@endusercan
</li>
</ul>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">
{{ $users->links('vendor.pagination.bootstrap-5') }}
</div>

View File

@@ -0,0 +1,247 @@
@extends('layouts.business.master')
@section('title')
{{ __('Roles') }}
@endsection
@php
$colClass = auth()->user()->accessToMultiBranch() ? 'col-lg-3' : 'col-lg-4';
@endphp
@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>{{ __('Edit Role') }}</h4>
<a href="{{ route('business.roles.index') }}"
class="add-order-btn rounded-2"><i class="far fa-list me-1" aria-hidden="true"></i> {{ __('View List') }}
</a>
</div>
<div class="row justify-content-center mt-2 roles-permissions p-16">
<div class="col-md-12">
<form action="{{ route('business.roles.update', $user->id) }}" method="post" class="row ajaxform_instant_reload">
@method('put')
@csrf
@if(auth()->user()->accessToMultiBranch())
<div class="col-lg-3 form-group role-input-label">
<label>{{ __('Branch') }}</label>
<div class="gpt-up-down-arrow position-relative">
<select name="branch_id" class="form-control">
<option value="">{{ __('All Branch') }}</option>
@foreach ($branches as $branch)
<option value="{{ $branch->id }}" @selected($user->branch_id == $branch->id) >{{ $branch->name }}</option>
@endforeach
</select>
<span></span>
</div>
</div>
@endif
<div class="{{ $colClass }} form-group role-input-label">
<label for="name" class="required">{{ __('Name') }}</label>
<input type="text" name="name" value="{{ $user->name }}"class="form-control" placeholder="{{ __('Enter name') }}" required>
</div>
<div class="{{ $colClass }} form-group role-input-label">
<label for="email" class="required">{{ __('Email') }}</label>
<input type="email" name="email" value="{{ $user->email }}" class="form-control" placeholder="{{ __('Enter email') }}" required>
</div>
<div class="{{ $colClass }} form-group role-input-label">
<label for="password" class="required">{{ __('Update Password') }}</label>
<input type="password" name="password" class="form-control" placeholder="{{ __('******') }}">
</div>
<div class="col-lg-12 mt-3">
<div class="table-responsive">
<table class="table">
<tbody>
<tr>
<th class="text-nowrap text-start">
{{ __('SL') }}
</th>
<th class="text-nowrap text-start">
{{ __('Features') }}
</th>
<th class="text-start">
<div class="custom-control custom-checkbox d-flex align-items-center gap-2">
<input type="checkbox" class="custom-control-input delete-checkbox-item multi-delete"
id="selectAll">
<label class="custom-control-label "
for="selectAll">{{ __('Select All') }}</label>
</div>
</th>
</tr>
@php
$permissions = [
'dashboard' => ['Read'],
'sales' => ['Read', 'Create', 'Update', 'Delete'],
'inventory' => ['Read', 'Create'],
'sale-returns' => ['Read', 'Create'],
'purchases' => ['Read', 'Create', 'Update', 'Delete', 'Price'],
'purchase-returns' => ['Read', 'Create', 'Price'],
'products' => ['Read', 'Create', 'Update', 'Delete', 'Price'],
'products-expired' => ['Read', 'Price'],
'barcodes' => ['Read', 'Create'],
'bulk-uploads' => ['Read', 'Create'],
'categories' => ['Read', 'Create', 'Update', 'Delete'],
'brands' => ['Read', 'Create', 'Update', 'Delete'],
'units' => ['Read', 'Create', 'Update', 'Delete'],
'product-models' => ['Read', 'Create', 'Update', 'Delete'],
'stocks' => ['Read', 'Price'],
'expired-products' => ['Read'],
'parties' => ['Read', 'Create', 'Update', 'Delete',],
'incomes' => ['Read', 'Create', 'Update', 'Delete',],
'income-categories' => ['Read', 'Create', 'Update', 'Delete'],
'expenses' => ['Read', 'Create', 'Update', 'Delete'],
'expense-categories' => ['Read', 'Create', 'Update', 'Delete'],
'vats' => ['Read', 'Create', 'Update', 'Delete'],
'dues' => ['Read',],
'subscriptions' => ['Read'],
'loss-profits' => ['Read'],
'payment-types' => ['Read', 'Create', 'Update', 'Delete'],
'roles' => ['Read', 'Create', 'Update', 'Delete'],
'manage-settings' => ['Read', 'Update'],
'download-apk' => ['Read'],
'sale-reports' => ['Read'],
'sale-return-reports' => ['Read'],
'purchase-reports' => ['Read'],
'purchase-return-reports' => ['Read'],
'vat-reports' => ['Read'],
'income-reports' => ['Read'],
'expense-reports' => ['Read'],
'loss-profits-details' => ['Read'],
'stock-reports' => ['Read'],
'due-reports' => ['Read'],
'supplier-due-reports' => ['Read'],
'loss-profit-reports' => ['Read'],
'transaction-history-reports' => ['Read'],
'subscription-reports' => ['Read'],
'expired-product-reports' => ['Read', 'Price'],
'banks' => ['Read', 'Create', 'Update', 'Delete'],
'cashes' => ['Read', 'Create', 'Update', 'Delete'],
'cheques' => ['Read'],
'loss-profit-history' => ['Read'],
'day-book-reports' => ['Read'],
'cash-flow-reports' => ['Read'],
'bill-wise-profits' => ['Read'],
'transactions' => ['Read'],
'product-loss-profit-reports' => ['Read'],
'top-customers-reports' => ['Read'],
'top-suppliers-reports' => ['Read'],
'top-product-reports' => ['Read'],
'combo-product-reports' => ['Read'],
'discount-product-reports' => ['Read'],
'product-purchase-reports' => ['Read'],
'product-sale-reports' => ['Read'],
'customer-ledger' => ['Read'],
'supplier-ledger' => ['Read'],
'party-loss-profit' => ['Read'],
'loss-profit-history-reports' => ['Read'],
'product-sale-history-reports' => ['Read'],
'product-purchase-history-reports' => ['Read'],
];
if (moduleCheck('HrmAddon')) {
$permissions = array_merge($permissions, [
'department' => ['Read', 'Create', 'Update', 'Delete'],
'designations' => ['Read', 'Create', 'Update', 'Delete'],
'shifts' => ['Read', 'Create', 'Update', 'Delete'],
'employees' => ['Read', 'Create', 'Update', 'Delete'],
'leave-types' => ['Read', 'Create', 'Update', 'Delete'],
'leaves' => ['Read', 'Create', 'Update', 'Delete'],
'holidays' => ['Read', 'Create', 'Update', 'Delete'],
'attendances' => ['Read', 'Create', 'Update', 'Delete'],
'payrolls' => ['Read', 'Create', 'Update', 'Delete'],
'attendance-reports' => ['Read'],
'payroll-reports' => ['Read'],
'leave-reports' => ['Read'],
]);
}
if (moduleCheck('WarehouseAddon')) {
$permissions = array_merge($permissions, [
'warehouses' => ['Read', 'Create', 'Update', 'Delete'],
'transfers' => ['Read', 'Create', 'Update', 'Delete'],
'racks' => ['Read', 'Create', 'Update', 'Delete'],
'shelfs' => ['Read', 'Create', 'Update', 'Delete'],
]);
}
if (moduleCheck('MultiBranchAddon') && auth()->user()->accessToMultiBranch()) {
$permissions = array_merge($permissions, [
'branches' => ['Read', 'Create', 'Update', 'Delete'],
]);
}
if (moduleCheck('CustomDomainAddon')) {
$permissions = array_merge($permissions, [
'domains' => ['Read', 'Create', 'Update', 'Delete']
]);
}
if (moduleCheck('CustomReportsAddon')) {
$permissions = array_merge($permissions, [
'custom-reports' => ['Read', 'Create', 'Update', 'Delete']
]);
}
@endphp
@foreach ($permissions as $module => $actions)
<tr>
<td class="text-start">{{ $loop->iteration }}</td>
<td class="text-nowrap text-start">
{{ ucfirst(str_replace('-', ' ', $module)) }}
</td>
<td class="text-start">
<div class="d-flex">
@foreach ($actions as $action)
@php
$key = strtolower($action);
$id = $module . '_' . $key;
$name = 'permissions' . '[' . $module . ']' . '[' . $key . ']';
$is_checked = isset($user->visibility[$module][$key]) && $user->visibility[$module][$key] == 1;
@endphp
<div class="custom-control custom-checkbox mr-3 me-lg-5 d-flex align-items-center gap-2">
<input type="hidden" name="{{ $name }}" value="0">
<input type="checkbox" name="{{ $name }}" value="1" class="custom-control-input delete-checkbox-item multi-delete" id="{{ $id }}" @checked($is_checked)>
<label class="custom-control-label" for="{{ $id }}">
{{ $action }}
</label>
</div>
@endforeach
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="col-12 text-center mt-2">
<button type="reset" class="theme-btn border-btn m-2 ">
{{ __('Reset') }}
</button>
@usercan('roles.update')
<button type="submit" class="theme-btn m-2 submit-btn">{{ __('Save') }}</button>
@endusercan
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,83 @@
@extends('layouts.business.master')
@section('title')
{{__('Roles')}}
@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>{{ __('Role & Permission') }}</h4>
@usercan('roles.create')
<a type="button" href="{{ route('business.roles.create') }}"
class="add-order-btn rounded-2 {{ Route::is('business.roles.create') ? 'active' : '' }}"
class="btn btn-primary"><i class="fas fa-plus-circle me-1"></i>{{ __('Add Role') }}</a>
@endusercan
</div>
<div class="table-top-form p-16">
<form action="{{ route('business.roles.index') }}" method="GET" class="filter-form" table="#roles-data">
<div class="table-top-left d-flex gap-3 flex-wrap">
<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="">{{ __('All 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('business.roles.delete-all') }}">{{ __('Delete') }}</button>
</div>
</div>
<div id="roles-data">
@include('business::roles.datas')
</div>
</div>
</div>
</div>
@endsection
@push('modal')
@include('business::component.delete-modal')
@endpush