import { SharedPDFService } from "../shared/shared-pdf.service"; import { PrintSharedService } from "../shared/shared-print.service"; import { TrUtils } from "../utils/tr-utils"; declare var pdfMake: any; declare var document: any; export class CheckListPrintService { static PrintFile: any; static CheckListPrint(CheckListData: any, win: any) { let dd = { info: { title: 'CheckList', }, background: function (currentPage: any, pageSize: any) { return SharedPDFService.GetWatermarkImage(CheckListData.Image, pageSize, CheckListData.Entity.Wmark); }, 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: [ // SharedPDFService.MainHeading(CheckListData.Entity.CName, CheckListData.Entity.Header, CheckListData.Image, CheckListData.HColor, null), SharedPDFService.GetMainHeader(CheckListData.Entity, CheckListData.Image, CheckListData.AColor, CheckListData.HColor, null), SharedPDFService.GetPrintType('INSPECTION'), SharedPDFService.HeaderAfterLine(), this.RODetails(CheckListData), this.CheckListTable(CheckListData.Sections) ], styles: SharedPDFService.GetStyles() }; this.PrintFile = TrUtils.Stringify(dd); pdfMake.createPdf(dd).getDataUrl((DataURL: any) => { document.getElementById('pdf').setAttribute('src', DataURL); }); } static RODetails(CheckListData: any) { return { marginTop: 5, columns: [ { stack: [SharedPDFService.GetCustomerDetails(CheckListData.Customer, null, null, null, 'Customer Name & Address')], width: 250 }, { text: '', width: 40 }, { stack: [this.VehicleDetails(CheckListData)], width: 250 }, ] } } static VehicleDetails(CheckListData: any) { let id: any; let vehicleData: any; vehicleData = [ { name: 'RO#', value: this.CheckAndSetString(CheckListData.ROId) } ]; vehicleData.push({ name: 'Regn. No', value: this.CheckAndSetString(CheckListData.RegNo) }); let a: any = [ { name: 'Vehicle', value: this.CheckAndSetString(CheckListData.Vehicle.Make) + ' ' + this.CheckAndSetString(CheckListData.Vehicle.Model) + ' ' + this.CheckAndSetString(CheckListData.Vehicle.Var) }, { name: 'Service Advisor Name', value: this.CheckAndSetString(CheckListData.SAName) } ]; for (let i = 0; i < a.length; i++) { vehicleData.push(a[i]); } return SharedPDFService.GetVehicleDataTable(vehicleData); } static CheckAndSetString(Value: any) { if (TrUtils.IsNull(Value)) { Value = ''; } return Value; } static CheckListTable(CheckList: any) { return { columns: [ this.SectionItemsTable(CheckList) ] }; } static SectionItemsTable(sections: any) { return { style: 'tableExample', marginTop: 10, table: { widths: [95, 15, 180, 40, 40, 40, 100], // headerRows: 2, body: this.ItemsTable(sections) }, layout: PrintSharedService.LayOutStyle() }; } static ItemsTable(sections: any) { let body: any = []; let column = this.sectionname(); body.push(column); sections.forEach((section: any) => { section.Items.forEach((item: any, index: any) => { let dataRow: any = []; if (index === 0) { dataRow.push({ text: section.Name.toString(), noWrap: true, rowSpan: section.Items.length, alignment: "center", height: 60 }); } else { dataRow.push({}); } dataRow.push({ text: item.SNo.toString(), noWrap: true, alignment: 'center' }); dataRow.push({ text: item.Desc.toString() }); let TickImage: any = { image: 'data:image/jpeg;base64,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', width: 20, alignment: 'center' }; if (item.Action === 'G') { dataRow.push(TickImage); } else { dataRow.push({ text: '', noWrap: true }); } if (item.Action === 'O') { dataRow.push(TickImage); } else { dataRow.push({ text: '', noWrap: true }); } if (item.Action === 'R') { dataRow.push(TickImage); } else { dataRow.push({ text: '', noWrap: true }); } dataRow.push({ text: '', noWrap: true }); body.push(dataRow); }) }) return body; } static sectionname() { let headersNames: any = [{ text: 'Section', style: 'tableheader' }, { text: 'Sno', style: 'tableheader' }, { text: 'CHECK ITEMS', style: 'tableheader' }, { text: 'Good', style: 'tableheader' }, { text: 'Average', style: 'tableheader' }, { text: 'Bad', style: 'tableheader' }, { text: 'Remarks', style: 'tableheader' }]; // let HeaderName = [{ text: 'Section', colSpan: 5, color: 'white', fillColor: 'black',fontSize:10 }, {}, {}, {}, {}] return headersNames; } }