Skip to main content

After Submit Data

Update Status Data​

  1. Setiap data yang telah disubmit maka data tersebut akan maju dan status berubah berdasarkan data tersebut ada dimana.

  2. 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.
  3. Untuk perubahan status tersebut dilakukan pada fungsi afterSubmitHook(). Dan status akan berubah Disetujui jika 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​

  1. Perlu adanya data di KPM032 jika data tersebut membutuhkan persetujuan direktur, deputi ataupun pimpinan.

  2. Proses buat data KPM032 dilakukan pada fungsi afterSubmitHook().

  3. 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
  4. 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​

  1. Ada beberapa kasus khusus setelah data telah Disetujui, data tersebut akan pindah ke modul lain.

  2. Perpindahan data tersebut pasti akan membawakan id dari parent-nya, yaitu business key.

  3. 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;
    }
    }