db_regional = $this->load->database("regional", true); if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userID = $this->sys_user['M_UserID']; $sql_cek_token = "SELECT M_UserActiveToken from one_mitra.m_user WHERE M_UserID = ? AND M_UserActiveToken IS NOT NULL"; $qry_token = $this->db->query($sql_cek_token, [$userID]); if (!$qry_token) { $this->sys_error('Invalid token'); exit; } $rows_token = $qry_token->result_array(); if (count($rows_token) == 0) { $this->sys_error('Invalid token'); exit; } } function chartdata() { try { $prm = $this->sys_input; if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } //month/year $filter = 'month'; if (isset($prm['filter'])) { $filter = $prm['filter']; } $company_id = $prm['company_id']; $filter_sql = ""; $filter_sql2 = ""; $filter_sql_total = ""; $select_sql = ""; if ($filter == 'month') { $select_sql = "DATE_FORMAT(T_OrderDate, '%d') AS day"; $filter_sql2 = "AND MONTH(T_OrderDate) = MONTH(CURDATE())"; $filter_sql = ", DATE_FORMAT(T_OrderDate, '%Y-%m-%d') ORDER BY day"; $filter_sql_total = " DATE_FORMAT(T_OrderDate, '%Y-%m-%d') ORDER BY day"; } if ($filter == 'year') { $select_sql = "DATE_FORMAT(T_OrderDate, '%m') AS month"; $filter_sql = ", DATE_FORMAT(T_OrderDate, '%Y-%m') ORDER BY month"; $filter_sql_total = " DATE_FORMAT(T_OrderDate, '%Y-%m') ORDER BY month"; } // SELECT COUNT(T_OrderID) AS total, // T_OrderStatus AS status, // DATE_FORMAT(T_OrderDate, '%d') AS day // from one_mitra.t_order // WHERE T_OrderIsActive = 'Y' // AND YEAR(T_OrderDate) = YEAR(CURDATE()) // AND T_OrderM_CompanyID = 1222 // GROUP BY T_OrderStatus // ,DATE_FORMAT(T_OrderDate, '%Y-%m-%d') ORDER BY day $sql = "SELECT COUNT(T_OrderID) AS total, T_OrderStatus AS status, $select_sql FROM one_mitra.t_order WHERE T_OrderIsActive = 'Y' AND YEAR(T_OrderDate) = YEAR(CURDATE()) $filter_sql2 AND T_OrderM_CompanyID = ? GROUP BY T_OrderStatus $filter_sql"; $query = $this->db->query($sql, [$company_id]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $data = $query->result_array(); $sql_total = "SELECT COUNT(T_OrderID) AS total, T_OrderStatus AS status, $select_sql FROM one_mitra.t_order WHERE T_OrderIsActive = 'Y' AND YEAR(T_OrderDate) = YEAR(CURDATE()) $filter_sql2 AND T_OrderM_CompanyID = ? GROUP BY $filter_sql_total"; $query_total = $this->db->query($sql_total, [$company_id]); if (!$query_total) { $message = $this->db->error(); $this->sys_error($message); exit; } $data_total = $query_total->result_array(); $result = array( "N" => [], "S" => [], "Y" => [], "T" => [], "last_query" => $this->db->last_query() ); // N = New, S= Send, P= Parsial, D=Done, if ($filter == 'month') { for ($i = 0; $i < count($data); $i++) { if ($data[$i]['status'] == 'N') { $result['N'][] = "{$data[$i]['day']}|{$data[$i]['total']}"; } if ($data[$i]['status'] == 'S') { $result['S'][] = "{$data[$i]['day']}|{$data[$i]['total']}"; } if ($data[$i]['status'] == 'Y') { $result['Y'][] = "{$data[$i]['day']}|{$data[$i]['total']}"; } } for ($i = 0; $i < count($data_total); $i++) { $result['T'][] = "{$data_total[$i]['day']}|{$data_total[$i]['total']}"; } } if ($filter == 'year') { for ($i = 0; $i < count($data); $i++) { if ($data[$i]['status'] == 'N') { $result['N'][] = "{$data[$i]['month']}|{$data[$i]['total']}"; } if ($data[$i]['status'] == 'S') { $result['S'][] = "{$data[$i]['month']}|{$data[$i]['total']}"; } if ($data[$i]['status'] == 'Y') { $result['Y'][] = "{$data[$i]['month']}|{$data[$i]['total']}"; } } for ($i = 0; $i < count($data_total); $i++) { $result['T'][] = "{$data_total[$i]['month']}|{$data_total[$i]['total']}"; } } $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function getdelivery() { try { $prm = $this->sys_input; if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } // print_r($prm); $companyID = $prm['company_id']; $sql = "SELECT T_OrderDeliveryID AS id, DATE_FORMAT(T_OrderDeliveryDate, '%d/%m/%Y') AS date, T_OrderDeliveryNumber AS order_number, M_UserUsername AS pic, T_DeliveryTypeName AS type, T_OrderDeliveryStatus AS status, M_BranchName AS destination FROM one_mitra.t_orderdelivery JOIN one_mitra.m_user ON T_OrderDeliveryStaffID = M_UserID AND M_UserIsActive = 'Y' JOIN one_mitra.t_deliverytype ON T_OrderDeliveryT_DeliverytypeID = T_DeliveryTypeID AND T_DeliveryTypeIsActive = 'Y' JOIN m_branch ON T_OrderDeliveryDestination = M_BranchID AND M_BranchIsActive = 'Y' WHERE T_OrderDeliveryIsActive = 'Y' AND T_OrderDeliveryM_CompanyID = ? AND T_OrderDeliveryStatus IN ('S', 'P') ORDER BY T_OrderDeliveryDate DESC "; $query = $this->db->query($sql, [$companyID]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $search = $query->result_array(); // print_r($search); $this->sys_ok($search); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }