nafiesl/grosir-obat

stok produk

dirgareborn opened this issue · 3 comments

saya mencoba menggunakan grosir-obat, dengan menambahkan 1 tabel stok barang masuk dan saya menambahkan field stok pada tabel product dan menambahkan kode update stok pada cartcontroller.

public function addDraftItem(Request $request, $draftKey, Product $product)
{

     $stockdetails = Product::findOrFail($product->id);
    
     $update= \DB::table('products')->where('id',$stockdetails->id)->update(['stok'=>($stockdetails->stok)-($request->qty)]);
     

    $item = new Item($product, $request->qty);
    $this->cart->addItemToDraft($draftKey, $item);

    flash(trans('cart.item_added', [
        'product_name' => $product->name.' ('.$product->unit->name.')',
        'qty'          => $request->qty,
    ]));

    
    if ($request->has('query')) {
        
        return redirect()->route('cart.show', [$draftKey, 'query' => $request->get('query')]);

    }

    return back();
}

aplikasi cukup bagus, tapi masih berat pada saat load PDF

Dari potongan kode diatas, sepertinya ingin langsung mengurangi stok pada saat produk ditambahkan ke cart ya mas? Menurut saya metode ini kurang ideal mas, karena di cart ini kita juga bisa hapus item.

Jika ingin menerapkan pemotongan stok otomatis, idealnya stok dipotong pada saat Draft Transaksi disimpan. Yaitu disini : (Class App\Cart\TransactionDraft@store)
https://github.com/nafiesl/grosir-obat/blob/master/app/Cart/TransactionDraft.php#L113

Loop dulu draft itemnya, di dalam loop baru kurangi masing-masing stoknya.

Tips: jangan lupa pakai DB::beginTransaction() dan DB::commit() untuk menghindari ada problem saat looping.

Untuk PDF, sepertinya agak berat karena dibagi 3 kolom ya (karena kertas A4).
Silakan diupdate sesuai dengan kebutuhannya mas 👍

ia Mas terima kasih.

Sama2 mas.