<?php

namespace App\Http\Controllers;

use App\Models\ConfCaixa;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;


class ConfCaixaController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $caixas=ConfCaixa::select('*')->get();
        return view('usuarios.funcionarios.secArmazem.configArmazem.caixas.listar',['caixas'=>$caixas]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('usuarios.funcionarios.secArmazem.configArmazem.caixas.nova');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {   
        $caixas=ConfCaixa::where('tipocaixa',$request->tipo_caixa)->select('tipocaixa')->get();
          if(!$caixas->isEmpty()){
            $store['success']=false;
            $store['message']='este tipo ja existe';
            return json_encode($store);

        }
        $confcaixa=new ConfCaixa();
        $confcaixa->tipocaixa=$request->tipo_caixa;
        $confcaixa->alturacaixa=$request->altura_caixa;
        $confcaixa->larguracaixa=$request->largura_caixa;
        $confcaixa->areacaixa=($request->altura_caixa*$request->largura_caixa);
        $confcaixa->profundidadecaixa=$request->profundidadecaixa;
        $confcaixa->descricaocaixa=$request->descricao;
        $confcaixa->save(); 
        $store['success']=true;
        $store['message']='good';
        return json_encode($store);

    
    }
    public function sucessoConCaixa(){
        return redirect()->route('us.armazem.conf.Confcaixas.confcaixas.index')->with('sucessoconfCaixa','cadastrado com sucesso');
    }
    public function alterarConCaixa(){
        return redirect()->route('us.armazem.conf.Confcaixas.confcaixas.index')->with('sucessoconfCaixa','alterado com suceesso');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\ConfCaixa  $confCaixa
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {   
        $idcaixa=$id;
        $tipo=Confcaixa::where('id',$id)->select('*')->get();
        return view('usuarios.funcionarios.secArmazem.configArmazem.caixas.editar',['tipo'=>$tipo,'idcaixa'=>$idcaixa]);
    }

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

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\ConfCaixa  $confCaixa
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {   
        $existenteTipo=ConfCaixa::select('id','tipocaixa')->get();
            foreach($existenteTipo as $existe)
            {   $verifcarIguais=strcasecmp($existe->tipocaixa,$request->tipo_caixa);
                if( $verifcarIguais== 0 )
                {   
                    if($id != $existe->id)
                    { 
                        return redirect()->back()->with('errorconfcaixa','Essa Caixa ja Existe');
                        break;
                    } 
                   
                }       
            }          
                       
                    if($confcaixa=ConfCaixa::find($id)){
                    
                      $confcaixa->tipocaixa=$request->tipo_caixa;
                      $confcaixa->alturacaixa=$request->altura_caixa;
                      $confcaixa->larguracaixa=$request->largura_caixa;
                      $confcaixa->areacaixa=($request->altura_caixa*$request->largura_caixa);
                      $confcaixa->profundidadecaixa=$request->profundidadecaixa;
                      $confcaixa->descricaocaixa=$request->descricao;
                      $confcaixa->save();
                    
                            return redirect()->route('us.armazem.conf.Confcaixas.confcaixas.index')->with('sucessoconfCaixa','Alterado com sucesso');
              
                        }
              
 }

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

}
