63 lines
No EOL
2.1 KiB
JavaScript
63 lines
No EOL
2.1 KiB
JavaScript
/// <reference path="../pb_data/types.d.ts" />
|
|
|
|
// Existing hooks...
|
|
|
|
onRecordAfterCreateSuccess((e) => {
|
|
if (e.collection.name !== "purchase_orders") {
|
|
return;
|
|
}
|
|
|
|
const record = e.record;
|
|
|
|
// Read approver email from settings, fallback to environment variable or default
|
|
const settings = $app.settings();
|
|
const approverEmail = settings.approverEmail || $os.getenv("APPROVER_EMAIL") || "approver@example.com";
|
|
|
|
// Prepare order details for email
|
|
const supplierName = record.get("supplierName");
|
|
const orderDate = new Date(record.get("orderDate")).toLocaleString();
|
|
const status = record.get("status");
|
|
const items = record.get("items") || [];
|
|
const quantities = record.get("quantities") || [];
|
|
|
|
// Build HTML list of items and quantities
|
|
let itemsListHtml = "<ul>";
|
|
for (let i = 0; i < items.length; i++) {
|
|
itemsListHtml += `<li>Item ID: ${items[i]}, Quantity: ${quantities[i]}</li>`;
|
|
}
|
|
itemsListHtml += "</ul>";
|
|
|
|
const message = new MailerMessage({
|
|
from: {
|
|
address: $app.settings().meta.senderAddress,
|
|
name: $app.settings().meta.senderName,
|
|
},
|
|
to: [{ address: approverEmail }],
|
|
subject: `Purchase Order Approval Request from ${supplierName}`,
|
|
html: `
|
|
<p>Dear Approver,</p>
|
|
<p>A new purchase order has been created and requires your approval:</p>
|
|
<p><strong>Supplier:</strong> ${supplierName}</p>
|
|
<p><strong>Order Date:</strong> ${orderDate}</p>
|
|
<p><strong>Status:</strong> ${status}</p>
|
|
<p><strong>Items:</strong></p>
|
|
${itemsListHtml}
|
|
<p>Please review and approve or reject the order in the system.</p>
|
|
<p>Thank you.</p>
|
|
`,
|
|
text: `
|
|
Dear Approver,
|
|
A new purchase order has been created and requires your approval:
|
|
Supplier: ${supplierName}
|
|
Order Date: ${orderDate}
|
|
Status: ${status}
|
|
Items:
|
|
${itemsListHtml.replace(/<[^>]+>/g, '')}
|
|
Please review and approve or reject the order in the system.
|
|
Thank you.
|
|
`,
|
|
});
|
|
|
|
$app.newMailClient().send(message);
|
|
console.log("Purchase order approval email sent.");
|
|
}); |