bagimana caranya update stok obat ketika kita sedang membuat transaksi obat pada laravel?

store pada transaksi obat
    public function store(Request $request)
    {
      $id = $request->id;

      $post   =   Obat_tran::updateOrCreate(['id' => $id],
                  [
                      'kode_rekmed' => $request->kode_rekmed,
                      'kode_register' => $request->kode_register,
                      'kd_obat' => $request->kd_obat,
                      'kuantitas' => $request->kuantitas,
                      'subtotal' => $request->kuantitas*$request->harga,
                  ]);
                  
      return response()->json($post);
    }

field pada transaksi obat
    protected $fillable = [
        'kode_rekmed',
        'kode_register',
        'kd_obat',
        'kuantitas',
        'subtotal',
    ];

field pada obat
    protected $fillable = [
        'kd_obat',
        'nama_obat',
        'merk_obat',
        'jenis_obat',
        'stok',
        'harga'
    ];

form pada transaksi obat
<form id="form_transobat" name="form_transobat" class="form-horizontal">
      <div class="modal-content">
        <div class="modal-header">
          <h4 class="modal-title"id="form_transobat_judul"></h4>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <input type="hidden" id="id" name="id" >
        <div class="modal-body">
            <div class="form-group">
              <label for="nama_pasien">Kode Rekamedik</label>
              <input type="text" class="form-control" id="kode_rekmed" name="kode_rekmed" placeholder="Masukan Kode Rekamedik" value="{{$row->kode_rekmed}}" required readonly>
            </div>
            <div class="form-group">
              <label for="kode_pegawai">Kode Registrasi</label>
              <input type="text" class="form-control" id="kode_register" name="kode_register" placeholder="Masukan Kode Registrasi" value="{{$row->kode_register}}" required readonly>
            </div>
            <div class="form-group">
              <label for="kode_pasien">Kode Obat</label>
              <select class="form-control select2bs4" style="width: 100%;" id="kd_obat" name="kd_obat">
                <option disabled selected="selected" value="" required>Silahkan Pilih..</option>
                @foreach($obat as $obats)
                  <option value="{{$obats->kd_obat}}" >{{$obats->nama_obat}}</option>
                @endforeach
              </select>
            </div>
            <div class="form-group">
              <label for="harga">Harga</label>
              <select class="form-control select2bs4" style="width: 100%;" id="harga" name="harga">
                <option disabled selected="selected" value="" required>Silahkan Pilih..</option>
                @foreach($obat as $obats)
                  <option value="{{$obats->harga}}" >{{$obats->nama_obat}}-{{$obats->harga}}</option>
                @endforeach
              </select>
            </div>
            <div class="form-group">
              <label for="kuantitas">Jumlah</label>
              <input type="text" class="form-control" id="kuantitas" name="kuantitas" placeholder="Masukan Jumlah Obat" value="" onkeypress="return event.charCode >= 48 && event.charCode <=57" required>
            </div>
        </div>
        <div class="modal-footer justify-content-between">
          <button type="button" class="btn btn-warning" data-dismiss="modal">Close</button>
          <button type="submit" class="btn btn-primary" id="tombol-simpan" value="create">Simpan</button>
        </div>
      </div>
    </form>

avatar dwigumelar

@dwigumelar

8 Kontribusi 0 Poin


Jawaban

coba pada fungsi store ditambahkan ubah update stok nya
$obat = ModelObat::whereKd_obat($request->kd_obat)->get();

$obat->update(['stok'=>$obat->stok - $request->kuantitas]);
avatar sudjitoe

@sudjitoe

14 Kontribusi 11 Poin


udah dicoba seperti ini
    public function store(Request $request)
    {
      $id = $request->id;

      $post   =   Obat_tran::updateOrCreate(['id' => $id],
                  [
                      'kode_rekmed' => $request->kode_rekmed,
                      'kode_register' => $request->kode_register,
                      'kd_obat' => $request->kd_obat,
                      'kuantitas' => $request->kuantitas,
                      'subtotal' => $request->kuantitas*$request->harga,
                  ]);
      $obat = Obat::wherekd_obat($request->kd_obat)->get();
      $obat->update(['stok'=>$obat->stok - $request->kuantitas]);

      return response()->json($post,$obat);
    }
stoknya tetep ngga update gan :(
avatar dwigumelar

@dwigumelar

8 Kontribusi 0 Poin


bisa pake kode ini ganmakasih atas petunjuknya

      $id = $request->id;

      $post   =   Obat_tran::updateOrCreate(['id' => $id],
                  [
                      'kode_rekmed' => $request->kode_rekmed,
                      'kode_register' => $request->kode_register,
                      'kd_obat' => $request->kd_obat,
                      'kuantitas' => $request->kuantitas,
                      'subtotal' => $request->kuantitas*$request->harga,
                  ]);
      $where = array('kd_obat' => $request->kd_obat);
      $post  = Obat::where($where)->first();
      $post->update(['stok'=>$post->stok - $request->kuantitas]);

      return response()->json($post); 
avatar dwigumelar

@dwigumelar

8 Kontribusi 0 Poin


Login untuk gabung berdiskusi
premium logo tube

Hey, sedang ada diskon premium untuk akses semua kelas. Lihat di sini