<?php

namespace App\Http\Controllers;
use App\Producto;
use App\Linea;
use App\Especialidad;
use App\ProductoMarca;
use App\Parrilla;
use App\ParrillaPresentacion;
use App\ParrillaPresentacionProducto;
use App\ProductoPromocional;

use Illuminate\Http\Request;

class ParrillasController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        
        $fecha_actual = strtotime(date("d-m-Y",time()));
        $parrillas=Parrilla::with('parrilla_linea')
                            ->with('parrilla_especialidad')
                            ->get();
        return view('parrillas.lista',compact('parrillas','fecha_actual'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        $ventas=Producto::where('id_tipo','1')->orderBy('nombre', 'ASC')->get();
        $muestrasMedicas=Producto::where('id_tipo','2')->orderBy('nombre', 'ASC')->get();
        $lineas=Linea::all();
        $productosPromocionalesJson=json_encode(ProductoPromocional::all());

        $muestrasMedicasJson=json_encode($muestrasMedicas);
        $especialidades=Especialidad::all();
        
        return view('parrillas.nuevo',compact('muestrasMedicas','lineas','especialidades','ventas','productosPromocionalesJson','muestrasMedicasJson'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        $fecha_inicio= date_format(date_create($request->fecha_inicio),"Y/m/d");
        $fecha_final= date_format(date_create($request->fecha_final),"Y/m/d");
        $parrilla = new Parrilla();
        $linea=Linea::where('id',$request->id_linea)->first();
        $especialidad=Especialidad::where('id',$request->id_especialidad)->first();

        $imageName = time().'.'.$request->documento->extension();  
        $factura_image=$request->documento->move(public_path('documentos_promocionales'), $imageName);  
        $path = url('/documentos_promocionales').'/'.$imageName; 

        $parrilla->nombre = $linea->descripcion_linea.' '.$especialidad->descripcion_especialidad.' '.$fecha_final;
        $parrilla->id_linea = $request->id_linea;
        $parrilla->id_especialidad = $request->id_especialidad;
        $parrilla->documento_promocional = $path;
        $parrilla->fecha_inicio = $fecha_inicio;
        $parrilla->fecha_final = $fecha_final;
        $parrilla->save();
        if($parrilla->id){
            $j=1;
            for($i = 0; $i<$request->contador; $i++){
                $parrillaPresentacion=new ParrillaPresentacion();
                $parrillaPresentacion->id_parrilla = $parrilla->id;
                $parrillaPresentacion->orden = 1;
                $parrillaPresentacion->id_producto = $request->id_producto[$i];
                $parrillaPresentacion->descripcion = $request->descripcion[$i];
                $parrillaPresentacion->save();
                if($parrillaPresentacion->id){
                    $k=0;
                    $nombreP='id_producto'.$j;
                    $nombreC='cantidad_producto'.$j;
                    $nombreR='id_tipo_recurso'.$j;
                    while(isset($request->$nombreP[$k])){

                        $parrillaPresentacionProducto=new ParrillaPresentacionProducto();
                        $parrillaPresentacionProducto->id_parrilla = $parrilla->id;
                        $parrillaPresentacionProducto->id_parrilla_presentacion = $parrillaPresentacion->id;
                        $parrillaPresentacionProducto->cantidad = $request->$nombreC[$k];
                        $parrillaPresentacionProducto->tipo_recurso = $request->$nombreR[$k];
                        $parrillaPresentacionProducto->id_producto = $request->$nombreP[$k];
                        $parrillaPresentacionProducto->save();
                        $k++;

                    }

                }
                $j++;
            }
            $arrResponse = [
                'message' => 'Parrilla guardada correctamente'
            ];
            return redirect()->route('marketing.parrillas')->with($arrResponse);
        }
        $arrResponse = [
            'message' => 'Error no se guardado correctamente 1'
        ];
        return redirect()->route('marketing.parrillas')->with($arrResponse);

    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
        $parrilla = Parrilla::where('id',$id)->first();
        $parrillaPresentacion=ParrillaPresentacion::where('id_parrilla',$id)->get();
        $lineas=Linea::all();
        $especialidades=Especialidad::all();
        $parrillaPresentacionProducto=ParrillaPresentacionProducto::where('id_parrilla',$id)->get();
        $productoPromocional=ProductoPromocional::all();
        //dd($parrillaPresentacionProducto);
        $ventas=Producto::where('id_tipo','1')->orderBy('nombre', 'ASC')->get();
        $muestrasMedicas=Producto::where('id_tipo','2')->get();
        $productosPromocionalesJson=json_encode(ProductoPromocional::all());
        $muestrasMedicasJson=json_encode($muestrasMedicas);

        //dd( $parrilla);
        return view('parrillas.ver',compact('parrilla','parrillaPresentacion','parrillaPresentacionProducto','productoPromocional','lineas','especialidades','ventas','muestrasMedicas','productosPromocionalesJson','muestrasMedicasJson'));
        
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }

    public function duplicar($id)
    {
       //
       $parrilla = Parrilla::where('id',$id)->first();
       $parrillaPresentacion=ParrillaPresentacion::where('id_parrilla',$id)->get();
       $lineas=Linea::all();
       $especialidades=Especialidad::all();

       $parrillaPresentacionProducto=ParrillaPresentacionProducto::where('id_parrilla',$id)->get();
       $productoPromocional=ProductoPromocional::all();
       //dd($parrillaPresentacionProducto);
       $ventas=Producto::where('id_tipo','1')->orderBy('nombre', 'ASC')->get();
       $muestrasMedicas=Producto::where('id_tipo','2')->get();
       $productosPromocionalesJson=json_encode(ProductoPromocional::all());
       $muestrasMedicasJson=json_encode($muestrasMedicas);

       //dd( $parrilla);
       return view('parrillas.duplicar',compact('parrilla','parrillaPresentacion','parrillaPresentacionProducto','productoPromocional','lineas','especialidades','ventas','muestrasMedicas','productosPromocionalesJson','muestrasMedicasJson'));

    }
}
