<?php

namespace App\Http\Controllers;

use App\Models\Fileira;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class FileiraController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $fileira=$this->trazerInfoFileira();
        return view('usuarios.funcionarios.secArmazem.configArmazem.fileiras.listar',['fileira'=>$fileira]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()

    {
        return view('usuarios.funcionarios.secArmazem.configArmazem.fileiras.novo');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $fileira= new Fileira();
        $fileira->numerofileira=$request->numero_fileira;
        $fileira->largurafileira=$request->largura_fileira;
        $fileira->alturafileira=$request->altura_fileira;
        $fileira->posicaofileira=$request->posicao_fileira;
        $fileira->prateleira_id=$request->prateleira_id;
        $fileira->profundidadefileira=$request->profundidade_fileira;
        $fileira->areafileira=($request->altura_fileira*$request->largura_fileira);
        
          //$estado='activo';
        $prateleira=$fileira->save();
        if($prateleira)
                {
                    return redirect()->route('us.armazem.conf.Gestfileira.fileira.index')->with('sucessoFileira','Cadastrado com Sucesso');
                }
   
      return redirect()->back()->with('sucessoFileira','Erro ao cadastrar');
    
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Fileira  $fileira
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $fileira=$this->trazerInfoFileiraList($id);
        $idFileira=$id;
        return view('usuarios.funcionarios.secArmazem.configArmazem.fileiras.editar',['fileira'=>$fileira, 'idFileira'=>$idFileira]);
    }

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

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Fileira  $fileira
     * @return \Illuminate\Http\Response
     */
    public function update($id,Request $request)
    {
        
    if($fileira = Fileira::find($id)){
        $fileira->numerofileira=$request->numero_fileira;
        $fileira->largurafileira=$request->largura_fileira;
        $fileira->alturafileira=$request->altura_fileira;
        $fileira->posicaofileira=$request->posicao_fileira;
        $fileira->prateleira_id=$request->prateleira_id;
        $fileira->profundidadefileira=$request->profundidade_fileira;
        $fileira->areafileira=($request->altura_fileira*$request->largura_fileira);
        
          //$estado='activo';
        $fileira=$fileira->save();
        if($fileira)
                {
                    return redirect()->route('us.armazem.conf.Gestfileira.fileira.index')->with('sucessoFileira','Editado com Sucesso');
                }
            }
      return redirect()->back()->with('falhafileira','Erro ao editar');
    
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Fileira  $fileira
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        if($fileira = Fileira::find($id)){
            $pass=$request->password;
            $actual=Auth::user();
                if(Hash::check($pass, $actual->password)){
                    $fileira->delete();
                    return redirect()->route('us.armazem.conf.Gestfileira.fileira.index')->with('sucessoFileiras','Eliminado  com Sucesso');
                }
        }
        return redirect()->back()->with('falhaFileiras','A sua senha não está correcta, não foi possível Eliminar este dado');
    }

    public function trazerInfoFileira(){

        $dados=DB::table('armazens')
                ->join('corredores','corredores.armazem_id','=','armazens.id')
                ->join('andares','andares.id','=','corredores.andar_id')
                ->join('ladocorredores','ladocorredores.corredor_id','=','corredores.id')
                ->join('modulos','modulos.lado_id','=','ladocorredores.id')
                ->join('prateleiras','prateleiras.modulo_id','=','modulos.id')
                ->join('fileiras','fileiras.prateleira_id','=','prateleiras.id')
                ->select('fileiras.*','corredores.numerocorredor','prateleiras.numeroprateleira',
                        'modulos.numeromodulo','andares.andar','armazens.nomearmazen')->get();
        return $dados;

    }
    public function trazerInfoFileiraList($id){

        $dados=DB::table('armazens')
                ->join('corredores','corredores.armazem_id','=','armazens.id')
                ->join('andares','andares.id','=','corredores.andar_id')
                ->join('ladocorredores','ladocorredores.corredor_id','=','corredores.id')
                ->join('modulos','modulos.lado_id','=','ladocorredores.id')
                ->join('prateleiras','prateleiras.modulo_id','=','modulos.id')
                ->join('fileiras','fileiras.prateleira_id','=','prateleiras.id')
                ->where('fileiras.id',$id)
                ->select('fileiras.*','corredores.numerocorredor','ladocorredores.ladocorredor',
                        'prateleiras.numeroprateleira','corredores.andar_id','corredores.armazem_id',
                        'modulos.numeromodulo','andares.andar','armazens.nomearmazen')->distinct()->get();
        return $dados;

    }
}
