Cara mengurangi stok barang dari dua tabel

disini saya punya dua tabel yaitu tabel inventaris yang berisi stok barang dan tabel detail pinjam yang berisi request pinjaman jadi kedua tabel ini mempunyai controller masing-masing. Jadi gimana caranya saat si user minjam barang dan merequest jumlah barang maka stok barang di inventaris akan berkurang. tolong bantuannya gan ini controller pinjambarangnya

public function index()
    {
        $inventaris=inventaris::all();
        $detail_pinjam=detail_pinjam::all();
        return view('pinjambarang.index',compact('inventaris','detail_pinjam'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
         $inventaris=inventaris::all();
        $pegawai=pegawai::all();
        return view('pinjambarang.create',compact('inventaris','pegawai'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $peminjaman = new peminjaman;
        $peminjaman->tgl_peminjaman = $request->input('tgl_peminjaman');
        $peminjaman->id_pegawai = $request->input('id_pegawai');
        $peminjaman->save();
        alert::success('Tambah Peminjaman Berhasil');
        return redirect()->route('pinjambarang.index');

      /* peminjaman::create([
        'tgl_peminjaman'=>request('tgl_peminjaman'),
        'tgl_kembali'=>request('tgl_kembali'),
        'status_peminjaman'=>request('status_peminjaman'),
        'id_pegawai'=>request('id_pegawai')
    ]);
    */
    }

    public function pilih(Request $request)
    {
        $id_inven=$request->input('id_inventaris');
        inventaris::find($id_inven)->decrement($request->input('jumlah'));
        $pinjam = new detail_pinjam;
        $pinjam->id_inventaris = $request->input('id_inventaris');
        $pinjam->jumlah = $request->input('jumlah');
        $pinjam->id_peminjaman = $request->input('id_peminjaman');
        $pinjam->save();
        alert::success('Tambah Peminjaman Berhasil');
        return redirect()->route('pinjambarang.index');
    }

Dan ini controller inventarisnya

public function index()
    {
        $inventaris = inventaris::all();
        $user = user::all();
        $ruang = ruang::all();
        $jenis = jenis::all();
        return view('inventaris.index', compact('inventaris','user','ruang','jenis'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $inventaris = new inventaris;
        $inventaris->nama = $request->input('nama');
        $inventaris->kondisi = $request->input('kondisi');
        $inventaris->keterangan = $request->input('keterangan');
        $inventaris->jumlah = $request->input('jumlah');
        $inventaris->id_jenis = $request->input('id_jenis');
        $inventaris->tanggal_register = $request->input('tanggal_register');
        $inventaris->id_ruang = $request->input('id_ruang');
        $inventaris->kode_inventaris = $request->input('kode_inventaris');
        $inventaris->id_petugas = $request->input('id_petugas');
        $inventaris->save();
        alert::success('Tambah Peminjaman Berhasil');
        return redirect()->route('inventaris.index');
    }

gambar databasenya <a href=' https://imgur.com/a/GtIYLOC '> https://imgur.com/a/GtIYLOC </a>

avatar Taufikhdyt17
@Taufikhdyt17

16 Kontribusi 4 Poin

Diperbarui 5 tahun yang lalu

2 Jawaban:

Informasi yang saya tahu:

  1. tabel inventaris yang berisi stok barang
  2. tabel detail pinjam yang berisi request pinjama

Pertanyaan: "Gimana caranya saat si user minjam barang dan merequest jumlah barang maka stok barang di inventaris akan berkurang?"

Saya asumsikan kamu sudah tahu laravel, yang perlu kamu lakukan. Di fungsi saaat pinjam_barang(), ada 2 hal yang mau kamu lakukan

*Pastikan kamu punya id yang sama antar barang inventaris dan barang yang mau dipinjam

  1. Update dengan metode ->update biasa di laravel, mengurangi jumlah barang di stok inventaris berdasarkan -id barang yang dipinjam- //pakai table inventasi dan update dengan where biasa (cuma 1 table)

  2. Masukkan data barang yang dipinjam ke table 'peminjaman' //insert biasa (cuma 1 table juga)

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 5 tahun yang lalu

Terima kasih mas hilman. Tapi kalau seandainya saya pakai trigger, kelemahannya apa yah mas?

avatar Taufikhdyt17
@Taufikhdyt17

16 Kontribusi 4 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban