<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use DB;
use PDF;

class ApprovisionnementController extends Controller
{
    //
	function VoirSuppressiondetail ($id) {

        $detail= DB::table('ligne_appro_vendable')->where('id',$id)->first();
        return [

            'detail' => $detail,
        ];
    }
    public function consulter($id)
	{
		if(session('user')== null) {
            return redirect('/');
        }
        
		$detail=DB::table('ligne_appro_vendable')->where('appro_id',$id)->get();
		$total=DB::table('ligne_appro_vendable')->where('appro_id',$id)->get()->sum('montligne');

		return view('appro/detail', [
			'detail'=> $detail,
			'total'=> $total,
		]);
	}
	function supprimerdetail () {

        $id=request('id');
		$appro= DB::table('ligne_appro_vendable')->where('id', $id)->first()->appro_id;
		DB::table('ligne_appro_vendable')->where('id', $id)->delete();
		
		
	return redirect()->route('consultation_appro',['id'=>$appro])->with('status', 'Suppression effectuée avec succes');
    }
	//Modifier
	function modifappro($id) {
        if(session('user')== null) {
            return redirect('/');
        }
        $fournisseurs = DB::table('fournisseur')->get();
        $produits = DB::table('produit_vendable')->get();
        $magasin = DB::table('magasin')->orderBydesc('id')->get();
        $ligne_appro = DB::table('ligne_appro_vendable')->where('appro_id',$id)->get();
		$appro = DB::table('appro_vendable')->where('id',$id)->first();
        return view('appro/modifier',[
            'fournisseurs' => $fournisseurs,
            'produits' => $produits,
            'magasin' => $magasin,
            'ligne_appro' => $ligne_appro,
            'appro' => $appro,
        ]);
    }

    function voirvalider ($id) {

        $appro= DB::table('appro_vendable')->where('id',$id)->first();
        return [
            'appro' => $appro,
        ];
    }
	function voirdetail ($id) {

        $detailappro= DB::table('ligne_appro_vendable')->where('id',$id)->first();
        return [
            'detailappro' => $detailappro,
        ];
    }
	
