diff --git a/migration/19.12/1912.sql b/migration/19.12/1912.sql index 82903dab84aaf0e47694b8b014e3ab0c1ded4f24..77dd09328d5e8d10ec2978af371a4e4c27d0ed49 100644 --- a/migration/19.12/1912.sql +++ b/migration/19.12/1912.sql @@ -360,6 +360,7 @@ WHERE service_id = 'edit_recipient_outside_process' OR service_id = 'update_diff DELETE FROM usergroups_services WHERE service_id = 'edit_recipient_outside_process'; DELETE FROM usergroups_services WHERE service_id = 'update_list_diff_in_details'; DELETE FROM usergroups_services WHERE service_id = 'edit_recipient_in_process'; +UPDATE listmodels SET title = object_id WHERE title IS NULL; /* REFACTORING MODIFICATION */ @@ -367,7 +368,7 @@ ALTER TABLE notif_email_stack ALTER COLUMN attachments TYPE text; ALTER TABLE tags ALTER COLUMN label TYPE character varying(128); UPDATE priorities SET delays = 30 WHERE delays IS NULL; ALTER TABLE priorities ALTER COLUMN delays SET NOT NULL; -UPDATE listmodels SET title = object_id WHERE title IS NULL; +ALTER TABLE res_letterbox ALTER COLUMN status DROP NOT NULL; /* REFACTORING SUPPRESSION */ DO $$ BEGIN diff --git a/sql/structure.sql b/sql/structure.sql index 05f5ca5ca60c69149cb1751f3beb6caef8260596..80165ee189401b81f35c4493b8924d8950a9b292 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -1119,7 +1119,7 @@ CREATE TABLE res_letterbox scan_wkstation character varying(255) DEFAULT NULL::character varying, scan_batch character varying(50) DEFAULT NULL::character varying, scan_postmark character varying(50) DEFAULT NULL::character varying, - status character varying(10) NOT NULL, + status character varying(10), destination character varying(50) DEFAULT NULL::character varying, work_batch bigint, origin character varying(50) DEFAULT NULL::character varying, diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index b78eb3bac8b4ec1e1ac9aaf8880d5225fa95904c..0cb2ec2f8a8cf858c276711fc49a2a1b5a6da97a 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -721,8 +721,6 @@ class ResController if (empty($body)) { return ['errors' => 'Body is not set or empty']; - } elseif (!Validator::stringType()->notEmpty()->validate($body['status'])) { - return ['errors' => 'Body status is empty or not a string']; } elseif (!Validator::intVal()->notEmpty()->validate($body['doctype'])) { return ['errors' => 'Body doctype is empty or not an integer']; } elseif (!Validator::intVal()->notEmpty()->validate($body['modelId'])) { @@ -780,6 +778,14 @@ class ResController return ['errors' => $control['errors']]; } + if (!empty($body['status'])) { + $status = StatusModel::getById(['id' => $body['status'], 'select' => [1]]); + if (empty($status)) { + return ['errors' => 'Body status does not exist']; + } + } + + return true; } diff --git a/src/app/resource/controllers/StoreController.php b/src/app/resource/controllers/StoreController.php index 19193d2f524d13e87e9bfda540cdf378c25c9364..a1cd5e21e94b92c73d64bcd8907e6f0754021a49 100755 --- a/src/app/resource/controllers/StoreController.php +++ b/src/app/resource/controllers/StoreController.php @@ -109,8 +109,8 @@ class StoreController public static function prepareStorage(array $args) { - ValidatorModel::notEmpty($args, ['docserver_id', 'filename', 'format', 'filesize', 'path', 'fingerprint', 'status', 'resId', 'modelId']); - ValidatorModel::stringType($args, ['docserver_id', 'filename', 'format', 'path', 'fingerprint', 'status']); + ValidatorModel::notEmpty($args, ['docserver_id', 'filename', 'format', 'filesize', 'path', 'fingerprint', 'resId', 'modelId']); + ValidatorModel::stringType($args, ['docserver_id', 'filename', 'format', 'path', 'fingerprint']); ValidatorModel::intVal($args, ['filesize', 'resId', 'modelId']); $indexingModel = IndexingModelModel::getById(['id' => $args['modelId'], 'select' => ['category']]); @@ -142,7 +142,7 @@ class StoreController 'alt_identifier' => $chrono, 'format' => $args['format'], 'typist' => $args['typist'], - 'status' => $args['status'], + 'status' => $args['status'] ?? null, 'destination' => $args['destination'] ?? null, 'initiator' => $args['initiator'] ?? null, 'confidentiality' => empty('confidentiality') ? 'N' : 'Y', diff --git a/src/app/resource/models/ResModelAbstract.php b/src/app/resource/models/ResModelAbstract.php index be39a7cce837d15a7fbdbf95a9e538bd3fdc017a..f3c930a45c631bfd0d35f86e1a099bd1eb097ce6 100755 --- a/src/app/resource/models/ResModelAbstract.php +++ b/src/app/resource/models/ResModelAbstract.php @@ -82,8 +82,8 @@ abstract class ResModelAbstract public static function create(array $args) { - ValidatorModel::notEmpty($args, ['res_id', 'format', 'typist', 'creation_date', 'docserver_id', 'path', 'filename', 'fingerprint', 'filesize', 'status', 'category_id']); - ValidatorModel::stringType($args, ['format', 'creation_date', 'docserver_id', 'path', 'filename', 'fingerprint', 'status', 'category_id']); + ValidatorModel::notEmpty($args, ['res_id', 'format', 'typist', 'creation_date', 'docserver_id', 'path', 'filename', 'fingerprint', 'filesize', 'category_id']); + ValidatorModel::stringType($args, ['format', 'creation_date', 'docserver_id', 'path', 'filename', 'fingerprint', 'category_id']); ValidatorModel::intVal($args, ['filesize', 'res_id', 'typist']); DatabaseModel::insert([