Merged in bugfix/PMCORE-1435 (pull request #7334)

PMCORE-1435

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Fabio Guachalla
2020-04-30 01:00:26 +00:00
committed by Julio Cesar Laura Avendaño
2 changed files with 14 additions and 59 deletions

View File

@@ -77,33 +77,4 @@ class CasesTest extends TestCase
$case = new Cases(); $case = new Cases();
$case->deleteCase($application->APP_UID, $_SESSION['USER_LOGGED']); $case->deleteCase($application->APP_UID, $_SESSION['USER_LOGGED']);
} }
/**
* This checks the validation of documents
*
* @covers \ProcessMaker\BusinessModel\Cases::validateAppDocUid()
* @test
*/
public function it_should_validate_app_doc_uid()
{
$arrayVariableDocument = [
0 => [
"appDocUid" => "4371401485e7cd60d160062060139220",
"name" => "test_1.txt",
"version" => "1"
],
1 => [
"name" => "test_1.txt",
"version" => "1"
],
2 => [
"appDocUid" => "6837968225e7cd60dc17588042896388",
"name" => "test_1.txt",
"version" => "1"
]
];
$case = new Cases();
$newArrayVariableDocument = $case->validateAppDocUid($arrayVariableDocument);
$this->assertNotEmpty($newArrayVariableDocument);
$this->assertNotEquals($newArrayVariableDocument, $arrayVariableDocument);
}
} }

View File

@@ -3230,8 +3230,6 @@ class Cases
$arrayApplicationData = $this->getApplicationRecordByPk($applicationUid, [], false); $arrayApplicationData = $this->getApplicationRecordByPk($applicationUid, [], false);
$arrayApplicationData['APP_DATA'] = $case->unserializeData($arrayApplicationData['APP_DATA']); $arrayApplicationData['APP_DATA'] = $case->unserializeData($arrayApplicationData['APP_DATA']);
$flagDelete = false; $flagDelete = false;
$arrayVariableDocumentToDelete = $this->validateAppDocUid($arrayVariableDocumentToDelete);
foreach ($arrayVariableDocumentToDelete as $key => $value) { foreach ($arrayVariableDocumentToDelete as $key => $value) {
if (is_array($value) && !empty($value)) { if (is_array($value) && !empty($value)) {
$type = ''; $type = '';
@@ -3256,13 +3254,15 @@ class Cases
$arrayDocumentDelete = $value; $arrayDocumentDelete = $value;
foreach ($arrayDocumentDelete as $value2) { foreach ($arrayDocumentDelete as $value2) {
$appDocument->remove($value2['appDocUid'], (int)($value2['version'])); if ($value2['appDocUid'] !== "") {
$appDocument->remove($value2['appDocUid'], (int)($value2['version']));
$arrayApplicationData['APP_DATA'] = $this->applicationDataDeleteMultipleFile( $arrayApplicationData['APP_DATA'] = $this->applicationDataDeleteMultipleFile(
$arrayApplicationData['APP_DATA'], $variable, null, $type, $value2 $arrayApplicationData['APP_DATA'], $variable, null, $type, $value2
); );
$flagDelete = true; $flagDelete = true;
}
} }
break; break;
case 'GRID': case 'GRID':
@@ -3274,13 +3274,15 @@ class Cases
$arrayDocumentDelete = $value3; $arrayDocumentDelete = $value3;
foreach ($arrayDocumentDelete as $value4) { foreach ($arrayDocumentDelete as $value4) {
$appDocument->remove($value4['appDocUid'], (int)($value4['version'])); if ($value4['appDocUid'] !== "") {
$appDocument->remove($value4['appDocUid'], (int)($value4['version']));
$arrayApplicationData['APP_DATA'] = $this->applicationDataDeleteMultipleFile( $arrayApplicationData['APP_DATA'] = $this->applicationDataDeleteMultipleFile(
$arrayApplicationData['APP_DATA'], $grid, $variable, $type, $value4 $arrayApplicationData['APP_DATA'], $grid, $variable, $type, $value4
); );
$flagDelete = true; $flagDelete = true;
}
} }
} }
} }
@@ -3316,24 +3318,6 @@ class Cases
} }
} }
/**
* Validate if all documents have appDocUid
*
* @param array $arrayVariableDocument
*
* @return array
*/
public function validateAppDocUid(array $arrayVariableDocument)
{
$newArrayVariableDocument = [];
foreach ($arrayVariableDocument as $value) {
if (array_key_exists('appDocUid', $value)) {
$newArrayVariableDocument[] = $value;
}
}
return $newArrayVariableDocument;
}
/** /**
* Get Permissions, Participate, Access, Objects supervisor * Get Permissions, Participate, Access, Objects supervisor
* *