cmc-sales/php/app/views/documents/pdf_po.ctp

61 lines
2.1 KiB
Plaintext
Raw Normal View History

<?php
2026-01-12 03:00:48 -08:00
// Generate the Purchase Order PDF by calling the Go service instead of TCPDF/FPDI.
$goBaseUrl = AppController::getGoBaseUrlOrFail();
$goEndpoint = $goBaseUrl . '/go/pdf/generate-po';
$outputDir = Configure::read('pdf_directory');
$lineItems = array();
foreach ($document['LineItem'] as $li) {
$lineItems[] = array(
'item_number' => $li['item_number'],
'quantity' => $li['quantity'],
'title' => $li['title'],
'unit_price' => floatval($li['gross_unit_price']),
'total_price' => floatval($li['gross_price'])
);
}
$payload = array(
'document_id' => intval($document['Document']['id']),
'title' => $document['PurchaseOrder']['title'],
'principle_name' => isset($principle['Principle']['name']) ? $principle['Principle']['name'] : $document['PurchaseOrder']['ordered_from'],
'principle_reference' => $document['PurchaseOrder']['principle_reference'],
'issue_date' => $document['PurchaseOrder']['issue_date'],
'ordered_from' => $document['PurchaseOrder']['ordered_from'],
'dispatch_by' => $document['PurchaseOrder']['dispatch_by'],
'deliver_to' => $document['PurchaseOrder']['deliver_to'],
'shipping_instructions' => $document['PurchaseOrder']['shipping_instructions'],
'currency_symbol' => $currencySymbol,
'show_gst' => (bool)$gst,
'line_items' => $lineItems,
'output_dir' => $outputDir
);
$ch = curl_init($goEndpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlErr = curl_error($ch);
curl_close($ch);
if ($httpCode < 200 || $httpCode >= 300) {
echo "<p>Failed to generate PO PDF via Go service (HTTP $httpCode).";
if ($curlErr) {
echo " Error: $curlErr";
}
echo "</p>";
exit;
}
?>
<script type="text/javascript">
window.location.replace("/documents/view/<?=$document['Document']['id']?>");
</script>