diff --git a/src/app/action/controllers/PreProcessActionController.php b/src/app/action/controllers/PreProcessActionController.php index f2161bdcb3343b77e531f3503bb1ada2428cc741..503283cacc3165eb6fa76ec3377aabfb77134068 100755 --- a/src/app/action/controllers/PreProcessActionController.php +++ b/src/app/action/controllers/PreProcessActionController.php @@ -1630,8 +1630,8 @@ class PreProcessActionController if (empty($registeredMail['deposit_id'])) { $registeredMails = RegisteredMailModel::getWithResources([ 'select' => ['alt_identifier', 'res_letterbox.res_id'], - 'where' => ['type = ?', 'issuing_site = ?', 'departure_date = ?', 'generated = ?', 'deposit_id is null'], - 'data' => [$registeredMail['type'], $registeredMail['issuing_site'], $registeredMail['departure_date'], true] + 'where' => ['type = ?', 'issuing_site = ?', 'departure_date = ?', 'warranty = ?', 'generated = ?', 'deposit_id is null'], + 'data' => [$registeredMail['type'], $registeredMail['issuing_site'], $registeredMail['departure_date'], $registeredMail['warranty'], true] ]); } else { $registeredMails = RegisteredMailModel::getWithResources([ diff --git a/src/app/registeredMail/controllers/RegisteredMailTrait.php b/src/app/registeredMail/controllers/RegisteredMailTrait.php index 615eebc720b6de352e2edf79630a47baa4c486eb..796123a6b181ad4cfc8908eb01d1fdda04b69723 100644 --- a/src/app/registeredMail/controllers/RegisteredMailTrait.php +++ b/src/app/registeredMail/controllers/RegisteredMailTrait.php @@ -13,7 +13,6 @@ namespace RegisteredMail\controllers; use Parameter\models\ParameterModel; -use RegisteredMail\controllers\RegisteredMailController; use RegisteredMail\models\IssuingSiteModel; use RegisteredMail\models\RegisteredMailModel; use RegisteredMail\models\RegisteredNumberRangeModel; @@ -223,11 +222,7 @@ trait RegisteredMailTrait ]; } if ($registeredMailsIdsByType === null) { - $registeredMailsIdsByType = [ - '2D' => [], - '2C' => [], - 'RW' => [] - ]; + $registeredMailsIdsByType = []; } if ($processedResources === null) { $processedResources = []; @@ -254,6 +249,8 @@ trait RegisteredMailTrait return ['errors' => ['Registered mail not generated for this resource']]; } + $uniqueType = $registeredMail['type'] . '_' . $registeredMail['issuing_site'] . '_' . $registeredMail['warranty'] . '_' . $registeredMail['departure_date']; + $site = IssuingSiteModel::getById(['id' => $registeredMail['issuing_site']]); $range = RegisteredNumberRangeModel::get([ @@ -268,12 +265,12 @@ trait RegisteredMailTrait if (empty($registeredMail['deposit_id'])) { $registeredMails = RegisteredMailModel::getWithResources([ 'select' => ['number', 'warranty', 'reference', 'recipient', 'res_letterbox.res_id', 'alt_identifier'], - 'where' => ['type = ?', 'issuing_site = ?', 'departure_date = ?', 'generated = ?'], - 'data' => [$registeredMail['type'], $registeredMail['issuing_site'], $registeredMail['departure_date'], true], + 'where' => ['type = ?', 'issuing_site = ?', 'departure_date = ?', 'warranty = ?', 'generated = ?'], + 'data' => [$registeredMail['type'], $registeredMail['issuing_site'], $registeredMail['departure_date'], $registeredMail['warranty'], true], 'orderBy' => ['number'] ]); - if (empty($currentDepositId) || !in_array($registeredMail['type'].'_'.$registeredMail['issuing_site'], $processedTypesSites)) { + if (empty($currentDepositId) || !in_array($uniqueType, $processedTypesSites)) { $lastDepositId = ParameterModel::getById(['id' => 'last_deposit_id', 'select' => ['param_value_int']]); $currentDepositId = $lastDepositId['param_value_int'] + 1; ParameterModel::update(['id' => 'last_deposit_id', 'param_value_int' => $currentDepositId]); @@ -308,13 +305,13 @@ trait RegisteredMailTrait $resIds = array_column($registeredMails, 'res_id'); $processedResources = array_merge($processedResources, $resIds); - $registeredMailsIdsByType[$registeredMail['type']] = $resIds; + $registeredMailsIdsByType[$uniqueType] = $resIds; $filesByType[$registeredMail['type']][] = base64_encode($resultPDF['fileContent']); if (!empty($currentDepositId)) { foreach ($registeredMailsIdsByType as $type => $ids) { - if (!empty($ids) && !in_array($type.'_'.$registeredMail['issuing_site'], $processedTypesSites)) { + if (!empty($ids) && !in_array($type, $processedTypesSites)) { RegisteredMailModel::update([ 'set' => ['deposit_id' => $currentDepositId], 'where' => ['res_id in (?)'], @@ -323,7 +320,7 @@ trait RegisteredMailTrait } } } - $processedTypesSites[] = $registeredMail['type'].'_'.$registeredMail['issuing_site']; + $processedTypesSites[] = $uniqueType; $finalFile = null; foreach ($filesByType as $type => $files) { diff --git a/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.html b/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.html index 4c42a57d6bb55298b1157eb66654cfdeddeca9d3..e0767e3d0c606132522bc28fd8722b88d6166daa 100644 --- a/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.html +++ b/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.html @@ -14,9 +14,9 @@ {{'lang.registeredMailsIncluded' | translate}} </p> <p> - <b>{{'lang.registeredMail_2C' | translate}}</b> : {{types['2C']}}<br> - <b>{{'lang.registeredMail_2D' | translate}}</b> : {{types['2D']}}<br> - <b>{{'lang.registeredMail_RW' | translate}}</b> : {{types['RW']}}<br> + <b>{{'lang.registeredMail_2C' | translate}}</b> : <span [innerHTML]="types['2C']"></span><br> + <b>{{'lang.registeredMail_2D' | translate}}</b> : <span [innerHTML]="types['2D']"></span><br> + <b>{{'lang.registeredMail_RW' | translate}}</b> : <span [innerHTML]="types['RW']"></span><br> </p> </div> <div *ngIf="cannotGenerate.length !== 0" class="alert-message alert-message-danger" role="alert"> diff --git a/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.ts b/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.ts index d92ee816602ffc54b4c23d1c7eae5ff42b561188..7dc118df1d7d60fc014db1fdef7f255d31d61d02 100644 --- a/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.ts +++ b/src/frontend/app/actions/print-deposit-list-action/print-deposit-list-action.component.ts @@ -42,6 +42,12 @@ export class PrintDepositListActionComponent implements OnInit { this.http.post('../rest/resourcesList/users/' + this.data.userId + '/groups/' + this.data.groupId + '/baskets/' + this.data.basketId + '/actions/' + this.data.action.id + '/checkPrintDepositList', { resources: this.data.resIds }) .subscribe((data: any) => { this.types = data.types; + + this.types['2C'] = this.functions.empty(this.types['2C']) ? this.translate.instant('lang.noneItalic') : this.types['2C']; + this.types['2D'] = this.functions.empty(this.types['2D']) ? this.translate.instant('lang.noneItalic') : this.types['2D']; + this.types['RW'] = this.functions.empty(this.types['RW']) ? this.translate.instant('lang.noneItalic') : this.types['RW']; + + this.canGenerate = data.canGenerate; this.cannotGenerate = data.cannotGenerate; this.loadingInit = false; diff --git a/src/lang/lang-en.json b/src/lang/lang-en.json index 3a2b51a1cb04c6173234a2b136ec5ef60f86b13b..99f0f06304a281792099773e4cb5e1ac53be7792 100644 --- a/src/lang/lang-en.json +++ b/src/lang/lang-en.json @@ -1914,7 +1914,7 @@ "argumentPhoneNotCorrect": "Argument phone is not correct for a user.", "authorizedRoutesInformations": "One route per row. Routes documentation", "canNotDisabledField": "This field can not be disabled because it is empty and mandatory", - "registeredMailsIncludedExplication": "All registered mails with the same desired shipping date, same type and same issuing site will be included in the deposit list.", + "registeredMailsIncludedExplication": "All registered mails with the same desired shipping date, same type and same issuing site will be included in the deposit list (If a deposit list has already been generated, the same list will be generated again).", "registeredMailsIncluded": "Registered mails numbers included :", "cannotGenerateDepositListForMails": "Imposible to generate for the following registered mails :", "accountNumberAlreadyUsed": "Account number is already used by another issuing site", @@ -1985,5 +1985,6 @@ "argumentNotInteger": "An argument is not an integer for a contact", "argumentNotDate": "An argument is not a date for a contact", "argumentNotString": "An argument is not a string for a contact", - "argumentMandatoryEmpty": "Mandatory argument is empty for a contact" + "argumentMandatoryEmpty": "Mandatory argument is empty for a contact", + "noneItalic": "<em>None</em>" } diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index b5a65180c551aa7d556ab58678a3081aecc4e6a6..a87d40886d4e845599dc9da9bcb1694a61358a65 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -1946,7 +1946,7 @@ "argumentPhoneNotCorrect": "La donnée phone ne correspond pas à un format de numéro de téléphone valide pour un utilisateur.", "authorizedRoutesInformations": "Une route par ligne. Documentation des routes", "canNotDisabledField": "Le champ ne peut pas être désactivé car il est vide et obligatoire", - "registeredMailsIncludedExplication": "Tous les recommandés avec la même date d'expédition souhaitée, le même type et le même site émetteur seront inclus dans le bordereau.", + "registeredMailsIncludedExplication": "Tous les recommandés avec la même date d'expédition souhaitée, le même type et le même site émetteur seront inclus dans le bordereau (Si un bordereau a déjà été généré, le même bordereau sera regénéré).", "registeredMailsIncluded": "Numéros de recommandés inclus :", "cannotGenerateDepositListForMails": "Génération impossible pour les recommandés suivants :", "accountNumberAlreadyUsed": "Le N° COCLICO est déjà utilisé par un autre site émetteur", @@ -1983,5 +1983,6 @@ "argumentNotInteger": "Une donnée n'est pas un entier pour un contact", "argumentNotDate": "Une donnée n'est pas une date pour un contact", "argumentNotString": "Une donnée n'est pas une chaîne de caractères pour un contact", - "argumentMandatoryEmpty": "Une donnée obligatoire est vide pour un contact" + "argumentMandatoryEmpty": "Une donnée obligatoire est vide pour un contact", + "noneItalic": "<em>Aucun</em>" }