ok
Direktori : /home2/selectio/www/3-idiots/app/Http/Controllers/Customer/ |
Current File : /home2/selectio/www/3-idiots/app/Http/Controllers/Customer/SystemController.php |
<?php namespace App\Http\Controllers\Customer; use App\CPU\CartManager; use App\CPU\Helpers; use App\Http\Controllers\Controller; use App\Model\CartShipping; use App\Model\Cart; use App\Model\DeliveryCountryCode; use App\Model\DeliveryZipCode; use App\Model\ShippingAddress; use App\Model\ShippingMethod; use App\Traits\CommonTrait; use Brian2694\Toastr\Facades\Toastr; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; use function App\CPU\translate; class SystemController extends Controller { use CommonTrait; public function set_payment_method($name) { if (auth('customer')->check() || session()->has('mobile_app_payment_customer_id')) { session()->put('payment_method', $name); return response()->json([ 'status' => 1 ]); } return response()->json([ 'status' => 0 ]); } public function set_shipping_method(Request $request) { if ($request['cart_group_id'] == 'all_cart_group') { foreach (CartManager::get_cart_group_ids() as $group_id) { $request['cart_group_id'] = $group_id; self::insert_into_cart_shipping($request); } } else { self::insert_into_cart_shipping($request); } return response()->json([ 'status' => 1 ]); } public static function insert_into_cart_shipping($request) { $shipping = CartShipping::where(['cart_group_id' => $request['cart_group_id']])->first(); if (isset($shipping) == false) { $shipping = new CartShipping(); } $shipping['cart_group_id'] = $request['cart_group_id']; $shipping['shipping_method_id'] = $request['id']; $shipping['shipping_cost'] = ShippingMethod::find($request['id'])->cost; $shipping->save(); } public function choose_shipping_address(Request $request) { $zip_restrict_status = Helpers::get_business_settings('delivery_zip_code_area_restriction'); $country_restrict_status = Helpers::get_business_settings('delivery_country_restriction'); $physical_product = $request->physical_product; $shipping = []; $billing = []; parse_str($request->shipping, $shipping); parse_str($request->billing, $billing); $adr=1; if (isset($shipping['save_address']) && $shipping['save_address'] == 'on') { if ($shipping['contact_person_name'] == null || $shipping['address'] == null || $shipping['city'] == null || $shipping['zip'] == null || $shipping['country'] == null ) { return response()->json([ 'errors' => translate('Fill_all_required_fields_of_shipping_address') ], 403); } elseif ($country_restrict_status && !self::delivery_country_exist_check($shipping['country'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_country.') ], 403); } elseif ($zip_restrict_status && !self::delivery_zipcode_exist_check($shipping['zip'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_zip_code_area') ], 403); } $address_id = DB::table('shipping_addresses')->insertGetId([ 'customer_id' => auth('customer')->id(), 'contact_person_name' => $shipping['contact_person_name'], 'address_type' => $shipping['address_type'], 'address' => $shipping['address'], 'city' => $shipping['city'], 'zip' => $shipping['zip'], 'country' => $shipping['country'], 'state' => $shipping['state'], 'phone' => $shipping['phone'], 'latitude' => $shipping['latitude'], 'longitude' => $shipping['longitude'], 'is_billing' => 0, 'created_at' => now(), 'updated_at' => now(), ]); } else if (isset($shipping['shipping_method_id']) && $shipping['shipping_method_id'] == 0) { $adr=$shipping['state']; if ($shipping['contact_person_name'] == null || $shipping['address'] == null || $shipping['city'] == null || $shipping['zip'] == null || $shipping['country'] == null ) { return response()->json([ 'errors' => translate('Fill_all_required_fields_of_shipping/billing_address') ], 403); } elseif ($country_restrict_status && !self::delivery_country_exist_check($shipping['country'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_country') ], 403); } elseif ($shipping['state'] == null) { return response()->json([ 'errors' => 'State is required' ], 403); } elseif ($zip_restrict_status && !self::delivery_zipcode_exist_check($shipping['zip'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_zip_code_area') ], 403); } $address_id = DB::table('shipping_addresses')->insertGetId([ 'customer_id' => 0, 'contact_person_name' => $shipping['contact_person_name'], 'address_type' => $shipping['address_type'], 'address' => $shipping['address'], 'city' => $shipping['city'], 'zip' => $shipping['zip'], 'state' => $shipping['state'], 'country' => $shipping['country'], 'phone' => $shipping['phone'], 'latitude' => $shipping['latitude'], 'longitude' => $shipping['longitude'], 'is_billing' => 0, 'created_at' => now(), 'updated_at' => now(), ]); } else { if (isset($shipping['shipping_method_id'])) { $address = ShippingAddress::find($shipping['shipping_method_id']); if (!$address->country || !$address->zip) { return response()->json([ 'errors' => translate('Please_update_country_and_zip_for_this_shipping_address') ], 403); } elseif ($country_restrict_status && !self::delivery_country_exist_check($address->country)) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_country') ], 403); } elseif ($zip_restrict_status && !self::delivery_zipcode_exist_check($address->zip)) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_zip_code_area') ], 403); } $address_id = $shipping['shipping_method_id']; }else{ $address_id = 0; } } if ($request->billing_addresss_same_shipping == 'false') { if (isset($billing['save_address_billing']) && $billing['save_address_billing'] == 'on') { if ($billing['billing_contact_person_name'] == null || $billing['billing_address'] == null || $billing['billing_city'] == null|| $billing['billing_zip'] == null || $billing['billing_country'] == null ) { return response()->json([ 'errors' => translate('Fill_all_required_fields_of_billing_address') ], 403); } elseif ($country_restrict_status && !self::delivery_country_exist_check($billing['billing_country'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_country') ], 403); } elseif ($zip_restrict_status && !self::delivery_zipcode_exist_check($billing['billing_zip'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_zip_code_area') ], 403); } $billing_address_id = DB::table('shipping_addresses')->insertGetId([ 'customer_id' => auth('customer')->id(), 'contact_person_name' => $billing['billing_contact_person_name'], 'address_type' => $billing['billing_address_type'], 'address' => $billing['billing_address'], 'city' => $billing['billing_city'], 'zip' => $billing['billing_zip'], 'state' => $shipping['billing_state'], 'country' => $billing['billing_country'], 'phone' => $billing['billing_phone'], 'latitude' => $billing['billing_latitude'], 'longitude' => $billing['billing_longitude'], 'is_billing' => 1, 'created_at' => now(), 'updated_at' => now(), ]); } elseif ($billing['billing_method_id'] == 0) { if ($billing['billing_contact_person_name'] == null || $billing['billing_address'] == null || $billing['billing_city'] == null || $billing['billing_zip'] == null || $billing['billing_country'] == null ) { return response()->json([ 'errors' => translate('Fill_all_required_fields_of_billing_address') ], 403); } elseif ($country_restrict_status && !self::delivery_country_exist_check($billing['billing_country'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_country') ], 403); } elseif ($zip_restrict_status && !self::delivery_zipcode_exist_check($billing['billing_zip'])) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_zip_code_area') ], 403); } $billing_address_id = DB::table('shipping_addresses')->insertGetId([ 'customer_id' => 0, 'contact_person_name' => $billing['billing_contact_person_name'], 'address_type' => $billing['billing_address_type'], 'address' => $billing['billing_address'], 'city' => $billing['billing_city'], 'zip' => $billing['billing_zip'], 'country' => $billing['billing_country'], 'phone' => $billing['billing_phone'], 'latitude' => $billing['billing_latitude'], 'longitude' => $billing['billing_longitude'], 'is_billing' => 1, 'created_at' => now(), 'updated_at' => now(), ]); } else { $address = ShippingAddress::find($billing['billing_method_id']); if ($physical_product == 'yes') { if (!$address->country || !$address->zip) { return response()->json([ 'errors' => translate('Update_country_and_zip_for_this_billing_address') ], 403); } elseif ($country_restrict_status && !self::delivery_country_exist_check($address->country)) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_country') ], 403); } elseif ($zip_restrict_status && !self::delivery_zipcode_exist_check($address->zip)) { return response()->json([ 'errors' => translate('Delivery_unavailable_in_this_zip_code_area') ], 403); } } $billing_address_id = $billing['billing_method_id']; } } else { $billing_address_id = $shipping['shipping_method_id']; } session()->put('address_id', $address_id); session()->put('billing_address_id', $billing_address_id); //Update State Based On Cust //auth('customer')->id() //$address_id $shipping_update_amount = DB::table('carts')->where('customer_id',auth('customer')->id())->get(); $address = ShippingAddress::find($address_id); error_log('Addr:'.$address_id); foreach($shipping_update_amount as $ship_amount){ $coupon = Cart::find($ship_amount->id); if($address_id){ $state_id=$address->state; error_log('Saved Address State Id:'.$state_id); }else{ $state_id=$adr; error_log('State Id:'.$state_id); } $per_unit_shipping=ShippingMethod::find($state_id)->cost; $amt=($per_unit_shipping*$coupon->quantity); DB::table('carts') ->where('id', $ship_amount->id) ->update(array('shipping_cost' => $amt)); } return response()->json([], 200); } }