import { CLOSE_PRINT_AFTER_PRINT } from '../../constants'; import { formatDisplayDate } from '../../core/utils/datetimeUtils'; import { GetHeaderSection, GetPrintTemplate } from '../../core/print/PrintTemplate'; import { printDocument } from '../../core/print/printUtils'; import { type StockOperationPrintData } from './StockOperationReport'; export const FormatGoodsReceivedDocument = async (data: StockOperationPrintData): Promise => { const emptyRowCount: number = Math.max(0, 25 - (data?.items?.length ?? 0)); const headerSection = await GetHeaderSection(); return `
${headerSection}
Goods Received Note
Name of Health Unit: ${data?.organizationName ?? ''}
Delivered To: ${data?.location ?? ''} GRN#: ${data?.operationNumber}
Received From: ${data?.source ?? ''} Date: ${formatDisplayDate(data?.operationDate)}
${ data?.items ? data?.items .map((p) => { return ` `; }) .join('') : '' } ${ emptyRowCount > 0 ? Array(emptyRowCount) .fill(0) .map( (p) => ` `, ) .join('') : '' }
Item Code No. Item Description (name, formulation, strength) Batch No. Expiry Quantity Purchase Price
${p.itemCode ?? ''} ${p.itemDescription ?? ''} ${p.batchNumber ?? ''} ${formatDisplayDate(p.expiryDate)} ${p.quantityRequired?.toLocaleString() ?? ''} ${ p.quantityRequiredUoM ?? '' } ${p.purchasePrice?.toLocaleString() ?? ''}
           
`; }; export const PrintGoodsReceivedNoteStockOperation = async (data: StockOperationPrintData) => { const printData = await FormatGoodsReceivedDocument(data); printDocument(GetPrintTemplate(printData, data?.documentTitle, true, CLOSE_PRINT_AFTER_PRINT)); };