From af990972b9f6880498159c6db4155cdf4f490d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihan=20=C5=9Eent=C3=BCrk?= <53110792+CihanSenturk@users.noreply.github.com> Date: Wed, 22 May 2024 19:26:16 +0300 Subject: [PATCH] fixed export pagination issue --- app/Abstracts/Model.php | 5 ++++- app/Exports/Banking/Sheets/RecurringTransactions.php | 3 ++- app/Exports/Common/Sheets/ItemTaxes.php | 3 ++- app/Exports/Purchases/Bills/Sheets/BillHistories.php | 3 ++- app/Exports/Purchases/Bills/Sheets/BillItemTaxes.php | 3 ++- app/Exports/Purchases/Bills/Sheets/BillItems.php | 3 ++- app/Exports/Purchases/Bills/Sheets/BillTotals.php | 3 ++- app/Exports/Purchases/Bills/Sheets/BillTransactions.php | 3 ++- .../RecurringBills/Sheets/RecurringBillHistories.php | 3 ++- .../RecurringBills/Sheets/RecurringBillItemTaxes.php | 3 ++- .../RecurringBills/Sheets/RecurringBillItems.php | 3 ++- .../RecurringBills/Sheets/RecurringBillTotals.php | 3 ++- .../Purchases/RecurringBills/Sheets/RecurringBills.php | 3 ++- app/Exports/Sales/Invoices/Sheets/InvoiceHistories.php | 3 ++- app/Exports/Sales/Invoices/Sheets/InvoiceItemTaxes.php | 3 ++- app/Exports/Sales/Invoices/Sheets/InvoiceItems.php | 3 ++- app/Exports/Sales/Invoices/Sheets/InvoiceTotals.php | 4 +++- app/Exports/Sales/Invoices/Sheets/InvoiceTransactions.php | 3 ++- .../Sheets/RecurringInvoiceHistories.php | 3 ++- .../Sheets/RecurringInvoiceItemTaxes.php | 3 ++- .../RecurringInvoices/Sheets/RecurringInvoiceItems.php | 3 ++- .../RecurringInvoices/Sheets/RecurringInvoiceTotals.php | 3 ++- .../Sales/RecurringInvoices/Sheets/RecurringInvoices.php | 3 ++- app/Interfaces/Export/WithParentSheet.php | 8 ++++++++ app/Models/Setting/Category.php | 5 ++++- 25 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 app/Interfaces/Export/WithParentSheet.php diff --git a/app/Abstracts/Model.php b/app/Abstracts/Model.php index 0ca6e8c2c..df309d866 100644 --- a/app/Abstracts/Model.php +++ b/app/Abstracts/Model.php @@ -5,6 +5,7 @@ namespace App\Abstracts; use Akaunting\Sortable\Traits\Sortable; use App\Events\Common\SearchStringApplied; use App\Events\Common\SearchStringApplying; +use App\Interfaces\Export\WithParentSheet; use App\Traits\DateTime; use App\Traits\Owners; use App\Traits\Sources; @@ -161,7 +162,9 @@ abstract class Model extends Eloquent implements Ownable $limit = (int) $request->get('limit', setting('default.list_limit', '25')); $offset = $page ? ($page - 1) * $limit : 0; - $query->offset($offset)->limit($limit); + if (! $this instanceof WithParentSheet && count((array) $ids) < $limit) { + $query->offset($offset)->limit($limit); + } return $query->cursor(); } diff --git a/app/Exports/Banking/Sheets/RecurringTransactions.php b/app/Exports/Banking/Sheets/RecurringTransactions.php index 5e4b44ca5..43ee656bf 100644 --- a/app/Exports/Banking/Sheets/RecurringTransactions.php +++ b/app/Exports/Banking/Sheets/RecurringTransactions.php @@ -4,10 +4,11 @@ namespace App\Exports\Banking\Sheets; use App\Abstracts\Export; use App\Models\Banking\Transaction as Model; +use App\Interfaces\Export\WithParentSheet; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class RecurringTransactions extends Export implements WithColumnFormatting +class RecurringTransactions extends Export implements WithColumnFormatting, WithParentSheet { public function collection() { diff --git a/app/Exports/Common/Sheets/ItemTaxes.php b/app/Exports/Common/Sheets/ItemTaxes.php index e1e408562..3cfd27f78 100644 --- a/app/Exports/Common/Sheets/ItemTaxes.php +++ b/app/Exports/Common/Sheets/ItemTaxes.php @@ -4,9 +4,10 @@ namespace App\Exports\Common\Sheets; use App\Abstracts\Export; use App\Http\Requests\Common\ItemTax as Request; +use App\Interfaces\Export\WithParentSheet; use App\Models\Common\ItemTax as Model; -class ItemTaxes extends Export +class ItemTaxes extends Export implements WithParentSheet { public $request_class = Request::class; diff --git a/app/Exports/Purchases/Bills/Sheets/BillHistories.php b/app/Exports/Purchases/Bills/Sheets/BillHistories.php index 8e3ec8546..8a5c0d972 100644 --- a/app/Exports/Purchases/Bills/Sheets/BillHistories.php +++ b/app/Exports/Purchases/Bills/Sheets/BillHistories.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\Bills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentHistory as Model; +use App\Interfaces\Export\WithParentSheet; -class BillHistories extends Export +class BillHistories extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/Bills/Sheets/BillItemTaxes.php b/app/Exports/Purchases/Bills/Sheets/BillItemTaxes.php index e36b81f24..2489c06e3 100644 --- a/app/Exports/Purchases/Bills/Sheets/BillItemTaxes.php +++ b/app/Exports/Purchases/Bills/Sheets/BillItemTaxes.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\Bills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItemTax as Model; +use App\Interfaces\Export\WithParentSheet; -class BillItemTaxes extends Export +class BillItemTaxes extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/Bills/Sheets/BillItems.php b/app/Exports/Purchases/Bills/Sheets/BillItems.php index 5524a8f6e..027383544 100644 --- a/app/Exports/Purchases/Bills/Sheets/BillItems.php +++ b/app/Exports/Purchases/Bills/Sheets/BillItems.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\Bills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItem as Model; +use App\Interfaces\Export\WithParentSheet; -class BillItems extends Export +class BillItems extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/Bills/Sheets/BillTotals.php b/app/Exports/Purchases/Bills/Sheets/BillTotals.php index e3b2fd6ae..13c10a2ac 100644 --- a/app/Exports/Purchases/Bills/Sheets/BillTotals.php +++ b/app/Exports/Purchases/Bills/Sheets/BillTotals.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\Bills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentTotal as Model; +use App\Interfaces\Export\WithParentSheet; -class BillTotals extends Export +class BillTotals extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/Bills/Sheets/BillTransactions.php b/app/Exports/Purchases/Bills/Sheets/BillTransactions.php index 2a46df0f8..f152a60c2 100644 --- a/app/Exports/Purchases/Bills/Sheets/BillTransactions.php +++ b/app/Exports/Purchases/Bills/Sheets/BillTransactions.php @@ -4,10 +4,11 @@ namespace App\Exports\Purchases\Bills\Sheets; use App\Abstracts\Export; use App\Models\Banking\Transaction as Model; +use App\Interfaces\Export\WithParentSheet; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class BillTransactions extends Export implements WithColumnFormatting +class BillTransactions extends Export implements WithColumnFormatting, WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillHistories.php b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillHistories.php index 41af4ea76..21d9185aa 100644 --- a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillHistories.php +++ b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillHistories.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\RecurringBills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentHistory as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringBillHistories extends Export +class RecurringBillHistories extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItemTaxes.php b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItemTaxes.php index 1249a8160..be87f1096 100644 --- a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItemTaxes.php +++ b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItemTaxes.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\RecurringBills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItemTax as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringBillItemTaxes extends Export +class RecurringBillItemTaxes extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItems.php b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItems.php index 1e7eb345e..7f10bcee5 100644 --- a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItems.php +++ b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillItems.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\RecurringBills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItem as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringBillItems extends Export +class RecurringBillItems extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillTotals.php b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillTotals.php index fdaadafc6..a0f5fb6c9 100644 --- a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillTotals.php +++ b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBillTotals.php @@ -4,8 +4,9 @@ namespace App\Exports\Purchases\RecurringBills\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentTotal as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringBillTotals extends Export +class RecurringBillTotals extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBills.php b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBills.php index beda1e22c..fa23ff017 100644 --- a/app/Exports/Purchases/RecurringBills/Sheets/RecurringBills.php +++ b/app/Exports/Purchases/RecurringBills/Sheets/RecurringBills.php @@ -4,10 +4,11 @@ namespace App\Exports\Purchases\RecurringBills\Sheets; use App\Abstracts\Export; use App\Models\Document\Document as Model; +use App\Interfaces\Export\WithParentSheet; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class RecurringBills extends Export implements WithColumnFormatting +class RecurringBills extends Export implements WithColumnFormatting, WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/Invoices/Sheets/InvoiceHistories.php b/app/Exports/Sales/Invoices/Sheets/InvoiceHistories.php index ccbd261ce..4e2a8fb08 100644 --- a/app/Exports/Sales/Invoices/Sheets/InvoiceHistories.php +++ b/app/Exports/Sales/Invoices/Sheets/InvoiceHistories.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\Invoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentHistory as Model; +use App\Interfaces\Export\WithParentSheet; -class InvoiceHistories extends Export +class InvoiceHistories extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/Invoices/Sheets/InvoiceItemTaxes.php b/app/Exports/Sales/Invoices/Sheets/InvoiceItemTaxes.php index bcdb4df16..6951a4a0f 100644 --- a/app/Exports/Sales/Invoices/Sheets/InvoiceItemTaxes.php +++ b/app/Exports/Sales/Invoices/Sheets/InvoiceItemTaxes.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\Invoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItemTax as Model; +use App\Interfaces\Export\WithParentSheet; -class InvoiceItemTaxes extends Export +class InvoiceItemTaxes extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/Invoices/Sheets/InvoiceItems.php b/app/Exports/Sales/Invoices/Sheets/InvoiceItems.php index ea084cbbc..c16ce713b 100644 --- a/app/Exports/Sales/Invoices/Sheets/InvoiceItems.php +++ b/app/Exports/Sales/Invoices/Sheets/InvoiceItems.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\Invoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItem as Model; +use App\Interfaces\Export\WithParentSheet; -class InvoiceItems extends Export +class InvoiceItems extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/Invoices/Sheets/InvoiceTotals.php b/app/Exports/Sales/Invoices/Sheets/InvoiceTotals.php index 9701bb9e6..a838d2f61 100644 --- a/app/Exports/Sales/Invoices/Sheets/InvoiceTotals.php +++ b/app/Exports/Sales/Invoices/Sheets/InvoiceTotals.php @@ -4,8 +4,10 @@ namespace App\Exports\Sales\Invoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentTotal as Model; +use App\Interfaces\Export\WithParentSheet; -class InvoiceTotals extends Export + +class InvoiceTotals extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/Invoices/Sheets/InvoiceTransactions.php b/app/Exports/Sales/Invoices/Sheets/InvoiceTransactions.php index f3a6ae485..d3a6cc591 100644 --- a/app/Exports/Sales/Invoices/Sheets/InvoiceTransactions.php +++ b/app/Exports/Sales/Invoices/Sheets/InvoiceTransactions.php @@ -4,10 +4,11 @@ namespace App\Exports\Sales\Invoices\Sheets; use App\Abstracts\Export; use App\Models\Banking\Transaction as Model; +use App\Interfaces\Export\WithParentSheet; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class InvoiceTransactions extends Export implements WithColumnFormatting +class InvoiceTransactions extends Export implements WithColumnFormatting, WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceHistories.php b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceHistories.php index df0dd0727..4e4b8b063 100644 --- a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceHistories.php +++ b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceHistories.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\RecurringInvoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentHistory as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringInvoiceHistories extends Export +class RecurringInvoiceHistories extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItemTaxes.php b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItemTaxes.php index fcf783945..611a2bbb5 100644 --- a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItemTaxes.php +++ b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItemTaxes.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\RecurringInvoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItemTax as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringInvoiceItemTaxes extends Export +class RecurringInvoiceItemTaxes extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItems.php b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItems.php index fabc31c80..b7cb0d5ae 100644 --- a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItems.php +++ b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceItems.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\RecurringInvoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentItem as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringInvoiceItems extends Export +class RecurringInvoiceItems extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceTotals.php b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceTotals.php index 8d7b7af4f..85a8e7c45 100644 --- a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceTotals.php +++ b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoiceTotals.php @@ -4,8 +4,9 @@ namespace App\Exports\Sales\RecurringInvoices\Sheets; use App\Abstracts\Export; use App\Models\Document\DocumentTotal as Model; +use App\Interfaces\Export\WithParentSheet; -class RecurringInvoiceTotals extends Export +class RecurringInvoiceTotals extends Export implements WithParentSheet { public function collection() { diff --git a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoices.php b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoices.php index 923ee94e3..84b6aedc7 100644 --- a/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoices.php +++ b/app/Exports/Sales/RecurringInvoices/Sheets/RecurringInvoices.php @@ -4,10 +4,11 @@ namespace App\Exports\Sales\RecurringInvoices\Sheets; use App\Abstracts\Export; use App\Models\Document\Document as Model; +use App\Interfaces\Export\WithParentSheet; use Maatwebsite\Excel\Concerns\WithColumnFormatting; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class RecurringInvoices extends Export implements WithColumnFormatting +class RecurringInvoices extends Export implements WithColumnFormatting, WithParentSheet { public function collection() { diff --git a/app/Interfaces/Export/WithParentSheet.php b/app/Interfaces/Export/WithParentSheet.php new file mode 100644 index 000000000..2fe0c9875 --- /dev/null +++ b/app/Interfaces/Export/WithParentSheet.php @@ -0,0 +1,8 @@ +get('limit', setting('default.list_limit', '25')); $offset = $page ? ($page - 1) * $limit : 0; - $query->offset($offset)->limit($limit); + if (! $this instanceof WithParentSheet && count((array) $ids) < $limit) { + $query->offset($offset)->limit($limit); + } return $query->cursor(); }