Files
BE_IBL/application/controllers/inventory/requestinternal/Stock.php
2026-04-15 15:23:57 +07:00

196 lines
7.3 KiB
PHP

<?php
class Stock 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_item(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$search = '%%';
if(isset($prm['search'])){
$search = "%".$prm['search']."%";
}
//echo $prm['search'];
$sql = "SELECT ItemID as id,
ItemName as name
FROM item
JOIN itemunitmap ON ItemUnitMapItemID = ItemID AND ItemUnitMapIsActive = 'Y'
WHERE
ItemName LIKE ? AND ItemIsActive = 'Y'";
$query = $this->db_inventory->query($sql,$search);
if ($query) {
$rows = $query->result_array();
$result = array("records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("item 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
WHERE
WarehouseIsActive = 'Y' AND WarehouseIsOffice = 'N'";
$query = $this->db_inventory->query($sql);
if ($query) {
$rows = $query->result_array();
$rows[] = array('id'=>'0','name'=>'Semua Gudang');
$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_stock(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$filter_warehouse = '';
$warehouse_id = isset($prm['warehouse']['id'])?$prm['warehouse']['id']:0;
if(intval($warehouse_id) > 0 ){
$filter_warehouse = " AND WarehouseID = {$warehouse_id}";
}
$filter_item = '';
$item_id = isset($prm['item']['id'])?$prm['item']['id']:0;
if(intval($item_id) > 0 ){
$filter_item = " AND ItemID = {$item_id}";
}
$sql = "SELECT * FROM (
SELECT SUM(StockQty) - ItemUnitMapMin as to_min,
StockID as idx,ItemID as item_id,
ItemName as item_name,
ItemUnitID as unit_id,
ItemUnitName as unit_name,
WarehouseName as warehouse_name,
SUM(StockQty) as qty
FROM stock
JOIN item ON StockItemID = ItemID $filter_item
JOIN itemunit ON StockItemUnitID = ItemUnitID
JOIN itemunitmap ON ItemUnitMapItemID = ItemID AND ItemUnitMapItemUnitID = ItemUnitID
JOIN warehouse ON StockWarehouseID = WarehouseID AND WarehouseIsOffice = 'N' $filter_warehouse
GROUP BY StockWarehouseID, StockItemID, StockItemUnitID
LIMIT 100
) x
ORDER BY to_min ASC
";
$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("stock rows",$this->db_inventory);
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
function get_term_detail(){
try{
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$id = 0;
if(isset($prm['id']) && intval($prm) > 0){
$id = $prm['id'];
$sql = "SELECT SupplierPaymentTermsDetailID as id,
SupplierPaymentTermsDetailItemID as item_id,
ItemName as item_name,
CONCAT(ItemName,' : ',ItemUnitName) as itemunit_name,
SupplierPaymentTermsDetailItemUnitID as unit_id,
ItemUnitName as unit_name,
0 as qty,
'N' as is_exist,
SupplierPaymentTermsDetailPrice as price,
SupplierPaymentTermsDetailDiscount as discount_percent,
SupplierPaymentTermsDetailDiscountRp as discount_rp,
SupplierPaymentTermsDetailTotal as total,
'N' as selected
FROM supplierpaymenttermsdetail
JOIN item ON SupplierPaymentTermsDetailItemID = ItemID AND ItemIsActive = 'Y'
JOIN itemunit ON SupplierPaymentTermsDetailItemUnitID = ItemUnitID AND ItemUnitIsActive = 'Y'
WHERE
SupplierPaymentTermsSupplierPaymentTermsID = ? AND
SupplierPaymentTermsDetailIsActive = 'Y'";
$query = $this->db_inventory->query($sql,$id);
if ($query) {
$rows = $query->result_array();
if($rows && count($rows) > 0){
foreach ($rows as $key => $value) {
$rows[$key]['selected'] = false;
}
}
$result = array("records" => $rows);
$this->sys_ok($result);
}
else {
$this->sys_error_db("supplierpaymenttermsdetail rows",$this->db_inventory);
exit;
}
}
else{
$this->sys_error("Invalid Param ID");
exit;
}
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}