/** * Delete a postal address. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse */ public function postDeletePostalAddress(Request $request) { $pa = PostalAddress::findOrFail($request->input('postal_address_id')); if ($pa->user->userId != Auth::user()->userId) { return redirect('/account/postal-addresses')->withErrors(["You can only delete your own postal addresses."]); } if ($pa->purchases()->count()) { return redirect('/account/postal-addresses')->withErrors(["You cannot delete postal addresses that are associated with purchases."]); } $pa->delete(); return redirect('/account/postal-addresses')->withStatus('Postal address deleted.'); }
/** * Apply a collection address to a purchase. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse */ public function postCollectionAddress(Request $request) { $purchase = Purchase::findOrFail($request->input('purchase_id')); if ($purchase->item->seller->userId != Auth::user()->userId) { return redirect('/inventory/sold')->withErrors(["You are not the seller of this item."]); } if ($purchase->deliveryOption) { return redirect('/inventory/sold')->withErrors(["This item is not due to be collected."]); } if ($purchase->hasAddress()) { return redirect('/inventory/sold')->withErrors(["You have already provided a collection address for this item."]); } if ($request->input('postal_address') == 'add') { $postal_address = new PostalAddress(); $postal_address->name = $request->input('name'); $postal_address->street1 = $request->input('street1'); $postal_address->street2 = $request->input('street2'); $postal_address->city = $request->input('city'); $postal_address->county = $request->input('county'); $postal_address->country = $request->input('country'); $postal_address->postcode = $request->input('postcode'); $postal_address->user()->associate(Auth::user()); if (!Iso3166::exists($request->input('country'))) { return redirect()->back()->withErrors(['country' => 'Please select a valid country.']); } if ($request->input('remember')) { $postal_address->save(); } } elseif (!($postal_address = PostalAddress::find($request->input('postal_address')))) { return redirect()->back()->withErrors(['postal_address' => 'Please select a valid postal address.']); } elseif ($postal_address->user != Auth::user()) { return redirect()->back()->withErrors(['postal_address' => 'You can only select your own postal addresses.']); } $purchase->useAddress($postal_address); $purchase->save(); $purchase->buyer->sendEmail('Your item is ready for collection', 'emails.item.collection', ['item_name' => $purchase->item->name, 'seller_name' => $purchase->name, 'seller_street1' => $purchase->street1, 'seller_street2' => $purchase->street2, 'seller_city' => $purchase->city, 'seller_county' => $purchase->county, 'seller_postcode' => $purchase->postcode, 'seller_country' => Iso3166::get($purchase->country)->name]); return redirect('/inventory/sold')->withStatus("Your collection address has been saved and sent to the buyer."); }