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

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Bahan;
use App\Models\Purchaseorder;
use App\Models\Vendor;
use App\Models\Rfqisi;
use App\Models\Rfq;
use Illuminate\Support\Facades\DB;


class RfqController extends Controller
{
    public function index()
    {
        $rfqs=Rfq::all();
        $vendors=Vendor::all();
        return view ('dashboards.rfq.index', [
            'rfqs'=>$rfqs,
            'vendors'=>$vendors,
        ]);
    }

    public function create()
    {
        $code = 'RFQ'.date('Y').rand(1111,9999);
        $vendors = Vendor::all();
        $status = "RFQ";
        return view ('dashboards.rfq.create', [
            'code'=>$code,
            'vendors'=>$vendors,
            'status'=>$status,
        ]);
    }

    public function store(Request $request)
    {
        $request->validate([
            'koderfq' => 'required',
            'kodevend' => 'required',
            'tglpembelian' => 'required',
        ]);

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

        return redirect()->route('adminIndexRfq')
                        ->with('success','Data Telah Ditambahkan. Silahkan buka isi dari MO');
    }


    public function storeisi(Request $request)
    {
        $request->validate([
            'idrfqnya' => 'required',
            'kodebah' => 'required',
            'banyakqty' => 'required',
        ]);

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

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

        Rfqisi::create([
            'idrfqnya' => $request->idrfqnya,
            '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');
    }


    public function isi(Rfq $datarfq)
    {

        $rfqisi = Rfqisi::get()->where('idrfqnya', $datarfq->idrfq);
        $bahanbakus = Bahan::all();

        $hargaakhir = Rfqisi::where('idrfqnya',$datarfq->idrfq)->sum('hargaakhir');

        return view ('dashboards.rfq.isi', [
            'datarfq'=>$datarfq,
            'rfqisi' => $rfqisi,
            'bahanbakus' => $bahanbakus,
            'hargaakhir' => $hargaakhir,
        ]);
    }

    public function edit(Rfq $datarfq)
    {
        $vendors = Vendor::all();
        return view ('dashboards.rfq.edit', [
            'datarfq'=>$datarfq,
            'vendors'=>$vendors
        ]);
    }

    public function update(Request $request, Rfq $datarfq)
    {
        $request->validate([
            'koderfq' => 'required',
            'kodevend' => 'required',
            'tglpembelian' => 'required',
        ]);

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

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

    public function checkout(Request $request, Rfq $datarfq)
    {
        $request->validate([
            'idrfqnya' => 'required',
        ]);

        $datadarirfq = Rfq::get()->where('idrfq', $request->idrfqnya);
        //dibuat karena manufacturingisi index tidak dimulai dari nol dan kita cuma butuh banyak qty
        foreach($datadarirfq as $value){
            $datadarirfqbaru[] = [
                "idrfq" => $value->idrfq,
                "koderfq" => $value->koderfq,
                "kodevend" => $value->kodevend,
                "tglpembelian" => $value->tglpembelian,
                "status" => $value->status,
            ];
        }
        // dd($datadarirfqbaru);
        
        Rfq::where('idrfq', $request->idrfqnya)->update([
            'status' => 'Purchase Order'
        ]);
        
        Purchaseorder::create([
            'idrfqnya' => $datadarirfqbaru[0]['idrfq'],
            'koderfq' => $datadarirfqbaru[0]['koderfq'],
            'kodevend' => $datadarirfqbaru[0]['kodevend'],
            'tglpembelian' => $datadarirfqbaru[0]['tglpembelian'],
            'tglditerima' => '-',
            'status' => 'Purchase Order',
        ]);

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


    public function destroy(Rfq $datarfq)
    {
        $datarfq->delete();

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

    public function destroyisi(Rfqisi $dataisirfq)
    {
        $dataisirfq->delete();

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

}