<?php

namespace App\DataTables;

use App\User;
use Illuminate\Support\Facades\Auth;
use Yajra\DataTables\Html\Button;
use Yajra\DataTables\Services\DataTable;

class AdminCreditHistoryDataTable extends DataTable
{

    public function dataTable($query)
    {
       return datatables()
            ->eloquent($query)
            ->addColumn('currency', function ($row){
                return $row->user->currency;
            })
            ->editColumn('credited',function ($row){
             return $row->role_id == '3' ? -$row->credited : $row->role_id;
            })
            ->addColumn('action', function ($row){
                if($row->status==='paid')
                    return '' .
                        '<a style="text-decoration:none" class="btn btn-sm btn-primary" href="' . route('admin.download_receipt', ['client_id'=>$row->user_id, 'id'=>$row->id]).'">Download Receipt</a>';
                else
                    return '';
            });

    }

    public function with_client_id($id) {
        $this->client_id = $id;
        return $this;
    }


    public function query()
    {
        $query = User::findOrFail($this->client_id)->creditHistory()->orderBy('date_credited', 'desc');

        return $this->applyScopes($query);
    }

    /**
     * Optional method if you want to use html builder.
     *
     * @return \Yajra\Datatables\Html\Builder
     */
    public function html()
    {
        return $this->builder()
                    ->columns($this->getColumns())
                    ->ajax('')
                    ->addAction(['width' => '120px'])
            ->dom('Bfrtip')
            ->buttons(
                Button::make('export'),
                Button::make('print'),
                Button::make('reset'),
                Button::make('reload')
            );
    }

    /**
     * Get columns.
     *
     * @return array
     */
    protected function getColumns()
    {
        return [
            'date_credited',
            'credited' => ['title' => 'Amount Purchased'],
//            'credit_used',
            'old_bal' => ['title' => 'Starting Balance'],
            'new_bal'  => ['title' => 'New Balance'],

//            'currency',
//            'status'
        ];
    }

    /**
     * Get filename for export.
     *
     * @return string
     */
    protected function filename()
    {
        return 'admincredithistorydatatables_' . time();
    }
}
