Merge pull request #267 from WDI-Ideas/sayli

Sayli
This commit is contained in:
Sayli Raut
2024-07-05 19:47:31 +05:30
committed by GitHub
3 changed files with 267 additions and 654 deletions

View File

@@ -7,7 +7,7 @@ use Illuminate\Http\Request;
use App\Models\IamPrincipal;
use Illuminate\Support\Facades\DB;
use App\Models\ManageRestaurant;
use App\Models\Subscriptions;
class DashboardController extends Controller
{
@@ -33,8 +33,7 @@ class DashboardController extends Controller
->pluck('count', 'month')
->toArray();
$dataMonthlyWithType4 = IamPrincipal::select(DB::raw("COUNT(*) as count"), DB::raw("MONTH(created_at) as month"))
->where('principal_type_xid', 4)
$dataMonthlyWithType4 = Subscriptions::select(DB::raw("COUNT(*) as count"), DB::raw("MONTH(created_at) as month"))
->whereYear('created_at', date('Y'))
->groupBy(DB::raw("MONTH(created_at)"))
->orderBy(DB::raw("MONTH(created_at)"))
@@ -54,8 +53,7 @@ class DashboardController extends Controller
->pluck('count', 'quarter')
->toArray();
$dataQuarterlyWithType4 = IamPrincipal::select(DB::raw("COUNT(*) as count"), DB::raw("QUARTER(created_at) as quarter"))
->where('principal_type_xid', 4)
$dataQuarterlyWithType4 = Subscriptions::select(DB::raw("COUNT(*) as count"), DB::raw("QUARTER(created_at) as quarter"))
->groupBy(DB::raw("QUARTER(created_at)"))
->orderBy(DB::raw("QUARTER(created_at)"))
->pluck('count', 'quarter')
@@ -73,14 +71,15 @@ class DashboardController extends Controller
->pluck('count', 'year')
->toArray();
$dataYearlyWithType4 = IamPrincipal::select(DB::raw("COUNT(*) as count"), DB::raw("YEAR(created_at) as year"))
->where('principal_type_xid', 4)
$dataYearlyWithType4 = Subscriptions::select(DB::raw("COUNT(*) as count"), DB::raw("YEAR(created_at) as year"))
->groupBy(DB::raw("YEAR(created_at)"))
->pluck('count', 'year')
->toArray();
$customerCount = IamPrincipal::where('principal_type_xid', '=', 3)->count();
$restaurantCount = ManageRestaurant::where('is_active', 1)->count();
$restaurantCount = Subscriptions::where('is_active', 1)->count();
$recent_transaction = Subscriptions::with('subscription')->get()->toArray();
return view('Admin.dashboard', compact(
'customerCount',
@@ -90,7 +89,8 @@ class DashboardController extends Controller
'dataQuarterlyWithType3',
'dataQuarterlyWithType4',
'dataYearlyWithType3',
'dataYearlyWithType4'
'dataYearlyWithType4',
'recent_transaction'
));
}
}

View File

