diff --git a/Modules/Reports/Http/Controllers/ReportsController.php b/Modules/Reports/Http/Controllers/ReportsController.php index b4e179c7..4499895c 100644 --- a/Modules/Reports/Http/Controllers/ReportsController.php +++ b/Modules/Reports/Http/Controllers/ReportsController.php @@ -11,4 +11,8 @@ class ReportsController extends Controller public function salesReport() { return view('reports::sales.index'); } + + public function purchasesReport() { + return view('reports::purchases.index'); + } } diff --git a/Modules/Reports/Resources/views/purchases/index.blade.php b/Modules/Reports/Resources/views/purchases/index.blade.php new file mode 100644 index 00000000..c3208078 --- /dev/null +++ b/Modules/Reports/Resources/views/purchases/index.blade.php @@ -0,0 +1,16 @@ +@extends('layouts.app') + +@section('title', 'Purchases Report') + +@section('breadcrumb') + +@endsection + +@section('content') +
+ +
+@endsection diff --git a/Modules/Reports/Routes/web.php b/Modules/Reports/Routes/web.php index c8bb89dc..8678a70e 100644 --- a/Modules/Reports/Routes/web.php +++ b/Modules/Reports/Routes/web.php @@ -15,4 +15,7 @@ Route::group(['middleware' => 'auth'], function () { //Sales Report Route::get('/sales-report', 'ReportsController@salesReport') ->name('sales-report.index'); + //Purchases Report + Route::get('/purchases-report', 'ReportsController@purchasesReport') + ->name('purchases-report.index'); }); diff --git a/app/Http/Livewire/Reports/PurchasesReport.php b/app/Http/Livewire/Reports/PurchasesReport.php new file mode 100644 index 00000000..f0b28ff8 --- /dev/null +++ b/app/Http/Livewire/Reports/PurchasesReport.php @@ -0,0 +1,60 @@ + 'required|date|before:end_date', + 'end_date' => 'required|date|after:start_date', + ]; + + public function mount($suppliers) { + $this->suppliers = $suppliers; + $this->start_date = today()->subDays(30)->format('Y-m-d'); + $this->end_date = today()->format('Y-m-d'); + $this->supplier_id = ''; + $this->purchase_status = ''; + $this->payment_status = ''; + } + + public function render() { + $purchases = Purchase::whereDate('date', '>=', $this->start_date) + ->whereDate('date', '<=', $this->end_date) + ->when($this->supplier_id, function ($query) { + return $query->where('supplier_id', $this->supplier_id); + }) + ->when($this->purchase_status, function ($query) { + return $query->where('status', $this->purchase_status); + }) + ->when($this->payment_status, function ($query) { + return $query->where('payment_status', $this->payment_status); + }) + ->orderBy('date', 'desc')->paginate(10); + + return view('livewire.reports.purchases-report', [ + 'purchases' => $purchases + ]); + } + + public function generateReport() { + $this->validate(); + $this->render(); + } +} diff --git a/resources/views/layouts/menu.blade.php b/resources/views/layouts/menu.blade.php index e249c4b9..64ff0650 100644 --- a/resources/views/layouts/menu.blade.php +++ b/resources/views/layouts/menu.blade.php @@ -85,7 +85,7 @@ @endcan @can('access_purchases') -
  • +
  • Purchases @@ -233,8 +233,8 @@
  • @endcan -@can('access_sales_report') -
  • +@can('access_sales_report|access_purchases_report') +
  • Reports @@ -246,6 +246,13 @@
  • @endcan + @can('access_purchases_report') +
  • + + Purchases Report + +
  • + @endcan @endcan diff --git a/resources/views/livewire/reports/purchases-report.blade.php b/resources/views/livewire/reports/purchases-report.blade.php new file mode 100644 index 00000000..60c788e7 --- /dev/null +++ b/resources/views/livewire/reports/purchases-report.blade.php @@ -0,0 +1,154 @@ +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + @error('start_date') + {{ $message }} + @enderror +
    +
    +
    +
    + + + @error('end_date') + {{ $message }} + @enderror +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + Loading... +
    +
    + + + + + + + + + + + + + + @forelse($purchases as $purchase) + + + + + + + + + + + @empty + + + + @endforelse + +
    DateReferenceSupplierStatusTotalPaidDuePayment Status
    {{ \Carbon\Carbon::parse($purchase->date)->format('d M, Y') }}{{ $purchase->reference }}{{ $purchase->supplier_name }} + @if ($purchase->status == 'Pending') + + {{ $purchase->status }} + + @elseif ($purchase->status == 'Ordered') + + {{ $purchase->status }} + + @else + + {{ $purchase->status }} + + @endif + {{ format_currency($purchase->total_amount) }}{{ format_currency($purchase->paid_amount) }}{{ format_currency($purchase->due_amount) }} + @if ($purchase->payment_status == 'Partial') + + {{ $purchase->payment_status }} + + @elseif ($purchase->payment_status == 'Paid') + + {{ $purchase->payment_status }} + + @else + + {{ $purchase->payment_status }} + + @endif + +
    + No Purchases Data Available! +
    +
    $purchases->hasPages()])> + {{ $purchases->links() }} +
    +
    +
    +
    +
    +
    diff --git a/resources/views/livewire/reports/sales-report.blade.php b/resources/views/livewire/reports/sales-report.blade.php index e627f1b7..427c66fb 100644 --- a/resources/views/livewire/reports/sales-report.blade.php +++ b/resources/views/livewire/reports/sales-report.blade.php @@ -27,7 +27,7 @@
    - + @@ -51,7 +51,7 @@