196 lines
7.3 KiB
PHP
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);
|
|
}
|
|
}
|
|
|
|
}
|