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