MOON
Server: Apache
System: Linux 101-53-147-124.cprapid.com 4.18.0-553.121.1.el8_10.x86_64 #1 SMP Thu Apr 30 09:06:34 EDT 2026 x86_64
User: clientsoftwares (1005)
PHP: 8.2.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/clientsoftwares/www/saagsystem.clientsoftwares.com/app/Http/Controllers/HomeController.php
<?php

namespace App\Http\Controllers;

use App\Models\Addon;
use App\Models\Address;
use App\Models\Category;
use App\Models\ColorTable;
use App\Models\Customer;
use App\Models\Damage;
use App\Models\FareManagement;
use App\Models\Order;
use App\Models\OrderItem;
use App\Models\PackingStyle;
use App\Models\Product;
use App\Models\Service;
use App\Models\Stain;
use App\Models\PromoCode;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;

class HomeController extends Controller
{
    public function index()
    {
        $services = Service::where('status', 1)->get();
        $product = array();

        foreach ($services as $service) {
            $data['products'] = FareManagement::select('*')->where('service_id', $service->id)->where('status', 1)->get();

            $prod = DB::table('fare_management')->join('products', 'products.id', '=', 'fare_management.product_id')
                ->select('fare_management.*', 'products.*')->where([
                    ['products.status', 1],
                    ['fare_management.service_id', $service->id]
                ])->get();

            array_push($product, $prod);
        }


        $data['damages'] = Damage::all();
        $data['stains'] = Stain::all();
        $data['colors'] = ColorTable::all();
        $data['packing_styles'] = PackingStyle::all();
        $data['addons'] = Addon::all();
        $data['discounts'] = PromoCode::all();

        $data['products'] = $product;
        $data['services'] = $services;


        return view('home', $data);
    }

    
    public function getProduct(Request $request)
    {
        $data["type"]  = 'success';
        $data["iid"] = $request->item_id;
        $data["item_name"] = $request->item_name;
        $data["iron_price"]         = $request->iron_price;
        $data["price"]              = $request->price;
        $data["pieces"] = $request->pieces;
        $data["service_id"] = $request->service_id;
        echo json_encode($data);
    }

    public function getAddon(Request $request)
    {
        $data["response"]       = 'success';
        $data["item_id"] = $request->item_id;
        $data["id"]             = $request->id;
        $data["addon_name"]     = $request->addon_name;
        $data["price"]          = $request->price;
        echo json_encode($data);
    }

    public function getPackingStyle(Request $request)
    {
        $data["response"]       = 'success';
        $data["item_id"] =      $request->item_id;
        $data["id"]             = $request->id;
        $data["packing_style"]     = $request->packing_style_name;
        $data["price"]          = $request->price;
        echo json_encode($data);
    }
    public function getColor(Request $request)
    {
        $data["response"]       = 'success';
        $data["item_id"] = $request->item_id;
        $data["id"]             = $request->id;
        $data["color_name"]     = $request->color_name;
        echo json_encode($data);
    }

