export random products to excel

This commit is contained in:
omair saleh
2022-01-14 19:32:39 +08:00
parent a9aabc781e
commit ce885693e1
2 changed files with 55 additions and 7 deletions
@@ -0,0 +1,51 @@
<?php
namespace App\Classes\Modules\Exports\Services;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\BusinessType;
use App\Classes\ValueObjects\Constants\CompanyType;
use App\Models\Company;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMapping;
class ExportsProducts implements FromQuery, WithHeadingRow, WithMapping
{
use Exportable;
public function headings(): array
{
return [
'HS Code',
'Name',
'price'
];
}
/**
* @return \Illuminate\Support\Collection|mixed
*/
public function query()
{
return \App\Models\TransactionDetail::inRandomOrder()->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,
];
}
}
+4 -7
View File
@@ -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,13 +80,9 @@ 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');
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');
Route::get('/1688', function (Request $request) {