Files
Zumri-Backend/app/templates/documents/dispatchNote/dispatchNote.template.js
T
Isuru Bimsara 81d0e65686 first commit
2026-08-14 22:46:02 +05:30

75 lines
2.3 KiB
JavaScript

/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app/templates/documents/dispatchNote/dispatchNote.template.js
const { log } = require("../../../utils/consoleLog.utill");
module.exports = async (data) => {
log("📋 Preparing Dispatch Note data for PDF...");
let payload = data;
if (typeof payload === "string") {
try {
payload = JSON.parse(payload);
} catch (error) {
payload = {};
}
}
const source = payload.documentData || payload.document_data || payload.data || payload;
const pick = (...keys) => {
for (const key of keys) {
const value = source?.[key];
if (value !== undefined && value !== null && value !== "") {
return value;
}
}
return "";
};
const templateData = {
logoUrl:
pick("logoUrl", "logo_url") ||
"https://res.cloudinary.com/dtthuvvir/image/upload/v1780748661/company_logo_transperent_bg_uullzw.png",
title: pick("title") || "DISPATCH NOTE",
referenceNumber: pick("referenceNumber", "reference_number", "dnNo", "dn_no") || "N/A",
date: pick("date") || new Date().toLocaleDateString(),
vessel: pick("vessel", "vesselName", "vessel_name") || "",
captain: pick("captain", "captainName", "captain_name") || "",
cook: pick("cook", "cookName", "cook_name") || "",
agent: pick("agent", "agentName", "agent_name") || "",
details: pick("details", "remarks", "note") || "",
placeOfDelivery: pick("placeOfDelivery", "place_of_delivery") || "",
eta: pick("eta") || "",
etd: pick("etd") || "",
numberOfCrew: pick("numberOfCrew", "number_of_crew", "crewCount", "crew_count") || "",
nextMainOrderIn: pick("nextMainOrderIn", "next_main_order_in") || "",
port: pick("port", "portName", "port_name") || "",
company: pick("company", "companyName", "company_name") || "",
fileNo: pick("fileNo", "file_no") || "",
items: Array.isArray(source.items) ? source.items : [],
showSignatures: pick("showSignatures") !== false,
preparedBy: pick("preparedBy", "prepared_by") || "",
approvedBy: pick("approvedBy", "approved_by") || "",
};
log("✅ Dispatch Note data prepared");
return templateData;
};