diff --git a/src/app/acknowledgementReceipt/models/AcknowledgementReceiptModel.php b/src/app/acknowledgementReceipt/models/AcknowledgementReceiptModel.php index 38305406b7049382c24f942d3a5e7d354ca6eb84..72ed840bcc0cfb7e94a3402d1aa97b7b1ba1d6ce 100644 --- a/src/app/acknowledgementReceipt/models/AcknowledgementReceiptModel.php +++ b/src/app/acknowledgementReceipt/models/AcknowledgementReceiptModel.php @@ -70,7 +70,7 @@ class AcknowledgementReceiptModel public static function create(array $aArgs) { - ValidatorModel::notEmpty($aArgs, ['resId', 'type', 'format', 'userId', 'contactAddressId', 'docserverId', 'path', 'filename', 'fingerprint']); + ValidatorModel::notEmpty($aArgs, ['resId', 'type', 'format', 'userId', 'contactId', 'docserverId', 'path', 'filename', 'fingerprint']); ValidatorModel::intVal($aArgs, ['resId', 'userId']); ValidatorModel::stringType($aArgs, ['type', 'format', 'docserverId', 'path', 'filename', 'fingerprint']); @@ -84,7 +84,7 @@ class AcknowledgementReceiptModel 'type' => $aArgs['type'], 'format' => $aArgs['format'], 'user_id' => $aArgs['userId'], - 'contact_address_id' => $aArgs['contactAddressId'], + 'contact_id' => $aArgs['contactId'], 'creation_date' => 'CURRENT_TIMESTAMP', 'docserver_id' => $aArgs['docserverId'], 'path' => $aArgs['path'], diff --git a/src/app/action/controllers/AcknowledgementReceiptTrait.php b/src/app/action/controllers/AcknowledgementReceiptTrait.php index ed6e6126e9863181b01012bf5c934e53da34f531..b8499c4cd4b19a62cffb9aeb6be701b53df01df2 100644 --- a/src/app/action/controllers/AcknowledgementReceiptTrait.php +++ b/src/app/action/controllers/AcknowledgementReceiptTrait.php @@ -22,6 +22,7 @@ use Doctype\models\DoctypeModel; use Email\controllers\EmailController; use Entity\models\EntityModel; use Resource\models\ResModel; +use Resource\models\ResourceContactModel; use SrcCore\models\DatabaseModel; use SrcCore\models\ValidatorModel; use Template\models\TemplateModel; @@ -30,30 +31,22 @@ use User\models\UserModel; trait AcknowledgementReceiptTrait { - public static function createAcknowledgementReceipts(array $aArgs) + public static function createAcknowledgementReceipts(array $args) { - ValidatorModel::notEmpty($aArgs, ['resId']); - ValidatorModel::intVal($aArgs, ['resId']); + ValidatorModel::notEmpty($args, ['resId']); + ValidatorModel::intVal($args, ['resId']); - $resource = ResModel::getById(['select' => ['type_id', 'destination', 'subject', 'category_id', 'address_id', 'is_multicontacts'], 'resId' => $aArgs['resId']]); + $resource = ResModel::getById(['select' => ['type_id', 'destination', 'subject', 'category_id'], 'resId' => $args['resId']]); if (empty($resource) || $resource['category_id'] != 'incoming') { return []; } - $contactsToProcess = []; - if ($resource['is_multicontacts'] == 'Y') { - $multiContacts = DatabaseModel::select([ - 'select' => ['address_id'], - 'table' => ['contacts_res'], - 'where' => ['res_id = ?', 'mode = ?', 'address_id != ?'], - 'data' => [$aArgs['resId'], 'multi', 0] - ]); - foreach ($multiContacts as $multiContact) { - $contactsToProcess[] = $multiContact['address_id']; - } - } else { - $contactsToProcess[] = $resource['address_id']; - } + $contactsToProcess = ResourceContactModel::get([ + 'select' => ['item_id'], + 'where' => ['res_id = ?', 'type = ?', 'mode = ?'], + 'data' => [$args['resId'], 'contact', 'sender'] + ]); + $contactsToProcess = array_column($contactsToProcess, 'item_id'); foreach ($contactsToProcess as $contactToProcess) { if (empty($contactToProcess)) { @@ -88,9 +81,9 @@ trait AcknowledgementReceiptTrait $emailsToSend = []; DatabaseModel::beginTransaction(); foreach ($contactsToProcess as $contactToProcess) { - $contact = ContactModel::getByAddressId(['addressId' => $contactToProcess, 'select' => ['email', 'address_street', 'address_town', 'address_postal_code']]); + $contact = ContactModel::getById(['select' => ['email', 'address_street', 'address_town', 'address_postcode'], 'id' => $contactToProcess]); - if (empty($contact['email']) && (empty($contact['address_street']) || empty($contact['address_town']) || empty($contact['address_postal_code']))) { + if (empty($contact['email']) && (empty($contact['address_street']) || empty($contact['address_town']) || empty($contact['address_postcode']))) { DatabaseModel::rollbackTransaction(); return []; } @@ -102,7 +95,7 @@ trait AcknowledgementReceiptTrait } $mergedDocument = MergeController::mergeDocument([ 'content' => $template[0]['template_content'], - 'data' => ['resId' => $aArgs['resId'], 'contactAddressId' => $contactToProcess, 'userId' => $currentUser['id']] + 'data' => ['resId' => $args['resId'], 'contactId' => $contactToProcess, 'userId' => $currentUser['id']] ]); $format = 'html'; } else { @@ -112,7 +105,7 @@ trait AcknowledgementReceiptTrait } $mergedDocument = MergeController::mergeDocument([ 'path' => $pathToDocument, - 'data' => ['resId' => $aArgs['resId'], 'contactAddressId' => $contactToProcess, 'userId' => $currentUser['id']] + 'data' => ['resId' => $args['resId'], 'contactId' => $contactToProcess, 'userId' => $currentUser['id']] ]); $encodedDocument = ConvertPdfController::convertFromEncodedResource(['encodedResource' => $mergedDocument['encodedDocument']]); $mergedDocument['encodedDocument'] = $encodedDocument["encodedResource"]; @@ -137,11 +130,11 @@ trait AcknowledgementReceiptTrait } $id = AcknowledgementReceiptModel::create([ - 'resId' => $aArgs['resId'], + 'resId' => $args['resId'], 'type' => $templateAttachmentType, 'format' => $format, 'userId' => $currentUser['id'], - 'contactAddressId' => $contactToProcess, + 'contactId' => $contactToProcess, 'docserverId' => 'ACKNOWLEDGEMENT_RECEIPTS', 'path' => $storeResult['directory'], 'filename' => $storeResult['file_destination_name'], @@ -168,7 +161,7 @@ trait AcknowledgementReceiptTrait 'recipients' => [$email['email']], 'object' => '[AR] ' . (empty($resource['subject']) ? '' : substr($resource['subject'], 0, 100)), 'body' => base64_decode($email['encodedHtml']), - 'document' => ['id' => $aArgs['resId'], 'isLinked' => false, 'original' => true], + 'document' => ['id' => $args['resId'], 'isLinked' => false, 'original' => true], 'isHtml' => true, 'status' => 'TO_SEND' ], diff --git a/src/app/action/controllers/PreProcessActionController.php b/src/app/action/controllers/PreProcessActionController.php index bf068e5f0d275c043fe162ca0d7c7110f0822092..214696da2ca4e430e4519cf06d378eb782a91d5f 100755 --- a/src/app/action/controllers/PreProcessActionController.php +++ b/src/app/action/controllers/PreProcessActionController.php @@ -28,6 +28,7 @@ use Parameter\models\ParameterModel; use Resource\controllers\ResController; use Resource\controllers\ResourceListController; use Resource\models\ResModel; +use Resource\models\ResourceContactModel; use Respect\Validation\Validator; use Shipping\controllers\ShippingTemplateController; use Shipping\models\ShippingTemplateModel; @@ -35,7 +36,6 @@ use Slim\Http\Request; use Slim\Http\Response; use SrcCore\controllers\PreparedClauseController; use SrcCore\models\CoreConfigModel; -use SrcCore\models\DatabaseModel; use Template\models\TemplateModel; use User\models\UserEntityModel; use User\models\UserModel; @@ -150,11 +150,11 @@ class PreProcessActionController return $response->withJson(['entities' => $allEntities, 'users' => $users, 'keepDestForRedirection' => !empty($parameter['param_value_int'])]); } - public function checkAcknowledgementReceipt(Request $request, Response $response, array $aArgs) + public function checkAcknowledgementReceipt(Request $request, Response $response, array $args) { $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]); - $errors = ResourceListController::listControl(['groupId' => $aArgs['groupId'], 'userId' => $aArgs['userId'], 'basketId' => $aArgs['basketId'], 'currentUserId' => $currentUser['id']]); + $errors = ResourceListController::listControl(['groupId' => $args['groupId'], 'userId' => $args['userId'], 'basketId' => $args['basketId'], 'currentUserId' => $currentUser['id']]); if (!empty($errors['errors'])) { return $response->withStatus($errors['code'])->withJson(['errors' => $errors['errors']]); } @@ -206,7 +206,7 @@ class PreProcessActionController $data['resources'] = $resourcesForProcess; foreach ($data['resources'] as $resId) { - $resource = ResModel::getById(['select' => ['res_id', 'category_id', 'address_id', 'is_multicontacts', 'alt_identifier', 'type_id', 'destination'], 'resId' => $resId]); + $resource = ResModel::getById(['select' => ['res_id', 'category_id', 'alt_identifier', 'type_id', 'destination'], 'resId' => $resId]); if (empty($resource)) { $noSendAR['number'] += 1; @@ -290,25 +290,12 @@ class PreProcessActionController } //Verify associated contact - $contactsToProcess = []; - if ($resource['is_multicontacts'] == 'Y') { - $multiContacts = DatabaseModel::select([ - 'select' => ['address_id'], - 'table' => ['contacts_res'], - 'where' => ['res_id = ?', 'mode = ?', 'address_id != ?'], - 'data' => [$resId, 'multi', 0] - ]); - foreach ($multiContacts as $multiContact) { - $contactsToProcess[] = $multiContact['address_id']; - } - } else { - $contactsToProcess[] = $resource['address_id']; - } - if (empty($contactsToProcess)) { - $noSendAR['number'] += 1; - $noSendAR['list'][] = ['resId' => $resId, 'alt_identifier' => $resource['alt_identifier'], 'info' => _NO_CONTACT ]; - continue; - } + $contactsToProcess = ResourceContactModel::get([ + 'select' => ['item_id'], + 'where' => ['res_id = ?', 'type = ?', 'mode = ?'], + 'data' => [$resId, 'contact', 'sender'] + ]); + $contactsToProcess = array_column($contactsToProcess, 'item_id'); //Verify contact informations $email = 0; @@ -320,9 +307,9 @@ class PreProcessActionController continue 2; } - $contact = ContactModel::getByAddressId(['addressId' => $contactToProcess, 'select' => ['email', 'address_street', 'address_town', 'address_postal_code']]); + $contact = ContactModel::getById(['select' => ['*'], 'id' => $contactToProcess]); - if (empty($contact['email']) && (empty($contact['address_street']) || empty($contact['address_town']) || empty($contact['address_postal_code']))) { + if (empty($contact['email']) && (empty($contact['address_street']) || empty($contact['address_town']) || empty($contact['address_postcode']))) { $noSendAR['number'] += 1; $noSendAR['list'][] = ['resId' => $resId, 'alt_identifier' => $resource['alt_identifier'], 'info' => _USER_MISSING_INFORMATIONS ]; continue 2; @@ -336,7 +323,7 @@ class PreProcessActionController } else { $email += 1; } - } elseif (!empty($contact['address_street']) && !empty($contact['address_town']) && !empty($contact['address_postal_code'])) { + } elseif (!empty($contact['address_street']) && !empty($contact['address_town']) && !empty($contact['address_postcode'])) { if (!file_exists($pathToDocument) || !is_file($pathToDocument)) { $noSendAR['number'] += 1; $noSendAR['list'][] = ['resId' => $resId, 'alt_identifier' => $resource['alt_identifier'], 'info' => _NO_PAPER_TEMPLATE . ' \'' . $templateAttachmentType . '\' ' . _FOR_ENTITY . ' ' . $entity['entity_label'] ];