import { SharedPDFService } from "../../shared/shared-pdf.service"; export class TransferOrderPrintService { static GetTransferOrderPrint(ReOrderPointData: any) { // console.log('ReOrderPointData', ReOrderPointData); let dd: any = { info: { title: 'Transfer Order', }, header: function (currentPage: any, pageCount: any, pageSize: any) { return { text: currentPage.toString() + ' of ' + pageCount, alignment: 'right', marginRight: 25, fontSize: 8, marginTop: 2 }; }, pageMargins: [10, 15, 10, 15], pageSize: 'A4', content: [ { text: ReOrderPointData.Entity.CName, style: ['headerstyle'], alignment: 'center', fontSize: 20 }, SharedPDFService.GetPrintType('Transfer Order'), SharedPDFService.HeaderAfterLine(), { text: 'From : ' + ReOrderPointData.FromName , style: 'hed', marginTop:5 }, { text: 'To : ' + ReOrderPointData.ToName , style: 'hed'}, { text: 'Date : ' + ReOrderPointData.Date , style: 'hed', marginBottom:5}, this.GetItemsTable(ReOrderPointData.Items), this.GetSignatures(ReOrderPointData.Entity.CName, ReOrderPointData.Type, ReOrderPointData.For), ], styles: { headerstyle: { fontFamily: 'Calibri', fontSize: 9 }, Sign: { fontSize: 8, margin: [0, 30, 0, 5] }, forCompany: { marginRight: 5, marginTop: 10, fontSize: 9, alignment: 'right' }, tableheader: { bold: true, fontFamily: 'Calibri', margin: [0, 1, 0, 5], alignment: 'center' }, tableheader1: { bold: true, fontFamily: 'Calibri', margin: [0, 2, 0, 2], alignment: 'center' }, tableExample: { fontSize: 9 }, hed: { fontSize: 9 }, } }; return dd; } static CustomerAndVehicleDetailsAfterLine() { return { canvas: [ { type: 'line', lineColor: 'gray', x1: 0, y1: 0, x2: 575, y2: 0, lineWidth: 1 } ] }; } static GetSignatures(CName: any, For: any, Type: any) { return { columns: [{ stack: [ this.CompanyName(CName), ] }], }; } static CompanyName(CName: any) { return { style: 'forCompany', text: ['For ', { text: CName, }], }; } static GetItemsTable(Items: any) { return { style: 'tableExample', marginTop: 3, marginBottom: 5, table: { widths: ['*', 'auto'], headerRows: 1, body: this.BuildTableBodyForLaborAndParts(Items) }, layout: { hLineWidth: function (i:any, node:any) { return (i === 0 || i === 1 || i === node.table.body.length) ? 1 : 0.5; }, vLineWidth: function (i:any, node:any) { return (i === 0 || i === node.table.widths.length) ? 1 : 0.5; }, hLineColor: function (i: any, node: any) { return (i === 0 || i === 1 || i === node.table.body.length) ? 'gray' : 'lightgrey'; }, vLineColor: function (i: any, node: any) { return 'gray'; }, } }; } static BuildTableBodyForLaborAndParts(Items: any) { let body: any = this.GetHeaderNames(); Items.forEach((item: any, index: any) => { let dataRow: any = []; dataRow.push({ text: item.Name, }); dataRow.push({ text: item.Qty, alignment: 'right', style: ['headerstyle'], }); body.push(dataRow); }); return body; } static GetHeaderNames() { let HeadingNames: any; HeadingNames = [[{ text: 'Description', style: 'tableheader1', Field: 'Name', alignment: 'left', line: true }, { text: 'Quantity', style: 'tableheader1', Field: 'Qty', alignment: 'right' } ]]; return HeadingNames; } }