Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo2.fixmate.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/demo2.fixmate.id/app/Http/Controllers/TransaksiBarangRusakController.php

<?php

namespace App\Http\Controllers;

use App\Models\DetailTransaksiBarangRusak;
use App\Models\Item;
use App\Models\TransaksiBarangRusak;
use App\Models\TransaksiGudang;
use DateInterval;
use DatePeriod;
use DateTime;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Response;

class TransaksiBarangRusakController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index(Request $request)
    {
        // this will default to a time of 00:00:00
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = strftime("%d-%b", strtotime($date->format("Y-m-d")));
        }


        $datas = TransaksiBarangRusak::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();

        $data = [
            'datas' => $datas,
            'periode' => $periode,
            'periodeTanggals' => $periodeTanggals
        ];



        return response()->view('transaksi_barang_rusak.index', $data);
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        // $barang = DetailTransaksiGudang::with('item')->get();
        // $data = [
        //     'detail' => $barang
        // ];


        return response()->view('transaksi_barang_rusak.create');
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request): RedirectResponse
    {
        try {
            DB::beginTransaction();
            $request->validate([
                'deskripsi' => 'required',

            ]);
            $transaksi_barang_rusak = TransaksiBarangRusak::create([
                "tanggal" => $request->tanggal,
                "no_pencatatan" => $request->no_pencatatan,
                "sale_id" => 0,

                "deskripsi" => $request->deskripsi,
                "pengguna_id" => auth()->user()->id
            ]);

            $transaksi_barang_rusak->save();

            if (isset($request->jumlah)) {
                for ($i = 0; $i < count($request->jumlah); $i++) {
                    $item = Item::find($request->id[$i]);

                    DetailTransaksiBarangRusak::create([
                        "transaksi_barang_rusak_id" => $transaksi_barang_rusak->id,
                        "item_id" => $request->id[$i],
                        "nama_item" => $item->nama_item,
                        "harga_item" => 0,
                        "qty" => $request->jumlah[$i],
                    ]);
                    $item->update(['stok' => $item->stok - $request->jumlah[$i]]);
                }
            }
            DB::commit();
            return redirect(route("transaksi_barang_rusak.index"))->with('success', 'barang rusak berhasil dicatat.');
        } catch (\Exception $e) {
            return redirect()->back()->with('error', $e->getMessage());
        }
    }

    /**
     * Display the specified resource.
     */
    public function show(TransaksiBarangRusak $transaksiGudang): Response
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(String $id)
    {
        $transaksi_barang_rusak = TransaksiBarangRusak::find($id);
        $data = [
            'datas' => $transaksi_barang_rusak
        ];


        return response()->view('transaksi_barang_rusak.edit', $data);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, String $id): RedirectResponse
    {
        try {
            DB::beginTransaction();
            $transaksi_barang_rusak = TransaksiBarangRusak::find($id);
            $old_detail = DetailTransaksiBarangRusak::where("transaksi_barang_rusak_id", $transaksi_barang_rusak->id);
            $request->validate([
                'deskripsi' => 'required',

            ]);
            $transaksi_barang_rusak->update([
                "tanggal" => $request->tanggal,
                "no_pencatatan" => $request->no_pencatatan,
                "sale_id" => 0,

                "deskripsi" => $request->deskripsi,
                "pengguna_id" => auth()->user()->id
            ]);



            if (isset($request->jumlah)) {

                foreach ($old_detail->get() as $detail) {
                    $item_old = Item::find($detail->item_id);

                    $item_old->update([
                        'stok' => $item_old->stok + $detail->qty
                    ]);
                }
                $old_detail->delete();

                for ($i = 0; $i < count($request->jumlah); $i++) {
                    $item = Item::find($request->id[$i]);

                    $detailCreate = DetailTransaksiBarangRusak::create([
                        "transaksi_barang_rusak_id" => $transaksi_barang_rusak->id,
                        "item_id" => $request->id[$i],
                        "nama_item" => $item->nama_item,
                        "harga_item" => 0,
                        "qty" => $request->jumlah[$i],
                    ]);

                    $item->update(['stok' => $item->stok - $request->jumlah[$i]]);
                }
            }
            DB::commit();
            return redirect(route("transaksi_barang_rusak.index"))->with('success', 'barang rusak berhasil dicatat.');
        } catch (\Exception $e) {
            return redirect()->back()->with('error', $e->getMessage());
        }
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy($id): RedirectResponse
    {
        DB::beginTransaction();
        try {
            $data = TransaksiBarangRusak::find($id);
            $detail = DetailTransaksiBarangRusak::where("transaksi_barang_rusak_id", $data->id);
            if (isset($data->retur_id)) {
                $detail->delete();
            } else {
                if (isset($detail)) {
                    foreach ($detail->get() as $detail) {
                        $item_old = Item::find($detail->item_id);

                        $item_old->update([
                            'stok' => $item_old->stok + $detail->qty
                        ]);
                    }
                    $detail->delete();
                }
            }




            $data->delete();
            DB::commit();
            return redirect()->route('transaksi_barang_rusak.index')->with('success', 'Transaksi berhasil dihapus');
        } catch (\Throwable $th) {
            DB::rollback();
            return redirect()->route('transaksi_barang_rusak.index')->with('error', 'Transaksi gagal dihapus');
        }
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]