import { CLOSE_PRINT_AFTER_PRINT, STOCK_OPERATION_PRINT_DISABLE_COSTS } from '../../constants'; import { GetHeaderSection, GetPrintTemplate } from '../../core/print/PrintTemplate'; import { printDocument } from '../../core/print/printUtils'; import { formatDisplayDate } from '../../core/utils/datetimeUtils'; import { type StockOperationPrintData } from './StockOperationReport'; export const FormatTransferDocument = async (data: StockOperationPrintData): Promise => { const emptyRowCount: number = Math.max(0, 25 - (data?.items?.length ?? 0)); const headerSection = await GetHeaderSection(); return `
${headerSection}
Inventory Transfer
Name of Health Unit: ${data?.organizationName ?? ''}
Transfer From: ${data?.location ?? ''} Transfer#: ${data?.operationNumber}
Transfer To: ${data?.destination ?? ''} 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 Unit Cost Total Cost
${p.itemCode ?? ''} ${p.itemDescription ?? ''} ${p.batchNumber ?? ''} ${formatDisplayDate(p.expiryDate)} ${p.quantityRequired?.toLocaleString() ?? ''} ${ p.quantityRequiredUoM ?? '' } ${ STOCK_OPERATION_PRINT_DISABLE_COSTS ? '' : `${p.unitCost?.toLocaleString() ?? ''}${p.unitCostUoM ? `/${p.unitCostUoM}` : ''}` } ${ STOCK_OPERATION_PRINT_DISABLE_COSTS ? '' : `${p.totalCost?.toLocaleString() ?? ''}` }
             
`; }; export const PrintTransferOutStockOperation = async (data: StockOperationPrintData) => { const printData = await FormatTransferDocument(data); printDocument(GetPrintTemplate(printData, data?.documentTitle, true, CLOSE_PRINT_AFTER_PRINT)); };