Beispiel #1
0
 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);
 }