db_onedev = $this->load->database("onedev", true); $this->load->library("Kapus"); } function selected_box1() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $barcode = $prm['barcode']; $sql = "SELECT ROUND(sysFaktur08SumTargetPct,0) as kapus from sys_faktur_08_sum WHERE sysFaktur08SumID = $id "; // echo $sql; $query = $this->db_onedev->query($sql); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $result = array ("total" => count($rows), "records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function selected_box2() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $barcode = $prm['barcode']; $sql = "SELECT *, FORMAT(IFNULL(sysFaktur08SumAmount,0),0) as kapus, FORMAT(sysFKapusSumTotal,0) as kascabang, ROUND(sysFKapusSumTargetPct,0) as target, sysFKapusSumActualPct as actual, DATE_FORMAT(sysFKapusSumDate,'%d-%m-%Y') as tanggal, IFNULL(sysFaktur08SumIsPosted,'N') as sysFaktur08SumIsPosted from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate WHERE sysFKapusSumID = $id"; //echo $sql; $query = $this->db_onedev->query($sql); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $result = array ("total" => count($rows), "records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function updategenerate(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $id = $prm["id"]; $tanggal = $prm["tanggal"]; $sysKaPusPct = $prm["sysKaPusPct"]; $sumid = 0; $sqlsumid = "SELECT sysFaktur08SumID as id FROM sys_faktur_08_sum WHERE sysFaktur08SumDate = '{$tanggal}'"; $sumid = $this->db_onedev->query($sqlsumid)->row()->id; if($sumid == 0){ $sql = "INSERT INTO sys_faktur_08_sum( sysFaktur08SumDate, sysFaktur08SumUserID) VALUES( '{$tanggal}', $userid)"; $qry = $this->db_onedev->query($sql); $last_id = $this->db_onedev->insert_id(); }else{ $last_id = $sumid; } $sql = "UPDATE sys_faktur_08 SET sysFaktur08IsActive = 'N' WHERE sysFaktur08sysFaktur08SumID = $last_id"; $qry = $this->db_onedev->query($sql); $rst = $this->add_efaktur($last_id,$tanggal,$sysKaPusPct); if ($rst["status"] != "OK" ) { $this->sys_error($rst["message"]); exit; } $this->clean_mysqli_connection($this->db_onedev->conn_id); $sqlkapus = "SELECT sys_faktur_08_sum.*, sysFKapusSumIsPosted, sysFKapusSumDate, sysFKapusSumID as id, sysFKapusSumID, FORMAT(sysFaktur08SumAmountAfterRounding,0) as kapus, FORMAT(sysFaktur08SumTotalAfterRounding,0) as kascabang, FORMAT(sysFaktur08SumTotalAfterRounding - sysFaktur08SumAmountAfterRounding,0) as kascabang_only, ROUND(sysFaktur08SumTargetPct,0) as target, sysFaktur08SumActualPct as actual, DATE_FORMAT(sysFKapusSumDate,'%d-%m-%Y') as tanggal, IFNULL(sysFaktur08SumIsPosted,'N') as sysFaktur08SumIsPosted from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where sysFKapusSumID = $id"; $querykapus = $this->db_onedev->query($sqlkapus); $rows = $querykapus->result_array(); $result = array ("total" => count($rows), "records" => $rows, "message" =>$rst["message"]); $this->sys_ok($result); exit; } function add_efaktur($hid,$date,$percent) { // get total query $userid = $this->sys_user["M_UserID"]; $total_order = 0; $total_efaktur = 0; // $percent * $total faktur $sqltotal = "SELECT $percent/100*SUM(T_OrderHeaderTotal) as total FROM t_orderheader JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND M_PatientM_IdTypeID = 1 AND M_PatientIDNumber NOT LIKE '00%' WHERE T_OrderHeaderM_CompanyID IN(1222,1235) AND date(T_OrderHeaderDate) = '{$date}' AND T_OrderHeaderID NOT IN ( SELECT sysFKapusT_OrderHeaderID FROM sys_f_kapus WHERE sysFKapusDate = '{$date}' )"; $total_efaktur = $this->db_onedev->query($sqltotal)->row()->total; $sqltotalorder = "SELECT SUM(T_OrderHeaderTotal) as total FROM t_orderheader JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND M_PatientM_IdTypeID = 1 AND M_PatientIDNumber NOT LIKE '00%' WHERE T_OrderHeaderM_CompanyID IN(1222,1235) AND date(T_OrderHeaderDate) = '{$date}' AND T_OrderHeaderID NOT IN ( SELECT sysFKapusT_OrderHeaderID FROM sys_f_kapus WHERE sysFKapusDate = '{$date}' )"; $total_order = $this->db_onedev->query($sqltotalorder)->row()->total; //echo $this->db_onedev->last_query(); // get listing t_orderheaderid $sql = "SELECT T_OrderHeaderID,T_OrderHeaderTotal FROM t_orderheader JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND M_PatientM_IdTypeID = 1 AND M_PatientIDNumber NOT LIKE '00%' WHERE T_OrderHeaderM_CompanyID IN(1222,1235) AND date(T_OrderHeaderDate) ='{$date}' AND T_OrderHeaderID NOT IN ( SELECT sysFKapusT_OrderHeaderID FROM sys_f_kapus WHERE sysFKapusDate = '{$date}' ) ORDER BY T_OrderHeaderID ASC"; $qry = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if (!$qry) { // ada error query return [false, $this->db_onedev->error()["message"]]; } $rows = $qry->result_array(); $running_total = 0; $daftar_order_id = []; foreach ($rows as $r) { $daftar_order_id[] = $r["T_OrderHeaderID"]; $running_total += $r["T_OrderHeaderTotal"]; if ($running_total >= $total_efaktur) { break; } } // insert kan ke efaktur dari $daftar_order_id if (count($daftar_order_id) > 0) { $s_ids = implode(",", $daftar_order_id); $sql = "INSERT INTO sys_faktur_08(sysFaktur08sysFaktur08SumID, sysFaktur08T_OrderHeaderID, sysFaktur08Amount, sysFaktur08AmountAfterRounding, sysFaktur08M_UserID, sysFaktur08Date, sysFaktur08Pct, sysFaktur08Created) SELECT $hid as sysFaktur08sysFaktur08SumID, T_OrderHeaderID as sysFaktur08T_OrderHeaderID, T_OrderHeaderTotal as sysFaktur08Amount, (T_OrderHeaderTotal - T_OrderHeaderTotal mod 500) as sysFaktur08AmountAfterRounding, $userid as sysFaktur08M_UserID, '{$date}' as sysFaktur08Date, $percent as sysFaktur08Pct, now() as sysFaktur08Created FROM t_orderheader WHERE T_OrderHeaderID in ($s_ids)"; $qry = $this->db_onedev->query($sql); // echo $this->db_onedev->last_query(); } if (! $qry ) { return array("status" => "ERR" , "message" => "Error INSERT sys_faktur_08"); } $sql = "UPDATE sys_faktur_08_sum SET sysFaktur08SumTotal = $total_order, sysFaktur08SumTotalAfterRounding = $total_order - $total_order mod 500, sysFaktur08SumAmountAfterRounding = $running_total - $running_total mod 500, sysFaktur08SumAmount = $running_total, sysFaktur08SumTargetPct = $percent, sysFaktur08SumActualPct = $running_total / $total_order * 100, sysFaktur08SumUserID = $userid, sysFaktur08SumLastUpdated = now() WHERE sysFaktur08SumID = $hid"; $qry = $this->db_onedev->query($sql); return array("status" => "OK" , "message" => ""); } function konfirmasi(){ try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $year = $prm['year']; $month = $prm['month']; $userid = $this->sys_user["M_UserID"]; $tanggal = $prm["tanggal"]; $sqlfaktur = "select COUNT(sysFaktur08ID) as totalfaktur FROM sys_faktur_08 WHERE sysFaktur08sysFaktur08SumID = $id AND sysFaktur08IsActive = 'Y'"; $totalfaktur = $this->db_onedev->query($sqlfaktur)->row()->totalfaktur; $sqlnomor = "select COUNT(sysFaktur08NomorID) as totalnomor FROM sys_faktur_08_nomor WHERE sysFaktur08NomorIsActive = 'Y' AND sysFaktur08NomorIsUsed = 'N' AND sysFaktur08NomorDate >= '{$tanggal}'"; $totalnomor = $this->db_onedev->query($sqlnomor)->row()->totalnomor; if($totalnomor < $totalfaktur){ $this->sys_error("Nomor E-Faktur Tidak Cukup"); exit; }else{ // get listing t_orderheaderid $sql = "SELECT sysFaktur08ID FROM sys_faktur_08 WHERE sysFaktur08sysFaktur08SumID = $id AND sysFaktur08IsActive = 'Y'"; $qry = $this->db_onedev->query($sql); if (!$qry) { // ada error query return [false, $this->db_onedev->error()["message"]]; } $rows = $qry->result_array(); foreach ($rows as $r) { $hid = $r['sysFaktur08ID']; $sql = "UPDATE sys_faktur_08 SET sysFaktur08NoEfaktur = `fn_faktur_08_get_nomor`('{$tanggal}'), sysFaktur08LastUpdated = now() WHERE sysFaktur08ID = $hid"; $qry = $this->db_onedev->query($sql); if (! $qry ) { return array("status" => "ERR" , "message" => "Error INSERT sys_faktur_08"); } } $sql = "update sys_faktur_08_sum set sysFaktur08SumIsPosted = 'Y',sysFaktur08SumUserID = '{$userid}' where sysFaktur08SumID = ?"; $query = $this->db_onedev->query($sql, array($id)); if ($query) { $sqlkapus = "SELECT *, sysFKapusSumID as id, FORMAT(sysFKapusSumAmount,0) as kapus, FORMAT(sysFKapusSumTotal,0) as kascabang, ROUND(sysFKapusSumTargetPct,0) as target, sysFKapusSumActualPct as actual, DATE_FORMAT(sysFKapusSumDate,'%d-%m-%Y') as tanggal from sys_f_kapus_sum WHERE sysFKapusSumID = $id"; $querykapus = $this->db_onedev->query($sqlkapus); $rows = $querykapus->result_array(); } else { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $result = array ("total" => count($rows), "records" => $rows); $this->sys_ok($result); } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }