db_inventory = $this->load->database("inventory", true); $this->db_inventory_log = $this->load->database('inventory_log', true); $this->db_onex = 'one_aditya'; } function search() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = "%%"; if (isset($prm['search']) && trim($prm["search"]) != '') { $search = trim($prm["search"]); $search = '%' . $prm['search'] . '%'; } $start_date = date("Y-m-d"); if (isset($prm['start_date'])) { $start_date = $prm["start_date"]; } $end_date = date("Y-m-d"); if (isset($prm['end_date'])) { $end_date = $prm["end_date"]; } $filter_warehouse_from = ''; if (isset($prm['warehouse_from_id']) && intval($prm['warehouse_from_id']) > 0) { $filter_warehouse_from = ' AND MutasiRequestInternalWarehouseID = '.$prm['warehouse_from_id']; } $filter_status = ''; if (isset($prm['status']) && count($prm['status']) > 0) { $status = ''; foreach ($prm['status'] as $k_status => $v_status) { if($status != '') $status .= ','; $status .= "'".$v_status['id']."'"; } $filter_status = ' AND MutasiRequestInternalDetailStatus IN ('.$status.')'; } $order_by = "MutasiRequestInternalDetailID"; if (isset($prm['order_by'])) { $order_by = trim($prm["order_by"]); } $order_type = "asc"; if (isset($prm['order_type'])) { $order_type = trim($prm["order_type"]); } $order = $order_by.' '.$order_type; $perpage = 10; $offset = ($prm['current_page'] - 1) * $perpage ; $sql = "SELECT COUNT(*) as total FROM ( SELECT MutasiRequestInternalDetailID as id FROM `mutasirequestinternaldetail` JOIN `mutasirequestinternal` ON MutasiRequestInternalDetailMutasiRequestInternalID = MutasiRequestInternalID JOIN `warehouse` ON MutasiRequestInternalWarehouseID = WarehouseID $filter_warehouse_from WHERE MutasiRequestInternalDetailIsActive = 'Y' AND (MutasiRequestInternalDate BETWEEN ? AND ?) $filter_status ) x"; $qry = $this->db_inventory->query($sql,array($start_date, $end_date)); $tot_count = 0; $tot_page = 0; if ($qry) { $tot_count = $qry->row()->total; $tot_page = ceil($tot_count/$perpage); } else { echo $this->db_inventory->last_query(); $this->sys_error_db("purchase order count error", $this->db_inventory->last_query()); exit; } $rows = array(); $sql = "SELECT MutasiRequestInternalDetailID as id, WarehouseID as warehouse_id_from, WarehouseName as warehouse_name_from, MutasiRequestInternalEstimasiDate as estimated_delivery, MutasiRequestInternalDate as request_date, MutasiRequestInternalNote as request_note, MutasiRequestInternalNumber as request_number, M_UserUsername as sender_name, MutasiRequestInternalConfirmAt as sent_at, MutasiRequestInternalDetailStatus as request_status, MutasiRequestInternalDetailCompleteNote as complete_note, MutasiRequestInternalDetailQty as request_qty, MutasiRequestInternalDetailReceiveQty as receive_qty, MutasiRequestInternalDetailItemID as item_id, ItemName as item_name, MutasiRequestInternalDetailUnitID as unit_id, ItemUnitName as unit_name FROM `mutasirequestinternaldetail` JOIN `mutasirequestinternal` ON MutasiRequestInternalDetailMutasiRequestInternalID = MutasiRequestInternalID JOIN `warehouse` ON MutasiRequestInternalWarehouseID = WarehouseID $filter_warehouse_from JOIN `item` ON MutasiRequestInternalDetailItemID = ItemID JOIN `itemunit` ON MutasiRequestInternalDetailUnitID = ItemUnitID JOIN $this->db_onex.`m_user` ON MutasiRequestInternalConfirmBy = M_UserID WHERE MutasiRequestInternalDetailIsActive = 'Y' AND (MutasiRequestInternalDate BETWEEN ? AND ?) $filter_status ORDER BY $order_by $order_type LIMIT ? OFFSET ?"; $qry = $this->db_inventory->query($sql, array($start_date, $end_date, $perpage, $offset)); //echo $this->db_inventory->last_query(); if($qry){ $rows = $qry->result_array(); $result = array("total_page" => $tot_page, "records" => $rows); $this->sys_ok($result); exit; } else{ //echo $this->db_inventory->last_query(); $this->sys_error_db("request select error", $this->db_inventory->last_query()); exit; } } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function get_warehouse_from(){ try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $sql = " SELECT WarehouseID as id, WarehouseName as name FROM warehouse WHERE WarehouseIsActive = 'Y' AND WarehouseIsOffice = 'N' "; $query = $this->db_inventory->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); array_push($rows,array('id'=>0,'name'=>'Semua')); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("warehouse rows",$this->db_inventory); exit; } } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function read(){ try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user['M_UserID']; $this->db_inventory->trans_start(); $this->db_inventory->trans_strict(FALSE); $sql = "UPDATE mutasirequestinternaldetail SET MutasiRequestInternalDetailStatus = 'R' WHERE MutasiRequestInternalDetailID = ? "; $query = $this->db_inventory->query($sql,array($prm['id'])); if (!$query) { $this->sys_error_db("m_city count",$this->db_inventory); exit; } $sql = "INSERT INTO mutasirequestinternal_status ( MutasiRequestInternalStatusMutasiRequestInternalDetailID, MutasiRequestInternalStatus, MutasiRequestInternalStatusCreated, MutasiRequestInternalStatusUserID ) VALUES( ?,?,NOW(),? )"; $query = $this->db_inventory->query($sql,array($prm['id'],'R',$userid)); if(!$query){ $this->sys_error_db("insert mutasirequestinternal_status",$this->db_inventory); exit; } $this->db_inventory->trans_complete(); $sql = "SELECT MutasiRequestInternalDetailID as id, WarehouseID as warehouse_id_from, WarehouseName as warehouse_name_from, MutasiRequestInternalEstimasiDate as estimated_delivery, MutasiRequestInternalDate as request_date, MutasiRequestInternalNote as request_note, M_UserUsername as sender_name, MutasiRequestInternalConfirmAt as sent_at, MutasiRequestInternalDetailStatus as request_status, MutasiRequestInternalDetailCompleteNote as complete_note, MutasiRequestInternalDetailQty as request_qty, MutasiRequestInternalDetailReceiveQty as receive_qty, MutasiRequestInternalDetailItemID as item_id, ItemName as item_name, MutasiRequestInternalDetailUnitID as unit_id, ItemUnitName as unit_name FROM `mutasirequestinternaldetail` JOIN `mutasirequestinternal` ON MutasiRequestInternalDetailMutasiRequestInternalID = MutasiRequestInternalID JOIN `warehouse` ON MutasiRequestInternalWarehouseID = WarehouseID JOIN `item` ON MutasiRequestInternalDetailItemID = ItemID JOIN `itemunit` ON MutasiRequestInternalDetailUnitID = ItemUnitID JOIN $this->db_onex.`m_user` ON MutasiRequestInternalConfirmBy = M_UserID WHERE MutasiRequestInternalDetailIsActive = 'Y' AND MutasiRequestInternalDetailID = ?"; $query = $this->db_inventory->query($sql,array($prm['id'])); if($query){ $row = $query->row_array(); }else{ $this->sys_error_db("after read row",$this->db_inventory); exit; } $result = array( 'records' => $row, "message" => '' ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }