From a3d3d73267b330b48b3eba067cae2efb80a1e8fc Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 14 Jan 2022 19:29:15 +0800 Subject: [PATCH] export products list --- .../Exports/Services/ExportsProducts.php | 51 +++++++++++++++++++ routes/web.php | 11 ++-- 2 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 app/Classes/Modules/Exports/Services/ExportsProducts.php diff --git a/app/Classes/Modules/Exports/Services/ExportsProducts.php b/app/Classes/Modules/Exports/Services/ExportsProducts.php new file mode 100644 index 00000000..541f1d21 --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsProducts.php @@ -0,0 +1,51 @@ +whereHas('transaction', function($query){ + return $query->where('type', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->where('status', ApprovalStatus::APPROVED); + })->limit(50); + } + + /** + * @param $product + * @return array + */ + public function map($product): array + { + + return [ + $product->product_code, + $product->product_name, + $product->price, + ]; + } +} \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 238505b3..7d39e036 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,6 +4,7 @@ use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; +use Maatwebsite\Excel\Excel; /* |-------------------------------------------------------------------------- @@ -79,10 +80,6 @@ Route::get('/online_payment/redirect', 'Billplz\CallbackBillplzController@callba Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); -Route::get('/x2/data', function (Request $request) { - $token = Auth::fromUser(User::find(1)); - $request->headers->set('Authorization', 'Bearer '.$token); - dd(\App\Models\Booking::whereDoesntHave('transactions', function($query){ - $query->where('type', \App\Classes\ValueObjects\Constants\TransactionType::PURCHASE_ORDER)->whereIn('status', [\App\Classes\ValueObjects\Constants\ApprovalStatus::PENDING_VERIFICATION, \App\Classes\ValueObjects\Constants\ApprovalStatus::APPROVED]); - })->groupBy('company_id')->get()); -})->name('x2.data'); \ No newline at end of file +Route::get('/products', function (\App\Classes\Modules\Exports\Services\ExportsProducts $exportsProducts) { + return $exportsProducts->download('products.csv', Excel::CSV, ['Content-Type' => 'text/csv']); +})->name('products.random'); \ No newline at end of file