	function annuler () {

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

            
        $ligne = DB::table('ligne_appro_vendable')->where('appro_id', $id)->get();
		$fou = DB::table('appro_vendable')->where('id', $id)->first()->fournisseur_id;
		$ref = DB::table('appro_vendable')->where('id', $id)->first()->numero;
		$lh = DB::table('appro_vendable')->where('id', $id)->first()->montant;
		//$magasin = DB::table('appro_vendable')->where('id', $id)->first()->magasin_id;
        foreach($ligne as $lignes){

            //$qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_general;
            $qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_general;

            $qteval = $lignes->qte;
			
			//$verif = DB::table('stock_magasin')->where('produit_id', $lignes->produit_id)->where('magasin_id', $magasin)->get()->count();
		
			$sm = DB::table('magasin_general')->where('produit_id', $lignes->produit_id)->orderBydesc('id')->take(1)->first()->apres;
				
				DB::table('magasin_general')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $lignes->produit_id,
                        'qte' => $qteval,
                        'type_operation' => 'Annulation appro',
						'en_stock' => $sm,
						'apres' => ($sm - $qteval),
                    ]
                );
			
			
            DB::table('produit_vendable')->where('id', $lignes->produit_id)->update(
                [
                    'stock_magasin' => ($sm - $qteval),
                    //'stock_general' => ($qtesto + $qteval),
                ]
            );
			
        }
		DB::table('appro_vendable')->where('id', $id)->update(
                [
                    'etat' => "Annulée",
                ]
            );

            DB::table('ligne_appro_vendable')->where('appro_id', $id)->update(
                [
                    'etat' => "Annulée",
                ]
            );
		
		$solde_compte = DB::table('transaction_fournisseur')->where('fournisseur_id', $fou)->orderBydesc('id')->take(1)->first()->solde_compte;
		$ss = $solde_compte - $lh;
		
		DB::table('transaction_fournisseur')->insert(
			[
				'date' => $todayyy,
				'libelle' => 'Annulation '.$ref,
				'montant' => $lh,
				'solde_initial' => $solde_compte,
				'solde_compte' => $ss,
				'type' => 'Débit',
				'fournisseur_id' => $fou,
				'appro_id' => $id,
			]
		);
		DB::table('transaction_fournisseur')->where('appro_id', $id)->update(
			[
				'etat' => 'Annulée',
			]
		);
				
        return redirect()->route('nouveau_appro')->with('status', 'Annulation effectuée avec succes');
	}
    
     function valider () {

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

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

            DB::table('ligne_appro_vendable')->where('appro_id', $id)->update(
                [
                    'etat' => "Validée",
                ]
            );
        $appro =  DB::table('appro_vendable')->where('id', $id)->first();
        $ligne = DB::table('ligne_appro_vendable')->where('appro_id', $id)->get();
		$fou = DB::table('appro_vendable')->where('id', $id)->first()->fournisseur_id;
		$ref = DB::table('appro_vendable')->where('id', $id)->first()->numero;
		$lh = DB::table('appro_vendable')->where('id', $id)->first()->montant;
		//$magasin = DB::table('appro_vendable')->where('id', $id)->first()->magasin_id;
        foreach($ligne as $lignes){
            //$qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_general;
            //$qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_magasin;
            $qteval = $lignes->qte;
			if ($appro->magasin_id == NULL && $appro->depot_id != NULL){
			   $verif = DB::table('magasin_general')->where('produit_id', $lignes->produit_id)->where('depot_id', $appro->depot_id)->get()->count();
			if ($verif>0){
				$sm = DB::table('magasin_general')->where('produit_id', $lignes->produit_id)->where('depot_id', $appro->depot_id)->orderBydesc('id')->take(1)->first()->apres;
				DB::table('magasin_general')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $lignes->produit_id,
                        'qte' => $qteval,
                        'type_operation' => 'Appro',
						'en_stock' => $sm,
						'apres' => ($sm + $qteval),
						'depot_id' => $appro->depot_id,
						//'stock_general' => ($qtesto + $qteval),
                    ]
                );
			} else {
				$sm = 0;
				DB::table('magasin_general')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $lignes->produit_id,
                        'qte' => $qteval,
                        'pa' => $lignes->pa,
                        'montigne' => $lignes->montigne,
                        'type_operation' => 'Appro',
						'en_stock' => $sm,
						'apres' => ($sm + $qteval),
						'depot_id' => $appro->depot_id,
						//'stock_general' => ($qtesto + $qteval),
                    ]
                );
			} 
			}  else {
			     $verif = DB::table('stock_magasin')->where('produit_id', $lignes->produit_id)->where('magasin_id', $appro->magasin_id)->get()->count();
			if ($verif>0){
				$sm = DB::table('stock_magasin')->where('produit_id', $lignes->produit_id)->where('magasin_id', $appro->magasin_id)->orderBydesc('id')->take(1)->first()->apres;
				DB::table('stock_magasin')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $lignes->produit_id,
                        'qte' => $qteval,
                        'type_operation' => 'Appro',
						'en_stock' => $sm,
						'apres' => ($sm + $qteval),
						'magasin_id' => $appro->magasin_id,
						'appro_id' => $id,
						'user_id' => session('user')->id,
                    ]
                );
			} else {
				$sm = 0;
				DB::table('stock_magasin')->insert(
                    [
                        'date' => $today,
                        'produit_id' => $lignes->produit_id,
                        'qte' => $qteval,
                        'type_operation' => 'Appro',
						'en_stock' => $sm,
						'apres' => ($sm + $qteval),
						'magasin_id' => $appro->magasin_id,
						'appro_id' => $id,
						'user_id' => session('user')->id,
                    ]
                );
			} 
			}
			
			
			
            /*DB::table('produit_vendable')->where('id', $lignes->produit_id)->update(
                [
                    //'stock_magasin' => ($qtesto + $qteval),
                    //'stock_general' => ($qtesto + $qteval),
                ]
            );*/
			
        }
				$solde = DB::table('transaction_fournisseur')->where('fournisseur_id', $fou)->get()->count();
				if ($solde > 0){
					$solde_compte = DB::table('transaction_fournisseur')->where('fournisseur_id', $fou)->orderBydesc('id')->take(1)->first()->solde_compte;
					$ss = $solde_compte + $lh;
				}else{
					$solde_compte = 0;
					$ss = $lh;
				}
				
				DB::table('transaction_fournisseur')->insert(
                    [
                        'date' => $todayyy,
                        'libelle' => 'Achat '.$ref,
                        'montant' => $lh,
						'solde_initial' => $solde_compte,
						'solde_compte' => $ss,
						'type' => 'Crédit',
						'fournisseur_id' => $fou,
						'appro_id' => $id,
                    ]
                );

        return redirect()->route('nouveau_appro')->with('status', 'Validation effectuée avec succes');
	}
	function annulerdetail () {

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

            
        $ligne = DB::table('ligne_appro_vendable')->where('id', $id)->first();
        $appro_id = DB::table('ligne_appro_vendable')->where('id', $id)->first()->appro_id;
		$fou = DB::table('appro_vendable')->where('id', $appro_id)->first()->fournisseur_id;
		$ref = DB::table('appro_vendable')->where('id', $appro_id)->first()->numero;
		$lh = DB::table('appro_vendable')->where('id', $appro_id)->first()->montant;
		//$magasin = DB::table('appro_vendable')->where('id', $id)->first()->magasin_id;
        //$qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_general;
        $qtesto = DB::table('produit_vendable')->where('id', $ligne->produit_id)->first()->stock_general;
        $qteval = $ligne->qte;
        $montligne = $ligne->montligne;
		$lh2 = $lh - $montligne;	
			
		//$verif = DB::table('stock_magasin')->where('produit_id', $lignes->produit_id)->where('magasin_id', $magasin)->get()->count();
		
		$sm = DB::table('magasin_general')->where('produit_id', $ligne->produit_id)->orderBydesc('id')->take(1)->first()->apres;
				
		DB::table('magasin_general')->insert(
			[
				'date' => $today,
				'produit_id' => $ligne->produit_id,
				'qte' => $qteval,
				'type_operation' => 'Annulation appro',
				'en_stock' => $sm,
				'apres' => ($sm - $qteval),
			]
		);
        DB::table('produit_vendable')->where('id', $ligne->produit_id)->update(
			[
				'stock_magasin' => ($sm - $qteval),
			]
		);
		DB::table('appro_vendable')->where('id', $ligne->appro_id)->update(
                [
                    'montant' => $lh2,
                ]
            );
			

            DB::table('ligne_appro_vendable')->where('id', $id)->update(
                [
                    'etat' => "Annulée",
                ]
            );
		
		$solde_compte = DB::table('transaction_fournisseur')->where('fournisseur_id', $fou)->orderBydesc('id')->take(1)->first()->solde_compte;
		$ss = $solde_compte - $montligne;
		$sf = DB::table('transaction_fournisseur')->where('appro_id', $appro_id)->first()->solde_compte;
		DB::table('transaction_fournisseur')->where('appro_id', $id)->update(
			[
				'montant' => $lh2,
				'solde_compte' => ($sf - $montligne),
			]
		);
		
		DB::table('transaction_fournisseur')->insert(
			[
				'date' => $todayyy,
				'libelle' => 'Annulation '.$ref,
				'montant' => $montligne,
				'solde_initial' => $solde_compte,
				'solde_compte' => $ss,
				'type' => 'Débit',
				'fournisseur_id' => $fou,
				'appro_id' => $appro_id,
			]
		);
		
				
        return redirect()->route('consultation_appro', ['id'=>$appro_id])->with('status', 'Annulation effectuée avec succès');
	}
    function nouveau() {
		if(session('user')== null) {
            return redirect('/');
        }
       
        $fournisseurs = DB::table('fournisseur')->get();
        $depot = DB::table('depot')->orderby('nom','asc')->get();
        $produits = DB::table('produit_vendable')->orderby('designation','asc')->get();
        $appros = DB::table('appro_vendable')->orderBydesc('id') ->limit(5)->get();
        $magasin = DB::table('magasin')->orderby('nom','asc')->get();

        return view('appro/nouveau',[

            'fournisseur' => $fournisseurs,
            'produit' => $produits,
            'appro' => $appros,
            'depot' => $depot,
            'magasin' => $magasin,
        ]);
    }
	
	function listedesappro() {
       if(session('user')== null) {
            return redirect('/');
        }
        $fournisseurs = DB::table('fournisseur')->get();
        //$produits = DB::table('produit_vendable')->get();
        $appros = DB::table('appro_vendable')->where('etat', 'Validée')->orderBydesc('id')->get();
        $total = DB::table('appro_vendable')->where('etat', 'Validée')->get()->sum('montant');
        //$magasin = DB::table('magasin')->orderBydesc('id')->get();

        return view('appro/liste',[

            'fournisseur' => $fournisseurs,
            //'produit' => $produits,
            'appro' => $appros,
            'total' => $total,
            //'magasin' => $magasin,
        ]);
    }
	public function recherche() {
		$date_debut = request('date_debut');
		$fou = request('fou');
        $date_debut= explode('/', $date_debut);
        $date_debut= array_reverse($date_debut);
        $date_debut= implode('-', $date_debut);

        $date_fin = request('date_fin');
        $date_fin= explode('/', $date_fin);
        $date_fin= array_reverse($date_fin);
        $date_fin= implode('-', $date_fin);
		
				session(['date_debut'=> $date_debut]);
				session(['date_fin'=> $date_fin]);
				session(['fou'=> $fou]);
		
		 if($date_fin > $date_debut || $date_fin == $date_debut){
			if ($fou==0){
				$appro = DB::table('appro_vendable')->whereBetween('date_appro', [$date_debut,$date_fin])->get();
				$approcount=DB::table('appro_vendable')->whereBetween('date_appro', [$date_debut,$date_fin])->get()->count();
				$total = DB::table('appro_vendable')->where('etat', 'Validée')->whereBetween('date_appro', [$date_debut,$date_fin])->get()->sum('montant');
			} else {
				$appro = DB::table('appro_vendable')->where('fournisseur_id', $fou)->whereBetween('date_appro', [$date_debut,$date_fin])->get();
				$approcount=DB::table('appro_vendable')->where('fournisseur_id', $fou)->whereBetween('date_appro', [$date_debut,$date_fin])->get()->count();
				$total = DB::table('appro_vendable')->where('fournisseur_id', $fou)->where('etat', 'Validée')->whereBetween('date_appro', [$date_debut,$date_fin])->get()->sum('montant');
			}
			$fournisseur = DB::table('fournisseur')->orderBydesc('id')->get();
			return view('appro/liste-appro-recherche',[
            'appro' => $appro,
            'fou' => $fou,
            'fournisseur' => $fournisseur,
            'approcount' => $approcount,
            'date_debut' => $date_debut,
            'date_fin' => $date_fin,
            'total' => $total,
        ]);	
		 } else 
		 {
			return redirect()->route('liste-des-appro')->with('error', 'La date de fin ne doit pas dépasser la date de début!');
		 }
	}
	
	//FACTURE Appro
	
	function factureappro($id)
    {

		$appro = DB::table('appro_vendable')->where('id',$id)->first();
		$ligne = DB::table('ligne_appro_vendable')->where('appro_id',$id)->get();
		$lignem = DB::table('ligne_appro_vendable')->where('appro_id',$id)->where('etat','Validée')->sum('montligne');
        $pdf = PDF::loadView('/appro/facture', [
            'ligne' => $ligne,
			'appro' => $appro,
			'lignem' => $lignem,
		]);
		
        return $pdf->stream();
    }

    function enregistrer(Request $request)
    {

        $fournisseur=request('fournisseur');
        $stockage=request('stockage');
        $magasin_id=request('magasin_id');
        $depot_id=request('depot_id');
        $dateappro=implode('-', array_reverse(explode('/', request('dateappro'))));
        $approvision=collect(request('approvision'))->chunk(3);

            DB::table('appro_vendable')->insert(
                [
                    'fournisseur_id' => $fournisseur,
                    'magasin_id' => $magasin_id,
                    'depot_id' => $depot_id,
                    'date_appro' => $dateappro,
                    'stockage' => $stockage,
                    'etat' => "Proforma",
					'user_id' => session('user')->id,
                ]
            );

            $idLastappro = DB::table('appro_vendable')->get()->last()->id;

            $id2= strlen($idLastappro);

            if ($id2==1){

                DB::table('appro_vendable')->where('id', $idLastappro)->update(
                    [
                        'numero' => 'APPRO-000'.$idLastappro,
                    ]
                );

            } elseif ($id2==2){

                DB::table('appro_vendable')->where('id', $idLastappro)->update(
                    [
                        'numero' => 'APPRO-00'.$idLastappro,
                    ]
                );

            } elseif ($id2==3){

                DB::table('appro_vendable')->where('id', $idLastappro)->update(
                    [
                        'numero' => 'APPRO-0'.$idLastappro,
                    ]
                );

            } else {

                DB::table('appro_vendable')->where('id', $idLastappro)->update(
                    [
                        'numero' => 'APPRO-'.$idLastappro,
                    ]
                );
            }

        $i=0;

        foreach ($approvision as $key=> $approvisions){

            $qtesto =  DB::table('produit_vendable')->where('id', $approvisions[0 +$i])->first()->stock_magasin;
            $categorie_id =  DB::table('produit_vendable')->where('id', $approvisions[0 +$i])->first()->categorie_id;

            DB::table('ligne_appro_vendable')->insert(
                [
                    'appro_id' => $idLastappro,
                    'fournisseur_id' => $idLastappro,
                    'etat' => "Proforma",
                    'produit_id' => $approvisions[0 +$i],
                    'categorie_id' => $categorie_id,
                    'qte' => $approvisions[1 +$i],
                    'pa' => $approvisions[2 +$i],
                    'montligne' => ($approvisions[1 +$i] * $approvisions[2 +$i]),
					'date' => $dateappro,
					'en_stock' => $qtesto,
                    'apres' => ($qtesto + $approvisions[1 +$i]),
					'user_id' => session('user')->id,
                ]
            );

            $i += count($approvisions->toArray());

        }

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

            return $message;


    }
	function modifapprop($id)
    {

        $fournisseur=request('fournisseur');
        $magasin=request('magasin');
        $dateappro=implode('-', array_reverse(explode('/', request('dateappro'))));
        $approvision=collect(request('approvision'))->chunk(3);

		$supl = DB::table('ligne_appro_vendable')->where('appro_id', $id)->delete();
		
		DB::table('appro_vendable')->where('id', $id)->update(
                [
                    'fournisseur_id' => $fournisseur,
                    'magasin_id' => $magasin,
                    'date_appro' => $dateappro,
                    'etat' => "Proforma",
                   
                ]
            );
			$idLastappro = DB::table('appro_vendable')->where('id', $id)->first()->id;

		$i=0;
        foreach ($approvision as $key=> $approvisions){

            $qtesto =  DB::table('produit_vendable')->where('id', $approvisions[0 +$i])->first()->stock_general;
            $categorie_id =  DB::table('produit_vendable')->where('id', $approvisions[0 +$i])->first()->categorie_id;

            DB::table('ligne_appro_vendable')->insert(
                [
                    'appro_id' => $idLastappro,
					'magasin_id' => $magasin,
                    'fournisseur_id' => $idLastappro,
                    'etat' => "Proforma",
                    'produit_id' => $approvisions[0 +$i],
                    'categorie_id' => $categorie_id,
                    'qte' => $approvisions[1 +$i],
                    'pa' => $approvisions[2 +$i],
                    'montligne' => ($approvisions[1 +$i] * $approvisions[2 +$i]),
					'date' => $dateappro,
					'en_stock' => $qtesto,
                    'apres' => ($qtesto + $approvisions[1 +$i]),
                ]
            );

            $i += count($approvisions->toArray());

        }

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

    }
	
