feat(documents): PDF prints only the document's selected company custom fields

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-06-16 20:15:26 +02:00
parent 0d9b5e9570
commit bce0280846
4 changed files with 89 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import { requirePermission } from "../../middleware/auth";
import { parseId, success } from "../../utils/response";
import { htmlToPdf } from "../../utils/html-to-pdf";
import { nasOrdersManager } from "../../services/nas-financials-manager";
import { parseSelectedCustomFields } from "../../utils/custom-fields";
import {
formatDate,
formatNum,
@@ -31,6 +32,7 @@ function buildAddressLines(
entity: Record<string, unknown> | null,
isCompany: boolean,
tObj: Record<string, string>,
selectedCustomFields?: number[],
): AddressResult {
if (!entity) return { name: "", lines: [] };
@@ -86,7 +88,9 @@ function buildAddressLines(
fieldMap.company_id = `${tObj.ico}${entity.company_id}`;
if (entity.vat_id) fieldMap.vat_id = `${tObj.dic}${entity.vat_id}`;
const filterCustom = Array.isArray(selectedCustomFields);
cfData.forEach((cf, i) => {
if (filterCustom && !selectedCustomFields!.includes(i)) return;
const cfName = (cf.name || "").trim();
const cfValue = (cf.value || "").trim();
const showLabel = cf.showLabel !== false;
@@ -313,7 +317,14 @@ export function renderIssuedOrderHtml(
// PO direction: our company (settings) = Odběratel (buyer);
// the sklad_suppliers record = Dodavatel (supplier).
const buyer = buildAddressLines(settings, true, t); // company → Odběratel
const buyer = buildAddressLines(
settings,
true,
t,
parseSelectedCustomFields(
(order as { selected_custom_fields?: unknown }).selected_custom_fields,
),
); // company → Odběratel
const supplierAddr = buildSupplierLines(supplier, t); // supplier → Dodavatel
const buyerLinesHtml = buyer.lines