<?php

namespace App\DataTables;

// use App\AdminUSSDReportDataTable;
use App\UssdService;
use Yajra\DataTables\Html\Button;
use Yajra\DataTables\Html\Column;
use Yajra\DataTables\Services\DataTable;
use Yajra\DataTables\Html\Editor\Fields;
use Yajra\DataTables\Html\Editor\Editor;

class AdminUSSDReportDataTable extends DataTable
{
    /**
     * Build DataTable class.
     *
     * @param mixed $query Results from query() method.
     * @return \Yajra\DataTables\DataTableAbstract
     */
    public function dataTable($query)
    {
        return datatables()
            ->eloquent($query)
            ->addColumn('action', 'adminussdreportdatatable.action')
            ->addColumn('expiry_date', function($query) {

                if ($query->ussd_payment !== null) {
                    return $query->ussd_payment->expiry_date;
                }else{
                    return null;
                }
                
                
            })
            ->addColumn('amount', function($query) {
                if ($query->ussd_payment !== null) {
                return $query->ussd_payment->amount;
                }else{
                    return 0;
                }
                
            })
            ->addColumn('type', function($query) {
                if ($query !== null ) {
                    return 'Non-Applicable';
                }else{
                    return null;
                }
            });
    }



    /**
     * Get query source of dataTable.
     *
     * @param \App\AdminUSSDReportDataTable $model
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function query()
    {
        $query = UssdService::with('ussd_payment');

        return $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('')
            ->dom('Bfrtip')
            ->parameters([
                'dom' => 'Bfrtip',
                'buttons' => ['csv', 'excel', 'print', 'reload'],
                'order' => [[0, 'desc']]
        ]);
    }

    /**
     * Get columns.
     *
     * @return array
     */
    protected function getColumns()
    {
        return [
            
            'name' => ['title'=>'Name of Client'],
            'created_at'=>['title'=>'Date of Subscription'],
            'expiry_date'=>['title'=>'Date of Expiry'],
            'amount'=>['title'=>'Subscription Amount'],
            'sessions'=>['title'=>'Number of Sessions Allocated'],
            'type'=>['title'=>'Type of Client'],
           
        ];
    }

    /**
     * Get filename for export.
     *
     * @return string
     */
    protected function filename()
    {
        return 'AdminUSSDReport_' . date('YmdHis');
    }
}
