Bonjour,

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

Ce que je fais

j'ai un controller ou je peux créer des pannes pour des machines et chaque machine peut avoir plusieur piéces utilisées donc que je fetch depuis la table pieces et j'ai aussi une table stock dans laquelle je peux créer un nombre de piéces disponibles et cette table est lier à la table piece pour avoir les noms des pieces et dans le stock il y a le nombre de piéces le truc que je voudrai pouvoir faire quand je rentre mon intervention pour la machine que je selectionne les pieces utilisées que ça puisse decrement le stock automatiquement

PanneController

public function create(Machine $machine)
    {
        abort_if(Gate::denies('panne_create'), Response::HTTP_FORBIDDEN, '403 Forbidden');

//        $machines = Machine::all()->pluck('num_horo', 'id')->prepend(trans('global.pleaseSelect'), '');
        $machines = Machine::all();
        $pieces = Piece::all()->pluck('piece_name', 'id');

        $infos = Information::all()->pluck('info_name', 'id');
        $cars = Car::all()->pluck('plaque','id');

        return view('dashboard.pannes.create', compact('machine','machines', 'pieces', 'infos','cars'));
    }

    public function store(StorePanneRequest $request)
    {
//        $panne = Panne::create($request->all());
        $panne = Auth::user()->panne()->create($request->all());
        $panne->pieces()->sync($request->input('pieces', []));

        if ($request->input('photo_avant', false)) {
            $panne->addMedia(storage_path('tmp/uploads/' . $request->input('photo_avant')))->toMediaCollection('photo_avant');
        }

        if ($request->input('photo_apres', false)) {
            $panne->addMedia(storage_path('tmp/uploads/' . $request->input('photo_apres')))->toMediaCollection('photo_apres');
        }

        if ($media = $request->input('ck-media', false)) {
            Media::whereIn('id', $media)->update(['model_id' => $panne->id]);
        }

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

    }

ma view create panne

