<?php
/**
 * Created by PhpStorm.
 * User: sunil
 * Date: 12/11/18
 * Time: 2:02 PM
 */

namespace App\Imports;

use App\Http\Controllers\Admin\ConsumerApplicationController;
use App\Mandate;
use App\ProFormaInvoice;
use function GuzzleHttp\Psr7\_parse_request_uri;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class CampaignImport implements ToCollection, WithHeadingRow
{

    use Importable;
    private $request;

    public function __construct(Request $request){
        $this->request = $request;
    }

    /**
     * @param Collection $collection
     */
    public function collection(Collection $collection)
    {
        // TODO: Implement collection() method.

        $name = $this->request->get('from');
        $this->$name($collection);
    }

    public function importCampaignFile($collection){

        $mobile = 0;
        $email = 0;
        $total = 0;
        $sample_data = null;
        $headers = array_keys($collection[0]->toArray());

        $table = '<table class="table table-striped">';
        $tableHead = '<thead><tr>';

        $tableBody = '<tbody>';
        $fetchData = [];
        foreach ($collection as $item){
            $tableBody .= '<tr>';
            if(isset($item['mobile_number']) && $item['mobile_number']){
                $mobile++;
            }
            if(isset($item['email']) && $item['email']){
                $email++;
            }
            $total++;
            if(!$sample_data) {
                $sample_data = $item;
            }

            foreach ($headers as $header){
                $tableBody .= '<td>'.$item[$header].'</td>';
            }

            $tableBody .= '</tr>';
            $fetchData[] = $item;
        }

        $headerData = [];
        foreach ($headers as $header){
            $headerData[] = [
                'id' => 0,
                'name' => $header
            ];

            $tableHead .= '<th>'.$header.'</th>';
        }

        $tableHead .= '</tr></thead>';

        $table .= $tableHead;
        $table .= $tableBody;
        $table .= '</table>';

        Session::put('CAM_Details', json_encode([
            'cam_total' => $total,
            'cam_mobile' => $mobile,
            'cam_email' => $email,
            'default_list' => $headerData,
            'sample_data' => $sample_data,
            'data' => $this->request->has('fetchData') ? $fetchData : [],
            'table' => $table
        ]));

    }
}