forked from mahdahar/crm-summit
Update Generate QR Code untuk Sertifikat Maintenance
This commit is contained in:
parent
5cab7576c0
commit
a1cc45141e
@ -1690,6 +1690,11 @@ class Activities extends Controller {
|
|||||||
];
|
];
|
||||||
$certificateModel = new CertificateModel();
|
$certificateModel = new CertificateModel();
|
||||||
$certificateModel->insert($insertCert);
|
$certificateModel->insert($insertCert);
|
||||||
|
|
||||||
|
$certid = $certificateModel->getInsertID();
|
||||||
|
|
||||||
|
$newCertificate = $certificateModel->find($certid);
|
||||||
|
$certificateModel->update($certid, ['file_url' => base_url('certificates/number/'.$newCertificate['cert_number'])]);
|
||||||
}
|
}
|
||||||
public function updateCertificateMaintenance($actid, $issuedDate, $userid_owner) {
|
public function updateCertificateMaintenance($actid, $issuedDate, $userid_owner) {
|
||||||
$certificateModel = new CertificateModel();
|
$certificateModel = new CertificateModel();
|
||||||
@ -1746,6 +1751,10 @@ class Activities extends Controller {
|
|||||||
if (!$isDataExist) {
|
if (!$isDataExist) {
|
||||||
// Jika data belum ada sama sekali (array kosong), eksekusi INSERT
|
// Jika data belum ada sama sekali (array kosong), eksekusi INSERT
|
||||||
$certificateModel->insert($certPayload);
|
$certificateModel->insert($certPayload);
|
||||||
|
|
||||||
|
$certid = $certificateModel->getInsertID();
|
||||||
|
$newCertificate = $certificateModel->find($certid);
|
||||||
|
$certificateModel->update($certid, ['file_url' => base_url('certificates/number/'.$newCertificate['cert_number'])]);
|
||||||
} else {
|
} else {
|
||||||
// Jika data sudah ada, eksekusi UPDATE
|
// Jika data sudah ada, eksekusi UPDATE
|
||||||
// Catatan: Karena bisa ada lebih dari 1 data dengan actid yang sama (karena findAll),
|
// Catatan: Karena bisa ada lebih dari 1 data dengan actid yang sama (karena findAll),
|
||||||
|
|||||||
@ -6,6 +6,9 @@ use App\Controllers\BaseController;
|
|||||||
use Dompdf\Dompdf;
|
use Dompdf\Dompdf;
|
||||||
use Dompdf\Options;
|
use Dompdf\Options;
|
||||||
|
|
||||||
|
use Endroid\QrCode\Builder\Builder;
|
||||||
|
use Endroid\QrCode\Writer\PngWriter;
|
||||||
|
|
||||||
use App\Models\CertificateModel;
|
use App\Models\CertificateModel;
|
||||||
|
|
||||||
class Certificates extends BaseController {
|
class Certificates extends BaseController {
|
||||||
@ -208,6 +211,7 @@ class Certificates extends BaseController {
|
|||||||
certificates.cert_name,
|
certificates.cert_name,
|
||||||
certificates.issued_date,
|
certificates.issued_date,
|
||||||
certificates.expired_date,
|
certificates.expired_date,
|
||||||
|
certificates.file_url,
|
||||||
productcatalog.productname as productname,
|
productcatalog.productname as productname,
|
||||||
sites.sitename as sitename,
|
sites.sitename as sitename,
|
||||||
products.productnumber,
|
products.productnumber,
|
||||||
@ -245,6 +249,15 @@ class Certificates extends BaseController {
|
|||||||
'expireddate' => $data['expired_date']
|
'expireddate' => $data['expired_date']
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$builder = new Builder(
|
||||||
|
writer: new PngWriter(),
|
||||||
|
data: $data['file_url'],
|
||||||
|
size: 120,
|
||||||
|
margin: 0
|
||||||
|
);
|
||||||
|
$result = $builder->build();
|
||||||
|
$certificate['qrcode'] = $result->getDataUri();
|
||||||
|
|
||||||
if (empty($certificate)) { // Jika Tidak Ada
|
if (empty($certificate)) { // Jika Tidak Ada
|
||||||
return $this->response->setStatusCode(404)->setJSON(['error' => 'Maintenance certificate not found']);
|
return $this->response->setStatusCode(404)->setJSON(['error' => 'Maintenance certificate not found']);
|
||||||
}
|
}
|
||||||
@ -572,7 +585,7 @@ class Certificates extends BaseController {
|
|||||||
'file_location' => $pdfAfterValidation['file_relative'],
|
'file_location' => $pdfAfterValidation['file_relative'],
|
||||||
'metadata_title' => $pdfAfterValidation['metadata_title'],
|
'metadata_title' => $pdfAfterValidation['metadata_title'],
|
||||||
'metadata_keywords' => $pdfAfterValidation['metadata_keywords'].";".base_url('certificates/number/'.$latestData['cert_number']),
|
'metadata_keywords' => $pdfAfterValidation['metadata_keywords'].";".base_url('certificates/number/'.$latestData['cert_number']),
|
||||||
'file_url' => base_url('certificates/number/'.$latestData['cert_number'])
|
// 'file_url' => base_url('certificates/number/'.$latestData['cert_number'])
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $this->response->setJSON([
|
return $this->response->setJSON([
|
||||||
|
|||||||
@ -265,7 +265,7 @@ $(function () {
|
|||||||
statusBadge,
|
statusBadge,
|
||||||
validationBadge,
|
validationBadge,
|
||||||
status == 'unvalidated'
|
status == 'unvalidated'
|
||||||
? `<div class="text-center"><button type="button" class="btn btn-sm btn-warning text-dark btn-validate-modal" data-certid="${certid}"><i class="fa-solid fa-exclamation me-2"></i>Need Validation</button></div>`
|
? `<div class="text-center"><button type="button" class="btn btn-sm btn-warning text-dark btn-validate-modal" data-certid="${certid}"><i class="fa-solid fa-triangle-exclamation me-2"></i>Need Validation</button></div>`
|
||||||
: `<div class="text-center mb-1"><button type="button" class="btn btn-sm btn-info btn-validate-modal" data-certid="${certid}"><i class="fa-regular fa-eye me-2"></i>Detail</button></div>
|
: `<div class="text-center mb-1"><button type="button" class="btn btn-sm btn-info btn-validate-modal" data-certid="${certid}"><i class="fa-regular fa-eye me-2"></i>Detail</button></div>
|
||||||
<div class="text-center"><button type="button" class="btn btn-sm btn-success btn-view" data-certnumber="${certnumber}"><i class="fa-regular fa-file-pdf me-2"></i>Generated PDF</button></div>`
|
<div class="text-center"><button type="button" class="btn btn-sm btn-success btn-view" data-certnumber="${certnumber}"><i class="fa-regular fa-file-pdf me-2"></i>Generated PDF</button></div>`
|
||||||
];
|
];
|
||||||
|
|||||||
@ -60,7 +60,8 @@
|
|||||||
}
|
}
|
||||||
.detail-information {
|
.detail-information {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-bottom: 137px;
|
/* margin-bottom: 137px; */
|
||||||
|
margin-bottom: 29px;
|
||||||
}
|
}
|
||||||
h4 {
|
h4 {
|
||||||
margin :0;
|
margin :0;
|
||||||
@ -73,7 +74,7 @@
|
|||||||
.signature-table {
|
.signature-table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
margin-bottom: 41px;
|
margin-bottom: 26px;
|
||||||
}
|
}
|
||||||
.signature-table td {
|
.signature-table td {
|
||||||
width: 50%; /* Membagi dua sisi sama rata */
|
width: 50%; /* Membagi dua sisi sama rata */
|
||||||
@ -122,6 +123,9 @@
|
|||||||
|
|
||||||
<table class="signature-table">
|
<table class="signature-table">
|
||||||
<tr>
|
<tr>
|
||||||
|
<td>
|
||||||
|
<img src="<?= $certificate['qrcode'] ?>">
|
||||||
|
</td>
|
||||||
<!-- <td>
|
<!-- <td>
|
||||||
<span class="name">Adhitya Pranata Putra</span>
|
<span class="name">Adhitya Pranata Putra</span>
|
||||||
<span class="position">Technical Support Manager</span>
|
<span class="position">Technical Support Manager</span>
|
||||||
@ -163,6 +167,9 @@
|
|||||||
|
|
||||||
<table class="signature-table">
|
<table class="signature-table">
|
||||||
<tr>
|
<tr>
|
||||||
|
<td>
|
||||||
|
<img src="<?= $certificate['qrcode'] ?>">
|
||||||
|
</td>
|
||||||
<!-- <td>
|
<!-- <td>
|
||||||
<span class="name">Adhitya Pranata Putra</span>
|
<span class="name">Adhitya Pranata Putra</span>
|
||||||
<span class="position">Technical Support Manager</span>
|
<span class="position">Technical Support Manager</span>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user