Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

   public function store(Request $request)
    {
        $this->validate($request, [
            'datepanne' => 'required|date_format:"Y-m-d H:i:s"',
            'machine_id' =>  'required|integer',
            'car_id' =>  'required|integer',
            'info_id' =>  'required|integer',
            'description' => 'required',
            "pieces"    => "required|array",
            "pieces.*"  => "required|integer",
            'photo_avant' => 'required|image|mimes:jpeg,jpg,png,gif,svg|max:13000',
            'photo_apres' => 'required|image|mimes:jpeg,jpg,png,gif,svg|max:13000'
        ]);
        $pieces = Piece::all();
        $panne = Auth::user()->panne()->create($request->all());
        $panne->pieces()->sync($request->input('pieces', []));
        $piecespanneqty = 1;

 if ($request->hasFile('photo_avant')) {
        $mytime = Carbon::now('Europe/Paris')->format('d/m/y H:i:s');

       $originalImageav= $request->file('photo_avant');
        $thumbnailImageav = Image::make($originalImageav)->encode('jpg', 60)
    ->text($mytime, 80, 80, function($font) {
    $font->size(24);
    $font->color('#fdf6e3');
    $font->align('center');
    $font->valign('top');
    $font->angle(45);
});
        $thumbnailPathav = storage_path('app/public/images/thumbnail/');
        $originalPathav = storage_path('app/public/images/');
        $thumbnailImageav->save($originalPathav.time().$originalImageav->getClientOriginalName());
        $thumbnailImageav->fit(60,60);
        $thumbnailImageav->save($thumbnailPathav.time().$originalImageav->getClientOriginalName()); 
        $panne->photo_avant=time().$originalImageav->getClientOriginalName();
        $panne->save([60,'jpg']);
  }
if ($request->hasFile('photo_apres')) {
     $mytime = Carbon::now('Europe/Paris')->format('d/m/y H:i:s');
       $originalImageap= $request->file('photo_apres');
        $thumbnailImageap = Image::make($originalImageap)->encode('jpg', 60)
    ->text($mytime,80, 80,function($font) {
    $font->size(24);
    $font->color('#fdf6e3');
    $font->align('center');
    $font->valign('top');
    $font->angle(45);
});

        $thumbnailPathap = storage_path('app/public/images/thumbnail/');
        $originalPathap = storage_path('app/public/images/');
        $thumbnailImageap->save($originalPathap.time().$originalImageap->getClientOriginalName());
        $thumbnailImageap->fit(60,60);
        $thumbnailImageap->save($thumbnailPathap.time().$originalImageap->getClientOriginalName()); 
        $panne->photo_apres=time().$originalImageap->getClientOriginalName();

        $panne->save();
  }

 foreach ($pieces as $piece) {
    $piece = Piece::find($piece['id']);
    $piece->decrement('quantity', $piecespanneqty);
}

        return redirect()->route('admin.machines.index');

    }

Ce que je veux

je voudrai qu'il m'enleve la qauntité affecté par défaut sur les piéces utiliser et non pas decrementer toute la quantité de pieces de tout le stock

Ce que j'obtiens

j'obtiens que lorsque je soumet le formulaire toutes les piéces du stock ce retrouvent mise à jour même si elle ne sont pas toutes utilisées

2 réponses


Balsakup
Réponse acceptée

Salut,

Normal, tu sélectionnes toutes les pièces et plus tard tu décrémentes tout, il faut que tu ajoutes un filtre sur tes pièces

$pieces = Piece::all();
// ...
foreach ($pieces as $piece) {
    $piece = Piece::find($piece['id']);
    $piece->decrement('quantity', $piecespanneqty);
}

Petite astuce optimisation

PAS BIEN

foreach ($pieces as $piece) {
    $piece = Piece::find($piece['id']);
    $piece->decrement('quantity', $piecespanneqty);
}

BIEN

foreach ($pieces as $piece) {
    $piece->decrement('quantity', $piecespanneqty);
}
droid13
Auteur

merci beaucoup des fois on devient un peu con mais heureisement que la communauté est la pour s'entraider merci