diff --git a/migration/20.10/2010.sql b/migration/20.10/2010.sql index 72f05d45611e4f88d17c5b43927c87590ca145cf..1d50afa7f52a1eecd64cc1675930cde3cf9bf68f 100755 --- a/migration/20.10/2010.sql +++ b/migration/20.10/2010.sql @@ -222,7 +222,6 @@ CREATE TABLE IF NOT EXISTS registered_mail_number_range ( range_end INTEGER NOT NULL, creator INTEGER NOT NULL, creation_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - site_id INTEGER NOT NULL, status CHARACTER VARYING(10) NOT NULL, current_number INTEGER, CONSTRAINT registered_mail_number_range_pkey PRIMARY KEY (id), diff --git a/rest/index.php b/rest/index.php index 518e93141813d21814f35349e6c193b7eca9a377..c4b176aa8af84a8fc0f0598031c5271d624b5609 100755 --- a/rest/index.php +++ b/rest/index.php @@ -629,7 +629,6 @@ $app->post('/registeredMail/ranges', \RegisteredMail\controllers\RegisteredNumbe $app->put('/registeredMail/ranges/{id}', \RegisteredMail\controllers\RegisteredNumberRangeController::class . ':update'); $app->delete('/registeredMail/ranges/{id}', \RegisteredMail\controllers\RegisteredNumberRangeController::class . ':delete'); $app->get('/registeredMail/ranges/type/{type}/last', \RegisteredMail\controllers\RegisteredNumberRangeController::class . ':getLastNumberByType'); -$app->get('/registeredMail/sites/type/{type}', \RegisteredMail\controllers\IssuingSiteController::class . ':getByType'); $app->get('/registeredMail/countries', \RegisteredMail\controllers\RegisteredMailController::class . ':getCountries'); diff --git a/sql/data_fr.sql b/sql/data_fr.sql index 7e578c6b3ebbda7b4f7c602de19bddbaaa6e87ad..8a640f5f2267ace2dd15279941b2ddf3d10e3081 100755 --- a/sql/data_fr.sql +++ b/sql/data_fr.sql @@ -1760,6 +1760,6 @@ SELECT setval('registered_mail_issuing_sites_id_seq', (select max(id)+1 from reg INSERT INTO registered_mail_issuing_sites_entities (site_id, entity_id) VALUES (1, 6); INSERT INTO registered_mail_issuing_sites_entities (site_id, entity_id) VALUES (1, 13); -INSERT INTO registered_mail_number_range (type, tracking_account_number, range_start, range_end, creator, creation_date, site_id, status) VALUES ('2C', 'SuiviNumber', 1, 10, 23, '2020-09-14 14:38:09.008644', 1, 'OK'); -INSERT INTO registered_mail_number_range (type, tracking_account_number, range_start, range_end, creator, creation_date, site_id, status) VALUES ('RW', 'SuiviNumberInternational', 1, 10, 23, '2020-09-14 14:39:32.972626', 1, 'OK'); -INSERT INTO registered_mail_number_range (type, tracking_account_number, range_start, range_end, creator, creation_date, site_id, status) VALUES ('2D', 'suiviNumber', 1, 10, 23, '2020-09-14 14:39:16.779322', 1, 'OK'); +INSERT INTO registered_mail_number_range (type, tracking_account_number, range_start, range_end, creator, creation_date, status) VALUES ('2C', 'SuiviNumber', 1, 10, 23, '2020-09-14 14:38:09.008644', 'OK'); +INSERT INTO registered_mail_number_range (type, tracking_account_number, range_start, range_end, creator, creation_date, status) VALUES ('RW', 'SuiviNumberInternational', 1, 10, 23, '2020-09-14 14:39:32.972626', 'OK'); +INSERT INTO registered_mail_number_range (type, tracking_account_number, range_start, range_end, creator, creation_date, status) VALUES ('2D', 'suiviNumber', 1, 10, 23, '2020-09-14 14:39:16.779322', 'OK'); diff --git a/sql/structure.sql b/sql/structure.sql index 8ccc6a0bc975bd263811c852008333df591ced3c..e8af8e0d4067fd1546794c4b81d6770b14361258 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -1438,7 +1438,6 @@ CREATE TABLE IF NOT EXISTS registered_mail_number_range ( range_end INTEGER NOT NULL, creator INTEGER NOT NULL, creation_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, - site_id INTEGER NOT NULL, status CHARACTER VARYING(10) NOT NULL, current_number INTEGER, CONSTRAINT registered_mail_number_range_pkey PRIMARY KEY (id), diff --git a/src/app/registeredMail/controllers/IssuingSiteController.php b/src/app/registeredMail/controllers/IssuingSiteController.php index 99808dd66e7838a337f3412f866831dcdc20433e..0e5d3bc614d00af3630d9dc962f9e4b1077f2ce8 100644 --- a/src/app/registeredMail/controllers/IssuingSiteController.php +++ b/src/app/registeredMail/controllers/IssuingSiteController.php @@ -17,7 +17,7 @@ use Group\controllers\PrivilegeController; use History\controllers\HistoryController; use RegisteredMail\models\IssuingSiteEntitiesModel; use RegisteredMail\models\IssuingSiteModel; -use RegisteredMail\models\RegisteredNumberRangeModel; +use RegisteredMail\models\RegisteredMailModel; use Respect\Validation\Validator; use Slim\Http\Request; use Slim\Http\Response; @@ -29,7 +29,6 @@ class IssuingSiteController $sites = IssuingSiteModel::get(); foreach ($sites as $key => $site) { - $ranges = RegisteredNumberRangeModel::get(['where' => ['site_id = ?'], 'data' => [$site['id']]]); $sites[$key] = [ 'id' => $site['id'], 'label' => $site['label'], @@ -41,9 +40,17 @@ class IssuingSiteController 'addressAdditional2' => $site['address_additional2'], 'addressPostcode' => $site['address_postcode'], 'addressTown' => $site['address_town'], - 'addressCountry' => $site['address_country'], - 'countRanges' => count($ranges) + 'addressCountry' => $site['address_country'] ]; + + $entities = IssuingSiteEntitiesModel::get([ + 'select' => ['entity_id'], + 'where' => ['site_id = ?'], + 'data' => [$site['id']] + ]); + + $entities = array_column($entities, 'entity_id'); + $sites[$key]['entities'] = $entities; } return $response->withJson(['sites' => $sites]); @@ -265,12 +272,13 @@ class IssuingSiteController return $response->withStatus(204); } - $ranges = RegisteredNumberRangeModel::get([ - 'where' => ['site_id = ?', 'status = ?'], - 'data' => [$args['id'], 'OK'] + $issuingSite = RegisteredMailModel::get([ + 'select' => [1], + 'where' => ['issuing_site = ?'], + 'data' => [$args['id']] ]); - if (!empty($ranges)) { - return $response->withStatus(400)->withJson(['errors' => 'Cannot delete site : site is used by an active range', 'lang' => 'siteIsUsedByActiveRange']); + if (!empty($issuingSite)) { + return $response->withStatus(400)->withJson(['errors' => 'Cannot delete site : site is already used by a registered mail', 'lang' => 'siteIsUsedByRegisteredMail']); } IssuingSiteEntitiesModel::delete([ @@ -294,45 +302,4 @@ class IssuingSiteController return $response->withStatus(204); } - - public function getByType(Request $request, Response $response, array $args) - { - if (!PrivilegeController::hasPrivilege(['privilegeId' => 'admin_registered_mail', 'userId' => $GLOBALS['id']])) { - return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); - } - - $sitesIds = RegisteredNumberRangeModel::get([ - 'select' => ['site_id'], - 'where' => ['type = ?', 'status = ?'], - 'data' => [$args['type'], 'OK'] - ]); - - if (empty($sitesIds)) { - return $response->withStatus(200)->withJson(['sites' => []]); - } - $sitesIds = array_column($sitesIds, 'site_id'); - - $sites = IssuingSiteModel::get([ - 'where' => ['id in (?)'], - 'data' => [$sitesIds] - ]); - - foreach ($sites as $key => $site) { - $sites[$key] = [ - 'id' => $site['id'], - 'label' => $site['label'], - 'postOfficeLabel' => $site['post_office_label'], - 'accountNumber' => $site['account_number'], - 'addressNumber' => $site['address_number'], - 'addressStreet' => $site['address_street'], - 'addressAdditional1' => $site['address_additional1'], - 'addressAdditional2' => $site['address_additional2'], - 'addressPostcode' => $site['address_postcode'], - 'addressTown' => $site['address_town'], - 'addressCountry' => $site['address_country'] - ]; - } - - return $response->withJson(['sites' => $sites]); - } } diff --git a/src/app/registeredMail/controllers/RegisteredMailController.php b/src/app/registeredMail/controllers/RegisteredMailController.php index fcbbe5ef1c5710e3e99522a8940e689628307794..983def5fd627841c3cb9dd2d39fad00e17964e6d 100644 --- a/src/app/registeredMail/controllers/RegisteredMailController.php +++ b/src/app/registeredMail/controllers/RegisteredMailController.php @@ -92,8 +92,8 @@ class RegisteredMailController if ($registeredMail['type'] != $body['type']) { $range = RegisteredNumberRangeModel::get([ 'select' => ['id', 'range_end', 'current_number'], - 'where' => ['type = ?', 'site_id = ?', 'status = ?'], - 'data' => [$body['type'], $registeredMail['issuing_site'], 'OK'] + 'where' => ['type = ?', 'status = ?'], + 'data' => [$body['type'], 'OK'] ]); if (empty($range)) { return $response->withStatus(400)->withJson(['errors' => 'No range found']); @@ -329,7 +329,7 @@ class RegisteredMailController } if ($args['type'] != 'RW') { - // TODO INFO FEUILLE 1 : GAUCHE + // FEUILLE 1 : GAUCHE $pdf->SetXY(50, 15); $pdf->cell(0, 0, $registeredMailNumber); @@ -372,7 +372,7 @@ class RegisteredMailController $pdf->cell(0, 0, $args['recipient'][6]); - // TODO INFO FEUILLE 1 : DROITE + // FEUILLE 1 : DROITE $y = 40; $pdf->SetXY(130, $y); $pdf->cell(0, 0, $args['recipient'][1]); @@ -403,7 +403,7 @@ class RegisteredMailController $pdf->Image('@'.$barcodeObj->getPngData(), 140, 75, 60, 12, '', '', '', false, 300); - //TODO INFO 2eme feuille + // 2eme feuille $pdf->SetXY(63, 100); $pdf->cell(0, 0, $registeredMailNumber); $barcodeObj = $barcode->getBarcodeObj('C128', $registeredMailNumber, -4, -100); @@ -474,7 +474,7 @@ class RegisteredMailController $pdf->cell(0, 0, $args['sender'][6]); - //TODO INFO 3eme feuille + // 3eme feuille if ($args['type'] == '2C') { $pdf->SetXY(37, 205); $pdf->cell(0, 0, $registeredMailNumber); diff --git a/src/app/registeredMail/controllers/RegisteredMailTrait.php b/src/app/registeredMail/controllers/RegisteredMailTrait.php index 5a1aed38eb95cea1d0cabadb69fc20081059e437..c942b22dba0088e216b2742cc58acf54a7be1376 100644 --- a/src/app/registeredMail/controllers/RegisteredMailTrait.php +++ b/src/app/registeredMail/controllers/RegisteredMailTrait.php @@ -56,8 +56,8 @@ trait RegisteredMailTrait $range = RegisteredNumberRangeModel::get([ 'select' => ['id', 'range_end', 'current_number'], - 'where' => ['type = ?', 'site_id = ?', 'status = ?'], - 'data' => [$args['data']['type'], $args['data']['issuingSiteId'], 'OK'] + 'where' => ['type = ?', 'status = ?'], + 'data' => [$args['data']['type'], 'OK'] ]); if (empty($range)) { return ['errors' => ['No range found']]; @@ -265,8 +265,8 @@ trait RegisteredMailTrait $site = IssuingSiteModel::getById(['id' => $registeredMail['issuing_site']]); $range = RegisteredNumberRangeModel::get([ - 'where' => ['site_id = ?', 'type = ?', 'range_start <= ?', 'range_end >= ?'], - 'data' => [$registeredMail['issuing_site'], $registeredMail['type'], $registeredMail['number'], $registeredMail['number']] + 'where' => ['type = ?', 'range_start <= ?', 'range_end >= ?'], + 'data' => [$registeredMail['type'], $registeredMail['number'], $registeredMail['number']] ]); if (empty($range[0])) { return ['errors' => ['No range found']]; diff --git a/src/app/registeredMail/controllers/RegisteredNumberRangeController.php b/src/app/registeredMail/controllers/RegisteredNumberRangeController.php index 369f1407b2c52337dc21acc56bb04c88d56b9d4f..a3e1c52a4da1631a6b0edc78db91679c00032a55 100644 --- a/src/app/registeredMail/controllers/RegisteredNumberRangeController.php +++ b/src/app/registeredMail/controllers/RegisteredNumberRangeController.php @@ -15,8 +15,6 @@ namespace RegisteredMail\controllers; use Group\controllers\PrivilegeController; use History\controllers\HistoryController; -use RegisteredMail\models\IssuingSiteEntitiesModel; -use RegisteredMail\models\IssuingSiteModel; use RegisteredMail\models\RegisteredNumberRangeModel; use Respect\Validation\Validator; use Slim\Http\Request; @@ -35,7 +33,6 @@ class RegisteredNumberRangeController $fullness = $fullness < 0 ? 0 : $fullness; $fullness = round($fullness, 2); - $site = IssuingSiteModel::getById(['id' => $range['site_id']]); $ranges[$key] = [ 'id' => $range['id'], 'registeredMailType' => $range['type'], @@ -45,22 +42,9 @@ class RegisteredNumberRangeController 'creator' => $range['creator'], 'creationDate' => $range['creation_date'], 'status' => $range['status'], - 'customerAccountNumber' => $site['account_number'], 'currentNumber' => $range['current_number'], 'fullness' => $fullness, - 'siteId' => $range['site_id'], - 'label' => $site['label'] ]; - - $entities = IssuingSiteEntitiesModel::get([ - 'select' => ['entity_id'], - 'where' => ['site_id = ?'], - 'data' => [$site['id']] - ]); - - $entities = array_column($entities, 'entity_id'); - - $ranges[$key]['entities'] = $entities; } return $response->withJson(['ranges' => $ranges]); @@ -78,8 +62,6 @@ class RegisteredNumberRangeController return $response->withStatus(400)->withJson(['errors' => 'Range not found']); } - $site = IssuingSiteModel::getById(['id' => $range['site_id']]); - $fullness = $range['current_number'] - $range['range_start']; $rangeSize = $range['range_end'] - $range['range_start']; $fullness = ($fullness / $rangeSize) * 100; @@ -95,11 +77,8 @@ class RegisteredNumberRangeController 'creator' => $range['creator'], 'creationDate' => $range['creation_date'], 'status' => $range['status'], - 'customerAccountNumber' => $site['account_number'], 'currentNumber' => $range['current_number'], - 'fullness' => $fullness, - 'siteId' => $range['site_id'], - 'label' => $site['label'] + 'fullness' => $fullness ]; return $response->withJson(['range' => $range]); @@ -125,18 +104,10 @@ class RegisteredNumberRangeController if (!Validator::intVal()->notEmpty()->validate($body['rangeEnd'])) { return $response->withStatus(400)->withJson(['errors' => 'Body rangeEnd is empty or not an integer']); } - if (!Validator::intVal()->notEmpty()->validate($body['siteId'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body siteId is empty or not an integer']); - } if ($body['rangeStart'] >= $body['rangeEnd']) { return $response->withStatus(400)->withJson(['errors' => 'Body rangeStart cannot be larger or equal than rangeEnd', 'lang' => 'rangeStartLargerThanRangeEnd']); } - $site = IssuingSiteModel::getById(['id' => $body['siteId']]); - if (empty($site)) { - return $response->withStatus(400)->withJson(['errors' => 'Body siteId does not exist']); - } - $ranges = RegisteredNumberRangeModel::get([ 'select' => [1], 'where' => ['tracking_account_number = ?'], @@ -148,8 +119,8 @@ class RegisteredNumberRangeController $ranges = RegisteredNumberRangeModel::get([ 'select' => ['range_start', 'range_end'], - 'where' => ['type = ?', 'site_id = ?', 'status = ?'], - 'data' => [$body['registeredMailType'], $body['siteId'], 'OK'], + 'where' => ['type = ?', 'status = ?'], + 'data' => [$body['registeredMailType'], 'OK'], 'orderBy' => ['range_end desc'] ]); @@ -166,7 +137,6 @@ class RegisteredNumberRangeController 'rangeStart' => $body['rangeStart'], 'rangeEnd' => $body['rangeEnd'], 'creator' => $GLOBALS['id'], - 'siteId' => $body['siteId'], 'status' => empty($body['status']) ? 'SPD' : $body['status'], 'currentNumber' => null ]); @@ -208,18 +178,10 @@ class RegisteredNumberRangeController if (!Validator::intVal()->notEmpty()->validate($body['rangeEnd'])) { return $response->withStatus(400)->withJson(['errors' => 'Body rangeEnd is empty or not an integer']); } - if (!Validator::intVal()->notEmpty()->validate($body['siteId'])) { - return $response->withStatus(400)->withJson(['errors' => 'Body siteId is empty or not an integer']); - } if ($body['rangeStart'] >= $body['rangeEnd']) { return $response->withStatus(400)->withJson(['errors' => 'Body rangeStart cannot be larger or equal than rangeEnd', 'lang' => 'rangeStartLargerThanRangeEnd']); } - $site = IssuingSiteModel::getById(['id' => $body['siteId']]); - if (empty($site)) { - return $response->withStatus(400)->withJson(['errors' => 'Body siteId does not exist']); - } - $ranges = RegisteredNumberRangeModel::get([ 'select' => [1], 'where' => ['tracking_account_number = ?', 'id != ?'], @@ -231,8 +193,8 @@ class RegisteredNumberRangeController $ranges = RegisteredNumberRangeModel::get([ 'select' => ['range_start', 'range_end'], - 'where' => ['type = ?', 'id != ?', 'site_id = ?'], - 'data' => [$body['registeredMailType'], $args['id'], $range['site_id']], + 'where' => ['type = ?', 'id != ?'], + 'data' => [$body['registeredMailType'], $args['id']], 'orderBy' => ['range_end desc'] ]); @@ -249,8 +211,8 @@ class RegisteredNumberRangeController 'status' => 'END', 'current_number' => null ], - 'where' => ['type = ?', 'status = ?', 'site_id = ?'], - 'data' => [$body['registeredMailType'], 'OK', $range['site_id']] + 'where' => ['type = ?', 'status = ?'], + 'data' => [$body['registeredMailType'], 'OK'] ]); } @@ -280,7 +242,6 @@ class RegisteredNumberRangeController 'tracking_account_number' => $body['trackerNumber'], 'range_start' => $body['rangeStart'], 'range_end' => $body['rangeEnd'], - 'site_id' => $body['siteId'], 'status' => $body['status'], 'current_number' => $currentNumber ], @@ -289,12 +250,12 @@ class RegisteredNumberRangeController ]); HistoryController::add([ - 'tableName' => 'issuing_sites', + 'tableName' => 'registered_number_range', 'recordId' => $args['id'], 'eventType' => 'UP', 'info' => _REGISTERED_NUMBER_RANGE_UPDATED . " : {$args['id']}", - 'moduleId' => 'issuing_sites', - 'eventId' => 'issuingSitesModification', + 'moduleId' => 'registered_number_range', + 'eventId' => 'registered_number_rangeModification', ]); return $response->withStatus(204); diff --git a/src/app/registeredMail/models/RegisteredNumberRangeModel.php b/src/app/registeredMail/models/RegisteredNumberRangeModel.php index c237a7b289d513c08b9fb5e9a167247893e734e7..ed873d64bc3141365a419b1da52074a049f222d2 100644 --- a/src/app/registeredMail/models/RegisteredNumberRangeModel.php +++ b/src/app/registeredMail/models/RegisteredNumberRangeModel.php @@ -38,25 +38,25 @@ class RegisteredNumberRangeModel ValidatorModel::intVal($args, ['id']); ValidatorModel::arrayType($args, ['select']); - $site = DatabaseModel::select([ + $range = DatabaseModel::select([ 'select' => empty($args['select']) ? ['*'] : $args['select'], 'table' => ['registered_mail_number_range'], 'where' => ['id = ?'], 'data' => [$args['id']] ]); - if (empty($site[0])) { + if (empty($range[0])) { return []; } - return $site[0]; + return $range[0]; } public static function create(array $args) { - ValidatorModel::notEmpty($args, ['type', 'rangeStart', 'rangeEnd', 'siteId', 'status']); + ValidatorModel::notEmpty($args, ['type', 'rangeStart', 'rangeEnd', 'status']); ValidatorModel::stringType($args, ['type', 'status']); - ValidatorModel::intVal($args, ['rangeStart', 'rangeEnd', 'siteId', 'currentNumber']); + ValidatorModel::intVal($args, ['rangeStart', 'rangeEnd', 'currentNumber']); $nextSequenceId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'registered_mail_number_range_id_seq']); @@ -69,7 +69,6 @@ class RegisteredNumberRangeModel 'range_start' => $args['rangeStart'], 'range_end' => $args['rangeEnd'], 'creator' => $args['creator'], - 'site_id' => $args['siteId'], 'current_number' => $args['currentNumber'], 'status' => $args['status'] ] diff --git a/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts b/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts index 7cc3e09076a19d5519f5eb297848fc5b5d40f925..15eecc033322ead27bdc77198c515c8f378fd296 100644 --- a/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts +++ b/src/frontend/app/administration/registered-mail/issuing-site/indexing/issuing-site-input.component.ts @@ -45,9 +45,7 @@ export class IssuingSiteInputComponent implements OnInit { } ngOnInit() { - if (this.registedMailType !== null) { - this.getIssuingSites(this.registedMailType); - } + this.getIssuingSites(); if (!this.functions.empty(this.control.value)) { setTimeout(() => { this.setAddress(this.control.value); @@ -55,18 +53,16 @@ export class IssuingSiteInputComponent implements OnInit { } } - getIssuingSites(registeredMailType: string) { - this.registedMailType = registeredMailType; + getIssuingSites() { this.loading = true; - this.http.get(`../rest/registeredMail/ranges`).pipe( + this.http.get(`../rest/registeredMail/sites`).pipe( tap((data: any) => { this.issuingSiteAddress = null; - this.issuingSiteList = data['ranges'].filter((item: any) => item.registeredMailType === registeredMailType && item.status === 'OK' && item.entities.indexOf(this.headerService.user.entities[0].id) > -1).map((item: any) => { + this.issuingSiteList = data['sites'].filter((item: any) => item.entities.indexOf(this.headerService.user.entities[0].id) > -1).map((item: any) => { return { ...item, - id: item.siteId, - label: `${item.label} (${item.customerAccountNumber})`, - disabled: item.fullness === 100, + id: item.id, + label: `${item.label} (${item.accountNumber})` }; }); }), diff --git a/src/frontend/app/administration/registered-mail/issuing-site/issuing-site.component.html b/src/frontend/app/administration/registered-mail/issuing-site/issuing-site.component.html index 7c396820b8b1a9b412a1e764a3378961d2469544..fde04b5f0a6895eb7d0e33a578edaf662c73fee0 100644 --- a/src/frontend/app/administration/registered-mail/issuing-site/issuing-site.component.html +++ b/src/frontend/app/administration/registered-mail/issuing-site/issuing-site.component.html @@ -37,7 +37,7 @@ {{'lang.address' | translate}} </div> <mat-form-field appearance='outline' class="smallInput"> - <button mat-button matSuffix [matMenuTriggerFor]="menuDep" + <button type="button" mat-button matSuffix [matMenuTriggerFor]="menuDep" (click)="$event.stopPropagation();" [title]="this.translate.instant('lang.targetDepartment')"> {{addressBANCurrentDepartment}} <i class="fa fa-chevron-down"></i> diff --git a/src/frontend/app/administration/registered-mail/registered-mail-list.component.html b/src/frontend/app/administration/registered-mail/registered-mail-list.component.html index 70d06056e6bc8904cdf7b9670d926b8f86d9aa8f..90fe2f6973949b9266b9e40374755260f92ca9c8 100644 --- a/src/frontend/app/administration/registered-mail/registered-mail-list.component.html +++ b/src/frontend/app/administration/registered-mail/registered-mail-list.component.html @@ -51,13 +51,6 @@ </div> </div> <mat-table #table [dataSource]="adminService.getDataSource()" matSort matSortDisableClear> - <ng-container matColumnDef="label"> - <mat-header-cell *matHeaderCellDef mat-sort-header style="flex:2"> - {{'lang.issuingSite' | translate}} - </mat-header-cell> - <mat-cell *matCellDef="let element" style="flex:2"> - {{element.label}} </mat-cell> - </ng-container> <ng-container matColumnDef="trackerNumber"> <mat-header-cell *matHeaderCellDef mat-sort-header style="flex:2"> {{'lang.trackerNumber' | translate}} diff --git a/src/frontend/app/administration/registered-mail/registered-mail-list.component.ts b/src/frontend/app/administration/registered-mail/registered-mail-list.component.ts index 99fa9fdbe40229fb5bcca1f76001b5ca9f144c09..17d2a0711cd7eba55c3e9bd6f07f147f731c26d5 100644 --- a/src/frontend/app/administration/registered-mail/registered-mail-list.component.ts +++ b/src/frontend/app/administration/registered-mail/registered-mail-list.component.ts @@ -43,8 +43,8 @@ export class RegisteredMailListComponent implements OnInit { data: any[] = []; - displayedColumns = ['trackerNumber', 'label', 'typeLabel', 'rangeNumber', 'currentNumber', 'status', 'fullness', 'actions']; - filterColumns = ['label', 'trackerNumber', 'typeLabel', 'rangeNumber', 'currentNumber', 'fullness', 'statusLabel']; + displayedColumns = ['trackerNumber', 'typeLabel', 'rangeNumber', 'currentNumber', 'status', 'fullness', 'actions']; + filterColumns = ['trackerNumber', 'typeLabel', 'rangeNumber', 'currentNumber', 'fullness', 'statusLabel']; @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; @ViewChild(MatSort, { static: false }) sort: MatSort; diff --git a/src/frontend/app/administration/registered-mail/registered-mail.component.html b/src/frontend/app/administration/registered-mail/registered-mail.component.html index b5a82e790e077f3360a2e40a57139db2cc690fa9..833f4651f848aa661bfae4b57870e09b502ab260 100644 --- a/src/frontend/app/administration/registered-mail/registered-mail.component.html +++ b/src/frontend/app/administration/registered-mail/registered-mail.component.html @@ -27,15 +27,6 @@ <mat-label>{{'lang.trackerNumber' | translate}}</mat-label> <input matInput formControlName="trackerNumber"> </mat-form-field> - <plugin-select-search *ngIf="customerAccountNumberList.length > 0" [showLabel]="true" - [label]="this.translate.instant('lang.issuingSite')" - [placeholderLabel]="this.translate.instant('lang.issuingSite')" - [datas]="customerAccountNumberList" [class]="''" - [formControlSelect]="adminFormGroup.controls['siteId']"> - </plugin-select-search> - <div *ngIf="customerAccountNumberList.length === 0" class="alert-message alert-message-danger"> - {{'lang.registeredMailNoIssuingSites' | translate}} - </div> <plugin-select-search [showLabel]="true" [label]="this.translate.instant('lang.registeredMailType')" [placeholderLabel]="this.translate.instant('lang.registeredMailType')" [datas]="registeredMailType" [class]="''" [formControlSelect]="adminFormGroup.controls['registeredMailType']"> diff --git a/src/frontend/app/administration/registered-mail/registered-mail.component.ts b/src/frontend/app/administration/registered-mail/registered-mail.component.ts index 858ace1026a920802952f5d7a0fd3101df11db22..ad5901920b46e5d41feef7ebf8ead9cc651aeeda 100644 --- a/src/frontend/app/administration/registered-mail/registered-mail.component.ts +++ b/src/frontend/app/administration/registered-mail/registered-mail.component.ts @@ -23,8 +23,6 @@ export class RegisteredMailComponent implements OnInit { id: number = null; minRange: number = 1; - customerAccountNumberList: any[] = []; - registeredMailType: any[] = [ { id: '2D', @@ -53,14 +51,12 @@ export class RegisteredMailComponent implements OnInit { ngOnInit(): void { this.route.params.subscribe(async (params) => { - this.getIssuingSites(); if (typeof params['id'] === 'undefined') { this.creationMode = true; this.headerService.setHeader(this.translate.instant('lang.registeredMailNumberRangeCreation')); this.adminFormGroup = this._formBuilder.group({ id: [null], - siteId: [null, Validators.required], trackerNumber: [null, Validators.required], registeredMailType: [null, Validators.required], rangeStart: [1, Validators.required], @@ -108,30 +104,12 @@ export class RegisteredMailComponent implements OnInit { }); } - getIssuingSites() { - this.http.get('../rest/registeredMail/sites').pipe( - tap((data: any) => { - this.customerAccountNumberList = data['sites'].map((item: any) => { - return { - id: item.id, - label: `${item.label} (${item.accountNumber})` - }; - }); - }), - catchError((err: any) => { - this.notify.handleSoftErrors(err); - return of(false); - }) - ).subscribe(); - } - getData() { return new Promise((resolve) => { this.http.get(`../rest/registeredMail/ranges/${this.id}`).pipe( tap((data: any) => { this.adminFormGroup = this._formBuilder.group({ id: [this.id], - siteId: [data.range.siteId], trackerNumber: [data.range.trackerNumber], registeredMailType: [data.range.registeredMailType], rangeStart: [data.range.rangeStart], diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts index 85232eba50ae308365cfd05ef341434702d96fef..1b7b6162eb71239ff1dca7edc9975ea287f44cf0 100755 --- a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts +++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts @@ -797,7 +797,7 @@ export class IndexingFormComponent implements OnInit { } if (elem.identifier === 'registeredMail_type') { - this.getIssuingSites(null, fieldValue, false); + this.getIssuingSites(null, fieldValue); } if (elem.identifier === 'priority') { @@ -1214,23 +1214,19 @@ export class IndexingFormComponent implements OnInit { /** * [Registered mail module] */ - getIssuingSites(field: any, value: any, resetIssuingSite: boolean = true) { + getIssuingSites(field: any, value: any) { this.fieldCategories.forEach(element => { this['indexingModels_' + element].forEach((fieldItem: any) => { if (fieldItem.identifier === 'registeredMail_warranty') { fieldItem.values[2].disabled = value === 'RW'; } - - if (fieldItem.identifier === 'registeredMail_issuingSite' && resetIssuingSite) { - this.arrFormControl['registeredMail_issuingSite'].setValue(''); - } }); if (value === 'RW' && this.arrFormControl['registeredMail_warranty'].value === 'R3') { this.arrFormControl['registeredMail_warranty'].setValue('R1'); } }); if (!this.functions.empty(this.appIssuingSiteInput)) { - this.appIssuingSiteInput.getIssuingSites(value); + this.appIssuingSiteInput.registedMailType = value; } } diff --git a/src/lang/lang-en.json b/src/lang/lang-en.json index b40b0d8047b43df6b999900fa4b68ac5aefba8b2..e578a114261e16eb7ece099e6b7c27d76827703b 100644 --- a/src/lang/lang-en.json +++ b/src/lang/lang-en.json @@ -1921,7 +1921,7 @@ "rangeStartLargerThanRangeEnd": "Range start cannot be larger than range end", "trackingNumberAlreadyUsed": "Tracking number is already used", "rangeOverlaps": "Range overlaps another range", - "siteIsUsedByActiveRange": "Cannot delete issuing site : site is used by an active range", + "siteIsUsedByRegisteredMail": "Cannot delete issuing site : site is used in a registered mail", "fieldsNotValid": "Fields are invalid", "arReception": "AR reception", "returnType": "Return type", @@ -1957,7 +1957,6 @@ "issuingSiteAdded": "Issuing site added", "issuingSiteUpdated": "Issuing site updated", "registeredMailNumberRanges": "registered mail number ranges", - "customerAccountNumber": "Customer account number", "trackerNumber": "Tracker number", "registeredMailType": "Registered mail type", "rangeNumber": "Range", diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json index f78b8ed3b34e5ddc5a6141e846ad99c6328a14ce..bf545f03c1a2952e7c93ce2f8baa15f425d6dd19 100644 --- a/src/lang/lang-fr.json +++ b/src/lang/lang-fr.json @@ -1908,7 +1908,6 @@ "issuingSiteAdded": "Site émetteur ajouté", "issuingSiteUpdated": "Site émetteur modifié", "registeredMailNumberRanges": "Plages de numéros de recommandés", - "customerAccountNumber": "Numéro de client", "trackerNumber": "Numéro de suivi", "registeredMailType": "Type de recommandé", "rangeNumber": "Plage", @@ -1958,7 +1957,7 @@ "rangeStartLargerThanRangeEnd": "Le début de la plage ne peut pas être plus grand que la fin de la plage", "trackingNumberAlreadyUsed": "Le numéro de suivi est déjà utilisé", "rangeOverlaps": "La plage chevauche une autre plage", - "siteIsUsedByActiveRange": "Impossible de supprimer le site émetteur : le site est utilisé par une plage active", + "siteIsUsedByRegisteredMail": "Impossible de supprimer le site émetteur : le site est utilisé dans un recommandé", "fieldsNotValid": "Les données saisies sont invalides", "arReception": "Réception des AR", "returnType": "Type de retour", diff --git a/src/lang/lang-nl.json b/src/lang/lang-nl.json index 419a6abf86ad823bd27c746eb4fceecf3cf11753..3b08bf6f59849980a581072ff8304d9ed0592709 100644 --- a/src/lang/lang-nl.json +++ b/src/lang/lang-nl.json @@ -1925,7 +1925,6 @@ "issuingSiteAdded": "Site émetteur ajouté__TO_TRANSLATE", "issuingSiteUpdated": "Site émetteur modifié__TO_TRANSLATE", "registeredMailNumberRanges": "Plages de numéros de recommandés__TO_TRANSLATE", - "customerAccountNumber": "Numéro de client__TO_TRANSLATE", "trackerNumber": "Numéro de suivi__TO_TRANSLATE", "registeredMailType": "Type de recommandé__TO_TRANSLATE", "rangeNumber": "Plage__TO_TRANSLATE", @@ -1970,7 +1969,7 @@ "rangeStartLargerThanRangeEnd": "Le début de la plage ne peut pas être plus grand que la fin de la plage__TO_TRANSLATE", "trackingNumberAlreadyUsed": "Le numéro de suivi est déjà utilisé__TO_TRANSLATE", "rangeOverlaps": "La plage chevauche une autre plage__TO_TRANSLATE", - "siteIsUsedByActiveRange": "Impossible de supprimer le site émetteur : le site est utilisé par une plage active__TO_TRANSLATE", + "siteIsUsedByRegisteredMail": "Impossible de supprimer le site émetteur : le site est utilisé dans un recommandé__TO_TRANSLATE", "fieldsNotValid": "Les données saisies sont invalides__TO_TRANSLATE", "arReception": "Réception des AR__TO_TRANSLATE", "returnType": "Type de retour__TO_TRANSLATE", diff --git a/test/unitTests/app/registeredMail/IssuingSiteControllerTest.php b/test/unitTests/app/registeredMail/IssuingSiteControllerTest.php index ecb9161ade281710e97c9025a5596be924efab7e..9773701a27fe5af763129e24a77c60e102c42cf0 100644 --- a/test/unitTests/app/registeredMail/IssuingSiteControllerTest.php +++ b/test/unitTests/app/registeredMail/IssuingSiteControllerTest.php @@ -322,84 +322,6 @@ class IssuingSiteControllerTest extends TestCase $GLOBALS['id'] = $userInfo['id']; } - public function testGetLastNumberByType() - { - $issuingSiteController = new \RegisteredMail\controllers\IssuingSiteController(); - $registeredNumberRangeController = new \RegisteredMail\controllers\RegisteredNumberRangeController(); - - // GET - $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); - $request = \Slim\Http\Request::createFromEnvironment($environment); - - $response = $issuingSiteController->getByType($request, new \Slim\Http\Response(), ['type' => '2D']); - $this->assertSame(200, $response->getStatusCode()); - $responseBody = json_decode((string)$response->getBody(), true); - - $this->assertIsArray($responseBody['sites']); - $this->assertNotEmpty($responseBody['sites']); - - $body = [ - 'registeredMailType' => '2D', - 'trackerNumber' => 'AZPOKF30KDZP', - 'rangeStart' => 1, - 'rangeEnd' => 1000, - 'siteId' => self::$id, - 'status' => 'OK' - ]; - $fullRequest = \httpRequestCustom::addContentInBody($body, $request); - - $response = $registeredNumberRangeController->create($fullRequest, new \Slim\Http\Response()); - $this->assertSame(200, $response->getStatusCode()); - $responseBody = json_decode((string)$response->getBody(), true); - $this->assertIsInt($responseBody['id']); - - $rangeId = $responseBody['id']; - - $response = $issuingSiteController->getByType($request, new \Slim\Http\Response(), ['type' => '2D']); - $this->assertSame(200, $response->getStatusCode()); - $responseBody = json_decode((string)$response->getBody(), true); - - $this->assertIsArray($responseBody['sites']); - $this->assertNotEmpty($responseBody['sites']); - $this->assertSame(2, count($responseBody['sites'])); - - $this->assertSame(self::$id, $responseBody['sites'][1]['id']); - $this->assertSame('Scranton - UP', $responseBody['sites'][1]['label']); - $this->assertSame('Scranton Post Office', $responseBody['sites'][1]['postOfficeLabel']); - $this->assertSame(42, $responseBody['sites'][1]['accountNumber']); - $this->assertSame('1725', $responseBody['sites'][1]['addressNumber']); - $this->assertSame('Slough Avenue', $responseBody['sites'][1]['addressStreet']); - $this->assertEmpty($responseBody['sites'][1]['addressAdditional1']); - $this->assertEmpty($responseBody['sites'][1]['addressAdditional2']); - $this->assertSame('18505', $responseBody['sites'][1]['addressPostcode']); - $this->assertSame('Scranton', $responseBody['sites'][1]['addressTown']); - $this->assertSame('USA', $responseBody['sites'][1]['addressCountry']); - - \RegisteredMail\models\RegisteredNumberRangeModel::update([ - 'set' => [ - 'status' => 'SPD' - ], - 'where' => ['id = ?'], - 'data' => [$rangeId] - ]); - - $response = $registeredNumberRangeController->delete($request, new \Slim\Http\Response(), ['id' => $rangeId]); - $this->assertSame(204, $response->getStatusCode()); - - $GLOBALS['login'] = 'bbain'; - $userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]); - $GLOBALS['id'] = $userInfo['id']; - - $response = $issuingSiteController->getByType($request, new \Slim\Http\Response(), ['type' => '2D']); - $this->assertSame(403, $response->getStatusCode()); - $responseBody = json_decode((string)$response->getBody(), true); - $this->assertSame('Service forbidden', $responseBody['errors']); - - $GLOBALS['login'] = 'superadmin'; - $userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]); - $GLOBALS['id'] = $userInfo['id']; - } - public function testDelete() { $issuingSiteController = new \RegisteredMail\controllers\IssuingSiteController(); diff --git a/test/unitTests/app/registeredMail/RegisteredNumberRangeControllerTest.php b/test/unitTests/app/registeredMail/RegisteredNumberRangeControllerTest.php index f298dc3f9df2bffa5a6912bfc7795c953b0f5baa..b818cd5a52301c25fbdf632d716261ad5ddbe0af 100644 --- a/test/unitTests/app/registeredMail/RegisteredNumberRangeControllerTest.php +++ b/test/unitTests/app/registeredMail/RegisteredNumberRangeControllerTest.php @@ -238,10 +238,8 @@ class RegisteredNumberRangeControllerTest extends TestCase $this->assertSame('AZPOKF30KDZP', $range['trackerNumber']); $this->assertSame(11, $range['rangeStart']); $this->assertSame(1000, $range['rangeEnd']); - $this->assertSame(self::$siteId, $range['siteId']); $this->assertSame($GLOBALS['id'], $range['creator']); $this->assertNull($range['currentNumber']); - $this->assertIsArray($range['entities']); $this->assertSame(0, $range['fullness']); $found = true; } @@ -271,7 +269,6 @@ class RegisteredNumberRangeControllerTest extends TestCase $this->assertSame('AZPOKF30KDZP', $responseBody['range']['trackerNumber']); $this->assertSame(11, $responseBody['range']['rangeStart']); $this->assertSame(1000, $responseBody['range']['rangeEnd']); - $this->assertSame(self::$siteId, $responseBody['range']['siteId']); $this->assertSame($GLOBALS['id'], $responseBody['range']['creator']); $this->assertNull($responseBody['range']['currentNumber']); $this->assertSame(0, $responseBody['range']['fullness']);