Added product report, showing just active products and number of services
This commit is contained in:
parent
b3539e6c7e
commit
45dd74aad4
@ -11,6 +11,11 @@ class ReportController extends Controller
|
|||||||
return view('account/report');
|
return view('account/report');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function products()
|
||||||
|
{
|
||||||
|
return view('product/report');
|
||||||
|
}
|
||||||
|
|
||||||
public function services()
|
public function services()
|
||||||
{
|
{
|
||||||
return view('service/report');
|
return view('service/report');
|
||||||
|
@ -0,0 +1,92 @@
|
|||||||
|
@extends('adminlte::layouts.app')
|
||||||
|
|
||||||
|
@section('htmlheader_title')
|
||||||
|
Product List
|
||||||
|
@endsection
|
||||||
|
@section('page_title')
|
||||||
|
Product List
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('contentheader_title')
|
||||||
|
Product List
|
||||||
|
@endsection
|
||||||
|
@section('contentheader_description')
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('main-content')
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<table class="table table-sm table-striped" id="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Product</th>
|
||||||
|
<th class="text-right">Services</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
@foreach (\App\Models\Service::active()->with(['product.translate'])->get()->groupBy('product_id') as $s)
|
||||||
|
<tr>
|
||||||
|
<td><a href="{{ url('a/product/details',[($x=$s->first())->product_id]) }}">{{ $x->id }}</a></td>
|
||||||
|
<td>{{ $x->category_name }}</td>
|
||||||
|
<td>{{ $x->product->name }}</td>
|
||||||
|
<td class="text-right">{{ $s->count() }}</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('page-scripts')
|
||||||
|
@css(datatables,bootstrap4|fixedheader|responsive|rowgroup|buttons)
|
||||||
|
@js(datatables,bootstrap4|fixedheader|responsive|rowgroup|buttons)
|
||||||
|
|
||||||
|
<style>
|
||||||
|
tr.odd td:first-child,
|
||||||
|
tr.even td:first-child {
|
||||||
|
padding-left: 3em;
|
||||||
|
}
|
||||||
|
table.dataTable tr.dtrg-group.dtrg-level-1 td {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
color: #4c110f;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#table').DataTable({
|
||||||
|
aLengthMenu: [
|
||||||
|
[25, 50, 100, 200, -1],
|
||||||
|
[25, 50, 100, 200, "All"]
|
||||||
|
],
|
||||||
|
paging: true,
|
||||||
|
pageLength: 25,
|
||||||
|
lengthChange: true,
|
||||||
|
searching: true,
|
||||||
|
ordering: true,
|
||||||
|
info: true,
|
||||||
|
autoWidth: false,
|
||||||
|
fixedHeader: true,
|
||||||
|
order: [
|
||||||
|
[1,'asc'],
|
||||||
|
[2,'asc'],
|
||||||
|
],
|
||||||
|
rowGroup: {
|
||||||
|
dataSrc: [1],
|
||||||
|
},
|
||||||
|
columnDefs: [
|
||||||
|
{
|
||||||
|
targets: [1],
|
||||||
|
visible: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@append
|
@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
@section('main-content')
|
@section('main-content')
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
<table class="table table-sm table-striped" id="table">
|
<table class="table table-sm table-striped" id="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -44,6 +46,8 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('page-scripts')
|
@section('page-scripts')
|
||||||
|
@ -119,8 +119,8 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item has-treeview @if(preg_match('#^a/report/(accounts|services)#',$path))menu-open @else menu-closed @endif">
|
<li class="nav-item has-treeview @if(preg_match('#^a/report/(accounts|products|services)#',$path))menu-open @else menu-closed @endif">
|
||||||
<a href="#" class="nav-link @if(preg_match('#^a/report/(accounts|services)#',$path)) active @endif">
|
<a href="#" class="nav-link @if(preg_match('#^a/report/(accounts|products|services)#',$path)) active @endif">
|
||||||
<i class="nav-icon fas fa-list"></i> <p>REPORT<i class="fas fa-angle-left right"></i></p>
|
<i class="nav-icon fas fa-list"></i> <p>REPORT<i class="fas fa-angle-left right"></i></p>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
@ -132,10 +132,18 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<ul class="nav nav-treeview">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="{{ url('a/report/products') }}" class="nav-link @if(preg_match('#^a/report/products#',$path))active @endif">
|
||||||
|
<i class="nav-icon fas fa-barcode"></i> <p>Products</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<ul class="nav nav-treeview">
|
<ul class="nav nav-treeview">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ url('a/report/services') }}" class="nav-link @if(preg_match('#^a/report/services#',$path))active @endif">
|
<a href="{{ url('a/report/services') }}" class="nav-link @if(preg_match('#^a/report/services#',$path))active @endif">
|
||||||
<i class="nav-icon fas fa-barcode"></i> <p>Services</p>
|
<i class="nav-icon fas fa-layer-group"></i> <p>Services</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -103,6 +103,7 @@ Route::group(['middleware'=>['theme:adminlte-be','auth','role:wholesaler'],'pref
|
|||||||
->where('oo','[0-9]+');
|
->where('oo','[0-9]+');
|
||||||
|
|
||||||
Route::get('report/accounts',[ReportController::class,'accounts']);
|
Route::get('report/accounts',[ReportController::class,'accounts']);
|
||||||
|
Route::get('report/products',[ReportController::class,'products']);
|
||||||
Route::get('report/services',[ReportController::class,'services']);
|
Route::get('report/services',[ReportController::class,'services']);
|
||||||
// Charges - @todo This should probably go to resellers
|
// Charges - @todo This should probably go to resellers
|
||||||
Route::match(['get','post'],'charge/addedit/{o?}',[AdminController::class,'charge_addedit']);
|
Route::match(['get','post'],'charge/addedit/{o?}',[AdminController::class,'charge_addedit']);
|
||||||
|
Loading…
Reference in New Issue
Block a user