| 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/TransactionExport1.php |
<?php
namespace App\Exports;
use App\Models\Transaction;
use App\Models\MoneyExchangeList;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
class TransactionExport1 implements FromQuery,WithHeadings, WithMapping,WithEvents
{
private $current_row = 0;
private $start_date;
private $end_date;
private $bank_account_id;
private $user_id;
private $moneyExhangeLists;
private $orders;
public function __construct($start_date, $end_date, $bank_account_id, $user_id=null)
{
$this->start_date = $start_date;
$this->end_date = $end_date;
$this->bank_account_id = $bank_account_id;
$this->user_id = $user_id;
}
/**
* @return \Illuminate\Support\Collection
*/
// use Exportable;
public function headings(): array
{
return [
'No',
// __('message.customer'),
// __('message.bank account'),
__('message.exchange from').'/'.__('message.exchange to'),
__('message.amount'),
__('message.exchange rate'),
__('message.received money'),
__('message.created by'),
__('message.created date'),
];
}
public function registerEvents(): array
{
return [
AfterSheet::class=> function(AfterSheet $event) {
$event->sheet->getDelegate()->getStyle('A1:G1')
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('679ECE');
},
];
}
public function query()
{
$bank_account_id = $this->bank_account_id;
$user_id = $this->user_id;
$start_date = $this->start_date;
$end_date= $this->end_date;
if(Auth::user()->role_id==2){
$datas = Transaction::query();
}
else {
$datas = Transaction::where('user_id',Auth::id());
}
if($bank_account_id){
$datas->where('bank_account_id', $bank_account_id);
}
if($user_id){
$datas->where('user_id', $user_id);
}
if($start_date!=null){
// dd($start_date,$end_date);
$datas->whereDate("created_at", ">=", $start_date." 00:00:00");
}
if($end_date!=null){
$datas->whereDate("created_at", "<=", $end_date." 23:59:59");
}
return $datas->orderBy('id', 'desc');
}
public function map($transaction): array
{
$this->current_row ++ ;
$moneyExchangeList= $transaction->moneyExchangeList;
$currencyFrom= $moneyExchangeList->exchangeFromCurrency;
$currencyTo= $moneyExchangeList->exchangeToCurrency;
return [
$this->current_row,
($moneyExchangeList->exchangeFromCurrency->currency_code??'').'/'.($moneyExchangeList->exchangeToCurrency->currency_code??''),
number_format($transaction->amount,$currencyFrom->decimal_precision).' '.$currencyFrom->currency_code,
number_format($transaction->exchange_rate,2),
number_format($transaction->amount_after_exchange,$currencyTo->decimal_precision).' '.$currencyTo->currency_code,
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
}