@extends('layouts.admin')@section('content')
<div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <div class="content-header">
      <div class="container-fluid">
        <div class="row mb-2">
          <div class="col-sm-6">

          </div><!-- /.col -->
          <div class="col-sm-6">
            <ol class="breadcrumb float-sm-right">
            <li class="breadcrumb-item"><a href=""><i class="fa fa-tachometer"></i> @Lang('site.Dashboard')</a></li>
            <li class="breadcrumb-item"><a href="#"><i class="fa fa-users"></i> @Lang('site.users')</a></li>
            </ol>
          </div><!-- /.col -->
        </div><!-- /.row -->
      </div><!-- /.container-fluid -->
    </div>
    <!-- /.content-header -->
    <section class="content">

    <div class="card card-primary">
        <div class="card-header">
           Ajout de pannes
        </div>
        <div class="card-body">
            <form method="POST" action="{{ route("admin.pannes.store") }}" enctype="multipart/form-data">
                @csrf
                <div class="form-group">
                    <label class="required" for="machine_id">Machine</label>
                    <select class="form-control{{ $errors->has('machine') ? 'is-invalid' : '' }}" name="machine_id" id="machine_id" >
                        @foreach($machines as $m)
                            <option value="{{ $m->id }}" {{ $m->id == $machine->id ? 'selected' : '' }}>{{ $m->num_horo }}</option>
                        @endforeach

                    </select>
                    @if($errors->has('machine'))
                        <span class="text-danger">{{ $errors->first('machine') }}</span>
                    @endif

                </div>
                <div class="form-group">
                    <label for="info_id">Information</label>
                    <select class="form-control{{ $errors->has('info') ? 'is-invalid' : '' }}" name="info_id" id="info_id">
                        @foreach($infos as $id => $info)
                            <option value="{{ $id }}" {{ old('info_id') == $id ? 'selected' : '' }}>{{ $info }}</option>
                        @endforeach
                    </select>
                    @if($errors->has('info'))
                        <span class="text-danger">{{ $errors->first('info') }}</span>
                    @endif

                </div>

                <div class="form-group">
                    <label class="required" for="vehicule_id">{{ trans('cruds.panne.fields.vehicule') }}</label>
                    <select class="form-control{{ $errors->has('cars') ? 'is-invalid' : '' }}" name="car_id" id="car_id" required>
                        @foreach($cars as $id => $car)
                            <option value="{{ $id }}" {{ old('car_id') == $id ? 'selected' : '' }}>{{ $car }}</option>
                        @endforeach
                    </select>
                    @if($errors->has('vehicule'))
                        <span class="text-danger">{{ $errors->first('vehicule') }}</span>
                    @endif

                </div>
                <div class="form-group">
                    <label class="required" for="photo_avant">Photo Avant</label>
                    <div class="needsclick dropzone {{ $errors->has('photo_avant') ? 'is-invalid' : '' }}" id="photo_avant-dropzone">
                    </div>
                    @if($errors->has('photo_avant'))
                        <span class="text-danger">{{ $errors->first('photo_avant') }}</span>
                    @endif

                </div>
                <div class="form-group">
                    <label class="required" for="photo_apres">Photo Aprés</label>
                    <div class="needsclick dropzone {{ $errors->has('photo_apres') ? 'is-invalid' : '' }}" id="photo_apres-dropzone">
                    </div>
                    @if($errors->has('photo_apres'))
                        <span class="text-danger">{{ $errors->first('photo_apres') }}</span>
                    @endif

                </div>
                <div class="form-group">
                    <label class="required" for="description">Description</label>
                    {{-- <input class="form-control {{ $errors->has('description') ? 'is-invalid' : '' }}" type="text" name="description" id="description" value="{{ old('description', '') }}" required> --}}
                    <textarea name="description" id="" cols="30" rows="10"id="description" class="form-control {{ $errors->has('description') ? 'is-invalid' : '' }}" required>{{ old('description', '') }}</textarea>
                    @if($errors->has('description'))
                        <span class="text-danger">{{ $errors->first('description') }}</span>
                    @endif

                </div>
                <div class="form-group">
                    <label class="required" for="datepanne">Date</label>
                    <input class="form-control datetime {{ $errors->has('datepanne') ? 'is-invalid' : '' }}" type="text" name="datepanne" id="datepanne" value="{{ old('datepanne') }}" required>
                    @if($errors->has('datepanne'))
                        <span class="text-danger">{{ $errors->first('datepanne') }}</span>
                    @endif

                <div class="form-group">
                    <label class="required" for="pieces">Pieces</label>
                    <div style="padding-bottom: 4px">
                        <span class="btn btn-info btn-xs select-all" style="border-radius: 0">tout selectionner</span>
                        <span class="btn btn-info btn-xs deselect-all" style="border-radius: 0">tout retirer</span>
                    </div>
                    <select class="form-control select2 {{ $errors->has('pieces') ? 'is-invalid' : '' }}" name="pieces[]" id="pieces" multiple required>
                        @foreach($pieces as $id => $piece)
                            <option value="{{ $id }}" {{ in_array($id, old('pieces', [])) ? 'selected' : '' }}>{{ $piece }}</option>
                        @endforeach
                    </select>
                    @if($errors->has('pieces'))
                        <span class="text-danger">{{ $errors->first('pieces') }}</span>
                    @endif

                </div>
                <div class="form-group">
                    <button class="btn btn-primary" type="submit">
                        Enregistrer
                    </button>
                </div>
            </form>
        </div>

    </div>

@endsection

mon soucis

vu que les pieces utilisées viennent de la table pieces et que je n'ai pas la possibilité de choisir la quantité , comment pouvoir leurs donner une quantité par défaut de 1 et pouvoir aprés le save decrementer chaque piéce depuis le stock en se basant sur l'id de la piece

merci

Aucune réponse