PMCORE-2282
This commit is contained in:
@@ -1061,6 +1061,9 @@ try {
|
|||||||
$tplFile = 'webentry/cases_ScreenDerivation';
|
$tplFile = 'webentry/cases_ScreenDerivation';
|
||||||
$caseId = $currentTask['APP_UID'];
|
$caseId = $currentTask['APP_UID'];
|
||||||
$delIndex = $currentTask['DEL_INDEX'];
|
$delIndex = $currentTask['DEL_INDEX'];
|
||||||
|
// Swap temporary APP_NUMBER
|
||||||
|
$newAppNumber = $bmWebEntry->swapTemporaryAppNumber($caseId);
|
||||||
|
$Fields['APP_NUMBER'] = $Fields['APP_DATA']['APP_NUMBER'] = $newAppNumber;
|
||||||
$derivationResponse = PMFDerivateCase($caseId, $delIndex, true);
|
$derivationResponse = PMFDerivateCase($caseId, $delIndex, true);
|
||||||
if ($derivationResponse) {
|
if ($derivationResponse) {
|
||||||
$webEntryUrl = $bmWebEntry->getCallbackUrlByTask($currentTask['TAS_UID']);
|
$webEntryUrl = $bmWebEntry->getCallbackUrlByTask($currentTask['TAS_UID']);
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace ProcessMaker\BusinessModel;
|
namespace ProcessMaker\BusinessModel;
|
||||||
|
|
||||||
|
use AppSequence;
|
||||||
|
use Cases;
|
||||||
use Criteria;
|
use Criteria;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use ProcessMaker\Core\System;
|
use ProcessMaker\Core\System;
|
||||||
|
use ProcessMaker\Model\Application;
|
||||||
use ResultSet;
|
use ResultSet;
|
||||||
use WebEntryPeer;
|
use WebEntryPeer;
|
||||||
|
|
||||||
@@ -1125,5 +1129,44 @@ class WebEntry
|
|||||||
}
|
}
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Swap temporary web entry application number to a normal application number
|
||||||
|
*
|
||||||
|
* @param string $appUid
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function swapTemporaryAppNumber($appUid)
|
||||||
|
{
|
||||||
|
// Get the application
|
||||||
|
$application = Application::query()->select(['APP_NUMBER'])->where('APP_UID', '=', $appUid)->first()->toArray();
|
||||||
|
|
||||||
|
// If application exists, swap the number
|
||||||
|
if (!empty($application)) {
|
||||||
|
// Get a normal sequence number
|
||||||
|
$appSequence = new AppSequence();
|
||||||
|
$appNumber = $appSequence->sequenceNumber(AppSequence::APP_TYPE_NORMAL);
|
||||||
|
|
||||||
|
// Update case with the new application number
|
||||||
|
$cases = new Cases();
|
||||||
|
$casesData = $cases->loadCase($appUid);
|
||||||
|
$casesData['APP_NUMBER'] = $casesData['APP_DATA']['APP_NUMBER'] = $appNumber;
|
||||||
|
$cases->updateCase($appUid, $casesData);
|
||||||
|
|
||||||
|
// Build the query to update related tables and fields
|
||||||
|
$query = "UPDATE `APPLICATION` SET `APP_TITLE` = '#{$appNumber}' WHERE `APP_UID` = '{$appUid}';";
|
||||||
|
$query .= "UPDATE `APP_DATA_CHANGE_LOG` SET `APP_NUMBER` = {$appNumber} WHERE `APP_NUMBER` = {$application['APP_NUMBER']};";
|
||||||
|
$query .= "UPDATE `APP_DELEGATION` SET `APP_NUMBER` = {$appNumber} WHERE `APP_UID` = '{$appUid}';";
|
||||||
|
$query .= "UPDATE `LIST_INBOX` SET `APP_NUMBER` = {$appNumber}, `APP_TITLE` = '#{$appNumber}' WHERE `APP_UID` = '{$appUid}';";
|
||||||
|
$query .= "UPDATE `LIST_PARTICIPATED_HISTORY` SET `APP_NUMBER` = {$appNumber}, `APP_TITLE` = '#{$appNumber}' WHERE `APP_UID` = '{$appUid}';";
|
||||||
|
$query .= "UPDATE `LIST_PARTICIPATED_LAST` SET `APP_NUMBER` = {$appNumber}, `APP_TITLE` = '#{$appNumber}' WHERE `APP_UID` = '{$appUid}';";
|
||||||
|
|
||||||
|
// Execute the query
|
||||||
|
DB::connection('workflow')->unprepared($query);
|
||||||
|
|
||||||
|
// Return new application number
|
||||||
|
return $appNumber;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user