Persetujuan Pimpinan
Ada beberapa probis yang butuh persetujuan pimpinan.
Variabel
pimpinanperlu ditambahkan keprocessVariablesdi model.protected array $processVariables = [
'pimpinan',
];Setelah variabel yang
pimpinandidaftarkan maka perlu mengirim nilai daripimpinanitu sendiri.Untuk mengirim
pimpinanperlu meng-overridebeforeSubmitHook. FungsibeforeSubmitHooktereksekusi ketika sebuah data sebelum hendak disubmit.public function beforeSubmitHook(string $taskId, Request $request, string $businessKey)
{
// get last task
$task = $this->getLastTask($businessKey);
if (in_array($task->taskDefinitionKey, ['kpm443_persetujuan_deputi', 'kpm443_perpanjangan_persetujuan_deputi', 'kpm443_demarking_persetujuan_deputi'])) {
$service = (new Kpt100Service(new Kpt100()));
$pimpinan = $service->getPimpinan();
$request->merge(['pimpinan' => $pimpinan]);
}
return $request;
}Pada baris kode ini, adalah pengecekan bahwa posisi task tersebut tepat berada sebelum task yang akan maju ke persetujuan pimpinan.
if (in_array($task->taskDefinitionKey, ['kpm443_persetujuan_deputi', 'kpm443_perpanjangan_persetujuan_deputi', 'kpm443_demarking_persetujuan_deputi']))Karena data persetujuan pimpinan bersifat Multi-Instance, yang artinya jumlah data akan sama dengan jumlah pimpinan yang ada.
Data yang telah dibuat akan secara otomatis ter-assign ke pimpinan jika id usertask sebelum persetujuan pimpinan didaftarkan pada
needApprovalPimpinanTasksdiApprovalDetailpada Frontend.const needApprovalPimpinanTasks = [
// kpm201
"kpm201_persetujuan_deputi",
// kpm21b
"kpm21b_persetujuan_deputi",
// kpm21k
"kpm21k_persetujuan_deputi",
// kpm21l
"kpm21l_persetujuan_deputi",
// kpm219
"kpm219_persetujuan_deputi",
// kpm443
"kpm443_persetujuan_deputi",
"kpm443_perpanjangan_persetujuan_deputi",
"kpm443_demarking_persetujuan_deputi",
// kpm18a
"kpm18a_persetujuan_deputi",
"kpm18a_perpanjangan_persetujuan_deputi",
// kpm18b
"kpm18b_persetujuan_deputi",
// kpm21d
"kpm21d_persetujuan_deputi",
"kpm244_persetujuan_deputi",
"kpm245_persetujuan_deputi",
"kpm274_persetujuan_deputi",
"kpm27a_persetujuan_deputi",
"kpm274_persetujuan_deputi",
];