Это мой 1-й стол
public function up()
{
Schema::create('perbaikans', function (Blueprint $table) {
$table->increments('id_perbaikan');
$table->string('nomor_dokumen_perbaikan', 25)->unique();
$table->integer('id_teknisi')->unsigned();
$table->integer('id_kulkas')->unsigned();
$table->integer('id_tipe_pekerjaan')->unsigned();
$table->string('temuan_masalah', 100);
$table->date('tanggal_perbaikan');
$table->timestamps();
$table->foreign('id_teknisi')->references('id_teknisi')->on('teknisis');
$table->foreign('id_kulkas')->references('id_kulkas')->on('kulkas');
$table->foreign('id_tipe_pekerjaan')->references('id_tipe_pekerjaan')->on('tipe_pekerjaans');
});
}
Это моя вторая таблица
public function up()
{
Schema::create('sukucadangs', function (Blueprint $table) {
$table->increments('id_sukucadang');
$table->string('nomor_sukucadang', 5)->unique();
$table->string('nama_sukucadang', 35);
$table->integer('stok');
$table->integer('id_kategori_sukucadang')->unsigned();
$table->timestamps();
$table->foreign('id_kategori_sukucadang')->references('id_kategori_sukucadang')->on('kategori_sukucadangs');
});
}
А это моя промежуточная таблица
public function up()
{
Schema::create('pemakaian_sukucadangs', function (Blueprint $table) {
$table->increments('id');
$table->integer('id_perbaikan')->unsigned();
$table->integer('id_sukucadang')->unsigned();
$table->integer('qty');
$table->foreign('id_perbaikan')->references('id_perbaikan')->on('perbaikans');
$table->foreign('id_sukucadang')->references('id_sukucadang')->on('sukucadangs');
});
}
Мой контроллер
class PerbaikanController extends Controller
{
public function create()
{
$teknisis = Teknisi::all();
$kulkas = Kulkas::all();
$tipepekerjaans = TipePekerjaan::all();
$sukucadangs = Sukucadang::all();
return view('perbaikan.tambah', compact('teknisis', 'kulkas', 'tipepekerjaans', 'sukucadangs'));
}
public function store(Request $request)
{
$perbaikan = new Perbaikan;
$perbaikan->nomor_dokumen_perbaikan = $request->nomor_dokumen_perbaikan;
$perbaikan->id_teknisi = $request->id_teknisi;
$perbaikan->id_kulkas = $request->id_kulkas;
$perbaikan->id_tipe_pekerjaan = $request->id_tipe_pekerjaan;
$perbaikan->temuan_masalah = $request->temuan_masalah;
$perbaikan->tanggal_perbaikan = $request->tanggal_perbaikan;
$perbaikan->qty = $request->qty;
$perbaikan->save();
$sukucadang = Sukucadang::findOrFail($request->id_sukucadang);
$sukucadang->stok -= $request->qty;
$sukucadang->update();
$perbaikan->sukucadang()->sync($request->sukucadang, false);
}
}
Как уменьшить сток в таблицах суккудаганса, если используется предмет.Например, у меня есть item1 с запасом 10 и item2 20, когда я использую item1 и item2 с каждым количеством 2 и 3, тогда запас товаров в таблице sukucadangs автоматически уменьшится Большое спасибо