<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use DB;

class UtilisationController extends Controller
{
    //

    function voirvalider ($id) {

        $util= DB::table('ligne_utilisation')->where('id',$id)->first();
        return [
            'util' => $util,
        ];
    }

    function voirvalideringredient ($id) {

        $ing= DB::table('ligne_ingredient')->where('id',$id)->first();
        return [
            'ing' => $ing,
        ];
    }


    function valideringredient () {

        $id=request('id');
		$today=date('Y-m-d');

            DB::table('ligne_ingredient')->where('id', $id)->update(
                [
                    'etat' => "Validée",
                    'date' => $today,
                ]
            );

            $idproduit= DB::table('ligne_ingredient')->where('id', $id)->first()->produit_id;

            $qte_uti = DB::table('ligne_ingredient')->where('id', $id)->first()->qte;
            
            $stokcuisine = DB::table('produit_vendable')->where('id', $idproduit)->first()->stock_cuisine;



            DB::table('produit_vendable')->where('id', $idproduit)->update(
                [
                    'stock_cuisine' => ($stokcuisine - $qte_uti),
                ]
            );

				DB::table('stock_cuisine')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $idproduit,
                        'nbre' => $qte_uti,
						'type_operation' => 'Sortie',
						'en_stock' => $stokcuisine,
                        'apres' => ($stokcuisine - $qte_uti),
                    ]
                );
 
       
        return redirect()->route('utilisation_ingredient')->with('status', 'Validation effectuée avec succes');
	}
    
    function valider () {

        $id=request('id');
		$today=date('Y-m-d');

            DB::table('ligne_utilisation')->where('id', $id)->update(
                [
                    'etat' => "Validée",
                    'date' => $today,
                ]
            );

            $idproduit= DB::table('ligne_utilisation')->where('id', $id)->first()->produit_id;

            $idproduitfini= DB::table('ligne_utilisation')->where('id', $id)->first()->pf_id;

            $qtesto =  DB::table('produit_vendable_fini')->where('id', $idproduitfini)->first()->stock_gene;

            $nbreobt = DB::table('ligne_utilisation')->where('id', $id)->first()->nbre;

            $qte_uti = DB::table('ligne_utilisation')->where('id', $id)->first()->qte;
            
            $stokcuisine = DB::table('produit_vendable')->where('id', $idproduit)->first()->stock_cuisine;



            DB::table('produit_vendable')->where('id', $idproduit)->update(
                [
                    'stock_cuisine' => ($stokcuisine - $qte_uti),
                ]
            );

         
            DB::table('produit_vendable_fini')->where('id', $idproduitfini)->update(
                [
                    'stock_gene' => ($qtesto + $nbreobt),
                ]
            );

			DB::table('stock_resto')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $idproduitfini,
                        'nbre' => $nbreobt,
						'type_operation' => 'Appro',
						'en_stock' => $qtesto,
                        'apres' => ($nbreobt + $qtesto),
                        'pv_id' =>$idproduit,
                    ]
                );
				DB::table('stock_cuisine')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $idproduit,
                        'nbre' => $qte_uti,
						'type_operation' => 'Sortie',
						'en_stock' => $stokcuisine,
                        'apres' => ($stokcuisine - $qte_uti),
                    ]
                );
 
       
        return redirect()->route('nouvelle_utilisation')->with('status', 'Validation effectuée avec succes');
	}

    function nouveau() {

        if(session('user')== null) {
            return redirect('/');
        }
    
        //$produits = DB::table('produit_vendable')->where('categorie_id','!=', '4')->get();
        $produits = DB::table('produit_vendable')->get();
        $produitfinis = DB::table('produit_vendable_fini')->get();
        $utilisations = DB::table('ligne_utilisation')->orderBydesc('id') ->limit(5)->get();

        return view('utilisation/nouveau',[

            'produit' => $produits,
            'fini' => $produitfinis,
            'utilisation' => $utilisations,
        ]);
    }

    function ingredient() {

        if(session('user')== null) {
            return redirect('/');
        }
    
        $produits = DB::table('produit_vendable')->where('categorie_id', '5')->get();
        $utilisations = DB::table('ligne_ingredient')->orderBydesc('id') ->limit(5)->get();

        return view('utilisation/utilisation_ingredient',[

            'produit' => $produits,
            'utilisation' => $utilisations,
        ]);
    }


    function enregistrer_ingredient(Request $request)
    {

        $date_uti= date('Y-m-d');
        $produit=request('produit');
        $qte=request('qte');
       

        $qtesto =  DB::table('produit_vendable')->where('id', $produit)->first()->stock_general;
        $qtestocuis =  DB::table('produit_vendable')->where('id', $produit)->first()->stock_cuisine;

        if( $qtestocuis < $qte ){

            $message = [
                "title" => 'Erreur d\'enregistrement',
                "type" => 'error',
                "response" => 'Quantité en cuisine insuffisante!',
            ];

            return $message;

        }else{

            DB::table('ligne_ingredient')->insert(
                [
                    'date_uti' => $date_uti,
                    'etat' => "Proforma",
                   
                    'produit_id' => $produit,
                    'qte' => $qte,
                ]
            );

            $idLastuti = DB::table('ligne_ingredient')->get()->last()->id;

            $id2= strlen($idLastuti);

            if ($id2==1){

                DB::table('ligne_ingredient')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-000'.$idLastuti,
                    ]
                );

            } elseif ($id2==2){

                DB::table('ligne_ingredient')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-00'.$idLastuti,
                    ]
                );

            } elseif ($id2==3){

                DB::table('ligne_ingredient')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-0'.$idLastuti,
                    ]
                );

            } else {

                DB::table('ligne_ingredient')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-'.$idLastuti,
                    ]
                );
            }

           


            $message = [
                "title" => 'Succès',
                "type" => 'success',
                "response" => 'Enregistrement effectué avec succès !',
            ];

            return $message;
        }

    }


    function enregistrer(Request $request)
    {

        $date_uti= date('Y-m-d');
        $produit=request('produit');
        $qte=request('qte');
        $produit_fini=request('produit_fini');
        $nbre=request('nbre');
       

        $qtesto =  DB::table('produit_vendable_fini')->where('id', $produit_fini)->first()->stock_gene;
        $qtestocuis =  DB::table('produit_vendable')->where('id', $produit)->first()->stock_cuisine;

        if( $qtestocuis < $qte ){

            $message = [
                "title" => 'Erreur d\'enregistrement',
                "type" => 'error',
                "response" => 'Quantité en cuisine insuffisante!',
            ];

            return $message;

        }else{

            DB::table('ligne_utilisation')->insert(
                [
                    'date_uti' => $date_uti,
                    'etat' => "Proforma",
                    'pf_id' => $produit_fini,
                    'produit_id' => $produit,
                    'qte' => $qte,
                    'nbre' => $nbre,
                    'en_stock' => $qtesto,
                    'apres' => ($qtesto + $nbre),
                   
                ]
            );

            $idLastuti = DB::table('ligne_utilisation')->get()->last()->id;

            $id2= strlen($idLastuti);

            if ($id2==1){

                DB::table('ligne_utilisation')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-000'.$idLastuti,
                    ]
                );

            } elseif ($id2==2){

                DB::table('ligne_utilisation')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-00'.$idLastuti,
                    ]
                );

            } elseif ($id2==3){

                DB::table('ligne_utilisation')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-0'.$idLastuti,
                    ]
                );

            } else {

                DB::table('ligne_utilisation')->where('id', $idLastuti)->update(
                    [
                        'numero' => 'UTILIS-'.$idLastuti,
                    ]
                );
            }

           


            $message = [
                "title" => 'Succès',
                "type" => 'success',
                "response" => 'Enregistrement effectué avec succès !',
            ];

            return $message;
        }

    }


    function supprimer () {

        $id=request('id');

        DB::table('ligne_utilisation')->where('id', $id)->delete();

        return redirect()->route('nouvelle_utilisation')->with('status', 'Suppression effectuée avec succes');
    }


    function supprimeringredient () {

        $id=request('id');

        DB::table('ligne_ingredient')->where('id', $id)->delete();

        return redirect()->route('utilisation_ingredient')->with('status', 'Suppression effectuée avec succes');
    }



}
