MIELICIUS / app / Http / Controllers / BomController.php
BomController.php
Raw
<?php

namespace App\Http\Controllers;

use App\Models\Bom;
use App\Models\Bahan;
use App\Models\Produk;
use App\Models\bomsementara;

use Illuminate\Http\Request;
use function GuzzleHttp\Promise\all;

class BomController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $boms = Bom::all();
        $produks = Produk::all();
        return view('dashboards.bom.index', [
            'boms' => $boms,
            'produks' => $produks,
        ]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $code = 'BOM' . date('Y') . rand(1111, 9999);
        $produks = Produk::all();
        return view('dashboards.bom.create', [
            'code' => $code,
            'produks' => $produks,
        ]);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'kodebom' => 'required',
            'kodeprod' => 'required',
        ]);

        Bom::create($request->all());

        return redirect()->route('adminIndexBom')
            ->with('success', 'Data Telah Ditambahkan. Silahkan Isi Bahan Baku Yang Dibutuhkan Di Isi Bom');
    }
    public function storeisi(Request $request)
    {
        $request->validate([
            'idbomnya' => 'required',
            'kodebah' => 'required',
            'banyakqty' => 'required',
        ]);

        $bahanbaku = Bahan::select('hargabahan')
            ->where('kodebahan', $request->kodebah)
            ->get();

        $hargaakhir = $request->banyakqty * $bahanbaku[0]->hargabahan;

        bomsementara::create([
            'idbomnya' => $request->idbomnya,
            'kodebah' => $request->kodebah,
            'banyakqty' => $request->banyakqty,
            'hargaakhir' => $hargaakhir,
        ]);

        return redirect()->back()
            ->with('success', 'Data Telah Ditambahkan. Silahkan Isi Bahan Baku Yang Dibutuhkan Di Isi Bom');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Produk  $Produk
     * @return \Illuminate\Http\Response
     */
    public function show(Bom $bom)
    {
        //
    }

    public function isi(Bom $databom)
    {
        // dd($databom->idbom);
        $bomsementara = bomsementara::get()->where('idbomnya', $databom->idbom);
        $bahanbakus = Bahan::all();
        // $harga = bomsementara::get()->where('idbomnya', $databom->idbom);
        $hargaakhir = bomsementara::where('idbomnya', $databom->idbom)->sum('hargaakhir');
        $hargaproduk = Produk::select('hargaproduk')->where('kodeproduk', $databom->kodeprod)->get();
        // dd($hargaproduk);
        return view('dashboards.bom.isi', [
            'databom' => $databom,
            'bomsementara' => $bomsementara,
            'bahanbakus' => $bahanbakus,
            'hargaakhir' => $hargaakhir,
            'hargaproduk' => $hargaproduk,
        ]);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\produk  $produk
     * @return \Illuminate\Http\Response
     */
    public function edit(Bom $databom)
    {
        $produks = Produk::all();
        return view('dashboards.bom.edit', ['databom' => $databom, 'produks' => $produks]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Produk  $Produk
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Bom $databom)
    {
        $request->validate([
            'kodebom' => 'required',
            'kodeprod' => 'required',
        ]);

        $databom->update($request->all());

        return redirect()->route('adminIndexBom')
            ->with('success', 'Data Telah Diperbaharui.');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Produk  $Produk
     * @return \Illuminate\Http\Response
     */
    public function destroy(Bom $databom)
    {
        $databom->delete();

        return redirect()->route('adminIndexBom')
            ->with('success', 'Data Telah Dihapus.');
    }
    public function destroyisi(bomsementara $dataisibom)
    {
        $dataisibom->delete();

        return redirect()->back()
            ->with('success', 'Data Telah Dihapus.');
    }
}