update penomoran dari fn fungsi
This commit is contained in:
@@ -86,6 +86,7 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
|||||||
c.PurchaseOrderAssetContractInstallmentPaid,
|
c.PurchaseOrderAssetContractInstallmentPaid,
|
||||||
c.PurchaseOrderAssetContractInstallmentDate,
|
c.PurchaseOrderAssetContractInstallmentDate,
|
||||||
c.PurchaseOrderAssetContractInstallmentPayAmount,
|
c.PurchaseOrderAssetContractInstallmentPayAmount,
|
||||||
|
c.PurchaseOrderAssetContractCreatedUserID,
|
||||||
po.PurchaseOrderID,
|
po.PurchaseOrderID,
|
||||||
po.PurchaseOrderNumber,
|
po.PurchaseOrderNumber,
|
||||||
po.PurchaseOrderSupplierID,
|
po.PurchaseOrderSupplierID,
|
||||||
@@ -224,8 +225,11 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$contractUserID = (int) ($kontrak["PurchaseOrderAssetContractCreatedUserID"] ?? 0);
|
||||||
|
$contractUser = $this->getCronUser($contractUserID);
|
||||||
|
|
||||||
// Generate nomor PI otomatis via stored function fn_penomoran
|
// Generate nomor PI otomatis via stored function fn_penomoran
|
||||||
$nomorPI = $this->generateNomorPI($kontrak, $user);
|
$nomorPI = $this->generateNomorPI($kontrak, $contractUser);
|
||||||
|
|
||||||
$jumlahCicilan = (float) $kontrak["PurchaseOrderAssetContractInstallmentPayAmount"];
|
$jumlahCicilan = (float) $kontrak["PurchaseOrderAssetContractInstallmentPayAmount"];
|
||||||
$paymentTerm = isset($kontrak["PurchaseOrderPaymentTerm"]) && $kontrak["PurchaseOrderPaymentTerm"] !== null
|
$paymentTerm = isset($kontrak["PurchaseOrderPaymentTerm"]) && $kontrak["PurchaseOrderPaymentTerm"] !== null
|
||||||
@@ -249,7 +253,7 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
|||||||
"jumlahCicilan" => $jumlahCicilan,
|
"jumlahCicilan" => $jumlahCicilan,
|
||||||
"catatan" => $catatan,
|
"catatan" => $catatan,
|
||||||
"deskripsi" => $deskripsi,
|
"deskripsi" => $deskripsi,
|
||||||
"userID" => $userID,
|
"userID" => $contractUserID,
|
||||||
"purchaseOrderAssetContractID" => $kontrak["PurchaseOrderAssetContractID"],
|
"purchaseOrderAssetContractID" => $kontrak["PurchaseOrderAssetContractID"],
|
||||||
"purchaseOrderID" => $kontrak["PurchaseOrderID"],
|
"purchaseOrderID" => $kontrak["PurchaseOrderID"],
|
||||||
"receiveOrderPoID" => $kontrak["PurchaseOrderAssetContractReceiveOrderPoID"],
|
"receiveOrderPoID" => $kontrak["PurchaseOrderAssetContractReceiveOrderPoID"],
|
||||||
@@ -532,7 +536,7 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
|||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate nomor Purchase Invoice default untuk proses sementara.
|
* Generate nomor Purchase Invoice.
|
||||||
*
|
*
|
||||||
* @param array $kontrak Data baris kontrak dari query
|
* @param array $kontrak Data baris kontrak dari query
|
||||||
* @param array $user Data user CRON
|
* @param array $user Data user CRON
|
||||||
@@ -540,17 +544,37 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
|||||||
*/
|
*/
|
||||||
private function generateNomorPI($kontrak, $user)
|
private function generateNomorPI($kontrak, $user)
|
||||||
{
|
{
|
||||||
$contractID = isset($kontrak["PurchaseOrderAssetContractID"]) ? (int) $kontrak["PurchaseOrderAssetContractID"] : 0;
|
$userID = isset($user["M_UserID"]) ? (int) $user["M_UserID"] : 0;
|
||||||
$poID = isset($kontrak["PurchaseOrderID"]) ? (int) $kontrak["PurchaseOrderID"] : 0;
|
|
||||||
$userID = isset($user["M_UserID"]) ? (int) $user["M_UserID"] : 0;
|
|
||||||
|
|
||||||
return sprintf(
|
// Tentukan area ID dan type
|
||||||
"PI-INS-%s-%06d-%05d-%05d",
|
$areaid = isset($user["M_BranchID"]) && (int) $user["M_BranchID"] > 0 ? (int) $user["M_BranchID"] : 0;
|
||||||
date("YmdHis"),
|
$areatype = 'B';
|
||||||
$contractID,
|
if (isset($user["loginLevel"]) && $user["loginLevel"] == 'regional') {
|
||||||
$poID,
|
$areaid = isset($user["S_RegionalID"]) && (int) $user["S_RegionalID"] > 0 ? (int) $user["S_RegionalID"] : 0;
|
||||||
$userID
|
$areatype = 'R';
|
||||||
);
|
}
|
||||||
|
|
||||||
|
// Ambil divisi user
|
||||||
|
$userDivID = 0;
|
||||||
|
if ($userID > 0) {
|
||||||
|
$sqlusrdivisi = "SELECT M_UserDivisionDivisionID FROM m_userdivision
|
||||||
|
WHERE M_UserDivisionM_UserID = ? AND M_UserDivisionIsActive = 'Y' LIMIT 1";
|
||||||
|
$queusrdivisi = $this->db->query($sqlusrdivisi, [$userID]);
|
||||||
|
if ($queusrdivisi && $queusrdivisi->num_rows() > 0) {
|
||||||
|
$userDivID = (int) $queusrdivisi->row_array()['M_UserDivisionDivisionID'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jalankan stored function fn_penomoran
|
||||||
|
$sqlnum = "SELECT `fn_penomoran`(?, ?, ?, ?, ?, ?) AS numpd;";
|
||||||
|
$quenum = $this->db->query($sqlnum, ['PI', $userDivID, $areatype, $areaid, 'SM', 'N']);
|
||||||
|
if ($quenum && $quenum->num_rows() > 0) {
|
||||||
|
return $quenum->row_array()['numpd'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback jika stored function gagal
|
||||||
|
$contractID = isset($kontrak["PurchaseOrderAssetContractID"]) ? (int) $kontrak["PurchaseOrderAssetContractID"] : 0;
|
||||||
|
return "PI-INS-FALLBACK-" . $contractID . "-" . date("Ymd");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user