import { SharedPDFService } from '../../../shared/shared-pdf.service'; import { MyDate } from '../../../utils/my-date'; declare var pdfMake: any; export class InsuranceExpirePDF { static GetInsuranceExpirePrint(InvoicesData: any, CName: any, HeaderName: any, searchValue: any) { var dd = { info: { title: 'InsuranceExpire', }, header: function (currentPage: any, pageCount: any) { return { text: currentPage.toString() + ' of ' + pageCount, alignment: 'right', marginRight: 7, fontSize: 8, marginTop: 2 }; }, pageMargins: [10, 15, 10, 15], content: [ { text: '' + CName + '', style: ['header'] }, { text: HeaderName, alignment: 'center', fontSize: 15, bold: true }, SharedPDFService.GetSearchValueDetails(searchValue), this.GetInvoiceDataTable(InvoicesData), ], styles: SharedPDFService.GetStyles() }; return dd; } static GetInvoiceDataTable(InvoicesData: any) { let Data: any = [] // InvoicesData.forEach((invoice: any) => { Data.push(this.GetItemsTable(InvoicesData)); // }); return Data; } static GetItemsTable(InvoiceData: any) { return { style: 'tableExample', marginTop: 3, marginBottom: 5, table: { widths: [25, '*', '*', '*', '*','*', '*','*', '*'], headerRows: 1, body: this.BuildTableBodyForLaborAndParts(InvoiceData) }, 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(InvoiceData: any) { let body: any = this.GetHeaderNames(); InvoiceData.forEach((invoice: any, index: any) => { let dataRow: any = []; let Vehicle:any=invoice.Make + ' ' + invoice.Model + ' ' + invoice.Var + ' ' + invoice.Year; dataRow.push({ text: index + 1 }); // dataRow.push({ text: invoice.Code, style: ['headerstyle'], }); dataRow.push({ text: invoice.Customer.DName, alignment: 'left' }); // dataRow.push({ text: invoice.Qty, alignment: 'right' }); // dataRow.push({ text: invoice.OfQty, alignment: 'right' }); dataRow.push({ text: invoice.Customer.Cons?.Phones?.Main, alignment: 'left' }); dataRow.push({ text: Vehicle, alignment: 'left' }); dataRow.push({ text: invoice.RegNo, alignment: 'left' }); dataRow.push({ text: invoice.VIN, alignment: 'left' }); dataRow.push({ text: invoice.InsName, alignment: 'left' }); dataRow.push({ text: invoice.More?.Ins?.PolNo, alignment: 'left' }); dataRow.push({ text: MyDate.ConvertUTCDateToReadable(invoice.More?.Ins?.VTo), alignment: 'left' }); // dataRow.push({ text: invoice.ReName, alignment: 'left' }); // dataRow.push({ text: invoice.Sts, alignment: 'left' }); // dataRow.push({ text: TrUtils.FixPriceValue(invoice.Total ), alignment: 'right', style: ['headerstyle'], }); body.push(dataRow); }); return body; } static GetHeaderNames() { let HeadingNames: any; HeadingNames = [[{ text: 'S.No', style: 'tableheader1', Field: 'SNo', alignment: 'left', line: true }, { text: 'Customer', style: 'tableheader1', Field: 'Code', alignment: 'left' }, { text: 'Phone', style: 'tableheader1', Field: 'CrDate', alignment: 'left' }, { text: 'Vehicle', style: 'tableheader1', Field: 'ShipToUser', alignment: 'left' }, { text: 'Registration #', style: 'tableheader1', Field: 'ShipToUser', alignment: 'left' }, { text: 'VIN / Chasis', style: 'tableheader1', Field: 'ShipToUser', alignment: 'left' }, { text: 'Insurance Company', style: 'tableheader1', Field: 'Name', alignment: 'left' }, { text: 'Policy No', style: 'tableheader1', Field: 'MPN', alignment: 'left' }, { text: 'Expire Date', style: 'tableheader1', Field: 'Qty', alignment: 'left' }, ]]; return HeadingNames; } }