import { LaborStatusEnum, ROStatusEnum } from '../enums/enums'; import { PrintSharedService } from '../shared/shared-print.service'; import { MyDate } from '../utils/my-date'; import { TrUtils } from '../utils/tr-utils'; export class TechnicianPrintService { static GetTechnicianPrintData(OriginalROData: any, OriginalCustomerData: any, OriginalVehicleData: any, EntityData: any, image: any) { let TechnicianPrintData: any = {}; TechnicianPrintData.Entity = PrintSharedService.GetFormattedEntityDataForPrint(EntityData, "Technician Copy", OriginalROData); TechnicianPrintData = PrintSharedService.GetEntityHeaderStyles(TechnicianPrintData, EntityData, image); if(TrUtils.IsNull(OriginalROData.Comps)){ OriginalROData.Comps=[]; } if(TrUtils.IsNull(OriginalROData.Ops)){ OriginalROData.Ops=[]; } if(TrUtils.IsNull(OriginalROData.Parts)){ OriginalROData.Parts=[]; } if(TrUtils.IsNull(OriginalROData.Colli)){ OriginalROData.Colli=[]; } // Gets ROData From Service And Filters Only Valid Data let argROData = TrUtils.Stringify(OriginalROData); argROData = this.GetItemsForTechnicianPrint(argROData); argROData = this.ReverseItemsForTechnicianPrint(argROData); TechnicianPrintData.Comps = argROData.Comps; TechnicianPrintData.Ops = argROData.Ops; TechnicianPrintData.Parts = argROData.Parts; TechnicianPrintData.Colli = argROData.Colli; // Prepare Records Description In A Readable Format // TechnicianPrintData.Comps = PrintSharedService.FilterRecordsDescription(TechnicianPrintData.Comps); // TechnicianPrintData.Ops = PrintSharedService.FilterRecordsDescription(TechnicianPrintData.Ops); // TechnicianPrintData.Parts = PrintSharedService.FilterRecordsDescription(TechnicianPrintData.Parts); // TechnicianPrintData.Colli = PrintSharedService.FilterRecordsDescription(TechnicianPrintData.Colli); TechnicianPrintData.PrDate = MyDate.ConvertUTCDateToReadable(argROData.PrDate); TechnicianPrintData.CrDate = MyDate.ConvertUTCDateToReadable(argROData.CrDate); TechnicianPrintData.MIn = OriginalVehicleData.MIn; TechnicianPrintData.Product = PrintSharedService.GetVehicleFromServiceAndFormatData(OriginalVehicleData); TechnicianPrintData.Customer = PrintSharedService.GetCustomerDataForTechnicianPrint(OriginalCustomerData); TechnicianPrintData._id = argROData.Code; TechnicianPrintData.Type = 'Technician Copy'; TechnicianPrintData.HeaderName = 'Technician Copy'; TechnicianPrintData.For = 'Technician'; return TechnicianPrintData; } static GetItemsForTechnicianPrint(argROData: any) { if (argROData.Sts === ROStatusEnum.New || argROData.Sts === ROStatusEnum.WtngForAppr) { argROData.Ops.forEach((Labor: any) => { Labor.Sts = LaborStatusEnum.New; }); argROData.Parts.forEach((Part: any) => { if (!TrUtils.IsNull(Part.CollId)) { Part.Sts = LaborStatusEnum.New; } }); argROData.Colli.forEach((Collision: any) => { Collision.Sts = LaborStatusEnum.New; }); } argROData.Ops = argROData.Ops.filter((Labor: any) => { return Labor.Sts !== LaborStatusEnum.Cancelled && Labor.Sts !== LaborStatusEnum.Declined; }); argROData.Parts = argROData.Parts.filter((Part: any) => { if (!TrUtils.IsNull(Part.CollId)) { return Part.Sts !== LaborStatusEnum.Cancelled && Part.Sts !== LaborStatusEnum.Declined; } else { return Part; } }); argROData.Colli = argROData.Colli.filter((Collision: any) => { return Collision.Sts !== LaborStatusEnum.Cancelled && Collision.Sts !== LaborStatusEnum.Declined; }); return argROData; } static ReverseItemsForTechnicianPrint(argROData: any) { argROData.Comps = argROData.Comps.reverse(); argROData.Ops = argROData.Ops.reverse(); argROData.Parts = argROData.Parts.reverse(); argROData.Colli = argROData.Colli.reverse(); return argROData; } }