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

namespace App\Http\Controllers;

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

class PurchaseOrderController extends Controller
{
    public function index()
    {
        $pos=Purchaseorder::all();
        $rfqs=Rfq::all();
        return view ('dashboards.purchaseorder.index', [
            'pos'=>$pos,
            'rfqs'=>$rfqs,
        ]);
    }

    public function destroy(Purchaseorder $datapo)
    {
        $datapo->delete();

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

    public function receive(Request $request, Rfq $datarfq)
    {
        $request->validate([
            'idponya' => 'required',
        ]);
        // dd($datadarirfq);

        $tanggalselesai = date('d-m-Y');
        Purchaseorder::where('idpo', $request->idponya)->update([
            'status' => 'Receive',
            'tglditerima' => $tanggalselesai
        ]);

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

    public function validae(Request $request, Rfq $datarfq)
    {
        $request->validate([
            'idponya' => 'required',
        ]);
        // dd($datadarirfq);

        Purchaseorder::where('idpo', $request->idponya)->update([
            'status' => 'Validated'
        ]);

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

    public function paid(Request $request, Rfq $datarfq)
    {
        $request->validate([
            'koderfqnya' => 'required',
            'idrfqnya' => 'required',
        ]);
        // dd($datadarirfq);

        Purchaseorder::where('koderfq', $request->koderfqnya)->update([
            'status' => 'Fully Paid'
        ]);

        $rfqisi = Rfqisi::get()->where('idrfqnya', $request->idrfqnya);
        //buat ngurang bahan
        foreach($rfqisi as $bahanygdipake){
            $bahannya = Bahan::select('stockbahan')->where('kodebahan', $bahanygdipake->kodebah)->get();
            $hitung = $bahannya[0]->stockbahan + $bahanygdipake->banyakqty;

            Bahan::where('kodebahan', $bahanygdipake->kodebah)->update([
                'stockbahan' => $hitung,
            ]);
        }

        // PASSING DATA
        $datadarisq = Purchaseorder::get()->where('idpo', $request->idrfqnya);
        //dibuat karena manufacturingisi index tidak dimulai dari nol dan kita cuma butuh banyak qty
        foreach ($datadarisq as $value) {
                $idso = $value->idpo;
                $kodesq = $value->koderfq;
                $kodecust = $value->kodevend;
                $tglpembelian = $value->tglpembelian;
                $status = $value->status;
            }
            
        // QTY
        $qty = DB::table('rfqisis')
        ->select('banyakqty')
        ->where('idrfqnya', $request->idrfqnya)
        ->get();
        foreach($qty as $item){
            $banyakqty=$item->banyakqty;
        }

        // HARGA PRODUK
        $hrg = DB::table('bahans')
        ->select('hargabahan')
        ->where('idbahan', $request->idrfqnya)
        ->get();
        foreach($hrg as $item){
            $harga=$item->hargabahan;
        }

        //TOTAL
        $total = $banyakqty * $harga; 
        
        // TANGGAL DITERIMA
        $ldate = date('d-m-Y');
        // dd($ldate);

        DB::table('vendbills')->insert([
            'idrfqnya' => $idso,
            'koderfq' => $kodesq,
            'kodevend' => $kodecust,
            'tglpembelian' => $tglpembelian,
            'tglditerima' => $ldate,
            'total' => $total,
            'status' => $status,
        ]);

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

}