Nuevos cambios hechos de diseño
This commit is contained in:
218
desarrollo2/app/Http/Controllers/Api/V2/AddressController.php
Normal file
218
desarrollo2/app/Http/Controllers/Api/V2/AddressController.php
Normal file
@@ -0,0 +1,218 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V2;
|
||||
|
||||
use App\Models\City;
|
||||
use App\Models\Country;
|
||||
use App\Http\Resources\V2\AddressCollection;
|
||||
use App\Models\Address;
|
||||
use App\Http\Resources\V2\CitiesCollection;
|
||||
use App\Http\Resources\V2\StatesCollection;
|
||||
use App\Http\Resources\V2\CountriesCollection;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Cart;
|
||||
use App\Models\State;
|
||||
|
||||
class AddressController extends Controller
|
||||
{
|
||||
public function addresses()
|
||||
{
|
||||
return new AddressCollection(Address::where('user_id', auth()->user()->id)->get());
|
||||
}
|
||||
|
||||
public function createShippingAddress(Request $request)
|
||||
{
|
||||
$address = new Address;
|
||||
$address->user_id = auth()->user()->id;
|
||||
$address->address = $request->address;
|
||||
$address->country_id = $request->country_id;
|
||||
$address->state_id = $request->state_id;
|
||||
$address->city_id = $request->city_id;
|
||||
$address->postal_code = $request->postal_code;
|
||||
$address->phone = $request->phone;
|
||||
$address->save();
|
||||
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Shipping information has been added successfully')
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateShippingAddress(Request $request)
|
||||
{
|
||||
$address = Address::find($request->id);
|
||||
$address->address = $request->address;
|
||||
$address->country_id = $request->country_id;
|
||||
$address->state_id = $request->state_id;
|
||||
$address->city_id = $request->city_id;
|
||||
$address->postal_code = $request->postal_code;
|
||||
$address->phone = $request->phone;
|
||||
$address->save();
|
||||
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Shipping information has been updated successfully')
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateShippingAddressLocation(Request $request)
|
||||
{
|
||||
$address = Address::find($request->id);
|
||||
$address->latitude = $request->latitude;
|
||||
$address->longitude = $request->longitude;
|
||||
$address->save();
|
||||
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Shipping location in map updated successfully')
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function deleteShippingAddress($id)
|
||||
{
|
||||
$address = Address::where('id',$id)->where('user_id',auth()->user()->id)->first();
|
||||
if($address == null) {
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'message' => translate('Address not found')
|
||||
]);
|
||||
}
|
||||
$address->delete();
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Shipping information has been deleted')
|
||||
]);
|
||||
}
|
||||
|
||||
public function makeShippingAddressDefault(Request $request)
|
||||
{
|
||||
Address::where('user_id', auth()->user()->id)->update(['set_default' => 0]); //make all user addressed non default first
|
||||
|
||||
$address = Address::find($request->id);
|
||||
$address->set_default = 1;
|
||||
$address->save();
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Default shipping information has been updated')
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateAddressInCart(Request $request)
|
||||
{
|
||||
try {
|
||||
Cart::where('user_id', auth()->user()->id)->update(['address_id' => $request->address_id]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'message' => translate('Could not save the address')
|
||||
]);
|
||||
}
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Address is saved')
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getShippingInCart(Request $request)
|
||||
{
|
||||
|
||||
$cart= Cart::where('user_id', auth()->user()->id)->first();
|
||||
|
||||
$address = $cart->address;
|
||||
return new AddressCollection(Address::where('id', $address->id)->get());
|
||||
// return new AddressCollection($address);
|
||||
|
||||
}
|
||||
|
||||
public function updateShippingTypeInCart(Request $request)
|
||||
{
|
||||
try {
|
||||
$carts= Cart::where('user_id', auth()->user()->id)->get();
|
||||
|
||||
|
||||
foreach ($carts as $key => $cart) {
|
||||
|
||||
$cart->shipping_cost = 0;
|
||||
|
||||
if($request->shipping_type=="pickup_point"){
|
||||
$cart->shipping_type="pickup_point";
|
||||
$cart->pickup_point=$request->shipping_id;
|
||||
$cart->carrier_id=0;
|
||||
}
|
||||
else if($request->shipping_type=="home_delivery"){
|
||||
$cart->shipping_cost = getShippingCost($carts, $key);
|
||||
$cart->shipping_type="home_delivery";
|
||||
$cart->pickup_point=0;
|
||||
$cart->carrier_id=0;
|
||||
}
|
||||
else if($request->shipping_type=="carrier_base"){
|
||||
$cart->shipping_cost = getShippingCost($carts, $key,$cart->carrier_id);
|
||||
$cart->shipping_type="carrier";
|
||||
$cart->carrier_id=$request->shipping_id;
|
||||
$cart->pickup_point=0;
|
||||
}
|
||||
$cart->save();
|
||||
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'message' => translate('Could not save the address')
|
||||
]);
|
||||
}
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Delivery address is saved')
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getCities()
|
||||
{
|
||||
return new CitiesCollection(City::where('status', 1)->get());
|
||||
}
|
||||
|
||||
public function getStates()
|
||||
{
|
||||
return new StatesCollection(State::where('status', 1)->get());
|
||||
}
|
||||
|
||||
public function getCountries(Request $request)
|
||||
{
|
||||
$country_query = Country::where('status', 1);
|
||||
if ($request->name != "" || $request->name != null) {
|
||||
$country_query->where('name', 'like', '%' . $request->name . '%');
|
||||
}
|
||||
$countries = $country_query->get();
|
||||
|
||||
return new CountriesCollection($countries);
|
||||
}
|
||||
|
||||
public function getCitiesByState($state_id,Request $request)
|
||||
{
|
||||
$city_query = City::where('status', 1)->where('state_id',$state_id);
|
||||
if ($request->name != "" || $request->name != null) {
|
||||
$city_query->where('name', 'like', '%' . $request->name . '%');
|
||||
}
|
||||
$cities = $city_query->get();
|
||||
return new CitiesCollection($cities);
|
||||
}
|
||||
|
||||
public function getStatesByCountry($country_id,Request $request)
|
||||
{
|
||||
$state_query = State::where('status', 1)->where('country_id',$country_id);
|
||||
if ($request->name != "" || $request->name != null) {
|
||||
$state_query->where('name', 'like', '%' . $request->name . '%');
|
||||
}
|
||||
$states = $state_query->get();
|
||||
return new StatesCollection($states);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user