Files

660 lines
28 KiB
Python
Raw Permalink Normal View History

"""The Q.C. ITP template, ITP_Generation_Revised_2.
Copied verbatim from the old build's src/js/itp.js line 4 (ITP_TMPL), which Q.C. took from the workbook
ITP_Generation_Revised_2.xlsm (COP Template sheet). Starting an ITP freezes a copy of it into itps.template, so a
later change here never alters an ITP already in use.
Sections: n, t (title), page (WP Weld Parts, C Code, FA Final Assembly), sig (a QN # / remarks / PESCO Q.C. signature
block follows the section), final (the last block, COP complete) and items. Items: n, t (title), code (the PESCO
code), cust (the customer code), crit (acceptance criteria).
"""
from __future__ import annotations
from typing import Any
ITP_TEMPLATE: dict[str, Any] = {
"ver": "ITP_Generation_Revised_2",
"legend": "O = Observe R = Review A = Approve I = Inspect AU = Audit W = Witness (Hold) "
"H = Hold NA = Not Applicable",
"sections": [
{
"n": "1",
"t": "GENERAL FABRICATION and DATA",
"page": "WP",
"sig": False,
"items": [
{
"n": "1.1",
"t": "Material Test Reports",
"code": "R",
"cust": "R",
"crit": "MTR chemistry and mechanical properties meet PO/material spec; heat "
"numbers on MTR match material received. (API Q1 5.5.3, 5.6.5 / ISO 9001 "
"8.4.2, 8.5.2)",
},
{
"n": "1.2",
"t": "Welding Procedures",
"code": "A",
"cust": "R",
"crit": "WPS/PQR qualified per ASME IX and approved before use; current revision "
"matches the weld map assignment. (API Q1 5.6.3 / ISO 9001 8.5.1)",
},
{
"n": "1.3",
"t": "Welder Qualifications Records",
"code": "A",
"cust": "R",
"crit": "Welder current on the qualified welder log for the process, position and "
"material used; qualification not expired. (API Q1 4.3.2 / ISO 9001 7.2)",
},
{
"n": "1.4",
"t": "QA/QC Manual",
"code": "A",
"cust": "R",
"crit": "Manual reflects current API Q1 / ISO 9001 requirements and is the "
"controlled, released revision. (API Q1 4.4 / ISO 9001 7.5.3)",
},
{
"n": "1.5",
"t": "Weld Map(s)/Fabrication Drawings",
"code": "A",
"cust": "R",
"crit": "Released revision used; as-built weld numbers, WPS and welder ID recorded "
"on the map before the final documentation package is assembled. (API Q1 "
"5.6.3, 5.6.5 / ISO 9001 8.5.2)",
},
{
"n": "1.6",
"t": "Radiographic Testing and Reports",
"code": "R",
"cust": "R",
"crit": "RT reports reference weld map location and heat number; results accepted "
"to governing code/spec; technician currently certified. (API Q1 5.6.9.4 / "
"ISO 9001 7.1.5, 8.5.2)",
},
{
"n": "1.7",
"t": "Ultrasonic Testing and Reports",
"code": "R",
"cust": "R",
"crit": "UT reports reference weld map location and heat number; results accepted "
"to governing code/spec; technician currently certified. (API Q1 5.6.9.4 / "
"ISO 9001 7.1.5, 8.5.2)",
},
{
"n": "1.8",
"t": "Hydrostatic Testing and Reports",
"code": "A",
"cust": "R",
"crit": "Test pressure and hold time meet code/spec; no leaks or pressure drop; "
"gauges in current calibration. (API Q1 5.6.9.3, 5.8)",
},
{
"n": "1.9",
"t": "Pneumatic Testing and Reports",
"code": "R",
"cust": "R",
"crit": "Used only where hydrotest is not permitted by code/client spec; test "
"pressure and hold time meet code/spec; mark NA if hydrotest performed.",
},
{
"n": "1.10",
"t": "Insulation Application and Test Reports",
"code": "O",
"cust": "R",
"crit": "Insulation type and thickness per spec; test reports (where required) "
"meet the acceptance values in the spec.",
},
{
"n": "1.11",
"t": "Nonconformance Reports (NCR/QN Log)",
"code": "R",
"cust": "R",
"crit": "All QNs/NCRs from this build are dispositioned and closed, or carried to "
"the customer as an open item before shipment; concessions are "
"customer-approved. (API Q1 5.9 / ISO 9001 8.7)",
},
{
"n": "1.12",
"t": "Export Packing Plan",
"code": "R",
"cust": "R",
"crit": "Packing plan meets PO, ISPM-15 and destination country requirements.",
},
{
"n": "1.13",
"t": 'Certified "As-Built" Data and Drawings',
"code": "A",
"cust": "R",
"crit": "As-built drawings match the final fabricated configuration; all field "
"changes/redlines incorporated and approved.",
},
{
"n": "1.14",
"t": "Nameplate/Tagging Etching/Stenciling",
"code": "R",
"cust": "R",
"crit": "Nameplate data matches the approved drawing/data sheet and code stamp (if "
"applicable); stamped/etched by a qualified person.",
},
],
},
{
"n": "2",
"t": "STRUCTURAL",
"page": "WP",
"sig": False,
"items": [
{
"n": "2.1",
"t": "Structural Fit-up/Dimensional Check prior to Weldout",
"code": "I",
"cust": "R/AU",
"crit": "Fit-up dimensions per approved drawing tolerance; heat numbers "
"transferred from mill cert to cut members; welder ID/WPS recorded against "
"the weld map before weld-out. (API Q1 5.6.5 / ISO 9001 8.5.2)",
},
{
"n": "2.2",
"t": "Post Welding Dimensional Check",
"code": "I",
"cust": "R/AU",
"crit": "Final dimensions within drawing tolerance; visual weld quality meets AWS "
"D1.1 (or governing code) acceptance criteria.",
},
{
"n": "2.3",
"t": "Interface Structural and ICP Dimensional Locations",
"code": "I",
"cust": "R/AU",
"crit": "Interface/ICP dimensional locations within drawing tolerance; verified "
"and recorded before release to the next department.",
},
],
},
{
"n": "3",
"t": "PIPING",
"page": "WP",
"sig": True,
"items": [
{
"n": "3.1",
"t": "Visual Quality Inspection",
"code": "O",
"cust": "R/AU",
"crit": "Welds free of surface defects (undercut, porosity, cracking) per code "
"acceptance criteria; weld map and heat numbers current.",
},
{
"n": "3.2",
"t": "Post Welding Dimensional Check",
"code": "O",
"cust": "R/AU",
"crit": "Dimensions and alignment per isometric/drawing tolerance.",
},
{
"n": "3.3",
"t": "Ultrasonic, Radiographic and Magnetic Particle Testing and Reports",
"code": "R",
"cust": "R/AU",
"crit": "NDE method and extent per code/spec; results reference weld map location "
"and welder ID; NDE technician currently certified. (API Q1 5.6.9.4 / ISO "
"9001 8.5.2)",
},
{
"n": "3.4",
"t": "Final inspection/Hydrostatic test",
"code": "A",
"cust": "W",
"crit": "Test pressure and hold time per code/spec; no leaks or pressure drop; "
"witnessed where required by the PO. (API Q1 5.6.9.3)",
},
],
},
{
"n": "4",
"t": "VESSELS",
"page": "C",
"sig": True,
"items": [
{
"n": "4.1",
"t": "Seam/Joint Fit-up and Dimensional Check prior to Weldout",
"code": "O",
"cust": "R/AU",
"crit": "Fit-up/gap/alignment per WPS and drawing; heat numbers transferred to "
"shell/head components; welder ID/WPS recorded against the weld map.",
},
{
"n": "4.2",
"t": "Prior to vessel closing Heads Fit-up and Weldout (Internal Inspection)",
"code": "O",
"cust": "H",
"crit": "Internal surfaces, welds and attachments accepted before the vessel "
"becomes inaccessible. Hold point justified: internal access is "
"permanently lost after closure.",
},
{
"n": "4.3",
"t": "Prior to Stress Relieving",
"code": "O",
"cust": "R/AU",
"crit": "Vessel meets drawing configuration and code requirements before heat "
"treatment; PWHT procedure/chart approved.",
},
{
"n": "4.4",
"t": "Final Inspection/Pre-hydrotest",
"code": "O",
"cust": "H",
"crit": "All welds, NDE and dimensional checks complete and accepted before the "
"vessel is pressurized. Hold point justified: an unverified vessel "
"presents a personnel-safety risk under test pressure.",
},
{
"n": "4.5",
"t": "Hydrostatic Testing and Reports",
"code": "A",
"cust": "H",
"crit": "Test pressure and hold time per ASME code/spec; no leaks, no permanent "
"deformation; customer witness where required by the PO. (API Q1 5.6.9.3)",
},
{
"n": "4.6",
"t": "Ultrasonic, Radiographic and Magnetic Particle Testing and Reports",
"code": "R",
"cust": "R/AU",
"crit": "NDE method/extent per code; results reference weld map location, heat "
"number and welder ID. (API Q1 5.6.9.4 / ISO 9001 8.5.2)",
},
],
},
{
"n": "5",
"t": "INTERNAL COATING",
"page": "C",
"sig": True,
"items": [
{
"n": "5.1",
"t": "Post Surface Preparation/Blasting",
"code": "W",
"cust": "W",
"crit": "Surface profile and cleanliness (e.g., SSPC-SP/NACE) meet the coating "
"spec. Witness point justified: surface condition cannot be re-verified "
"once coated.",
},
{
"n": "5.2",
"t": "Post Application of Primer Coat",
"code": "W",
"cust": "R/AU",
"crit": "DFT within spec range; no holidays, runs or contamination before overcoat.",
},
{
"n": "5.3",
"t": "Post Application of Intermediate Coat(s)",
"code": "W",
"cust": "R/AU",
"crit": "Cumulative DFT within spec range; recoat window per data sheet met.",
},
{
"n": "5.4",
"t": "Post Application of Top Coat",
"code": "A",
"cust": "R/AU",
"crit": "Total DFT, color and finish per coating spec/data sheet.",
},
{
"n": "5.5",
"t": "Holiday Testing",
"code": "H",
"cust": "H",
"crit": "Holiday (spark) test at voltage per NACE SP0188/coating data sheet; zero "
"holidays before service. Hold point justified: final acceptance test for "
"lining integrity.",
},
],
},
{
"n": "6",
"t": "EXTERNAL COATING",
"page": "C",
"sig": True,
"items": [
{
"n": "6.1",
"t": "Post Surface Preparation/Blasting",
"code": "W",
"cust": "W",
"crit": "Surface profile and cleanliness meet the coating spec. Witness point "
"justified: surface condition cannot be re-verified once coated.",
},
{
"n": "6.2",
"t": "Post Application of Primer Coat",
"code": "W",
"cust": "R/AU",
"crit": "DFT within spec range; no holidays, runs or contamination before overcoat.",
},
{
"n": "6.3",
"t": "Post Application of Intermediate Coat(s)",
"code": "W",
"cust": "R/AU",
"crit": "Cumulative DFT within spec range; recoat window per data sheet met.",
},
{
"n": "6.4",
"t": "Post Application of Top Coat",
"code": "A",
"cust": "R/AU",
"crit": "Total DFT, color and gloss per coating spec/data sheet.",
},
{
"n": "6.5",
"t": "Final External Coating Inspection",
"code": "A",
"cust": "R/AU",
"crit": "Visual inspection (holidays, runs, mechanical damage) and DFT survey meet "
"spec; touch-ups accepted before release.",
},
{
"n": "6.6",
"t": "Holiday Testing Under Insulation (If Applicable)",
"code": "H",
"cust": "H",
"crit": "Low-voltage holiday test per spec where insulation is applied over "
"coating. Hold point justified: coating is inaccessible once insulated. "
"Mark NA if not insulated.",
},
],
},
{
"n": "7",
"t": "INSTRUMENTATION, ELECTRICAL and CONTROLS",
"page": "FA",
"sig": True,
"items": [
{
"n": "7.1",
"t": "Verify Component Parts and Model Numbers to Specs/Data Sheets",
"code": "R",
"cust": "R/AU",
"crit": "Model, range, materials and area classification match the approved "
"instrument data sheet, cross-checked to the instrument index.",
},
{
"n": "7.2",
"t": "Contractor's Inspection Records",
"code": "R",
"cust": "R",
"crit": "Sub-tier inspection records complete and signed; sub-tier NCRs closed "
"before acceptance. (API Q1 5.6 / ISO 9001 8.4)",
},
{
"n": "7.3",
"t": "Calibration Verification – Test/Measuring Equipment Used",
"code": "R",
"cust": "R",
"crit": "Megger, torque wrench and other test/measuring equipment used for "
"acceptance are within current calibration; cal-due dates recorded on the "
"inspection record. (API Q1 5.8 / ISO 9001 7.1.5)",
},
{
"n": "7.4",
"t": "Verify Grounding and Design Documents/Specs",
"code": "R",
"cust": "R/AU",
"crit": "Grounding installed per design/one-line drawing and NEC Article 250; "
"ground resistance recorded.",
},
{
"n": "7.5",
"t": "Megger / Insulation Resistance and Continuity Check of Cables",
"code": "W",
"cust": "R/AU",
"crit": "Continuity end-to-end, cores correctly identified, insulation resistance "
"within limits. (Ref: NETA ATS; cable test schedule)",
},
{
"n": "7.6",
"t": "Static checks of control switches (as required)",
"code": "O",
"cust": "R/AU",
"crit": "Switch actuation and fail-safe position verified against the loop "
"diagram; set points and fail-safe action per data sheet. (Static check "
"record)",
},
{
"n": "7.7",
"t": "Verify Nameplate Layout, Lettering and Size",
"code": "I",
"cust": "R/AU",
"crit": "Text, size, material and mounting per client labeling spec. (Nameplate checklist)",
},
{
"n": "7.8",
"t": "Verify Wire Size, Terminations and Tagging",
"code": "I",
"cust": "R/AU",
"crit": "Wire size per load and NEC Art. 310; terminations torqued; tags match "
"wiring drawings. (Termination check sheet)",
},
{
"n": "7.9",
"t": "Electrical Motor Testing",
"code": "W",
"cust": "R/AU",
"crit": "IR, winding resistance and rotation within NEMA MG-1/NETA ATS limits. (Motor test report)",
},
{
"n": "7.10",
"t": "Instrument loop checks",
"code": "I",
"cust": "R/AU",
"crit": "Signal proven at 0/50/100% of range; alarms and trips actuate at set "
"point per loop diagram/C&E. (Signed loop check sheets)",
},
{
"n": "7.11",
"t": "Factory Acceptance Test (FAT)",
"code": "W",
"cust": "W",
"crit": "All FAT steps pass per the approved FAT procedure; A-items cleared before "
"shipment. (API Q1 5.6.9.3 / signed FAT report)",
},
],
},
{
"n": "8",
"t": "FINAL ASSEMBLY",
"page": "FA",
"sig": True,
"items": [
{
"n": "8.1",
"t": "Equipment Assembly, Mounting and/or Alignment",
"code": "I",
"cust": "R/AU",
"crit": "Alignment within vendor/GA drawing tolerance; mounting hardware and "
"anchor bolts torqued to spec. (Alignment record)",
},
{
"n": "8.2",
"t": "Functional Testing and Reports",
"code": "O",
"cust": "R/AU",
"crit": "All functions operate per the approved functional test procedure with no "
"defects. (Functional test report)",
},
{
"n": "8.3",
"t": "Full Operation Testing and Reports (PRESSURE UP CONNECTIONS)",
"code": "O",
"cust": "R/AU",
"crit": "System holds test pressure with zero leaks at all connections per the "
"approved test procedure. (ASME B31.3 §345 / operational test report)",
},
{
"n": "8.4",
"t": "Stud Bolt & Nut Torqueing",
"code": "I",
"cust": "R/AU",
"crit": "Torqued in pattern to the specified value with a calibrated wrench. (ASME "
"PCC-1 / torque record)",
},
{
"n": "8.5",
"t": "Stud Bolt Length & Grade",
"code": "I",
"cust": "R/AU",
"crit": "Correct grade marks; minimum 2 threads past the nut. (ASME B16.5, "
"A193/A194 / bolting checklist)",
},
{
"n": "8.6",
"t": "Relief Valve(s) Set Pressure",
"code": "I",
"cust": "R/AU",
"crit": "Set pressure verified per vendor data sheet / ASME Section VIII (or API "
"526 for PRVs) on a calibrated test bench; seal/wire intact after test. "
"(PRV test/certification record)",
},
{
"n": "8.7",
"t": "Weir Nipple Installation",
"code": "O",
"cust": "R/AU",
"crit": "Weir nipple size and orientation per P&ID and vendor requirement; "
"installed per manufacturer instructions.",
},
{
"n": "8.8",
"t": "Pressure Gauge Inspection",
"code": "O",
"cust": "R/AU",
"crit": "Gauge range 25–75% of span at normal operating pressure; gauge in current "
"calibration. (ASME B40.100 / gauge list + certs)",
},
{
"n": "8.9",
"t": "Regulator(s) Set Pressure",
"code": "I",
"cust": "R/AU",
"crit": "Outlet pressure within the stated tolerance of the vendor data sheet. (Set-point record)",
},
{
"n": "8.10",
"t": "Pressure Controller(s) Set Pressure",
"code": "I",
"cust": "R/AU",
"crit": "Set point and control action per the approved instrument data sheet. (Set-point record)",
},
{
"n": "8.11",
"t": "Flow Direction of all Valves, etc.",
"code": "I",
"cust": "R/AU",
"crit": "Flow arrows and valve orientation match the approved P&ID. (P&ID walk-down checklist)",
},
{
"n": "8.12",
"t": "Gasket Specification",
"code": "I",
"cust": "R/AU",
"crit": "Gasket type, material, rating and size per spec; never reused. (ASME "
"B16.20/B16.21 / gasket verification record)",
},
{
"n": "8.13",
"t": "Valve Actuation",
"code": "O",
"cust": "R/AU",
"crit": "Full stroke, travel time and fail position per the vendor manual/C&E "
"matrix. (Valve stroke record)",
},
{
"n": "8.14",
"t": "Nonconformance Check – Final Assembly",
"code": "R",
"cust": "R/AU",
"crit": "No open QNs/NCRs from the assembly stage before release to Paint/Final "
"Inspection. (API Q1 5.9)",
},
],
},
{
"n": "9",
"t": "FINAL INSPECTION/ SHIPPING PREPARATION",
"page": "FA",
"sig": True,
"items": [
{
"n": "9.1",
"t": "Verify Tagging/Markings are complete",
"code": "I",
"cust": "R/AU",
"crit": "Everything tagged per the index; legible and permanent. (Client tagging "
"spec, UG-116 / tagging checklist)",
},
{
"n": "9.2",
"t": "Flange Face Protection",
"code": "I",
"cust": "R/AU",
"crit": "All flanges protected, threaded connections plugged; lifting points and "
"shipping restraints verified per the packing plan. (API Q1 5.6.8; PO "
"packing spec / ISO 9001 8.5.4 / preservation checklist)",
},
{
"n": "9.3",
"t": "Verify Punch List Items are complete",
"code": "I",
"cust": "R/AU",
"crit": "All A-items closed; B/C items agreed in writing with the customer. "
"(Client punch list procedure / signed punch list)",
},
{
"n": "9.4",
"t": "Packing of Ship Loose Items",
"code": "I",
"cust": "R/AU",
"crit": "Ship-loose items tagged, protected and listed on the packing list. "
"(Approved packing plan, ISPM-15 / signed packing list)",
},
{
"n": "9.5",
"t": "Final Pre-shipping Inspection",
"code": "A",
"cust": "R/AU",
"crit": "Every ITP line signed off; no open holds or QNs. (API Q1 5.6.9.3, 5.7 / "
"final inspection report)",
},
{
"n": "9.6",
"t": "RELEASE TO SHIP (RTS)",
"code": "A",
"cust": "H",
"crit": "Written release issued by PESCO QA and the client; QN register closed "
"with all concessions customer-approved before shipment. (API Q1 5.7, 5.9 "
"/ ISO 9001 8.6, 8.7 / signed RTS certificate)",
},
{
"n": "9.7",
"t": "DATABOOK SIGNED OFF BY QA",
"code": "R",
"cust": "H",
"crit": "Data book complete and indexed per PO requirements. (API Q1 4.5 / ISO "
"9001 7.5.3 / signed data book)",
},
],
"final": True,
},
],
}