task-p.4.4
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
import type { Template } from '@pdfme/common';
|
||||
import type {
|
||||
DocumentTemplateMappingWithColumns,
|
||||
ResolvedDocumentTemplate,
|
||||
} from '@/features/foundation/document-template/types';
|
||||
import type { DocumentTemplateMappingWithColumns, ResolvedDocumentTemplate } from '@/features/foundation/document-template/types';
|
||||
import type { QuotationDocumentData } from '../types';
|
||||
import { buildPdfTopicPages } from './pdf-topic-engine';
|
||||
import { resolveTemplatePages } from './page-resolver';
|
||||
import { buildProductItemSectionModel } from './product-item-engine';
|
||||
import { createRenderContext, resolveRenderPolicies } from './render-context';
|
||||
import { resolveQuotationStaticTemplateInputs } from './static-input-resolver';
|
||||
import type {
|
||||
BuiltSection,
|
||||
ProductItemSection,
|
||||
QuotationPdfRuntimeResult,
|
||||
RenderContext,
|
||||
ResolvedTemplate,
|
||||
@@ -23,7 +21,7 @@ function cloneTemplate<T>(value: T): T {
|
||||
return JSON.parse(JSON.stringify(value)) as T;
|
||||
}
|
||||
|
||||
function createCustomerSectionBuilder(): SectionBuilder {
|
||||
export function createCustomerSectionBuilder(): SectionBuilder {
|
||||
return {
|
||||
role: 'customer',
|
||||
build(context: RenderContext): BuiltSection<'customer'> {
|
||||
@@ -61,7 +59,32 @@ function createCustomerSectionBuilder(): SectionBuilder {
|
||||
};
|
||||
}
|
||||
|
||||
function createTopicSectionBuilder(): SectionBuilder {
|
||||
export function createProductItemSectionBuilder(): SectionBuilder {
|
||||
return {
|
||||
role: 'product_items',
|
||||
build(context: RenderContext): ProductItemSection {
|
||||
const built = buildProductItemSectionModel({
|
||||
items: context.documentData.items,
|
||||
currencyCode: context.documentData.quotation.currencyCode,
|
||||
});
|
||||
|
||||
return {
|
||||
role: 'product_items',
|
||||
enabled: true,
|
||||
rendered: false,
|
||||
anchorPageIndex: null,
|
||||
pages: [],
|
||||
templateInputPatch: {},
|
||||
issues: built.issues,
|
||||
rows: built.rows,
|
||||
tableModel: built.tableModel,
|
||||
pagination: built.pagination,
|
||||
};
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function createTopicSectionBuilder(): SectionBuilder {
|
||||
return {
|
||||
role: 'topics',
|
||||
build(context: RenderContext): BuiltSection<'topics'> {
|
||||
@@ -103,21 +126,23 @@ function createTopicSectionBuilder(): SectionBuilder {
|
||||
};
|
||||
}
|
||||
|
||||
function getQuotationSectionBuilders(): SectionBuilder[] {
|
||||
return [createCustomerSectionBuilder(), createTopicSectionBuilder()];
|
||||
export function getQuotationSectionBuilders(): SectionBuilder[] {
|
||||
return [
|
||||
createCustomerSectionBuilder(),
|
||||
createProductItemSectionBuilder(),
|
||||
createTopicSectionBuilder(),
|
||||
];
|
||||
}
|
||||
|
||||
function createResolvedTemplate(
|
||||
template: ResolvedDocumentTemplate,
|
||||
): ResolvedTemplate {
|
||||
function createResolvedTemplate(template: ResolvedDocumentTemplate): ResolvedTemplate {
|
||||
return {
|
||||
documentTemplate: template,
|
||||
schema: cloneTemplate(template.version.schemaJson as Template),
|
||||
schema: cloneTemplate(template.version.schemaJson as import('@pdfme/common').Template),
|
||||
};
|
||||
}
|
||||
|
||||
function createRuntimeErrorMessage(): string {
|
||||
return 'Quotation PDF runtime is invalid for the active document template.';
|
||||
return 'Quotation PDF runtime invalid active document template.';
|
||||
}
|
||||
|
||||
export async function buildQuotationPdfRuntime(args: {
|
||||
|
||||
Reference in New Issue
Block a user