<?php

namespace App\Http\Controllers;

use App\Exports\SimsExport;
use App\Imports\SimsImport;
use Exception;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;

class SimController extends Controller
{
    public function simsImport(Request $request) {

        ini_set('memory_limit', '-1');
        ini_set('max_execution_time', 300);

        $data = [];
        if ($request->hasFile('sims')) {
            try {

                $description = $request->description;
                $operator = $request->operator;
                $size = $request->size;
    
                $upload = Excel::import(new SimsImport($description, $operator, $size), $request->file('sims'));

                $data = [
                    'upload' => $upload
                ];
    
            } catch (Exception $exception) {
                return errorReturn($exception->getMessage(), 'products_import', 'No se ha importado el archivo');
            }
        } else {
            return errorReturn('No se ha subido un archivo', 'file_products', 'El archivo es requerido');
        }

        return successReturn('Se ha subido el archivo correctamente', $request->route()->getActionname(), $data);
    }

    public function simsExport() {
        
        ini_set('memory_limit', '-1');
        set_time_limit(0);
        
        return Excel::download(new SimsExport(), 'sims-GLP-ZF-' . date('Y-m-d-H-i-s') . '.xlsx');
    }
}
