mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-29 01:13:59 +00:00
export transaction to excel
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Exports\Services;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\BusinessType;
|
||||
use App\Classes\ValueObjects\Constants\CompanyType;
|
||||
use App\Models\Company;
|
||||
use App\Models\Transaction;
|
||||
use Maatwebsite\Excel\Concerns\Exportable;
|
||||
use Maatwebsite\Excel\Concerns\FromQuery;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
|
||||
class ExportsTransactions implements FromQuery, WithHeadingRow, WithMapping
|
||||
{
|
||||
|
||||
use Exportable;
|
||||
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Support\Collection|mixed
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
return Transaction::query();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $transaction
|
||||
* @return array
|
||||
*/
|
||||
public function map($transaction): array
|
||||
{
|
||||
$transactionTypes = [
|
||||
0 => 'PAYMENT_ATTEMPT',
|
||||
1 => 'PAYMENT',
|
||||
2 => 'INVOICE',
|
||||
3 => 'BILL',
|
||||
4 => 'PERFORMA',
|
||||
5 => 'TOP_UP',
|
||||
6 => 'REFUND',
|
||||
7 => 'PURCHASE_ORDER',
|
||||
8 => 'SUPPLIER_DELIVER',
|
||||
];
|
||||
|
||||
$transactionStatus = [
|
||||
0 => 'PENDING_SUBMISSION',
|
||||
1 => 'PENDING_VERIFICATION',
|
||||
2 => 'APPROVED',
|
||||
3 => 'COMPLETED',
|
||||
4 => 'REJECTED',
|
||||
5 => 'SUSPENDED',
|
||||
6 => 'EXPIRED'
|
||||
];
|
||||
|
||||
return [
|
||||
$transaction->bill_no,
|
||||
$transaction->booking->marking,
|
||||
$transaction->booking->company->reference,
|
||||
$transactionTypes[$transaction->type],
|
||||
$transaction->currency_id === 1 ? 'MYR' : 'RMB',
|
||||
$transaction->amount,
|
||||
$transaction->original_currency_id === 1 ? 'MYR' : 'RMB',
|
||||
$transaction->original_amount,
|
||||
$transaction->currency_rate,
|
||||
$transaction->tax,
|
||||
$transaction->service_charge,
|
||||
$transactionStatus[$transaction->status],
|
||||
\PhpOffice\PhpSpreadsheet\Shared\Date::dateTimeToExcel($transaction->created_at),
|
||||
\PhpOffice\PhpSpreadsheet\Shared\Date::dateTimeToExcel($transaction->updated_at),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Exports;
|
||||
|
||||
|
||||
use App\Classes\Modules\Exports\Services\ExportsCustomers;
|
||||
use App\Classes\Modules\Exports\Services\ExportsTransactions;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -17,4 +18,10 @@ class ExportCustomersToExcelController
|
||||
$request->headers->set('Authorization', 'Bearer '.$token);
|
||||
return $exportsCustomers->download('customers.csv', Excel::CSV, ['Content-Type' => 'text/csv']);
|
||||
}
|
||||
|
||||
public function transactions(ExportsTransactions $exportsTransactions, Request $request){
|
||||
$token = Auth::fromUser(User::find(1));
|
||||
$request->headers->set('Authorization', 'Bearer '.$token);
|
||||
return $exportsTransactions->download('transactions.csv', Excel::CSV, ['Content-Type' => 'text/csv']);
|
||||
}
|
||||
}
|
||||
@@ -72,3 +72,4 @@ Route::get('/mail', function () {
|
||||
|
||||
|
||||
Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export');
|
||||
Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions');
|
||||
|
||||
Reference in New Issue
Block a user