hr dan payroll
This commit is contained in:
@@ -38,6 +38,9 @@ class Jurnal extends MY_Controller {
|
||||
$start = $_POST['start'];
|
||||
$length = $_POST['length'];
|
||||
$search = $_POST['search']['value'];
|
||||
$status = (string) $this->input->post('status', true);
|
||||
$allowedStatuses = array('draft', 'submitted', 'approved', 'posted', 'rejected', 'reversed');
|
||||
if (!in_array($status, $allowedStatuses, true)) $status = '';
|
||||
|
||||
// ================= TOTAL ALL
|
||||
$totalAll = $this->db->where('company_id',$this->companycontext->id())->count_all_results('journals');
|
||||
@@ -45,6 +48,10 @@ class Jurnal extends MY_Controller {
|
||||
// ================= QUERY FILTERED (HITUNG)
|
||||
$this->db->from('journals')->where('company_id',$this->companycontext->id());
|
||||
|
||||
if ($status !== '') {
|
||||
$this->db->where('status', $status);
|
||||
}
|
||||
|
||||
if(!empty($search)){
|
||||
$this->db->group_start();
|
||||
$this->db->like('no_ref', $search);
|
||||
@@ -63,6 +70,9 @@ class Jurnal extends MY_Controller {
|
||||
journals.keterangan,
|
||||
journals.status,
|
||||
journals.is_reversed,
|
||||
journals.ref_type,
|
||||
journals.created_by,
|
||||
journals.rejection_reason,
|
||||
COALESCE(SUM(journal_details.debit),0) as total_debit,
|
||||
COALESCE(SUM(journal_details.kredit),0) as total_kredit
|
||||
');
|
||||
@@ -70,6 +80,10 @@ class Jurnal extends MY_Controller {
|
||||
$this->db->join('journal_details','journal_details.journal_id = journals.id','LEFT');
|
||||
$this->db->where('journals.company_id',$this->companycontext->id());
|
||||
|
||||
if ($status !== '') {
|
||||
$this->db->where('journals.status', $status);
|
||||
}
|
||||
|
||||
if(!empty($search)){
|
||||
$this->db->group_start();
|
||||
$this->db->like('journals.no_ref', $search);
|
||||
@@ -92,12 +106,17 @@ class Jurnal extends MY_Controller {
|
||||
foreach ($query as $row) {
|
||||
$no++;
|
||||
|
||||
$isAdmin = $this->session->userdata('role') === 'Admin';
|
||||
$isAdmin = is_master_admin_user() || $this->session->userdata('role') === 'Admin';
|
||||
$isOwner = (int)$row->created_by === (int)$this->session->userdata('user_id');
|
||||
$aksi = '<button class="btn btn-sm btn-info btn-detail" data-id="'.$row->id.'">Detail</button> ';
|
||||
if ($row->status === 'draft') {
|
||||
$aksi .= '<button class="btn btn-sm btn-primary btn-submit" data-id="'.$row->id.'">Submit</button> ';
|
||||
if ($isAdmin) $aksi .= '<button class="btn btn-sm btn-danger btn-delete" data-id="'.$row->id.'">Hapus</button> ';
|
||||
}
|
||||
if ($row->status === 'rejected' && ($isOwner || $isAdmin) && in_array((string)$row->ref_type, array('', 'manual_journal'), true)) {
|
||||
$aksi .= '<button class="btn btn-sm btn-warning btn-edit-rejected" data-id="'.$row->id.'">Edit & Koreksi</button> ';
|
||||
if ($isAdmin) $aksi .= '<button class="btn btn-sm btn-danger btn-delete" data-id="'.$row->id.'">Hapus</button> ';
|
||||
}
|
||||
if ($isAdmin && $row->status === 'submitted') {
|
||||
$aksi .= '<button class="btn btn-sm btn-success btn-approve" data-id="'.$row->id.'">Approve</button> ';
|
||||
$aksi .= '<button class="btn btn-sm btn-outline-danger btn-reject" data-id="'.$row->id.'">Reject</button> ';
|
||||
@@ -181,6 +200,18 @@ class Jurnal extends MY_Controller {
|
||||
}
|
||||
}
|
||||
|
||||
public function update_rejected($id)
|
||||
{
|
||||
if (strtoupper($this->input->method()) !== 'POST') return json_response(false, 'Metode request tidak diizinkan.', array(), 405);
|
||||
try {
|
||||
$accounts=(array)$this->input->post('account_id');$debit=(array)$this->input->post('debit');$kredit=(array)$this->input->post('kredit');$lines=array();
|
||||
foreach($accounts as$index=>$accountId){$d=isset($debit[$index])?$this->parseNominal($debit[$index]):0;$k=isset($kredit[$index])?$this->parseNominal($kredit[$index]):0;if($d<=0&&$k<=0)continue;$lines[]=array('account_id'=>(int)$accountId,'debit'=>$d,'kredit'=>$k);}
|
||||
$journal=$this->journalservice->reviseRejected((int)$id,array('tanggal'=>(string)$this->input->post('tanggal',true),'keterangan'=>trim((string)$this->input->post('keterangan',true))),$lines,(int)$this->session->userdata('user_id'));
|
||||
log_activity('Jurnal','revise_rejected','Mengoreksi jurnal ditolak '.$journal->no_ref.' menjadi Draft.','success');
|
||||
return json_response(true,'Koreksi jurnal berhasil disimpan sebagai Draft dan dapat diajukan kembali.',array('journal_id'=>$journal->id));
|
||||
} catch (Throwable $exception) { return business_exception_response($exception); }
|
||||
}
|
||||
|
||||
/** Menerima nominal raw maupun berformat 20,000 / 20.000 / 20.000,50. */
|
||||
private function parseNominal($value)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user