/** * Generate an address for a location * @param $location * @return string */ private function generateAddress($location) { $locationName = $location->locationKeyCode; $locationId = $location->id; $location = $this->location->findOrFail($locationId); $levelId = $location->level_id; $level = $this->level_building->findOrFail($levelId); $levelName = $level->levelName; $building_id = $level->building_id; $building = $this->building->findOrFail($building_id); $buildingName = $building->buildingKeyCode; $street_id = $building->street_id; $street = $this->street->findOrFail($street_id); $streetName = $street->streetKeyCode; $agent_id = $street->agent_id; $this->agent_id = $agent_id; //$agent = $this->agent->findOrFail($agent_id); $agentName = \App\Agent::where('user_id', '=', $agent_id)->first()->agentName; return $buildingName . $levelName . $locationName . "-" . $streetName . " ( " . $agentName . " ) "; }
public function product_search(Request $request) { $this->setMetadata('Tìm kiếm tin đăng'); $product_type_id = $request->input('product_type'); $province_id = $request->input('province'); $district_id = $request->input('district'); $ward_id = $request->input('ward'); $street_id = $request->input('street'); $price_range_id = $request->input('price'); $area_range_id = $request->input('area'); $incense_type_id = $request->input('incense'); $limit = Config::findByKey('rows_per_page_product')->first()->value; $searchDescription = ""; $product_type = null; $province = null; $district = null; $ward = null; $street = null; $query = Product::query(); try { if (isset($product_type_id) && $product_type_id != "") { $query->where('product_type_id', $product_type_id); $product_type = product_type::findOrFail($product_type_id); $searchDescription .= $product_type->name; } if (isset($province_id) && $province_id != "") { $query->where('province_id', $province_id); $province = Province::findOrFail($province_id); $searchDescription .= ", " . $province->name; } if (isset($district_id) && $district_id != "") { $query->where('district_id', $district_id); $district = District::findOrFail($district_id); $searchDescription .= ", " . $district->name; } if (isset($ward_id) && $ward_id != "") { $query->where('ward_id', $ward_id); $ward = Ward::findOrFail($ward_id); $searchDescription .= ", " . $ward->name; } if (isset($street_id) && $street_id != "") { $query->where('street_id', $street_id); $street = Street::findOrFail($street_id); $searchDescription .= ", " . $street->name; } } catch (Exception $e) { } $products = $query->paginate($limit); $product_types = Product_type::where('active', 1)->orderBy('priority')->orderBy('created_at', 'desc')->get(); $hcmProvince = Province::findByKey('ho-chi-minh')->first(); // dd($hcmProvince->id); $districtProduct = District::where('province_id', '=', $hcmProvince->id)->where('is_publish', 1)->orderBy('priority')->orderBy('created_at', 'desc')->get(); return view('frontend.sites1.product_search', ['products' => $products, 'product_types' => $product_types, 'districtProduct' => $districtProduct, 'searchDescription' => $searchDescription]); }
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]; }