update penomoran dari fn fungsi
This commit is contained in:
@@ -86,6 +86,7 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
||||
c.PurchaseOrderAssetContractInstallmentPaid,
|
||||
c.PurchaseOrderAssetContractInstallmentDate,
|
||||
c.PurchaseOrderAssetContractInstallmentPayAmount,
|
||||
c.PurchaseOrderAssetContractCreatedUserID,
|
||||
po.PurchaseOrderID,
|
||||
po.PurchaseOrderNumber,
|
||||
po.PurchaseOrderSupplierID,
|
||||
@@ -224,8 +225,11 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
||||
continue;
|
||||
}
|
||||
|
||||
$contractUserID = (int) ($kontrak["PurchaseOrderAssetContractCreatedUserID"] ?? 0);
|
||||
$contractUser = $this->getCronUser($contractUserID);
|
||||
|
||||
// Generate nomor PI otomatis via stored function fn_penomoran
|
||||
$nomorPI = $this->generateNomorPI($kontrak, $user);
|
||||
$nomorPI = $this->generateNomorPI($kontrak, $contractUser);
|
||||
|
||||
$jumlahCicilan = (float) $kontrak["PurchaseOrderAssetContractInstallmentPayAmount"];
|
||||
$paymentTerm = isset($kontrak["PurchaseOrderPaymentTerm"]) && $kontrak["PurchaseOrderPaymentTerm"] !== null
|
||||
@@ -249,7 +253,7 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
||||
"jumlahCicilan" => $jumlahCicilan,
|
||||
"catatan" => $catatan,
|
||||
"deskripsi" => $deskripsi,
|
||||
"userID" => $userID,
|
||||
"userID" => $contractUserID,
|
||||
"purchaseOrderAssetContractID" => $kontrak["PurchaseOrderAssetContractID"],
|
||||
"purchaseOrderID" => $kontrak["PurchaseOrderID"],
|
||||
"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 $user Data user CRON
|
||||
@@ -540,17 +544,37 @@ class PurchaseInvoiceInstallment extends MY_Controller
|
||||
*/
|
||||
private function generateNomorPI($kontrak, $user)
|
||||
{
|
||||
$contractID = isset($kontrak["PurchaseOrderAssetContractID"]) ? (int) $kontrak["PurchaseOrderAssetContractID"] : 0;
|
||||
$poID = isset($kontrak["PurchaseOrderID"]) ? (int) $kontrak["PurchaseOrderID"] : 0;
|
||||
$userID = isset($user["M_UserID"]) ? (int) $user["M_UserID"] : 0;
|
||||
$userID = isset($user["M_UserID"]) ? (int) $user["M_UserID"] : 0;
|
||||
|
||||
return sprintf(
|
||||
"PI-INS-%s-%06d-%05d-%05d",
|
||||
date("YmdHis"),
|
||||
$contractID,
|
||||
$poID,
|
||||
$userID
|
||||
);
|
||||
// Tentukan area ID dan type
|
||||
$areaid = isset($user["M_BranchID"]) && (int) $user["M_BranchID"] > 0 ? (int) $user["M_BranchID"] : 0;
|
||||
$areatype = 'B';
|
||||
if (isset($user["loginLevel"]) && $user["loginLevel"] == 'regional') {
|
||||
$areaid = isset($user["S_RegionalID"]) && (int) $user["S_RegionalID"] > 0 ? (int) $user["S_RegionalID"] : 0;
|
||||
$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