JEISA-WEBAPP/pocketbase/pb_hooks/main.pb.js
2025-09-12 10:55:57 +02:00

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.");
});