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'), ]; } } }