diff --git a/rest/index.php b/rest/index.php index 92e997d1a40f6d02a6c4dda8cac1fd8705d6e7b8..4b64ff4b637ad4d5d423cbff2ffb131b4b1b08cd 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 49c5ed3b2c9960bc927c253121f115a5f133393a..f398b5240581d48c8b8f0041bcc414a281be52a2 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 d7e002116f78ec8a55414cdb17d15a7890ae9e59..4cbf893078839833218f91ae24a0d3139691b38d 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();