This commit is contained in:
Tykayn 2025-06-03 16:19:07 +02:00 committed by tykayn
parent 9390a38adf
commit 248140d78a
7 changed files with 92 additions and 73 deletions

View file

@ -209,50 +209,41 @@ final class AdminController extends AbstractController
}
// pour chaque résultat, vérifier que l'on a pas déjà un commerce avec le même osm_object_id
$results = array_filter($results, function($commerce) use ($osm_object_ids) {
$new_places_list = array_filter($results, function($commerce) use ($osm_object_ids) {
return !in_array($commerce['id'], $osm_object_ids);
});
$existing_places_list = array_filter($results, function($commerce) use ($osm_object_ids) {
return in_array($commerce['id'], $osm_object_ids);
});
// on crée un commerce pour chaque résultat qui reste
foreach ($results as $result) {
$commerce = new Place();
foreach ($new_places_list as $np) {
$new_place = new Place();
if (isset($result['tags']['amenity'])) {
$commerce->setMainTag('amenity='.$result['tags']['amenity']);
}
if (isset($result['tags']['shop'])) {
$commerce->setMainTag('shop='.$result['tags']['shop']);
}
if (isset($result['tags']['tourism'])) {
$commerce->setMainTag('tourism='.$result['tags']['tourism']);
}
$commerce->setOsmId($result['id'])
->setOsmKind($result['type'])
->setName($result['name'])
->setZipCode($zip_code)
->setEmail($result['email'])
$new_place
->setUuidForUrl($this->motocultrice->uuid_create())
->setOptedOut(false)
->setDead(false)
->setModifiedDate(new \DateTime())
->setStats($stats)
->setDead(false)
->setOptedOut(false)
->setAskedHumainsSupport(false)
->setLastContactAttemptDate(null)
->setStats($stats)
->setNote($result['tags'] && isset($result['tags']['note']) ? isset($result['tags']['note']) : null)
->setHasOpeningHours($result['tags'] && isset($result['tags']['opening_hours']) ? isset($result['tags']['opening_hours']) : null)
->setHasAddress(($result['tags'] && isset($result['tags']['address']) || $result['tags'] && isset($result['tags']['contact:address'])) ? isset($result['tags']['address']) : null)
->setHasWebsite($result['tags'] && isset($result['tags']['website']) ? $result['tags']['website'] : null)
->setHasWheelchair($result['tags'] && isset($result['tags']['wheelchair']) ? $result['tags']['wheelchair'] : null)
->setHasNote($result['tags'] && isset($result['tags']['note']) ? $result['tags']['note'] : null)
->setNoteContent($result['tags'] && isset($result['tags']['note']) ? $result['tags']['note'] : null)
;
$this->entityManager->persist($commerce);
->update_place_from_overpass_data($new_place);
$this->entityManager->persist($new_place);
}
// Mise à jour des commerces existants avec les données Overpass
foreach ($commerces as $existing_places_list) {
foreach ($results as $result) {
if ($existing_places_list->getOsmId() == $result['id'] && $existing_places_list->getOsmKind() == $result['type']) {
$existing_places_list->update_place_from_overpass_data($result);
$this->entityManager->persist($existing_places_list);
break;
}
}
}
$this->entityManager->flush();
$commerces = $this->entityManager->getRepository(Place::class)->findBy(['zip_code' => $zip_code]);
$stats = $this->entityManager->getRepository(Stats::class)->findOneBy(['zone' => $zip_code]);
return $this->render('admin/labourage_results.html.twig', [
@ -365,7 +356,7 @@ final class AdminController extends AbstractController
$response->headers->set('Content-Type', 'text/csv');
$slug_name = str_replace(' ', '-', $stats->getName());
$response->headers->set('Content-Disposition', 'attachment; filename="osm-commerces-export_' . $zip_code . '_' . $slug_name . '_' . date('Y-m-d_H-i-s') . '.csv"');
return $response;