After Submit Data
Update Status Data
Setiap data yang telah disubmit maka data tersebut akan maju dan status berubah berdasarkan data tersebut ada dimana.
Seperti:
- Data baru disubmit akan pindah ke Review Kasatgas.
- Review Kasatgas disubmit akan pindah ke Persetujuan Direktur.
- Persetujuan Direktur disubmit akan pindah ke Persetujuan Deputi.
- Persetujuan Deputi disubmit akan pindah ke Persetujuan Pimpinan.
Untuk perubahan status tersebut dilakukan pada fungsi
afterSubmitHook(). Dan status akan berubahDisetujuijika proses bisnis telah di-approve oleh role yang paling tinggi.public function afterSubmitHook(BpmnModel $model, Request $request, string $businessKey): BpmnModel
{
// get last task
$task = $this->getLastTask($businessKey);
$decision = $request->decision;
if (in_array($task->taskDefinitionKey, ['kpm194_review_kasatgas', 'kpm194_persetujuan_direktur'])) {
if ($decision === 'approve') {
if ($task->taskDefinitionKey === 'kpm194_review_kasatgas') {
$model->status = ApprovalDeputiStatus::APPROVAL_DIREKTUR->value;
}
if ($task->taskDefinitionKey === 'kpm194_persetujuan_direktur') {
$model->status = ApprovalDeputiStatus::APPROVAL_DEPUTI->value;
}
} else {
$model->status = ApprovalDeputiStatus::REJECTED->value;
}
}
if ($task->taskDefinitionKey === 'kpm194_persetujuan_deputi') {
if ($decision === 'approve') {
$model->status = ApprovalDeputiStatus::APPROVED->value;
} else {
$model->status = ApprovalDeputiStatus::REJECTED->value;
}
}
$model->save();
return $model;
}
Approval Data
Perlu adanya data di
KPM032jika data tersebut membutuhkan persetujuan direktur, deputi ataupun pimpinan.Proses buat data
KPM032dilakukan pada fungsiafterSubmitHook().Seperti:
- Task saat ini adalah Review Kasatgas untuk ke Persetujuan Direktur
- Task saat ini adalah Persetujuan Direktur untuk ke Persetujuan Deputi
- Task saat ini adalah Persetujuan Deputi untuk ke Persetujuan Pimpinan
Untuk pengimplementasi pembuatan data
KPM032.if (in_array($task->taskDefinitionKey, ['kpm194_review_kasatgas', 'kpm194_persetujuan_direktur'])) {
if ($decision === 'approve') {
if ($task->taskDefinitionKey === 'kpm194_review_kasatgas') {
$model->status = ApprovalDeputiStatus::APPROVAL_DIREKTUR->value;
}
if ($task->taskDefinitionKey === 'kpm194_persetujuan_direktur') {
$model->status = ApprovalDeputiStatus::APPROVAL_DEPUTI->value;
}
$kpt032Service = new Kpt032Service(new Kpt032());
$kpt032Service->create(
new FormRequest([
'title' => 'Persetujuan Laporan Kejadian Tindak Pidana Korupsi (LKTPK)',
'relation_id' => $model->id,
'relation_model' => $model->getTable(),
])
);
} else {
$model->status = ApprovalDeputiStatus::REJECTED->value;
}
}
Buat Data Untuk Modul Setelahnya
Ada beberapa kasus khusus setelah data telah
Disetujui, data tersebut akan pindah ke modul lain.Perpindahan data tersebut pasti akan membawakan id dari parent-nya, yaitu business key.
Pembuatan data ke modul setelahnya dilakukan ketika data di-approve pada tingkatan terakhir.
if ($task->taskDefinitionKey === 'kpm194_persetujuan_deputi') {
if ($decision === 'approve') {
$model->status = ApprovalDeputiStatus::APPROVED->value;
// create kpm200
$kpt200a = new Kpt200a();
$kpt200Service = new Kpt200Service($kpt200a);
$kpt200Service->storeData($kpt200a, $request, $businessKey);
} else {
$model->status = ApprovalDeputiStatus::REJECTED->value;
}
}