    public function checkEmail(Request $request)
    {
        $userCount = DB::table('customers')->where('email', $request->email)->get();
        if($userCount->count())
        {
            $data["message"] = 'true';
        }
        echo json_encode($data);
    }
    public function checkLogin(Request $request)
    {
        if(Auth::guard('customer')->attempt(['email' => $request->email, 'password' => $request->password]))
        {
            $authUser = Auth::guard('customer')->user();
            $data["status"] = 'success';
            if($authUser->status !=1)
            {
                $data["status"] = 'not_active';
            }
        }
        else
        {
            $data["status"] = 'passfail';
        }
        echo json_encode($data);
    }
    public function generateInvoice(Request $request)
    {
        $data["response"]       = 'success';
        (object)$customerData = [
            'customer_name'       => $request->first_name . " " . $request->last_name,
            'email'            => $request->cust_email,
            'password'         => Hash::make($request->password),
            'status'           => 1,
            'phone_number' => $request->telephone,
        ];
            if ($request->user_type == 'New User') {
                $customer = Customer::create($customerData);
                (object)$addressData = [
                    'customer_id' => $customer->id,
                'customer_name' => $request->first_name. " " . $request->last_name,
                'phone_number' => $request->telephone,
                'address' => $request->address,
                'locality' => $request->area,
                'city' => $request->city,
                'state' => $request->state,
                'pincode' => $request->zip,
                'country' => $request->country,
                'location' => $request->location_id,
                'status' => 1
                ];
                $addressdata = Address::create($addressData);
            }
            $pickup_date = '';
        $pickup_from_time = '';
        if ($request->check_pickup == 'on') {
            $pickup_date = date('Y-m-d', strtotime($request->pickup_date));
            $pickup_from_time = date('H:i', strtotime($request->pickup_from_time));
        }
        $item_id = $request['item_id'];
        $item_name = $request['item_name'];
        $item_color1 = $request['item_color1'];
        $item_color2 = $request['item_color2'];
        $item_damage = $request['item_damage'];
        $item_stains = $request['item_stains'];
        $inc_packing_price = $request['inc_packing_price'];
        $inc_addon_price = $request['inc_addon_price'];
        $inc_packing_name = $request['inc_packing_name'];
        $inc_addon_name = $request['inc_addon_name'];
        $item_qty = $request['item_qty'];
        $item_price = $request['item_price'];
        $serviceid = $request['service'];
        $iron_price = $request['td_iron_price'];
        if (!empty($item_id)) {
            for ($i=0; $i < count($item_id); $i++) {
                $iron = 0;
                if (!empty($request['check_iron'][$i]) && $request['check_iron'][$i] == 'on') {
                    $iron = 1;
                }
                (object)$invoiceItemData[] =
                            array(
                                'product_id'       => $item_id[$i],
                                'color1' => DB::table('color_tables')->where('color_name', $item_color1[$i])->value('id'),
                                'color2' => DB::table('color_tables')->where('color_name', $item_color2[$i])->value('id'),
                                'packing_id'       => DB::table('packing_styles')->where('packing_style', $inc_packing_name[$i])->value('id'),
                                'addon_id'       => DB::table('addons')->where('addon_name', $inc_addon_name[$i])->value('id'),
                                'damage_id' => DB::table('damage')->where('damage', $item_damage[$i])->value('id'),
                                'stain_id' => DB::table('stains')->where('stains',$item_stains[$i])->value('id'),
                                'service_id' => $serviceid[$i],
                                'iron'          => $iron,
                                'qty' => $item_qty[$i],
                                'price' => $item_price[$i],
                                'product_name'     => $item_name[$i],
                                'service_name' => Service::where('id', $serviceid[$i])->value('service_name'),
                                'color1_name'   => $item_color1[$i],
                                'color2_name'   => $item_color2[$i],
                                'packing_name' => $inc_packing_name[$i],
                                'addon_name' => $inc_addon_name[$i],
                                'damage_name' => $item_damage[$i],
                                'stain_name' => $item_stains[$i],
                                'iron_price' => $iron_price[$i],
                                'packing_price' => $inc_packing_price[$i],
                                'addon_price' => $inc_addon_price[$i],
                            );
            }
        }
            $orderdata = Order::create([
                'customer_id' => $customer->id,
                'address_id' => $addressdata->id,
                'pickup_date' => $pickup_date,
                'pickup_time' => $pickup_from_time,
                'delivery_date'         => date('Y-m-d', strtotime($request->ready_by_date)),
                'delivery_time'    => date('H:i', strtotime($request->ready_by_from_date)),
                'total'          => $request->grand_total,
                'sub_total'              => $request->subtotal,
                's_discount'      => $request->discount_percent,
                'items' => json_encode($invoiceItemData),
                'status' => 0
            ]);
            $order_id = str_pad($orderdata->id, 5, "0", STR_PAD_LEFT);
            Order::where('id',$orderdata->id)->update([ 'order_id' => $order_id]);
            if (is_object($orderdata)) {
                foreach ($invoiceItemData as $key => $value) {
                    $value['order_id'] = $orderdata->id;
                    OrderItem::create($value);
                }
            }
            $data["last_id"] = $orderdata->id;
        echo json_encode($data);

    }

    public function invoice_data(Request $request)
    {
        $orderdata = Order::find($request->id);
        $customerdata = Customer::find($orderdata->customer_id);
        $addressdata = Address::where([
            ['id',$orderdata->address_id],
            ['customer_id',$orderdata->customer_id]
        ])->first();
        return view('invoice_details', compact('customerdata', 'addressdata', 'orderdata'));
    }

    public function invoice_print(Request $request)
    {
        $orderdata = Order::find($request->id);
        $customerdata = Customer::find($orderdata->customer_id);
        $addressdata = Address::where([
            ['id',$orderdata->address_id],
            ['customer_id',$orderdata->customer_id]
        ])->first();
        return view('invoice_print', compact('customerdata', 'addressdata', 'orderdata'));
    }
}