//ENREGISTREMENT DEPENSE
	function enregistrer3(Request $request)
    {
        $montant=request('montant');
        $nature=request('nature');
        $note=request('note');
        $today=date('Y-m-d');
		$dated=implode('-', array_reverse(explode('/', request('dated'))));
		if ($nature == "Appro caisse" || $nature == "Retour en caisse" ){
			$typeoperation = "Crédit";
			$nature1 = "Appro caisse";
			$nature22 = 0;
		} else {
			$typeoperation = "Débit";
			$nature1 = DB::table('typedepense')->where('id', $nature)->first()->libelle; 
			$nature22 =$nature;
		}
		
				DB::table('caisse_depense')->insert(
                [
                    'date' => $dated,
                    'nature' => $nature1,
                    'depense_id' => $nature22,
                    'typeoperation' => $typeoperation,
                    'montant' => $montant,
					'note' => $note,
					'user_id' => session('user')->id,
					'magasin_id' => session('user')->magasin_id,
                ]
            );		
				$message = [
				"title" => 'Succès',
				"type" => 'success',
				"response" => 'Succès de l\'enregistrement',
			];
			return $message;
	}
	public function voir(){
      
        if(session('user')== null) {
            return redirect('/');
        }
		
		$fou= DB::table('fournisseur')->orderBy('nom')->get();
		if (session('user')->roles=="Admin"){
		    $depense= DB::table('caisse_depense')->orderBydesc('id')->get();
		}else{
		    $depense= DB::table('caisse_depense')->where('magasin_id', session('user')->magasin_id)->orderBy('etat','ASC')->get();
		}
		
		$typedepense = DB::table('typedepense')->orderBy('libelle','asc')->get(); 
		return view('solde/nouveau',[
		
		'fou' => $fou,
		'depense' => $depense,
		'typedepense' => $typedepense,

	]);
	}
	public function voirdep($id){
		$depense= DB::table('caisse_depense')->where('id', $id)->first();
		return [
		'depense' => $depense,
	];
	}
	public function suppdep(){
		$id = request('id');
		DB::table('caisse_depense')->where('id', $id)->delete();
		return redirect()->route('caisse')->with('status', 'Suppression effectuée avec succès');
	}
	public function validerdep(){
		$id = request('id');
		DB::table('caisse_depense')->where('id', $id)->update([
			'etat' => 'Validée'
		]);
		return redirect()->route('caisse')->with('status', 'Validation effectuée avec succès');
	}
	public function annulerdep(){
		$id = request('id');
		DB::table('caisse_depense')->where('id', $id)->update([
			'etat' => 'Annulée'
		]);
		return redirect()->route('caisse')->with('status', 'Enregistrement annulé avec succès');
	}
	public function achatfou($id){
      
        if(session('user')== null) {
            return redirect('/');
        }
		$appro= DB::table('appro_vendable')->where('fournisseur_id',$id)->where('etat','Validée')->get();
		$total= DB::table('appro_vendable')->where('fournisseur_id',$id)->where('etat','Validée')->get()->sum('montant');
		$totalpaie= DB::table('paiement_fou')->where('fournisseur_id',$id)->get()->sum('montant');
		$reste = $total - $totalpaie;
		$fou= DB::table('fournisseur')->where('id',$id)->first()->nom;
	return view('appro/liste-des-appro-fournisseurs',[
		'appro' => $appro,
		'fou' => $fou,
		'total' => $total,
		'totalpaie' => $totalpaie,
		'reste' => $reste,
	]);
	}
	// Fonction supprimer
	function supprimer () {

        $id=request('id');

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

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

        return redirect()->route('nouveau_appro')->with('status', 'Suppression effectuée avec succes');
    }
	//TRANSFERER VERS UN DEPOT
	
	    function transferer () {

        $id=request('id');
        $magasin=request('magasin_id');
		$todayyy = date('Y-m-d');
		$today2 = date('Y-m-d');
		$today=date('Y-m-d');

        $fou_id = DB::table('appro_vendable')->where('id', $id)->first()->fournisseur_id;
        //$fou_pays = DB::table('fournisseur')->where('id', $fou_id)->first()->pays;
		
		/*if ($fou_pays == "CHINE"){
			$magasin = 1;
		} else {
			$magasin = 2;
		}*/
		
		DB::table('transfert')->insert(
            [
                'date' => $today,
                'magasiny_id' => $magasin,
                'etat' => "En cours",
                'user_id' => session('user')->id,
            ]
        );

        $idLasttranfert = DB::table('transfert')->get()->last()->id;
		$idLastetat = DB::table('transfert')->get()->last()->etat;
		$idLast= strlen($idLasttranfert);
		
		if ($idLast==1){
            DB::table('transfert')->where('id', $idLasttranfert)->update(
                [
                    'numero' => 'T-'.'000'.$idLasttranfert,
                ]
            );
        } elseif ($idLast==2){
    
            DB::table('transfert')->where('id', $idLasttranfert)->update(
                [
                    'numero' => 'T-'.'00'.$idLasttranfert,
                ]
            );
        } elseif ($idLast==3){
            DB::table('transfert')->where('id', $idLasttranfert)->update(
                [
                    'numero' => 'T-'.'0'.$idLasttranfert,
                ]
            );
        } else {
            DB::table('transfert')->where('id', $idLasttranfert)->update(
                [
                    'numero' => 'T-'.$idLasttranfert,
                ]
            );
        }
        $ligne = DB::table('ligne_appro_vendable')->where('appro_id', $id)->get();
		/*
		$fou = DB::table('appro_vendable')->where('id', $id)->first()->fournisseur_id;
		$ref = DB::table('appro_vendable')->where('id', $id)->first()->numero;
		$lh = DB::table('appro_vendable')->where('id', $id)->first()->montant;
		//$magasin = DB::table('appro_vendable')->where('id', $id)->first()->magasin_id;
		
		*/
		
		
		
        foreach($ligne as $lignes){

            //$qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_general;
            $qtesto = DB::table('produit_vendable')->where('id', $lignes->produit_id)->first()->stock_magasin;

            $qteval = $lignes->qte;
			
			DB::table('ligne_transfert')->insert(
						[
								'transfert_id' => $idLasttranfert,
								'produit_id' => $lignes->produit_id,
								'qte' => $lignes->qte,
								'pa' => $lignes->pa,
								'montligne' => $lignes->montligne,
								'etat' => $idLastetat,    
								'magy' => $magasin, 
								'user_id' => session('user')->id,
								'date' => $today2,
								
						]
					);
				}
				DB::table('appro_vendable')->where('id', $id)->update(
					[
						'etat_transfert' => "Validée",
					]
				);
				return redirect()->route('nouveau_transfert')->with('status', 'Transfert validé avec succès !');
		}

}
