diff --git a/Modules/Reports/Http/Controllers/ReportsController.php b/Modules/Reports/Http/Controllers/ReportsController.php
index 7c2c1f2c..cda4692b 100644
--- a/Modules/Reports/Http/Controllers/ReportsController.php
+++ b/Modules/Reports/Http/Controllers/ReportsController.php
@@ -10,6 +10,12 @@ use Illuminate\Support\Facades\Gate;
class ReportsController extends Controller
{
+ public function paymentsReport() {
+ abort_if(Gate::denies('access_payments_report'), 403);
+
+ return view('reports::payments.index');
+ }
+
public function salesReport() {
abort_if(Gate::denies('access_sales_report'), 403);
diff --git a/Modules/Reports/Resources/views/payments/index.blade.php b/Modules/Reports/Resources/views/payments/index.blade.php
new file mode 100644
index 00000000..2a5218c0
--- /dev/null
+++ b/Modules/Reports/Resources/views/payments/index.blade.php
@@ -0,0 +1,16 @@
+@extends('layouts.app')
+
+@section('title', 'Payments Report')
+
+@section('breadcrumb')
+
+ - Home
+ - Payments Report
+
+@endsection
+
+@section('content')
+
+
+
+@endsection
diff --git a/Modules/Reports/Routes/web.php b/Modules/Reports/Routes/web.php
index bf6aad57..6d6b511d 100644
--- a/Modules/Reports/Routes/web.php
+++ b/Modules/Reports/Routes/web.php
@@ -12,6 +12,9 @@
*/
Route::group(['middleware' => 'auth'], function () {
+ //Payments Report
+ Route::get('/payments-report', 'ReportsController@paymentsReport')
+ ->name('payments-report.index');
//Sales Report
Route::get('/sales-report', 'ReportsController@salesReport')
->name('sales-report.index');
diff --git a/app/Http/Livewire/Reports/PaymentsReport.php b/app/Http/Livewire/Reports/PaymentsReport.php
new file mode 100644
index 00000000..437cc9b3
--- /dev/null
+++ b/app/Http/Livewire/Reports/PaymentsReport.php
@@ -0,0 +1,74 @@
+ 'required|date|before:end_date',
+ 'end_date' => 'required|date|after:start_date',
+ 'payments' => 'required|string'
+ ];
+ protected $query;
+
+ public function mount() {
+ $this->start_date = today()->subDays(30)->format('Y-m-d');
+ $this->end_date = today()->format('Y-m-d');
+ $this->payments = '';
+ $this->query = null;
+ }
+
+ public function render() {
+ $this->getQuery();
+
+ return view('livewire.reports.payments-report', [
+ 'information' => $this->query ? $this->query->orderBy('date', 'desc')
+ ->when($this->payment_method, function ($query) {
+ return $query->where('payment_method', $this->payment_method);
+ })
+ ->paginate(10) : collect()
+ ]);
+ }
+
+ public function generateReport() {
+ $this->validate();
+ $this->render();
+ }
+
+ public function updatedPayments($value) {
+ $this->resetPage();
+ }
+
+ public function getQuery() {
+ if ($this->payments == 'sale') {
+ $this->query = SalePayment::query()->with('sale');
+ } elseif ($this->payments == 'sale_return') {
+ $this->query = SaleReturnPayment::query()->with('saleReturn');
+ } elseif ($this->payments == 'purchase') {
+ $this->query = PurchasePayment::query()->with('purchase');
+ } elseif ($this->payments == 'purchase_return') {
+ $this->query = PurchaseReturnPayment::query()->with('purchaseReturn');
+ } else {
+ $this->query = null;
+ }
+ }
+}
diff --git a/resources/views/layouts/menu.blade.php b/resources/views/layouts/menu.blade.php
index d2171916..7407153e 100644
--- a/resources/views/layouts/menu.blade.php
+++ b/resources/views/layouts/menu.blade.php
@@ -233,12 +233,19 @@
@endcan
-@can('access_sales_report|access_purchases_report|access_sales_return_report|access_purchases_return_report')
+@can('access_sales_report|access_purchases_report|access_sales_return_report|access_purchases_return_report|access_payments_reports')