33 lines
1.1 KiB
PHP
33 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Modules\Procurement\Services;
|
|
|
|
use App\Modules\Procurement\Contracts\ProcurementServiceInterface;
|
|
use App\Modules\Procurement\Models\PurchaseOrder;
|
|
use Illuminate\Support\Collection;
|
|
|
|
class ProcurementService implements ProcurementServiceInterface
|
|
{
|
|
public function getPurchaseOrdersByDate(string $start, string $end, array $statuses = ['received', 'completed']): Collection
|
|
{
|
|
return PurchaseOrder::with(['vendor'])
|
|
->whereIn('status', $statuses)
|
|
->whereBetween('created_at', [$start . ' 00:00:00', $end . ' 23:59:59'])
|
|
->get();
|
|
}
|
|
|
|
public function getPurchaseOrdersByIds(array $ids, array $with = []): Collection
|
|
{
|
|
return PurchaseOrder::whereIn('id', $ids)->with($with)->get();
|
|
}
|
|
|
|
public function getDashboardStats(): array
|
|
{
|
|
return [
|
|
'vendorsCount' => \App\Modules\Procurement\Models\Vendor::count(),
|
|
'purchaseOrdersCount' => PurchaseOrder::count(),
|
|
'pendingOrdersCount' => PurchaseOrder::where('status', 'pending')->count(),
|
|
];
|
|
}
|
|
}
|