Merge branch 'vapor/production' of https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0 into vapor/development

This commit is contained in:
Edmond Lang
2025-06-29 13:31:21 +08:00
3 changed files with 55 additions and 27 deletions
@@ -150,14 +150,22 @@ class ExportCustomersToExcelController
}
}
public function walletTransactions(Request $request){
public function walletTransactions(Request $request)
{
$exportsTransactions = new ExportsWalletTransactions($request);
$exportFileName = 'wallet-transactions.xls';
$type = $request->get('type');
$exportFileName = match ($type) {
'payment' => 'wallet-payment-transactions.xls',
'credit_note' => 'wallet-credit-note-transactions.xls',
'debit_note' => 'wallet-debit-note-transactions.xls',
default => 'wallet-topup-transactions.xls',
};
$filesystemDriver = Storage::getDefaultDriver();
if($filesystemDriver === 's3'){
return response([ 'src' => AWSS3Helper::S3Exportable($exportFileName, $exportsTransactions) ]);
}
else{
if ($filesystemDriver === 's3') {
return response(['src' => AWSS3Helper::S3Exportable($exportFileName, $exportsTransactions)]);
} else {
$response = $exportsTransactions->download($exportFileName, Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']);
ob_end_clean();
return $response;
@@ -19,7 +19,7 @@
<div class="col-12 col-md mb-2 mb-md-0 p-l-3 p-r-3 p-md-0">
<validation-wrapper-component selectable :validator="$v.parameters.reportType">
<label class="all-caps">Report Type</label>
<select-component :options="['Payments Report', 'Wallets Report', 'White Form Report']" v-model="parameters.reportType"></select-component>
<select-component :options="options()" v-model="parameters.reportType"></select-component>
</validation-wrapper-component>
</div>
<div class="col-12 col-md-auto p-l-3 p-r-3 p-md-0">
@@ -80,27 +80,44 @@ export default {
}
},
methods: {
downloadReport(){
var apiRoute = '';
if(!this.validate()){ return; }
switch(this.parameters.reportType) {
case 'Payments Report':
apiRoute = route('paymentTransactions.export');
break;
case 'Wallets Report':
apiRoute = route('walletTransactions.export');
break;
case 'White Form Report':
apiRoute = route('whiteFormTransactions.export');
break;
}
let url = apiRoute + '?startDate=' + this.parameters.startDate + '&endDate=' + this.parameters.endDate;
if(window.LARAVEL_VAPOR_ENABLED){
this.submit(url, 'get', this.section, false, false);
}
else{
window.open(url, '_blank');
options() {
return [
'Payments Report',
'White Form Report',
'Wallet Top Up Report',
'Wallet Payment Report',
'Wallet Credit Note Report',
'Wallet Debit Note Report',
];
},
downloadReport() {
if (!this.validate()) return;
const reportType = this.parameters.reportType;
const walletTypes = {
'Wallet Payment Report': 'payment',
'Wallet Credit Note Report': 'credit_note',
'Wallet Debit Note Report': 'debit_note',
};
const routesMap = {
'Payments Report': route('paymentTransactions.export'),
'White Form Report': route('whiteFormTransactions.export'),
'Wallet Top Up Report': route('walletTransactions.export'),
'Wallet Payment Report': route('walletTransactions.export'),
'Wallet Credit Note Report': route('walletTransactions.export'),
'Wallet Debit Note Report': route('walletTransactions.export'),
};
let url = `${routesMap[reportType]}?startDate=${this.parameters.startDate}&endDate=${this.parameters.endDate}`;
if (walletTypes[reportType]) {
url += `&type=${walletTypes[reportType]}`;
}
window.LARAVEL_VAPOR_ENABLED
? this.submit(url, 'get', this.section, false, false)
: window.open(url, '_blank');
},
updateDocumentType(documentType) {
this.parameters.type = documentType;
@@ -66,6 +66,9 @@
<div v-if="$store.getters.isCustomer" class="col-auto p-r-20">
<a href="{{route('banks')}}"><div class="text-white all-caps fs-12">Bank Accounts</div></a>
</div>
<div v-if="$store.getters.isCustomer" class="col-auto p-r-20">
<a href="https://www.cief-malaysia.com/foreign-payment-service-e-invoice" target="_blank"><div class="text-white all-caps fs-12">E-Invoice Guideline</div></a>
</div>
<!-- <div v-if="$store.getters.isCustomer" class="col-auto p-r-20">
<a href="{{route('rewards')}}"><div class="text-white all-caps fs-12">Vouchers</div></a>
</div> -->