1288 lines
58 KiB
PHP
1288 lines
58 KiB
PHP
<?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_warehouse = '';
|
|
if (isset($prm['warehouse_id']) && intval($prm['warehouse_id']) > 0) {
|
|
$filter_warehouse = ' AND StockWarehouseID = '.$prm['warehouse_id'];
|
|
}
|
|
|
|
$order_by = "WarehouseName";
|
|
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 StockID as id
|
|
FROM `stock`
|
|
JOIN `warehouse` ON StockWarehouseID = WarehouseID $filter_warehouse
|
|
JOIN `warehousealmari` ON StockWarehouseAlmariID = WarehouseAlmariID
|
|
JOIN `warehouserack` ON StockWarehouseRackID = WarehouseRackID
|
|
JOIN `item` ON StockWarehouseRackID = StockItemID
|
|
JOIN `itemunit` ON StockItemUnitID = ItemUnitID
|
|
WHERE
|
|
StockQty > 0 AND
|
|
( ItemName like ? )
|
|
) x";
|
|
$qry = $this->db_inventory->query($sql,array($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 StockID as id,
|
|
StockWarehouseID as warehouse_id,
|
|
WarehouseName as warehouse_name,
|
|
StockWarehouseAlmariID as almari_id,
|
|
WarehouseAlmariName as almari_name,
|
|
WarehouseRackID as rack_id,
|
|
WarehouseRackName as rack_name,
|
|
StockStockNumber as stock_number,
|
|
StockItemID as item_id,
|
|
ItemName as item_name,
|
|
StockItemUnitID as unit_id,
|
|
ItemUnitName as unit_name,
|
|
StockBatchNo as batch_no,
|
|
StockED as ed,
|
|
StockQty as qty
|
|
FROM `stock`
|
|
JOIN `warehouse` ON StockWarehouseID = WarehouseID $filter_warehouse
|
|
JOIN `warehousealmari` ON StockWarehouseAlmariID = WarehouseAlmariID
|
|
JOIN `warehouserack` ON StockWarehouseRackID = WarehouseRackID
|
|
JOIN `item` ON StockItemID = ItemID
|
|
JOIN `itemunit` ON StockItemUnitID = ItemUnitID
|
|
WHERE
|
|
StockQty > 0 AND
|
|
( ItemName like ? )
|
|
ORDER BY $order_by $order_type
|
|
LIMIT ? OFFSET ?";
|
|
$qry = $this->db_inventory->query($sql, array($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 * FROM (
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
PurchaseReceiveNumber as trx_number,
|
|
'Penerimaan Purchase' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN purchasereceivedetail ON StockCardReffID = PurchaseReceiveDetailID
|
|
JOIN purchasereceive ON PurchaseReceiveDetailPurchaseReceiveID = PurchaseReceiveID
|
|
WHERE
|
|
StockCardStatus = 'PRV' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
OpnameNumber as trx_number,
|
|
'Opname' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN opnamedetail ON StockCardReffID = OpnameDetailID
|
|
JOIN opname ON OpnameDetailOpnameID = OpnameID
|
|
WHERE
|
|
StockCardStatus = 'OPM' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
MutasiInternalNumber as trx_number,
|
|
'Mutasi Internal' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN mutasiinternaldetailstock ON MutasiInternalDetailStockID = StockCardReffID
|
|
JOIN mutasiinternaldetail ON MutasiInternalDetailID = MutasiInternalDetailStockMutasiInternalDetailID
|
|
JOIN mutasiinternal ON MutasiInternalDetailMutasiInternalID = MutasiInternalID
|
|
WHERE
|
|
StockCardStatus = 'MWF' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
MutasiInternalNumber as trx_number,
|
|
'Penerimaan Mutasi Internal' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN mutasiinternaldetailstock ON MutasiInternalDetailStockID = StockCardReffID
|
|
JOIN mutasiinternaldetail ON MutasiInternalDetailID = MutasiInternalDetailStockMutasiInternalDetailID
|
|
JOIN mutasiinternal ON MutasiInternalDetailMutasiInternalID = MutasiInternalID
|
|
WHERE
|
|
StockCardStatus = 'MWT' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
MutasiNumber as trx_number,
|
|
'Mutasi Eksternal' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN mutasidetailstock ON MutasiDetailStockID = StockCardReffID
|
|
JOIN mutasidetail ON MutasiDetailID = MutasiDetailStockMutasiDetailID
|
|
JOIN mutasi ON MutasiID = MutasiDetailMutasiID
|
|
WHERE
|
|
( StockCardStatus = 'MPB' OR StockCardStatus = 'MBB' )AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
MutasiReceiveNumber as trx_number,
|
|
'Penerimaan Mutasi Eksternal' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN mutasireceivedetail ON MutasiReceiveDetailID = StockCardReffID
|
|
JOIN mutasireceive ON MutasiReceiveID = MutasiReceiveDetailMutasiReceiveID
|
|
WHERE
|
|
StockCardStatus = 'MRB' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
StockConversionNumber as trx_number,
|
|
'Konversi Satuan Keluar' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN stockconversion ON StockConversionID = StockCardReffID
|
|
WHERE
|
|
StockCardStatus = 'CUO' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
StockConversionNumber as trx_number,
|
|
'Konversi Satuan Masuk' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN stockconversion ON StockConversionID = StockCardReffID
|
|
WHERE
|
|
StockCardStatus = 'CUI' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
MutasiInternalNumber as trx_number,
|
|
'Mutasi Internal' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN mutasiinternaldetailstock ON MutasiInternalDetailStockID = StockCardReffID
|
|
JOIN mutasiinternaldetail ON MutasiInternalDetailStockMutasiInternalDetailID = MutasiInternalDetailID
|
|
JOIN mutasiinternal ON MutasiInternalDetailMutasiInternalID = MutasiInternalID
|
|
WHERE
|
|
StockCardStatus = 'MIG' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
UNION
|
|
SELECT StockCardID as id,
|
|
ItemName as item_name,
|
|
ItemUnitName as unit_name,
|
|
StockCardBefore as qty_before,
|
|
StockCardIn as qty_in,
|
|
StockCardOut as qty_out,
|
|
StockCardAfter as qty_after,
|
|
DATE_FORMAT(StockCardDatetime,'%d-%m-%Y %H:%i') as trx_datetime,
|
|
MutasiInternalReceiveNumber as trx_number,
|
|
'Penerimaan Mutasi Internal' as status_name,
|
|
StockCardStatus as status_code,
|
|
StockCardDatetime
|
|
FROM stockcard
|
|
JOIN item ON StockCardItemID = ItemID
|
|
JOIN itemunit ON StockCardItemUnitID = ItemUnitID
|
|
JOIN mutasiinternalreceivedetail ON MutasiInternalReceiveDetailID = StockCardReffID
|
|
JOIN mutasiinternalreceive ON MutasiInternalReceiveDetailMutasiInternalReceiveID = MutasiInternalReceiveID
|
|
WHERE
|
|
StockCardStatus = 'MIR' AND
|
|
StockCardWarehouseID = {$prm['warehouse_id']} AND
|
|
StockCardItemID = {$prm['item_id']} AND
|
|
StockCardItemUnitID = {$prm['unit_id']} AND
|
|
StockCardBatchNo = '{$prm['batch_no']}'
|
|
) x
|
|
ORDER BY StockCardDatetime ASC
|
|
|
|
|
|
";
|
|
$query = $this->db_inventory->query($sql);
|
|
// echo $this->db_inventory->last_query();
|
|
if ($query) {
|
|
$rows = $query->result_array();
|
|
//echo $this->db_inventory->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 saveAdd(){
|
|
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'],
|
|
'StockCardStatus' => 'MRB',
|
|
'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_log = 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_log['StockLogED'] = $value['ed'];
|
|
|
|
$qry = $this->db_inventory->insert('stocklog', $arr_insert_stock_log);
|
|
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();
|
|
//print_r($data_request_detail);
|
|
$status_detail = 'P';
|
|
$request_qty = intval($data_request_detail['MutasiRequestDetailQty']);
|
|
$receive_qty = intval($data_request_detail['MutasiRequestDetailReceiveQty']) + intval($value['qty']);
|
|
//echo "REQ :".$request_qty;
|
|
//echo " RCV :".$receive_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;
|
|
}
|
|
|
|
$trx_type = 'T';
|
|
if(intval($value['branch_to_branch_id']) == 0){
|
|
$arr_insert_respon = array(
|
|
'MutasiRequestResponType' => $trx_type,
|
|
'MutasiRequestResponToCompanyAdddressID' => $value['from_address_company_id'],
|
|
'MutasiRequestResponFromCompanyAdddressID' => $value['to_address_company_id'] ,
|
|
'MutasiRequestResponMutasiRequestDetailID' => $value['mutasi_request_detail_id'],
|
|
'MutasiRequestResponMutasiDetailStockID' => $value['detail_stock_id'],
|
|
'MutasiRequestResponMutasiDetailID' => $value['mutasi_detail_id'],
|
|
'MutasiRequestResponMutasiID' => $value['mutasi_id'],
|
|
'MutasiRequestResponStatus' => $status_detail,
|
|
'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;
|
|
}
|
|
}
|
|
//$trx_type = 'B';
|
|
|
|
//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
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
if(intval($prm['details'][0]['branch_to_branch_id']) > 0){
|
|
//start update isreceive di mutasibranchtobranch
|
|
$sql = "UPDATE mutasibranchtobranch
|
|
SET MutasiBranchToBranchBranchIsReceived = 'N',
|
|
MutasiBranchToBranchBranchLastUpdated = NOW(),
|
|
MutasiBranchToBranchBranchReceivedID = ?
|
|
WHERE
|
|
MutasiBranchToBranchBranchID = ?
|
|
";
|
|
$qry = $this->db_inventory->query($sql,array(
|
|
$last_id,
|
|
$value['branch_to_branch_id']
|
|
));
|
|
if(!$qry){
|
|
//echo $this->db_inventory->last_query();
|
|
$this->sys_error_db("update receive mutasibranchtobranch error", $this->db_inventory->last_query());
|
|
exit;
|
|
}
|
|
//end update isreceive di mutasibranchtobranch
|
|
|
|
$sql = "SELECT * FROM mutasibranchtobranch
|
|
WHERE
|
|
MutasiBranchToBranchBranchOldID = ?";
|
|
$qry = $this->db_inventory->query($sql,array(
|
|
$value['branch_to_branch_id']
|
|
));
|
|
//echo $this->db_inventory->last_query();
|
|
if(!$qry){
|
|
//echo $this->db_inventory->last_query();
|
|
$this->sys_error_db("update receive mutasibranchtobranch error", $this->db_inventory->last_query());
|
|
exit;
|
|
}
|
|
|
|
$data_parsing = $qry->row_array();
|
|
//print_r($data_parsing);
|
|
$mutasi = $this->objToArray(json_decode($data_parsing['MutasiBranchToBranchBranchJSON']));
|
|
//print_r($mutasi);
|
|
$mutasi_details = $mutasi['details'];
|
|
|
|
foreach ($mutasi_details as $k_detail => $v_detail) {
|
|
$sql = "SELECT SUM(MutasiReceiveDetailQty) as received_qty
|
|
FROM mutasireceivedetail
|
|
WHERE
|
|
MutasiReceiveDetailMutasiReceiveID = ? AND
|
|
MutasiReceiveDetailIsActive = 'Y' AND
|
|
MutasiReceiveDetailItemID = ? AND
|
|
MutasiReceiveDetailItemUnitID = ?";
|
|
$qry = $this->db_inventory->query($sql,array(
|
|
$last_id,
|
|
$v_detail['MutasiDetailItemID'],
|
|
$v_detail['MutasiDetailItemUnitID']
|
|
));
|
|
if(!$qry){
|
|
//echo $this->db_inventory->last_query();
|
|
$this->sys_error_db("select receive mutasireceivedetail error", $this->db_inventory->last_query());
|
|
exit;
|
|
}
|
|
|
|
$mutasi['details'][$k_detail]['MutasiDetailReceiveQty'] = $qry->row()->received_qty;
|
|
}
|
|
|
|
//print_r($mutasi);
|
|
//$mutasi['details'] = $mutasi_details;
|
|
|
|
$insert_mutasi_respon = array();
|
|
$insert_mutasi_respon['MutasiReceiveResponReceiveID'] = $last_id;
|
|
$insert_mutasi_respon['MutasiReceiveResponType'] = $mutasi['MutasiType'];
|
|
$insert_mutasi_respon['MutasiReceiveResponFromCompanyAddressID'] = $prm['details'][0]['to_address_company_id'];
|
|
$insert_mutasi_respon['MutasiReceiveResponToCompanyAddressID'] = $prm['details'][0]['from_address_company_id'];
|
|
$insert_mutasi_respon['MutasiReceiveResponJSON'] = json_encode($mutasi);
|
|
$insert_mutasi_respon['MutasiReceiveResponCreated'] = date("Y-m-d H:i:s");
|
|
$insert_mutasi_respon['MutasiReceiveResponLastUpdated'] = date("Y-m-d H:i:s");
|
|
$qry = $this->db_inventory->insert('mutasireceiverespon', $insert_mutasi_respon);
|
|
if(!$qry){
|
|
//echo $this->db_inventory->last_query();
|
|
$this->sys_error_db("insert mutasireceiverespon error", $this->db_inventory->last_query());
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
$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
|
|
WarehouseIsActive = 'Y'
|
|
GROUP BY WarehouseID";
|
|
$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);
|
|
}
|
|
}
|
|
|
|
protected function objToArray($obj)
|
|
{
|
|
// Not an object or array
|
|
if (!is_object($obj) && !is_array($obj)) {
|
|
return $obj;
|
|
}
|
|
|
|
// Parse array
|
|
foreach ($obj as $key => $value) {
|
|
$arr[$key] = $this->objToArray($value);
|
|
}
|
|
|
|
// Return parsed array
|
|
return $arr;
|
|
}
|
|
|
|
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,
|
|
'T' as trx_type,
|
|
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
|
|
UNION
|
|
SELECT CompanyAddressID as id,
|
|
CompanyAddressLabel as name,
|
|
'B' as trx_type,
|
|
CompanyAddressDescription as description,
|
|
CompanyName as company_name
|
|
FROM companyaddress
|
|
JOIN mutasibranchtobranch ON MutasiBranchToBranchBranchFromCompanyAddressID = CompanyAddressID AND
|
|
MutasiBranchToBranchBranchIsReceived = '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,
|
|
MutasiTransitDetailMutasiBranchToBranchBranchID as branch_to_branch_id,
|
|
MutasiTransitDetailMutasiDetailStockID as detail_stock_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);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|