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

namespace App\Http\Controllers;

use App\Models\Produk;
use App\Models\Sales;
use App\Models\Salesisi;
use App\Models\SalesOrder;
use DateTime;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Date;
use Illuminate\Support\Facades\DB;

class SalesOrderController extends Controller
{
    public function index()
    {
        $pos = SalesOrder::all();
        $rfqs = Sales::all();
        return view('dashboards.salesorder.index', [
            'pos' => $pos,
            'rfqs' => $rfqs,
        ]);
    }

    public function destroy($id)
    {
        $so = SalesOrder::find($id);
        $so->delete();

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

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

        // $tanggalselesai = date('d-m-Y');
        SalesOrder::where('idso', $request->idsonya)->update([
            'status' => 'Receive',
            // 'tglditerima' => $tanggalselesai
        ]);

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

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

        SalesOrder::where('idso', $request->idsonya)->update([
            'status' => 'Validated'
        ]);

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

    public function paid(Request $request, Sales $datarfq)
    {
        $request->validate([
            'kodesqnya' => 'required',
            'idsqnya' => 'required',
        ]);
        // dd($datadarirfq);

        SalesOrder::where('kodesq2', $request->kodesqnya)->update([
            'status' => 'Fully Paid'
        ]);

        $rfqisi = Salesisi::get()->where('idsqnya', $request->idsqnya);
        //buat ngurang bahan
        foreach ($rfqisi as $bahanygdipake) {
            $bahannya = Produk::select('stockproduk')->where('kodeproduk', $bahanygdipake->kodeprod)->get();
            $hitung = $bahannya[0]->stockproduk - $bahanygdipake->banyakqty;

            Produk::where('kodeproduk', $bahanygdipake->kodeprod)->update([
                'stockproduk' => $hitung,
            ]);
        }
        // PASSING DATA
        $datadarisq = SalesOrder::get()->where('idso', $request->idsqnya);
        //dibuat karena manufacturingisi index tidak dimulai dari nol dan kita cuma butuh banyak qty
        foreach ($datadarisq as $value) {
                $idso = $value->idso;
                $kodesq = $value->kodesq2;
                $kodecust = $value->kodecust;
                $tglpembelian = $value->tglpembelian;
                $status = $value->status;
            }
            
        // QTY
        $qty = DB::table('salesisis')
        ->select('banyakqty')
        ->where('idsqnya', $request->idsqnya)
        ->get();
        foreach($qty as $item){
            $banyakqty=$item->banyakqty;
        }

        // HARGA PRODUK
        $hrg = DB::table('produks')
        ->select('hargaproduk')
        ->where('idproduk', $request->idsqnya)
        ->get();
        foreach($hrg as $item){
            $harga=$item->hargaproduk;
        }

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

        DB::table('custvoices')->insert([
            'idsqnya' => $idso,
            'kodesq' => $kodesq,
            'kodecust' => $kodecust,
            'tglpembelian' => $tglpembelian,
            'tglditerima' => $ldate,
            'total' => $total,
            'status' => $status,
        ]);

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