Ejemplo n.º 1
0
        protected override void CreateLargeCertificate(PDFDocument document, TachographDocument tachographDocument, bool excludeLogos)
        {
            const int startHorizontal = 20;
            const int startVertical   = 0;

            document.DrawLine((startHorizontal), (startVertical), (startHorizontal + 555), (startVertical), TotalPageHeight);

            document.DrawLine((startHorizontal), (startVertical), (startHorizontal), (startVertical + 800), TotalPageHeight);

            document.DrawLine((startHorizontal + 555), (startVertical), (startHorizontal + 555), (startVertical + 800), TotalPageHeight);

            document.DrawLine((startHorizontal), (startVertical + 800), (startHorizontal + 555), (startVertical + 800), TotalPageHeight);

            document.DrawLine((startHorizontal), (startVertical + 290), (startHorizontal + 555), (startVertical + 290), TotalPageHeight);

            if (tachographDocument.MinorWorkDetails == null)
            {
                document.DrawLine((startHorizontal), (startVertical + 400), (startHorizontal + 555), (startVertical + 400), TotalPageHeight);
                document.DrawLine((startHorizontal), (startVertical + 600), (startHorizontal + 555), (startVertical + 600), TotalPageHeight);
            }
            else
            {
                document.DrawLine((startHorizontal), (startVertical + 420), (startHorizontal + 555), (startVertical + 420), TotalPageHeight);
                document.DrawLine((startHorizontal), (startVertical + 630), (startHorizontal + 555), (startVertical + 630), TotalPageHeight);
            }

            if (WorkshopSettings.Image != null && !excludeLogos)
            {
                var image = ImageHelper.Scale(WorkshopSettings.RawImage.ToImage(), 545, 150);
                document.AddImage(image, image.Width, image.Height, startHorizontal + 5, startVertical + 660);
            }

            AbsolutePositionText(document, Resources.TXT_TACHOGRAPH_CALIBRATION_CERTIFICATE.ToUpper(), startHorizontal + 200, startVertical + 170, 580, 100, document.GetRegularFont(true));
            document.DrawLine(startHorizontal + 200, startVertical + 188, startHorizontal + 367, startVertical + 188, TotalPageHeight);

            if (CustomerContact != null)
            {
                AbsolutePositionText(document, Resources.TXT_CUSTOMER_DETAILS.ToUpper(), startHorizontal + 5, startVertical + 200, 200, 40, document.GetRegularFont(true));
                if (CustomerContact.Name != null)
                {
                    AbsolutePositionText(document, CustomerContact.Name.ToUpper(), startHorizontal + 5, startVertical + 220, 200, 40, document.GetRegularFont(false));
                }
                if (CustomerContact.Address != null)
                {
                    AbsolutePositionText(document, CustomerContact.Address.ToUpper(), startHorizontal + 5, startVertical + 230, 200, 40, document.GetRegularFont(false));
                }
                if (CustomerContact.Town != null)
                {
                    AbsolutePositionText(document, CustomerContact.Town.ToUpper(), startHorizontal + 5, startVertical + 240, 200, 40, document.GetRegularFont(false));
                }
                if (CustomerContact.PostCode != null)
                {
                    AbsolutePositionText(document, CustomerContact.PostCode.ToUpper(), startHorizontal + 5, startVertical + 250, 200, 40, document.GetRegularFont(false));
                }
            }

            if (!string.IsNullOrEmpty(tachographDocument.InvoiceNumber))
            {
                AbsolutePositionText(document, Resources.TXT_INVOICE_NUMBER.ToUpper(), startHorizontal + 287, startVertical + 240, 400, 40, document.GetRegularFont(true));
                AbsolutePositionText(document, tachographDocument.InvoiceNumber, startHorizontal + 540, startVertical + 240, 390, 40, document.GetRegularFont(false));
            }
            if (!string.IsNullOrEmpty(tachographDocument.VehicleType))
            {
                AbsolutePositionText(document, Resources.TXT_VEHICLE_TYPE.ToUpper(), startHorizontal + 299, startVertical + 250, 400, 40, document.GetRegularFont(true));
                AbsolutePositionText(document, tachographDocument.VehicleType, startHorizontal + 490, startVertical + 250, 390, 40, document.GetRegularFont(false));
            }

            DateTime?calibrationDate = tachographDocument.CalibrationTime ?? DateTime.Today;
            string   expiryDate      = GetCalibrationTime(calibrationDate.Value.AddYears(2).AddDays(-1));

            AbsolutePositionText(document, Resources.TXT_DATE.ToUpper(), startHorizontal + 370, (startVertical + 210), 355, 40, document.GetRegularFont(true));

            AbsolutePositionText(document, GetCalibrationTime(tachographDocument.CalibrationTime).ToUpper(), (startHorizontal + 450), (startVertical + 210), 390, 40, document.GetRegularFont(false));

            if (tachographDocument.DocumentType != Resources.TXT_MINOR_WORK_DETAILS && tachographDocument.IsDigital)
            {
                AbsolutePositionText(document, Resources.TXT_EXP.ToUpper(), startHorizontal + 260, (startVertical + 220), 400, 40, document.GetRegularFont(true));
                AbsolutePositionText(document, expiryDate.ToUpper(), (startHorizontal + 450), (startVertical + 220), 390, 40, document.GetRegularFont(false));
            }

            AbsolutePositionText(document, Resources.TXT_ANALOGUE_INSPECTIONS.ToUpper(), (startHorizontal + 5), (startVertical + 300), 590, 40, document.GetRegularFont(true));

            AbsolutePositionText(document, Resources.TXT_CALIBRATION.ToUpper(), (startHorizontal + 15), (startVertical + 310), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 5), (startVertical + 320), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_INSTALLATION)
            {
                document.DrawCheck((startHorizontal + 5), (startVertical + 320), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_2_YEAR.ToUpper(), (startHorizontal + 15), (startVertical + 320), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 5), (startVertical + 330), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_TWO_YEAR_INSPECTION)
            {
                document.DrawCheck((startHorizontal + 5), (startVertical + 330), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_6_YEAR.ToUpper(), (startHorizontal + 15), (startVertical + 330), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 5), (startVertical + 340), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_SIX_YEAR_CALIBRATION)
            {
                document.DrawCheck((startHorizontal + 5), (startVertical + 340), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_RECALIBRATION_CERTIFICATE.ToUpper(), (startHorizontal + 15), (startVertical + 340), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 5), (startVertical + 350), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_RECALIBRATION)
            {
                document.DrawCheck((startHorizontal + 5), (startVertical + 350), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_MINOR_WORK.ToUpper(), (startHorizontal + 15),
                                 (startVertical + 350), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 5), (startVertical + 360), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_MINOR_WORK && !tachographDocument.IsDigital)
            {
                document.DrawCheck((startHorizontal + 5), (startVertical + 360), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_DIGITAL_INSPECTIONS.ToUpper(), (startHorizontal + 240), (startVertical + 300), 590, 40, document.GetRegularFont(true));

            AbsolutePositionText(document, Resources.TXT_CALIBRATION.ToUpper(), (startHorizontal + 255), (startVertical + 310), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 240), (startVertical + 320), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_DIGITAL_INITIAL)
            {
                document.DrawCheck((startHorizontal + 240), (startVertical + 320), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_2_YEAR.ToUpper(), (startHorizontal + 255),
                                 (startVertical + 320), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 240), (startVertical + 330), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_DIGITAL_TWO_YEAR)
            {
                document.DrawCheck((startHorizontal + 240), (startVertical + 330), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_MINOR_WORK.ToUpper(), (startHorizontal + 255), (startVertical + 330), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 240), (startVertical + 340), TotalPageHeight);
            if (tachographDocument.DocumentType == Resources.TXT_LARGE_MINOR_WORK && tachographDocument.IsDigital)
            {
                document.DrawCheck((startHorizontal + 240), (startVertical + 340), TotalPageHeight);
            }

            AbsolutePositionText(document, Resources.TXT_NEW_BATTERY.ToUpper(), (startHorizontal + 255), (startVertical + 350), 590, 40, document.GetRegularFont(false));
            document.DrawCheckBox((startHorizontal + 240), (startVertical + 360), TotalPageHeight);
            if (tachographDocument.NewBattery)
            {
                document.DrawCheck((startHorizontal + 240), (startVertical + 360), TotalPageHeight);
            }

            if (tachographDocument.MinorWorkDetails != null)
            {
                AbsolutePositionText(document, Resources.TXT_MINOR_WORK_DETAILS_DETAILS.ToUpper(), (startHorizontal + 5), (startVertical + 370), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, tachographDocument.MinorWorkDetails.ToUpper(), (startHorizontal + 5), (startVertical + 380), 550, 72);
            }

            if (tachographDocument.MinorWorkDetails == null)
            {
                AbsolutePositionText(document, Resources.TXT_TACHOGRAPH.ToUpper(), (startHorizontal + 5), (startVertical + 410), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_MAKE.ToUpper(), (startHorizontal + 140), (startVertical + 430), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_TYPE.ToUpper(), (startHorizontal + 140), (startVertical + 440), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_SERIAL_NUMBER.ToUpper(), (startHorizontal + 140), (startVertical + 450), 550, 72, document.GetRegularFont(true));

                if (!string.IsNullOrEmpty(tachographDocument.TachographMake))
                {
                    AbsolutePositionText(document, tachographDocument.TachographMake.ToUpper(), (startHorizontal + 300), (startVertical + 430), 550, 72);
                }
                if (!string.IsNullOrEmpty(tachographDocument.TachographModel))
                {
                    AbsolutePositionText(document, tachographDocument.TachographModel.ToUpper(), (startHorizontal + 300), (startVertical + 440), 550, 72);
                }
                if (!string.IsNullOrEmpty(tachographDocument.SerialNumber))
                {
                    AbsolutePositionText(document, tachographDocument.SerialNumber.ToUpper(), (startHorizontal + 300), (startVertical + 450), 550, 72);
                }

                AbsolutePositionText(document, Resources.TXT_VEHICLE.ToUpper(), (startHorizontal + 5), (startVertical + 470), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, Resources.TXT_VRN.ToUpper(), (startHorizontal + 140), (startVertical + 490), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_VIN.ToUpper(), (startHorizontal + 140), (startVertical + 500), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_TYRE_SIZE.ToUpper(), (startHorizontal + 140), (startVertical + 510), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_W_FACTOR.ToUpper(), (startHorizontal + 140), (startVertical + 520), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_TYRE_L_FACTOR.ToUpper(), (startHorizontal + 140), (startVertical + 530), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_ODOMETER_READING.ToUpper(), (startHorizontal + 140), (startVertical + 540), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_SET_K_FACTOR.ToUpper(), (startHorizontal + 140), (startVertical + 550), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, $"{tachographDocument.VehicleMake} {tachographDocument.VehicleModel}".ToUpper(), (startHorizontal + 140), (startVertical + 480), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, tachographDocument.RegistrationNumber.ToUpper(), (startHorizontal + 300), (startVertical + 490), 550, 72);
                AbsolutePositionText(document, tachographDocument.VIN.ToUpper(), (startHorizontal + 300), (startVertical + 500), 550, 72);
                AbsolutePositionText(document, tachographDocument.TyreSize.ToUpper(), (startHorizontal + 300), (startVertical + 510), 550, 72);
                AbsolutePositionText(document, string.Format(Resources.TXT_IMP_KM, tachographDocument.WFactor).ToUpper(), (startHorizontal + 300), (startVertical + 520), 550, 72);
                AbsolutePositionText(document, string.Format(Resources.TXT_MM, tachographDocument.LFactor).ToUpper(), (startHorizontal + 300), (startVertical + 530), 550, 72);
                AbsolutePositionText(document, tachographDocument.OdometerReading.ToUpper(), (startHorizontal + 300), (startVertical + 540), 550, 72);
                AbsolutePositionText(document, string.Format(Resources.TXT_IMP_KM, tachographDocument.KFactor).ToUpper(), (startHorizontal + 300), (startVertical + 550), 550, 72);

                if (tachographDocument.MinorWorkDetails != null)
                {
                    AbsolutePositionText(document, Resources.TXT_MINOR_WORK_DETAILS_DETAILS.ToUpper(), (startHorizontal + 140), (startVertical + 570), 550, 72, document.GetRegularFont(true));
                    AbsolutePositionText(document, tachographDocument.MinorWorkDetails.ToUpper(), (startHorizontal + 140), (startVertical + 580), 550, 72);
                }

                AbsolutePositionText(document, Resources.TXT_AUTHORISED_TACHOGRAPH_CENTER, (startHorizontal + 30), (startVertical + 620), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, RegistrationData.CompanyName, (startHorizontal + 30), (startVertical + 650), 550, 72, document.GetRegularFont(false));

                AbsolutePositionText(document, WorkshopSettings.Address1, (startHorizontal + 30), (startVertical + 670), 550, 72, document.GetRegularFont(false));

                AbsolutePositionText(document, WorkshopSettings.Town, (startHorizontal + 30), (startVertical + 690), 550, 72, document.GetRegularFont(false));

                AbsolutePositionText(document, WorkshopSettings.PostCode, (startHorizontal + 30), (startVertical + 710), 550, 72, document.GetRegularFont(false));

                AbsolutePositionText(document, Resources.TXT_AUTHORISED_TESTERS_SIGNATURE, (startHorizontal + 300), (startVertical + 620), 700, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, string.Format(Resources.TXT_SIGNATURE_TECHNICIAN, tachographDocument.Technician), (startHorizontal + 300), (startVertical + 650), 550, 20);

                TryAddSignature(document, tachographDocument, (startHorizontal + 300));

                document.DrawLine((startHorizontal + 300), (startVertical + 715), (startHorizontal + 490), (startVertical + 715), TotalPageHeight);
                AbsolutePositionText(document, string.Format(Resources.TXT_DISTRIBUTOR_SEAL, RegistrationData.SealNumber), (startHorizontal + 300), (startVertical + 710), 550, 72, document.GetXSmallFont(false));

                AddAdvertisingSection(document, startHorizontal, startVertical);
            }
            else
            {
                AbsolutePositionText(document, Resources.TXT_TACHOGRAPH.ToUpper(), (startHorizontal + 5), (startVertical + 430), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_MAKE.ToUpper(), (startHorizontal + 140), (startVertical + 450), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_TYPE.ToUpper(), (startHorizontal + 140), (startVertical + 460), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_SERIAL_NUMBER.ToUpper(), (startHorizontal + 140), (startVertical + 470), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, tachographDocument.TachographMake.ToUpper(), (startHorizontal + 300), (startVertical + 450), 550, 72);
                AbsolutePositionText(document, tachographDocument.TachographModel.ToUpper(), (startHorizontal + 300), (startVertical + 460), 550, 72);
                AbsolutePositionText(document, tachographDocument.SerialNumber.ToUpper(), (startHorizontal + 300), (startVertical + 470), 550, 72);

                AbsolutePositionText(document, Resources.TXT_VEHICLE.ToUpper(), (startHorizontal + 5), (startVertical + 490), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, Resources.TXT_VRN.ToUpper(), (startHorizontal + 140), (startVertical + 510), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_VIN.ToUpper(), (startHorizontal + 140), (startVertical + 520), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_TYRE_SIZE.ToUpper(), (startHorizontal + 140), (startVertical + 530), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_W_FACTOR.ToUpper(), (startHorizontal + 140), (startVertical + 540), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_TYRE_L_FACTOR.ToUpper(), (startHorizontal + 140), (startVertical + 550), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_ODOMETER_READING.ToUpper(), (startHorizontal + 140), (startVertical + 560), 550, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, Resources.TXT_SET_K_FACTOR.ToUpper(), (startHorizontal + 140), (startVertical + 570), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, string.Format("{0} {1}", tachographDocument.VehicleMake, tachographDocument.VehicleModel).ToUpper(), (startHorizontal + 140), (startVertical + 500), 550, 72, document.GetRegularFont(true));

                AbsolutePositionText(document, tachographDocument.RegistrationNumber.ToUpper(), (startHorizontal + 300), (startVertical + 510), 550, 72);
                AbsolutePositionText(document, tachographDocument.VIN.ToUpper(), (startHorizontal + 300), (startVertical + 520), 550, 72);
                AbsolutePositionText(document, tachographDocument.TyreSize.ToUpper(), (startHorizontal + 300), (startVertical + 530), 550, 72);
                AbsolutePositionText(document, string.Format(Resources.TXT_IMP_KM, tachographDocument.WFactor).ToUpper(), (startHorizontal + 300), (startVertical + 540), 550, 72);
                AbsolutePositionText(document, string.Format(Resources.TXT_MM, tachographDocument.LFactor).ToUpper(), (startHorizontal + 300), (startVertical + 550), 550, 72);
                AbsolutePositionText(document, tachographDocument.OdometerReading.ToUpper(), (startHorizontal + 300), (startVertical + 560), 550, 72);
                AbsolutePositionText(document, string.Format(Resources.TXT_IMP_KM, tachographDocument.KFactor).ToUpper(), (startHorizontal + 300), (startVertical + 570), 550, 72);

                AbsolutePositionText(document, Resources.TXT_AUTHORISED_TACHOGRAPH_CENTER, (startHorizontal + 30), (startVertical + 640), 550, 72, document.GetRegularFont(true));
                if (RegistrationData.CompanyName != null)
                {
                    AbsolutePositionText(document, RegistrationData.CompanyName, (startHorizontal + 30), (startVertical + 670), 550, 72, document.GetRegularFont(false));
                }
                if (WorkshopSettings.Address1 != null)
                {
                    AbsolutePositionText(document, WorkshopSettings.Address1, (startHorizontal + 30), (startVertical + 690), 550, 72, document.GetRegularFont(false));
                }
                if (WorkshopSettings.Town != null)
                {
                    AbsolutePositionText(document, WorkshopSettings.Town, (startHorizontal + 30), (startVertical + 710), 550, 72, document.GetRegularFont(false));
                }

                if (WorkshopSettings.PostCode != null)
                {
                    AbsolutePositionText(document, WorkshopSettings.PostCode, (startHorizontal + 30), (startVertical + 730), 550, 72, document.GetRegularFont(false));
                }

                AbsolutePositionText(document, Resources.TXT_AUTHORISED_TESTERS_SIGNATURE, (startHorizontal + 300), (startVertical + 640), 700, 72, document.GetRegularFont(true));
                AbsolutePositionText(document, string.Format(Resources.TXT_SIGNATURE_TECHNICIAN, tachographDocument.Technician), (startHorizontal + 300), (startVertical + 670), 550, 20);

                TryAddSignature(document, tachographDocument, (startHorizontal + 300));

                document.DrawLine((startHorizontal + 300), (startVertical + 735), (startHorizontal + 490), (startVertical + 735), TotalPageHeight);
                AbsolutePositionText(document, string.Format(Resources.TXT_DISTRIBUTOR_SEAL, RegistrationData.SealNumber), (startHorizontal + 300), (startVertical + 730), 550, 72, document.GetXSmallFont(false));

                AddAdvertisingSection(document, startHorizontal, startVertical);
            }
        }