export transaction to excel

This commit is contained in:
omair saleh
2021-07-02 18:13:38 +08:00
parent eb432a4347
commit f4752003ab
3 changed files with 81 additions and 0 deletions
@@ -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']);
}
}
+1
View File
@@ -72,3 +72,4 @@ Route::get('/mail', function () {
Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export');
Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions');