2023-06-11 12:14:03 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Modules\Report;
|
|
|
|
|
|
|
|
use Modules\Product\Entities\Product;
|
|
|
|
|
|
|
|
class ProductsStockReport extends Report
|
|
|
|
{
|
|
|
|
protected function view()
|
|
|
|
{
|
|
|
|
return 'report::admin.reports.products_stock_report.index';
|
|
|
|
}
|
|
|
|
|
2023-12-03 14:07:47 +00:00
|
|
|
|
2023-06-11 12:14:03 +00:00
|
|
|
protected function query()
|
|
|
|
{
|
|
|
|
return Product::select('id', 'qty', 'in_stock')
|
|
|
|
->withName()
|
|
|
|
->when(request()->has('quantity_above'), function ($query) {
|
|
|
|
$query->where('manage_stock', true)
|
|
|
|
->where('qty', '>', request('quantity_above'));
|
|
|
|
})
|
|
|
|
->when(request()->has('quantity_below'), function ($query) {
|
|
|
|
$query->where('manage_stock', true)
|
|
|
|
->where('qty', '<', request('quantity_below'));
|
|
|
|
})
|
|
|
|
->when(request('stock_availability') === 'in_stock', function ($query) {
|
|
|
|
$query->where('in_stock', true);
|
|
|
|
})
|
|
|
|
->when(request('stock_availability') === 'out_of_stock', function ($query) {
|
|
|
|
$query->where('in_stock', false);
|
|
|
|
})
|
|
|
|
->orderByDesc('qty');
|
|
|
|
}
|
|
|
|
}
|