| Path : /var/www/html/mini-moneyexchange/app/Exports/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : //var/www/html/mini-moneyexchange/app/Exports/BankAccountTransactionExport.php |
<?php
namespace App\Exports;
use App\Models\BankAccountTransaction;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Illuminate\Support\Facades\Auth;
class BankAccountTransactionExport implements FromQuery,WithHeadings, WithMapping
{
private $current_row = 0;
private $start_date;
private $end_date;
private $bank_account_id;
private $bank_account_transaction_type_id;
private $currency_id;
public function __construct($start_date, $end_date, $currency_id, $bank_account_id, $bank_account_transaction_type_id)
{
$this->start_date = $start_date;
$this->end_date = $end_date;
$this->currency_id = $currency_id;
$this->bank_account_id = $bank_account_id;
$this->bank_account_transaction_type_id = $bank_account_transaction_type_id;
}
/**
* @return \Illuminate\Support\Collection
*/
// use Exportable;
public function headings(): array
{
return [
'No',
__('message.bank'),
__('message.bank account'),
// __('message.type'),
__('message.transaction type'),
__('message.amount'),
__('message.bank account transaction type'),
__('message.credit before transaction'),
__('message.credit after transaction'),
__('message.note'),
__('message.created by'),
__('message.created date'),
];
}
public function query()
{
$bank_account_id = $this->bank_account_id;
$currency_id = $this->currency_id;
$start_date = $this->start_date;
$end_date= $this->end_date;
$bank_account_transaction_type_id = $this->bank_account_transaction_type_id;
if($bank_account_id){
$datas = BankAccountTransaction::where('bank_account_id', $bank_account_id);
}
else {
$datas = BankAccountTransaction::query();
}
if($start_date!=null){
$datas = $datas->whereDate("created_at", ">=", $start_date." 00:00:00");
}
// if($bank_account_transaction_type_id!=null){
$datas = $datas->where("bank_account_transaction_type_id", $bank_account_transaction_type_id);
// }
if($currency_id!=null){
$datas->whereHas('bankAccount', function($query) use ($currency_id){
$query->where('bank_accounts.currency_id', $currency_id);
});
}
return $datas->orderBy('id', 'desc');
}
public function map($bankAccountTransaction): array
{
$this->current_row ++ ;
$currency = $bankAccountTransaction->bankAccount->currency??'';
// dd($bankAccountTransaction);
return [
$this->current_row,
$bankAccountTransaction->bankAccount->bank->name??'',
$bankAccountTransaction->bankAccount->bank_username??''.'/'.$bankAccountTransaction->bankAccount->bank_number??'',
$bankAccountTransaction->transaction_type=='in'?__('message.cash in'):__('message.cash out'),
$currency->name.' '.number_format($bankAccountTransaction->amount,$currency->decimal_precision),
$bankAccountTransaction->bankAccountTransactionType->name??'',
$currency->name.' '.number_format($bankAccountTransaction->credit_before_transaction,$currency->decimal_precision),
$currency->name.' '.number_format($bankAccountTransaction->credit_after_transaction,$currency->decimal_precision),
$bankAccountTransaction->note,
$bankAccountTransaction->user->name??'',
$bankAccountTransaction->created_at,
];
}
}
// 'No',
// __('message.bank'),
// __('message.bank account'),
// __('message.type'),
// __('message.transaction type'),
// __('message.amount'),
// __('message.bank account transaction type'),
// __('message.credit before transaction'),
// __('message.credit after transaction'),
// __('message.note'),
// __('message.created by'),
// __('message.created date'),