| 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/TransactionExport.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 Maatwebsite\Excel\Concerns\WithDrawings;
// use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use Illuminate\Support\Facades\Auth;
class TransactionExport implements FromQuery,WithHeadings, WithMapping,WithEvents
//,WithDrawings
{
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;
}
public function registerEvents(): array
{
return [
AfterSheet::class=> function(AfterSheet $event) {
$event->sheet->getDelegate()->getStyle('A1:B1')
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('153654');
$event->sheet->getDelegate()->getStyle('C1:U1')
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('679ECE');
$event->sheet->getDelegate()->getStyle('V1:Z1')
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
->getStartColor()
->setARGB('0383F0');
},
];
}
// public function drawings()
// {
// $drawing = new Drawing();
// $drawing->setName('Logo');
// $drawing->setDescription('Logo');
// $drawing->setPath(public_path('/logo.png'));
// $drawing->setHeight(50);
// $drawing->setCoordinates('A1');
// return $drawing;
// }
/**
* @return \Illuminate\Support\Collection
*/
// use Exportable;
public function headings(): array
{
$this->moneyExhangeLists = MoneyExchangeList::where('is_active', true)->orderBy('order')->get();
$cols= ['ID',"Customer",__('message.exchange from').'/'.__('message.exchange to')];
foreach($this->moneyExhangeLists as $moneyExhangeList) {
$cols = array_merge($cols, [
$moneyExhangeList->exchangeFromCurrency->currency_code??'#',
"Rate",
$moneyExhangeList->exchangeToCurrency->currency_code??'#',
]);
}
$cols = array_merge($cols,['THB','USD','KHR', __('message.created by'),__('message.created date')]);
$this->orders = $this->moneyExhangeLists->pluck('order')->toArray();
return $cols;
// 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 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;
$startExchangeColumn = array_search($moneyExchangeList->order, $this->orders);
// dd($startExchangeColumn, (($startExchangeColumn+1)*3)+1);
if($startExchangeColumn==0){
return [
$this->current_row,
$transaction->customer_level==1?__('message.general'):__('message.special'),
($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,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
number_format($transaction->credit_thb,2),
number_format($transaction->credit_usd,2),
number_format($transaction->credit_khr,2),
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
elseif($startExchangeColumn==1){
return [
$this->current_row,
$transaction->customer_level==1?__('message.general'):__('message.special'),
($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,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
number_format($transaction->credit_thb,2),
number_format($transaction->credit_usd,2),
number_format($transaction->credit_khr,2),
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
elseif($startExchangeColumn==2){
return [
$this->current_row,
$transaction->customer_level==1?__('message.general'):__('message.special'),
($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,
"",
"",
"",
"",
"",
"",
"",
"",
"",
number_format($transaction->credit_thb,2),
number_format($transaction->credit_usd,2),
number_format($transaction->credit_khr,2),
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
elseif($startExchangeColumn==3){
return [
$this->current_row,
$transaction->customer_level==1?__('message.general'):__('message.special'),
($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,
"",
"",
"",
"",
"",
"",
number_format($transaction->credit_thb,2),
number_format($transaction->credit_usd,2),
number_format($transaction->credit_khr,2),
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
elseif($startExchangeColumn==4){
return [
$this->current_row,
$transaction->customer_level==1?__('message.general'):__('message.special'),
($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,
"",
"",
"",
number_format($transaction->credit_thb,2),
number_format($transaction->credit_usd,2),
number_format($transaction->credit_khr,2),
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
elseif($startExchangeColumn==5){
return [
$this->current_row,
$transaction->customer_level==1?__('message.general'):__('message.special'),
($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,
number_format($transaction->credit_thb,2),
number_format($transaction->credit_usd,2),
number_format($transaction->credit_khr,2),
$transaction->user->name??'#',
$transaction->created_at->format('d/m/Y H:i'),
];
}
}
}