From 224d872f2b46ce6290398089c8dbc417d710d62e Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Thu, 19 Dec 2019 11:27:19 +0100 Subject: [PATCH] FEAT #12635 TIME 0:35 Autocomplete company --- rest/index.php | 1 + .../contact/controllers/ContactController.php | 4 +--- .../controllers/AutoCompleteController.php | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/rest/index.php b/rest/index.php index 92e997d1a40..4b64ff4b637 100755 --- a/rest/index.php +++ b/rest/index.php @@ -78,6 +78,7 @@ $app->get('/autocomplete/users', \SrcCore\controllers\AutoCompleteController::cl $app->get('/autocomplete/maarchParapheurUsers', \SrcCore\controllers\AutoCompleteController::class . ':getMaarchParapheurUsers'); $app->get('/autocomplete/correspondents', \SrcCore\controllers\AutoCompleteController::class . ':getCorrespondents'); $app->get('/autocomplete/contacts/groups', \SrcCore\controllers\AutoCompleteController::class . ':getContactsForGroups'); +$app->get('/autocomplete/contacts/company', \SrcCore\controllers\AutoCompleteController::class . ':getContactsCompany'); $app->get('/autocomplete/users/administration', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForAdministration'); $app->get('/autocomplete/users/visa', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForVisa'); $app->get('/autocomplete/entities', \SrcCore\controllers\AutoCompleteController::class . ':getEntities'); diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php index 49c5ed3b2c9..f398b524058 100755 --- a/src/app/contact/controllers/ContactController.php +++ b/src/app/contact/controllers/ContactController.php @@ -812,8 +812,6 @@ class ContactController $mappingFields = [ 'civility' => 'civility', 'firstname' => 'firstname', - 'lastname' => 'lastname', - 'company' => 'company', 'department' => 'department', 'function' => 'function', 'address_number' => 'addressNumber', @@ -827,7 +825,7 @@ class ContactController 'phone' => 'phone', 'notes' => 'notes' ]; - $mandatoryParameters = ContactParameterModel::get(['select' => ['identifier'], 'where' => ['mandatory = ?'], 'data' => [true]]); + $mandatoryParameters = ContactParameterModel::get(['select' => ['identifier'], 'where' => ['mandatory = ?', 'identifier not in (?)'], 'data' => [true, ['lastname', 'company']]]); foreach ($mandatoryParameters as $mandatoryParameter) { if (strpos($mandatoryParameter['identifier'], 'contactCustomField_') !== false) { $customId = explode('_', $mandatoryParameter['identifier'])[1]; diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php index d7e002116f7..4cbf8930788 100755 --- a/src/core/controllers/AutoCompleteController.php +++ b/src/core/controllers/AutoCompleteController.php @@ -544,6 +544,30 @@ class AutoCompleteController return $response->withJson($data); } + public static function getContactsCompany(Request $request, Response $response) + { + $queryParams = $request->getQueryParams(); + + if (!Validator::stringType()->notEmpty()->validate($queryParams['search'])) { + return $response->withStatus(400)->withJson(['errors' => 'Query params search is empty']); + } + + $fields = AutoCompleteController::getUnsensitiveFieldsForRequest(['fields' => ['company']]); + $contacts = ContactModel::get([ + 'select' => [ + 'id', 'company', 'address_number as "addressNumber"', 'address_street as "addressStreet"', + 'address_additional1 as "addressAdditional1"', 'address_additional2 as "addressAdditional2"', 'address_postcode as "addressPostcode"', + 'address_town as "addressTown"', 'address_country as "addressCountry"' + ], + 'where' => ['enabled = ?', $fields], + 'data' => [true, $queryParams['search'] . '%'], + 'orderBy' => ['company', 'lastname'], + 'limit' => 1 + ]); + + return $response->withJson($contacts); + } + public static function getBanAddresses(Request $request, Response $response) { $data = $request->getQueryParams(); -- GitLab