@@ -11,6 +11,13 @@ class Subscriptions extends Model
protected $table = 'subscriptions';
protected $guarded = [];
public function subscription()
{
return $this->belongsTo(IamPrincipal::class, 'iam_principal_xid', 'id');
}
protected $fillable = [
'id',
'subscription_product_xid',
@@ -34,8 +41,8 @@ class Subscriptions extends Model
'created_at',
'updated_at'
];
public function iamPrincipal()
{
return $this->belongsTo(IamPrincipal::class, 'iam_principal_xid', 'id');

View File

@@ -100,668 +100,274 @@
</div> --}}
</div>
<!-- <div class="col-12 d-flex p-0 mb-3">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="text-start">Recent Transactions</h5>
<div class="d-flex align-items-center justify-content-between mb-2">
<div class="d-flex align-items-center">
<div class="transcation-list">
<i class="fa fa-picture-o" aria-hidden="true"></i>
</div>
<div>
<label class="m-0" for="">Jennifer Lawrence</label>
<h6 class="font-weight-bold">Cheers to the Summer</h6>
</div>
</div>
<div>
<h6 class="font-weight-bold">$500</h6>
</div>
{{-- <div class="col-12 d-flex align-items-center p-0 mb-4">
<div class="col-md-12">
<div class="card">
<div class="card-body">
<h5>Recent Transactions</h5>
<form method="POST" id="customer-form">
@csrf
<input type="hidden" name="selected_id" id="ids" disabled>
<input type="hidden" name="all_id" id="all_id" value="all" disabled>
<div class="d-flex justify-content-between align-items-center mb-3">
<table id="zero-config" class="table dt-table-hover location_table"
style="width:100%">
<thead class="text-center">
<tr>
<th class="w-10px pe-2">
<div
class="form-check form-check-sm form-check-custom form-check-solid me-3">
<input class="form-check-input" type="checkbox"
name="customer_ids" id="select-all-ids" />
</div>
<div class="d-flex align-items-center justify-content-between mb-2">
<div class="d-flex align-items-center">
<div class="transcation-list">
<i class="fa fa-picture-o" aria-hidden="true"></i>
</div>
<div>
<label class="m-0" for="">Jennifer Lawrence</label>
<h6 class="font-weight-bold">Cheers to the Summer</h6>
</div>
</th>
<th class="text-start">Sr no</th>
<th class="text-start">Name</th>
<th class="text-start">Customer Id</th>
<th class="text-start">Amount</th>
<th class="text-start">payment Details</th>
</tr>
</thead>
<tbody class="text-center">
@foreach ($recent_transaction as $recent_transactions)
<tr>
<td>
<div
class="form-check form-check-sm form-check-custom form-check-solid">
<input class="form-check-input" type="checkbox"
id="customer_checkbox_ids" name="customer_ids"
value="{{ $recent_transactions['id'] }}" />
</div>
<div>
<h6 class="font-weight-bold">$500</h6>
</div>
</div>
<div class="d-flex align-items-center justify-content-between mb-2">
<div class="d-flex align-items-center">
<div class="transcation-list">
<i class="fa fa-picture-o" aria-hidden="true"></i>
</div>
<div>
<label class="m-0" for="">Jennifer Lawrence</label>
<h6 class="font-weight-bold">Cheers to the Summer</h6>
</div>
</div>
<div>
<h6 class="font-weight-bold">$500</h6>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="text-start">Locations</h5>
<img src="{{ asset('public/assets/img/map.svg') }}" width="100%" height="173px"
alt="">
</td>
<td class="text-start">{{ $loop->iteration }}</td>
<td class="text-start">
{{ $recent_transactions['subscription']['first_name'] }}
{{ $recent_transactions['subscription']['last_name'] }}
</td>
<td class="text-start">
{{ $recent_transactions['subscription']['id'] }}</td>
<td class="text-start">$ {{ $recent_transactions['amount'] }}</td>
<td class="text-start">
<a class="view-btn m-0 pointer sub_admin_permission"
data-toggle="modal" data-target="#payment-details-modal"
data-id="{{ $recent_transactions['id'] }}"
data-price="{{ $recent_transactions['amount'] }}"
data-first_name="{{ $recent_transactions['subscription']['first_name'] }}"
data-stripeCustId="{{ $recent_transactions['stripe_customer_id'] }}"
data-subId="{{ $recent_transactions['subscription_id'] }}"
data-subStatus="{{ $recent_transactions['subscription_status'] }}"
data-subStartPeriod="{{ $recent_transactions['current_period_start'] }}"
data-subCurrentPeriod="{{ $recent_transactions['current_period_end'] }}"
data-subNextPeriod="{{ $recent_transactions['next_payment_date'] }}">View</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div> -->
</div> --}}
</div>
<!-- <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12 layout-spacing">
<div class="widget widget-six">
<div class="widget-heading">
<div class="task-action">
<div class="user-details">
<img src="../src/assets/img/user-2-svgrepo-com.svg" />
<h3>Welcome ,</h3>
<h4>Kartikey Gautam</h4>
</div>
<div class="row w-100">
<div class="col-md-4 col-sm-12 layout-spacing pb-0">
<div data-draggable="true"
class="card simple-title-task ui-sortable-handle">
<div class="card-body">
<div class="task-header">
<div class="order-summary">
<div class="summary-list">
<div class="w-icon">
<img class="img1"
src="../src/assets/img/patient(1).svg" />
</div>
<div class="w-summary-details">
<div class="w-summary-info">
<h6>Total patients</h6>
<p class="summary-count">50</p>
</div>
<div class="w-summary-stats">
<div class="progress">
<div class="progress-bar bg-gradient-success"
role="progressbar" style="width: 50%"
aria-valuenow="50" aria-valuemin="0"
aria-valuemax="100"></div>
</div>
</div>
<div class="w-summary-info mt-0">
<p class="summary-text">50 % increase in 30 days
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4 col-sm-12 layout-spacing pb-0">
<div data-draggable="true"
class="card simple-title-task ui-sortable-handle">
<div class="card-body">
<div class="task-header">
<div class="order-summary">
<div class="summary-list">
<div class="w-icon">
<img class="img2"
src="../src/assets/img/heart-add(1).svg" />
</div>
<div class="w-summary-details">
<div class="w-summary-info">
<h6>Total caregiver</h6>
<p class="summary-count">80</p>
</div>
<div class="w-summary-stats">
<div class="progress">
<div class="progress-bar bg-gradient-warning"
role="progressbar" style="width: 80%"
aria-valuenow="80" aria-valuemin="0"
aria-valuemax="100"></div>
</div>
</div>
<div class="w-summary-info mt-0">
<p class="summary-text">30 % increase in 30 days
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4 col-sm-12 layout-spacing pb-0">
<div data-draggable="true"
class="card simple-title-task ui-sortable-handle">
<div class="card-body">
<div class="task-header">
<div class="order-summary">
<div class="summary-list">
<div class="w-icon">
<img class="img3"
src="../src/assets/img/download-cloud.svg" />
</div>
<div class="w-summary-details">
<div class="w-summary-info">
<h6>App downloads</h6>
<p class="summary-count">40</p>
</div>
<div class="w-summary-stats">
<div class="progress">
<div class="progress-bar bg-gradient-secondary"
role="progressbar" style="width: 40%"
aria-valuenow="40" aria-valuemin="0"
aria-valuemax="100"></div>
</div>
</div>
<div class="w-summary-info mt-0">
<p class="summary-text">15 % increase in 30 days
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div> -->
<!-- <div class="col-xl-12 col-lg-4 col-md-4 col-sm-4 col-12 layout-spacing">
<div class="widget widget-one_hybrid widget-engagement">
<div class="widget-heading">
<div class="w-title">
<div class="grpah-details">
<p class="w-value">New patients</p>
<h5 class="">%20 High than last monthy</h5>
</div>
</div>
</div>
<div class="graph2">
<div class="grpah-details2">
<strong><span>100</span></strong>
<span>Overall</span>
</div>
<div class="right-divider"></div>
<div class="grpah-details2">
<strong><span>50</span></strong>
<span>Monthly</span>
</div>
<div class="right-divider"></div>
<div class="grpah-details2">
<strong><span>15</span></strong>
<span>Daily</span>
</div>
</div>
<div class="widget-content">
<div class="w-chart">
<div id="hybrid_followers3"></div>
</div>
</div>
</div>
</div>
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
<div class="widget-content widget-content-area br-8">
<div class="index-card">
<div class="grpah-details">
<p class="w-value">New patients</p>
<a href="manage-patient">View All</a>
</div>
<table id="zero-config" class="table dt-table-hover" style="width:100%">
<thead class="text-center">
<tr>
<th class="text-start">Name</th>
<th>Email address</th>
<th>Contact Number</th>
<th>Caregiver</th>
<th>Subscription Plan</th>
<th class="no-content">Action</th>
</tr>
</thead>
<tbody class="text-center">
<tr>
<td class="text-start">Raj Shinde</td>
<td>rajshinde9@gmail.com</td>
<td>+5624878954</td>
<td>Kartikey Gautam</td>
<td>Active</td>
<td>
<div class="dropout">
<button class="more">
<span></span>
<span></span>
<span></span>
</button>
<ul>
<li>
<a href="view-customer.php">
<img src="../src/assets/img/view.svg" />
<span>View Details</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#archive-modal">
<img src="../src/assets/img/archive.svg" />
<span>Archive Patient</span>
</a>
</li>
<li>
<a href="#">
<img src="../src/assets/img/download.svg" />
<span>Download Data</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#suspend-modal">
<img src="../src/assets/img/stop.svg" />
<span>Suspend Patient</span>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td class="text-start">Raj Shinde</td>
<td>rajshinde9@gmail.com</td>
<td>+5624878954</td>
<td>Kartikey Gautam</td>
<td>Active</td>
<td>
<div class="dropout">
<button class="more">
<span></span>
<span></span>
<span></span>
</button>
<ul>
<li>
<a href="view-customer.php">
<img src="../src/assets/img/view.svg" />
<span>View Details</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#archive-modal">
<img src="../src/assets/img/archive.svg" />
<span>Archive Patient</span>
</a>
</li>
<li>
<a href="#">
<img src="../src/assets/img/download.svg" />
<span>Download Data</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#suspend-modal">
<img src="../src/assets/img/stop.svg" />
<span>Suspend Patient</span>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td class="text-start">Raj Shinde</td>
<td>rajshinde9@gmail.com</td>
<td>+5624878954</td>
<td>Kartikey Gautam</td>
<td>Active</td>
<td>
<div class="dropout">
<button class="more">
<span></span>
<span></span>
<span></span>
</button>
<ul>
<li>
<a href="view-customer.php">
<img src="../src/assets/img/view.svg" />
<span>View Details</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#archive-modal">
<img src="../src/assets/img/archive.svg" />
<span>Archive Patient</span>
</a>
</li>
<li>
<a href="#">
<img src="../src/assets/img/download.svg" />
<span>Download Data</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#suspend-modal">
<img src="../src/assets/img/stop.svg" />
<span>Suspend Patient</span>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td class="text-start">Raj Shinde</td>
<td>rajshinde9@gmail.com</td>
<td>+5624878954</td>
<td>Kartikey Gautam</td>
<td>Active</td>
<td>
<div class="dropout">
<button class="more">
<span></span>
<span></span>
<span></span>
</button>
<ul>
<li>
<a href="view-customer.php">
<img src="../src/assets/img/view.svg" />
<span>View Details</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#archive-modal">
<img src="../src/assets/img/archive.svg" />
<span>Archive Patient</span>
</a>
</li>
<li>
<a href="#">
<img src="../src/assets/img/download.svg" />
<span>Download Data</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#suspend-modal">
<img src="../src/assets/img/stop.svg" />
<span>Suspend Patient</span>
</a>
</li>
</ul>
</div>
</td>
</tr>
<tr>
<td class="text-start">Raj Shinde</td>
<td>rajshinde9@gmail.com</td>
<td>+5624878954</td>
<td>Kartikey Gautam</td>
<td>Active</td>
<td>
<div class="dropout">
<button class="more">
<span></span>
<span></span>
<span></span>
</button>
<ul>
<li>
<a href="view-customer.php">
<img src="../src/assets/img/view.svg" />
<span>View Details</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#archive-modal">
<img src="../src/assets/img/archive.svg" />
<span>Archive Patient</span>
</a>
</li>
<li>
<a href="#">
<img src="../src/assets/img/download.svg" />
<span>Download Data</span>
</a>
</li>
<li>
<a href="" data-toggle="modal" data-target="#suspend-modal">
<img src="../src/assets/img/stop.svg" />
<span>Suspend Patient</span>
</a>
</li>
</ul>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div> -->
</div>
</div>
@endsection
@endsection
@section('section_script')
<script>
$('#zero-config').DataTable({
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
"<'table-responsive'tr>" +
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
"oLanguage": {
"oPaginate": {
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
@section('section_script')
<script>
$('#zero-config').DataTable({
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
"<'table-responsive'tr>" +
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
"oLanguage": {
"oPaginate": {
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
},
"sInfo": "Showing page PAGE of _PAGES_",
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
"sSearchPlaceholder": "Search...",
"sLengthMenu": "Results : _MENU_",
},
"sInfo": "Showing page PAGE of _PAGES_",
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
"sSearchPlaceholder": "Search...",
"sLengthMenu": "Results : _MENU_",
},
"stripeClasses": [],
"lengthMenu": [7, 10, 20, 50],
"pageLength": 10
});
$('#zero-config2').DataTable({
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
"<'table-responsive'tr>" +
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
"oLanguage": {
"oPaginate": {
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
},
"sInfo": "Showing page PAGE of _PAGES_",
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
"sSearchPlaceholder": "Search...",
"sLengthMenu": "Results : _MENU_",
},
"stripeClasses": [],
"lengthMenu": [7, 10, 20, 50],
"pageLength": 10
});
$(document).ready(function() {
$('<button><ul class="navbar-item flex-row ms-lg-auto ms-0"><li class="nav-item dropdown action-dropdown order-lg-0 order-1"><a href="javascript:void(0);"class="nav-link dropdown-toggle user extra-btn" id="actionDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><div class="avatar-container"><div class="avatar avatar-sm avatar-mid avatar-indicators avatar-online"><h3>Export</h3></div></div></a><div class="dropdown-menu position-absolute" aria-labelledby="actionDropdown"><div class="dropdown-item"><a href="javascript:void(0)" id="download_all"><span>Download Overview</span></a></div><div class="dropdown-item"><a href="javascript:void(0)" id="download-selected"><span id="export">Download Selected</span></a></div></div></li></ul></button>')
.insertBefore("#zero-config_filter label");
$("#zero-config").on("click", ".sub_admin_permission", function() {
// $('.sub_admin_permission').on('click', function() {
var passportName = $(this).data('passport-name');
var passportPrice = $(this).data('price');
var passportId = $(this).data('passport-id');
var quantity = $(this).data('quantity');
var orderDate = $(this).data('orderdate');
var tansId = $(this).data('payment_id');
var paymentmode = $(this).data('paymentmode');
var formattedPrice = '$' + passportPrice;
$('.subadmin-option span').eq(0).text(passportName);
$('.subadmin-option span').eq(1).text(formattedPrice);
$('.subadmin-option span').eq(2).text(passportId);
$('.subadmin-option span').eq(3).text(quantity);
$('.subadmin-option span').eq(4).text(orderDate);
$('.subadmin-option span').eq(5).text(tansId);
$('.subadmin-option span').eq(6).text(paymentmode);
"stripeClasses": [],
"lengthMenu": [7, 10, 20, 50],
"pageLength": 10
});
});
$(function(e) {
$("#select-all-ids").click(function() {
$(".form-check-input").prop('checked', $(this).prop('checked'));
$('#zero-config2').DataTable({
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
"<'table-responsive'tr>" +
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
"oLanguage": {
"oPaginate": {
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
},
"sInfo": "Showing page PAGE of _PAGES_",
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
"sSearchPlaceholder": "Search...",
"sLengthMenu": "Results : _MENU_",
},
"stripeClasses": [],
"lengthMenu": [7, 10, 20, 50],
"pageLength": 10
});
$(".form-check-input").click(function() {
if (!$(this).prop('checked')) {
$("#select-all-ids").prop('checked', false);
} else {
if ($(".form-check-input:checked").length === $(".form-check-input").length) {
$("#select-all-ids").prop('checked', true);
$(function(e) {
$("#select-all-ids").click(function() {
$(".form-check-input").prop('checked', $(this).prop('checked'));
});
$(".form-check-input").click(function() {
if (!$(this).prop('checked')) {
$("#select-all-ids").prop('checked', false);
} else {
if ($(".form-check-input:checked").length === $(".form-check-input").length) {
$("#select-all-ids").prop('checked', true);
}
}
}
});
$(document).on("click", "#download-selected", function(e) {
e.preventDefault();
var allIds = [];
// Iterate over each page of the DataTable
var table = $('#zero-config').DataTable();
for (var i = 0; i < table.page.info().pages; i++) {
table.page(i).draw(false); // Switch to page i
$('#zero-config tbody input:checked').each(function() {
allIds.push($(this).val());
});
}
if (allIds.length > 0) {
// If there are selected customers
$('#ids').prop('disabled', false);
$('#all_id').prop('disabled', true);
$('#ids').val(allIds);
// Now submit the form or perform download action
$('#customer-form').submit(); // Or perform your download action here
} else {
// No customers selected
toastr.error("Please select at least one customer to download.");
}
});
$(document).on("click", "#download_all", function(e) {
$('#all_id').prop('disabled', false);
$('#ids').prop('disabled', true);
})
});
$(document).on("click", "#download-selected", function(e) {
$(document).on("click", ".more", function(e) {
e.preventDefault();
e.stopPropagation();
});
</script>
var allIds = [];
<script>
document.addEventListener("DOMContentLoaded", function() {
// Initial data and categories
var userChartData = getUserChartData('monthly');
var userCategories = getUserChartCategories('monthly');
// Iterate over each page of the DataTable
var table = $('#zero-config').DataTable();
for (var i = 0; i < table.page.info().pages; i++) {
table.page(i).draw(false); // Switch to page i
$('#zero-config tbody input:checked').each(function() {
allIds.push($(this).val());
// Chart options
var userOptions = {
chart: {
type: 'line',
zoom: {
enabled: false
},
toolbar: {
show: false
}
},
series: userChartData,
xaxis: {
categories: userCategories
},
stroke: {
curve: 'smooth',
width: [4, 4]
}
};
// Create the chart
var userChart = new ApexCharts(document.querySelector("#user-chart"), userOptions);
userChart.render();
// Event listener for filter select element
document.getElementById('graph-filter').addEventListener('change', function(event) {
var selectedFilter = event.target.value;
userChartData = getUserChartData(selectedFilter);
userCategories = getUserChartCategories(selectedFilter);
userChart.updateSeries(userChartData);
userChart.updateOptions({
xaxis: {
categories: userCategories
}
});
}
if (allIds.length > 0) {
// If there are selected customers
$('#ids').prop('disabled', false);
$('#all_id').prop('disabled', true);
$('#ids').val(allIds);
// Now submit the form or perform download action
$('#customer-form').submit(); // Or perform your download action here
} else {
// No customers selected
toastr.error("Please select at least one customer to download.");
}
});
});
function getUserChartData(filter) {
switch (filter) {
case 'monthly':
return [{
name: 'Total Accounts',
data: <?php echo json_encode(array_values($dataMonthlyWithType3)); ?>
},
{
name: 'Total Subscribed',
data: <?php echo json_encode(array_values($dataMonthlyWithType4)); ?>
}
];
case 'quarterly':
return [{
name: 'Total Accounts',
data: <?php echo json_encode(array_values($dataQuarterlyWithType3)); ?>
},
{
name: 'Total Subscribed',
data: <?php echo json_encode(array_values($dataQuarterlyWithType4)); ?>
}
];
case 'yearly':
return [{
name: 'Total Accounts',
data: <?php echo json_encode(array_values($dataYearlyWithType3)); ?>
},
{
name: 'Total Subscribed',
data: <?php echo json_encode(array_values($dataYearlyWithType4)); ?>
}
];
default:
return [];
}
}
function getUserChartCategories(filter) {
switch (filter) {
case 'monthly':
return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
case 'quarterly':
return ['Q1', 'Q2', 'Q3', 'Q4'];
case 'yearly':
return <?php echo json_encode(array_keys($dataYearlyWithType3)); ?>;
default:
return [];
}
}
</script>
$(document).on("click", "#download_all", function(e) {
$('#all_id').prop('disabled', false);
$('#ids').prop('disabled', true);
})
});
$(document).on("click", ".more", function(e) {
e.preventDefault();
e.stopPropagation();
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Initial data and categories
var userChartData = getUserChartData('monthly');
var userCategories = getUserChartCategories('monthly');
// Chart options
var userOptions = {
chart: {
type: 'line',
zoom: { enabled: false },
toolbar: { show: false }
},
series: userChartData,
xaxis: { categories: userCategories },
stroke: { curve: 'smooth', width: [4, 4] }
};
// Create the chart
var userChart = new ApexCharts(document.querySelector("#user-chart"), userOptions);
userChart.render();
// Event listener for filter select element
document.getElementById('graph-filter').addEventListener('change', function(event) {
var selectedFilter = event.target.value;
userChartData = getUserChartData(selectedFilter);
userCategories = getUserChartCategories(selectedFilter);
userChart.updateSeries(userChartData);
userChart.updateOptions({
xaxis: { categories: userCategories }
});
});
});
function getUserChartData(filter) {
switch (filter) {
case 'monthly':
return [
{ name: 'Customer', data: <?php echo json_encode(array_values($dataMonthlyWithType3)); ?> },
{ name: 'Restaurant', data: <?php echo json_encode(array_values($dataMonthlyWithType4)); ?> }
];
case 'quarterly':
return [
{ name: 'Customer', data: <?php echo json_encode(array_values($dataQuarterlyWithType3)); ?> },
{ name: 'Restaurant', data: <?php echo json_encode(array_values($dataQuarterlyWithType4)); ?> }
];
case 'yearly':
return [
{ name: 'Customer', data: <?php echo json_encode(array_values($dataYearlyWithType3)); ?> },
{ name: 'Restaurant', data: <?php echo json_encode(array_values($dataYearlyWithType4)); ?> }
];
default:
return [];
}
}
function getUserChartCategories(filter) {
switch (filter) {
case 'monthly':
return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
case 'quarterly':
return ['Q1', 'Q2', 'Q3', 'Q4'];
case 'yearly':
return <?php echo json_encode(array_keys($dataYearlyWithType3)); ?>;
default:
return [];
}
}
</script>
@endsection
@endsection