KUJUNTI.ID MINISH3LL
Path : /var/www/html/moneyexchange/app/Exports/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/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'),

© KUJUNTI.ID