Compare commits
28 Commits
9c87e9ce25
...
feat/inv-c
| Author | SHA1 | Date | |
|---|---|---|---|
| 33666a2f5f | |||
| b29ba9f225 | |||
| c83c42698a | |||
| 009aff7d44 | |||
| 6dbe0e400b | |||
| 0ea56f09fa | |||
| a6412c9688 | |||
| bcb553ea56 | |||
| 2874fab71d | |||
| 752c372c2f | |||
| c125289b92 | |||
| fe5e6dd6cb | |||
| 5fd6db863a | |||
| fc9947bce4 | |||
| c296d5598b | |||
| 5bd8e038fc | |||
| 8f07a65485 | |||
| 7e88cf247b | |||
| 7af9fb2ca4 | |||
| 77fc97e964 | |||
| b7a00bc242 | |||
| 834f23f26e | |||
| dc88589c78 | |||
| 3871a680dd | |||
| 13af691645 | |||
| 775a390bcb | |||
| 0d1dcb1b5e | |||
| 22719de06f |
113
application/controllers/map/InventarisCoaMapping.http
Normal file
113
application/controllers/map/InventarisCoaMapping.http
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
@token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJNX1VzZXJJRCI6IjM4MCIsIk1fVXNlclVzZXJuYW1lIjoicmVnc2J5IiwiTV9Vc2VyR3JvdXBEYXNoYm9hcmQiOiJvbmUtdWlcL3Rlc3RcL3Z1ZXhcL2FjYy1vbmUtanVybmFsXC8iLCJNX1VzZXJEZWZhdWx0VF9TYW1wbGVTdGF0aW9uSUQiOiIwIiwiTV9TdGFmZk5hbWUiOiJTdGFmZiBSZWdpb25hbCIsImlzX2NvdXJpZXIiOiJOIiwidGltZV9hdXRvbG9nb3V0IjoiMTIwIiwiTV9Vc2VyTG9jYXRpb25JRCI6IjM3IiwiTV9Vc2VyTG9jYXRpb25GbGFnIjoiUiIsIlNfUmVnaW9uYWxOYW1lIjoiU3VyYWJheWEgUmF5YSIsIlNfUmVnaW9uYWxJRCI6IjYiLCJNX0JyYW5jaE5hbWUiOiIiLCJNX0JyYW5jaENvZGUiOiIiLCJNX0JyYW5jaElEIjoiMCIsImxvZ2luTGV2ZWwiOiJyZWdpb25hbCIsIk1fQnJhbmNoQ29tcGFueUlEIjoiMSIsIk1fQnJhbmNoQ29tcGFueU5hbWUiOiJQVCBQUkFNSVRBIiwiaXAiOiIxMzkuMTk1LjEyMi4yMzUiLCJhZ2VudCI6Ik1vemlsbGFcLzUuMCAoWDExOyBMaW51eCB4ODZfNjQ7IHJ2OjEzNy4wKSBHZWNrb1wvMjAxMDAxMDEgRmlyZWZveFwvMTM3LjAiLCJ2ZXJzaW9uIjoidjIiLCJsYXN0LWxvZ2luIjoiMjAyNS0wNi0wNCAxMzoyMDowNSIsIk1fU2F0ZWxsaXRlSUQiOjB9.hm6JtstjaQOzb7oDSXQ-oMWuX_jFQZH-HDr3r3OzPac"
|
||||||
|
|
||||||
|
@host = accone.aplikasi.web.id/one-api
|
||||||
|
|
||||||
|
###
|
||||||
|
// create inventaris coa mapping
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/createInvCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisGolID": 1,
|
||||||
|
"CoaInventarisID": 101,
|
||||||
|
"CoaHutangID": 102,
|
||||||
|
"CoaPembelianID": 103,
|
||||||
|
"CoaBebanPenyusutanID": 104,
|
||||||
|
"CoaAkumulasiPenyusutanID": 105,
|
||||||
|
"CoaLabaPelepasanID": 106,
|
||||||
|
"CoaRugiPelepasanID": 107
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// get inventaris coa mapping by ID
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/getInvCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisCoaMappingID": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// edit inventaris coa mapping
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/editInvCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisCoaMappingID": 1,
|
||||||
|
"M_InventarisGolID": 2,
|
||||||
|
"CoaInventarisID": 201,
|
||||||
|
"CoaHutangID": 202,
|
||||||
|
"CoaPembelianID": 203,
|
||||||
|
"CoaBebanPenyusutanID": 204,
|
||||||
|
"CoaAkumulasiPenyusutanID": 205,
|
||||||
|
"CoaLabaPelepasanID": 206,
|
||||||
|
"CoaRugiPelepasanID": 207
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// delete inventaris coa mapping
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/deleteInvCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisCoaMappingID": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// create inventaris item coa mapping
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/createInvItemCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_ItemID": 10,
|
||||||
|
"CoaInventarisID": 201,
|
||||||
|
"CoaHutangID": 202,
|
||||||
|
"CoaPembelianID": 203,
|
||||||
|
"CoaBebanPenyusutanID": 204,
|
||||||
|
"CoaAkumulasiPenyusutanID": 205,
|
||||||
|
"CoaLabaPelepasanID": 206,
|
||||||
|
"CoaRugiPelepasanID": 207
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// get inventaris item coa mapping by ID
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/getInvItemCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisItemCoaMappingID": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// edit inventaris item coa mapping
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/editInvItemCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisItemCoaMappingID": 1,
|
||||||
|
"M_ItemID": 11,
|
||||||
|
"CoaInventarisID": 301,
|
||||||
|
"CoaHutangID": 302,
|
||||||
|
"CoaPembelianID": 303,
|
||||||
|
"CoaBebanPenyusutanID": 304,
|
||||||
|
"CoaAkumulasiPenyusutanID": 305,
|
||||||
|
"CoaLabaPelepasanID": 306,
|
||||||
|
"CoaRugiPelepasanID": 307
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// delete inventaris item coa mapping
|
||||||
|
POST https://{{host}}/map/InventarisCoaMapping/deleteInvItemCoaMapping/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"M_InventarisItemCoaMappingID": 1
|
||||||
|
}
|
||||||
361
application/controllers/map/InventarisCoaMapping.php
Normal file
361
application/controllers/map/InventarisCoaMapping.php
Normal file
@@ -0,0 +1,361 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class InventarisCoaMapping extends MY_Controller {
|
||||||
|
var $db;
|
||||||
|
public function index() {
|
||||||
|
echo "Inventaris COA Mapping API";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
## MUTATIONS ##
|
||||||
|
public function createInvCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$sql = "INSERT INTO m_inventaris_coa_mapping (
|
||||||
|
M_InventarisCoaMappingM_InventarisGolID,
|
||||||
|
M_InventarisCoaMappingCoaInventarisID,
|
||||||
|
M_InventarisCoaMappingCoaHutangID,
|
||||||
|
M_InventarisCoaMappingCoaPembelianID,
|
||||||
|
M_InventarisCoaMappingCoaBebanPenyusutanID,
|
||||||
|
M_InventarisCoaMappingCoaAkumulasiPenyusutanID,
|
||||||
|
M_InventarisCoaMappingCoaLabaPelepasanID,
|
||||||
|
M_InventarisCoaMappingCoaRugiPelepasanID,
|
||||||
|
M_InventarisCoaMappingCreatedUserID,
|
||||||
|
M_InventarisCoaMappingCreated,
|
||||||
|
M_InventarisCoaMappingLastUpdated
|
||||||
|
) VALUES (?,?,?,?,?,?,?,?,?,NOW(),NOW())";
|
||||||
|
$query = $this->db->query($sql, [
|
||||||
|
$para['M_InventarisGolID'],
|
||||||
|
$para['CoaInventarisID'],
|
||||||
|
$para['CoaHutangID'],
|
||||||
|
$para['CoaPembelianID'],
|
||||||
|
$para['CoaBebanPenyusutanID'],
|
||||||
|
$para['CoaAkumulasiPenyusutanID'],
|
||||||
|
$para['CoaLabaPelepasanID'],
|
||||||
|
$para['CoaRugiPelepasanID'],
|
||||||
|
$user['M_UserID']
|
||||||
|
]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] insert into table m_inventaris_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$insertID = $this->db->insert_id();
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok($insertID);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
## QUERY ##
|
||||||
|
public function getInvCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
$sql = "SELECT
|
||||||
|
M_InventarisCoaMappingID,
|
||||||
|
M_InventarisCoaMappingM_InventarisGolID,
|
||||||
|
M_InventarisCoaMappingCoaInventarisID,
|
||||||
|
M_InventarisCoaMappingCoaHutangID,
|
||||||
|
M_InventarisCoaMappingCoaPembelianID,
|
||||||
|
M_InventarisCoaMappingCoaBebanPenyusutanID,
|
||||||
|
M_InventarisCoaMappingCoaAkumulasiPenyusutanID,
|
||||||
|
M_InventarisCoaMappingCoaLabaPelepasanID,
|
||||||
|
M_InventarisCoaMappingCoaRugiPelepasanID,
|
||||||
|
M_InventarisCoaMappingCreatedUserID,
|
||||||
|
M_InventarisCoaMappingCreated,
|
||||||
|
M_InventarisCoaMappingLastUpdated
|
||||||
|
FROM m_inventaris_coa_mapping
|
||||||
|
WHERE M_InventarisCoaMappingIsActive = 'Y'
|
||||||
|
AND M_InventarisCoaMappingID = ?";
|
||||||
|
$query = $this->db->query($sql, [$para['M_InventarisCoaMappingID']]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->sys_error_db("[Error] get data m_inventaris_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$data = $query->row_array();
|
||||||
|
|
||||||
|
$this->sys_ok($data);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
## MUTATIONS ##
|
||||||
|
public function editInvCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$sql = "UPDATE m_inventaris_coa_mapping SET
|
||||||
|
M_InventarisCoaMappingM_InventarisGolID = ?,
|
||||||
|
M_InventarisCoaMappingCoaInventarisID = ?,
|
||||||
|
M_InventarisCoaMappingCoaHutangID = ?,
|
||||||
|
M_InventarisCoaMappingCoaPembelianID = ?,
|
||||||
|
M_InventarisCoaMappingCoaBebanPenyusutanID = ?,
|
||||||
|
M_InventarisCoaMappingCoaAkumulasiPenyusutanID = ?,
|
||||||
|
M_InventarisCoaMappingCoaLabaPelepasanID = ?,
|
||||||
|
M_InventarisCoaMappingCoaRugiPelepasanID = ?,
|
||||||
|
M_InventarisCoaMappingLastUpdated = NOW()
|
||||||
|
WHERE M_InventarisCoaMappingIsActive = 'Y'
|
||||||
|
AND M_InventarisCoaMappingID = ?";
|
||||||
|
$query = $this->db->query($sql, [
|
||||||
|
$para['M_InventarisGolID'],
|
||||||
|
$para['CoaInventarisID'],
|
||||||
|
$para['CoaHutangID'],
|
||||||
|
$para['CoaPembelianID'],
|
||||||
|
$para['CoaBebanPenyusutanID'],
|
||||||
|
$para['CoaAkumulasiPenyusutanID'],
|
||||||
|
$para['CoaLabaPelepasanID'],
|
||||||
|
$para['CoaRugiPelepasanID'],
|
||||||
|
$para['M_InventarisCoaMappingID']
|
||||||
|
]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] update table m_inventaris_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] update data inventaris coa mapping");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteInvCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
$sql = "UPDATE m_inventaris_coa_mapping SET
|
||||||
|
M_InventarisCoaMappingIsActive = 'N',
|
||||||
|
M_InventarisCoaMappingLastUpdated = NOW()
|
||||||
|
WHERE M_InventarisCoaMappingIsActive = 'Y'
|
||||||
|
AND M_InventarisCoaMappingID = ?";
|
||||||
|
$query = $this->db->query($sql, [$para['M_InventarisCoaMappingID']]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] soft delete data m_inventaris_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] delete data inventaris coa mapping");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
## MUTATIONS ITEM ##
|
||||||
|
public function createInvItemCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$sql = "INSERT INTO m_inventaris_item_coa_mapping (
|
||||||
|
M_InventarisItemCoaMappingM_ItemID,
|
||||||
|
M_InventarisItemCoaMappingCoaInventarisID,
|
||||||
|
M_InventarisItemCoaMappingCoaHutangID,
|
||||||
|
M_InventarisItemCoaMappingCoaPembelianID,
|
||||||
|
M_InventarisItemCoaMappingCoaBebanPenyusutanID,
|
||||||
|
M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID,
|
||||||
|
M_InventarisItemCoaMappingCoaLabaPelepasanID,
|
||||||
|
M_InventarisItemCoaMappingCoaRugiPelepasanID,
|
||||||
|
M_InventarisItemCoaMappingCreatedUserID,
|
||||||
|
M_InventarisItemCoaMappingCreated,
|
||||||
|
M_InventarisItemCoaMappingLastUpdated
|
||||||
|
) VALUES (?,?,?,?,?,?,?,?,?,NOW(),NOW())";
|
||||||
|
$query = $this->db->query($sql, [
|
||||||
|
$para['M_ItemID'],
|
||||||
|
$para['CoaInventarisID'],
|
||||||
|
$para['CoaHutangID'],
|
||||||
|
$para['CoaPembelianID'],
|
||||||
|
$para['CoaBebanPenyusutanID'],
|
||||||
|
$para['CoaAkumulasiPenyusutanID'],
|
||||||
|
$para['CoaLabaPelepasanID'],
|
||||||
|
$para['CoaRugiPelepasanID'],
|
||||||
|
$user['M_UserID']
|
||||||
|
]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] insert into table m_inventaris_item_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$insertID = $this->db->insert_id();
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok($insertID);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
## QUERY ITEM ##
|
||||||
|
public function getInvItemCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
$sql = "SELECT
|
||||||
|
M_InventarisItemCoaMappingID,
|
||||||
|
M_InventarisItemCoaMappingM_ItemID,
|
||||||
|
M_InventarisItemCoaMappingCoaInventarisID,
|
||||||
|
M_InventarisItemCoaMappingCoaHutangID,
|
||||||
|
M_InventarisItemCoaMappingCoaPembelianID,
|
||||||
|
M_InventarisItemCoaMappingCoaBebanPenyusutanID,
|
||||||
|
M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID,
|
||||||
|
M_InventarisItemCoaMappingCoaLabaPelepasanID,
|
||||||
|
M_InventarisItemCoaMappingCoaRugiPelepasanID,
|
||||||
|
M_InventarisItemCoaMappingCreatedUserID,
|
||||||
|
M_InventarisItemCoaMappingCreated,
|
||||||
|
M_InventarisItemCoaMappingLastUpdated
|
||||||
|
FROM m_inventaris_item_coa_mapping
|
||||||
|
WHERE M_InventarisItemCoaMappingIsActive = 'Y'
|
||||||
|
AND M_InventarisItemCoaMappingID = ?";
|
||||||
|
$query = $this->db->query($sql, [$para['M_InventarisItemCoaMappingID']]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->sys_error_db("[Error] get data m_inventaris_item_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$data = $query->row_array();
|
||||||
|
|
||||||
|
$this->sys_ok($data);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
## MUTATIONS ITEM ##
|
||||||
|
public function editInvItemCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$sql = "UPDATE m_inventaris_item_coa_mapping SET
|
||||||
|
M_InventarisItemCoaMappingM_ItemID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaInventarisID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaHutangID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaPembelianID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaBebanPenyusutanID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaAkumulasiPenyusutanID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaLabaPelepasanID = ?,
|
||||||
|
M_InventarisItemCoaMappingCoaRugiPelepasanID = ?,
|
||||||
|
M_InventarisItemCoaMappingLastUpdated = NOW()
|
||||||
|
WHERE M_InventarisItemCoaMappingIsActive = 'Y'
|
||||||
|
AND M_InventarisItemCoaMappingID = ?";
|
||||||
|
$query = $this->db->query($sql, [
|
||||||
|
$para['M_ItemID'],
|
||||||
|
$para['CoaInventarisID'],
|
||||||
|
$para['CoaHutangID'],
|
||||||
|
$para['CoaPembelianID'],
|
||||||
|
$para['CoaBebanPenyusutanID'],
|
||||||
|
$para['CoaAkumulasiPenyusutanID'],
|
||||||
|
$para['CoaLabaPelepasanID'],
|
||||||
|
$para['CoaRugiPelepasanID'],
|
||||||
|
$para['M_InventarisItemCoaMappingID']
|
||||||
|
]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] update table m_inventaris_item_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] update data inventaris item coa mapping");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteInvItemCoaMapping() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
$sql = "UPDATE m_inventaris_item_coa_mapping SET
|
||||||
|
M_InventarisItemCoaMappingIsActive = 'N',
|
||||||
|
M_InventarisItemCoaMappingLastUpdated = NOW()
|
||||||
|
WHERE M_InventarisItemCoaMappingIsActive = 'Y'
|
||||||
|
AND M_InventarisItemCoaMappingID = ?";
|
||||||
|
$query = $this->db->query($sql, [$para['M_InventarisItemCoaMappingID']]);
|
||||||
|
if (!$query) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] soft delete data m_inventaris_item_coa_mapping");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] delete data inventaris item coa mapping");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -172,6 +172,91 @@ Content-Type: application/json
|
|||||||
"ID": ""
|
"ID": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// upload attachment — requires multipart/form-data with file(s)
|
||||||
|
// Gunakan REST Client atau Postman. Contoh format:
|
||||||
|
// POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/uploadAttachment/
|
||||||
|
// Content-Type: multipart/form-data; boundary=----boundary
|
||||||
|
//
|
||||||
|
// ------boundary
|
||||||
|
// Content-Disposition: form-data; name="token"
|
||||||
|
//
|
||||||
|
// eyJ...
|
||||||
|
// ------boundary
|
||||||
|
// Content-Disposition: form-data; name="ponumber"
|
||||||
|
//
|
||||||
|
// PO24070001
|
||||||
|
// ------boundary
|
||||||
|
// Content-Disposition: form-data; name="poID"
|
||||||
|
//
|
||||||
|
// 1
|
||||||
|
// ------boundary
|
||||||
|
// Content-Disposition: form-data; name="contractID"
|
||||||
|
//
|
||||||
|
// 1
|
||||||
|
// ------boundary
|
||||||
|
// Content-Disposition: form-data; name="files"; filename="foto1.jpg"
|
||||||
|
// Content-Type: image/jpeg
|
||||||
|
//
|
||||||
|
// < /path/to/foto1.jpg
|
||||||
|
// ------boundary
|
||||||
|
// Content-Disposition: form-data; name="files"; filename="foto2.jpg"
|
||||||
|
// Content-Type: image/jpeg
|
||||||
|
//
|
||||||
|
// < /path/to/foto2.jpg
|
||||||
|
// ------boundary--
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}}
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// listing po asset
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDaftarPoAset/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"search": "",
|
||||||
|
"currpage": 1,
|
||||||
|
"startdate": "2026-01-01",
|
||||||
|
"enddate": "2026-12-31",
|
||||||
|
"status": "All"
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// get daftar attachment
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDaftarAttachment/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"contractID": 1,
|
||||||
|
"poID": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// update approval PO — verifikasi manager (level 1)
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/updateApprovalPO/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"poID": 1,
|
||||||
|
"approvelevel": "1"
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// get data kontrak po asset
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/getDataKontrakPoAset/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"poID": 1
|
||||||
|
}
|
||||||
|
|
||||||
###
|
###
|
||||||
// create po asset
|
// create po asset
|
||||||
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/createPoAsset/
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/createPoAsset/
|
||||||
@@ -281,6 +366,108 @@ Content-Type: application/json
|
|||||||
"installmentDownPayment": 5000000
|
"installmentDownPayment": 5000000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// edit po asset
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/editPoAsset/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"PurchaseOrderID": 1,
|
||||||
|
"PurchaseOrderAssetContractID": 1,
|
||||||
|
"podate": "2026-07-09",
|
||||||
|
"reference": "REF-ASSET-001-UPDATED",
|
||||||
|
"supplierID": 1,
|
||||||
|
"typepajak": "percent",
|
||||||
|
"valuepajak": 11,
|
||||||
|
"typediskon": "nominal",
|
||||||
|
"valuediskon": 0,
|
||||||
|
"catatan": "PO Asset Updated",
|
||||||
|
"summary": {
|
||||||
|
"subtotal": 775000000,
|
||||||
|
"diskon": 0,
|
||||||
|
"pajak": 85250000,
|
||||||
|
"total": 860250000
|
||||||
|
},
|
||||||
|
"detail": [
|
||||||
|
{
|
||||||
|
"M_ItemID": 123,
|
||||||
|
"ItemUnitID": 1,
|
||||||
|
"RequestQty": 3,
|
||||||
|
"SupplierPrice": 75000000,
|
||||||
|
"TempTotal": 225000000,
|
||||||
|
"DiskonType": "R",
|
||||||
|
"DiskonAmount": 0,
|
||||||
|
"detail": [
|
||||||
|
{
|
||||||
|
"PurchaseRequestID": 1,
|
||||||
|
"PurchaseRequestDetailID": 1,
|
||||||
|
"PurchaseRequestFlagID": 1,
|
||||||
|
"M_ItemID": 123,
|
||||||
|
"ItemUnitID": 1,
|
||||||
|
"OriginalQty": 3,
|
||||||
|
"RequestQty": 3,
|
||||||
|
"SupplierPrice": 75000000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"M_ItemID": 124,
|
||||||
|
"ItemUnitID": 2,
|
||||||
|
"RequestQty": 5,
|
||||||
|
"SupplierPrice": 25000000,
|
||||||
|
"TempTotal": 125000000,
|
||||||
|
"DiskonType": "R",
|
||||||
|
"DiskonAmount": 0,
|
||||||
|
"detail": [
|
||||||
|
{
|
||||||
|
"PurchaseRequestID": 2,
|
||||||
|
"PurchaseRequestDetailID": 2,
|
||||||
|
"PurchaseRequestFlagID": 2,
|
||||||
|
"M_ItemID": 124,
|
||||||
|
"ItemUnitID": 2,
|
||||||
|
"OriginalQty": 3,
|
||||||
|
"RequestQty": 3,
|
||||||
|
"SupplierPrice": 25000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PurchaseRequestID": 2,
|
||||||
|
"PurchaseRequestDetailID": 3,
|
||||||
|
"PurchaseRequestFlagID": 3,
|
||||||
|
"M_ItemID": 124,
|
||||||
|
"ItemUnitID": 2,
|
||||||
|
"OriginalQty": 2,
|
||||||
|
"RequestQty": 2,
|
||||||
|
"SupplierPrice": 25000000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"assetAttachmentID": 1,
|
||||||
|
"contractName": "Kontrak Pengadaan Mesin X - Revisi",
|
||||||
|
"contractDate": "2026-07-10",
|
||||||
|
"contractStart": "2026-07-10",
|
||||||
|
"contractEnd": "2027-10-10",
|
||||||
|
"contractDuration": 15,
|
||||||
|
"installmentNumber": 15,
|
||||||
|
"installmentDate": 5,
|
||||||
|
"installmentPayAmount": 15000000,
|
||||||
|
"installmentDownPaymentType": "persen",
|
||||||
|
"installmentDownPayment": 20
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
// delete po asset
|
||||||
|
POST https://{{host}}/mockup/purchase/order/PurchaseOrderAset/deletePoAsset/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"token": {{token}},
|
||||||
|
"poID": 1,
|
||||||
|
"contractID": 1,
|
||||||
|
"ponumber": "PO24070001"
|
||||||
|
}
|
||||||
|
|
||||||
### Test isValidMultiple Warehouse
|
### Test isValidMultiple Warehouse
|
||||||
### Should return True karena UnitRequest = UnitPurchase
|
### Should return True karena UnitRequest = UnitPurchase
|
||||||
GET https://{{host}}/mockup/purchase/order/PurchaseOrder/isValidMultipleWarehouse/
|
GET https://{{host}}/mockup/purchase/order/PurchaseOrder/isValidMultipleWarehouse/
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
SupplierID,
|
SupplierID,
|
||||||
SupplierName
|
SupplierName
|
||||||
FROM supplier
|
FROM supplier
|
||||||
WHERE SupplierIsActive = 'Y'";
|
WHERE SupplierIsActive = 'Y'";
|
||||||
$que = $this->db->query($sql, []);
|
$que = $this->db->query($sql, []);
|
||||||
if (!$que) {
|
if (!$que) {
|
||||||
@@ -46,19 +46,19 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
|
|
||||||
$user = $this->sys_user;
|
$user = $this->sys_user;
|
||||||
|
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
M_BranchID,
|
M_BranchID,
|
||||||
M_BranchCode,
|
M_BranchCode,
|
||||||
M_BranchName
|
M_BranchName
|
||||||
FROM m_branch
|
FROM m_branch
|
||||||
WHERE M_BranchIsActive = 'Y'
|
WHERE M_BranchIsActive = 'Y'
|
||||||
AND M_BranchS_RegionalID = ?";
|
AND M_BranchS_RegionalID = ?";
|
||||||
$que = $this->db->query($sql, [$user['S_RegionalID']]);
|
$que = $this->db->query($sql, [$user['S_RegionalID']]);
|
||||||
if (!$que) {
|
if (!$que) {
|
||||||
$this->sys_error_db("[Error] failed get list cabang");
|
$this->sys_error_db("[Error] failed get list cabang");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = $que->result_array();
|
$data = $que->result_array();
|
||||||
$this->sys_ok($data);
|
$this->sys_ok($data);
|
||||||
} catch (Exception $exc) {
|
} catch (Exception $exc) {
|
||||||
@@ -74,7 +74,7 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$para = $this->sys_input;
|
$para = $this->sys_input;
|
||||||
|
|
||||||
$keyword = "%";
|
$keyword = "%";
|
||||||
if ($para['search'] != '') {
|
if ($para['search'] != '') {
|
||||||
$keyword .= $para['search'] . "%";
|
$keyword .= $para['search'] . "%";
|
||||||
@@ -86,13 +86,13 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
$offset = ($para['currpage'] - 1) * $limit;
|
$offset = ($para['currpage'] - 1) * $limit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
PurchaseRequestID,
|
PurchaseRequestID,
|
||||||
PurchaseRequestNumber,
|
PurchaseRequestNumber,
|
||||||
PurchaseRequestDetailID,
|
PurchaseRequestDetailID,
|
||||||
PurchaseRequestFlagID,
|
PurchaseRequestFlagID,
|
||||||
PurchaseRequestFlagM_BranchCode AS BranchCode,
|
PurchaseRequestFlagM_BranchCode AS BranchCode,
|
||||||
PurchaseRequestItemCategoryID AS ItemCategoryID,
|
PurchaseRequestItemCategoryID AS ItemCategoryID,
|
||||||
PurchaseRequestFlagQtyRest - PurchaseRequestFlagQtyProses AS UnprocessFlagQty,
|
PurchaseRequestFlagQtyRest - PurchaseRequestFlagQtyProses AS UnprocessFlagQty,
|
||||||
PurchaseRequestDetailQty AS RequestQty,
|
PurchaseRequestDetailQty AS RequestQty,
|
||||||
PurchaseRequestDetailQty AS OriginalQty,
|
PurchaseRequestDetailQty AS OriginalQty,
|
||||||
@@ -114,7 +114,7 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
AND PurchaseRequestFlagIsActive = 'Y'
|
AND PurchaseRequestFlagIsActive = 'Y'
|
||||||
JOIN m_item ON M_ItemID = PurchaseRequestDetailM_ItemID
|
JOIN m_item ON M_ItemID = PurchaseRequestDetailM_ItemID
|
||||||
JOIN itemunit ON ItemUnitID = PurchaseRequestDetailItemUnitID
|
JOIN itemunit ON ItemUnitID = PurchaseRequestDetailItemUnitID
|
||||||
JOIN supplier_price ON SupplierPriceSupplierID = ?
|
JOIN supplier_price ON SupplierPriceSupplierID = ?
|
||||||
AND SupplierPriceM_ItemID = M_ItemID
|
AND SupplierPriceM_ItemID = M_ItemID
|
||||||
AND SupplierPriceItemUnitID = ItemUnitID
|
AND SupplierPriceItemUnitID = ItemUnitID
|
||||||
AND SupplierPriceIsActive = 'Y'
|
AND SupplierPriceIsActive = 'Y'
|
||||||
@@ -122,14 +122,14 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
AND M_BranchIsActive = 'Y'
|
AND M_BranchIsActive = 'Y'
|
||||||
WHERE NOT EXISTS (
|
WHERE NOT EXISTS (
|
||||||
SELECT 1
|
SELECT 1
|
||||||
FROM purchase_order_detail
|
FROM purchase_order_detail
|
||||||
JOIN purchase_order ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID
|
JOIN purchase_order ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID
|
||||||
AND PurchaseOrderStatus = 'Approved'
|
AND PurchaseOrderStatus = 'Approved'
|
||||||
AND PurchaseOrderIsActive = 'Y'
|
AND PurchaseOrderIsActive = 'Y'
|
||||||
AND PurchaseOrderDetailIsActive = 'Y'
|
AND PurchaseOrderDetailIsActive = 'Y'
|
||||||
WHERE PurchaseOrderDetailPurchaseRequestDetailID = PurchaseRequestDetailID
|
WHERE PurchaseOrderDetailPurchaseRequestDetailID = PurchaseRequestDetailID
|
||||||
)";
|
)";
|
||||||
|
|
||||||
$sql_data = $sql . " LIMIT ? OFFSET ? ";
|
$sql_data = $sql . " LIMIT ? OFFSET ? ";
|
||||||
$que_data = $this->db->query($sql_data, [
|
$que_data = $this->db->query($sql_data, [
|
||||||
$para['branchcode'], $keyword, $para['supplierID'],
|
$para['branchcode'], $keyword, $para['supplierID'],
|
||||||
@@ -162,6 +162,304 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDaftarPoAset() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$keyword = "%";
|
||||||
|
if ($para['search'] != '') {
|
||||||
|
$keyword .= $para['search'] . "%";
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_base = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseOrderDate,
|
||||||
|
PurchaseOrderNote,
|
||||||
|
PurchaseOrderNumber,
|
||||||
|
PurchaseOrderStatus,
|
||||||
|
PurchaseOrderRefNumber,
|
||||||
|
PurchaseOrderGrandTotal,
|
||||||
|
PurchaseOrderS_RegionalID,
|
||||||
|
PurchaseOrderApprovedManagerUserID AS verifiedby,
|
||||||
|
IFNULL(PurchaseOrderApprovedUserID, 0) AS approvedby,
|
||||||
|
PurchaseOrderAssetContractID,
|
||||||
|
PurchaseOrderAssetContractName AS contractName,
|
||||||
|
PurchaseOrderAssetContractStartDate AS contractStart,
|
||||||
|
PurchaseOrderAssetContractEndDate AS contractEnd,
|
||||||
|
SupplierID,
|
||||||
|
SupplierName
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN supplier ON SupplierID = PurchaseOrderSupplierID
|
||||||
|
JOIN purchase_order_asset_contract
|
||||||
|
ON PurchaseOrderAssetContractPurchaseOrderID = PurchaseOrderID
|
||||||
|
WHERE PurchaseOrderIsActive = 'Y'
|
||||||
|
AND PurchaseOrderItemCategoryID = '3'
|
||||||
|
AND PurchaseOrderS_RegionalID = ?
|
||||||
|
AND PurchaseOrderDate BETWEEN DATE(?) AND DATE(?)
|
||||||
|
AND (PurchaseOrderStatus = ? OR 'All' = ?)
|
||||||
|
AND PurchaseOrderNumber LIKE ?";
|
||||||
|
|
||||||
|
$limit = 10;
|
||||||
|
$offset = 0;
|
||||||
|
if ($para['currpage'] > 0) {
|
||||||
|
$offset = ($para['currpage'] - 1) * $limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_data = $sql_base . " LIMIT ? OFFSET ?";
|
||||||
|
$que_data = $this->db->query($sql_data, [
|
||||||
|
$user['S_RegionalID'], $para['startdate'], $para['enddate'],
|
||||||
|
$para['status'], $para['status'], $keyword, $limit, $offset
|
||||||
|
]);
|
||||||
|
if (!$que_data) {
|
||||||
|
$this->sys_error_db("[Error] failed get data listing PO asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$data_services = $que_data->result_array();
|
||||||
|
|
||||||
|
$sql_total = "SELECT COUNT(*) AS total FROM ($sql_base) AS x";
|
||||||
|
$que_total = $this->db->query($sql_total, [
|
||||||
|
$user['S_RegionalID'], $para['startdate'], $para['enddate'],
|
||||||
|
$para['status'], $para['status'], $keyword
|
||||||
|
]);
|
||||||
|
if (!$que_total) {
|
||||||
|
$this->sys_error_db("[Error] failed get total data listing PO asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$total_services = $que_total->row_array()['total'];
|
||||||
|
|
||||||
|
$output = [
|
||||||
|
"records" => $data_services,
|
||||||
|
"total" => $total_services
|
||||||
|
];
|
||||||
|
|
||||||
|
$this->sys_ok($output);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDaftarAttachment() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
$sql = "SELECT
|
||||||
|
PurchaseOrderAssetAttachmentID AS attach_id,
|
||||||
|
PurchaseOrderAssetAttachmentName AS img_url,
|
||||||
|
PurchaseOrderAssetAttachmentCreated AS created
|
||||||
|
FROM purchase_order_asset_attachment
|
||||||
|
WHERE PurchaseOrderAssetAttachmentIsActive = 'Y'
|
||||||
|
AND PurchaseOrderAssetAttachmentContractID = ?
|
||||||
|
AND PurchaseOrderAssetAttachmentPurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderAssetAttachmentType = 'order'";
|
||||||
|
$que = $this->db->query($sql, [
|
||||||
|
$para['contractID'], $para['poID']
|
||||||
|
]);
|
||||||
|
if (!$que) {
|
||||||
|
$this->sys_error_db("[Error] failed get data attachment");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$data = $que->result_array();
|
||||||
|
|
||||||
|
$this->sys_ok($data);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDataKontrakPoAset() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
|
||||||
|
# get data from purchase order detail #
|
||||||
|
$sql_detail = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseRequestID,
|
||||||
|
PurchaseRequestNumber,
|
||||||
|
PurchaseOrderDetailPurchaseSummaryID AS PurchaseOrderSummaryID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestDetailID AS PurchaseRequestDetailID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestFlagID AS PurchaseRequestFlagID,
|
||||||
|
PurchaseOrderDetailRequestQty AS OriginalQty,
|
||||||
|
PurchaseOrderDetailQty AS RequestQty,
|
||||||
|
PurchaseOrderDetailPrice AS SupplierPrice,
|
||||||
|
PurchaseOrderDetailTotal,
|
||||||
|
PurchaseOrderDetailItemID AS M_ItemID,
|
||||||
|
M_ItemCode,
|
||||||
|
M_ItemDesc,
|
||||||
|
PurchaseOrderDetailItemUnitID AS ItemUnitID,
|
||||||
|
ItemUnitName
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN purchase_order_detail ON PurchaseOrderDetailPurchaseOrderID = PurchaseOrderID
|
||||||
|
AND PurchaseOrderDetailIsActive = 'Y'
|
||||||
|
JOIN purchase_request ON PurchaseRequestID = PurchaseOrderDetailPurchaseRequestID
|
||||||
|
JOIN m_item ON M_ItemID = PurchaseOrderDetailItemID
|
||||||
|
JOIN itemunit ON ItemUnitID = PurchaseOrderDetailItemUnitID
|
||||||
|
WHERE PurchaseOrderDetailIsActive = 'Y'
|
||||||
|
AND PurchaseOrderID = ?";
|
||||||
|
$que_detail = $this->db->query($sql_detail, [$para['poID']]);
|
||||||
|
if (!$que_detail) {
|
||||||
|
$this->sys_error_db("[Error] failed get data po detail asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$detail_asset = $que_detail->result_array();
|
||||||
|
|
||||||
|
# get data from purchase order summary #
|
||||||
|
$sql_sumry = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseOrderSummaryID,
|
||||||
|
PurchaseOrderSummaryQty AS RequestQty,
|
||||||
|
PurchaseOrderSummaryPrice AS SupplierPrice,
|
||||||
|
PurchaseOrderSummaryDiscountRupiah AS DiskonRupiah,
|
||||||
|
PurchaseOrderSummaryDiscountPercent AS DiskonPercent,
|
||||||
|
PurchaseOrderSummaryDiscountAmount AS DiskonAmount,
|
||||||
|
PurchaseOrderSummaryDiscountType AS DiskonType,
|
||||||
|
(PurchaseOrderSummaryPrice - PurchaseOrderSummaryDiscountAmount) AS EndPrice,
|
||||||
|
PurchaseOrderSummaryTotal AS TempTotal,
|
||||||
|
PurchaseOrderSummaryItemID AS M_ItemID,
|
||||||
|
M_ItemCode,
|
||||||
|
M_ItemDesc,
|
||||||
|
PurchaseOrderSummaryItemUnitID AS ItemUnitID,
|
||||||
|
ItemUnitName
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN purchase_order_summary ON PurchaseOrderSummaryPurchaseOrderID = PurchaseOrderID
|
||||||
|
JOIN m_item ON M_ItemID = PurchaseOrderSummaryItemID
|
||||||
|
JOIN itemunit ON ItemUnitID = PurchaseOrderSummaryItemUnitID
|
||||||
|
WHERE PurchaseOrderSummaryIsActive = 'Y'
|
||||||
|
AND PurchaseOrderID = ?";
|
||||||
|
$que_sumry = $this->db->query($sql_sumry, [$para['poID']]);
|
||||||
|
if (!$que_sumry) {
|
||||||
|
$this->sys_error_db("[Error] failed get data po summary asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$data_sumry = $que_sumry->result_array();
|
||||||
|
|
||||||
|
# get data from purchase order #
|
||||||
|
$sql_poasset = "SELECT
|
||||||
|
PurchaseOrderID,
|
||||||
|
PurchaseOrderDate AS podate,
|
||||||
|
PurchaseOrderNote AS catatan,
|
||||||
|
PurchaseOrderNumber,
|
||||||
|
PurchaseOrderStatus,
|
||||||
|
PurchaseOrderRefNumber AS reference,
|
||||||
|
PurchaseOrderGrandTotal AS grandtotal,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderTaxPpnType = 'P' THEN 'percent'
|
||||||
|
ELSE 'absolute'
|
||||||
|
END AS typepajak,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderTaxPpnType = 'P' THEN PurchaseOrderTaxPercentPpn
|
||||||
|
ELSE PurchaseOrderTaxAmountPpn
|
||||||
|
END AS valuepajak,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderDiscountPercent > 0.00 THEN 'percent'
|
||||||
|
ELSE 'absolute'
|
||||||
|
END AS typediskon,
|
||||||
|
CASE
|
||||||
|
WHEN PurchaseOrderDiscountPercent > 0.00 THEN PurchaseOrderDiscountPercent
|
||||||
|
ELSE PurchaseOrderDiscountAmount
|
||||||
|
END AS valuediskon,
|
||||||
|
PurchaseOrderSubTotal AS subtotal,
|
||||||
|
PurchaseOrderGrandTotal AS grandtotal,
|
||||||
|
SupplierID AS supplierID,
|
||||||
|
SupplierName,
|
||||||
|
PurchaseOrderAssetContractID,
|
||||||
|
PurchaseOrderAssetContractTAssetAttachmentID AS assetAttachmentID,
|
||||||
|
PurchaseOrderAssetContractName AS contractName,
|
||||||
|
PurchaseOrderAssetContractDate AS contractDate,
|
||||||
|
PurchaseOrderAssetContractStartDate AS contractStart,
|
||||||
|
PurchaseOrderAssetContractEndDate AS contractEnd,
|
||||||
|
PurchaseOrderAssetContractDuration AS contractDuration,
|
||||||
|
PurchaseOrderAssetContractInstallmentNumber AS installmentNumber,
|
||||||
|
PurchaseOrderAssetContractInstallmentDate AS installmentDate,
|
||||||
|
PurchaseOrderAssetContractInstallmentPayAmount AS installmentPayAmount,
|
||||||
|
PurchaseOrderAssetContractInstallmentDownPaymentType AS installmentDownPaymentType,
|
||||||
|
PurchaseOrderAssetContractInstallmentDownPayment AS installmentDownPayment,
|
||||||
|
PurchaseOrderApprovedManagerUserID AS verifiedby
|
||||||
|
FROM purchase_order
|
||||||
|
JOIN supplier ON SupplierID = PurchaseOrderSupplierID
|
||||||
|
JOIN purchase_order_asset_contract
|
||||||
|
ON PurchaseOrderAssetContractPurchaseOrderID = PurchaseOrderID
|
||||||
|
WHERE PurchaseOrderIsActive = 'Y'
|
||||||
|
AND PurchaseOrderID = ?";
|
||||||
|
$que_poasset = $this->db->query($sql_poasset, [$para['poID']]);
|
||||||
|
if (!$que_poasset) {
|
||||||
|
$this->sys_error_db("[Error] failed get data from purchase order");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$datapo = $que_poasset->row_array();
|
||||||
|
|
||||||
|
# process data output #
|
||||||
|
/* map detail po to summary */
|
||||||
|
$grouped_detailpo = array();
|
||||||
|
foreach ($detail_asset as $obj) {
|
||||||
|
$idz = $obj['PurchaseOrderSummaryID'];
|
||||||
|
if (!isset($grouped_detailpo[$idz])) {
|
||||||
|
$grouped_detailpo[$idz] = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$grouped_detailpo[$idz][] = $obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($data_sumry as $key => $summary) {
|
||||||
|
$ids = $summary['PurchaseOrderSummaryID'];
|
||||||
|
|
||||||
|
if (isset($grouped_detailpo[$ids])) {
|
||||||
|
$data_sumry[$key]['detail'] = $grouped_detailpo[$ids];
|
||||||
|
} else {
|
||||||
|
$data_sumry[$key]['detail'] = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$subtotal = floatval($datapo['subtotal']);
|
||||||
|
$grandtotal = floatval($datapo['grandtotal']);
|
||||||
|
|
||||||
|
$valuediskon = floatval($datapo['valuediskon']);
|
||||||
|
if ($datapo['typediskon'] == 'percent') {
|
||||||
|
$valuediskon = round(floatval($datapo['valuediskon']) * $subtotal / 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
$valuepajak = floatval($datapo['valuepajak']);
|
||||||
|
if ($datapo['typepajak'] == 'percent') {
|
||||||
|
$price = ($subtotal - $valuediskon);
|
||||||
|
$valuepajak = round(floatval($datapo['valuepajak']) * $price / 100, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
$outsummary = [
|
||||||
|
"subtotal" => $subtotal,
|
||||||
|
"diskon" => $valuediskon,
|
||||||
|
"pajak" => $valuepajak,
|
||||||
|
"total" => $grandtotal
|
||||||
|
];
|
||||||
|
/* map summary to purchase order */
|
||||||
|
$datapo['valuepajak'] = floatval($datapo['valuepajak']);
|
||||||
|
$datapo['valuediskon'] = floatval($datapo['valuediskon']);
|
||||||
|
$datapo['detail'] = $data_sumry;
|
||||||
|
$datapo['summary'] = $outsummary;
|
||||||
|
|
||||||
|
$this->sys_ok($datapo);
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
## MUTATIONS ##
|
## MUTATIONS ##
|
||||||
public function createPoAsset() {
|
public function createPoAsset() {
|
||||||
try {
|
try {
|
||||||
@@ -183,7 +481,7 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
$areatype = 'R';
|
$areatype = 'R';
|
||||||
}
|
}
|
||||||
|
|
||||||
$sqlusrdivisi = "SELECT M_UserDivisionDivisionID FROM m_userdivision
|
$sqlusrdivisi = "SELECT M_UserDivisionDivisionID FROM m_userdivision
|
||||||
WHERE M_UserDivisionM_UserID = ? AND M_UserDivisionIsActive = 'Y'";
|
WHERE M_UserDivisionM_UserID = ? AND M_UserDivisionIsActive = 'Y'";
|
||||||
$queusrdivisi = $this->db->query($sqlusrdivisi, [$user['M_UserID']]);
|
$queusrdivisi = $this->db->query($sqlusrdivisi, [$user['M_UserID']]);
|
||||||
if (!$queusrdivisi) {
|
if (!$queusrdivisi) {
|
||||||
@@ -332,8 +630,8 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* purchase request update flag */
|
/* purchase request update flag */
|
||||||
$sql_flag = "UPDATE purchase_request_flag SET
|
$sql_flag = "UPDATE purchase_request_flag SET
|
||||||
PurchaseRequestFlagQtyProses = ?
|
PurchaseRequestFlagQtyProses = ?
|
||||||
WHERE PurchaseRequestFlagID = ?";
|
WHERE PurchaseRequestFlagID = ?";
|
||||||
$que_flag = $this->db->query($sql_flag, [
|
$que_flag = $this->db->query($sql_flag, [
|
||||||
$obj['RequestQty'], $obj['PurchaseRequestFlagID']
|
$obj['RequestQty'], $obj['PurchaseRequestFlagID']
|
||||||
@@ -397,6 +695,479 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function editPoAsset() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
# check tipe diskon dan pajak #
|
||||||
|
$taxtype = 'R';
|
||||||
|
$taxpercent = 0;
|
||||||
|
if ($para['typepajak'] == 'percent') {
|
||||||
|
$taxtype = 'P';
|
||||||
|
$taxpercent = floatval($para['valuepajak']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$discpercent = 0;
|
||||||
|
if ($para['typediskon'] == 'percent') {
|
||||||
|
$discpercent = floatval($para['valuediskon']);
|
||||||
|
}
|
||||||
|
|
||||||
|
# get data summary #
|
||||||
|
$summary_subtotal = floatval($para['summary']['subtotal']);
|
||||||
|
$summary_diskon = floatval($para['summary']['diskon']);
|
||||||
|
$summary_pajak = floatval($para['summary']['pajak']);
|
||||||
|
$summary_total = floatval($para['summary']['total']);
|
||||||
|
|
||||||
|
# update po header #
|
||||||
|
$sql_po = "UPDATE purchase_order SET
|
||||||
|
PurchaseOrderDate = ?,
|
||||||
|
PurchaseOrderRefNumber = ?,
|
||||||
|
PurchaseOrderSupplierID = ?,
|
||||||
|
PurchaseOrderS_RegionalID = ?,
|
||||||
|
PurchaseOrderTaxPpnType = ?,
|
||||||
|
PurchaseOrderTaxPercentPpn = ?,
|
||||||
|
PurchaseOrderDiscountPercent = ?,
|
||||||
|
PurchaseOrderDiscountAmount = ?,
|
||||||
|
PurchaseOrderNote = ?,
|
||||||
|
PurchaseOrderSubTotal = ?,
|
||||||
|
PurchaseOrderTaxAmountPpn = ?,
|
||||||
|
PurchaseOrderGrandTotal = ?,
|
||||||
|
PurchaseOrderLastUpdated = NOW()
|
||||||
|
WHERE PurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderIsActive = 'Y'";
|
||||||
|
$que_po = $this->db->query($sql_po, [
|
||||||
|
$para['podate'], $para['reference'], $para['supplierID'], $user['S_RegionalID'],
|
||||||
|
$taxtype, $taxpercent, $discpercent, $summary_diskon, $para['catatan'],
|
||||||
|
$summary_subtotal, $summary_pajak, $summary_total, $para['PurchaseOrderID']
|
||||||
|
]);
|
||||||
|
if (!$que_po) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update header purchase order");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
# update purchase_order_asset_contract #
|
||||||
|
$sql_contract = "UPDATE purchase_order_asset_contract SET
|
||||||
|
PurchaseOrderAssetContractTAssetAttachmentID = ?,
|
||||||
|
PurchaseOrderAssetContractName = ?,
|
||||||
|
PurchaseOrderAssetContractDate = ?,
|
||||||
|
PurchaseOrderAssetContractStartDate = ?,
|
||||||
|
PurchaseOrderAssetContractEndDate = ?,
|
||||||
|
PurchaseOrderAssetContractDuration = ?,
|
||||||
|
PurchaseOrderAssetContractInstallmentNumber = ?,
|
||||||
|
PurchaseOrderAssetContractInstallmentDate = ?,
|
||||||
|
PurchaseOrderAssetContractInstallmentPayAmount = ?,
|
||||||
|
PurchaseOrderAssetContractInstallmentDownPaymentType = ?,
|
||||||
|
PurchaseOrderAssetContractInstallmentDownPayment = ?,
|
||||||
|
PurchaseOrderAssetContractLastUpdated = NOW()
|
||||||
|
WHERE PurchaseOrderAssetContractID = ?
|
||||||
|
AND PurchaseOrderAssetContractIsActive = 'Y'";
|
||||||
|
$que_contract = $this->db->query($sql_contract, [
|
||||||
|
$para['assetAttachmentID'],
|
||||||
|
$para['contractName'],
|
||||||
|
$para['contractDate'],
|
||||||
|
$para['contractStart'],
|
||||||
|
$para['contractEnd'],
|
||||||
|
$para['contractDuration'] ?: 1,
|
||||||
|
$para['installmentNumber'] ?: 1,
|
||||||
|
$para['installmentDate'] ?: 1,
|
||||||
|
$para['installmentPayAmount'] ?: 0.00,
|
||||||
|
$para['installmentDownPaymentType'] ?: 'nominal',
|
||||||
|
$para['installmentDownPayment'] ?: 0.00,
|
||||||
|
$para['PurchaseOrderAssetContractID']
|
||||||
|
]);
|
||||||
|
if (!$que_contract) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update purchase order asset contract");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
# update status old po summary isActive to 'N' #
|
||||||
|
$sql_active = "UPDATE purchase_order_summary SET
|
||||||
|
PurchaseOrderSummaryIsActive = 'N'
|
||||||
|
WHERE PurchaseOrderSummaryPurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderSummaryIsActive = 'Y'";
|
||||||
|
$que_active = $this->db->query($sql_active, [$para['PurchaseOrderID']]);
|
||||||
|
if (!$que_active) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update status po summary to N");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
# insert new po summary #
|
||||||
|
$summary_detail = $para['detail'];
|
||||||
|
$item_detail = [];
|
||||||
|
foreach ($summary_detail as $key => $obj) {
|
||||||
|
$discpercent = 0;
|
||||||
|
$discabsolut = 0;
|
||||||
|
if ($obj['DiskonType'] == 'P') {
|
||||||
|
$discpercent = $obj['DiskonAmount'];
|
||||||
|
} else {
|
||||||
|
$discabsolut = $obj['DiskonAmount'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_summary = "INSERT INTO purchase_order_summary (
|
||||||
|
PurchaseOrderSummaryPurchaseOrderID,
|
||||||
|
PurchaseOrderSummaryItemID,
|
||||||
|
PurchaseOrderSummaryItemUnitID,
|
||||||
|
PurchaseOrderSummaryQty,
|
||||||
|
PurchaseOrderSummaryPrice,
|
||||||
|
PurchaseOrderSummaryTotal,
|
||||||
|
PurchaseOrderSummaryDiscountRupiah,
|
||||||
|
PurchaseOrderSummaryDiscountPercent,
|
||||||
|
PurchaseOrderSummaryDiscountAmount,
|
||||||
|
PurchaseOrderSummaryDiscountType,
|
||||||
|
PurchaseOrderSummaryCreatedUserID,
|
||||||
|
PurchaseOrderSummaryCreated
|
||||||
|
) VALUES (?,?,?,?,?,?,?,?,?,?,?,NOW())";
|
||||||
|
$que_summary = $this->db->query($sql_summary, [
|
||||||
|
$para['PurchaseOrderID'], $obj['M_ItemID'], $obj['ItemUnitID'],
|
||||||
|
$obj['RequestQty'], $obj['SupplierPrice'], $obj['TempTotal'],
|
||||||
|
$discabsolut, $discpercent, $obj['DiskonAmount'],
|
||||||
|
$obj['DiskonType'], $user['M_UserID']
|
||||||
|
]);
|
||||||
|
if (!$que_summary) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update data purchase order summary");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$PurchaseSummaryID = $this->db->insert_id();
|
||||||
|
foreach ($obj['detail'] as $key => $value) {
|
||||||
|
$obj['detail'][$key]['PurchaseSummaryID'] = $PurchaseSummaryID;
|
||||||
|
}
|
||||||
|
$item_detail = array_merge($item_detail, $obj['detail']);
|
||||||
|
}
|
||||||
|
|
||||||
|
# update status po detail isActive to 'N' #
|
||||||
|
$sql_active = "UPDATE purchase_order_detail SET
|
||||||
|
PurchaseOrderDetailIsActive = 'N'
|
||||||
|
WHERE PurchaseOrderDetailPurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderDetailIsActive = 'Y'";
|
||||||
|
$que_active = $this->db->query($sql_active, [$para['PurchaseOrderID']]);
|
||||||
|
if (!$que_active) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update status po detail to N");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
# insert new po detail #
|
||||||
|
foreach ($item_detail as $key => $obj) {
|
||||||
|
$total = floatval($obj['SupplierPrice']) * floatval($obj['RequestQty']);
|
||||||
|
|
||||||
|
$sql_detail = "INSERT INTO purchase_order_detail (
|
||||||
|
PurchaseOrderDetailPurchaseOrderID,
|
||||||
|
PurchaseOrderDetailPurchaseSummaryID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestDetailID,
|
||||||
|
PurchaseOrderDetailPurchaseRequestFlagID,
|
||||||
|
PurchaseOrderDetailItemID,
|
||||||
|
PurchaseOrderDetailItemUnitID,
|
||||||
|
PurchaseOrderDetailRequestQty,
|
||||||
|
PurchaseOrderDetailQty,
|
||||||
|
PurchaseOrderDetailPrice,
|
||||||
|
PurchaseOrderDetailTotal,
|
||||||
|
PurchaseOrderDetailUserID,
|
||||||
|
PurchaseOrderDetailCreatedUserID,
|
||||||
|
PurchaseOrderDetailCreated
|
||||||
|
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,NOW())";
|
||||||
|
$que_detail = $this->db->query($sql_detail, [
|
||||||
|
$para['PurchaseOrderID'], $obj['PurchaseSummaryID'], $obj['PurchaseRequestID'],
|
||||||
|
$obj['PurchaseRequestDetailID'], $obj['PurchaseRequestFlagID'],
|
||||||
|
$obj['M_ItemID'], $obj['ItemUnitID'], $obj['OriginalQty'], $obj['RequestQty'],
|
||||||
|
$obj['SupplierPrice'], $total, $user['M_UserID'], $user['M_UserID']
|
||||||
|
]);
|
||||||
|
if (!$que_detail) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed re-insert purchase order detail");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_flag = "UPDATE purchase_request_flag SET
|
||||||
|
PurchaseRequestFlagQtyProses = ?
|
||||||
|
WHERE PurchaseRequestFlagID = ?";
|
||||||
|
$que_flag = $this->db->query($sql_flag, [
|
||||||
|
$obj['RequestQty'], $obj['PurchaseRequestFlagID']
|
||||||
|
]);
|
||||||
|
if (!$que_flag) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update qty proses flag");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->insertLog(
|
||||||
|
$para['PurchaseOrderID'], 'UPDATE', $para, '',
|
||||||
|
[], $user['M_UserID'], 'edit purchase order asset'
|
||||||
|
);
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[success] update purchase order asset");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deletePoAsset() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$sql_detail = "SELECT
|
||||||
|
PurchaseOrderDetailPurchaseRequestFlagID,
|
||||||
|
PurchaseOrderDetailQty
|
||||||
|
FROM purchase_order_detail
|
||||||
|
WHERE PurchaseOrderDetailPurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderDetailIsActive = 'Y'";
|
||||||
|
$que_detail = $this->db->query($sql_detail, [$para['poID']]);
|
||||||
|
if (!$que_detail) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed current data purchase order detail asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$asset_detail = $que_detail->result_array();
|
||||||
|
|
||||||
|
/* reduce qty process in purchase order flag */
|
||||||
|
foreach ($asset_detail as $key => $obj) {
|
||||||
|
$sql_updateflag = "UPDATE purchase_request_flag SET
|
||||||
|
PurchaseRequestFlagQtyProses = PurchaseRequestFlagQtyProses - ?
|
||||||
|
WHERE PurchaseRequestFlagID = ?";
|
||||||
|
$que_updateflag = $this->db->query($sql_updateflag, [
|
||||||
|
$obj['PurchaseOrderDetailQty'],
|
||||||
|
$obj['PurchaseOrderDetailPurchaseRequestFlagID']
|
||||||
|
]);
|
||||||
|
if (!$que_updateflag) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed to update qty po asset");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* soft delete purchase order detail */
|
||||||
|
$sql_deldetail = "UPDATE purchase_order_detail SET
|
||||||
|
PurchaseOrderDetailIsActive = 'N',
|
||||||
|
PurchaseOrderDetailDeleted = NOW(),
|
||||||
|
PurchaseOrderDetailDeletedUserID = ?
|
||||||
|
WHERE PurchaseOrderDetailPurchaseOrderID = ?";
|
||||||
|
$que_deldetail = $this->db->query($sql_deldetail, [
|
||||||
|
$user['M_UserID'], $para['poID']
|
||||||
|
]);
|
||||||
|
if (!$que_deldetail) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed soft delete data purchase order detail");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* soft delete purchase order summary */
|
||||||
|
$sql_delsummary = "UPDATE purchase_order_summary SET
|
||||||
|
PurchaseOrderSummaryIsActive = 'N',
|
||||||
|
PurchaseOrderSummaryDeleted = NOW(),
|
||||||
|
PurchaseOrderSummaryDeletedUserID = ?
|
||||||
|
WHERE PurchaseOrderSummaryPurchaseOrderID = ?";
|
||||||
|
$que_delsummary = $this->db->query($sql_delsummary, [
|
||||||
|
$user['M_UserID'], $para['poID']
|
||||||
|
]);
|
||||||
|
if (!$que_delsummary) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed soft delete data purchase order summary");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* soft delete purchase_order_asset_contract */
|
||||||
|
$sql_delcontract = "UPDATE purchase_order_asset_contract SET
|
||||||
|
PurchaseOrderAssetContractIsActive = 'N',
|
||||||
|
PurchaseOrderAssetContractLastUpdated = NOW()
|
||||||
|
WHERE PurchaseOrderAssetContractID = ?
|
||||||
|
AND PurchaseOrderAssetContractPurchaseOrderID = ?";
|
||||||
|
$que_delcontract = $this->db->query($sql_delcontract, [
|
||||||
|
$para['contractID'], $para['poID']
|
||||||
|
]);
|
||||||
|
if (!$que_delcontract) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed soft delete data purchase order asset contract");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* soft delete purchase order */
|
||||||
|
$sql_delorder = "UPDATE purchase_order SET
|
||||||
|
PurchaseOrderIsActive = 'N',
|
||||||
|
PurchaseOrderDeleted = NOW(),
|
||||||
|
PurchaseOrderDeletedUserID = ?
|
||||||
|
WHERE PurchaseOrderID = ?";
|
||||||
|
$que_delorder = $this->db->query($sql_delorder, [
|
||||||
|
$user['M_UserID'], $para['poID']
|
||||||
|
]);
|
||||||
|
if (!$que_delorder) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed soft delete data purchase order");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$desc = "delete purchase order asset dengan nomor {$para['ponumber']}";
|
||||||
|
$this->insertLog($para['poID'], 'DELETE', $para, '', [], $user['M_UserID'], $desc);
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] {$desc}");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// upload file
|
||||||
|
public function uploadAttachment() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
|
||||||
|
$basepath = "/home/one/project/accone/one-media/order-asset/";
|
||||||
|
$year = date("Y");
|
||||||
|
$targetpath = $basepath . $year . "/";
|
||||||
|
|
||||||
|
if (!is_dir($targetpath)) {
|
||||||
|
mkdir($targetpath, 0755, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$config['upload_path'] = $targetpath;
|
||||||
|
$config['allowed_types'] = 'jpg|jpeg|png';
|
||||||
|
$config['max_size'] = '10000';
|
||||||
|
$count = count($_FILES['files']['name']);
|
||||||
|
$this->load->library('upload', $config);
|
||||||
|
|
||||||
|
for ($i=0; $i < $count; $i++) {
|
||||||
|
if (!empty($_FILES['files']['name'][$i])) {
|
||||||
|
$_FILES['file']['name'] = $_FILES['files']['name'][$i];
|
||||||
|
$_FILES['file']['type'] = $_FILES['files']['type'][$i];
|
||||||
|
$_FILES['file']['tmp_name'] = $_FILES['files']['tmp_name'][$i];
|
||||||
|
$_FILES['file']['error'] = $_FILES['files']['error'][$i];
|
||||||
|
$_FILES['file']['size'] = $_FILES['files']['size'][$i];
|
||||||
|
|
||||||
|
$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
|
||||||
|
$new_filename = "PO" . date("YmdHis") . "_" . $para['ponumber'] . "." . $ext;
|
||||||
|
$config['file_name'] = $new_filename;
|
||||||
|
$this->upload->initialize($config);
|
||||||
|
|
||||||
|
if ($this->upload->do_upload('file')) {
|
||||||
|
$upload_data = $this->upload->data();
|
||||||
|
$filename = $upload_data['file_name'];
|
||||||
|
|
||||||
|
$sql_insert = "INSERT INTO purchase_order_asset_attachment (
|
||||||
|
PurchaseOrderAssetAttachmentContractID,
|
||||||
|
PurchaseOrderAssetAttachmentPurchaseOrderID,
|
||||||
|
PurchaseOrderAssetAttachmentName,
|
||||||
|
PurchaseOrderAssetAttachmentType,
|
||||||
|
PurchaseOrderAssetAttachmentCreated
|
||||||
|
) VALUES (?,?,?,?,NOW())";
|
||||||
|
$que_insert = $this->db->query($sql_insert, [
|
||||||
|
$para['contractID'], $para['poID'], $filename, 'order'
|
||||||
|
]);
|
||||||
|
if (!$que_insert) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed insert attachment table purchase order asset attachment");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error = $this->upload->display_errors();
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error("[Error] " . $error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] upload attachment order asset");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateApprovalPO() {
|
||||||
|
try {
|
||||||
|
if (!$this->isLogin) {
|
||||||
|
$this->sys_error("invalid token");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_begin();
|
||||||
|
$para = $this->sys_input;
|
||||||
|
$user = $this->sys_user;
|
||||||
|
$approvelevel = $para['approvelevel'];
|
||||||
|
|
||||||
|
/* request purchase order */
|
||||||
|
if ($approvelevel == '0') {
|
||||||
|
$sql = "UPDATE purchase_order SET
|
||||||
|
PurchaseOrderStatus = 'Pending',
|
||||||
|
PurchaseOrderLastUpdated = NOW()
|
||||||
|
WHERE PurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderIsActive = 'Y'";
|
||||||
|
$que = $this->db->query($sql, [$para['poID']]);
|
||||||
|
if (!$que) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update table purchase order request");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* verifikasi oleh manager */
|
||||||
|
if ($approvelevel == '1') {
|
||||||
|
$sql = "UPDATE purchase_order SET
|
||||||
|
PurchaseOrderApprovedManagerUserID = ?,
|
||||||
|
PurchaseOrderLastUpdated = NOW()
|
||||||
|
WHERE PurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderIsActive = 'Y'";
|
||||||
|
$que = $this->db->query($sql, [$user['M_UserID'], $para['poID']]);
|
||||||
|
if (!$que) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update table purchase order verif");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* approval oleh kepala regional */
|
||||||
|
if ($approvelevel == '2') {
|
||||||
|
$sql = "UPDATE purchase_order SET
|
||||||
|
PurchaseOrderStatus = 'Approved',
|
||||||
|
PurchaseOrderLastUpdated = NOW(),
|
||||||
|
PurchaseOrderApprovedUserID = ?
|
||||||
|
WHERE PurchaseOrderID = ?
|
||||||
|
AND PurchaseOrderIsActive = 'Y'";
|
||||||
|
$que = $this->db->query($sql, [$user['M_UserID'], $para['poID']]);
|
||||||
|
if (!$que) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] failed update table purchase order approve");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit();
|
||||||
|
$this->sys_ok("[Success] success update status PO Asset");
|
||||||
|
} catch (Exception $exc) {
|
||||||
|
$msg = $exc->getMessage();
|
||||||
|
$this->sys_error($msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getUserApproveLevel() {
|
public function getUserApproveLevel() {
|
||||||
try {
|
try {
|
||||||
if (!$this->isLogin) {
|
if (!$this->isLogin) {
|
||||||
@@ -405,7 +1176,7 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$user = $this->sys_user;
|
$user = $this->sys_user;
|
||||||
$sql = "SELECT M_UserM_ApproveLevelID FROM m_user
|
$sql = "SELECT M_UserM_ApproveLevelID FROM m_user
|
||||||
WHERE M_UserIsActive = 'Y' AND M_UserID = ? ";
|
WHERE M_UserIsActive = 'Y' AND M_UserID = ? ";
|
||||||
$que = $this->db->query($sql, [$user['M_UserID']]);
|
$que = $this->db->query($sql, [$user['M_UserID']]);
|
||||||
if (!$que) {
|
if (!$que) {
|
||||||
@@ -440,4 +1211,4 @@ class PurchaseOrderAset extends MY_Controller {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1514,23 +1514,23 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
# GET DATA RO #
|
# GET DATA RO #
|
||||||
$json_ro_before = $this->getDataROPO($ROID);
|
$json_ro_before = $this->getDataROPO($ROID);
|
||||||
$sql_ro = "SELECT
|
$sql_ro = "SELECT
|
||||||
receive_order_po.*,
|
receive_order_po.*,
|
||||||
DATE_FORMAT(ReceiveOrderPoIDate, '%d-%m-%Y') AS formatedDate,
|
DATE_FORMAT(ReceiveOrderPoIDate, '%d-%m-%Y') AS formatedDate,
|
||||||
CASE
|
CASE
|
||||||
WHEN WarehouseType = 'B'
|
WHEN WarehouseType = 'B'
|
||||||
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName)
|
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', M_BranchName)
|
||||||
WHEN WarehouseType = 'R'
|
WHEN WarehouseType = 'R'
|
||||||
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName)
|
THEN CONCAT(WarehouseCode,' ', WarehouseName, ' - ', S_RegionalName)
|
||||||
ELSE ''
|
ELSE ''
|
||||||
END WarehouseName,
|
END WarehouseName,
|
||||||
WarehouseID
|
WarehouseID
|
||||||
FROM receive_order_po
|
FROM receive_order_po
|
||||||
JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID
|
JOIN warehouse ON ReceiveOrderPoWarehouseID = WarehouseID
|
||||||
JOIN s_regional ON WarehouseS_RegionalID = S_RegionalID
|
JOIN s_regional ON WarehouseS_RegionalID = S_RegionalID
|
||||||
AND S_RegionalIsActive = 'Y'
|
AND S_RegionalIsActive = 'Y'
|
||||||
LEFT JOIN m_branch ON WarehouseM_BranchID = M_BranchID
|
LEFT JOIN m_branch ON WarehouseM_BranchID = M_BranchID
|
||||||
AND M_BranchIsActive = 'Y'
|
AND M_BranchIsActive = 'Y'
|
||||||
WHERE ReceiveOrderPoID = ?";
|
WHERE ReceiveOrderPoID = ?";
|
||||||
$que_ro = $this->db->query($sql_ro, [$ROID]);
|
$que_ro = $this->db->query($sql_ro, [$ROID]);
|
||||||
if (!$que_ro) {
|
if (!$que_ro) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
@@ -1545,23 +1545,23 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql_detail_ro = "SELECT
|
$sql_detail_ro = "SELECT
|
||||||
receive_order_po_detail.*,
|
receive_order_po_detail.*,
|
||||||
PurchaseOrderID,
|
PurchaseOrderID,
|
||||||
PurchaseOrderNumber,
|
PurchaseOrderNumber,
|
||||||
PurchaseOrderTaxPercentPph,
|
PurchaseOrderTaxPercentPph,
|
||||||
PurchaseOrderTaxPercentPpn,
|
PurchaseOrderTaxPercentPpn,
|
||||||
PurchaseOrderSummaryDiscountAmount as DiscountPerItem,
|
PurchaseOrderSummaryDiscountAmount as DiscountPerItem,
|
||||||
PurchaseOrderSummaryQty as QtyAllPO,
|
PurchaseOrderSummaryQty as QtyAllPO,
|
||||||
PurchaseOrderSummaryTotal as TotalAllPO,
|
PurchaseOrderSummaryTotal as TotalAllPO,
|
||||||
PurchaseOrderDiscountPercent AS DiscPOPercent,
|
PurchaseOrderDiscountPercent AS DiscPOPercent,
|
||||||
PurchaseOrderDiscountAmount AS DiscPORupiah
|
PurchaseOrderDiscountAmount AS DiscPORupiah
|
||||||
FROM receive_order_po_detail
|
FROM receive_order_po_detail
|
||||||
JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID
|
JOIN purchase_order ON ReceiveOrderPoDetailPurchaseOrderID = PurchaseOrderID
|
||||||
JOIN purchase_order_summary ON ReceiveOrderPoDetailPurchaseOrderSummaryID = PurchaseOrderSummaryID
|
JOIN purchase_order_summary ON ReceiveOrderPoDetailPurchaseOrderSummaryID = PurchaseOrderSummaryID
|
||||||
AND PurchaseOrderSummaryIsActive = 'Y'
|
AND PurchaseOrderSummaryIsActive = 'Y'
|
||||||
WHERE ReceiveOrderPoDetailReceiveOrderPoID = ?
|
WHERE ReceiveOrderPoDetailReceiveOrderPoID = ?
|
||||||
AND ReceiveOrderPoDetailIsActive='Y'
|
AND ReceiveOrderPoDetailIsActive='Y'
|
||||||
GROUP BY ReceiveOrderPoDetailID";
|
GROUP BY ReceiveOrderPoDetailID";
|
||||||
$que_detail_ro = $this->db->query($sql_detail_ro, [$ROID]);
|
$que_detail_ro = $this->db->query($sql_detail_ro, [$ROID]);
|
||||||
if (!$que_detail_ro) {
|
if (!$que_detail_ro) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
@@ -1572,10 +1572,10 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
|
|
||||||
# UPDATE STATUS RO #
|
# UPDATE STATUS RO #
|
||||||
$sql_update_ro = "UPDATE receive_order_po SET
|
$sql_update_ro = "UPDATE receive_order_po SET
|
||||||
ReceiveOrderPoConfirmed = 'Y',
|
ReceiveOrderPoConfirmed = 'Y',
|
||||||
ReceiveOrderPoConfirmedDate = NOW(),
|
ReceiveOrderPoConfirmedDate = NOW(),
|
||||||
ReceiveOrderPoConfirmedUserID = ?
|
ReceiveOrderPoConfirmedUserID = ?
|
||||||
WHERE ReceiveOrderPoID = ?";
|
WHERE ReceiveOrderPoID = ?";
|
||||||
$que_update_ro = $this->db->query($sql_update_ro, [$user['M_UserID'], $ROID]);
|
$que_update_ro = $this->db->query($sql_update_ro, [$user['M_UserID'], $ROID]);
|
||||||
if (!$que_update_ro) {
|
if (!$que_update_ro) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
@@ -1594,8 +1594,8 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
$jurnal_number = $que_jrnl_num->row_array()['numbering'];
|
$jurnal_number = $que_jrnl_num->row_array()['numbering'];
|
||||||
|
|
||||||
$sql_periode = "SELECT periodeID FROM periode
|
$sql_periode = "SELECT periodeID FROM periode
|
||||||
WHERE DATE(NOW()) BETWEEN periodeStartDate AND periodeEndDate
|
WHERE DATE(NOW()) BETWEEN periodeStartDate AND periodeEndDate
|
||||||
AND periodeIsActive= 'Y' AND periodeIsClosed = 'N'";
|
AND periodeIsActive= 'Y' AND periodeIsClosed = 'N'";
|
||||||
$que_periode = $this->db->query($sql_periode, []);
|
$que_periode = $this->db->query($sql_periode, []);
|
||||||
if (!$que_periode) {
|
if (!$que_periode) {
|
||||||
$this->sys_error_db("[Error] get periode", $this->db);
|
$this->sys_error_db("[Error] get periode", $this->db);
|
||||||
@@ -1631,17 +1631,17 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
|
|
||||||
# INSERT JURNAL HEADER #
|
# INSERT JURNAL HEADER #
|
||||||
$sql_head_jurnal = "INSERT INTO jurnal (
|
$sql_head_jurnal = "INSERT INTO jurnal (
|
||||||
jurnalM_BranchCompanyID,
|
jurnalM_BranchCompanyID,
|
||||||
JurnalS_RegionalID,
|
JurnalS_RegionalID,
|
||||||
jurnalM_BranchCode,
|
jurnalM_BranchCode,
|
||||||
jurnalperiodeID,
|
jurnalperiodeID,
|
||||||
jurnalNo,
|
jurnalNo,
|
||||||
jurnalTitle,
|
jurnalTitle,
|
||||||
jurnalDescription,
|
jurnalDescription,
|
||||||
jurnalDate,
|
jurnalDate,
|
||||||
jurnalJurnalTypeID,
|
jurnalJurnalTypeID,
|
||||||
jurnalM_UserID
|
jurnalM_UserID
|
||||||
) VALUES (?,?,?,?,?,?,?,NOW(),?,?)";
|
) VALUES (?,?,?,?,?,?,?,NOW(),?,?)";
|
||||||
$que_head_jurnal = $this->db->query($sql_head_jurnal, [
|
$que_head_jurnal = $this->db->query($sql_head_jurnal, [
|
||||||
$user['M_BranchCompanyID'],
|
$user['M_BranchCompanyID'],
|
||||||
$user['S_RegionalID'],
|
$user['S_RegionalID'],
|
||||||
@@ -1668,9 +1668,9 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
foreach ($data_detail_ro as $key => $detail) {
|
foreach ($data_detail_ro as $key => $detail) {
|
||||||
# UPDATE PO Summary #
|
# UPDATE PO Summary #
|
||||||
$sql_posummary = "UPDATE purchase_order_summary SET
|
$sql_posummary = "UPDATE purchase_order_summary SET
|
||||||
PurchaseOrderSummaryQtyReceived = PurchaseOrderSummaryQtyReceived + ?
|
PurchaseOrderSummaryQtyReceived = PurchaseOrderSummaryQtyReceived + ?
|
||||||
WHERE PurchaseOrderSummaryIsActive = 'Y'
|
WHERE PurchaseOrderSummaryIsActive = 'Y'
|
||||||
AND PurchaseOrderSummaryID = ?";
|
AND PurchaseOrderSummaryID = ?";
|
||||||
$que_posummary = $this->db->query($sql_posummary, [
|
$que_posummary = $this->db->query($sql_posummary, [
|
||||||
intval($detail['ReceiveOrderPoDetailQty']),
|
intval($detail['ReceiveOrderPoDetailQty']),
|
||||||
$detail['ReceiveOrderPoDetailPurchaseOrderSummaryID']
|
$detail['ReceiveOrderPoDetailPurchaseOrderSummaryID']
|
||||||
@@ -1862,8 +1862,8 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
|
|
||||||
// save diskon prorata
|
// save diskon prorata
|
||||||
$sql_save_diskon = "UPDATE receive_order_po_detail SET
|
$sql_save_diskon = "UPDATE receive_order_po_detail SET
|
||||||
ReceiveOrderPoDetailDiskonPoProrata = ?
|
ReceiveOrderPoDetailDiskonPoProrata = ?
|
||||||
WHERE ReceiveOrderPoDetailID = ?";
|
WHERE ReceiveOrderPoDetailID = ?";
|
||||||
$que_save_diskon = $this->db->query($sql_save_diskon, [
|
$que_save_diskon = $this->db->query($sql_save_diskon, [
|
||||||
$diskon_prorata_item,
|
$diskon_prorata_item,
|
||||||
$detail['ReceiveOrderPoDetailID']
|
$detail['ReceiveOrderPoDetailID']
|
||||||
@@ -1898,9 +1898,9 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
// update stock based on batch
|
// update stock based on batch
|
||||||
foreach ($batch_list as $key => $batch) {
|
foreach ($batch_list as $key => $batch) {
|
||||||
$sql_cek_stock = "SELECT *
|
$sql_cek_stock = "SELECT *
|
||||||
FROM stock s
|
FROM stock s
|
||||||
JOIN m_item i ON s.StockItemID = i.M_ItemID
|
JOIN m_item i ON s.StockItemID = i.M_ItemID
|
||||||
WHERE s.StockItemID = ?
|
WHERE s.StockItemID = ?
|
||||||
AND s.StockItemUnitID = ?
|
AND s.StockItemUnitID = ?
|
||||||
AND s.StockWarehouseID = ?
|
AND s.StockWarehouseID = ?
|
||||||
AND i.M_ItemItem_CategoryID = ?";
|
AND i.M_ItemItem_CategoryID = ?";
|
||||||
@@ -1946,18 +1946,18 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// insert stockid barcode barang
|
// insert stockid barcode barang
|
||||||
$sql_update_barcode = "UPDATE t_barcode_barang SET
|
// $sql_update_barcode = "UPDATE t_barcode_barang SET
|
||||||
T_BarcodeBarangStockID = ?
|
// T_BarcodeBarangStockID = ?
|
||||||
WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
// WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
||||||
$qry_update_barcode = $this->db->query($sql_update_barcode, [
|
// $qry_update_barcode = $this->db->query($sql_update_barcode, [
|
||||||
$stock_ID,
|
// $stock_ID,
|
||||||
$detail['ReceiveOrderPoDetailID']
|
// $detail['ReceiveOrderPoDetailID']
|
||||||
]);
|
// ]);
|
||||||
if (!$qry_update_barcode) {
|
// if (!$qry_update_barcode) {
|
||||||
$this->db->trans_rollback();
|
// $this->db->trans_rollback();
|
||||||
$this->sys_error_db("[Error] update barcode stockID", $this->db);
|
// $this->sys_error_db("[Error] update barcode stockID", $this->db);
|
||||||
exit;
|
// exit;
|
||||||
}
|
// }
|
||||||
} else {
|
} else {
|
||||||
$sql_insert_stock = "INSERT INTO stock (
|
$sql_insert_stock = "INSERT INTO stock (
|
||||||
StockWarehouseAlmariID,
|
StockWarehouseAlmariID,
|
||||||
@@ -1990,18 +1990,18 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
$stock_qty_end = intval($batch['qty']);
|
$stock_qty_end = intval($batch['qty']);
|
||||||
|
|
||||||
// insert stockid barcode barang
|
// insert stockid barcode barang
|
||||||
$sql_update_barcode = "UPDATE t_barcode_barang SET
|
// $sql_update_barcode = "UPDATE t_barcode_barang SET
|
||||||
T_BarcodeBarangStockID = ?
|
// T_BarcodeBarangStockID = ?
|
||||||
WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
// WHERE T_BarcodeBarangReceiveOrderPoDetailID = ?";
|
||||||
$qry_update_barcode = $this->db->query($sql_update_barcode, [
|
// $qry_update_barcode = $this->db->query($sql_update_barcode, [
|
||||||
$stockID,
|
// $stockID,
|
||||||
$detail['ReceiveOrderPoDetailID']
|
// $detail['ReceiveOrderPoDetailID']
|
||||||
]);
|
// ]);
|
||||||
if (!$qry_update_barcode) {
|
// if (!$qry_update_barcode) {
|
||||||
$this->db->trans_rollback();
|
// $this->db->trans_rollback();
|
||||||
$this->sys_error_db("[Error] update barcode stockID", $this->db);
|
// $this->sys_error_db("[Error] update barcode stockID", $this->db);
|
||||||
exit;
|
// exit;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// insert stock card
|
// insert stock card
|
||||||
@@ -2095,14 +2095,14 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
// insert jurnal tx for GRNI
|
// insert jurnal tx for GRNI
|
||||||
$total_grni = round($total_debet - ($total_discount_item + $total_discount_po), 2) + $ship_cost;
|
$total_grni = round($total_debet - ($total_discount_item + $total_discount_po), 2) + $ship_cost;
|
||||||
$sql_grni = "INSERT INTO jurnal_tx (
|
$sql_grni = "INSERT INTO jurnal_tx (
|
||||||
jurnalTxJurnalID,
|
jurnalTxJurnalID,
|
||||||
jurnalTxCoaID,
|
jurnalTxCoaID,
|
||||||
jurnalTxDescription,
|
jurnalTxDescription,
|
||||||
jurnalTxDebit,
|
jurnalTxDebit,
|
||||||
jurnalTxCredit,
|
jurnalTxCredit,
|
||||||
jurnalTxM_UserID
|
jurnalTxM_UserID
|
||||||
) SELECT ?, coaID, coaDescription, 0, ?, ?
|
) SELECT ?, coaID, coaDescription, 0, ?, ?
|
||||||
FROM coa WHERE coaAccountNo = '2110100030' LIMIT 1";
|
FROM coa WHERE coaAccountNo = '2110100030' LIMIT 1";
|
||||||
$que_grni = $this->db->query($sql_grni, [$jurnal_ID, $total_grni, $user['M_UserID']]);
|
$que_grni = $this->db->query($sql_grni, [$jurnal_ID, $total_grni, $user['M_UserID']]);
|
||||||
if (!$que_grni) {
|
if (!$que_grni) {
|
||||||
$this->db->trans_rollback();
|
$this->db->trans_rollback();
|
||||||
@@ -2112,13 +2112,13 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
$grni_jurnal_id = $this->db->insert_id();
|
$grni_jurnal_id = $this->db->insert_id();
|
||||||
|
|
||||||
$sql_addon_grni = "INSERT INTO jurnal_addon (
|
$sql_addon_grni = "INSERT INTO jurnal_addon (
|
||||||
jurnalAddOnJurnalID,
|
jurnalAddOnJurnalID,
|
||||||
jurnalAddOnJurnalTxID,
|
jurnalAddOnJurnalTxID,
|
||||||
jurnalAddOnCode,
|
jurnalAddOnCode,
|
||||||
jurnalAddOnValue,
|
jurnalAddOnValue,
|
||||||
jurnalAddOnCreated,
|
jurnalAddOnCreated,
|
||||||
jurnalAddOnCreatedUserID
|
jurnalAddOnCreatedUserID
|
||||||
) VALUES (?,?,'RONUMB',?,NOW(),?)";
|
) VALUES (?,?,'RONUMB',?,NOW(),?)";
|
||||||
$que_addon_grni = $this->db->query($sql_addon_grni, [
|
$que_addon_grni = $this->db->query($sql_addon_grni, [
|
||||||
$jurnal_ID,
|
$jurnal_ID,
|
||||||
$grni_jurnal_id,
|
$grni_jurnal_id,
|
||||||
@@ -2344,22 +2344,22 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
$this->db->trans_begin();
|
$this->db->trans_begin();
|
||||||
|
|
||||||
$sql_insert = "INSERT INTO receive_order_po_inspeksi (
|
$sql_insert = "INSERT INTO receive_order_po_inspeksi (
|
||||||
ReceiveOrderPoInspeksiReceiveOrderPoDetailID,
|
ReceiveOrderPoInspeksiReceiveOrderPoDetailID,
|
||||||
ReceiveOrderPoInspeksiQtyPesan,
|
ReceiveOrderPoInspeksiQtyPesan,
|
||||||
ReceiveOrderPoInspeksiQtyActual,
|
ReceiveOrderPoInspeksiQtyActual,
|
||||||
ReceiveOrderPoInspeksiPricePesan,
|
ReceiveOrderPoInspeksiPricePesan,
|
||||||
ReceiveOrderPoInspeksiPriceActual,
|
ReceiveOrderPoInspeksiPriceActual,
|
||||||
ReceiveOrderPoInspeksiDatePesan,
|
ReceiveOrderPoInspeksiDatePesan,
|
||||||
ReceiveOrderPoInspeksiDateActual,
|
ReceiveOrderPoInspeksiDateActual,
|
||||||
ReceiveOrderPoInspeksiExpireDate,
|
ReceiveOrderPoInspeksiExpireDate,
|
||||||
ReceiveOrderPoInspeksiKeadaanKemasan,
|
ReceiveOrderPoInspeksiKeadaanKemasan,
|
||||||
ReceiveOrderPoInspeksiKondisiPengiriman,
|
ReceiveOrderPoInspeksiKondisiPengiriman,
|
||||||
ReceiveOrderPoInspeksiSimpulan,
|
ReceiveOrderPoInspeksiSimpulan,
|
||||||
ReceiveOrderPoInspeksiCatatan,
|
ReceiveOrderPoInspeksiCatatan,
|
||||||
ReceiveOrderPoInspeksiStaffPenerima,
|
ReceiveOrderPoInspeksiStaffPenerima,
|
||||||
ReceiveOrderPoInspeksiStaffPengirim,
|
ReceiveOrderPoInspeksiStaffPengirim,
|
||||||
ReceiveOrderPoInspeksiUserID
|
ReceiveOrderPoInspeksiUserID
|
||||||
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||||||
$que_insert = $this->db->query($sql_insert, [
|
$que_insert = $this->db->query($sql_insert, [
|
||||||
$ROdetailID,
|
$ROdetailID,
|
||||||
$inspeksi['qty_po'],
|
$inspeksi['qty_po'],
|
||||||
@@ -2736,6 +2736,47 @@ class ReceiveItemPoInventaris extends MY_Controller
|
|||||||
|
|
||||||
$barcodeID = $this->db->insert_id();
|
$barcodeID = $this->db->insert_id();
|
||||||
|
|
||||||
|
# check if item already in stock #
|
||||||
|
$sql_cekstock = "SELECT StockID
|
||||||
|
FROM stock
|
||||||
|
JOIN warehouse ON WarehouseID = StockWarehouseID
|
||||||
|
AND WarehouseIsActive = 'Y'
|
||||||
|
WHERE WarehouseM_BranchID = ?
|
||||||
|
AND StockItemID = ?
|
||||||
|
AND StockItemUnitID = ?";
|
||||||
|
$que_cekstock = $this->db->query($sql_cekstock, [
|
||||||
|
$user['M_BranchID'],
|
||||||
|
$item['ReceiveOrderPoItemID'],
|
||||||
|
$item['ReceiveOrderPoItemUnitID'],
|
||||||
|
]);
|
||||||
|
if (!$que_cekstock) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] query cek stock");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
$stockID = $que_cekstock->row_array()['StockID'];
|
||||||
|
|
||||||
|
# insert stock inventaris #
|
||||||
|
$sql_stockinventaris = "INSERT INTO stock_inventory (
|
||||||
|
StockInventoryStockID,
|
||||||
|
StockInventoryRuanganID,
|
||||||
|
StockInventoryBarcode,
|
||||||
|
StockInventoryBranchID,
|
||||||
|
StockInventoryCreatedUserID
|
||||||
|
) VALUES (?,?,?,?,?)";
|
||||||
|
$que_stockinventaris = $this->db->query($sql_stockinventaris, [
|
||||||
|
$stockID,
|
||||||
|
$param['ruanganID'],
|
||||||
|
$noBarcode,
|
||||||
|
$user['M_BranchID'],
|
||||||
|
$user['M_UserID']
|
||||||
|
]);
|
||||||
|
if (!$que_stockinventaris) {
|
||||||
|
$this->db->trans_rollback();
|
||||||
|
$this->sys_error_db("[Error] insert into table stock inventaris");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
# insert each inventory handover detail #
|
# insert each inventory handover detail #
|
||||||
$sql_insert_handover_detail = "INSERT INTO asset_handover_detail(
|
$sql_insert_handover_detail = "INSERT INTO asset_handover_detail(
|
||||||
AssetHandoverDetailAssetHandoverID,
|
AssetHandoverDetailAssetHandoverID,
|
||||||
|
|||||||
54
scripts/deploy-controllers.sh
Executable file
54
scripts/deploy-controllers.sh
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
REMOTE_HOST="accone.aplikasi.web.id"
|
||||||
|
LOCAL_PATH="application/controllers/"
|
||||||
|
REMOTE_PATH="/home/one/project/accone/one-api/application/controllers/"
|
||||||
|
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
if ! command -v rsync >/dev/null 2>&1; then
|
||||||
|
echo "rsync is required but was not found in PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v ssh >/dev/null 2>&1; then
|
||||||
|
echo "ssh is required but was not found in PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v awk >/dev/null 2>&1; then
|
||||||
|
echo "awk is required but was not found in PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $0 <test|sync> [remote_user]" >&2
|
||||||
|
echo "Examples:" >&2
|
||||||
|
echo " $0 test" >&2
|
||||||
|
echo " $0 sync" >&2
|
||||||
|
echo " $0 test one" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
COMMAND="${1:-}"
|
||||||
|
REMOTE_USER="${2:-one}"
|
||||||
|
REMOTE="${REMOTE_USER}@${REMOTE_HOST}"
|
||||||
|
|
||||||
|
case "$COMMAND" in
|
||||||
|
test)
|
||||||
|
echo "Checking SSH connection to ${REMOTE}..."
|
||||||
|
ssh -o ConnectTimeout=10 "$REMOTE" "test -d '$REMOTE_PATH'"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Files/folders that would be uploaded:"
|
||||||
|
rsync -rzcin --out-format="%i %n%L" "$LOCAL_PATH" "${REMOTE}:${REMOTE_PATH}" \
|
||||||
|
| awk '$1 ~ /^</ || $1 ~ /^cd/ { print }'
|
||||||
|
;;
|
||||||
|
sync)
|
||||||
|
rsync -rzcv "$LOCAL_PATH" "${REMOTE}:${REMOTE_PATH}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Reference in New Issue
Block a user