Files
2026-04-15 15:23:57 +07:00

923 lines
39 KiB
Plaintext

<?php
class Mutation extends MY_Controller
{
function __construct()
{
parent::__construct();
$this->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'] . '%';
}
$filter_company_address = '';
if (isset($prm['from_company_address']) && intval($prm['from_company_address']) > 0) {
$filter_company_address = ' AND MutasiReceiveFromCompanyID = '.$prm['from_company_address'];
}
$order_by = "MutasiReceiveNumber";
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 MutasiReceiveID as id
FROM `mutasireceive`
JOIN `companyaddress` ON MutasiReceiveFromCompanyID = CompanyAddressID $filter_company_address
WHERE
MutasiReceiveIsActive = 'Y' AND (DATE(MutasiReceiveDate) BETWEEN ? AND ?) AND
( MutasiReceiveNumber like ? ) $filter_status
) x";
$qry = $this->db_inventory->query($sql,array($prm['start_date'],$prm['end_date'],$search));
$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 MutasiReceiveID as id,
MutasiReceiveNumber as code,
MutasiReceiveDate as mutation_date,
MutasiReceiveFromCompanyID as from_company_address_id,
CompanyAddressLabel as from_company_address_name,
CompanyAddressDescription as from_company_address_description,
M_BranchName as branch_name,
WarehouseName as warehouse_name,
WarehouseID as warehouse_id,
MutasiReceiveDate as receive_date,
MutasiReceiveNote as note,
M_UserUsername as receiver_username,
DATE_FORMAT(MutasiReceiveCreated,'%d-%m-%Y %H:%i') as received_at,
'' as details
FROM `mutasireceive`
JOIN `warehouse` ON MutasiReceiveWarehouseID = WarehouseID
JOIN `companyaddress` ON MutasiReceiveFromCompanyID = CompanyAddressID $filter_company_address
JOIN `company` ON CompanyAddressCompanyID = CompanyID
JOIN $this->db_onex.`m_branch` ON CompanyM_BranchID = M_BranchID
JOIN $this->db_onex.`m_user` ON MutasiReceiveUserID = M_UserID
WHERE
MutasiReceiveIsActive = 'Y' AND (DATE(MutasiReceiveDate) BETWEEN ? AND ?) AND
( MutasiReceiveNumber like ? )
ORDER BY $order_by $order_type
LIMIT ? OFFSET ?";
$qry = $this->db_inventory->query($sql, array($prm['start_date'],$prm['end_date'],$search, $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("mutasireceive order select error", $this->db_inventory->last_query());
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_details(){
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$sql = "SELECT MutasiReceiveDetailID as detail_id,
MutasiReceiveDetailItemID as item_id,
ItemName as item_name,
MutasiReceiveDetailItemUnitID as unit_id,
ItemUnitName as unit_name,
MutasiReceiveDetailStockNumber as stock_number,
IFNULL(MutasiReceiveDetailBatchNo,'-') as batch_no,
IF(MutasiReceiveDetailED IS NOT NULL, DATE_FORMAT(MutasiReceiveDetailED,'%d-%m-%Y'),'-') as ed,
MutasiReceiveDetailQty as qty
FROM mutasireceivedetail
JOIN item ON MutasiReceiveDetailItemID = ItemID
JOIN itemunit ON MutasiReceiveDetailItemUnitID = ItemUnitID
WHERE
MutasiReceiveDetailMutasiReceiveID = ? AND MutasiReceiveDetailIsActive = 'Y'
GROUP BY MutasiReceiveDetailID
";
$query = $this->db_inventory->query($sql,array($prm['id']));
//echo $this->db_onedev->last_query();
if ($query) {
$rows = $query->result_array();
//echo $this->db_onedev->last_query();
$result = array( "records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("mutasidetail rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function search_to_company_address(){
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$max_rst = 12;
$tot_count =0;
$q = [
'search' => '%'
];
if ($prm['search'] != '')
{
$q['search'] = "%{$prm['search']}%";
}
$sql = "
SELECT CompanyAddressID as id, CompanyAddressLabel as name, CompanyAddressDescription as description,
M_BranchID as branch_id, M_BranchName as branch_name
FROM companyaddress
JOIN company ON CompanyAddressCompanyID = CompanyID
JOIN $this->db_onex.m_branch ON CompanyM_BranchID = M_BranchID
WHERE
CompanyName like ?
AND CompanyAddressIsActive = 'Y'
ORDER BY CompanyName ASC
";
$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( "records" => $rows, "total_display" => sizeof($rows));
$this->sys_ok($result);
}
else {
$this->sys_error_db("companyaddress rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_from_company_address(){
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql = "SELECT CompanyAddressID as id, CompanyAddressLabel as name, CompanyAddressDescription as description,
M_BranchID as branch_id, M_BranchName as branch_name
FROM companyaddress
JOIN company ON CompanyAddressCompanyID = CompanyID
JOIN $this->db_onex.m_branch ON CompanyM_BranchID = M_BranchID
WHERE
CompanyAddressIsActive = 'Y'
ORDER BY CompanyName ASC
";
$query = $this->db_inventory->query($sql);
if ($query) {
$rows = $query->result_array();
array_push($rows,array('id'=>0,'name'=>'Semua'));
//echo $this->db_onedev->last_query();
$result = array( "records" => $rows, "total_display" => sizeof($rows));
$this->sys_ok($result);
}
else {
$this->sys_error_db("companyaddress rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function save(){
try {
if (!$this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$userid = $this->sys_user['M_UserID'];
$prm = $this->sys_input;
$note = "";
if (isset($prm['note'])) {
$note = trim($prm['note']);
}
$this->db_inventory->trans_start();
$this->db_inventory->trans_strict(FALSE);
$numbering = '';
$sql = "SELECT `fn_numbering`('MRB') as numbering";
$qry = $this->db_inventory->query($sql);
if($qry){
$numbering = $qry->row()->numbering;
}
else{
$this->sys_error_db("get numbering error", $this->db_inventory->last_query());
exit;
}
$last_id = 0;
$now = new DateTime();
$sql = "INSERT INTO mutasireceive(
MutasiReceiveNumber,
MutasiReceiveDate,
MutasiReceiveWarehouseID,
MutasiReceiveFromCompanyID,
MutasiReceiveNote,
MutasiReceiveUserID,
MutasiReceiveCreated,
MutasiReceiveLastUpdated
)
VALUES(
?,?,?,?,?,?,NOW(),NOW()
)";
$param_insert = array(
$numbering,
$prm['receive_date'],
$prm['warehouse']['id'],
$prm['from_company_address']['id'],
$note,
$userid
);
$qry = $this->db_inventory->query($sql, $param_insert);
$last_id = 0;
if($qry){
$last_id = $this->db_inventory->insert_id();
}
else{
//echo $this->db_inventory->last_query();
$this->sys_error_db("save receive mutasi error", $this->db_inventory->last_query());
exit;
}
if(count($prm['details'])>0){
foreach ($prm['details'] as $key => $value) {
if(intval($value['qty']) > 0){
$arr_insert_detail = array(
'MutasiReceiveDetailMutasiReceiveID' => $last_id,
'MutasiReceiveDetailMutasiTransitDetailID' => $value['transit_detail_id'],
'MutasiReceiveDetailItemID' => $value['item_id'],
'MutasiReceiveDetailItemUnitID' => $value['unit_id'],
'MutasiReceiveDetailStockNumber' => $value['stock_number'],
'MutasiReceiveDetailBatchNo' => $value['batch_no'],
'MutasiReceiveDetailQty' => $value['qty'],
'MutasiReceiveDetailUserID' => $userid,
'MutasiReceiveDetailCreated' => date("Y-m-d H:i:s"),
'MutasiReceiveDetailLastUpdated' => date("Y-m-d H:i:s")
);
$valid_ed = $this->validateDate($value['ed'])?$value['value']:NULL;
if($valid_ed && $value['ed'] != '0000-00-00')
$arr_insert_detail['MutasiReceiveDetailED'] = $value['ed'];
$qry = $this->db_inventory->insert('mutasireceivedetail', $arr_insert_detail);
//echo $this->db_inventory->last_query();
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("save mutasidetail error", $this->db_inventory->last_query());
exit;
}
$detail_id = $this->db_inventory->insert_id();
//start insert stock
//get default almari
$sql = "SELECT WarehouseAlmariID as almari_id,
WarehouseRackID as rack_id
FROM warehousealmari
JOIN warehouserack ON WarehouseRackWarehouseAlmariID = WarehouseAlmariID AND
WarehouseRackIsActive = 'Y' AND
WarehouseRackRow = 1 AND
WarehouseRackCol = 1
WHERE
WarehouseAlmariWarehouseID = ? AND
WarehouseAlmariIsActive = 'Y'
ORDER BY WarehouseAlmariID ASC
LIMIT 1";
$qry = $this->db_inventory->query($sql, array($prm['warehouse']['id']));
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("select warehousealmari error", $this->db_inventory->last_query());
exit;
}
$data_almari_rack = $qry->row_array();
$select_ed = "";
if($valid_ed && $value['ed'] != '0000-00-00')
$select_ed = " AND StockED = '{$value['ed']}'";
$sql = "SELECT *
FROM stock
WHERE
StockWarehouseID = ? AND
StockWarehouseAlmariID = ? AND
StockWarehouseRackID = ? AND
StockStockNumber = ? AND
StockBatchNo = ? AND
StockItemID = ? AND
StockItemUnitID = ?
$select_ed
LIMIT 1";
$qry = $this->db_inventory->query($sql, array(
$prm['warehouse']['id'],
$data_almari_rack['almari_id'],
$data_almari_rack['rack_id'],
$value['stock_number'],
$value['batch_no'],
$value['item_id'],
$value['unit_id']
));
//echo $this->db_inventory->last_query();
if($qry->row_array()){
$data_stock_exist = $qry->row_array();
$sql = "UPDATE stock SET StockQty = ?
WHERE
StockID = ?";
$qry = $this->db_inventory->query($sql, array(
$data_stock_exist['StockID'],
intval($data_stock_exist['StockQty']) + intval($value['qty'])
));
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("update stock error", $this->db_inventory->last_query());
exit;
}
}else{
$arr_insert_stock = array(
'StockWarehouseID' => $prm['warehouse']['id'],
'StockWarehouseAlmariID' => $data_almari_rack['almari_id'],
'StockWarehouseRackID' => $data_almari_rack['rack_id'],
'StockStockNumber' => $value['stock_number'],
'StockItemID' => $value['item_id'],
'StockItemUnitID' => $value['unit_id'],
'StockBatchNo' => $value['batch_no'],
'StockQty' => $value['qty'],
'StockUserID' => $userid
);
if($valid_ed && $value['ed'] != '0000-00-00')
$arr_insert_stock['StockED'] = $value['ed'];
$qry = $this->db_inventory->insert('stock', $arr_insert_stock);
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("save mutasidetail error", $this->db_inventory->last_query());
exit;
}
}
//end insert stock
//start insert stocklog
$arr_insert_stock = array(
'StockLogWarehouseID' => $prm['warehouse']['id'],
'StockLogWarehouseAlmariID' => $data_almari_rack['almari_id'],
'StockLogWarehouseRackID' => $data_almari_rack['rack_id'],
'StockLogStockNumber' => $value['stock_number'],
'StockLogItemID' => $value['item_id'],
'StockLogItemUnitID' => $value['unit_id'],
'StockLogBatchNo' => $value['batch_no'],
'StockLogQty' => $value['qty'],
'StockLogDatetime' => date("Y-m-d H:i:s"),
'StockLogUserID' => $userid,
'StockLogReffID' => $detail_id,
'StockLogStatus' => 'MRB'
);
if($valid_ed && $value['ed'] != '0000-00-00')
$arr_insert_stock['StockLogED'] = $value['ed'];
$qry = $this->db_inventory->insert('stocklog', $arr_insert_stock);
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("save stocklog error", $this->db_inventory->last_query());
exit;
}
//end insert stocklog
//start insert stockcard
$select_ed_card = "";
if($valid_ed && $value['ed'] != '0000-00-00')
$select_ed_card = " AND StockCardED = '{$value['ed']}'";
$sql = "SELECT *
FROM stockcard
WHERE
StockCardWarehouseID = ? AND
StockCardItemID = ? AND
StockCardItemUnitID = ? AND
StockCardBatchNo = ? $select_ed_card
ORDER BY StockCardDatetime DESC
LIMIT 1";
$qry = $this->db_inventory->query($sql,array(
$prm['warehouse']['id'],
$value['item_id'],
$value['unit_id'],
$value['batch_no']
));
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("save stockcard error", $this->db_inventory->last_query());
exit;
}
$last_qty = 0;
if($qry->row_array()){
$last_qty = $qry->row_array()['StockCardAfter'];
}
$arr_insert_stockcard = array(
'StockCardWarehouseID' => $prm['warehouse']['id'],
'StockCardItemID' => $value['item_id'],
'StockCardItemUnitID' => $value['unit_id'],
'StockCardBatchNo' => $value['batch_no'],
'StockCardBefore' => $last_qty,
'StockCardIn' => $value['qty'],
'StockCardOut' => 0,
'StockCardAfter' => $last_qty+intval($value['qty']),
'StockCardDatetime' => date("Y-m-d H:i:s"),
'StockCardUserID' => $userid
);
if($valid_ed && $value['ed'] != '0000-00-00')
$arr_insert_stockcard['StockCardED'] = $value['ed'];
$qry = $this->db_inventory->insert('stockcard', $arr_insert_stockcard);
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("insert stockcard error", $this->db_inventory->last_query());
exit;
}
//end insert stockcard
//start update receive qty di mutasirequestdetail
$sql = "SELECT * FROM mutasirequestdetail WHERE MutasiRequestDetailID = ?";
$qry = $this->db_inventory->query($sql,array(
$value['mutasi_request_detail_id'],
));
if(!$qry){
$this->sys_error_db("select mutasirequestdetail error", $this->db_inventory->last_query());
exit;
}
$data_request_detail = $qry->row_array();
$status_detail = 'P';
$request_qty = intval($data_request_detail['MutasiRequestDetailQty']);
$receive_qty = intval($data_request_detail['MutasiRequestDetailQty']) + intval($value['qty']);
if($request_qty == $receive_qty)
$status_detail = 'D';
$sql = "UPDATE mutasirequestdetail
SET MutasiRequestDetailReceiveQty = ?,
MutasiRequestDetailStatus = ?
WHERE
MutasiRequestDetailID = ?
";
$qry = $this->db_inventory->query($sql,array(
$receive_qty,
$status_detail,
$value['mutasi_request_detail_id']
));
if(!$qry){
$this->sys_error_db("update mutasirequestdetail error", $this->db_inventory->last_query());
exit;
}
$status_header = 'P';
$sql = "SELECT COUNT(*) as x_count
FROM mutasirequestdetail
WHERE
MutasiRequestDetailMutasiRequestID = ? AND
MutasiRequestDetailIsActive = 'Y' AND
( MutasiRequestDetailStatus <> 'D' AND MutasiRequestDetailStatus <> 'C' )";
$qry = $this->db_inventory->query($sql,array(
$data_request_detail['MutasiRequestDetailMutasiRequestID']
));
if(!$qry){
$this->sys_error_db("select mutasirequestdetail by header error", $this->db_inventory->last_query());
exit;
}
$data_request_header = $qry->row_array();
if($data_request_header['x_count'] == 0)
$status_header = 'D';
$sql = "UPDATE mutasirequest
SET MutasiRequestStatus = ?
WHERE
MutasiRequestID = ?
";
$qry = $this->db_inventory->query($sql,array(
$status_header,
$data_request_detail['MutasiRequestDetailMutasiRequestID'],
));
if(!$qry){
$this->sys_error_db("update mutasirequestdetail error", $this->db_inventory->last_query());
exit;
}
$arr_insert_respon = array(
'MutasiRequestResponType' => 'T',
'MutasiRequestResponToCompanyAdddressID' => $value['from_address_company_id'],
'MutasiRequestResponFromCompanyAdddressID' => $value['to_address_company_id'] ,
'MutasiRequestResponMutasiRequestDetailID' => $value['mutasi_request_detail_id'],
'MutasiRequestResponStatus' => $status_header,
'MutasiRequestResponMutasiRequestReceiveID' => $value['mutasi_request_receive_id'],
'MutasiRequestResponReceive' => $receive_qty ,
'MutasiRequestResponCreated' => date("Y-m-d H:i:s")
);
$qry = $this->db_inventory->insert('mutasirequestrespon', $arr_insert_respon);
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("insert mutasirequestrespon error", $this->db_inventory->last_query());
exit;
}
//end update receive qty di mutasirequestdetail
//start update receive qty di mutasitransitdetail
$sql = "UPDATE mutasitransitdetail
SET MutasiTransitDetailReceiveQty = ?,
MutasiTransitDetailIsReceive = 'S',
MutasiTransitDetailMutasiReceiveID = ?
WHERE
MutasiTransitDetailID = ?
";
$qry = $this->db_inventory->query($sql,array(
$value['qty'],
$last_id,
$value['transit_detail_id'],
));
if(!$qry){
//echo $this->db_inventory->last_query();
$this->sys_error_db("update receive qty transitdetail error", $this->db_inventory->last_query());
exit;
}
//end update receive qty di mutasitransitdetail
}
}
}
$id = $last_id;
$sql = "SELECT mutasireceive.*, '' as details
FROM mutasireceive
WHERE MutasiReceiveID = ? ";
$qry = $this->db_inventory->query($sql, array($id));
//echo $this->db_inventory->last_query();
if(!$qry){
$this->sys_error_db("select mutasireceive error", $this->db_inventory->last_query());
exit;
}
$row_after = $qry->row_array();
$sql = "SELECT *, '' as details
FROM `mutasireceivedetail`
WHERE
MutasiReceiveDetailMutasiReceiveID = ? AND
MutasiReceiveDetailIsActive = 'Y'";
$qry = $this->db_inventory->query($sql, array($id));
if(!$qry){
$this->sys_error_db("select mutasireceivedetail error", $this->db_inventory->last_query());
exit;
}
$row_after['details'] = $qry->result_array();
$data_log_after = $row_after;
$sql = "INSERT INTO mutasireceive_log (
MutasiReceiveLogReceiveID,
MutasiReceiveLogStatus,
MutasiReceiveLogBefore,
MutasiReceiveLogAfter,
MutasiReceiveLogUserID,
MutasiReceiveLogCreated
)
VALUES(
?,?,NULL,?,?,NOW()
)";
$qry = $this->db_inventory_log->query($sql, array($id,'ADD',json_encode($data_log_after),$userid));
if(!$qry){
$this->sys_error_db("insert log error", $this->db_inventory_log->last_query());
exit;
}
$this->db_inventory->trans_complete();
$result = array(
"message" => ''
);
$this->sys_ok($result);
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
// The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue.
return $d && $d->format($format) === $date;
}
function get_data_company_default(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql = "SELECT CompanyID as id,
CompanyName as name,
'' as address
FROM company
JOIN one_aditya.m_branch ON CompanyM_BranchID = M_BranchID AND M_BranchIsDefault = 'Y'
WHERE
CompanyIsActive = 'Y' LIMIT 1";
$query = $this->db_inventory->query($sql);
if ($query) {
$row = $query->row_array();
$sql = "SELECT CompanyAddressID as id,
CompanyAddressLabel as name,
CompanyAddressDescription as description
FROM companyaddress
WHERE
CompanyAddressCompanyID = ? AND CompanyAddressIsActive = 'Y'";
$query = $this->db_inventory->query($sql,array($row['id']));
$data_address = $query->result_array();
$row['address'] = $data_address;
$result = array("records" => $row);
$this->sys_ok($result);
}
else {
$this->sys_error_db("expedition rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_warehouse(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql = "SELECT WarehouseID as id,
WarehouseName as name
FROM warehouse
JOIN warehousealmari ON WarehouseAlmariWarehouseID = WarehouseID AND WarehouseAlmariIsActive = 'Y'
JOIN warehouserack ON WarehouseRackWarehouseAlmariID = WarehouseAlmariID AND WarehouseRackIsActive = 'Y'
WHERE
WarehouseIsOffice = 'Y' AND WarehouseIsActive = 'Y'";
$query = $this->db_inventory->query($sql);
if ($query) {
$rows = $query->result_array();
$result = array("records" => $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 get_expedition_staff(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql = "SELECT M_StaffID as id,
M_StaffName as name
FROM expeditionstaff
JOIN $this->db_onex.m_staff ON ExpeditionStaffM_StaffID = M_StaffID AND M_StaffIsActive = 'Y'
WHERE
ExpeditionStaffIsActive = 'Y'";
$query = $this->db_inventory->query($sql);
if ($query) {
$rows = $query->result_array();
$result = array("records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("expedition rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_from_company_address_form(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql = "SELECT CompanyAddressID as id,
CompanyAddressLabel as name,
CompanyAddressDescription as description,
CompanyName as company_name
FROM companyaddress
JOIN mutasitransitdetail ON MutasiTransitDetailFromCompanyAddressID = CompanyAddressID AND
MutasiTransitDetailIsReceive = 'N'
JOIN company ON CompanyAddressCompanyID = CompanyID
WHERE
CompanyAddressIsActive = 'Y'
GROUP BY CompanyAddressID";
$query = $this->db_inventory->query($sql);
if ($query) {
$rows = $query->result_array();
$result = array("records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("companyaddress rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_data_transit(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$userid = $this->sys_user['M_UserID'];
$prm = $this->sys_input;
$id = $prm['company_address_id'];
$sql = "SELECT MutasiTransitDetailID as transit_detail_id,
MutasiTransitDetailMutasiNumber as mutasi_number,
MutasiTransitDetailMutasiID as mutasi_id,
CompanyName as company_name,
ItemID as item_id,
ItemUnitID as unit_id,
MutasiTransitDetailQty as qty_sent,
ItemName as item_name,
ItemUnitName as unit_name,
CONCAT(ItemName,' : ',ItemUnitName) as itemunit_name,
MutasiTransitDetailQty as qty,
MutasiTransitDetailBatchNo as batch_no,
MutasiTransitDetailStockNumber as stock_number,
MutasiTransitDetailED as ed,
MutasiTransitDetailFromCompanyAddressID as from_address_company_id,
MutasiTransitDetailToCompanyAddressID as to_address_company_id,
MutasiTransitDetailExpeditionName as expedition_name,
MutasiTransitDetailExpeditionStaff as expedition_staff,
MutasiTransitDetailMutasiReceiveID as mutasi_receive_id,
MutasiTransitDetailMutasiDetailID as mutasi_detail_id,
MutasiTransitDetailMutasiRequestReceiveID as mutasi_request_receive_id,
MutasiTransitDetailMutasiRequestDetailID as mutasi_request_detail_id,
MutasiTransitDetailNote as note
FROM mutasitransitdetail
JOIN companyaddress ON MutasiTransitDetailFromCompanyAddressID = CompanyAddressID
JOIN company ON CompanyAddressCompanyID = CompanyID
JOIN item ON MutasiTransitDetailItemID = ItemID
JOIN itemunit ON MutasiTransitDetailItemUnitID = ItemUnitID
WHERE
MutasiTransitDetailIsSend = 'Y' AND MutasiTransitDetailIsReceive = 'N' AND MutasiTransitDetailIsActive = 'Y' AND
MutasiTransitDetailFromCompanyAddressID = ?";
$query = $this->db_inventory->query($sql,array($id));
//echo $this->db_inventory->last_query();
if ($query) {
$rows = $query->result_array();
$result = array("records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("get data transit rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_printout(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$sql = "SELECT *
FROM r_report
WHERE
R_ReportCode = 'MPB' AND R_ReportIsActive = 'Y'";
$query = $this->db_inventory->query($sql);
if ($query) {
$rows = $query->row_array();
$result = array("records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("r_report rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}