diff --git a/database/mssql/scripts/sampledata/dbo.ORBC_POWER_UNIT.Table.sql b/database/mssql/scripts/sampledata/dbo.ORBC_POWER_UNIT.Table.sql
index 9fde581d5..31659ae59 100644
--- a/database/mssql/scripts/sampledata/dbo.ORBC_POWER_UNIT.Table.sql
+++ b/database/mssql/scripts/sampledata/dbo.ORBC_POWER_UNIT.Table.sql
@@ -103,7 +103,8 @@ INSERT [dbo].[ORBC_POWER_UNIT] ([POWER_UNIT_ID], [UNIT_NUMBER], [PLATE], [PROVIN
INSERT [dbo].[ORBC_POWER_UNIT] ([POWER_UNIT_ID], [UNIT_NUMBER], [PLATE], [PROVINCE_TYPE], [YEAR], [MAKE], [VIN], [LICENSED_GVW], [POWER_UNIT_TYPE], [STEER_AXLE_TIRE_SIZE], [CONCURRENCY_CONTROL_NUMBER], [DB_CREATE_USERID], [DB_CREATE_TIMESTAMP], [DB_LAST_UPDATE_USERID], [DB_LAST_UPDATE_TIMESTAMP], [COMPANY_ID]) VALUES (99, N'9', N'F7XC0M', N'CA-BC', 2020, N'Freightliner', N'713995', CAST(18917.00 AS Numeric(18, 2)), N'CONCRET', 711, NULL, N'dbo', GETUTCDATE(), N'dbo', GETUTCDATE(), 99)
INSERT [dbo].[ORBC_POWER_UNIT] ([POWER_UNIT_ID], [UNIT_NUMBER], [PLATE], [PROVINCE_TYPE], [YEAR], [MAKE], [VIN], [LICENSED_GVW], [POWER_UNIT_TYPE], [STEER_AXLE_TIRE_SIZE], [CONCURRENCY_CONTROL_NUMBER], [DB_CREATE_USERID], [DB_CREATE_TIMESTAMP], [DB_LAST_UPDATE_USERID], [DB_LAST_UPDATE_TIMESTAMP], [COMPANY_ID]) VALUES (100, N'9', N'VCUDWK', N'CA-BC', 2014, N'Hyundai', N'925292', CAST(4989.00 AS Numeric(18, 2)), N'TRKTRAC', 325, NULL, N'dbo', GETUTCDATE(), N'dbo', GETUTCDATE(), 100)
-
+INSERT [dbo].[ORBC_POWER_UNIT] ([POWER_UNIT_ID], [UNIT_NUMBER], [PLATE], [PROVINCE_TYPE], [YEAR], [MAKE], [VIN], [LICENSED_GVW], [POWER_UNIT_TYPE], [STEER_AXLE_TIRE_SIZE], [CONCURRENCY_CONTROL_NUMBER], [DB_CREATE_USERID], [DB_CREATE_TIMESTAMP], [DB_LAST_UPDATE_USERID], [DB_LAST_UPDATE_TIMESTAMP], [COMPANY_ID]) VALUES (101, N'LCV1', N'TTH199', N'CA-BC', 2020, N'Western Star', N'657854', CAST(20000 AS Numeric(18, 2)), N'LCVRMDB', 325, NULL, N'dbo', GETUTCDATE(), N'dbo', GETUTCDATE(), 74)
+INSERT [dbo].[ORBC_POWER_UNIT] ([POWER_UNIT_ID], [UNIT_NUMBER], [PLATE], [PROVINCE_TYPE], [YEAR], [MAKE], [VIN], [LICENSED_GVW], [POWER_UNIT_TYPE], [STEER_AXLE_TIRE_SIZE], [CONCURRENCY_CONTROL_NUMBER], [DB_CREATE_USERID], [DB_CREATE_TIMESTAMP], [DB_LAST_UPDATE_USERID], [DB_LAST_UPDATE_TIMESTAMP], [COMPANY_ID]) VALUES (102, N'LCV2', N'HIU499', N'CA-BC', 2022, N'Kenworth', N'199876', CAST(22000 AS Numeric(18, 2)), N'LCVTPDB', 431, NULL, N'dbo', GETUTCDATE(), N'dbo', GETUTCDATE(), 74)
SET IDENTITY_INSERT [dbo].[ORBC_POWER_UNIT] OFF
GO
diff --git a/database/mssql/scripts/sampledata/permit.ORBC_SPECIAL_AUTH.Table.sql b/database/mssql/scripts/sampledata/permit.ORBC_SPECIAL_AUTH.Table.sql
new file mode 100644
index 000000000..b986e1bff
--- /dev/null
+++ b/database/mssql/scripts/sampledata/permit.ORBC_SPECIAL_AUTH.Table.sql
@@ -0,0 +1,5 @@
+SET NOCOUNT ON
+GO
+
+INSERT INTO permit.ORBC_SPECIAL_AUTH (COMPANY_ID, LCV) VALUES (74, 'Y')
+GO
\ No newline at end of file
diff --git a/database/mssql/scripts/utility/refresh-sample-data.sh b/database/mssql/scripts/utility/refresh-sample-data.sh
index c16e10e9d..bcafd9498 100644
--- a/database/mssql/scripts/utility/refresh-sample-data.sh
+++ b/database/mssql/scripts/utility/refresh-sample-data.sh
@@ -6,6 +6,7 @@ USAGE="-u ORBC_USER -p ORBC_PASS -s ORBC_SERVER -d ORBC_DATABASE"
parse_options "${USAGE}" ${@}
echo "Deleting existing sample data"
+sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -Q "SET QUOTED_IDENTIFIER ON; SET NOCOUNT ON; DELETE FROM permit.ORBC_SPECIAL_AUTH"
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -Q "SET QUOTED_IDENTIFIER ON; SET NOCOUNT ON; DELETE FROM dbo.ORBC_FEATURE_FLAG"
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -Q "SET QUOTED_IDENTIFIER ON; SET NOCOUNT ON; DELETE FROM dbo.ORBC_TRAILER"
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -Q "SET QUOTED_IDENTIFIER ON; SET NOCOUNT ON; DELETE FROM dbo.ORBC_POWER_UNIT"
@@ -25,6 +26,7 @@ sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -i ${SCRIPT_DIR}/sampledata/dbo.ORBC_POWER_UNIT.Table.sql
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -i ${SCRIPT_DIR}/sampledata/dbo.ORBC_TRAILER.Table.sql
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -i ${SCRIPT_DIR}/sampledata/dbo.ORBC_FEATURE_FLAG.Table.sql
+sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -i ${SCRIPT_DIR}/sampledata/permit.ORBC_SPECIAL_AUTH.Table.sql
echo "Setting credit account sequence restart to current timestamp (used only for lower environments)"
sqlcmd -C -U ${ORBC_USER} -P "${ORBC_PASS}" -S ${ORBC_SERVER} -d ${ORBC_DATABASE} -i ${SCRIPT_DIR}/sampledata/permit.ORBC_CREDIT_ACCOUNT_NUMBER_SEQ.sql
diff --git a/database/mssql/scripts/versions/revert/v_55_ddl_revert.sql b/database/mssql/scripts/versions/revert/v_55_ddl_revert.sql
new file mode 100644
index 000000000..2d9e08c79
--- /dev/null
+++ b/database/mssql/scripts/versions/revert/v_55_ddl_revert.sql
@@ -0,0 +1,43 @@
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+SET NOCOUNT ON
+GO
+SET XACT_ABORT ON
+GO
+SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
+GO
+BEGIN TRANSACTION
+GO
+
+-- Remove the newly added policy configuration
+DELETE FROM [dbo].[ORBC_POLICY_CONFIGURATION]
+WHERE POLICY_CONFIGURATION_ID = (SELECT MAX(POLICY_CONFIGURATION_ID) FROM [dbo].[ORBC_POLICY_CONFIGURATION])
+GO
+
+IF @@ERROR <> 0 SET NOEXEC ON
+GO
+
+DECLARE @VersionDescription VARCHAR(255)
+SET @VersionDescription = 'Reverting updates to policy configuration JSON allowing lcv vehicles for TROS and TROW'
+
+INSERT [dbo].[ORBC_SYS_VERSION] ([VERSION_ID], [DESCRIPTION], [RELEASE_DATE]) VALUES (54, @VersionDescription, getutcdate())
+GO
+
+IF @@ERROR <> 0 SET NOEXEC ON
+GO
+
+COMMIT TRANSACTION
+GO
+IF @@ERROR <> 0 SET NOEXEC ON
+GO
+DECLARE @Success AS BIT
+SET @Success = 1
+SET NOEXEC OFF
+IF (@Success = 1) PRINT 'The database revert succeeded'
+ELSE BEGIN
+ IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
+ PRINT 'The database revert failed'
+END
+GO
\ No newline at end of file
diff --git a/database/mssql/scripts/versions/v_55_ddl.sql b/database/mssql/scripts/versions/v_55_ddl.sql
new file mode 100644
index 000000000..6a77539e4
--- /dev/null
+++ b/database/mssql/scripts/versions/v_55_ddl.sql
@@ -0,0 +1,48 @@
+SET ANSI_NULLS ON
+GO
+SET QUOTED_IDENTIFIER ON
+GO
+SET NOCOUNT ON
+GO
+SET XACT_ABORT ON
+GO
+SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
+GO
+BEGIN TRANSACTION
+GO
+
+-- Insert updated configuration for LCV
+INSERT [dbo].[ORBC_POLICY_CONFIGURATION] (
+ EFFECTIVE_DATE,
+ IS_DRAFT,
+ CHANGE_DESCRIPTION,
+ ORIGIN_ID,
+ POLICY_JSON)
+VALUES (
+ CAST('2025-01-07T00:00:00' AS DATETIME),
+ 'N',
+ N'Allow lcv vehicles for term permits',
+ NULL,
+ N'{"minPEVersion":"1.1.0","geographicRegions":[{"id":"LMN","name":"Lower Mainland"},{"id":"KTN","name":"Kootenay"},{"id":"PCE","name":"Peace"}],"rangeMatrices":[{"id":"annualFeeCV","name":"Annual licensing fee for commercial vehicle","matrix":[{"min":0,"max":500,"value":42},{"min":501,"max":1000,"value":49},{"min":1001,"max":1500,"value":60},{"min":1501,"max":2000,"value":74},{"min":2001,"max":2500,"value":85},{"min":2501,"max":3000,"value":97},{"min":3001,"max":3500,"value":108},{"min":3501,"max":4000,"value":127},{"min":4001,"max":4500,"value":147},{"min":4501,"max":5000,"value":173},{"min":5001,"max":5500,"value":193},{"min":5501,"max":6000,"value":213},{"min":6001,"max":6500,"value":230},{"min":6501,"max":7000,"value":250},{"min":7001,"max":7500,"value":266},{"min":7501,"max":8000,"value":292},{"min":8001,"max":8500,"value":320},{"min":8501,"max":9000,"value":347},{"min":9001,"max":9500,"value":376},{"min":9501,"max":10000,"value":395},{"min":10001,"max":10500,"value":416},{"min":10501,"max":11000,"value":437},{"min":11001,"max":11500,"value":450},{"min":11501,"max":12000,"value":469},{"min":12001,"max":12500,"value":493},{"min":12501,"max":13000,"value":507},{"min":13001,"max":13500,"value":532},{"min":13501,"max":14000,"value":559},{"min":14001,"max":14500,"value":586},{"min":14501,"max":15000,"value":613},{"min":15001,"max":15500,"value":645},{"min":15501,"max":16000,"value":687},{"min":16001,"max":16500,"value":729},{"min":16501,"max":17000,"value":769},{"min":17001,"max":17500,"value":814},{"min":17501,"max":18000,"value":846},{"min":18001,"max":18500,"value":870},{"min":18501,"max":19000,"value":899},{"min":19001,"max":19500,"value":927},{"min":19501,"max":20000,"value":954},{"min":20001,"max":20500,"value":987},{"min":20501,"max":21000,"value":1014},{"min":21001,"max":21500,"value":1041},{"min":21501,"max":22000,"value":1068},{"min":22001,"max":22500,"value":1095},{"min":22501,"max":23000,"value":1123},{"min":23001,"max":23500,"value":1152},{"min":23501,"max":24000,"value":1182},{"min":24001,"max":24500,"value":1212},{"min":24501,"max":25000,"value":1252},{"min":25001,"max":25500,"value":1298},{"min":25501,"max":26000,"value":1340},{"min":26001,"max":26500,"value":1381},{"min":26501,"max":27000,"value":1410},{"min":27001,"max":27500,"value":1439},{"min":27501,"max":28000,"value":1465},{"min":28001,"max":28500,"value":1495},{"min":28501,"max":29000,"value":1521},{"min":29001,"max":29500,"value":1550},{"min":29501,"max":30000,"value":1581},{"min":30001,"max":31000,"value":1608},{"min":31001,"max":32000,"value":1661},{"min":32001,"max":33000,"value":1714},{"min":33001,"max":34000,"value":1769},{"min":34001,"max":35000,"value":1824},{"min":35001,"max":36000,"value":1910},{"min":36001,"max":37000,"value":2039},{"min":37001,"max":38000,"value":2110},{"min":38001,"max":39000,"value":2182},{"min":39001,"max":40000,"value":2252},{"min":40001,"max":41000,"value":2324},{"min":41001,"max":42000,"value":2398},{"min":42001,"max":43000,"value":2471},{"min":43001,"max":44000,"value":2540},{"min":44001,"max":45000,"value":2612},{"min":45001,"max":46000,"value":2718},{"min":46001,"max":47000,"value":2828},{"min":47001,"max":48000,"value":2901},{"min":48001,"max":49000,"value":2971},{"min":49001,"max":50000,"value":3044},{"min":50001,"max":51000,"value":3093},{"min":51001,"max":52000,"value":3160},{"min":52001,"max":53000,"value":3226},{"min":53001,"max":54000,"value":3291},{"min":54001,"max":55000,"value":3357},{"min":55001,"max":56000,"value":3423},{"min":56001,"max":57000,"value":3488},{"min":57001,"max":58000,"value":3553},{"min":58001,"max":59000,"value":3619},{"min":59001,"max":60000,"value":3685},{"min":60001,"max":61000,"value":3749},{"min":61001,"max":62000,"value":3815},{"min":62001,"max":63000,"value":3880},{"min":63001,"max":63500,"value":3946}]},{"id":"annualFeePassenger","name":"Annual licensing fee for commercial passenger vehicle","matrix":[{"min":0,"max":500,"value":40},{"min":501,"max":1000,"value":47},{"min":1001,"max":1500,"value":57},{"min":1501,"max":2000,"value":70},{"min":2001,"max":2500,"value":81},{"min":2501,"max":3000,"value":92},{"min":3001,"max":3500,"value":103},{"min":3501,"max":4000,"value":121},{"min":4001,"max":4500,"value":140},{"min":4501,"max":5000,"value":165},{"min":5001,"max":5500,"value":184},{"min":5501,"max":6000,"value":203},{"min":6001,"max":6500,"value":219},{"min":6501,"max":7000,"value":238},{"min":7001,"max":7500,"value":253},{"min":7501,"max":8000,"value":278},{"min":8001,"max":8500,"value":305},{"min":8501,"max":9000,"value":330},{"min":9001,"max":9500,"value":358},{"min":9501,"max":10000,"value":376},{"min":10001,"max":10500,"value":396},{"min":10501,"max":11000,"value":416},{"min":11001,"max":11500,"value":429},{"min":11501,"max":12000,"value":447},{"min":12001,"max":12500,"value":465},{"min":12501,"max":13000,"value":478},{"min":13001,"max":13500,"value":501},{"min":13501,"max":14000,"value":527},{"min":14001,"max":14500,"value":552},{"min":14501,"max":15000,"value":578},{"min":15001,"max":15500,"value":608},{"min":15501,"max":16000,"value":648},{"min":16001,"max":16500,"value":687},{"min":16501,"max":17000,"value":725},{"min":17001,"max":17500,"value":768},{"min":17501,"max":18000,"value":797},{"min":18001,"max":18500,"value":820},{"min":18501,"max":19000,"value":848},{"min":19001,"max":19500,"value":873},{"min":19501,"max":20000,"value":899},{"min":20001,"max":20500,"value":930},{"min":20501,"max":21000,"value":955},{"min":21001,"max":21500,"value":981},{"min":21501,"max":22000,"value":1007},{"min":22001,"max":22500,"value":1032},{"min":22501,"max":23000,"value":1058},{"min":23001,"max":23500,"value":1086},{"min":23501,"max":24000,"value":1114},{"min":24001,"max":24500,"value":1142},{"min":24501,"max":25000,"value":1180},{"min":25001,"max":25500,"value":1224},{"min":25501,"max":26000,"value":1263},{"min":26001,"max":26500,"value":1302},{"min":26501,"max":27000,"value":1329},{"min":27001,"max":27500,"value":1356},{"min":27501,"max":28000,"value":1381},{"min":28001,"max":28500,"value":1409},{"min":28501,"max":29000,"value":1433},{"min":29001,"max":29500,"value":1461},{"min":29501,"max":30000,"value":1490},{"min":30001,"max":31000,"value":1516},{"min":31001,"max":32000,"value":1569},{"min":32001,"max":33000,"value":1621},{"min":33001,"max":34000,"value":1676},{"min":34001,"max":35000,"value":1730},{"min":35001,"max":36000,"value":1815},{"min":36001,"max":37000,"value":1943},{"min":37001,"max":38000,"value":2013},{"min":38001,"max":39000,"value":2084},{"min":39001,"max":40000,"value":2154},{"min":40001,"max":41000,"value":2225},{"min":41001,"max":42000,"value":2298},{"min":42001,"max":43000,"value":2370},{"min":43001,"max":44000,"value":2439},{"min":44001,"max":45000,"value":2510},{"min":45001,"max":46000,"value":2615},{"min":46001,"max":47000,"value":2724},{"min":47001,"max":48000,"value":2796},{"min":48001,"max":49000,"value":2865},{"min":49001,"max":50000,"value":2937},{"min":50001,"max":51000,"value":2986},{"min":51001,"max":52000,"value":3052},{"min":52001,"max":53000,"value":3117},{"min":53001,"max":54000,"value":3182},{"min":54001,"max":55000,"value":3247},{"min":55001,"max":56000,"value":3312},{"min":56001,"max":57000,"value":3377},{"min":57001,"max":58000,"value":3441},{"min":58001,"max":59000,"value":3506},{"min":59001,"max":60000,"value":3572},{"min":60001,"max":61000,"value":3635},{"min":61001,"max":62000,"value":3700},{"min":62001,"max":63000,"value":3765},{"min":63001,"max":63500,"value":3830}]},{"id":"annualFeeIndustrial","name":"Annual licensing fee for an industrial machine","matrix":[{"min":0,"max":2000,"value":45},{"min":2001,"max":5000,"value":69},{"min":5001,"max":7000,"value":110},{"min":7001,"max":9000,"value":164},{"min":9001,"max":11000,"value":216},{"min":11001,"value":260}]},{"id":"annualFeeFarm","name":"Annual licensing fee for farm vehicle","matrix":[{"min":0,"max":500,"value":30},{"min":501,"max":1000,"value":40},{"min":1001,"max":1500,"value":47},{"min":1501,"max":2000,"value":55},{"min":2001,"max":2500,"value":77},{"min":2501,"max":3000,"value":101},{"min":3001,"max":3500,"value":142},{"min":3501,"max":4000,"value":181},{"min":4001,"max":4500,"value":207},{"min":4501,"max":5000,"value":243},{"min":5001,"max":5500,"value":278},{"min":5501,"max":6000,"value":322},{"min":6001,"max":6500,"value":355},{"min":6501,"max":7000,"value":396},{"min":7001,"max":7500,"value":427},{"min":7501,"max":8000,"value":473},{"min":8001,"max":8500,"value":524},{"min":8501,"max":9000,"value":558},{"min":9001,"max":9500,"value":596},{"min":9501,"max":10000,"value":633},{"min":10001,"max":10500,"value":669},{"min":10501,"max":11000,"value":711},{"min":11001,"max":11500,"value":744},{"min":11501,"max":12000,"value":784},{"min":12001,"max":12500,"value":824},{"min":12501,"max":13000,"value":863},{"min":13001,"max":13500,"value":883},{"min":13501,"max":14000,"value":899},{"min":14001,"max":14500,"value":919},{"min":14501,"max":15000,"value":940},{"min":15001,"max":15500,"value":960},{"min":15501,"max":16000,"value":979},{"min":16001,"max":16500,"value":997},{"min":16501,"max":17000,"value":1017},{"min":17001,"max":17500,"value":1036},{"min":17501,"max":18000,"value":1056},{"min":18001,"max":18500,"value":1076},{"min":18501,"max":19000,"value":1096},{"min":19001,"max":19500,"value":1114},{"min":19501,"max":20000,"value":1134},{"min":20001,"max":20500,"value":1154},{"min":20501,"max":21000,"value":1174},{"min":21001,"max":21500,"value":1192},{"min":21501,"max":22000,"value":1211},{"min":22001,"max":22500,"value":1231},{"min":22501,"max":23000,"value":1251},{"min":23001,"max":23500,"value":1270},{"min":23501,"max":24000,"value":1289},{"min":24001,"max":24400,"value":1309}]}],"bridgeCalculationConstants":{"minWeight":18000,"multiplier":30},"commonRules":[{"conditions":{"not":{"fact":"permitData","path":"companyName","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Company is required","code":"field-validation-error","fieldReference":"permitData.companyName"}}},{"conditions":{"not":{"fact":"permitData","path":"contactDetails.firstName","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Contact first name is required","code":"field-validation-error","fieldReference":"permitData.contactDetails.firstName"}}},{"conditions":{"not":{"fact":"permitData","path":"contactDetails.lastName","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Contact last name is required","code":"field-validation-error","fieldReference":"permitData.contactDetails.lastName"}}},{"conditions":{"not":{"fact":"permitData","path":"contactDetails.phone1","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Contact phone number is required","code":"field-validation-error","fieldReference":"permitData.contactDetails.phone1"}}},{"conditions":{"not":{"fact":"permitData","path":"contactDetails.email","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Company contact email is required","code":"field-validation-error","fieldReference":"permitData.contactDetails.email"}}},{"conditions":{"any":[{"fact":"permitData","path":"$.startDate","operator":"dateLessThan","value":{"fact":"validationDate"}}]},"event":{"type":"violation","params":{"message":"Permit start date cannot be in the past","code":"field-validation-error","fieldReference":"permitData.startDate"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vin","operator":"regex","value":"^[a-zA-Z0-9]{6}$"}},"event":{"type":"violation","params":{"message":"Vehicle Identification Number (vin) must be 6 alphanumeric characters","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vin"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.plate","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Vehicle plate is required","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.plate"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.make","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Vehicle make is required","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.make"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.year","operator":"greaterThan","value":1900}},"event":{"type":"violation","params":{"message":"Vehicle year is required","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.year"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.countryCode","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Vehicle country of registration is required","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.countryCode"}}}],"permitTypes":[{"id":"TROS","name":"Term Oversize","routingRequired":false,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["BOOSTER","DOLLIES","EXPANDO","FEBGHSE","FECVYER","FEDRMMX","FEPNYTR","FESEMTR","FEWHELR","FLOATTR","FULLLTL","HIBOEXP","HIBOFLT","JEEPSRG","LCVTPDB","LCVRMDB","LOGDGLG","LOGFULL","LOGNTAC","LOGOWBK","LOGSMEM","LOGTNDM","LOGTRIX","ODTRLEX","OGOSFDT","PLATFRM","POLETRL","PONYTRL","REDIMIX","SEMITRL","STBTRAN","STCHIPS","STCRANE","STINGAT","STLOGNG","STNTSHC","STREEFR","STSDBDK","STSTNGR","STWHELR","STWIDWH","BUSTRLR","CONCRET","DDCKBUS","GRADERS","LOGGING","LOGOFFH","LWBTRCT","OGBEDTK","OGOILSW","PICKRTT","PLOWBLD","REGTRCK","STINGER","TOWVEHC","TRKTRAC"],"rules":[{"conditions":{"all":[{"not":{"fact":"permitData","path":"permitDuration","operator":"in","value":[30,60,90,120,150,180,210,240,270,300,330]}},{"not":{"fact":"permitData","path":"permitDuration","operator":"equal","value":{"fact":"daysInPermitYear"}}}]},"event":{"type":"violation","params":{"message":"Duration must be in 30 day increments or a full year","code":"field-validation-error","fieldReference":"permitData.permitDuration"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}}],"costRules":[{"fact":"costPerMonth","params":{"cost":30}}]},{"id":"TROW","name":"Term Overweight","routingRequired":false,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["DOLLIES","FEBGHSE","FECVYER","FEDRMMX","FEPNYTR","FESEMTR","FEWHELR","REDIMIX","CONCRET","CRAFTAT","CRAFTMB","GRADERS","LCVTPDB","LCVRMDB","MUNFITR","OGOILSW","OGSERVC","OGSRRAH","PICKRTT","TOWVEHC"],"rules":[{"conditions":{"all":[{"not":{"fact":"permitData","path":"permitDuration","operator":"in","value":[30,60,90,120,150,180,210,240,270,300,330]}},{"not":{"fact":"permitData","path":"permitDuration","operator":"equal","value":{"fact":"daysInPermitYear"}}}]},"event":{"type":"violation","params":{"message":"Duration must be in 30 day increments or a full year","code":"field-validation-error","fieldReference":"permitData.permitDuration"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}}],"costRules":[{"fact":"costPerMonth","params":{"cost":100}}]},{"id":"STOS","name":"Single Trip Oversize","routingRequired":true,"weightDimensionRequired":false,"sizeDimensionRequired":true,"commodityRequired":true,"rules":[{"conditions":{"any":[{"not":{"fact":"permitData","path":"permitDuration","operator":"lessThanInclusive","value":7}},{"not":{"fact":"permitData","path":"permitDuration","operator":"greaterThan","value":0}}]},"event":{"type":"violation","params":{"message":"Duration must be 7 days or less","code":"field-validation-error","fieldReference":"permitData.permitDuration"}}},{"conditions":{"not":{"fact":"configurationIsValid","operator":"equal","value":true}},"event":{"type":"violation","params":{"message":"Vehicle configuration is not permittable for this commodity","code":"field-validation-error","fieldReference":"permitData.vehicleConfiguration.trailers"}}},{"conditions":{"not":{"fact":"permitData","path":"permittedCommodity.loadDescription","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Commodity load description is required","code":"field-validation-error","fieldReference":"permitData.permittedCommodity.loadDescription"}}}],"costRules":[{"fact":"fixedCost","params":{"cost":15}}]},{"id":"STFR","name":"Single Trip ICBC Basic Insurance (FR)","routingRequired":false,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["BUSCRUM","BUSTRLR","CONCRET","CRAFTAT","CRAFTMB","DDCKBUS","FARMVEH","GRADERS","LCVRMDB","LCVTPDB","LOGGING","LOGOFFH","LWBTRCT","MUNFITR","OGBEDTK","OGOILSW","OGSERVC","OGSRRAH","PICKRTT","PLOWBLD","PUTAXIS","REGTRCK","SCRAPER","SPAUTHV","STINGER","TOWVEHC","TRKTRAC"],"rules":[{"conditions":{"any":[{"not":{"fact":"permitData","path":"permitDuration","operator":"lessThanInclusive","value":30}},{"not":{"fact":"permitData","path":"permitDuration","operator":"greaterThan","value":0}}]},"event":{"type":"violation","params":{"message":"Duration must be 30 days or less","code":"field-validation-error","fieldReference":"permitData.permitDuration"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.licensedGVW","operator":"greaterThan","value":0}},"event":{"type":"violation","params":{"message":"Licensed GVW must be greater than zero","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.licensedGVW","operator":"greaterThan","value":63500}]},"event":{"type":"violation","params":{"message":"Licensed GVW may not exceed 63,500 kg","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.countryCode","operator":"equal","value":"CA"},{"fact":"permitData","path":"vehicleDetails.provinceCode","operator":"equal","value":"BC"}]},"event":{"type":"violation","params":{"message":"BC plated vehicles do not require this permit","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.provinceCode"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}},{"conditions":{"not":{"fact":"permitData","path":"thirdPartyLiability","operator":"in","value":["GENERAL_GOODS","DANGEROUS_GOODS"]}},"event":{"type":"violation","params":{"message":"Third party liability is invalid","code":"field-validation-error","fieldReference":"permitData.thirdPartyLiability"}}}],"costRules":[{"fact":"fixedCost","params":{"cost":84}},{"fact":"conditionalFixedCost","params":{"cost":5,"fact":"thirdPartyLiability","value":"DANGEROUS_GOODS"}}]},{"id":"QRFR","name":"Quarterly ICBC Basic Insurance (FR)","routingRequired":false,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["BUSCRUM","BUSTRLR","CONCRET","CRAFTAT","CRAFTMB","DDCKBUS","FARMVEH","GRADERS","LCVRMDB","LCVTPDB","LOGGING","LOGOFFH","LWBTRCT","MUNFITR","OGBEDTK","OGOILSW","OGSERVC","OGSRRAH","PICKRTT","PLOWBLD","PUTAXIS","REGTRCK","SCRAPER","SPAUTHV","STINGER","TOWVEHC","TRKTRAC"],"rules":[{"conditions":{"not":{"fact":"permitData","path":"expiryDate","operator":"equal","value":{"fact":"endOfPermitQuarter"}}},"event":{"type":"violation","params":{"message":"Permit end date must be the end of the quarter in which the permit starts","code":"field-validation-error","fieldReference":"permitData.expiryDate"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.licensedGVW","operator":"greaterThan","value":0}},"event":{"type":"violation","params":{"message":"Licensed GVW must be greater than zero","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.licensedGVW","operator":"greaterThan","value":63500}]},"event":{"type":"violation","params":{"message":"Licensed GVW may not exceed 63,500 kg","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.countryCode","operator":"equal","value":"CA"},{"fact":"permitData","path":"vehicleDetails.provinceCode","operator":"equal","value":"BC"}]},"event":{"type":"violation","params":{"message":"BC plated vehicles do not require this permit","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.provinceCode"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}},{"conditions":{"not":{"fact":"permitData","operator":"in","value":["GENERAL_GOODS","DANGEROUS_GOODS"],"path":"thirdPartyLiability"}},"event":{"type":"violation","params":{"message":"Third party liability is invalid","code":"field-validation-error","fieldReference":"permitData.thirdPartyLiability"}}}],"costRules":[{"fact":"fixedCost","params":{"cost":843}},{"fact":"conditionalFixedCost","params":{"cost":56,"fact":"thirdPartyLiability","value":"DANGEROUS_GOODS"}}]},{"id":"MFP","name":"Motive Fuel User Permit","routingRequired":true,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["BUSCRUM","BUSTRLR","CONCRET","CRAFTAT","CRAFTMB","DDCKBUS","GRADERS","LCVRMDB","LCVTPDB","LOGGING","LOGOFFH","LWBTRCT","OGBEDTK","OGOILSW","OGSERVC","OGSRRAH","PICKRTT","PLOWBLD","REGTRCK","SCRAPER","SPAUTHV","STINGER","TOWVEHC","TRKTRAC"],"rules":[{"conditions":{"any":[{"not":{"fact":"permitData","path":"permitDuration","operator":"lessThanInclusive","value":7}},{"not":{"fact":"permitData","path":"permitDuration","operator":"greaterThan","value":0}}]},"event":{"type":"violation","params":{"message":"Duration must be 7 days or less","code":"field-validation-error","fieldReference":"permitData.permitDuration"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.licensedGVW","operator":"greaterThan","value":0}},"event":{"type":"violation","params":{"message":"Licensed GVW must be greater than zero","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.licensedGVW","operator":"greaterThan","value":63500}]},"event":{"type":"violation","params":{"message":"Licensed GVW may not exceed 63,500 kg","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}},{"conditions":{"not":{"fact":"permitData","path":"permittedRoute.manualRoute.origin","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Route origin is required","code":"field-validation-error","fieldReference":"permitData.permittedRoute.manualRoute.origin"}}},{"conditions":{"not":{"fact":"permitData","path":"permittedRoute.manualRoute.destination","operator":"stringMinimumLength","value":1}},"event":{"type":"violation","params":{"message":"Route destination is required","code":"field-validation-error","fieldReference":"permitData.permittedRoute.manualRoute.origin"}}},{"conditions":{"not":{"fact":"permitData","path":"permittedRoute.manualRoute.totalDistance","operator":"greaterThan","value":0}},"event":{"type":"violation","params":{"message":"Trip distance must be greater than zero","code":"field-validation-error","fieldReference":"permitData.permittedRoute.manualRoute.totalDistance"}}}],"costRules":[{"fact":"costPerKilometre","params":{"cost":0.11,"minValue":20}}]},{"id":"NRSCV","name":"Non-Resident Single Trip","routingRequired":false,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["BUSCRUM","BUSTRLR","CONCRET","CRAFTAT","CRAFTMB","DDCKBUS","FARMVEH","GRADERS","LCVRMDB","LCVTPDB","LOGGING","LOGOFFH","LWBTRCT","MUNFITR","OGBEDTK","OGOILSW","OGSERVC","OGSRRAH","PICKRTT","PLOWBLD","PUTAXIS","REGTRCK","SCRAPER","SPAUTHV","STINGER","TOWVEHC","TRKTRAC"],"rules":[{"conditions":{"any":[{"not":{"fact":"permitData","path":"permitDuration","operator":"lessThanInclusive","value":30}},{"not":{"fact":"permitData","path":"permitDuration","operator":"greaterThan","value":0}}]},"event":{"type":"violation","params":{"message":"Duration must be 30 days or less","code":"field-validation-error","fieldReference":"permitData.permitDuration"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleConfiguration.loadedGVW","operator":"greaterThan","value":0}},"event":{"type":"violation","params":{"message":"Loaded GVW must be greater than zero","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"any":[{"fact":"permitData","path":"vehicleConfiguration.loadedGVW","operator":"greaterThan","value":63500},{"all":[{"fact":"permitData","path":"vehicleConfiguration.loadedGVW","operator":"greaterThan","value":24400},{"fact":"permitData","path":"conditionalLicensingFee","operator":"equal","value":"farm"}]}]},"event":{"type":"violation","params":{"message":"Loaded GVW may not exceed 63,500 kg, or 24,400 for a farm vehicle","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.countryCode","operator":"equal","value":"CA"},{"fact":"permitData","path":"vehicleDetails.provinceCode","operator":"equal","value":"BC"}]},"event":{"type":"violation","params":{"message":"BC plated vehicles do not require this permit","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.provinceCode"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}},{"conditions":{"not":{"fact":"permitData","path":"conditionalLicensingFee","operator":"in","value":["none","conditional","x-plated","farm"]}},"event":{"type":"violation","params":{"message":"Conditional licensing selection is invalid","code":"field-validation-error","fieldReference":"permitData.conditionalLicensingFee"}}}],"costRules":[{"fact":"conditionalFixedCost","params":{"cost":1,"fact":"conditionalLicensingFee","value":"conditional"}},{"fact":"rangeMatrixCostLookup","params":{"divisor":12,"matrixMap":[{"key":"none","value":"annualFeeCV"},{"key":"x-plated","value":"annualFeeIndustrial"},{"key":"farm","value":"annualFeeFarm"}],"rangeLookupKey":"conditionalLicensingFee","matrixFactValue":"vehicleConfiguration.loadedGVW"}}]},{"id":"NRQCV","name":"Non-Resident Quarterly","routingRequired":false,"weightDimensionRequired":false,"sizeDimensionRequired":false,"commodityRequired":false,"allowedVehicles":["BUSCRUM","BUSTRLR","CONCRET","CRAFTAT","CRAFTMB","DDCKBUS","FARMVEH","GRADERS","LCVRMDB","LCVTPDB","LOGGING","LOGOFFH","LWBTRCT","MUNFITR","OGBEDTK","OGOILSW","OGSERVC","OGSRRAH","PICKRTT","PLOWBLD","PUTAXIS","REGTRCK","SCRAPER","SPAUTHV","STINGER","TOWVEHC","TRKTRAC"],"rules":[{"conditions":{"not":{"fact":"permitData","path":"expiryDate","operator":"equal","value":{"fact":"endOfPermitQuarter"}}},"event":{"type":"violation","params":{"message":"Permit end date must be the end of the quarter in which the permit starts","code":"field-validation-error","fieldReference":"permitData.expiryDate"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleConfiguration.loadedGVW","operator":"greaterThan","value":0}},"event":{"type":"violation","params":{"message":"Loaded GVW must be greater than zero","code":"field-validation-error","fieldReference":"permitData.vehicleConfiguration.loadedGVW"}}},{"conditions":{"any":[{"fact":"permitData","path":"vehicleConfiguration.loadedGVW","operator":"greaterThan","value":63500},{"all":[{"fact":"permitData","path":"vehicleConfiguration.loadedGVW","operator":"greaterThan","value":24400},{"fact":"permitData","path":"conditionalLicensingFee","operator":"equal","value":"farm"}]}]},"event":{"type":"violation","params":{"message":"Loaded GVW may not exceed 63,500 kg, or 24,400 for a farm vehicle","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.licensedGVW"}}},{"conditions":{"all":[{"fact":"permitData","path":"vehicleDetails.countryCode","operator":"equal","value":"CA"},{"fact":"permitData","path":"vehicleDetails.provinceCode","operator":"equal","value":"BC"}]},"event":{"type":"violation","params":{"message":"BC plated vehicles do not require this permit","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.provinceCode"}}},{"conditions":{"not":{"fact":"permitData","path":"vehicleDetails.vehicleSubType","operator":"in","value":{"fact":"allowedVehicles"}}},"event":{"type":"violation","params":{"message":"Vehicle type not permittable for this permit type","code":"field-validation-error","fieldReference":"permitData.vehicleDetails.vehicleSubType"}}},{"conditions":{"not":{"fact":"permitData","path":"conditionalLicensingFee","operator":"in","value":["none","conditional","x-plated","farm"]}},"event":{"type":"violation","params":{"message":"Conditional licensing fee is invalid","code":"field-validation-error","fieldReference":"permitData.conditionalLicensingFee"}}}],"costRules":[{"fact":"conditionalFixedCost","params":{"cost":3,"fact":"conditionalLicensingFee","value":"conditional"}},{"fact":"rangeMatrixCostLookup","params":{"divisor":4,"matrixMap":[{"key":"none","value":"annualFeeCV"},{"key":"x-plated","value":"annualFeeIndustrial"},{"key":"farm","value":"annualFeeFarm"}],"rangeLookupKey":"conditionalLicensingFee","matrixFactValue":"vehicleConfiguration.loadedGVW"}}]}],"globalWeightDefaults":{"powerUnits":[],"trailers":[]},"vehicleCategories":{"trailerCategories":[{"id":"trailer","name":"Default trailer category"},{"id":"accessory","name":"Accessory trailer such as jeep or booster, to be used alongside other trailers. Not permittable on its own as a trailer in a combination."},{"id":"pseudo","name":"Placeholder for a trailer in a combination with no trailer (such as when a brushcutter is permitted with no trailer)."}],"powerUnitCategories":[{"id":"powerunit","name":"Default power unit category"}]},"vehicleTypes":{"powerUnitTypes":[{"id":"BUSCRUM","name":"Buses/Crummies","category":"powerunit"},{"id":"BUSTRLR","name":"Inter-City Bus (Pulling Pony Trailer)","category":"powerunit"},{"id":"CONCRET","name":"Concrete Pumper Trucks","category":"powerunit"},{"id":"CRAFTAT","name":"Cranes, Rubber-Tired Loaders, Firetrucks - All Terrain","category":"powerunit"},{"id":"CRAFTMB","name":"Cranes, Rubber-Tired Loaders, Firetrucks - Mobile","category":"powerunit"},{"id":"DDCKBUS","name":"Double Decker Buses","category":"powerunit"},{"id":"FARMVEH","name":"Farm Vehicles","category":"powerunit"},{"id":"GRADERS","name":"Fixed Equipment - Trucks/Graders etc.","category":"powerunit"},{"id":"LCVRMDB","name":"Long Combination Vehicles (LCV) - Rocky Mountain Doubles","category":"powerunit","isLcv":true},{"id":"LCVTPDB","name":"Long Combination Vehicles (LCV) - Turnpike Doubles","category":"powerunit","isLcv":true},{"id":"LOGGING","name":"Logging Trucks","category":"powerunit"},{"id":"LOGOFFH","name":"Logging Trucks - Off-Highway","category":"powerunit"},{"id":"LWBTRCT","name":"Long Wheelbase Truck Tractors Exceeding 6.2 m up to 7.25 m","category":"powerunit"},{"id":"MUNFITR","name":"Municipal Fire Trucks","category":"powerunit"},{"id":"OGBEDTK","name":"Oil and Gas - Bed Trucks","category":"powerunit"},{"id":"OGOILSW","name":"Oil and Gas - Oilfield Sows","category":"powerunit"},{"id":"OGSERVC","name":"Oil and Gas - Service Rigs","category":"powerunit"},{"id":"OGSRRAH","name":"Oil and Gas - Service Rigs and Rathole Augers Only Equipped with Heavy Front Projected Crane (must exceed 14,000 kg tare weight)","category":"powerunit"},{"id":"PICKRTT","name":"Picker Truck Tractors","category":"powerunit"},{"id":"PLOWBLD","name":"Trucks Equipped with Front or Underbody Plow Blades","category":"powerunit"},{"id":"PUTAXIS","name":"Taxis","category":"powerunit"},{"id":"REGTRCK","name":"Trucks","category":"powerunit"},{"id":"SCRAPER","name":"Scrapers","category":"powerunit"},{"id":"SPAUTHV","name":"Specially Authorized Vehicles","category":"powerunit"},{"id":"STINGER","name":"Truck Tractors - Stinger Steered","category":"powerunit"},{"id":"TOWVEHC","name":"Tow Vehicles","category":"powerunit"},{"id":"TRKTRAC","name":"Truck Tractors","category":"powerunit"}],"trailerTypes":[{"id":"BOOSTER","name":"Boosters","category":"accessory"},{"id":"DBTRBTR","name":"Tandem/Tridem Drive B-Train (Super B-Train)","category":"trailer"},{"id":"DOLLIES","name":"Dollies","category":"trailer"},{"id":"EXPANDO","name":"Expando Semi-Trailers","category":"trailer"},{"id":"FEBGHSE","name":"Fixed Equipment - Portable Asphalt Baghouses","category":"trailer"},{"id":"FECVYER","name":"Fixed Equipment - Conveyors (Semi-Trailers)","category":"trailer"},{"id":"FECVYPT","name":"Fixed Equipment - Conveyors (Pony Trailers)","category":"trailer"},{"id":"FEDRMMX","name":"Fixed Equipment - Counter Flow Asphalt Drum Mixers","category":"trailer"},{"id":"FEPNYTR","name":"Fixed Equipment - Pony Trailers","category":"trailer"},{"id":"FESEMTR","name":"Fixed Equipment - Semi-Trailers","category":"trailer"},{"id":"FEWHELR","name":"Fixed Equipment - Wheeler Semi-Trailers","category":"wheeler"},{"id":"FLOATTR","name":"Float Trailers","category":"wheeler"},{"id":"FULLLTL","name":"Full Trailers","category":"trailer"},{"id":"HIBOEXP","name":"Semi-Trailers - Hiboys/Expandos","category":"trailer"},{"id":"HIBOFLT","name":"Semi-Trailers - Hiboys/Flat Decks","category":"trailer"},{"id":"JEEPSRG","name":"Jeeps","category":"accessory"},{"id":"LOGDGLG","name":"Legacy Logging Trailer Combinations - Tandem Pole Trailers, Dogloggers","category":"trailer"},{"id":"LOGLGCY","name":"Legacy Logging Trailer Combinations","category":"trailer"},{"id":"LOGFULL","name":"Logging Trailer - Full Trailers, Tri Axle, Quad Axle","category":"trailer"},{"id":"LOGNTAC","name":"Legacy Logging Trailer Combinations - Non-TAC B-Trains","category":"trailer"},{"id":"LOGOWBK","name":"Logging Trailer - Overwidth Bunks","category":"trailer"},{"id":"LOGSMEM","name":"Logging Semi-Trailer - Empty, 3.2 m Bunks","category":"trailer"},{"id":"LOGTNDM","name":"Legacy Logging Trailer Combinations - Single Axle Jeeps, Tandem Axle Pole Trailers, Dogloggers","category":"trailer"},{"id":"LOGTRIX","name":"Legacy Logging Trailer Combinations - Single Axle Jeeps, Tri Axle Trailers","category":"trailer"},{"id":"MHMBSHG","name":"Manufactured Homes, Modular Buildings, Structures and Houseboats (> 5.0 m OAW) with Attached Axles","category":"trailer"},{"id":"MHMBSHL","name":"Manufactured Homes, Modular Buildings, Structures and Houseboats (<= 5.0 m OAW) with Attached Axles","category":"trailer"},{"id":"ODTRLEX","name":"Overdimensional Trailers and Semi-Trailers (For Export)","category":"trailer"},{"id":"OGOSFDT","name":"Oil and Gas - Oversize Oilfield Flat Deck Semi-Trailers","category":"trailer"},{"id":"PLATFRM","name":"Platform Trailers","category":"trailer"},{"id":"PMHWAAX","name":"Park Model Homes with Attached Axles","category":"trailer"},{"id":"POLETRL","name":"Pole Trailers","category":"trailer"},{"id":"PONYTRL","name":"Pony Trailers","category":"trailer"},{"id":"REDIMIX","name":"Ready Mix Concrete Pump Semi-Trailers","category":"trailer"},{"id":"SEMITRL","name":"Semi-Trailers","category":"trailer"},{"id":"STACTRN","name":"Semi-Trailers - A-Trains and C-Trains","category":"trailer"},{"id":"STBTRAN","name":"Semi-Trailers - B-Trains","category":"trailer"},{"id":"STCHIPS","name":"Semi-Trailers - Walled B-Trains (Chip Trucks)","category":"trailer"},{"id":"STCRANE","name":"Semi-Trailers with Crane","category":"trailer"},{"id":"STINGAT","name":"Stinger Steered Automobile Transporters","category":"trailer"},{"id":"STLOGNG","name":"Semi-Trailers - Logging","category":"trailer"},{"id":"STNTSHC","name":"Semi-Trailers - Non-Tac Short Chassis","category":"trailer"},{"id":"STREEFR","name":"Semi-Trailers - Insulated Vans with Reefer/Refrigeration Units","category":"trailer"},{"id":"STROPRT","name":"Steering Trailers - Manned","category":"trailer"},{"id":"STRSELF","name":"Steering Trailers - Self/Remote","category":"trailer"},{"id":"STSDBDK","name":"Semi-Trailers - Single Drop, Double Drop, Step Decks, Lowbed, Expandos, etc.","category":"trailer"},{"id":"STSTEER","name":"Semi-Trailers - Steering Trailers","category":"trailer"},{"id":"STSTNGR","name":"Semi-Trailers - Stinger Steered Automobile Transporters","category":"trailer"},{"id":"STWDTAN","name":"Semi-Trailers - Spread Tandems","category":"trailer"},{"id":"STWHELR","name":"Semi-Trailers - Wheelers","category":"trailer"},{"id":"STWIDWH","name":"Semi-Trailers - Wide Wheelers","category":"trailer"},{"id":"NONEXXX","name":"None","category":"pseudo"}]},"commodities":[{"id":"NONEXXX","name":"None","size":{"powerUnits":[{"type":"CONCRET","trailers":[{"type":"NONEXXX","jeep":false,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":15.5}]}]},{"type":"CRAFTAT","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":3.8,"h":4.3,"l":25}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":3.8,"h":4.3,"l":14,"regions":[{"region":"PCE","l":15}]}]}]},{"type":"CRAFTMB","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":3.8,"h":4.3,"l":25}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":3.8,"h":4.3,"l":14,"regions":[{"region":"PCE","l":15}]}]}]},{"type":"DDCKBUS","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.42,"l":12.5,"regions":[{"region":"LMN","h":4.3},{"region":"KTN","h":4.3},{"region":"PCE","h":4.3}]}]}]},{"type":"GRADERS","trailers":[{"type":"FEPNYTR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.2,"h":4.3,"l":31}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.4,"l":12.5,"regions":[{"region":"LMN","h":4.3},{"region":"KTN","h":4.3},{"region":"PCE","h":5.33}]}]}]},{"type":"BUSTRLR","trailers":[{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":20}]}]},{"type":"LOGOFFH","trailers":[{"type":"STLOGNG","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":4.4,"h":4.15,"l":23}]}]},{"type":"LCVRMDB","trailers":[{"type":"SEMITRL","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":32,"regions":[{"region":"PCE","l":31}]}]}]},{"type":"LCVTPDB","trailers":[{"type":"SEMITRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":41}]}]},{"type":"LWBTRCT","trailers":[{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":23}]}]},{"type":"PICKRTT","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":1,"w":2.6,"h":4.15,"l":16}]},{"type":"STCRANE","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":25}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":40,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STRSELF","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":36,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"SCRAPER","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":12.5}]}]},{"type":"TRKTRAC","trailers":[{"type":"FECVYER","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":4,"rp":9.5,"w":3.8,"h":4.72,"l":31,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEDRMMX","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.72,"l":31,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEBGHSE","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":4.26,"h":4.72,"l":31,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FESEMTR","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.72,"l":31,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEWHELR","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":31,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"ODTRLEX","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1,"w":3.65,"h":4.15,"l":23}]},{"type":"REDIMIX","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":23}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.3,"l":31,"regions":[{"region":"LMN","l":23},{"region":"KTN","l":23},{"region":"PCE","h":5.33}]}]},{"type":"STREEFR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.3,"l":23}]},{"type":"STNTSHC","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":5,"rp":2.25,"w":2.6,"h":4.15,"l":20}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","l":32}]}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":40}]},{"type":"STRSELF","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":36}]}]},{"type":"REGTRCK","trailers":[{"type":"FECVYPT","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":4,"rp":9.5,"w":3.2,"h":4.3,"l":31}]},{"type":"FEPNYTR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.2,"h":4.3,"l":31}]},{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.8,"h":4.3,"l":23,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"MHMBSHL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.9,"w":5,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33,"l":36}]}]},{"type":"MHMBSHG","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.9,"w":6,"h":4.88,"l":31.5,"regions":[{"region":"PCE","w":6.1,"h":5.33,"l":36}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.2,"h":4.3,"l":16,"regions":[{"region":"PCE","h":4.4}]}]},{"type":"ODTRLEX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.65,"h":4.15,"l":23}]},{"type":"PMHWAAX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.9,"w":4.4,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.2,"h":4.3,"l":23,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"PLOWBLD","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.2,"h":4.15,"l":12.5}]}]}]}},{"id":"DOGLOGG","name":"Doglogger/Sjostrum Trailers (decked)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":2.6,"h":4.15,"l":13.5}]}]}]}},{"id":"GRTBBUK","name":"Grader, Tractor Blades, Buckets","size":{"powerUnits":[{"type":"GRADERS","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":0,"rp":0,"w":4.4,"h":4.15,"l":12.5}]}]}]}},{"id":"HAYRACK","name":"Hayrack Semi-Trailer with a Folded Chassis/Empty Piggyback","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STLOGNG","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":2.6,"h":4.15,"l":23}]}]}]}},{"id":"IMCONTN","name":"Intermodal Containers","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.4,"l":26}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.4,"l":27.5}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.4,"l":23}]}]},{"type":"REGTRCK","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.4,"l":12.5}]}]}]}},{"id":"IMCONWS","name":"Intermodal Containers without Sides","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":4.4,"h":4.72,"l":23}]}]}]}},{"id":"LPBOOMS","name":"Logs, Poles And Boomsticks (Up To 20.1)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.9,"h":4.15,"l":27.5}]},{"type":"LOGLGCY","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":5,"w":2.6,"h":4.15,"l":25}]},{"type":"POLETRL","jeep":true,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.9,"h":4.15,"l":27.5}]},{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.9,"h":4.15,"l":26}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.9,"h":4.15,"l":27.5}]},{"type":"HIBOFLT","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.9,"h":4.15,"l":25}]},{"type":"STLOGNG","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.9,"h":4.15,"l":25}]}]}]}},{"id":"LPBOOML","name":"Logs, Poles And Boomsticks (Over 20.1)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"LOGFULL","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":10,"rp":10,"w":2.6,"h":4.15,"l":40}]},{"type":"POLETRL","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":8,"rp":9,"w":2.6,"h":4.15,"l":40}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":10,"w":2.6,"h":4.15,"l":40}]},{"type":"STRSELF","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":10,"w":2.6,"h":4.15,"l":36}]}]}]}},{"id":"MFHOMES","name":"Manufactured Homes, Modular Buildings, Structures and Houseboats (<= 5.0 m OAW)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":7.5,"w":5,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33,"l":36}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":7.5,"w":5,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33,"l":36}]}]}]},{"type":"REGTRCK","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":6.9,"w":5,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33,"l":36}]}]},{"type":"FLOATTR","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":6.9,"w":5,"h":4.57,"l":31.5,"regions":[{"region":"PCE","h":5.33,"l":36}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":6.9,"w":5,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33,"l":36}]}]}]}]}},{"id":"MFHOMEL","name":"Manufactured Homes, Modular Buildings, Structures and Houseboats (> 5.0 m OAW)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":7.5,"w":6,"h":4.88,"l":31.5,"regions":[{"region":"PCE","w":6.1,"h":5.33,"l":36}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":7.5,"w":6,"h":4.88,"l":31.5,"regions":[{"region":"PCE","w":6.1,"h":5.33,"l":36}]}]}]},{"type":"REGTRCK","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":6.9,"w":6,"h":4.88,"l":31.5,"regions":[{"region":"PCE","w":6.1,"h":5.33,"l":36}]}]},{"type":"FLOATTR","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":6.9,"w":6,"h":4.57,"l":31.5,"regions":[{"region":"PCE","w":6.1,"h":5.33,"l":36}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":6.9,"w":6,"h":4.88,"l":31.5,"regions":[{"region":"PCE","w":6.1,"h":5.33,"l":36}]}]}]}]}},{"id":"PARKMHS","name":"Park Model Homes","size":{"powerUnits":[{"type":"REGTRCK","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.9,"w":4.4,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FLOATTR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.9,"w":4.4,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.9,"w":4.4,"h":4.88,"l":31.5,"regions":[{"region":"PCE","h":5.33}]}]}]}]}},{"id":"PIPESTL","name":"Pipe And Steel Products (Rebar, Pilings, Reinforcing Steel, Etc.)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":31}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5}]},{"type":"STSTEER","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":36}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":40}]}]}]}},{"id":"REDUCBL","name":"Reducible Loads","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STLOGNG","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.15,"l":27.5}]},{"type":"PLATFRM","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":26,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSTEER","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STWHELR","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STWIDWH","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STCRANE","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":40,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STRSELF","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":36,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"PICKRTT","trailers":[{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"STINGER","trailers":[{"type":"SEMITRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1.2,"w":2.6,"h":4.3,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSTNGR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1.2,"w":2.6,"h":4.3,"l":25,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"REGTRCK","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.2,"h":4.3,"l":25,"regions":[{"region":"PCE","h":4.4}]}]},{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.2,"h":4.3,"l":25,"regions":[{"region":"PCE","h":4.4}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.2,"h":4.3,"l":16,"regions":[{"region":"PCE","h":4.4}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":3.2,"h":4.3,"l":25,"regions":[{"region":"PCE","h":4.4}]}]}]}]}},{"id":"SCRAPER","name":"Scraper on Dollies","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"DOLLIES","jeep":true,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1,"w":3.2,"h":4.3,"l":25,"regions":[{"region":"PCE","h":4.4}]}]}]}]}},{"id":"OILFILD","name":"Oil Field Equipment","size":{"powerUnits":[{"type":"OGBEDTK","trailers":[{"type":"EXPANDO","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.3,"l":27.5}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":3.3,"h":4.3,"l":14}]},{"type":"OGOSFDT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.3,"h":4.3,"l":23}]}]},{"type":"OGOILSW","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":3.2,"h":4.3,"l":15}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":25}]}]},{"type":"OGSERVC","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":3.8,"h":4.3,"l":15}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":3.8,"h":4.3,"l":23}]}]},{"type":"OGSRRAH","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":2.9,"h":4.15,"l":15.5}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":10,"rp":6.5,"w":2.9,"h":4.15,"l":23}]}]},{"type":"TRKTRAC","trailers":[{"type":"OGOSFDT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.3,"h":4.3,"l":23}]}]}]}},{"id":"JPTRLOG","name":"Tandem Jeep/Pole Trailer Loaded on Logging Truck","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":2.9,"h":4.3,"l":12.5}]}]},{"type":"REGTRCK","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":2.9,"h":4.3,"l":12.5}]}]}]}},{"id":"TOWDISB","name":"Tow Trucks And Disabled Vehicles","size":{"powerUnits":[{"type":"TOWVEHC","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.3,"l":27.5}]}]}]}},{"id":"TRQDLOG","name":"Tri-Axle or Quad Axle Full Trailer Loaded on Logging Truck","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":2.6,"h":4.3,"l":13.5}]}]},{"type":"REGTRCK","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":5,"w":2.6,"h":4.3,"l":13.5}]}]}]}},{"id":"WOODCHP","name":"Wood Chips, Residuals","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.45,"l":27.5}]}]}]}},{"id":"EMPTYXX","name":"Empty","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"LOGOWBK","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":0,"rp":0,"w":3.2,"h":4.15,"l":23}]},{"type":"PLATFRM","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.15,"l":27.5}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.4,"l":31,"regions":[{"region":"LMN","h":4.15},{"region":"PCE","h":5.33}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.4,"l":27.5,"regions":[{"region":"LMN","h":4.15},{"region":"PCE","h":5.33}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.4,"l":31,"regions":[{"region":"LMN","h":4.15},{"region":"PCE","h":5.33}]}]},{"type":"STWHELR","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.88,"l":27.5,"regions":[{"region":"LMN","h":4.15},{"region":"PCE","h":5.33}]}]},{"type":"STWIDWH","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.88,"l":27.5,"regions":[{"region":"LMN","h":4.15},{"region":"PCE","h":5.33}]}]}]},{"type":"PICKRTT","trailers":[{"type":"OGOSFDT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.15,"l":23}]},{"type":"PLATFRM","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.15,"l":27.5}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":25,"regions":[{"region":"PCE","l":27.5}]}]},{"type":"STWHELR","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.15,"l":27.5}]},{"type":"STWIDWH","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.15,"l":27.5}]}]}]}},{"id":"GRBBINS","name":"Garbage Bins","size":{"powerUnits":[{"type":"REGTRCK","trailers":[{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":23}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":12.5}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":23}]}]}]}},{"id":"LAMBEAM","name":"Laminated Beams","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"POLETRL","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":40}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":31}]}]}]}},{"id":"HAYLREC","name":"Hay Bales Large Rectangular","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.05,"h":4.3,"l":26,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.05,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.05,"h":4.4,"l":23,"regions":[{"region":"LMN","h":4.3},{"region":"KTN","h":4.3},{"region":"PCE","h":4.8}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]}]},{"type":"REGTRCK","trailers":[{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.05,"h":4.3,"l":12.5,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]}]}]}},{"id":"HAYROND","name":"Hay Bales Round","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.3,"l":26,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.3,"l":27.5,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]}]},{"type":"REGTRCK","trailers":[{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.3,"l":12.5,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]}]}]}},{"id":"HAYSREC","name":"Hay Bales Small Rectangular","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.05,"h":4.3,"l":26,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.05,"h":4.3,"l":27.5,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]}]},{"type":"REGTRCK","trailers":[{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.05,"h":4.3,"l":12.5,"regions":[{"region":"PCE","h":4.8}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.05,"h":4.3,"l":23,"regions":[{"region":"PCE","h":4.8}]}]}]}]}},{"id":"BRGBEAM","name":"Bridge Beams","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"POLETRL","jeep":true,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":31}]},{"type":"SEMITRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.2,"h":4.3,"l":31,"regions":[{"region":"PCE","h":5.33}]}]}]}]}},{"id":"NONREDU","name":"Non-Reducible Loads","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STLOGNG","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.15,"l":27.5}]},{"type":"PLATFRM","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.4,"l":26,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.4,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.4,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.4,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSTEER","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STWHELR","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STWIDWH","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STCRANE","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":40,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STRSELF","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":36,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"PICKRTT","trailers":[{"type":"OGOSFDT","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.3,"h":4.3,"l":23}]},{"type":"SEMITRL","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOEXP","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.4,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.4,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSTEER","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STWHELR","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STWIDWH","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STCRANE","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":27.5,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STROPRT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":40,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STRSELF","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":5,"h":4.88,"l":36,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"STINGER","trailers":[{"type":"SEMITRL","jeep":false,"booster":false,"selfIssue":false,"sizeDimensions":[{"fp":1,"rp":1.2,"w":2.6,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"STSTNGR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1.2,"w":2.6,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"REGTRCK","trailers":[{"type":"DOLLIES","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":5,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":5,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":5,"h":4.88,"l":16,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":6.5,"w":5,"h":4.88,"l":25,"regions":[{"region":"PCE","h":5.33}]}]}]}]}},{"id":"AUTOCRR","name":"Auto Carrier, Campers And Boats (Stinger Steered Transporters Only)","size":{"powerUnits":[{"type":"STINGER","trailers":[{"type":"STSTNGR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1.2,"w":2.6,"h":4.4,"l":25,"regions":[{"region":"LMN","h":4.3},{"region":"KTN","h":4.3},{"region":"PCE","h":4.88}]}]}]}]}},{"id":"HAYRNPR","name":"Hay Bales (Round) Peace River Only","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"STACTRN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.3,"l":26,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"STBTRAN","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.3,"l":27.5,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"HIBOFLT","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]}]},{"type":"REGTRCK","trailers":[{"type":"FULLLTL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":3.5,"h":4.3,"l":12.5,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.5,"h":4.3,"l":23,"regions":[{"region":"PCE","w":3.84,"h":4.8}]}]}]}]}},{"id":"BRSHCUT","name":"Brushcutters (Peace Only)","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"SEMITRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":23,"regions":[{"region":"PCE","w":4.57,"h":5.33}]}]},{"type":"STSDBDK","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":23,"regions":[{"region":"PCE","w":4.57,"h":5.33}]}]}]},{"type":"REGTRCK","trailers":[{"type":"NONEXXX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":12.5,"regions":[{"region":"PCE","w":4.57,"h":5.33}]}]},{"type":"PONYTRL","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":1,"w":2.6,"h":4.15,"l":23,"regions":[{"region":"PCE","w":3.8,"h":5.33}]}]}]}]}},{"id":"FIXEDEQ","name":"Fixed Equipment","size":{"powerUnits":[{"type":"TRKTRAC","trailers":[{"type":"FECVYER","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":4,"rp":9.5,"w":3.8,"h":4.72,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEDRMMX","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.72,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEBGHSE","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":4.26,"h":4.72,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FESEMTR","jeep":true,"booster":true,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.72,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEWHELR","jeep":true,"booster":true,"selfIssue":false,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.72,"regions":[{"region":"PCE","h":5.33}]}]}]},{"type":"REGTRCK","trailers":[{"type":"FECVYPT","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":4,"rp":9.5,"w":3.2,"h":4.3}]},{"type":"FEDRMMX","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":3.8,"h":4.72,"regions":[{"region":"PCE","h":5.33}]}]},{"type":"FEPNYTR","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":1,"rp":4,"w":3.2,"h":4.3}]},{"type":"FEBGHSE","jeep":false,"booster":false,"selfIssue":true,"sizeDimensions":[{"fp":3,"rp":6.5,"w":4.26,"h":4.72}]}]}]}}],"globalSizeDefaults":{"fp":3,"rp":6.5,"w":2.6,"h":4.15,"l":31}}')
+GO
+
+DECLARE @VersionDescription VARCHAR(255)
+SET @VersionDescription = 'Updates to policy configuration JSON allowing lcv for TROS and TROW'
+
+INSERT [dbo].[ORBC_SYS_VERSION] ([VERSION_ID], [DESCRIPTION], [UPDATE_SCRIPT], [REVERT_SCRIPT], [RELEASE_DATE]) VALUES (55, @VersionDescription, '$(UPDATE_SCRIPT)', '$(REVERT_SCRIPT)', getutcdate())
+IF @@ERROR <> 0 SET NOEXEC ON
+GO
+
+COMMIT TRANSACTION
+GO
+IF @@ERROR <> 0 SET NOEXEC ON
+GO
+DECLARE @Success AS BIT
+SET @Success = 1
+SET NOEXEC OFF
+IF (@Success = 1) PRINT 'The database update succeeded'
+ELSE BEGIN
+ IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
+ PRINT 'The database update failed'
+END
+GO
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index b2dbb892c..f9da50897 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -26,7 +26,7 @@
"material-react-table": "^2.13.3",
"mui-nested-menu": "^3.4.0",
"oidc-client-ts": "^3.1.0",
- "onroute-policy-engine": "^1.1.0",
+ "onroute-policy-engine": "^1.4.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.1.2",
@@ -7661,9 +7661,9 @@
}
},
"node_modules/onroute-policy-engine": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onroute-policy-engine/-/onroute-policy-engine-1.1.0.tgz",
- "integrity": "sha512-2W5FXX5xRnYjFcB+zEmZMRoA+bMP5p4nLEMlD3AvU4LwCgiYyRreoiOnTBN+plVPWmL1oCnfaDl5o+2RjxbIWw==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/onroute-policy-engine/-/onroute-policy-engine-1.4.1.tgz",
+ "integrity": "sha512-NSlwb9j2IK6hSk2LOiP02pno51h19t/sCYNUsEpzRww3CPOVOeDw8N4zer7D3tbwDCA9EBkvaLKQh7c8v8nqFQ==",
"dependencies": {
"dayjs": "^1.11.13",
"json-rules-engine": "^7.2.1",
@@ -14923,9 +14923,9 @@
}
},
"onroute-policy-engine": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onroute-policy-engine/-/onroute-policy-engine-1.1.0.tgz",
- "integrity": "sha512-2W5FXX5xRnYjFcB+zEmZMRoA+bMP5p4nLEMlD3AvU4LwCgiYyRreoiOnTBN+plVPWmL1oCnfaDl5o+2RjxbIWw==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/onroute-policy-engine/-/onroute-policy-engine-1.4.1.tgz",
+ "integrity": "sha512-NSlwb9j2IK6hSk2LOiP02pno51h19t/sCYNUsEpzRww3CPOVOeDw8N4zer7D3tbwDCA9EBkvaLKQh7c8v8nqFQ==",
"requires": {
"dayjs": "^1.11.13",
"json-rules-engine": "^7.2.1",
diff --git a/frontend/package.json b/frontend/package.json
index d3eb8041f..da1d2aaaa 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -21,7 +21,7 @@
"material-react-table": "^2.13.3",
"mui-nested-menu": "^3.4.0",
"oidc-client-ts": "^3.1.0",
- "onroute-policy-engine": "^1.1.0",
+ "onroute-policy-engine": "^1.4.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.1.2",
diff --git a/frontend/src/features/permits/ApplicationSteps.tsx b/frontend/src/features/permits/ApplicationSteps.tsx
index 27259c032..1d8d7cfe3 100644
--- a/frontend/src/features/permits/ApplicationSteps.tsx
+++ b/frontend/src/features/permits/ApplicationSteps.tsx
@@ -3,7 +3,10 @@ import { ErrorBoundary } from "react-error-boundary";
import { ApplicationStepPage } from "./components/dashboard/ApplicationStepPage";
import { ErrorFallback } from "../../common/pages/ErrorFallback";
-import { ApplicationStep, ApplicationStepContext } from "../../routes/constants";
+import {
+ ApplicationStep,
+ ApplicationStepContext,
+} from "../../routes/constants";
export const ApplicationSteps = React.memo(
({
diff --git a/frontend/src/features/permits/components/dashboard/ApplicationStepPage.tsx b/frontend/src/features/permits/components/dashboard/ApplicationStepPage.tsx
index a813011e8..f19605cd8 100644
--- a/frontend/src/features/permits/components/dashboard/ApplicationStepPage.tsx
+++ b/frontend/src/features/permits/components/dashboard/ApplicationStepPage.tsx
@@ -129,11 +129,11 @@ export const ApplicationStepPage = ({
);
}
-
return (
);
};
diff --git a/frontend/src/features/permits/helpers/vehicles/subtypes/getEligibleVehicleSubtypes.ts b/frontend/src/features/permits/helpers/vehicles/subtypes/getEligibleVehicleSubtypes.ts
index 5ffb1dbc2..e1026ea3c 100644
--- a/frontend/src/features/permits/helpers/vehicles/subtypes/getEligibleVehicleSubtypes.ts
+++ b/frontend/src/features/permits/helpers/vehicles/subtypes/getEligibleVehicleSubtypes.ts
@@ -1,14 +1,8 @@
import { Policy } from "onroute-policy-engine";
import { Nullable } from "../../../../../common/types/common";
-import { PERMIT_TYPES, PermitType } from "../../../types/PermitType";
+import { PermitType } from "../../../types/PermitType";
import { getDefaultRequiredVal } from "../../../../../common/helpers/util";
-import { TROW_ELIGIBLE_VEHICLE_SUBTYPES } from "../../../constants/trow";
-import { TROS_ELIGIBLE_VEHICLE_SUBTYPES } from "../../../constants/tros";
-import {
- DEFAULT_COMMODITY_SELECT_VALUE,
- LCV_VEHICLE_SUBTYPES,
-} from "../../../constants/constants";
/**
* Get eligible vehicle subtypes based on given criteria.
@@ -20,41 +14,30 @@ import {
*/
export const getEligibleVehicleSubtypes = (
permitType: PermitType,
- isLcvDesignated: boolean,
selectedCommodity?: Nullable,
policyEngine?: Nullable,
) => {
- const lcvSubtypes = LCV_VEHICLE_SUBTYPES.map(({ typeCode }) => typeCode);
- switch (permitType) {
- case PERMIT_TYPES.STOS: {
- if (!selectedCommodity || !policyEngine || (selectedCommodity === DEFAULT_COMMODITY_SELECT_VALUE))
- return new Set();
+ if (!policyEngine)
+ return new Set();
- const subtypesMap = policyEngine.getPermittableVehicleTypes(permitType, selectedCommodity);
- return new Set(
- [
- ...getDefaultRequiredVal(
- new Map(),
- subtypesMap.get("powerUnits"),
- ).keys(),
- ...getDefaultRequiredVal(
- new Map(),
- subtypesMap.get("trailers"),
- ).keys(),
- ].concat(isLcvDesignated ? lcvSubtypes : []),
- );
- }
- // Policy engine currently doesn't return vehicle subtypes unless a commodity is provided
- // which TROW and TROS doesn't have, thus here the hardcoded subtypes are being used
- case PERMIT_TYPES.TROW:
- return new Set(
- TROW_ELIGIBLE_VEHICLE_SUBTYPES.concat(isLcvDesignated ? lcvSubtypes : []),
- );
- case PERMIT_TYPES.TROS:
- return new Set(
- TROS_ELIGIBLE_VEHICLE_SUBTYPES.concat(isLcvDesignated ? lcvSubtypes : []),
- );
- default:
- return new Set();
- }
+ // The policy engine requires a commodity to be provided for any
+ // permit type where commodity is required, hence the nullish
+ // coalescing operator on the second parameter. An empty string will
+ // result in an empty map returned.
+ const subtypesMap = policyEngine.getPermittableVehicleTypes(
+ permitType,
+ getDefaultRequiredVal('-', selectedCommodity),
+ );
+ return new Set(
+ [
+ ...getDefaultRequiredVal(
+ new Map(),
+ subtypesMap.get("powerUnits"),
+ ).keys(),
+ ...getDefaultRequiredVal(
+ new Map(),
+ subtypesMap.get("trailers"),
+ ).keys(),
+ ],
+ );
};
diff --git a/frontend/src/features/permits/hooks/form/useInitApplicationFormData.ts b/frontend/src/features/permits/hooks/form/useInitApplicationFormData.ts
index 01a3b08de..b5546e553 100644
--- a/frontend/src/features/permits/hooks/form/useInitApplicationFormData.ts
+++ b/frontend/src/features/permits/hooks/form/useInitApplicationFormData.ts
@@ -55,7 +55,6 @@ export const useInitApplicationFormData = (
const initialFormData = useMemo(() => {
const eligibleVehicleSubtypes = getEligibleVehicleSubtypes(
permitType,
- isLcvDesignated,
applicationData?.permitData?.permittedCommodity?.commodityType,
policyEngine,
);
diff --git a/frontend/src/features/permits/hooks/usePermitVehicles.ts b/frontend/src/features/permits/hooks/usePermitVehicles.ts
index 151c26836..01556833e 100644
--- a/frontend/src/features/permits/hooks/usePermitVehicles.ts
+++ b/frontend/src/features/permits/hooks/usePermitVehicles.ts
@@ -45,7 +45,6 @@ export const usePermitVehicles = (
const eligibleVehicleSubtypes = useMemo(() => {
return getEligibleVehicleSubtypes(
permitType,
- isLcvDesignated,
selectedCommodity,
policyEngine,
);
diff --git a/frontend/src/features/permits/pages/Amend/components/AmendPermitForm.tsx b/frontend/src/features/permits/pages/Amend/components/AmendPermitForm.tsx
index 0dd87a6ed..bc5f12244 100644
--- a/frontend/src/features/permits/pages/Amend/components/AmendPermitForm.tsx
+++ b/frontend/src/features/permits/pages/Amend/components/AmendPermitForm.tsx
@@ -94,7 +94,7 @@ export const AmendPermitForm = () => {
trailerSubtypeNamesMap,
} = usePermitVehicleManagement(companyId);
- const policyEngine = usePolicyEngine();
+ const policyEngine = usePolicyEngine(specialAuthorizations);
const { initialFormData, formData, formMethods } = useAmendPermitForm({
repopulateFormData: currentStepIndex === 0,
diff --git a/frontend/src/features/permits/pages/Amend/components/AmendPermitReview.tsx b/frontend/src/features/permits/pages/Amend/components/AmendPermitReview.tsx
index 4ec5c4dad..6583deaaf 100644
--- a/frontend/src/features/permits/pages/Amend/components/AmendPermitReview.tsx
+++ b/frontend/src/features/permits/pages/Amend/components/AmendPermitReview.tsx
@@ -23,6 +23,7 @@ import {
applyWhenNotNullable,
getDefaultRequiredVal,
} from "../../../../../common/helpers/util";
+import { useFetchSpecialAuthorizations } from "../../../../settings/hooks/specialAuthorizations";
export const AmendPermitReview = () => {
const navigate = useNavigate();
@@ -59,8 +60,9 @@ export const AmendPermitReview = () => {
amendmentApplication?.permitType,
permit?.permitType,
);
+ const { data: specialAuthorizations } = useFetchSpecialAuthorizations(companyId);
- const policyEngine = usePolicyEngine();
+ const policyEngine = usePolicyEngine(specialAuthorizations);
const { commodityOptions } = useCommodityOptions(policyEngine, permitType);
const powerUnitSubTypesQuery = usePowerUnitSubTypesQuery();
const trailerSubTypesQuery = useTrailerSubTypesQuery();
diff --git a/frontend/src/features/permits/pages/Amend/hooks/useAmendPermitForm.ts b/frontend/src/features/permits/pages/Amend/hooks/useAmendPermitForm.ts
index ed3346e01..0300499b9 100644
--- a/frontend/src/features/permits/pages/Amend/hooks/useAmendPermitForm.ts
+++ b/frontend/src/features/permits/pages/Amend/hooks/useAmendPermitForm.ts
@@ -46,7 +46,6 @@ export const useAmendPermitForm = (
if (amendmentApplication) {
const eligibleSubtypes = getEligibleVehicleSubtypes(
amendmentApplication.permitType,
- isLcvDesignated,
amendmentApplication.permitData.permittedCommodity?.commodityType,
policyEngine,
);
@@ -80,7 +79,6 @@ export const useAmendPermitForm = (
const eligibleSubtypes = getEligibleVehicleSubtypes(
defaultPermitFormData.permitType,
- isLcvDesignated,
defaultPermitFormData.permitData.permittedCommodity?.commodityType,
policyEngine,
);
diff --git a/frontend/src/features/permits/pages/Application/ApplicationForm.tsx b/frontend/src/features/permits/pages/Application/ApplicationForm.tsx
index 823489d76..d91a09f96 100644
--- a/frontend/src/features/permits/pages/Application/ApplicationForm.tsx
+++ b/frontend/src/features/permits/pages/Application/ApplicationForm.tsx
@@ -46,7 +46,10 @@ import {
import {
APPLICATIONS_ROUTES,
+ APPLICATION_QUEUE_ROUTES,
APPLICATION_STEPS,
+ APPLICATION_STEP_CONTEXTS,
+ ApplicationStepContext,
ERROR_ROUTES,
} from "../../../../routes/constants";
@@ -59,9 +62,11 @@ const FEATURE = "application";
export const ApplicationForm = ({
permitType,
companyId,
+ applicationStepContext,
}: {
permitType: PermitType;
companyId: number;
+ applicationStepContext: ApplicationStepContext;
}) => {
// Context to hold all of the application data related to the application
const applicationContext = useContext(ApplicationContext);
@@ -88,7 +93,7 @@ export const ApplicationForm = ({
trailerSubtypeNamesMap,
} = usePermitVehicleManagement(companyId);
- const policyEngine = usePolicyEngine();
+ const policyEngine = usePolicyEngine(specialAuthorizations);
// Use a custom hook that performs the following whenever page is rendered (or when application context is updated/changed):
// 1. Get all data needed to initialize the application form (from application context, company, user details)
@@ -192,6 +197,7 @@ export const ApplicationForm = ({
const updatedViolations = await triggerPolicyValidation();
// prevent CV client continuing if there are policy engine validation errors
if (Object.keys(updatedViolations).length > 0 && !isStaffUser) {
+ console.error(updatedViolations);
return;
}
@@ -201,10 +207,13 @@ export const ApplicationForm = ({
const savedVehicleDetails = await handleSaveVehicle(vehicleData);
// Save application before continuing
- await onSaveApplication(
- (permitId) => navigate(APPLICATIONS_ROUTES.REVIEW(permitId)),
- savedVehicleDetails,
- );
+ await onSaveApplication((permitId) => {
+ return navigate(
+ applicationStepContext === APPLICATION_STEP_CONTEXTS.QUEUE
+ ? APPLICATION_QUEUE_ROUTES.REVIEW(companyId, permitId)
+ : APPLICATIONS_ROUTES.REVIEW(permitId),
+ );
+ }, savedVehicleDetails);
};
const onSaveSuccess = (savedApplication: Application, status: number) => {
diff --git a/frontend/src/features/permits/pages/Application/ApplicationReview.tsx b/frontend/src/features/permits/pages/Application/ApplicationReview.tsx
index 715c490ee..e0009363a 100644
--- a/frontend/src/features/permits/pages/Application/ApplicationReview.tsx
+++ b/frontend/src/features/permits/pages/Application/ApplicationReview.tsx
@@ -65,7 +65,7 @@ export const ApplicationReview = ({
const navigate = useNavigate();
- const policyEngine = usePolicyEngine();
+ const policyEngine = usePolicyEngine(specialAuth);
const { commodityOptions } = useCommodityOptions(policyEngine, permitType);
const powerUnitSubTypesQuery = usePowerUnitSubTypesQuery();
const trailerSubTypesQuery = useTrailerSubTypesQuery();
diff --git a/frontend/src/features/policy/hooks/usePolicyEngine.ts b/frontend/src/features/policy/hooks/usePolicyEngine.ts
index d5cb9c529..53066af83 100644
--- a/frontend/src/features/policy/hooks/usePolicyEngine.ts
+++ b/frontend/src/features/policy/hooks/usePolicyEngine.ts
@@ -3,6 +3,7 @@ import { Policy } from "onroute-policy-engine";
import { usePolicyConfigurationQuery } from "./usePolicyConfigurationQuery";
import { isNull } from "../../../common/types/common";
+import { SpecialAuthorizationData } from "../../settings/types/SpecialAuthorization";
/**
* Hook that instantiates the policy engine instance.
@@ -10,7 +11,7 @@ import { isNull } from "../../../common/types/common";
* and null when there's a problem getting the policy configuration.
* @returns The instantiated policy engine, or undefined when loading, and null on error
*/
-export const usePolicyEngine = () => {
+export const usePolicyEngine = (specialAuthorizations?: SpecialAuthorizationData) => {
const { data: policyConfiguration } = usePolicyConfigurationQuery();
const policyEngine = useMemo(() => {
@@ -20,5 +21,9 @@ export const usePolicyEngine = () => {
return new Policy(policyConfiguration.policy);
}, [policyConfiguration]);
+ if (specialAuthorizations) {
+ policyEngine?.setSpecialAuthorizations(specialAuthorizations);
+ }
+
return policyEngine;
};
diff --git a/frontend/src/features/queue/components/ApplicationInQueueReview.tsx b/frontend/src/features/queue/components/ApplicationInQueueReview.tsx
index e6b2a8dcb..7369b8d96 100644
--- a/frontend/src/features/queue/components/ApplicationInQueueReview.tsx
+++ b/frontend/src/features/queue/components/ApplicationInQueueReview.tsx
@@ -5,7 +5,11 @@ import { useNavigate } from "react-router-dom";
import "./ApplicationInQueueReview.scss";
import { getDefaultRequiredVal } from "../../../common/helpers/util";
import { Nullable } from "../../../common/types/common";
-import { APPLICATION_QUEUE_ROUTES, APPLICATION_STEPS, IDIR_ROUTES } from "../../../routes/constants";
+import {
+ APPLICATION_QUEUE_ROUTES,
+ APPLICATION_STEPS,
+ IDIR_ROUTES,
+} from "../../../routes/constants";
import { useCompanyInfoDetailsQuery } from "../../manageProfile/apiManager/hooks";
import { usePowerUnitSubTypesQuery } from "../../manageVehicles/hooks/powerUnits";
import { useTrailerSubTypesQuery } from "../../manageVehicles/hooks/trailers";
@@ -36,7 +40,10 @@ export const ApplicationInQueueReview = ({
const { data: companyInfo } = useCompanyInfoDetailsQuery(companyId);
const doingBusinessAs = companyInfo?.alternateName;
- const permitType = getDefaultRequiredVal(DEFAULT_PERMIT_TYPE, applicationData?.permitType);
+ const permitType = getDefaultRequiredVal(
+ DEFAULT_PERMIT_TYPE,
+ applicationData?.permitType,
+ );
const fee = isNoFeePermitType
? "0"
: `${calculateFeeByDuration(
@@ -46,7 +53,7 @@ export const ApplicationInQueueReview = ({
const navigate = useNavigate();
- const policyEngine = usePolicyEngine();
+ const policyEngine = usePolicyEngine(specialAuth);
const { commodityOptions } = useCommodityOptions(policyEngine, permitType);
const powerUnitSubTypesQuery = usePowerUnitSubTypesQuery();
const trailerSubTypesQuery = useTrailerSubTypesQuery();
@@ -58,7 +65,9 @@ export const ApplicationInQueueReview = ({
const [hasAttemptedSubmission, setHasAttemptedSubmission] = useState(false);
const handleEdit = () => {
- navigate(APPLICATION_QUEUE_ROUTES.EDIT(companyId, applicationId), { replace: true });
+ navigate(APPLICATION_QUEUE_ROUTES.EDIT(companyId, applicationId), {
+ replace: true,
+ });
};
const isSuccess = (status?: number) => status === 201;
@@ -146,7 +155,9 @@ export const ApplicationInQueueReview = ({
vehicleWasSaved={
applicationData?.permitData?.vehicleDetails?.saveVehicle
}
- vehicleConfiguration={applicationData?.permitData?.vehicleConfiguration}
+ vehicleConfiguration={
+ applicationData?.permitData?.vehicleConfiguration
+ }
route={applicationData?.permitData?.permittedRoute}
applicationNotes={applicationData?.permitData?.applicationNotes}
doingBusinessAs={doingBusinessAs}
diff --git a/frontend/src/routes/constants.ts b/frontend/src/routes/constants.ts
index 69b5d7e87..4102c88bf 100644
--- a/frontend/src/routes/constants.ts
+++ b/frontend/src/routes/constants.ts
@@ -71,10 +71,7 @@ const PERMITS_ROUTE_BASE = "/permits";
export const PERMITS_ROUTES = {
BASE: PERMITS_ROUTE_BASE,
SUCCESS: `${PERMITS_ROUTE_BASE}/success`,
- VOID: (
- companyId?: Nullable,
- permitId?: Nullable,
- ) =>
+ VOID: (companyId?: Nullable, permitId?: Nullable) =>
`${DYNAMIC_ROUTE_URI(
"/companies",
ROUTE_PLACEHOLDERS.COMPANY_ID,
@@ -84,10 +81,7 @@ export const PERMITS_ROUTES = {
ROUTE_PLACEHOLDERS.PERMIT_ID,
permitId,
)}/void`,
- AMEND: (
- companyId?: Nullable,
- permitId?: Nullable,
- ) =>
+ AMEND: (companyId?: Nullable, permitId?: Nullable) =>
`${DYNAMIC_ROUTE_URI(
"/companies",
ROUTE_PLACEHOLDERS.COMPANY_ID,
@@ -160,10 +154,7 @@ export const APPLICATION_QUEUE_ROUTES = {
ROUTE_PLACEHOLDERS.PERMIT_ID,
permitId,
)}/review`,
- EDIT: (
- companyId?: Nullable,
- permitId?: Nullable,
- ) =>
+ EDIT: (companyId?: Nullable, permitId?: Nullable) =>
`${DYNAMIC_ROUTE_URI(
"/companies",
ROUTE_PLACEHOLDERS.COMPANY_ID,
@@ -229,6 +220,5 @@ export const ONROUTE_WEBPAGE_LINKS = {
"https://www2.gov.bc.ca/gov/content/governments/organizational-structure/ministries-organizations/ministries/citizens-services/servicebc#locations",
LIST_OF_BC_HIGHWAYS:
"https://www2.gov.bc.ca/gov/content/transportation/transportation-reports-and-reference/reference-information/numbered-routes",
- HEIGHT_CLEARANCE_TOOL:
- "https://www.drivebc.ca/cvrp/?c=hct",
+ HEIGHT_CLEARANCE_TOOL: "https://www.drivebc.ca/cvrp/?c=hct",
};
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..e139a734b
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,6 @@
+{
+ "name": "onroutebc",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {}
+}