public function doDelete($id) { $territory = Territory::findOrFail($id); try { $territory->delete(); return redirect()->back()->with('message', 'Territory has been deleted successfully !'); } catch (ParseException $ex) { echo 'Failed to create new meal , with error message: ' . $ex->getMessage(); } }
public function saveAddress(Request $request, $territoryId = null, $addressId = null) { if (!$this->hasAccess($request)) { return Response()->json(['error' => 'Access denied.'], 500); } if (empty($territoryId)) { return ['error' => 'Territory not found', 'message' => 'Territory not found']; } if (Gate::denies('update-addresses')) { return Response()->json(['error' => 'Method not allowed'], 403); } if (!empty($addressId)) { try { $newAddress = $this->unTransform($request->all(), 'address'); $address = Address::findOrFail($addressId); $street = Street::findOrFail($address->street_id)->first(); // if(!$street->is_apt_building) // $newAddress['lat'] = 0; $data = $address->update($newAddress); } catch (Exception $e) { $data = ['error' => 'Address not updated', 'message' => $e->getMessage()]; } } else { // dd($request->all()); // dd($this->unTransform($request->all(), 'address')); try { // return ['data' => ['street_street' => empty($request->input('street_street')), 'all' => $request->all()]]; $transformedData = $this->unTransform($request->all(), 'address'); if (!empty($request->input('street_street'))) { $transformedData['street'] = [['street' => $request->input('street_street'), 'isAptBuilding' => $request->input('street_isAptBuilding')]]; } // return ['data' => $transformedData]; $territory = Territory::findOrFail($territoryId); if (!empty($transformedData['street'])) { $street = Street::where('street', $transformedData['street'][0]['street'])->first(); if (empty($street)) { $street = Street::create($transformedData['street'][0]); } // $addressWithStreet = ($address && $street) ? $address->street()->associate($street) : $address; $transformedData['street_id'] = $street ? $street->id : null; } $address = Address::where(['address' => $transformedData['address'], 'street_id' => $transformedData['street_id'], 'apt' => !empty($transformedData['apt']) ? $transformedData['apt'] : ''])->first(); // Address alredy exist? if (!empty($address)) { // If inactive, make it active // dd($address); if ($address['inactive']) { $address['inactive'] = 0; $data = $address->update(['inactive', $address['inactive']]); } // If in another territory? if ($territoryId != $address->territory_id) { $territoryBelongs = Territory::findOrFail($address->territory_id); // Error: "This address belongs to territory number []" return Response()->json(['error' => 'This address belongs to territory ' . $territoryBelongs->number . '. Please contact Admin about moving this address.', 'data' => ''], 202); } else { return Response()->json(['error' => 'This address already exists in this territory.', 'data' => ''], 202); } } else { $address = !empty($territory) ? $territory->addresses()->create($transformedData) : null; } $data = $address && !empty($transformedData['notes']) ? $address->notes()->create($transformedData['notes'][0]) : $address; } catch (Exception $e) { $data = ['error' => 'Address not added', 'message' => $e->getMessage()]; // {"error":"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '200-23' for key 'addresses_address_street_id_unique' (SQL: insert into `addresses` (`name`, `address`, `street_id`, `territory_id`, `updated_at`, `created_at`) values (Jean Marc, 200, 23, 34, 2016-01-14 18:36:49, 2016-01-14 18:36:49))"} } } return ['data' => $data]; }
protected function updateTerritory($territoryArray) { $newTerritory = $this->unTransform($territoryArray, 'territory'); $territory = Territory::findOrFail($territoryArray['id']); return $territory->update($newTerritory); }