From 31fd3717a5b65e093b9ab78d62450685e7d628d3 Mon Sep 17 00:00:00 2001 From: deandreJones Date: Tue, 7 Jan 2025 17:08:30 +0000 Subject: [PATCH 1/9] B-21934 --- migrations/app/migrations_manifest.txt | 4 +- ...0106153750_admin_weight_restriction.up.sql | 6 + ...min_weight_restriction_convert_bool.up.sql | 4 + pkg/gen/ghcapi/embedded_spec.go | 28 + .../counseling_update_allowance_payload.go | 3 + pkg/gen/ghcmessages/entitlements.go | 4 + .../ghcmessages/update_allowance_payload.go | 3 + pkg/gen/primeapi/embedded_spec.go | 8 + pkg/gen/primemessages/entitlements.go | 4 + pkg/gen/primev2api/embedded_spec.go | 8 + pkg/gen/primev2messages/entitlements.go | 4 + pkg/gen/primev3api/embedded_spec.go | 8 + pkg/gen/primev3messages/entitlements.go | 4 + pkg/gen/supportapi/embedded_spec.go | 8 + pkg/gen/supportmessages/entitlement.go | 4 + .../internal/payloads/model_to_payload.go | 6 +- .../primeapi/payloads/model_to_payload.go | 1 + .../primeapiv2/payloads/model_to_payload.go | 1 + pkg/models/ghc_entitlements.go | 1 + pkg/services/order/order_updater.go | 8 + .../AllowancesDetailForm.jsx | 22 +- .../AllowancesDetailForm.test.jsx | 37 + .../Office/DefinitionLists/AllowancesList.jsx | 8 + .../MoveHistory/Database/BooleanFields.js | 1 + .../MoveHistory/Database/FieldMappings.js | 1 + .../Office/MoveAllowances/MoveAllowances.jsx | 4 + src/pages/Office/MoveDetails/MoveDetails.jsx | 1 + .../ServicesCounselingMoveAllowances.jsx | 4 + .../ServicesCounselingMoveDetails.jsx | 1 + .../definitions/prime/Entitlements.yaml | 3 + swagger-def/ghc.yaml | 3225 +++++++++-------- swagger-def/support.yaml | 3 + swagger/ghc.yaml | 15 + swagger/prime.yaml | 3 + swagger/prime_v2.yaml | 3 + swagger/prime_v3.yaml | 3 + swagger/support.yaml | 3 + 37 files changed, 1854 insertions(+), 1600 deletions(-) create mode 100644 migrations/app/schema/20250106153750_admin_weight_restriction.up.sql create mode 100644 migrations/app/schema/20250106190758_admin_weight_restriction_convert_bool.up.sql diff --git a/migrations/app/migrations_manifest.txt b/migrations/app/migrations_manifest.txt index 18c13cdaa73..ffaf109d530 100644 --- a/migrations/app/migrations_manifest.txt +++ b/migrations/app/migrations_manifest.txt @@ -1052,10 +1052,12 @@ 20241203024453_add_ppm_max_incentive_column.up.sql 20241204155919_update_ordering_proc.up.sql 20241204210208_retroactive_update_of_ppm_max_and_estimated_incentives_prd.up.sql -20241218201833_add_PPPO_BASE_ELIZABETH.up.sql 20241217163231_update_duty_locations_bad_zips.up.sql 20241217180136_add_AK_zips_to_zip3_distances.up.sql +20241218201833_add_PPPO_BASE_ELIZABETH.up.sql 20241220171035_add_additional_AK_zips_to_zip3_distances.up.sql 20241227153723_remove_empty_string_emplid_values.up.sql 20241230190638_remove_AK_zips_from_zip3.up.sql 20241230190647_add_missing_AK_zips_to_zip3_distances.up.sql +20250106153750_admin_weight_restriction.up.sql +20250106190758_admin_weight_restriction_convert_bool.up.sql diff --git a/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql b/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql new file mode 100644 index 00000000000..a3e6e097e45 --- /dev/null +++ b/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql @@ -0,0 +1,6 @@ +ALTER TABLE entitlements +ADD COLUMN IF NOT EXISTS admin_restricted_weight_location BOOLEAN; + +-- ALTER COLUMN admin_restricted_weight_location TYPE boolean USING (COALESCE(admin_restricted_weight_location, false)), +-- ALTER COLUMN admin_restricted_weight_location SET DEFAULT false, +-- ALTER COLUMN admin_restricted_weight_location SET NOT NULL; \ No newline at end of file diff --git a/migrations/app/schema/20250106190758_admin_weight_restriction_convert_bool.up.sql b/migrations/app/schema/20250106190758_admin_weight_restriction_convert_bool.up.sql new file mode 100644 index 00000000000..f8f923c0ae7 --- /dev/null +++ b/migrations/app/schema/20250106190758_admin_weight_restriction_convert_bool.up.sql @@ -0,0 +1,4 @@ +ALTER TABLE entitlements + ALTER COLUMN admin_restricted_weight_location TYPE boolean USING (COALESCE(admin_restricted_weight_location, false)), + ALTER COLUMN admin_restricted_weight_location SET DEFAULT false, + ALTER COLUMN admin_restricted_weight_location SET NOT NULL; \ No newline at end of file diff --git a/pkg/gen/ghcapi/embedded_spec.go b/pkg/gen/ghcapi/embedded_spec.go index 361f666c222..a0183a05515 100644 --- a/pkg/gen/ghcapi/embedded_spec.go +++ b/pkg/gen/ghcapi/embedded_spec.go @@ -6862,6 +6862,11 @@ func init() { "x-nullable": true, "example": true }, + "adminRestrictedWeightLocation": { + "description": "Indicates if the customer is restricted to a specific location for their admin restricted weight.", + "type": "boolean", + "x-nullable": true + }, "agency": { "$ref": "#/definitions/Affiliation" }, @@ -8043,6 +8048,10 @@ func init() { "x-nullable": true, "example": true }, + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", @@ -13790,6 +13799,11 @@ func init() { "x-nullable": true, "example": true }, + "adminRestrictedWeightLocation": { + "description": "Indicates if the customer is restricted to a specific location for their admin restricted weight.", + "type": "boolean", + "x-nullable": true + }, "agency": { "$ref": "#/definitions/Affiliation" }, @@ -23602,6 +23616,11 @@ func init() { "x-nullable": true, "example": true }, + "adminRestrictedWeightLocation": { + "description": "Indicates if the customer is restricted to a specific location for their admin restricted weight.", + "type": "boolean", + "x-nullable": true + }, "agency": { "$ref": "#/definitions/Affiliation" }, @@ -24787,6 +24806,10 @@ func init() { "x-nullable": true, "example": true }, + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", @@ -30662,6 +30685,11 @@ func init() { "x-nullable": true, "example": true }, + "adminRestrictedWeightLocation": { + "description": "Indicates if the customer is restricted to a specific location for their admin restricted weight.", + "type": "boolean", + "x-nullable": true + }, "agency": { "$ref": "#/definitions/Affiliation" }, diff --git a/pkg/gen/ghcmessages/counseling_update_allowance_payload.go b/pkg/gen/ghcmessages/counseling_update_allowance_payload.go index d6bed9fac0c..c1a0ce9f418 100644 --- a/pkg/gen/ghcmessages/counseling_update_allowance_payload.go +++ b/pkg/gen/ghcmessages/counseling_update_allowance_payload.go @@ -23,6 +23,9 @@ type CounselingUpdateAllowancePayload struct { // Example: true AccompaniedTour *bool `json:"accompaniedTour,omitempty"` + // Indicates if the customer is restricted to a specific location for their admin restricted weight. + AdminRestrictedWeightLocation *bool `json:"adminRestrictedWeightLocation,omitempty"` + // agency Agency *Affiliation `json:"agency,omitempty"` diff --git a/pkg/gen/ghcmessages/entitlements.go b/pkg/gen/ghcmessages/entitlements.go index 2ee15f3d03a..7699f3be0e3 100644 --- a/pkg/gen/ghcmessages/entitlements.go +++ b/pkg/gen/ghcmessages/entitlements.go @@ -23,6 +23,10 @@ type Entitlements struct { // Example: true AccompaniedTour *bool `json:"accompaniedTour,omitempty"` + // admin restricted weight location + // Example: false + AdminRestrictedWeightLocation bool `json:"adminRestrictedWeightLocation,omitempty"` + // authorized weight // Example: 2000 AuthorizedWeight *int64 `json:"authorizedWeight,omitempty"` diff --git a/pkg/gen/ghcmessages/update_allowance_payload.go b/pkg/gen/ghcmessages/update_allowance_payload.go index ee0d677c0e7..0a63d9b9fa9 100644 --- a/pkg/gen/ghcmessages/update_allowance_payload.go +++ b/pkg/gen/ghcmessages/update_allowance_payload.go @@ -23,6 +23,9 @@ type UpdateAllowancePayload struct { // Example: true AccompaniedTour *bool `json:"accompaniedTour,omitempty"` + // Indicates if the customer is restricted to a specific location for their admin restricted weight. + AdminRestrictedWeightLocation *bool `json:"adminRestrictedWeightLocation,omitempty"` + // agency Agency *Affiliation `json:"agency,omitempty"` diff --git a/pkg/gen/primeapi/embedded_spec.go b/pkg/gen/primeapi/embedded_spec.go index 52039d783cc..5df9a70d690 100644 --- a/pkg/gen/primeapi/embedded_spec.go +++ b/pkg/gen/primeapi/embedded_spec.go @@ -1730,6 +1730,10 @@ func init() { "Entitlements": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", @@ -6624,6 +6628,10 @@ func init() { "Entitlements": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", diff --git a/pkg/gen/primemessages/entitlements.go b/pkg/gen/primemessages/entitlements.go index c51ada24273..a1e606a00aa 100644 --- a/pkg/gen/primemessages/entitlements.go +++ b/pkg/gen/primemessages/entitlements.go @@ -19,6 +19,10 @@ import ( // swagger:model Entitlements type Entitlements struct { + // admin restricted weight location + // Example: false + AdminRestrictedWeightLocation bool `json:"adminRestrictedWeightLocation,omitempty"` + // authorized weight // Example: 2000 AuthorizedWeight *int64 `json:"authorizedWeight,omitempty"` diff --git a/pkg/gen/primev2api/embedded_spec.go b/pkg/gen/primev2api/embedded_spec.go index f0468e10884..849b5f6783b 100644 --- a/pkg/gen/primev2api/embedded_spec.go +++ b/pkg/gen/primev2api/embedded_spec.go @@ -966,6 +966,10 @@ func init() { "Entitlements": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", @@ -4573,6 +4577,10 @@ func init() { "Entitlements": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", diff --git a/pkg/gen/primev2messages/entitlements.go b/pkg/gen/primev2messages/entitlements.go index e29d3f733e3..b39c4b64fd8 100644 --- a/pkg/gen/primev2messages/entitlements.go +++ b/pkg/gen/primev2messages/entitlements.go @@ -19,6 +19,10 @@ import ( // swagger:model Entitlements type Entitlements struct { + // admin restricted weight location + // Example: false + AdminRestrictedWeightLocation bool `json:"adminRestrictedWeightLocation,omitempty"` + // authorized weight // Example: 2000 AuthorizedWeight *int64 `json:"authorizedWeight,omitempty"` diff --git a/pkg/gen/primev3api/embedded_spec.go b/pkg/gen/primev3api/embedded_spec.go index bb5a844cfe0..b5fc1983191 100644 --- a/pkg/gen/primev3api/embedded_spec.go +++ b/pkg/gen/primev3api/embedded_spec.go @@ -1128,6 +1128,10 @@ func init() { "Entitlements": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", @@ -5382,6 +5386,10 @@ func init() { "Entitlements": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", diff --git a/pkg/gen/primev3messages/entitlements.go b/pkg/gen/primev3messages/entitlements.go index 1e228c6350f..d642d70f69b 100644 --- a/pkg/gen/primev3messages/entitlements.go +++ b/pkg/gen/primev3messages/entitlements.go @@ -19,6 +19,10 @@ import ( // swagger:model Entitlements type Entitlements struct { + // admin restricted weight location + // Example: false + AdminRestrictedWeightLocation bool `json:"adminRestrictedWeightLocation,omitempty"` + // authorized weight // Example: 2000 AuthorizedWeight *int64 `json:"authorizedWeight,omitempty"` diff --git a/pkg/gen/supportapi/embedded_spec.go b/pkg/gen/supportapi/embedded_spec.go index 31eea1917ec..c50b1a37c98 100644 --- a/pkg/gen/supportapi/embedded_spec.go +++ b/pkg/gen/supportapi/embedded_spec.go @@ -1110,6 +1110,10 @@ func init() { "Entitlement": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", @@ -3977,6 +3981,10 @@ func init() { "Entitlement": { "type": "object", "properties": { + "adminRestrictedWeightLocation": { + "type": "boolean", + "example": false + }, "authorizedWeight": { "type": "integer", "x-formatting": "weight", diff --git a/pkg/gen/supportmessages/entitlement.go b/pkg/gen/supportmessages/entitlement.go index 434ad8aeed3..4ae036d582c 100644 --- a/pkg/gen/supportmessages/entitlement.go +++ b/pkg/gen/supportmessages/entitlement.go @@ -19,6 +19,10 @@ import ( // swagger:model Entitlement type Entitlement struct { + // admin restricted weight location + // Example: false + AdminRestrictedWeightLocation bool `json:"adminRestrictedWeightLocation,omitempty"` + // authorized weight // Example: 2000 AuthorizedWeight *int64 `json:"authorizedWeight,omitempty"` diff --git a/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go b/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go index caa4aef11d5..482074aa402 100644 --- a/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go +++ b/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go @@ -717,6 +717,7 @@ func Entitlement(entitlement *models.Entitlement) *ghcmessages.Entitlements { } requiredMedicalEquipmentWeight := int64(entitlement.RequiredMedicalEquipmentWeight) gunSafe := entitlement.GunSafe + adminRestrictedWeightLocation := entitlement.AdminRestrictedWeightLocation var accompaniedTour *bool if entitlement.AccompaniedTour != nil { accompaniedTour = models.BoolPointer(*entitlement.AccompaniedTour) @@ -750,8 +751,9 @@ func Entitlement(entitlement *models.Entitlement) *ghcmessages.Entitlements { AccompaniedTour: accompaniedTour, UnaccompaniedBaggageAllowance: ubAllowance, OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, - GunSafe: gunSafe, - ETag: etag.GenerateEtag(entitlement.UpdatedAt), + GunSafe: gunSafe, + AdminRestrictedWeightLocation: adminRestrictedWeightLocation, + ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/primeapi/payloads/model_to_payload.go b/pkg/handlers/primeapi/payloads/model_to_payload.go index d5c76723fa4..57ae9b12a4b 100644 --- a/pkg/handlers/primeapi/payloads/model_to_payload.go +++ b/pkg/handlers/primeapi/payloads/model_to_payload.go @@ -217,6 +217,7 @@ func Entitlement(entitlement *models.Entitlement) *primemessages.Entitlements { UnaccompaniedBaggageAllowance: &ubAllowance, DependentsAuthorized: entitlement.DependentsAuthorized, GunSafe: entitlement.GunSafe, + AdminRestrictedWeightLocation: entitlement.AdminRestrictedWeightLocation, NonTemporaryStorage: entitlement.NonTemporaryStorage, PrivatelyOwnedVehicle: entitlement.PrivatelyOwnedVehicle, ProGearWeight: int64(entitlement.ProGearWeight), diff --git a/pkg/handlers/primeapiv2/payloads/model_to_payload.go b/pkg/handlers/primeapiv2/payloads/model_to_payload.go index 56ad6caabcb..2ece0f55833 100644 --- a/pkg/handlers/primeapiv2/payloads/model_to_payload.go +++ b/pkg/handlers/primeapiv2/payloads/model_to_payload.go @@ -162,6 +162,7 @@ func Entitlement(entitlement *models.Entitlement) *primev2messages.Entitlements UnaccompaniedBaggageAllowance: &ubAllowance, DependentsAuthorized: entitlement.DependentsAuthorized, GunSafe: entitlement.GunSafe, + AdminRestrictedWeightLocation: entitlement.AdminRestrictedWeightLocation, NonTemporaryStorage: entitlement.NonTemporaryStorage, PrivatelyOwnedVehicle: entitlement.PrivatelyOwnedVehicle, ProGearWeight: int64(entitlement.ProGearWeight), diff --git a/pkg/models/ghc_entitlements.go b/pkg/models/ghc_entitlements.go index 383caada3a7..7497291cb8c 100644 --- a/pkg/models/ghc_entitlements.go +++ b/pkg/models/ghc_entitlements.go @@ -31,6 +31,7 @@ type Entitlement struct { OrganizationalClothingAndIndividualEquipment bool `db:"organizational_clothing_and_individual_equipment"` ProGearWeight int `db:"pro_gear_weight"` ProGearWeightSpouse int `db:"pro_gear_weight_spouse"` + AdminRestrictedWeightLocation bool `db:"admin_restricted_weight_location"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` } diff --git a/pkg/services/order/order_updater.go b/pkg/services/order/order_updater.go index 38c991a112a..323bd7a0592 100644 --- a/pkg/services/order/order_updater.go +++ b/pkg/services/order/order_updater.go @@ -456,6 +456,10 @@ func allowanceFromTOOPayload(appCtx appcontext.AppContext, existingOrder models. order.Entitlement.GunSafe = *payload.GunSafe } + if payload.AdminRestrictedWeightLocation != nil { + order.Entitlement.AdminRestrictedWeightLocation = *payload.AdminRestrictedWeightLocation + } + if payload.AccompaniedTour != nil { order.Entitlement.AccompaniedTour = payload.AccompaniedTour } @@ -556,6 +560,10 @@ func allowanceFromCounselingPayload(appCtx appcontext.AppContext, existingOrder order.Entitlement.GunSafe = *payload.GunSafe } + if payload.AdminRestrictedWeightLocation != nil { + order.Entitlement.AdminRestrictedWeightLocation = *payload.AdminRestrictedWeightLocation + } + if payload.AccompaniedTour != nil { order.Entitlement.AccompaniedTour = payload.AccompaniedTour } diff --git a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx index 94d8bcc2dc3..edc345478ea 100644 --- a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx +++ b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx @@ -20,6 +20,8 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab entitlements?.dependentsTwelveAndOver || entitlements?.dependentsUnderTwelve ); + const [isAdminWeightLocationChecked, setIsAdminWeightLocationChecked] = useState(false); + useEffect(() => { // Functional component version of "componentDidMount" // By leaving the dependency array empty this will only run once @@ -164,8 +166,26 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab isDisabled={formIsDisabled} /> +
+ setIsAdminWeightLocationChecked(e.target.checked)} + /> + {isAdminWeightLocationChecked && ( + + )} +
-
Weight allowance
+
Standard Weight allowance
{formatWeight(entitlements.totalWeight)}
diff --git a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.test.jsx b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.test.jsx index 503ab865df3..fcf825bd404 100644 --- a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.test.jsx +++ b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.test.jsx @@ -159,3 +159,40 @@ describe('AllowancesDetailForm', () => { expect(screen.queryByLabelText(/Number of dependents of the age 12 or over/)).toBeInTheDocument(); }); }); +describe('AllowancesDetailForm additional tests', () => { + it('renders gun safe checkbox field', async () => { + render( + + + , + ); + + expect(await screen.findByTestId('gunSafeInput')).toBeInTheDocument(); + }); + + it('renders admin weight location section with conditional weight restriction field', async () => { + render( + + + , + ); + + const adminWeightCheckbox = await screen.findByTestId('adminWeightLocation'); + expect(adminWeightCheckbox).toBeInTheDocument(); + expect(screen.queryByTestId('weightRestrictionInput')).not.toBeInTheDocument(); + await act(async () => { + adminWeightCheckbox.click(); + }); + expect(screen.getByTestId('weightRestrictionInput')).toBeInTheDocument(); + }); + + it('displays the total weight allowance correctly', async () => { + render( + + + , + ); + + expect(await screen.findByTestId('weightAllowance')).toHaveTextContent('11,000'); + }); +}); diff --git a/src/components/Office/DefinitionLists/AllowancesList.jsx b/src/components/Office/DefinitionLists/AllowancesList.jsx index 3d5c1e850cc..3e0cf3dd93d 100644 --- a/src/components/Office/DefinitionLists/AllowancesList.jsx +++ b/src/components/Office/DefinitionLists/AllowancesList.jsx @@ -104,6 +104,14 @@ const AllowancesList = ({ info, showVisualCues }) => {
Gun Safe
{info.gunSafe ? 'Authorized' : 'Unauthorized'}
+
+
Admin Restricted Weight Location
+
{info.adminRestrictedWeightLocation ? 'Yes' : 'No'}
+
+
+
Weight Restriction
+
-
+
); diff --git a/src/constants/MoveHistory/Database/BooleanFields.js b/src/constants/MoveHistory/Database/BooleanFields.js index 91654232fd0..6dc78506343 100644 --- a/src/constants/MoveHistory/Database/BooleanFields.js +++ b/src/constants/MoveHistory/Database/BooleanFields.js @@ -12,6 +12,7 @@ export default { missing_receipt: 'missing_receipt', organizational_clothing_and_individual_equipment: 'organizational_clothing_and_individual_equipment', gun_safe: 'gun_safe', + admin_restricted_weight_location: 'admin_restricted_weight_location', email_is_preferred: 'email_is_preferred', phone_is_preferred: 'phone_is_preferred', uses_external_vendor: 'uses_external_vendor', diff --git a/src/constants/MoveHistory/Database/FieldMappings.js b/src/constants/MoveHistory/Database/FieldMappings.js index 737df5b08ae..1b216087f52 100644 --- a/src/constants/MoveHistory/Database/FieldMappings.js +++ b/src/constants/MoveHistory/Database/FieldMappings.js @@ -39,6 +39,7 @@ export default { required_medical_equipment_weight: 'Required medical equipment', organizational_clothing_and_individual_equipment: 'OCIE', gun_safe: 'Gun Safe', + admin_restricted_weight_location: 'Admin restricted weight location', requested_pickup_date: 'Requested pickup date', grade: 'Pay grade', shipment_type: 'Shipment type', diff --git a/src/pages/Office/MoveAllowances/MoveAllowances.jsx b/src/pages/Office/MoveAllowances/MoveAllowances.jsx index 9adf62bdc39..1412c39c972 100644 --- a/src/pages/Office/MoveAllowances/MoveAllowances.jsx +++ b/src/pages/Office/MoveAllowances/MoveAllowances.jsx @@ -98,6 +98,7 @@ const MoveAllowances = () => { organizationalClothingAndIndividualEquipment, storageInTransit, gunSafe, + adminRestrictedWeightLocation, accompaniedTour, dependentsTwelveAndOver, dependentsUnderTwelve, @@ -118,6 +119,7 @@ const MoveAllowances = () => { organizationalClothingAndIndividualEquipment, storageInTransit: Number(storageInTransit), gunSafe, + adminRestrictedWeightLocation, accompaniedTour, dependentsTwelveAndOver: Number(dependentsTwelveAndOver), dependentsUnderTwelve: Number(dependentsUnderTwelve), @@ -133,6 +135,7 @@ const MoveAllowances = () => { requiredMedicalEquipmentWeight, organizationalClothingAndIndividualEquipment, gunSafe, + adminRestrictedWeightLocation, storageInTransit, dependentsUnderTwelve, dependentsTwelveAndOver, @@ -148,6 +151,7 @@ const MoveAllowances = () => { requiredMedicalEquipmentWeight: `${requiredMedicalEquipmentWeight}`, organizationalClothingAndIndividualEquipment, gunSafe, + adminRestrictedWeightLocation, storageInTransit: `${storageInTransit}`, accompaniedTour, dependentsUnderTwelve: `${dependentsUnderTwelve}`, diff --git a/src/pages/Office/MoveDetails/MoveDetails.jsx b/src/pages/Office/MoveDetails/MoveDetails.jsx index d47156e3dc0..49209ee870b 100644 --- a/src/pages/Office/MoveDetails/MoveDetails.jsx +++ b/src/pages/Office/MoveDetails/MoveDetails.jsx @@ -410,6 +410,7 @@ const MoveDetails = ({ requiredMedicalEquipmentWeight: allowances.requiredMedicalEquipmentWeight, organizationalClothingAndIndividualEquipment: allowances.organizationalClothingAndIndividualEquipment, gunSafe: allowances.gunSafe, + adminRestrictedWeightLocation: allowances.adminRestrictedWeightLocation, dependentsUnderTwelve: allowances.dependentsUnderTwelve, dependentsTwelveAndOver: allowances.dependentsTwelveAndOver, accompaniedTour: allowances.accompaniedTour, diff --git a/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx b/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx index 98a85147767..c954518334c 100644 --- a/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx +++ b/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx @@ -86,6 +86,7 @@ const ServicesCounselingMoveAllowances = () => { organizationalClothingAndIndividualEquipment, storageInTransit, gunSafe, + adminRestrictedWeightLocation, accompaniedTour, dependentsTwelveAndOver, dependentsUnderTwelve, @@ -106,6 +107,7 @@ const ServicesCounselingMoveAllowances = () => { storageInTransit: Number(storageInTransit), organizationalClothingAndIndividualEquipment, gunSafe, + adminRestrictedWeightLocation, accompaniedTour, dependentsTwelveAndOver: Number(dependentsTwelveAndOver), dependentsUnderTwelve: Number(dependentsUnderTwelve), @@ -121,6 +123,7 @@ const ServicesCounselingMoveAllowances = () => { requiredMedicalEquipmentWeight, organizationalClothingAndIndividualEquipment, gunSafe, + adminRestrictedWeightLocation, storageInTransit, dependentsUnderTwelve, dependentsTwelveAndOver, @@ -136,6 +139,7 @@ const ServicesCounselingMoveAllowances = () => { requiredMedicalEquipmentWeight: `${requiredMedicalEquipmentWeight}`, storageInTransit: `${storageInTransit}`, gunSafe, + adminRestrictedWeightLocation, organizationalClothingAndIndividualEquipment, accompaniedTour, dependentsUnderTwelve: `${dependentsUnderTwelve}`, diff --git a/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx b/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx index 82e50380a2f..da6d6a2a34d 100644 --- a/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx +++ b/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx @@ -387,6 +387,7 @@ const ServicesCounselingMoveDetails = ({ requiredMedicalEquipmentWeight: allowances.requiredMedicalEquipmentWeight, organizationalClothingAndIndividualEquipment: allowances.organizationalClothingAndIndividualEquipment, gunSafe: allowances.gunSafe, + adminRestrictedWeightLocation: allowances.adminRestrictedWeightLocation, dependentsUnderTwelve: allowances.dependentsUnderTwelve, dependentsTwelveAndOver: allowances.dependentsTwelveAndOver, accompaniedTour: allowances.accompaniedTour, diff --git a/swagger-def/definitions/prime/Entitlements.yaml b/swagger-def/definitions/prime/Entitlements.yaml index 5722870f9d7..8a95dccf41c 100644 --- a/swagger-def/definitions/prime/Entitlements.yaml +++ b/swagger-def/definitions/prime/Entitlements.yaml @@ -21,6 +21,9 @@ properties: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean diff --git a/swagger-def/ghc.yaml b/swagger-def/ghc.yaml index a0df07f3800..c39682a8598 100644 --- a/swagger-def/ghc.yaml +++ b/swagger-def/ghc.yaml @@ -1,4 +1,4 @@ -swagger: '2.0' +swagger: "2.0" info: contact: email: milmove-developers@caci.com @@ -6,7 +6,7 @@ info: $ref: info/ghc_description.md license: name: MIT - url: 'https://opensource.org/licenses/MIT' + url: "https://opensource.org/licenses/MIT" title: MilMove GHC API version: 0.0.1 basePath: /ghc/v1 @@ -15,7 +15,7 @@ schemes: tags: - name: queues - name: move - - $ref: 'tags/order.yaml' + - $ref: "tags/order.yaml" - name: moveTaskOrder - name: customer - name: mtoServiceItem @@ -31,7 +31,7 @@ tags: - name: paymentRequests - name: reServiceItems paths: - '/customer': + "/customer": post: summary: Creates a customer with Okta option description: Creates a customer with option to also create an Okta profile account based on the office user's input when completing the UI form and submitting. @@ -47,28 +47,28 @@ paths: name: body required: true schema: - $ref: '#/definitions/CreateCustomerPayload' + $ref: "#/definitions/CreateCustomerPayload" responses: - '200': + "200": description: successfully created the customer schema: - $ref: '#/definitions/CreatedCustomer' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/CreatedCustomer" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /open/requested-office-users: post: consumes: @@ -92,19 +92,19 @@ paths: name: officeUser description: Office User information schema: - $ref: '#/definitions/OfficeUserCreate' + $ref: "#/definitions/OfficeUserCreate" responses: - '201': + "201": description: successfully requested the creation of provided office user schema: - $ref: '#/definitions/OfficeUser' - '422': + $ref: "#/definitions/OfficeUser" + "422": description: validation error schema: - $ref: '#/definitions/ValidationError' - '500': + $ref: "#/definitions/ValidationError" + "500": description: internal server error - '/customer/{customerID}': + "/customer/{customerID}": parameters: - description: ID of customer to use in: path @@ -117,20 +117,20 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved information on an individual customer schema: - $ref: '#/definitions/Customer' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Customer" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - customer description: Returns a given customer @@ -151,30 +151,30 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateCustomerPayload' + $ref: "#/definitions/UpdateCustomerPayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated instance of orders schema: - $ref: '#/definitions/Customer' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Customer" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.customer /customer/search: @@ -223,22 +223,30 @@ paths: sort: type: string x-nullable: true - enum: [customerName, edipi, emplid, branch, personalEmail, telephone] + enum: + [ + customerName, + edipi, + emplid, + branch, + personalEmail, + telephone, + ] order: type: string x-nullable: true enum: [asc, desc] description: field that results should be sorted by responses: - '200': + "200": description: Successfully returned all customers matching the criteria schema: - $ref: '#/definitions/SearchCustomersResult' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' - '/move/{locator}': + $ref: "#/definitions/SearchCustomersResult" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" + "/move/{locator}": parameters: - description: Code used to identify a move in the system in: path @@ -250,26 +258,26 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved the individual move schema: - $ref: '#/definitions/Move' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - move description: Returns a given move for a unique alphanumeric locator string summary: Returns a given move operationId: getMove - '/move/{locator}/history': + "/move/{locator}/history": parameters: - description: Code used to identify a move in the system in: path @@ -289,26 +297,26 @@ paths: type: integer description: results per page responses: - '200': + "200": description: Successfully retrieved the individual move history schema: - $ref: '#/definitions/MoveHistoryResult' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/MoveHistoryResult" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - move description: Returns the history for a given move for a unique alphanumeric locator string summary: Returns the history of an identified move operationId: getMoveHistory - '/moves/{moveID}/shipment-evaluation-reports-list': + "/moves/{moveID}/shipment-evaluation-reports-list": parameters: - description: Code used to identify a move in the system in: path @@ -320,26 +328,26 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully retrieved the move's evaluation reports schema: - $ref: '#/definitions/EvaluationReportList' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/EvaluationReportList" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - move description: Returns shipment evaluation reports for the specified move that are visible to the current office user summary: Returns shipment evaluation reports for the specified move that are visible to the current office user operationId: getMoveShipmentEvaluationReportsList - '/moves/{moveID}/counseling-evaluation-reports-list': + "/moves/{moveID}/counseling-evaluation-reports-list": parameters: - description: Code used to identify a move in the system in: path @@ -351,26 +359,26 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully retrieved the move's evaluation reports schema: - $ref: '#/definitions/EvaluationReportList' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/EvaluationReportList" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - move description: Returns counseling evaluation reports for the specified move that are visible to the current office user summary: Returns counseling evaluation reports for the specified move that are visible to the current office user operationId: getMoveCounselingEvaluationReportsList - '/moves/{moveID}/cancel': + "/moves/{moveID}/cancel": parameters: - description: ID of the move in: path @@ -385,22 +393,22 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully canceled move schema: - $ref: '#/definitions/Move' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - move description: cancels a move @@ -408,7 +416,7 @@ paths: summary: Cancels a move x-permissions: - update.cancelMoveFlag - '/counseling/orders/{orderID}': + "/counseling/orders/{orderID}": parameters: - description: ID of order to update in: path @@ -431,27 +439,27 @@ paths: name: body required: true schema: - $ref: '#/definitions/CounselingUpdateOrderPayload' + $ref: "#/definitions/CounselingUpdateOrderPayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated instance of orders schema: - $ref: '#/definitions/Order' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/orders': + $ref: "#/definitions/Order" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/orders": post: summary: Creates an orders model for a logged-in user description: Creates an instance of orders tied to a service member, which allow for creation of a move and an entitlement. Orders are required before the creation of a move @@ -466,23 +474,23 @@ paths: - in: body name: createOrders schema: - $ref: '#/definitions/CreateOrders' + $ref: "#/definitions/CreateOrders" responses: - '200': + "200": description: created instance of orders schema: - $ref: '#/definitions/Order' - '400': + $ref: "#/definitions/Order" + "400": description: invalid request - '401': + "401": description: request requires user authentication - '403': + "403": description: user is not authorized - '422': - $ref: '#/responses/UnprocessableEntity' - '500': + "422": + $ref: "#/responses/UnprocessableEntity" + "500": description: internal server error - '/orders/{orderID}': + "/orders/{orderID}": parameters: - description: ID of order to use in: path @@ -505,30 +513,30 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateOrderPayload' + $ref: "#/definitions/UpdateOrderPayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated instance of orders schema: - $ref: '#/definitions/Order' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Order" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.orders get: @@ -536,26 +544,26 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved order schema: - $ref: '#/definitions/Order' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Order" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - order description: Gets an order operationId: getOrder summary: Gets an order by ID - '/orders/{orderID}/allowances': + "/orders/{orderID}/allowances": parameters: - description: ID of order to use in: path @@ -578,29 +586,29 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateAllowancePayload' + $ref: "#/definitions/UpdateAllowancePayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated instance of allowance schema: - $ref: '#/definitions/Order' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Order" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.allowances - '/orders/{orderID}/acknowledge-excess-weight-risk': + "/orders/{orderID}/acknowledge-excess-weight-risk": parameters: - description: ID of order to use in: path @@ -624,23 +632,23 @@ paths: type: string required: true responses: - '200': + "200": description: updated Move schema: - $ref: '#/definitions/Move' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.excessWeightRisk - '/orders/{orderID}/update-billable-weight': + "/orders/{orderID}/update-billable-weight": parameters: - description: ID of order to use in: path @@ -663,29 +671,29 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateBillableWeightPayload' + $ref: "#/definitions/UpdateBillableWeightPayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated Order schema: - $ref: '#/definitions/Order' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Order" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.billableWeight - '/orders/{orderID}/update-max-billable-weight/tio': + "/orders/{orderID}/update-max-billable-weight/tio": parameters: - description: ID of order to use in: path @@ -708,23 +716,23 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateMaxBillableWeightAsTIOPayload' - - $ref: 'parameters/ifMatch.yaml' + $ref: "#/definitions/UpdateMaxBillableWeightAsTIOPayload" + - $ref: "parameters/ifMatch.yaml" responses: - '200': + "200": description: updated Order schema: - $ref: '#/definitions/Order' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Order" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.maxBillableWeight /orders/{orderID}/upload_amended_orders: @@ -749,23 +757,23 @@ paths: description: The file to upload. required: true responses: - '201': + "201": description: created upload schema: - $ref: 'definitions/Upload.yaml' - '400': + $ref: "definitions/Upload.yaml" + "400": description: invalid request schema: - $ref: '#/definitions/InvalidRequestResponsePayload' - '403': + $ref: "#/definitions/InvalidRequestResponsePayload" + "403": description: not authorized - '404': + "404": description: not found - '413': + "413": description: payload is too large - '500': + "500": description: server error - '/counseling/orders/{orderID}/allowances': + "/counseling/orders/{orderID}/allowances": parameters: - description: ID of order to use in: path @@ -788,27 +796,27 @@ paths: name: body required: true schema: - $ref: '#/definitions/CounselingUpdateAllowancePayload' + $ref: "#/definitions/CounselingUpdateAllowancePayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated instance of allowance schema: - $ref: '#/definitions/Order' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/move-task-orders/{moveTaskOrderID}': + $ref: "#/definitions/Order" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/move-task-orders/{moveTaskOrderID}": parameters: - description: ID of move to use in: path @@ -820,26 +828,26 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved move task order schema: - $ref: '#/definitions/MoveTaskOrder' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/MoveTaskOrder" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - moveTaskOrder description: Gets a move operationId: getMoveTaskOrder summary: Gets a move by ID - '/move_task_orders/{moveTaskOrderID}/mto_service_items': + "/move_task_orders/{moveTaskOrderID}/mto_service_items": parameters: - description: ID of move for mto service item to use in: path @@ -852,22 +860,22 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved all line items for a move task order schema: - $ref: 'definitions/MTOServiceItems.yaml' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOServiceItems.yaml" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - mtoServiceItem description: Gets all line items for a move operationId: listMTOServiceItems summary: Gets all line items for a move - '/mto-shipments': + "/mto-shipments": post: summary: createMTOShipment description: | @@ -894,21 +902,21 @@ paths: - in: body name: body schema: - $ref: '#/definitions/CreateMTOShipment' + $ref: "#/definitions/CreateMTOShipment" responses: - '200': + "200": description: Successfully created a MTO shipment. schema: - $ref: 'definitions/MTOShipment.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/move_task_orders/{moveTaskOrderID}/mto_shipments': + $ref: "definitions/MTOShipment.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/move_task_orders/{moveTaskOrderID}/mto_shipments": parameters: - description: ID of move task order for mto shipment to use in: path @@ -921,24 +929,24 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved all mto shipments for a move task order schema: - $ref: '#/definitions/MTOShipments' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/MTOShipments" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - mtoShipment description: Gets all shipments for a move task order operationId: listMTOShipments summary: Gets all shipments for a move task order - '/shipments/{shipmentID}': + "/shipments/{shipmentID}": get: summary: fetches a shipment by ID description: fetches a shipment by ID @@ -955,20 +963,20 @@ paths: format: uuid type: string responses: - '200': + "200": description: Successfully fetched the shipment schema: - $ref: '#/definitions/MTOShipment' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/MTOShipment" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" delete: summary: Soft deletes a shipment by ID description: Soft deletes a shipment by ID @@ -985,21 +993,21 @@ paths: format: uuid type: string responses: - '204': + "204": description: Successfully soft deleted the shipment - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/move_task_orders/{moveTaskOrderID}/mto_shipments/{shipmentID}': + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/move_task_orders/{moveTaskOrderID}/mto_shipments/{shipmentID}": patch: summary: updateMTOShipment description: | @@ -1052,27 +1060,27 @@ paths: - in: body name: body schema: - $ref: '#/definitions/UpdateShipment' + $ref: "#/definitions/UpdateShipment" responses: - '200': + "200": description: Successfully updated the specified MTO shipment. schema: - $ref: 'definitions/MTOShipment.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/shipments/{shipmentID}/approve': + $ref: "definitions/MTOShipment.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/shipments/{shipmentID}/approve": parameters: - description: ID of the shipment in: path @@ -1091,22 +1099,22 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully approved the shipment schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment description: Approves a shipment @@ -1114,7 +1122,7 @@ paths: summary: Approves a shipment x-permissions: - update.shipment - '/shipments/{shipmentID}/request-diversion': + "/shipments/{shipmentID}/request-diversion": parameters: - description: ID of the shipment in: path @@ -1136,24 +1144,24 @@ paths: name: body required: true schema: - $ref: '#/definitions/RequestDiversion' + $ref: "#/definitions/RequestDiversion" responses: - '200': + "200": description: Successfully requested the shipment diversion schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment description: Requests a shipment diversion @@ -1161,7 +1169,7 @@ paths: summary: Requests a shipment diversion x-permissions: - create.shipmentDiversionRequest - '/shipments/{shipmentID}/approve-diversion': + "/shipments/{shipmentID}/approve-diversion": parameters: - description: ID of the shipment in: path @@ -1180,22 +1188,22 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully approved the shipment diversion schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.shipment tags: @@ -1203,7 +1211,7 @@ paths: description: Approves a shipment diversion operationId: approveShipmentDiversion summary: Approves a shipment diversion - '/shipments/{shipmentID}/reject': + "/shipments/{shipmentID}/reject": parameters: - description: ID of the shipment in: path @@ -1225,30 +1233,30 @@ paths: name: body required: true schema: - $ref: '#/definitions/RejectShipment' + $ref: "#/definitions/RejectShipment" responses: - '200': + "200": description: Successfully rejected the shipment schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment description: rejects a shipment operationId: rejectShipment summary: rejects a shipment - '/shipments/{shipmentID}/request-cancellation': + "/shipments/{shipmentID}/request-cancellation": parameters: - description: ID of the shipment in: path @@ -1267,22 +1275,22 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully requested the shipment cancellation schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment description: Requests a shipment cancellation @@ -1290,7 +1298,7 @@ paths: summary: Requests a shipment cancellation x-permissions: - create.shipmentCancellation - '/shipments/{shipmentID}/request-reweigh': + "/shipments/{shipmentID}/request-reweigh": parameters: - description: ID of the shipment in: path @@ -1304,22 +1312,22 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully requested a reweigh of the shipment schema: - $ref: 'definitions/Reweigh.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/Reweigh.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment - reweigh @@ -1328,7 +1336,7 @@ paths: summary: Requests a shipment reweigh x-permissions: - create.reweighRequest - '/shipments/{shipmentID}/review-shipment-address-update': + "/shipments/{shipmentID}/review-shipment-address-update": parameters: - description: ID of the shipment in: path @@ -1362,29 +1370,30 @@ paths: - officeRemarks - status responses: - '200': + "200": description: Successfully requested a shipment address update schema: - $ref: 'definitions/ShipmentAddressUpdate.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/ShipmentAddressUpdate.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment - description: This endpoint is used to approve a address update request. Office remarks are required. + description: + This endpoint is used to approve a address update request. Office remarks are required. Approving the address update will update the Destination Final Address of the associated service item operationId: reviewShipmentAddressUpdate summary: Allows TOO to review a shipment address update - '/shipments/{shipmentID}/sit-extensions': + "/shipments/{shipmentID}/sit-extensions": post: summary: Create an approved SIT Duration Update description: TOO can creates an already-approved SIT Duration Update on behalf of a customer @@ -1406,7 +1415,7 @@ paths: - in: body name: body schema: - $ref: '#/definitions/CreateApprovedSITDurationUpdate' + $ref: "#/definitions/CreateApprovedSITDurationUpdate" required: true - in: header description: We want the shipment's eTag rather than the SIT Duration Update eTag as the SIT Duration Update is always associated with a shipment @@ -1414,23 +1423,23 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully created a SIT Extension. schema: - $ref: 'definitions/MTOShipment.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - create.SITExtension - '/shipments/{shipmentID}/sit-extensions/{sitExtensionID}/approve': + "/shipments/{shipmentID}/sit-extensions/{sitExtensionID}/approve": parameters: - description: ID of the shipment in: path @@ -1454,29 +1463,29 @@ paths: name: body required: true schema: - $ref: '#/definitions/ApproveSITExtension' + $ref: "#/definitions/ApproveSITExtension" - in: header description: We want the shipment's eTag rather than the SIT extension eTag as the SIT extension is always associated with a shipment name: If-Match type: string required: true responses: - '200': + "200": description: Successfully approved a SIT extension schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment - sitExtension @@ -1485,7 +1494,7 @@ paths: summary: Approves a SIT extension x-permissions: - update.SITExtension - '/shipments/{shipmentID}/sit-extensions/{sitExtensionID}/deny': + "/shipments/{shipmentID}/sit-extensions/{sitExtensionID}/deny": parameters: - description: ID of the shipment in: path @@ -1509,28 +1518,28 @@ paths: name: body required: true schema: - $ref: '#/definitions/DenySITExtension' + $ref: "#/definitions/DenySITExtension" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: Successfully denied a SIT extension schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment - sitExtension @@ -1539,7 +1548,7 @@ paths: summary: Denies a SIT extension x-permissions: - update.SITExtension - '/shipments/{shipmentID}/sit-service-item/convert-to-customer-expense': + "/shipments/{shipmentID}/sit-service-item/convert-to-customer-expense": parameters: - description: ID of the shipment in: path @@ -1557,28 +1566,28 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateSITServiceItemCustomerExpense' + $ref: "#/definitions/UpdateSITServiceItemCustomerExpense" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: Successfully converted to customer expense schema: - $ref: 'definitions/MTOShipment.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOShipment.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - shipment - mtoServiceItem @@ -1608,22 +1617,22 @@ paths: produces: - application/json responses: - '200': + "200": description: All PPM documents and associated uploads for the specified PPM shipment. schema: - $ref: 'definitions/PPMDocuments.yaml' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/PPMDocuments.yaml" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/weight-ticket/{weightTicketId}: parameters: - - $ref: 'parameters/ppmShipmentId.yaml' - - $ref: 'parameters/weightTicketId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" + - $ref: "parameters/weightTicketId.yaml" patch: summary: Updates a weight ticket document description: | @@ -1637,35 +1646,35 @@ paths: produces: - application/json parameters: - - $ref: 'parameters/ifMatch.yaml' + - $ref: "parameters/ifMatch.yaml" - in: body name: updateWeightTicketPayload required: true schema: - $ref: '#/definitions/UpdateWeightTicket' + $ref: "#/definitions/UpdateWeightTicket" responses: - '200': + "200": description: returns an updated weight ticket object schema: - $ref: 'definitions/WeightTicket.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/WeightTicket.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/moving-expenses/{movingExpenseId}: parameters: - - $ref: 'parameters/ppmShipmentId.yaml' - - $ref: 'parameters/movingExpenseId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" + - $ref: "parameters/movingExpenseId.yaml" patch: summary: Updates the moving expense description: | @@ -1679,35 +1688,35 @@ paths: produces: - application/json parameters: - - $ref: 'parameters/ifMatch.yaml' + - $ref: "parameters/ifMatch.yaml" - in: body name: updateMovingExpense required: true schema: - $ref: '#/definitions/UpdateMovingExpense' + $ref: "#/definitions/UpdateMovingExpense" responses: - '200': + "200": description: returns an updated moving expense object schema: - $ref: 'definitions/MovingExpense.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - /ppm-shipments/{ppmShipmentId}/pro-gear-weight-tickets/{proGearWeightTicketId}: - parameters: - - $ref: 'parameters/ppmShipmentId.yaml' - - $ref: 'parameters/proGearWeightTicketId.yaml' + $ref: "definitions/MovingExpense.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + ? /ppm-shipments/{ppmShipmentId}/pro-gear-weight-tickets/{proGearWeightTicketId} + : parameters: + - $ref: "parameters/ppmShipmentId.yaml" + - $ref: "parameters/proGearWeightTicketId.yaml" patch: summary: Updates a pro-gear weight ticket description: | @@ -1721,31 +1730,31 @@ paths: produces: - application/json parameters: - - $ref: 'parameters/ifMatch.yaml' + - $ref: "parameters/ifMatch.yaml" - in: body name: updateProGearWeightTicket required: true schema: - $ref: '#/definitions/UpdateProGearWeightTicket' + $ref: "#/definitions/UpdateProGearWeightTicket" responses: - '200': + "200": description: returns an updated pro-gear weight ticket object schema: - $ref: 'definitions/ProGearWeightTicket.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/ProGearWeightTicket.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/aoa-packet: parameters: - description: the id for the ppmshipment with aoa to be downloaded @@ -1767,7 +1776,7 @@ paths: produces: - application/pdf responses: - '200': + "200": headers: Content-Disposition: type: string @@ -1776,19 +1785,19 @@ paths: schema: format: binary type: file - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/finish-document-review: parameters: - - $ref: 'parameters/ppmShipmentId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" patch: summary: Updates a PPM shipment's status after document review description: | @@ -1806,26 +1815,26 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully finished document review schema: - $ref: 'definitions/PPMShipment.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/PPMShipment.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.shipment /ppm-shipments/{ppmShipmentId}/ppm-sit: @@ -1841,7 +1850,7 @@ paths: produces: - application/json parameters: - - $ref: 'parameters/ppmShipmentId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" - in: header name: If-Match type: string @@ -1849,27 +1858,27 @@ paths: - in: body name: body schema: - $ref: 'definitions/PPMShipmentSIT.yaml' + $ref: "definitions/PPMShipmentSIT.yaml" responses: - '200': + "200": description: Successfully finished PPM SIT update schema: - $ref: 'definitions/PPMShipment.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/PPMShipment.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/closeout: parameters: - - $ref: 'parameters/ppmShipmentId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" get: summary: Get the closeout calcuations for the specified PPM shipment description: | @@ -1880,23 +1889,23 @@ paths: produces: - application/json responses: - '200': + "200": description: Returns closeout for the specified PPM shipment. schema: - $ref: 'definitions/PPMCloseout.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/PPMCloseout.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/actual-weight: parameters: - - $ref: 'parameters/ppmShipmentId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" get: summary: Get the actual weight for a PPM shipment description: | @@ -1907,23 +1916,23 @@ paths: produces: - application/json responses: - '200': + "200": description: Returns actual weight for the specified PPM shipment. schema: - $ref: 'definitions/PPMActualWeight.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/PPMActualWeight.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/sit_location/{sitLocation}/sit-estimated-cost: parameters: - - $ref: 'parameters/ppmShipmentId.yaml' + - $ref: "parameters/ppmShipmentId.yaml" - in: path format: string description: location of sit @@ -1961,20 +1970,20 @@ paths: produces: - application/json responses: - '200': + "200": description: Calculates and returns the SIT estimated cost for the specified PPM shipment. schema: - $ref: 'definitions/PPMSITEstimatedCost.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/PPMSITEstimatedCost.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /ppm-shipments/{ppmShipmentId}/payment-packet: get: summary: Returns PPM payment packet @@ -1992,7 +2001,7 @@ paths: produces: - application/pdf responses: - '200': + "200": headers: Content-Disposition: type: string @@ -2001,17 +2010,17 @@ paths: schema: format: binary type: file - '400': + "400": description: invalid request - '401': + "401": description: request requires user authentication - '403': + "403": description: user is not authorized - '404': + "404": description: ppm not found - '500': + "500": description: internal server error - '/move_task_orders/{moveTaskOrderID}/mto_shipments/{shipmentID}/mto-agents': + "/move_task_orders/{moveTaskOrderID}/mto_shipments/{shipmentID}/mto-agents": parameters: - description: ID of move task order in: path @@ -2030,22 +2039,22 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved all agents for a move task order schema: - $ref: 'definitions/MTOAgents.yaml' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOAgents.yaml" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - mtoAgent description: Fetches a list of agents associated with a move task order. operationId: fetchMTOAgentList summary: Fetch move task order agents. - '/move-task-orders/{moveTaskOrderID}/service-items/{mtoServiceItemID}': + "/move-task-orders/{moveTaskOrderID}/service-items/{mtoServiceItemID}": parameters: - description: ID of move to use in: path @@ -2062,26 +2071,26 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved a line item for a move task order by ID schema: - $ref: 'definitions/MTOServiceItemSingle.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOServiceItemSingle.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - mtoServiceItem description: Gets a line item by ID for a move by ID operationId: getMTOServiceItem summary: Gets a line item by ID for a move by ID - '/move-task-orders/{moveTaskOrderID}/service-items/{mtoServiceItemID}/status': + "/move-task-orders/{moveTaskOrderID}/service-items/{mtoServiceItemID}/status": parameters: - description: ID of move to use in: path @@ -2103,32 +2112,32 @@ paths: name: body required: true schema: - $ref: '#/definitions/PatchMTOServiceItemStatusPayload' + $ref: "#/definitions/PatchMTOServiceItemStatusPayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: >- Successfully updated status for a line item for a move task order by ID schema: - $ref: 'definitions/MTOServiceItem.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOServiceItem.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - mtoServiceItem description: Changes the status of a line item for a move by ID @@ -2136,7 +2145,7 @@ paths: summary: Change the status of a line item for a move by ID x-permissions: - update.MTOServiceItem - '/service-item/{mtoServiceItemID}/entry-date-update': + "/service-item/{mtoServiceItemID}/entry-date-update": parameters: - description: ID of the service item in: path @@ -2153,32 +2162,32 @@ paths: name: body required: true schema: - $ref: 'definitions/ServiceItemSitEntryDate.yaml' + $ref: "definitions/ServiceItemSitEntryDate.yaml" responses: - '200': + "200": description: Successfully updated SIT entry date schema: - $ref: 'definitions/MTOServiceItemSingle.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/MTOServiceItemSingle.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - mtoServiceItem description: Locates the service item in the database and updates the SIT entry date for the selected service item and returns the service item operationId: updateServiceItemSitEntryDate summary: Updates a service item's SIT entry date by ID - '/move-task-orders/{moveTaskOrderID}/status': + "/move-task-orders/{moveTaskOrderID}/status": patch: consumes: - application/json @@ -2197,29 +2206,29 @@ paths: - in: body name: serviceItemCodes schema: - $ref: '#/definitions/MTOApprovalServiceItemCodes' + $ref: "#/definitions/MTOApprovalServiceItemCodes" required: true responses: - '200': + "200": description: Successfully updated move task order status schema: - $ref: '#/definitions/Move' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - moveTaskOrder description: Changes move task order status to make it available to prime @@ -2228,7 +2237,7 @@ paths: x-permissions: - update.move - create.serviceItem - '/move-task-orders/{moveTaskOrderID}/status/service-counseling-completed': + "/move-task-orders/{moveTaskOrderID}/status/service-counseling-completed": patch: consumes: - application/json @@ -2245,33 +2254,33 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully updated move task order status schema: - $ref: '#/definitions/Move' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - moveTaskOrder description: Changes move (move task order) status to service counseling completed operationId: updateMTOStatusServiceCounselingCompleted summary: Changes move (move task order) status to service counseling completed - '/move-task-orders/{moveTaskOrderID}/payment-service-items/{paymentServiceItemID}/status': - parameters: + ? "/move-task-orders/{moveTaskOrderID}/payment-service-items/{paymentServiceItemID}/status" + : parameters: - description: ID of move to use in: path name: moveTaskOrderID @@ -2292,32 +2301,32 @@ paths: name: body required: true schema: - $ref: '#/definitions/PaymentServiceItem' + $ref: "#/definitions/PaymentServiceItem" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: >- Successfully updated status for a line item for a move task order by ID schema: - $ref: '#/definitions/PaymentServiceItem' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/PaymentServiceItem" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - paymentServiceItem description: Changes the status of a line item for a move by ID @@ -2325,7 +2334,7 @@ paths: summary: Change the status of a payment service item for a move by ID x-permissions: - update.paymentServiceItemStatus - '/move-task-orders/{moveTaskOrderID}/billable-weights-reviewed-at': + "/move-task-orders/{moveTaskOrderID}/billable-weights-reviewed-at": patch: consumes: - application/json @@ -2342,31 +2351,31 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully updated move task order billableWeightsReviewedAt field schema: - $ref: '#/definitions/Move' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - moveTaskOrder description: Changes move (move task order) billableWeightsReviewedAt field to a timestamp operationId: updateMTOReviewedBillableWeightsAt - '/move-task-orders/{moveTaskOrderID}/tio-remarks': + "/move-task-orders/{moveTaskOrderID}/tio-remarks": patch: consumes: - application/json @@ -2386,33 +2395,33 @@ paths: name: body required: true schema: - $ref: '#/definitions/Move' + $ref: "#/definitions/Move" responses: - '200': + "200": description: Successfully updated move task order tioRemarks field schema: - $ref: '#/definitions/Move' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - moveTaskOrder description: Changes move (move task order) billableWeightsReviewedAt field to a timestamp operationId: updateMoveTIORemarks - '/move-task-orders/{moveTaskOrderID}/entitlements': + "/move-task-orders/{moveTaskOrderID}/entitlements": parameters: - description: ID of move to use in: path @@ -2426,24 +2435,24 @@ paths: tags: - moveTaskOrder responses: - '200': + "200": description: Successfully retrieved entitlements schema: - $ref: '#/definitions/Entitlements' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Entitlements" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" description: Gets entitlements operationId: getEntitlements summary: Gets entitlements for a move by ID - '/payment-requests/{paymentRequestID}': + "/payment-requests/{paymentRequestID}": parameters: - description: UUID of payment request format: uuid @@ -2456,20 +2465,20 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: fetched instance of payment request schema: - $ref: '#/definitions/PaymentRequest' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/PaymentRequest" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - paymentRequests description: Fetches an instance of a payment request by id @@ -2477,7 +2486,7 @@ paths: summary: Fetches a payment request by id x-permissions: - read.paymentRequest - '/moves/{locator}/closeout-office': + "/moves/{locator}/closeout-office": parameters: - description: move code to identify a move to update the PPM shipment's closeout office for Army and Air Force service members format: string @@ -2512,25 +2521,25 @@ paths: type: string required: true responses: - '200': + "200": description: Successfully set the closeout office for the move schema: - $ref: '#/definitions/Move' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/moves/{locator}/customer-support-remarks': + $ref: "#/definitions/Move" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/moves/{locator}/customer-support-remarks": parameters: - description: move code to identify a move for customer support remarks format: string @@ -2547,20 +2556,20 @@ paths: - in: body name: body schema: - $ref: '#/definitions/CreateCustomerSupportRemark' + $ref: "#/definitions/CreateCustomerSupportRemark" responses: - '200': + "200": description: Successfully created customer support remark schema: - $ref: 'definitions/CustomerSupportRemark.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/CustomerSupportRemark.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - customerSupportRemarks description: Creates a customer support remark for a move @@ -2571,24 +2580,24 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved all line items for a move task order schema: - $ref: 'definitions/CustomerSupportRemarks.yaml' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/CustomerSupportRemarks.yaml" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - customerSupportRemarks description: Fetches customer support remarks for a move operationId: getCustomerSupportRemarksForMove summary: Fetches customer support remarks using the move code (locator). - '/customer-support-remarks/{customerSupportRemarkID}': + "/customer-support-remarks/{customerSupportRemarkID}": parameters: - in: path description: the customer support remark ID to be modified @@ -2611,22 +2620,22 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdateCustomerSupportRemarkPayload' + $ref: "#/definitions/UpdateCustomerSupportRemarkPayload" responses: - '200': + "200": description: Successfully updated customer support remark schema: - $ref: 'definitions/CustomerSupportRemark.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/CustomerSupportRemark.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" delete: summary: Soft deletes a customer support remark by ID description: Soft deletes a customer support remark by ID @@ -2636,21 +2645,21 @@ paths: produces: - application/json responses: - '204': + "204": description: Successfully soft deleted the shipment - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/moves/{locator}/evaluation-reports': + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/moves/{locator}/evaluation-reports": parameters: - in: path name: locator @@ -2665,20 +2674,20 @@ paths: - in: body name: body schema: - $ref: '#/definitions/CreateEvaluationReport' + $ref: "#/definitions/CreateEvaluationReport" responses: - '200': + "200": description: Successfully created evaluation report schema: - $ref: '#/definitions/EvaluationReport' - '400': - $ref: '#/responses/InvalidRequest' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/EvaluationReport" + "400": + $ref: "#/responses/InvalidRequest" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - create.evaluationReport tags: @@ -2686,7 +2695,7 @@ paths: description: Creates an evaluation report operationId: createEvaluationReport summary: Creates an evaluation report - '/evaluation-reports/{reportID}/download': + "/evaluation-reports/{reportID}/download": parameters: - in: path description: the evaluation report ID to be downloaded @@ -2703,7 +2712,7 @@ paths: produces: - application/pdf responses: - '200': + "200": headers: Content-Disposition: type: string @@ -2712,13 +2721,13 @@ paths: schema: format: binary type: file - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' - '/evaluation-reports/{reportID}': + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" + "/evaluation-reports/{reportID}": parameters: - in: path description: the evaluation report ID to be modified @@ -2735,18 +2744,18 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully got the report schema: - $ref: '#/definitions/EvaluationReport' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/EvaluationReport" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" delete: summary: Deletes an evaluation report by ID description: Deletes an evaluation report by ID @@ -2758,20 +2767,20 @@ paths: produces: - application/json responses: - '204': + "204": description: Successfully deleted the report - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" put: summary: Saves an evaluation report as a draft description: Saves an evaluation report as a draft @@ -2788,7 +2797,7 @@ paths: - in: body name: body schema: - $ref: '#/definitions/EvaluationReport' + $ref: "#/definitions/EvaluationReport" - in: header name: If-Match type: string @@ -2797,23 +2806,23 @@ paths: Optimistic locking is implemented via the `If-Match` header. If the ETag header does not match the value of the resource on the server, the server rejects the change with a `412 Precondition Failed` error. responses: - '204': + "204": description: Successfully saved the report - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' - '/evaluation-reports/{reportID}/submit': + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" + "/evaluation-reports/{reportID}/submit": parameters: - in: path description: the evaluation report ID to be modified @@ -2838,21 +2847,21 @@ paths: Optimistic locking is implemented via the `If-Match` header. If the ETag header does not match the value of the resource on the server, the server rejects the change with a `412 Precondition Failed` error. responses: - '204': + "204": description: Successfully submitted an evaluation report with the provided ID - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.evaluationReport - '/evaluation-reports/{reportID}/appeal/add': + "/evaluation-reports/{reportID}/appeal/add": parameters: - in: path description: the evaluation report ID @@ -2874,23 +2883,23 @@ paths: - in: body name: body schema: - $ref: '#/definitions/CreateAppeal' + $ref: "#/definitions/CreateAppeal" responses: - '204': + "204": description: Successfully added an appeal to a serious incident - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.evaluationReport - '/evaluation-reports/{reportID}/{reportViolationID}/appeal/add': + "/evaluation-reports/{reportID}/{reportViolationID}/appeal/add": parameters: - in: path description: the evaluation report ID @@ -2918,23 +2927,23 @@ paths: - in: body name: body schema: - $ref: '#/definitions/CreateAppeal' + $ref: "#/definitions/CreateAppeal" responses: - '204': + "204": description: Successfully added an appeal to a violation - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.evaluationReport - '/pws-violations': + "/pws-violations": get: summary: Fetch the possible PWS violations for an evaluation report description: Fetch the possible PWS violations for an evaluation report @@ -2944,19 +2953,19 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully retrieved the PWS violations schema: - $ref: '#/definitions/PWSViolations' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' - '/report-violations/{reportID}': + $ref: "#/definitions/PWSViolations" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" + "/report-violations/{reportID}": parameters: - in: path description: the evaluation report ID that has associated violations @@ -2973,18 +2982,18 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully retrieved the report violations schema: - $ref: '#/definitions/ReportViolations' - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/ReportViolations" + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" post: summary: Associate violations with an evaluation report description: >- @@ -3003,25 +3012,25 @@ paths: - in: body name: body schema: - $ref: '#/definitions/AssociateReportViolations' + $ref: "#/definitions/AssociateReportViolations" responses: - '204': + "204": description: Successfully saved the report violations - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '409': - $ref: '#/responses/Conflict' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "409": + $ref: "#/responses/Conflict" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - create.reportViolation - '/moves/{locator}/payment-requests': + "/moves/{locator}/payment-requests": parameters: - description: move code to identify a move for payment requests format: string @@ -3034,18 +3043,18 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved all line items for a move task order schema: - $ref: '#/definitions/PaymentRequests' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/PaymentRequests" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - paymentRequests description: Fetches payment requests for a move @@ -3053,7 +3062,7 @@ paths: summary: Fetches payment requests using the move code (locator). x-permissions: - read.paymentRequest - '/moves/{moveID}/financial-review-flag': + "/moves/{moveID}/financial-review-flag": parameters: - description: ID of move to flag in: path @@ -3091,20 +3100,20 @@ paths: example: false type: boolean responses: - '200': + "200": description: updated Move schema: - $ref: '#/definitions/Move' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" x-permissions: - update.financialReviewFlag /moves/{moveID}/uploadAdditionalDocuments: @@ -3129,25 +3138,25 @@ paths: description: The file to upload. required: true responses: - '201': + "201": description: created upload schema: - $ref: 'definitions/Upload.yaml' - '400': + $ref: "definitions/Upload.yaml" + "400": description: invalid request schema: - $ref: '#/definitions/InvalidRequestResponsePayload' - '403': + $ref: "#/definitions/InvalidRequestResponsePayload" + "403": description: not authorized - '404': + "404": description: not found - '413': + "413": description: payload is too large - '500': + "500": description: server error x-permissions: - create.supportingDocuments - '/payment-requests/{paymentRequestID}/shipments-payment-sit-balance': + "/payment-requests/{paymentRequestID}/shipments-payment-sit-balance": parameters: - description: payment request ID of the payment request with SIT service items being reviewed name: paymentRequestID @@ -3160,18 +3169,18 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved shipments and their SIT days balance from all payment requests on the move schema: - $ref: '#/definitions/ShipmentsPaymentSITBalance' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/ShipmentsPaymentSITBalance" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - paymentRequests description: Returns all shipment payment request SIT usage to support partial SIT invoicing @@ -3179,7 +3188,7 @@ paths: summary: Returns all shipment payment request SIT usage to support partial SIT invoicing x-permissions: - read.shipmentsPaymentSITBalance - '/payment-requests/{paymentRequestID}/status': + "/payment-requests/{paymentRequestID}/status": patch: consumes: - application/json @@ -3196,30 +3205,30 @@ paths: name: body required: true schema: - $ref: '#/definitions/UpdatePaymentRequestStatusPayload' + $ref: "#/definitions/UpdatePaymentRequestStatusPayload" - in: header name: If-Match type: string required: true responses: - '200': + "200": description: updated payment request schema: - $ref: '#/definitions/PaymentRequest' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/PaymentRequest" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" tags: - paymentRequests description: Updates status of a payment request by id @@ -3227,7 +3236,7 @@ paths: summary: Updates status of a payment request by id x-permissions: - update.paymentRequest - '/payment-requests/{paymentRequestID}/bulkDownload': + "/payment-requests/{paymentRequestID}/bulkDownload": parameters: - description: the id for the payment-request with files to be downloaded in: path @@ -3244,7 +3253,7 @@ paths: produces: - application/pdf responses: - '200': + "200": headers: Content-Disposition: type: string @@ -3253,10 +3262,10 @@ paths: schema: format: binary type: file - '400': - $ref: '#/responses/InvalidRequest' - '500': - $ref: '#/responses/ServerError' + "400": + $ref: "#/responses/InvalidRequest" + "500": + $ref: "#/responses/ServerError" /documents/{documentId}: get: summary: Returns a document @@ -3272,24 +3281,24 @@ paths: required: true description: UUID of the document to return responses: - '200': + "200": description: the requested document schema: - $ref: 'definitions/Document.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '412': - $ref: '#/responses/PreconditionFailed' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/Document.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "412": + $ref: "#/responses/PreconditionFailed" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /documents: post: summary: Create a new document @@ -3302,17 +3311,17 @@ paths: name: documentPayload required: true schema: - $ref: '#/definitions/PostDocumentPayload' + $ref: "#/definitions/PostDocumentPayload" responses: - '201': + "201": description: created document schema: - $ref: 'definitions/Document.yaml' - '400': + $ref: "definitions/Document.yaml" + "400": description: invalid request - '403': - $ref: '#/responses/PermissionDenied' - '500': + "403": + $ref: "#/responses/PermissionDenied" + "500": description: server error /queues/counseling: get: @@ -3463,14 +3472,14 @@ paths: description: | Used to illustrate which user is assigned to this payment request. responses: - '200': + "200": description: Successfully returned all moves matching the criteria schema: - $ref: '#/definitions/QueueMovesResult' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/QueueMovesResult" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" /queues/counseling/origin-list: get: produces: @@ -3491,14 +3500,14 @@ paths: type: string description: Used to return an origins list for a GBLOC other than the default of the current user. Requires the HQ role or a secondary transportation office assignment. The parameter is ignored if the requesting user does not have the necessary role or assignment. responses: - '200': + "200": description: Successfully returned all moves matching the criteria schema: - $ref: '#/definitions/Locations' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Locations" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" /queues/prime-moves: get: summary: getPrimeMovesQueue @@ -3540,14 +3549,14 @@ paths: type: string description: order type responses: - '200': + "200": description: Successfully retrieved moves. A successful fetch might still return zero moves. schema: - $ref: '#/definitions/ListPrimeMovesResult' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/ListPrimeMovesResult" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" /queues/moves: get: produces: @@ -3654,14 +3663,14 @@ paths: type: string description: filters using a counselingOffice name of the move responses: - '200': + "200": description: Successfully returned all moves matching the criteria schema: - $ref: '#/definitions/QueueMovesResult' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/QueueMovesResult" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" /queues/payment-requests: get: produces: @@ -3676,7 +3685,20 @@ paths: - in: query name: sort type: string - enum: [customerName, locator, submittedAt, branch, status, edipi, emplid, age, originDutyLocation, assignedTo, counselingOffice] + enum: + [ + customerName, + locator, + submittedAt, + branch, + status, + edipi, + emplid, + age, + originDutyLocation, + assignedTo, + counselingOffice, + ] description: field that results should be sorted by - in: query name: order @@ -3750,14 +3772,14 @@ paths: description: | Used to return a queue for a GBLOC other than the default of the current user. Requires the HQ role or a secondary transportation office assignment. The parameter is ignored if the requesting user does not have the necessary role or assignment. responses: - '200': + "200": description: Successfully returned all moves matching the criteria schema: - $ref: '#/definitions/QueuePaymentRequestsResult' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/QueuePaymentRequestsResult" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" /moves/search: post: produces: @@ -3862,15 +3884,15 @@ paths: enum: [asc, desc] description: field that results should be sorted by responses: - '200': + "200": description: Successfully returned all moves matching the criteria schema: - $ref: '#/definitions/SearchMovesResult' - '403': - $ref: '#/responses/PermissionDenied' - '500': - $ref: '#/responses/ServerError' - '/tac/valid': + $ref: "#/definitions/SearchMovesResult" + "403": + $ref: "#/responses/PermissionDenied" + "500": + $ref: "#/responses/ServerError" + "/tac/valid": get: summary: Validation of a TAC value description: Returns a boolean based on whether a tac value is valid or not @@ -3885,23 +3907,23 @@ paths: required: true description: The tac value to validate responses: - '200': + "200": description: Successfully retrieved validation status schema: - $ref: '#/definitions/TacValid' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/TacValid" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /lines-of-accounting: post: - summary: 'Fetch line of accounting' + summary: "Fetch line of accounting" description: > Fetches a line of accounting based on provided service member affiliation, effective date, and Transportation Accounting Code (TAC). It uses these parameters to filter the correct Line of Accounting for the provided TAC. It does this by filtering @@ -3913,33 +3935,33 @@ paths: tags: - linesOfAccounting consumes: - - 'application/json' + - "application/json" produces: - - 'application/json' + - "application/json" parameters: - - in: 'body' - name: 'body' - description: 'Service member affiliation, effective date, and TAC code.' + - in: "body" + name: "body" + description: "Service member affiliation, effective date, and TAC code." required: true schema: - $ref: '#/definitions/FetchLineOfAccountingPayload' + $ref: "#/definitions/FetchLineOfAccountingPayload" responses: - '200': - description: 'Successfully retrieved line of accounting' - schema: - $ref: 'definitions/LineOfAccounting.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '422': - $ref: '#/responses/UnprocessableEntity' - '500': - $ref: '#/responses/ServerError' + "200": + description: "Successfully retrieved line of accounting" + schema: + $ref: "definitions/LineOfAccounting.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "422": + $ref: "#/responses/UnprocessableEntity" + "500": + $ref: "#/responses/ServerError" /transportation-offices: get: produces: @@ -3957,20 +3979,20 @@ paths: minLength: 2 description: Search string for transportation offices responses: - '200': + "200": description: Successfully retrieved transportation offices schema: - $ref: '#/definitions/TransportationOffices' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/TransportationOffices" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /open/transportation-offices: get: produces: @@ -3988,20 +4010,20 @@ paths: minLength: 2 description: Search string for transportation offices responses: - '200': + "200": description: Successfully retrieved transportation offices schema: - $ref: '#/definitions/TransportationOffices' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/TransportationOffices" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /transportation-offices/gblocs: get: produces: @@ -4012,20 +4034,20 @@ paths: tags: - transportationOffice responses: - '200': + "200": description: Successfully retrieved transportation offices schema: - $ref: '#/definitions/GBLOCs' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/GBLOCs" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /addresses/zip-city-lookup/{search}: get: summary: Returns city, state, postal code, and county associated with the specified full/partial postal code or city and state string @@ -4034,23 +4056,23 @@ paths: tags: - addresses parameters: - - in: path - name: search - type: string - required: true + - in: path + name: search + type: string + required: true responses: - '200': + "200": description: the requested list of city, state, county, and postal code matches schema: $ref: "#/definitions/VLocations" - '400': - $ref: '#/responses/InvalidRequest' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + "400": + $ref: "#/responses/InvalidRequest" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /uploads: post: summary: Create a new upload @@ -4075,19 +4097,19 @@ paths: description: The file to upload. required: true responses: - '201': + "201": description: created upload schema: - $ref: 'definitions/Upload.yaml' - '400': + $ref: "definitions/Upload.yaml" + "400": description: invalid request - '403': + "403": description: not authorized - '404': + "404": description: not found - '413': + "413": description: payload is too large - '500': + "500": description: server error /re-service-items: get: @@ -4099,18 +4121,18 @@ paths: tags: - reServiceItems responses: - '200': + "200": description: Successfully retrieved all ReServiceItems. schema: - $ref: '#/definitions/ReServiceItems' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/ReServiceItems" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /uploads/{uploadID}: delete: summary: Deletes an upload @@ -4131,17 +4153,17 @@ paths: format: uuid description: ID of the order that the upload belongs to responses: - '204': + "204": description: deleted - '400': + "400": description: invalid request schema: - $ref: '#/definitions/InvalidRequestResponsePayload' - '403': + $ref: "#/definitions/InvalidRequestResponsePayload" + "403": description: not authorized - '404': + "404": description: not found - '500': + "500": description: server error /uploads/get/: get: @@ -4149,20 +4171,20 @@ paths: - application/json parameters: [] responses: - '200': + "200": description: Successfully retrieved upload schema: - $ref: 'definitions/Upload.yaml' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '403': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "definitions/Upload.yaml" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "403": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - uploads description: Gets an upload @@ -4197,19 +4219,19 @@ paths: minimum: 0 maximum: 3 responses: - '201': + "201": description: updated upload schema: - $ref: 'definitions/Upload.yaml' - '400': + $ref: "definitions/Upload.yaml" + "400": description: invalid request - '403': + "403": description: not authorized - '404': + "404": description: not found - '413': + "413": description: payload is too large - '500': + "500": description: server error /application_parameters/{parameterName}: get: @@ -4226,15 +4248,15 @@ paths: required: true description: Parameter Name responses: - '200': + "200": description: Application Parameters schema: - $ref: '#/definitions/ApplicationParameters' - '400': + $ref: "#/definitions/ApplicationParameters" + "400": description: invalid request - '401': + "401": description: request requires user authentication - '500': + "500": description: server error /calendar/{countryCode}/is-weekend-holiday/{date}: get: @@ -4261,18 +4283,18 @@ paths: type: string format: date responses: - '200': + "200": description: Successfully determine if given date is weekend and/or holiday for given country. schema: - $ref: '#/definitions/IsDateWeekendHolidayInfo' - '400': - $ref: '#/responses/InvalidRequest' - '401': - $ref: '#/responses/PermissionDenied' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/IsDateWeekendHolidayInfo" + "400": + $ref: "#/responses/InvalidRequest" + "401": + $ref: "#/responses/PermissionDenied" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" /moves/{moveID}/assignOfficeUser: parameters: - description: ID of the move @@ -4291,16 +4313,16 @@ paths: name: body required: true schema: - $ref: '#/definitions/AssignOfficeUserBody' + $ref: "#/definitions/AssignOfficeUserBody" responses: - '200': + "200": description: Successfully assigned office user to the move schema: - $ref: '#/definitions/Move' - '404': - $ref: '#/responses/NotFound' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "404": + $ref: "#/responses/NotFound" + "500": + $ref: "#/responses/ServerError" tags: - move description: assigns either a services counselor, task ordering officer, or task invoicing officer to the move @@ -4327,12 +4349,12 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully unassigned office user from the move schema: - $ref: '#/definitions/Move' - '500': - $ref: '#/responses/ServerError' + $ref: "#/definitions/Move" + "500": + $ref: "#/responses/ServerError" tags: - move description: unassigns either a services counselor, task ordering officer, or task invoicing officer from the move @@ -4351,7 +4373,7 @@ paths: produces: - application/json responses: - '200': + "200": description: Successfully unlocked officer's move(s). schema: type: object @@ -4359,8 +4381,8 @@ paths: successMessage: type: string example: OK - '500': - $ref: '#/responses/ServerError' + "500": + $ref: "#/responses/ServerError" tags: - move description: >- @@ -4412,7 +4434,7 @@ definitions: - instance ValidationError: allOf: - - $ref: '#/definitions/ClientError' + - $ref: "#/definitions/ClientError" - type: object properties: invalid_fields: @@ -4504,17 +4526,17 @@ definitions: type: string format: uuid transportationOffice: - $ref: 'definitions/TransportationOffice.yaml' + $ref: "definitions/TransportationOffice.yaml" transportationOfficeAssignments: type: array items: - $ref: 'definitions/TransportationOfficeAssignment.yaml' + $ref: "definitions/TransportationOfficeAssignment.yaml" active: type: boolean roles: type: array items: - $ref: '#/definitions/Role' + $ref: "#/definitions/Role" edipi: type: string otherUniqueId: @@ -4562,18 +4584,18 @@ definitions: type: string format: uuid transportationOffice: - $ref: 'definitions/TransportationOffice.yaml' + $ref: "definitions/TransportationOffice.yaml" OfficeUserCreate: type: object properties: email: type: string - example: 'user@userdomain.com' + example: "user@userdomain.com" title: Email x-nullable: false edipi: type: string - example: '1234567890' + example: "1234567890" maxLength: 10 title: EDIPI x-nullable: true @@ -4603,12 +4625,12 @@ definitions: transportationOfficeId: type: string format: uuid - example: 'c56a4180-65aa-42ec-a945-5fd21dec0538' + example: "c56a4180-65aa-42ec-a945-5fd21dec0538" x-nullable: false roles: type: array items: - $ref: '#/definitions/OfficeUserRole' + $ref: "#/definitions/OfficeUserRole" x-nullable: false required: - firstName @@ -4622,12 +4644,12 @@ definitions: properties: name: type: string - example: 'Task Ordering Officer' + example: "Task Ordering Officer" x-nullable: true title: name roleType: type: string - example: 'task_ordering_officer' + example: "task_ordering_officer" x-nullable: true title: roleType Customer: @@ -4661,9 +4683,9 @@ definitions: example: David x-nullable: true current_address: - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" backup_contact: - $ref: '#/definitions/BackupContact' + $ref: "#/definitions/BackupContact" id: type: string format: uuid @@ -4686,7 +4708,7 @@ definitions: pattern: '^[2-9]\d{2}-\d{3}-\d{4}$|^$' x-nullable: true backupAddress: - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" cacValidated: type: boolean x-nullable: true @@ -4723,9 +4745,9 @@ definitions: example: David x-nullable: true residentialAddress: - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" backupContact: - $ref: '#/definitions/BackupContact' + $ref: "#/definitions/BackupContact" id: type: string format: uuid @@ -4751,7 +4773,7 @@ definitions: pattern: '^[2-9]\d{2}-\d{3}-\d{4}$' x-nullable: true backupAddress: - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" cacValidated: type: boolean UpdateCustomerPayload: @@ -4783,9 +4805,9 @@ definitions: x-nullable: true current_address: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" backup_contact: - $ref: '#/definitions/BackupContact' + $ref: "#/definitions/BackupContact" phoneIsPreferred: type: boolean emailIsPreferred: @@ -4797,22 +4819,22 @@ definitions: x-nullable: true backupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" cac_validated: type: boolean CreateCustomerPayload: type: object properties: affiliation: - $ref: 'definitions/Affiliation.yaml' + $ref: "definitions/Affiliation.yaml" edipi: type: string - example: '1234567890' + example: "1234567890" maxLength: 10 x-nullable: false emplid: type: string - example: '9485155' + example: "9485155" maxLength: 7 x-nullable: true firstName: @@ -4850,12 +4872,12 @@ definitions: type: boolean residentialAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" backupContact: - $ref: '#/definitions/BackupContact' + $ref: "#/definitions/BackupContact" backupMailingAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" createOktaAccount: type: boolean cacUser: @@ -4864,7 +4886,7 @@ definitions: type: object properties: departmentIndicator: - $ref: 'definitions/DepartmentIndicator.yaml' + $ref: "definitions/DepartmentIndicator.yaml" effectiveDate: description: > The effective date for the Line Of Accounting (LOA) being fetched. Eg, the orders issue date or the Non-Temporary Storage (NTS) Move Task Order (MTO) approval date. @@ -4875,12 +4897,12 @@ definitions: users per customer request). type: string format: date - example: '2023-01-01' + example: "2023-01-01" tacCode: type: string minLength: 4 maxLength: 4 - example: 'F8J1' + example: "F8J1" SearchCustomersResult: type: object properties: @@ -4891,11 +4913,11 @@ definitions: totalCount: type: integer searchCustomers: - $ref: '#/definitions/SearchCustomers' + $ref: "#/definitions/SearchCustomers" SearchCustomers: type: array items: - $ref: '#/definitions/SearchCustomer' + $ref: "#/definitions/SearchCustomer" SearchCustomer: type: object properties: @@ -4947,6 +4969,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean @@ -5102,22 +5127,22 @@ definitions: format: uuid x-nullable: true contractor: - $ref: '#/definitions/Contractor' + $ref: "#/definitions/Contractor" locator: type: string - example: '1K43AR' + example: "1K43AR" ordersId: type: string format: uuid example: c56a4180-65aa-42ec-a945-5fd21dec0538 orders: - $ref: '#/definitions/Order' + $ref: "#/definitions/Order" referenceId: example: 1001-3456 type: string x-nullable: true status: - $ref: '#/definitions/MoveStatus' + $ref: "#/definitions/MoveStatus" excess_weight_qualified_at: type: string format: date-time @@ -5144,7 +5169,7 @@ definitions: x-nullable: true readOnly: true closeoutOffice: - $ref: 'definitions/TransportationOffice.yaml' + $ref: "definitions/TransportationOffice.yaml" closeoutOfficeId: type: string format: uuid @@ -5168,26 +5193,26 @@ definitions: eTag: type: string shipmentGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" lockedByOfficeUserID: type: string format: uuid x-nullable: true lockedByOfficeUser: - $ref: '#/definitions/LockedOfficeUser' + $ref: "#/definitions/LockedOfficeUser" x-nullable: true lockExpiresAt: type: string format: date-time x-nullable: true additionalDocuments: - $ref: 'definitions/Document.yaml' + $ref: "definitions/Document.yaml" SCAssignedUser: - $ref: '#/definitions/AssignedOfficeUser' + $ref: "#/definitions/AssignedOfficeUser" TOOAssignedUser: - $ref: '#/definitions/AssignedOfficeUser' + $ref: "#/definitions/AssignedOfficeUser" TIOAssignedUser: - $ref: '#/definitions/AssignedOfficeUser' + $ref: "#/definitions/AssignedOfficeUser" MoveHistory: properties: id: @@ -5197,11 +5222,11 @@ definitions: type: string historyRecords: description: A list of MoveAuditHistory's connected to the move. - $ref: '#/definitions/MoveAuditHistories' + $ref: "#/definitions/MoveAuditHistories" locator: description: move locator type: string - example: '1K43AR' + example: "1K43AR" referenceId: description: move referenceID example: 1001-3456 @@ -5223,11 +5248,11 @@ definitions: type: string historyRecords: description: A list of MoveAuditHistory's connected to the move. - $ref: '#/definitions/MoveAuditHistories' + $ref: "#/definitions/MoveAuditHistories" locator: description: move locator type: string - example: '1K43AR' + example: "1K43AR" referenceId: description: move referenceID example: 1001-3456 @@ -5236,7 +5261,7 @@ definitions: MoveAuditHistories: type: array items: - $ref: '#/definitions/MoveAuditHistory' + $ref: "#/definitions/MoveAuditHistory" MoveAuditHistory: properties: id: @@ -5333,7 +5358,7 @@ definitions: MoveAuditHistoryItems: type: array items: - $ref: '#/definitions/MoveAuditHistoryItem' + $ref: "#/definitions/MoveAuditHistoryItem" MoveAuditHistoryItem: properties: columnName: @@ -5410,10 +5435,10 @@ definitions: format: uuid type: string customer: - $ref: '#/definitions/Customer' + $ref: "#/definitions/Customer" moveCode: type: string - example: 'H2XFJF' + example: "H2XFJF" first_name: type: string example: John @@ -5423,19 +5448,19 @@ definitions: example: Doe readOnly: true grade: - $ref: '#/definitions/Grade' + $ref: "#/definitions/Grade" agency: - $ref: 'definitions/Affiliation.yaml' + $ref: "definitions/Affiliation.yaml" entitlement: - $ref: '#/definitions/Entitlements' + $ref: "#/definitions/Entitlements" destinationDutyLocation: - $ref: 'definitions/DutyLocation.yaml' + $ref: "definitions/DutyLocation.yaml" destinationDutyLocationGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" originDutyLocation: - $ref: 'definitions/DutyLocation.yaml' + $ref: "definitions/DutyLocation.yaml" originDutyLocationGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" moveTaskOrderID: example: c56a4180-65aa-42ec-a945-5fd21dec0538 format: uuid @@ -5456,42 +5481,42 @@ definitions: order_number: type: string x-nullable: true - example: '030-00362' + example: "030-00362" order_type: - $ref: 'definitions/OrdersType.yaml' + $ref: "definitions/OrdersType.yaml" order_type_detail: - $ref: '#/definitions/OrdersTypeDetail' + $ref: "#/definitions/OrdersTypeDetail" x-nullable: true date_issued: type: string format: date - example: '2020-01-01' + example: "2020-01-01" report_by_date: type: string format: date - example: '2020-01-01' + example: "2020-01-01" department_indicator: - $ref: '#/definitions/DeptIndicator' + $ref: "#/definitions/DeptIndicator" x-nullable: true tac: type: string title: TAC - example: 'F8J1' + example: "F8J1" x-nullable: true sac: type: string title: SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" x-nullable: true ntsTac: type: string title: NTS TAC - example: 'F8J1' + example: "F8J1" x-nullable: true ntsSac: type: string title: NTS SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" x-nullable: true has_dependents: type: boolean @@ -5510,7 +5535,7 @@ definitions: naics: type: string orders_type: - $ref: 'definitions/OrdersType.yaml' + $ref: "definitions/OrdersType.yaml" eTag: type: string type: object @@ -5529,7 +5554,7 @@ definitions: Locations: type: array items: - $ref: '#/definitions/Location' + $ref: "#/definitions/Location" OrderBody: type: object properties: @@ -5554,9 +5579,9 @@ definitions: format: date title: Report-by date ordersType: - $ref: 'definitions/OrdersType.yaml' + $ref: "definitions/OrdersType.yaml" ordersTypeDetail: - $ref: '#/definitions/OrdersTypeDetail' + $ref: "#/definitions/OrdersTypeDetail" hasDependents: type: boolean title: Are dependents included in your orders? @@ -5571,21 +5596,21 @@ definitions: type: string title: Orders Number x-nullable: true - example: '030-00362' + example: "030-00362" tac: type: string title: TAC - example: 'F8J1' + example: "F8J1" x-nullable: true sac: type: string title: SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" x-nullable: true departmentIndicator: - $ref: '#/definitions/DeptIndicator' + $ref: "#/definitions/DeptIndicator" grade: - $ref: '#/definitions/Grade' + $ref: "#/definitions/Grade" originDutyLocationId: type: string format: uuid @@ -5620,25 +5645,25 @@ definitions: type: string description: The date and time that these orders were cut. format: date - example: '2018-04-26' + example: "2018-04-26" title: Orders date reportByDate: type: string description: Report By Date format: date - example: '2018-04-26' + example: "2018-04-26" title: Report-by date ordersType: - $ref: 'definitions/OrdersType.yaml' + $ref: "definitions/OrdersType.yaml" ordersTypeDetail: - $ref: '#/definitions/OrdersTypeDetail' + $ref: "#/definitions/OrdersTypeDetail" ordersNumber: type: string title: Orders Number x-nullable: true - example: '030-00362' + example: "030-00362" departmentIndicator: - $ref: '#/definitions/DeptIndicator' + $ref: "#/definitions/DeptIndicator" x-nullable: true originDutyLocationId: type: string @@ -5653,24 +5678,24 @@ definitions: title: HHG TAC minLength: 4 maxLength: 4 - example: 'F8J1' + example: "F8J1" x-nullable: true sac: title: HHG SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" $ref: definitions/NullableString.yaml ntsTac: title: NTS TAC minLength: 4 maxLength: 4 - example: 'F8J1' + example: "F8J1" $ref: definitions/NullableString.yaml ntsSac: title: NTS SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" $ref: definitions/NullableString.yaml grade: - $ref: '#/definitions/Grade' + $ref: "#/definitions/Grade" required: - issueDate - reportByDate @@ -5684,18 +5709,18 @@ definitions: type: string description: The date and time that these orders were cut. format: date - example: '2018-04-26' + example: "2018-04-26" title: Orders date reportByDate: type: string description: Report By Date format: date - example: '2018-04-26' + example: "2018-04-26" title: Report-by date ordersType: - $ref: 'definitions/OrdersType.yaml' + $ref: "definitions/OrdersType.yaml" ordersTypeDetail: - $ref: '#/definitions/OrdersTypeDetail' + $ref: "#/definitions/OrdersTypeDetail" originDutyLocationId: type: string format: uuid @@ -5708,37 +5733,37 @@ definitions: type: string title: Orders Number x-nullable: true - example: '030-00362' + example: "030-00362" tac: type: string title: HHG TAC minLength: 4 maxLength: 4 - example: 'F8J1' + example: "F8J1" x-nullable: true sac: title: HHG SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" $ref: definitions/NullableString.yaml ntsTac: title: NTS TAC minLength: 4 maxLength: 4 - example: 'F8J1' + example: "F8J1" $ref: definitions/NullableString.yaml ntsSac: title: NTS SAC - example: 'N002214CSW32Y9' + example: "N002214CSW32Y9" $ref: definitions/NullableString.yaml departmentIndicator: - $ref: '#/definitions/DeptIndicator' + $ref: "#/definitions/DeptIndicator" x-nullable: true ordersAcknowledgement: description: Confirmation that the new amended orders were reviewed after previously approving the original orders type: boolean x-nullable: true grade: - $ref: '#/definitions/Grade' + $ref: "#/definitions/Grade" required: - issueDate - reportByDate @@ -5749,12 +5774,12 @@ definitions: type: object properties: grade: - $ref: '#/definitions/Grade' + $ref: "#/definitions/Grade" dependentsAuthorized: type: boolean x-nullable: true agency: - $ref: 'definitions/Affiliation.yaml' + $ref: "definitions/Affiliation.yaml" proGearWeight: description: unit is in lbs example: 2000 @@ -5789,6 +5814,10 @@ definitions: description: True if user is entitled to move a gun safe (up to 500 lbs) as part of their move without it being charged against their weight allowance. type: boolean x-nullable: true + adminRestrictedWeightLocation: + description: Indicates if the customer is restricted to a specific location for their admin restricted weight. + type: boolean + x-nullable: true accompaniedTour: type: boolean example: true @@ -5841,12 +5870,12 @@ definitions: type: object properties: grade: - $ref: '#/definitions/Grade' + $ref: "#/definitions/Grade" dependentsAuthorized: type: boolean x-nullable: true agency: - $ref: 'definitions/Affiliation.yaml' + $ref: "definitions/Affiliation.yaml" proGearWeight: minimum: 0 maximum: 2000 @@ -5881,6 +5910,10 @@ definitions: description: True if user is entitled to move a gun safe (up to 500 lbs) as part of their move without it being charged against their weight allowance. type: boolean x-nullable: true + adminRestrictedWeightLocation: + description: Indicates if the customer is restricted to a specific location for their admin restricted weight. + type: boolean + x-nullable: true accompaniedTour: type: boolean example: true @@ -5916,7 +5949,7 @@ definitions: type: string locator: type: string - example: '1K43AR' + example: "1K43AR" referenceId: example: 1001-3456 type: string @@ -5936,9 +5969,9 @@ definitions: format: date-time type: string destinationAddress: - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" pickupAddress: - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" destinationDutyLocation: example: 1f2270c7-7166-40ae-981e-b200ebdf3054 format: uuid @@ -5948,7 +5981,7 @@ definitions: format: uuid type: string entitlements: - $ref: '#/definitions/Entitlements' + $ref: "#/definitions/Entitlements" requestedPickupDate: format: date type: string @@ -5961,12 +5994,12 @@ definitions: type: object MoveTaskOrders: items: - $ref: '#/definitions/MoveTaskOrder' + $ref: "#/definitions/MoveTaskOrder" type: array PaymentRequest: properties: proofOfServiceDocs: - $ref: '#/definitions/ProofOfServiceDocs' + $ref: "#/definitions/ProofOfServiceDocs" id: example: c56a4180-65aa-42ec-a945-5fd21dec0538 format: uuid @@ -5976,7 +6009,7 @@ definitions: default: false type: boolean moveTaskOrder: - $ref: '#/definitions/Move' + $ref: "#/definitions/Move" moveTaskOrderID: example: c56a4180-65aa-42ec-a945-5fd21dec0538 format: uuid @@ -5986,9 +6019,9 @@ definitions: type: string x-nullable: true serviceItems: - $ref: '#/definitions/PaymentServiceItems' + $ref: "#/definitions/PaymentServiceItems" status: - $ref: '#/definitions/PaymentRequestStatus' + $ref: "#/definitions/PaymentRequestStatus" paymentRequestNumber: example: 1234-5678-1 readOnly: true @@ -6041,11 +6074,11 @@ definitions: type: object PaymentRequests: items: - $ref: '#/definitions/PaymentRequest' + $ref: "#/definitions/PaymentRequest" type: array PaymentServiceItems: items: - $ref: '#/definitions/PaymentServiceItem' + $ref: "#/definitions/PaymentServiceItem" type: array PaymentServiceItem: properties: @@ -6072,14 +6105,14 @@ definitions: example: Move management type: string mtoShipmentType: - $ref: 'definitions/MTOShipmentType.yaml' + $ref: "definitions/MTOShipmentType.yaml" mtoShipmentID: type: string format: uuid example: c56a4180-65aa-42ec-a945-5fd21dec0538 x-nullable: true status: - $ref: 'definitions/PaymentServiceItemStatus.yaml' + $ref: "definitions/PaymentServiceItemStatus.yaml" priceCents: type: integer format: cents @@ -6094,7 +6127,7 @@ definitions: readOnly: true format: string paymentServiceItemParams: - $ref: 'definitions/PaymentServiceItemParams.yaml' + $ref: "definitions/PaymentServiceItemParams.yaml" eTag: type: string tppsInvoiceAmountPaidPerServiceItemMillicents: @@ -6104,10 +6137,10 @@ definitions: x-nullable: true type: object PaymentRequestStatus: - $ref: 'definitions/PaymentRequestStatus.yaml' + $ref: "definitions/PaymentRequestStatus.yaml" ProofOfServiceDocs: items: - $ref: '#/definitions/ProofOfServiceDoc' + $ref: "#/definitions/ProofOfServiceDoc" type: array ProofOfServiceDoc: properties: @@ -6115,11 +6148,11 @@ definitions: type: boolean uploads: items: - $ref: 'definitions/Upload.yaml' + $ref: "definitions/Upload.yaml" type: array ShipmentsPaymentSITBalance: items: - $ref: '#/definitions/ShipmentPaymentSITBalance' + $ref: "#/definitions/ShipmentPaymentSITBalance" type: array ShipmentPaymentSITBalance: properties: @@ -6159,7 +6192,7 @@ definitions: type: object properties: shipmentType: - $ref: 'definitions/MTOShipmentType.yaml' + $ref: "definitions/MTOShipmentType.yaml" requestedPickupDate: format: date type: string @@ -6188,16 +6221,16 @@ definitions: x-nullable: true pickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" destinationAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" secondaryDeliveryAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" secondaryPickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasSecondaryPickupAddress: type: boolean x-nullable: true @@ -6208,10 +6241,10 @@ definitions: x-omitempty: false tertiaryDeliveryAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" tertiaryPickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasTertiaryPickupAddress: type: boolean x-nullable: true @@ -6229,14 +6262,14 @@ definitions: x-nullable: true x-omitempty: false destinationType: - $ref: 'definitions/DestinationType.yaml' + $ref: "definitions/DestinationType.yaml" agents: - $ref: 'definitions/MTOAgents.yaml' + $ref: "definitions/MTOAgents.yaml" x-nullable: true tacType: - $ref: 'definitions/LOATypeNullable.yaml' + $ref: "definitions/LOATypeNullable.yaml" sacType: - $ref: 'definitions/LOATypeNullable.yaml' + $ref: "definitions/LOATypeNullable.yaml" usesExternalVendor: type: boolean example: false @@ -6252,13 +6285,13 @@ definitions: x-nullable: true storageFacility: x-nullable: true - $ref: 'definitions/StorageFacility.yaml' + $ref: "definitions/StorageFacility.yaml" ppmShipment: - $ref: '#/definitions/UpdatePPMShipment' + $ref: "#/definitions/UpdatePPMShipment" boatShipment: - $ref: '#/definitions/UpdateBoatShipment' + $ref: "#/definitions/UpdateBoatShipment" mobileHomeShipment: - $ref: '#/definitions/UpdateMobileHomeShipment' + $ref: "#/definitions/UpdateMobileHomeShipment" UpdatePPMShipment: type: object properties: @@ -6274,34 +6307,34 @@ definitions: x-nullable: true pickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" actualPickupPostalCode: description: > The actual postal code where the PPM shipment started. To be filled once the customer has moved the shipment. format: zip type: string title: ZIP - example: '90210' + example: "90210" pattern: ^(\d{5})$ x-nullable: true secondaryPickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" destinationAddress: allOf: - - $ref: 'definitions/PPMDestinationAddress.yaml' + - $ref: "definitions/PPMDestinationAddress.yaml" actualDestinationPostalCode: description: > The actual postal code where the PPM shipment ended. To be filled once the customer has moved the shipment. format: zip type: string title: ZIP - example: '90210' + example: "90210" pattern: ^(\d{5})$ x-nullable: true secondaryDestinationAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasSecondaryPickupAddress: type: boolean x-nullable: true @@ -6312,10 +6345,10 @@ definitions: x-omitempty: false tertiaryPickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" tertiaryDestinationAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasTertiaryPickupAddress: type: boolean x-nullable: true @@ -6326,13 +6359,13 @@ definitions: x-omitempty: false w2Address: x-nullable: true - $ref: 'definitions/Address.yaml' + $ref: "definitions/Address.yaml" sitExpected: type: boolean x-nullable: true sitLocation: allOf: - - $ref: 'definitions/SITLocationType.yaml' + - $ref: "definitions/SITLocationType.yaml" - x-nullable: true sitEstimatedWeight: type: integer @@ -6390,7 +6423,7 @@ definitions: format: cents x-nullable: true advanceStatus: - $ref: 'definitions/PPMAdvanceStatus.yaml' + $ref: "definitions/PPMAdvanceStatus.yaml" x-nullable: true isActualExpenseReimbursement: description: Used for PPM shipments only. Denotes if this shipment uses the Actual Expense Reimbursement method. @@ -6484,7 +6517,7 @@ definitions: description: Indicates if the trailer that the customer used meets all the criteria to be claimable. type: boolean status: - $ref: 'definitions/PPMDocumentStatus.yaml' + $ref: "definitions/PPMDocumentStatus.yaml" reason: description: The reason the services counselor has excluded or rejected the item. type: string @@ -6499,7 +6532,7 @@ definitions: type: object properties: movingExpenseType: - $ref: 'definitions/OmittableMovingExpenseType.yaml' + $ref: "definitions/OmittableMovingExpenseType.yaml" description: description: A brief description of the expense. type: string @@ -6517,7 +6550,7 @@ definitions: type: string format: date status: - $ref: 'definitions/PPMDocumentStatus.yaml' + $ref: "definitions/PPMDocumentStatus.yaml" reason: description: The reason the services counselor has excluded or rejected the item. type: string @@ -6526,7 +6559,7 @@ definitions: type: integer sitLocation: allOf: - - $ref: 'definitions/SITLocationType.yaml' + - $ref: "definitions/SITLocationType.yaml" - x-nullable: true sitEstimatedCost: description: The estimated amount that the government will pay the service member to put their goods into storage. This estimated storage cost is separate from the estimated incentive. @@ -6554,13 +6587,13 @@ definitions: type: integer minimum: 0 status: - $ref: 'definitions/PPMDocumentStatus.yaml' + $ref: "definitions/PPMDocumentStatus.yaml" reason: description: The reason the services counselor has excluded or rejected the item. type: string MTOShipments: items: - $ref: 'definitions/MTOShipment.yaml' + $ref: "definitions/MTOShipment.yaml" type: array CreateMTOShipment: type: object @@ -6606,17 +6639,17 @@ definitions: example: handle with care x-nullable: true agents: - $ref: 'definitions/MTOAgents.yaml' + $ref: "definitions/MTOAgents.yaml" mtoServiceItems: - $ref: 'definitions/MTOServiceItems.yaml' + $ref: "definitions/MTOServiceItems.yaml" pickupAddress: description: The address where the movers should pick up this shipment. allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" destinationAddress: description: Where the movers should deliver this shipment. allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasSecondaryPickupAddress: type: boolean x-nullable: true @@ -6624,7 +6657,7 @@ definitions: secondaryPickupAddress: description: The address where the movers should pick up this shipment. allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasSecondaryDeliveryAddress: type: boolean x-nullable: true @@ -6632,7 +6665,7 @@ definitions: secondaryDeliveryAddress: description: Where the movers should deliver this shipment. allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasTertiaryPickupAddress: type: boolean x-nullable: true @@ -6640,7 +6673,7 @@ definitions: tertiaryPickupAddress: description: The address where the movers should pick up this shipment. allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasTertiaryDeliveryAddress: type: boolean x-nullable: true @@ -6648,18 +6681,18 @@ definitions: tertiaryDeliveryAddress: description: Where the movers should deliver this shipment. allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" destinationType: - $ref: 'definitions/DestinationType.yaml' + $ref: "definitions/DestinationType.yaml" shipmentType: - $ref: 'definitions/MTOShipmentType.yaml' + $ref: "definitions/MTOShipmentType.yaml" tacType: allOf: - - $ref: 'definitions/LOAType.yaml' + - $ref: "definitions/LOAType.yaml" - x-nullable: true sacType: allOf: - - $ref: 'definitions/LOAType.yaml' + - $ref: "definitions/LOAType.yaml" - x-nullable: true usesExternalVendor: type: boolean @@ -6676,13 +6709,13 @@ definitions: x-formatting: weight storageFacility: x-nullable: true - $ref: 'definitions/StorageFacility.yaml' + $ref: "definitions/StorageFacility.yaml" mobileHomeShipment: - $ref: '#/definitions/CreateMobileHomeShipment' + $ref: "#/definitions/CreateMobileHomeShipment" ppmShipment: - $ref: '#/definitions/CreatePPMShipment' + $ref: "#/definitions/CreatePPMShipment" boatShipment: - $ref: '#/definitions/CreateBoatShipment' + $ref: "#/definitions/CreateBoatShipment" required: - moveTaskOrderID - shipmentType @@ -6696,22 +6729,22 @@ definitions: type: string pickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" secondaryPickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" tertiaryPickupAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" destinationAddress: allOf: - - $ref: 'definitions/PPMDestinationAddress.yaml' + - $ref: "definitions/PPMDestinationAddress.yaml" secondaryDestinationAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" tertiaryDestinationAddress: allOf: - - $ref: 'definitions/Address.yaml' + - $ref: "definitions/Address.yaml" hasSecondaryPickupAddress: type: boolean x-nullable: true @@ -6732,7 +6765,7 @@ definitions: type: boolean sitLocation: allOf: - - $ref: 'definitions/SITLocationType.yaml' + - $ref: "definitions/SITLocationType.yaml" - x-nullable: true sitEstimatedWeight: type: integer @@ -6865,7 +6898,7 @@ definitions: minimum: 1 requestReason: description: Reason from service counselor-provided picklist for SIT Duration Update - example: 'AWAITING_COMPLETION_OF_RESIDENCE' + example: "AWAITING_COMPLETION_OF_RESIDENCE" type: string enum: - SERIOUS_ILLNESS_MEMBER @@ -6912,7 +6945,7 @@ definitions: properties: requestReason: description: Reason from service counselor-provided picklist for SIT Duration Update - example: 'AWAITING_COMPLETION_OF_RESIDENCE' + example: "AWAITING_COMPLETION_OF_RESIDENCE" type: string enum: - SERIOUS_ILLNESS_MEMBER @@ -6973,14 +7006,14 @@ definitions: type: string x-nullable: true status: - $ref: '#/definitions/PaymentRequestStatus' + $ref: "#/definitions/PaymentRequestStatus" eTag: type: string type: object AvailableOfficeUsers: type: array items: - $ref: '#/definitions/AvailableOfficeUser' + $ref: "#/definitions/AvailableOfficeUser" AvailableOfficeUser: type: object properties: @@ -6995,7 +7028,7 @@ definitions: QueueMoves: type: array items: - $ref: '#/definitions/QueueMove' + $ref: "#/definitions/QueueMove" QueueMove: type: object properties: @@ -7003,9 +7036,9 @@ definitions: type: string format: uuid customer: - $ref: '#/definitions/Customer' + $ref: "#/definitions/Customer" status: - $ref: '#/definitions/MoveStatus' + $ref: "#/definitions/MoveStatus" locator: type: string submittedAt: @@ -7021,15 +7054,15 @@ definitions: type: string x-nullable: true departmentIndicator: - $ref: '#/definitions/DeptIndicator' + $ref: "#/definitions/DeptIndicator" shipmentsCount: type: integer originDutyLocation: - $ref: 'definitions/DutyLocation.yaml' + $ref: "definitions/DutyLocation.yaml" destinationDutyLocation: - $ref: 'definitions/DutyLocation.yaml' + $ref: "definitions/DutyLocation.yaml" originGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" ppmType: type: string enum: [FULL, PARTIAL] @@ -7049,14 +7082,14 @@ definitions: format: uuid x-nullable: true lockedByOfficeUser: - $ref: '#/definitions/LockedOfficeUser' + $ref: "#/definitions/LockedOfficeUser" x-nullable: true lockExpiresAt: type: string format: date-time x-nullable: true ppmStatus: - $ref: '#/definitions/PPMStatus' + $ref: "#/definitions/PPMStatus" x-nullable: true counselingOffice: type: string @@ -7066,10 +7099,10 @@ definitions: format: uuid x-nullable: true assignedTo: - $ref: '#/definitions/AssignedOfficeUser' + $ref: "#/definitions/AssignedOfficeUser" x-nullable: true availableOfficeUsers: - $ref: '#/definitions/AvailableOfficeUsers' + $ref: "#/definitions/AvailableOfficeUsers" assignable: type: boolean QueueMovesResult: @@ -7082,7 +7115,7 @@ definitions: totalCount: type: integer queueMoves: - $ref: '#/definitions/QueueMoves' + $ref: "#/definitions/QueueMoves" ListPrimeMove: description: > An abbreviated definition for a move, without all the nested information (shipments, service items, etc). Used to @@ -7095,7 +7128,7 @@ definitions: type: string moveCode: type: string - example: 'HYXFJF' + example: "HYXFJF" readOnly: true createdAt: format: date-time @@ -7135,7 +7168,7 @@ definitions: ListPrimeMoves: type: array items: - $ref: '#/definitions/ListPrimeMove' + $ref: "#/definitions/ListPrimeMove" ListPrimeMovesResult: type: object properties: @@ -7146,7 +7179,7 @@ definitions: totalCount: type: integer queueMoves: - $ref: '#/definitions/ListPrimeMoves' + $ref: "#/definitions/ListPrimeMoves" QueuePaymentRequest: type: object properties: @@ -7157,9 +7190,9 @@ definitions: type: string format: uuid customer: - $ref: '#/definitions/Customer' + $ref: "#/definitions/Customer" status: - $ref: '#/definitions/QueuePaymentRequestStatus' + $ref: "#/definitions/QueuePaymentRequestStatus" age: type: number format: double @@ -7170,11 +7203,11 @@ definitions: locator: type: string departmentIndicator: - $ref: '#/definitions/DeptIndicator' + $ref: "#/definitions/DeptIndicator" originGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" originDutyLocation: - $ref: 'definitions/DutyLocation.yaml' + $ref: "definitions/DutyLocation.yaml" orderType: type: string x-nullable: true @@ -7187,10 +7220,10 @@ definitions: format: date-time x-nullable: true assignedTo: - $ref: '#/definitions/AssignedOfficeUser' + $ref: "#/definitions/AssignedOfficeUser" x-nullable: true availableOfficeUsers: - $ref: '#/definitions/AvailableOfficeUsers' + $ref: "#/definitions/AvailableOfficeUsers" assignable: type: boolean counselingOffice: @@ -7199,7 +7232,7 @@ definitions: QueuePaymentRequests: type: array items: - $ref: '#/definitions/QueuePaymentRequest' + $ref: "#/definitions/QueuePaymentRequest" QueuePaymentRequestsResult: type: object properties: @@ -7210,7 +7243,7 @@ definitions: totalCount: type: integer queuePaymentRequests: - $ref: '#/definitions/QueuePaymentRequests' + $ref: "#/definitions/QueuePaymentRequests" QueuePaymentRequestStatus: enum: - Payment requested @@ -7222,7 +7255,7 @@ definitions: SearchMoves: type: array items: - $ref: '#/definitions/SearchMove' + $ref: "#/definitions/SearchMove" SearchMove: type: object properties: @@ -7246,7 +7279,7 @@ definitions: example: 9551-6199-2 x-nullable: true status: - $ref: '#/definitions/MoveStatus' + $ref: "#/definitions/MoveStatus" locator: type: string branch: @@ -7257,13 +7290,13 @@ definitions: format: zip type: string title: ZIP - example: '90210' + example: "90210" pattern: ^(\d{5})$ destinationDutyLocationPostalCode: format: zip type: string title: ZIP - example: '90210' + example: "90210" pattern: ^(\d{5})$ requestedPickupDate: type: string @@ -7276,9 +7309,9 @@ definitions: format: date x-nullable: true originGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" destinationGBLOC: - $ref: '#/definitions/GBLOC' + $ref: "#/definitions/GBLOC" lockedByOfficeUserID: type: string format: uuid @@ -7300,7 +7333,7 @@ definitions: totalCount: type: integer searchMoves: - $ref: '#/definitions/SearchMoves' + $ref: "#/definitions/SearchMoves" GBLOC: type: string enum: @@ -7395,7 +7428,7 @@ definitions: EvaluationReportList: type: array items: - $ref: '#/definitions/EvaluationReport' + $ref: "#/definitions/EvaluationReport" EvaluationReport: type: object description: An evaluation report @@ -7417,28 +7450,28 @@ definitions: x-nullable: true readOnly: true type: - $ref: '#/definitions/EvaluationReportType' + $ref: "#/definitions/EvaluationReportType" inspectionType: - $ref: '#/definitions/EvaluationReportInspectionType' + $ref: "#/definitions/EvaluationReportInspectionType" x-nullable: true inspectionDate: type: string format: date x-nullable: true officeUser: - $ref: '#/definitions/EvaluationReportOfficeUser' + $ref: "#/definitions/EvaluationReportOfficeUser" location: - $ref: '#/definitions/EvaluationReportLocation' + $ref: "#/definitions/EvaluationReportLocation" x-nullable: true reportViolations: - $ref: '#/definitions/ReportViolations' + $ref: "#/definitions/ReportViolations" x-nullable: true gsrAppeals: - $ref: '#/definitions/GSRAppeals' + $ref: "#/definitions/GSRAppeals" x-nullable: true locationDescription: type: string - example: 'Route 66 at crash inspection site 3' + example: "Route 66 at crash inspection site 3" x-nullable: true observedShipmentDeliveryDate: type: string @@ -7451,18 +7484,18 @@ definitions: timeDepart: type: string x-nullable: true - pattern: '^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$' - example: '14:30' + pattern: "^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" + example: "14:30" evalStart: type: string x-nullable: true - pattern: '^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$' - example: '15:00' + pattern: "^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" + example: "15:00" evalEnd: type: string x-nullable: true - pattern: '^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$' - example: '18:00' + pattern: "^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" + example: "18:00" violationsObserved: type: boolean x-nullable: true @@ -7574,7 +7607,7 @@ definitions: PWSViolations: type: array items: - $ref: '#/definitions/PWSViolation' + $ref: "#/definitions/PWSViolation" AssociateReportViolations: type: object description: A list of PWS violation string ids to associate with an evaluation report @@ -7601,14 +7634,14 @@ definitions: format: uuid type: string violation: - $ref: '#/definitions/PWSViolation' + $ref: "#/definitions/PWSViolation" gsrAppeals: - $ref: '#/definitions/GSRAppeals' + $ref: "#/definitions/GSRAppeals" x-nullable: true ReportViolations: type: array items: - $ref: '#/definitions/ReportViolation' + $ref: "#/definitions/ReportViolation" GSRAppealStatusType: type: string enum: @@ -7617,7 +7650,7 @@ definitions: GSRAppeals: type: array items: - $ref: '#/definitions/GSRAppeal' + $ref: "#/definitions/GSRAppeal" GSRAppeal: type: object description: An object associating appeals on violations and serious incidents @@ -7639,12 +7672,12 @@ definitions: format: uuid type: string officeUser: - $ref: '#/definitions/EvaluationReportOfficeUser' + $ref: "#/definitions/EvaluationReportOfficeUser" isSeriousIncident: type: boolean example: false appealStatus: - $ref: '#/definitions/GSRAppealStatusType' + $ref: "#/definitions/GSRAppealStatusType" remarks: type: string example: Office user remarks @@ -7655,7 +7688,7 @@ definitions: TransportationOffices: type: array items: - $ref: 'definitions/TransportationOffice.yaml' + $ref: "definitions/TransportationOffice.yaml" VLocations: type: array items: @@ -7686,9 +7719,9 @@ definitions: readOnly: true locator: type: string - example: '12432' + example: "12432" status: - $ref: '#/definitions/MoveStatus' + $ref: "#/definitions/MoveStatus" created_at: type: string format: date-time @@ -7700,9 +7733,9 @@ definitions: format: date-time x-nullable: true mto_shipments: - $ref: '#/definitions/MTOShipments' + $ref: "#/definitions/MTOShipments" closeout_office: - $ref: '#/definitions/TransportationOffice' + $ref: "#/definitions/TransportationOffice" cancel_reason: type: string example: Change of orders @@ -7714,7 +7747,7 @@ definitions: type: string readOnly: true additionalDocuments: - $ref: 'definitions/Document.yaml' + $ref: "definitions/Document.yaml" required: - id - orders_id @@ -7732,7 +7765,7 @@ definitions: date: type: string format: date - example: '2018-09-25' + example: "2018-09-25" is_weekend: type: boolean is_holiday: @@ -7771,28 +7804,28 @@ responses: InvalidRequest: description: The request payload is invalid schema: - $ref: '#/definitions/Error' + $ref: "#/definitions/Error" NotFound: description: The requested resource wasn't found schema: - $ref: '#/definitions/Error' + $ref: "#/definitions/Error" Conflict: description: Conflict error schema: - $ref: '#/definitions/Error' + $ref: "#/definitions/Error" PermissionDenied: description: The request was denied schema: - $ref: '#/definitions/Error' + $ref: "#/definitions/Error" ServerError: description: A server error occurred schema: - $ref: '#/definitions/Error' + $ref: "#/definitions/Error" PreconditionFailed: description: Precondition failed schema: - $ref: '#/definitions/Error' + $ref: "#/definitions/Error" UnprocessableEntity: description: The payload was unprocessable. schema: - $ref: '#/definitions/ValidationError' + $ref: "#/definitions/ValidationError" diff --git a/swagger-def/support.yaml b/swagger-def/support.yaml index e3bf2dd4528..5f94bc926db 100644 --- a/swagger-def/support.yaml +++ b/swagger-def/support.yaml @@ -878,6 +878,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean diff --git a/swagger/ghc.yaml b/swagger/ghc.yaml index ab568b434c8..83842cc917f 100644 --- a/swagger/ghc.yaml +++ b/swagger/ghc.yaml @@ -5165,6 +5165,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean @@ -6051,6 +6054,12 @@ definitions: their move without it being charged against their weight allowance. type: boolean x-nullable: true + adminRestrictedWeightLocation: + description: >- + Indicates if the customer is restricted to a specific location for + their admin restricted weight. + type: boolean + x-nullable: true accompaniedTour: type: boolean example: true @@ -6154,6 +6163,12 @@ definitions: their move without it being charged against their weight allowance. type: boolean x-nullable: true + adminRestrictedWeightLocation: + description: >- + Indicates if the customer is restricted to a specific location for + their admin restricted weight. + type: boolean + x-nullable: true accompaniedTour: type: boolean example: true diff --git a/swagger/prime.yaml b/swagger/prime.yaml index 83ef52b06c7..8af5a4ee92d 100644 --- a/swagger/prime.yaml +++ b/swagger/prime.yaml @@ -3023,6 +3023,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean diff --git a/swagger/prime_v2.yaml b/swagger/prime_v2.yaml index 00c4e8d169b..05ac5076d6c 100644 --- a/swagger/prime_v2.yaml +++ b/swagger/prime_v2.yaml @@ -1634,6 +1634,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean diff --git a/swagger/prime_v3.yaml b/swagger/prime_v3.yaml index cb7c5a5d10a..398bf9c100d 100644 --- a/swagger/prime_v3.yaml +++ b/swagger/prime_v3.yaml @@ -1722,6 +1722,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean diff --git a/swagger/support.yaml b/swagger/support.yaml index 8b0e87f4842..bd09358deef 100644 --- a/swagger/support.yaml +++ b/swagger/support.yaml @@ -953,6 +953,9 @@ definitions: gunSafe: type: boolean example: false + adminRestrictedWeightLocation: + type: boolean + example: false nonTemporaryStorage: example: false type: boolean From 633df9d3b3b37843ce9562db565238e42a86f96a Mon Sep 17 00:00:00 2001 From: deandreJones Date: Wed, 8 Jan 2025 13:42:30 -0600 Subject: [PATCH 2/9] add weight restriction --- migrations/app/migrations_manifest.txt | 1 + ...250107184554_add_weight_restriction.up.sql | 4 +++ pkg/gen/ghcapi/embedded_spec.go | 32 +++++++++++++++++++ .../counseling_update_allowance_payload.go | 4 +++ pkg/gen/ghcmessages/entitlements.go | 4 +++ .../ghcmessages/update_allowance_payload.go | 4 +++ pkg/gen/primeapi/embedded_spec.go | 10 ++++++ pkg/gen/primemessages/entitlements.go | 4 +++ pkg/gen/primev2api/embedded_spec.go | 10 ++++++ pkg/gen/primev2messages/entitlements.go | 4 +++ pkg/gen/primev3api/embedded_spec.go | 10 ++++++ pkg/gen/primev3messages/entitlements.go | 4 +++ pkg/gen/supportapi/embedded_spec.go | 8 +++++ pkg/gen/supportmessages/entitlement.go | 4 +++ .../internal/payloads/model_to_payload.go | 10 ++++-- .../primeapi/payloads/model_to_payload.go | 9 +++--- .../primeapiv2/payloads/model_to_payload.go | 9 +++--- .../primeapiv3/payloads/model_to_payload.go | 9 +++--- .../internal/payloads/model_to_payload.go | 10 +++--- pkg/models/ghc_entitlements.go | 1 + pkg/services/order/order_updater.go | 8 +++-- .../AllowancesDetailForm.jsx | 29 +++++++++++------ .../Office/DefinitionLists/AllowancesList.jsx | 4 ++- .../MoveHistory/Database/FieldMappings.js | 1 + .../Office/MoveAllowances/MoveAllowances.jsx | 4 +++ src/pages/Office/MoveDetails/MoveDetails.jsx | 1 + .../ServicesCounselingMoveAllowances.jsx | 4 +++ .../ServicesCounselingMoveDetails.jsx | 1 + .../definitions/prime/Entitlements.yaml | 4 +++ swagger-def/ghc.yaml | 13 ++++++++ swagger-def/support.yaml | 3 ++ swagger/ghc.yaml | 15 +++++++++ swagger/prime.yaml | 4 +++ swagger/prime_v2.yaml | 4 +++ swagger/prime_v3.yaml | 4 +++ swagger/support.yaml | 3 ++ 36 files changed, 221 insertions(+), 32 deletions(-) create mode 100644 migrations/app/schema/20250107184554_add_weight_restriction.up.sql diff --git a/migrations/app/migrations_manifest.txt b/migrations/app/migrations_manifest.txt index ffaf109d530..5be0ac320d2 100644 --- a/migrations/app/migrations_manifest.txt +++ b/migrations/app/migrations_manifest.txt @@ -1061,3 +1061,4 @@ 20241230190647_add_missing_AK_zips_to_zip3_distances.up.sql 20250106153750_admin_weight_restriction.up.sql 20250106190758_admin_weight_restriction_convert_bool.up.sql +20250107184554_add_weight_restriction.up.sql diff --git a/migrations/app/schema/20250107184554_add_weight_restriction.up.sql b/migrations/app/schema/20250107184554_add_weight_restriction.up.sql new file mode 100644 index 00000000000..6d2a0ce08f6 --- /dev/null +++ b/migrations/app/schema/20250107184554_add_weight_restriction.up.sql @@ -0,0 +1,4 @@ +ALTER TABLE entitlements +ADD column weight_restriction int; + +COMMENT ON COLUMN entitlements.weight_restriction IS 'The weight restricted on the move to a particular location'; diff --git a/pkg/gen/ghcapi/embedded_spec.go b/pkg/gen/ghcapi/embedded_spec.go index a0183a05515..2bdafeafd2d 100644 --- a/pkg/gen/ghcapi/embedded_spec.go +++ b/pkg/gen/ghcapi/embedded_spec.go @@ -6929,6 +6929,13 @@ func init() { "type": "integer", "x-nullable": true, "example": 500 + }, + "weightRestriction": { + "description": "unit is in lbs", + "type": "integer", + "x-formatting": "weight", + "x-nullable": true, + "example": 1500 } } }, @@ -8135,6 +8142,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "description": "The amount of weight in pounds that the move is restricted to for a particular location.", + "type": "integer", + "example": 1500 } } }, @@ -13866,6 +13878,10 @@ func init() { "type": "integer", "x-nullable": true, "example": 500 + }, + "weightRestriction": { + "type": "integer", + "example": 1500 } } }, @@ -23687,6 +23703,13 @@ func init() { "type": "integer", "x-nullable": true, "example": 500 + }, + "weightRestriction": { + "description": "unit is in lbs", + "type": "integer", + "x-formatting": "weight", + "x-nullable": true, + "example": 1500 } } }, @@ -24893,6 +24916,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "description": "The amount of weight in pounds that the move is restricted to for a particular location.", + "type": "integer", + "example": 1500 } } }, @@ -30756,6 +30784,10 @@ func init() { "type": "integer", "x-nullable": true, "example": 500 + }, + "weightRestriction": { + "type": "integer", + "example": 1500 } } }, diff --git a/pkg/gen/ghcmessages/counseling_update_allowance_payload.go b/pkg/gen/ghcmessages/counseling_update_allowance_payload.go index c1a0ce9f418..78fa59fa9fb 100644 --- a/pkg/gen/ghcmessages/counseling_update_allowance_payload.go +++ b/pkg/gen/ghcmessages/counseling_update_allowance_payload.go @@ -73,6 +73,10 @@ type CounselingUpdateAllowancePayload struct { // ub allowance // Example: 500 UbAllowance *int64 `json:"ubAllowance,omitempty"` + + // unit is in lbs + // Example: 1500 + WeightRestriction *int64 `json:"weightRestriction,omitempty"` } // Validate validates this counseling update allowance payload diff --git a/pkg/gen/ghcmessages/entitlements.go b/pkg/gen/ghcmessages/entitlements.go index 7699f3be0e3..bc8ab2aad65 100644 --- a/pkg/gen/ghcmessages/entitlements.go +++ b/pkg/gen/ghcmessages/entitlements.go @@ -94,6 +94,10 @@ type Entitlements struct { // The amount of weight in pounds that the move is entitled for shipment types of Unaccompanied Baggage. // Example: 3 UnaccompaniedBaggageAllowance *int64 `json:"unaccompaniedBaggageAllowance,omitempty"` + + // The amount of weight in pounds that the move is restricted to for a particular location. + // Example: 1500 + WeightRestriction int64 `json:"weightRestriction,omitempty"` } // Validate validates this entitlements diff --git a/pkg/gen/ghcmessages/update_allowance_payload.go b/pkg/gen/ghcmessages/update_allowance_payload.go index 0a63d9b9fa9..391b664a827 100644 --- a/pkg/gen/ghcmessages/update_allowance_payload.go +++ b/pkg/gen/ghcmessages/update_allowance_payload.go @@ -73,6 +73,10 @@ type UpdateAllowancePayload struct { // ub allowance // Example: 500 UbAllowance *int64 `json:"ubAllowance,omitempty"` + + // weight restriction + // Example: 1500 + WeightRestriction int64 `json:"weightRestriction,omitempty"` } // Validate validates this update allowance payload diff --git a/pkg/gen/primeapi/embedded_spec.go b/pkg/gen/primeapi/embedded_spec.go index 5df9a70d690..a2089ab4ff6 100644 --- a/pkg/gen/primeapi/embedded_spec.go +++ b/pkg/gen/primeapi/embedded_spec.go @@ -1805,6 +1805,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "x-formatting": "weight", + "example": 1500 } } }, @@ -6703,6 +6708,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "x-formatting": "weight", + "example": 1500 } } }, diff --git a/pkg/gen/primemessages/entitlements.go b/pkg/gen/primemessages/entitlements.go index a1e606a00aa..f414734eb5d 100644 --- a/pkg/gen/primemessages/entitlements.go +++ b/pkg/gen/primemessages/entitlements.go @@ -83,6 +83,10 @@ type Entitlements struct { // The amount of weight in pounds that the move is entitled for shipment types of Unaccompanied Baggage. // Example: 3 UnaccompaniedBaggageAllowance *int64 `json:"unaccompaniedBaggageAllowance,omitempty"` + + // weight restriction + // Example: 1500 + WeightRestriction int64 `json:"weightRestriction,omitempty"` } // Validate validates this entitlements diff --git a/pkg/gen/primev2api/embedded_spec.go b/pkg/gen/primev2api/embedded_spec.go index 849b5f6783b..7b513facec7 100644 --- a/pkg/gen/primev2api/embedded_spec.go +++ b/pkg/gen/primev2api/embedded_spec.go @@ -1041,6 +1041,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "x-formatting": "weight", + "example": 1500 } } }, @@ -4652,6 +4657,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "x-formatting": "weight", + "example": 1500 } } }, diff --git a/pkg/gen/primev2messages/entitlements.go b/pkg/gen/primev2messages/entitlements.go index b39c4b64fd8..20bcf683c79 100644 --- a/pkg/gen/primev2messages/entitlements.go +++ b/pkg/gen/primev2messages/entitlements.go @@ -83,6 +83,10 @@ type Entitlements struct { // The amount of weight in pounds that the move is entitled for shipment types of Unaccompanied Baggage. // Example: 3 UnaccompaniedBaggageAllowance *int64 `json:"unaccompaniedBaggageAllowance,omitempty"` + + // weight restriction + // Example: 1500 + WeightRestriction int64 `json:"weightRestriction,omitempty"` } // Validate validates this entitlements diff --git a/pkg/gen/primev3api/embedded_spec.go b/pkg/gen/primev3api/embedded_spec.go index b5fc1983191..5c2a9e740d7 100644 --- a/pkg/gen/primev3api/embedded_spec.go +++ b/pkg/gen/primev3api/embedded_spec.go @@ -1203,6 +1203,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "x-formatting": "weight", + "example": 1500 } } }, @@ -5461,6 +5466,11 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "x-formatting": "weight", + "example": 1500 } } }, diff --git a/pkg/gen/primev3messages/entitlements.go b/pkg/gen/primev3messages/entitlements.go index d642d70f69b..3e3568aacdc 100644 --- a/pkg/gen/primev3messages/entitlements.go +++ b/pkg/gen/primev3messages/entitlements.go @@ -83,6 +83,10 @@ type Entitlements struct { // The amount of weight in pounds that the move is entitled for shipment types of Unaccompanied Baggage. // Example: 3 UnaccompaniedBaggageAllowance *int64 `json:"unaccompaniedBaggageAllowance,omitempty"` + + // weight restriction + // Example: 1500 + WeightRestriction int64 `json:"weightRestriction,omitempty"` } // Validate validates this entitlements diff --git a/pkg/gen/supportapi/embedded_spec.go b/pkg/gen/supportapi/embedded_spec.go index c50b1a37c98..45e90f65b9e 100644 --- a/pkg/gen/supportapi/embedded_spec.go +++ b/pkg/gen/supportapi/embedded_spec.go @@ -1187,6 +1187,10 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "example": 1500 } } }, @@ -4058,6 +4062,10 @@ func init() { "type": "integer", "x-nullable": true, "example": 3 + }, + "weightRestriction": { + "type": "integer", + "example": 1500 } } }, diff --git a/pkg/gen/supportmessages/entitlement.go b/pkg/gen/supportmessages/entitlement.go index 4ae036d582c..2247b355374 100644 --- a/pkg/gen/supportmessages/entitlement.go +++ b/pkg/gen/supportmessages/entitlement.go @@ -85,6 +85,10 @@ type Entitlement struct { // The amount of weight in pounds that the move is entitled for shipment types of Unaccompanied Baggage. // Example: 3 UnaccompaniedBaggageAllowance *int64 `json:"unaccompaniedBaggageAllowance,omitempty"` + + // weight restriction + // Example: 1500 + WeightRestriction int64 `json:"weightRestriction,omitempty"` } // Validate validates this entitlement diff --git a/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go b/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go index 482074aa402..ba1facad756 100644 --- a/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go +++ b/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go @@ -718,6 +718,11 @@ func Entitlement(entitlement *models.Entitlement) *ghcmessages.Entitlements { requiredMedicalEquipmentWeight := int64(entitlement.RequiredMedicalEquipmentWeight) gunSafe := entitlement.GunSafe adminRestrictedWeightLocation := entitlement.AdminRestrictedWeightLocation + + var weightRestriction int64 + wr := int64(entitlement.WeightRestriction) + weightRestriction = wr + var accompaniedTour *bool if entitlement.AccompaniedTour != nil { accompaniedTour = models.BoolPointer(*entitlement.AccompaniedTour) @@ -753,11 +758,10 @@ func Entitlement(entitlement *models.Entitlement) *ghcmessages.Entitlements { OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, GunSafe: gunSafe, AdminRestrictedWeightLocation: adminRestrictedWeightLocation, + WeightRestriction: weightRestriction, ETag: etag.GenerateEtag(entitlement.UpdatedAt), } -} - -// DutyLocation payload +} // DutyLocation payload func DutyLocation(dutyLocation *models.DutyLocation) *ghcmessages.DutyLocation { if dutyLocation == nil { return nil diff --git a/pkg/handlers/primeapi/payloads/model_to_payload.go b/pkg/handlers/primeapi/payloads/model_to_payload.go index 57ae9b12a4b..29d5aed536a 100644 --- a/pkg/handlers/primeapi/payloads/model_to_payload.go +++ b/pkg/handlers/primeapi/payloads/model_to_payload.go @@ -224,10 +224,11 @@ func Entitlement(entitlement *models.Entitlement) *primemessages.Entitlements { ProGearWeightSpouse: int64(entitlement.ProGearWeightSpouse), RequiredMedicalEquipmentWeight: int64(entitlement.RequiredMedicalEquipmentWeight), OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, - StorageInTransit: sit, - TotalDependents: totalDependents, - TotalWeight: totalWeight, - ETag: etag.GenerateEtag(entitlement.UpdatedAt), + StorageInTransit: sit, + TotalDependents: totalDependents, + TotalWeight: totalWeight, + WeightRestriction: int64(entitlement.WeightRestriction), + ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/primeapiv2/payloads/model_to_payload.go b/pkg/handlers/primeapiv2/payloads/model_to_payload.go index 2ece0f55833..44183723ac2 100644 --- a/pkg/handlers/primeapiv2/payloads/model_to_payload.go +++ b/pkg/handlers/primeapiv2/payloads/model_to_payload.go @@ -169,10 +169,11 @@ func Entitlement(entitlement *models.Entitlement) *primev2messages.Entitlements ProGearWeightSpouse: int64(entitlement.ProGearWeightSpouse), RequiredMedicalEquipmentWeight: int64(entitlement.RequiredMedicalEquipmentWeight), OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, - StorageInTransit: sit, - TotalDependents: totalDependents, - TotalWeight: totalWeight, - ETag: etag.GenerateEtag(entitlement.UpdatedAt), + StorageInTransit: sit, + TotalDependents: totalDependents, + TotalWeight: totalWeight, + WeightRestriction: int64(entitlement.WeightRestriction), + ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/primeapiv3/payloads/model_to_payload.go b/pkg/handlers/primeapiv3/payloads/model_to_payload.go index f4cd6ab2609..5723796265d 100644 --- a/pkg/handlers/primeapiv3/payloads/model_to_payload.go +++ b/pkg/handlers/primeapiv3/payloads/model_to_payload.go @@ -169,10 +169,11 @@ func Entitlement(entitlement *models.Entitlement) *primev3messages.Entitlements ProGearWeightSpouse: int64(entitlement.ProGearWeightSpouse), RequiredMedicalEquipmentWeight: int64(entitlement.RequiredMedicalEquipmentWeight), OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, - StorageInTransit: sit, - TotalDependents: totalDependents, - TotalWeight: totalWeight, - ETag: etag.GenerateEtag(entitlement.UpdatedAt), + StorageInTransit: sit, + TotalDependents: totalDependents, + TotalWeight: totalWeight, + WeightRestriction: int64(entitlement.WeightRestriction), + ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/supportapi/internal/payloads/model_to_payload.go b/pkg/handlers/supportapi/internal/payloads/model_to_payload.go index 5e43cd2070b..55d81ac65a8 100644 --- a/pkg/handlers/supportapi/internal/payloads/model_to_payload.go +++ b/pkg/handlers/supportapi/internal/payloads/model_to_payload.go @@ -151,6 +151,7 @@ func Entitlement(entitlement *models.Entitlement) *supportmessages.Entitlement { if entitlement.UBAllowance != nil { ubAllowance = int64(*entitlement.UBAllowance) } + return &supportmessages.Entitlement{ ID: strfmt.UUID(entitlement.ID.String()), AuthorizedWeight: authorizedWeight, @@ -162,10 +163,11 @@ func Entitlement(entitlement *models.Entitlement) *supportmessages.Entitlement { ProGearWeightSpouse: int64(entitlement.ProGearWeightSpouse), RequiredMedicalEquipmentWeight: int64(entitlement.RequiredMedicalEquipmentWeight), OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, - StorageInTransit: sit, - TotalDependents: totalDependents, - TotalWeight: totalWeight, - ETag: etag.GenerateEtag(entitlement.UpdatedAt), + StorageInTransit: sit, + TotalDependents: totalDependents, + TotalWeight: totalWeight, + WeightRestriction: int64(entitlement.WeightRestriction), + ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/models/ghc_entitlements.go b/pkg/models/ghc_entitlements.go index 7497291cb8c..f8e6a383bf6 100644 --- a/pkg/models/ghc_entitlements.go +++ b/pkg/models/ghc_entitlements.go @@ -32,6 +32,7 @@ type Entitlement struct { ProGearWeight int `db:"pro_gear_weight"` ProGearWeightSpouse int `db:"pro_gear_weight_spouse"` AdminRestrictedWeightLocation bool `db:"admin_restricted_weight_location"` + WeightRestriction int `db:"weight_restriction"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` } diff --git a/pkg/services/order/order_updater.go b/pkg/services/order/order_updater.go index 323bd7a0592..a8692b14653 100644 --- a/pkg/services/order/order_updater.go +++ b/pkg/services/order/order_updater.go @@ -460,6 +460,8 @@ func allowanceFromTOOPayload(appCtx appcontext.AppContext, existingOrder models. order.Entitlement.AdminRestrictedWeightLocation = *payload.AdminRestrictedWeightLocation } + order.Entitlement.WeightRestriction = int(payload.WeightRestriction) + if payload.AccompaniedTour != nil { order.Entitlement.AccompaniedTour = payload.AccompaniedTour } @@ -505,8 +507,8 @@ func allowanceFromTOOPayload(appCtx appcontext.AppContext, existingOrder models. } return order -} +} func allowanceFromCounselingPayload(appCtx appcontext.AppContext, existingOrder models.Order, payload ghcmessages.CounselingUpdateAllowancePayload) models.Order { order := existingOrder @@ -564,6 +566,8 @@ func allowanceFromCounselingPayload(appCtx appcontext.AppContext, existingOrder order.Entitlement.AdminRestrictedWeightLocation = *payload.AdminRestrictedWeightLocation } + order.Entitlement.WeightRestriction = int(*payload.WeightRestriction) + if payload.AccompaniedTour != nil { order.Entitlement.AccompaniedTour = payload.AccompaniedTour } @@ -603,8 +607,8 @@ func allowanceFromCounselingPayload(appCtx appcontext.AppContext, existingOrder } return order -} +} func (f *orderUpdater) saveDocumentForAmendedOrder(appCtx appcontext.AppContext, doc *models.Document) (*models.Document, error) { var docID uuid.UUID if doc != nil { diff --git a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx index edc345478ea..23c99ba8862 100644 --- a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx +++ b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx @@ -20,8 +20,9 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab entitlements?.dependentsTwelveAndOver || entitlements?.dependentsUnderTwelve ); - const [isAdminWeightLocationChecked, setIsAdminWeightLocationChecked] = useState(false); - + const [isAdminWeightLocationChecked, setIsAdminWeightLocationChecked] = useState( + entitlements?.adminRestrictedWeightLocation || false, + ); useEffect(() => { // Functional component version of "componentDidMount" // By leaving the dependency array empty this will only run once @@ -175,15 +176,23 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab isDisabled={formIsDisabled} onChange={(e) => setIsAdminWeightLocationChecked(e.target.checked)} /> - {isAdminWeightLocationChecked && ( - - )} + {isAdminWeightLocationChecked && ( + + )} +
Standard Weight allowance
{formatWeight(entitlements.totalWeight)}
diff --git a/src/components/Office/DefinitionLists/AllowancesList.jsx b/src/components/Office/DefinitionLists/AllowancesList.jsx index 3e0cf3dd93d..185a81be3f5 100644 --- a/src/components/Office/DefinitionLists/AllowancesList.jsx +++ b/src/components/Office/DefinitionLists/AllowancesList.jsx @@ -110,7 +110,9 @@ const AllowancesList = ({ info, showVisualCues }) => {
Weight Restriction
-
-
+
+ {info.weightRestriction ? formatWeight(info.weightRestriction) : DEFAULT_EMPTY_VALUE} +
diff --git a/src/constants/MoveHistory/Database/FieldMappings.js b/src/constants/MoveHistory/Database/FieldMappings.js index 1b216087f52..12c7a71d67d 100644 --- a/src/constants/MoveHistory/Database/FieldMappings.js +++ b/src/constants/MoveHistory/Database/FieldMappings.js @@ -40,6 +40,7 @@ export default { organizational_clothing_and_individual_equipment: 'OCIE', gun_safe: 'Gun Safe', admin_restricted_weight_location: 'Admin restricted weight location', + weight_restriction: 'Weight restriction', requested_pickup_date: 'Requested pickup date', grade: 'Pay grade', shipment_type: 'Shipment type', diff --git a/src/pages/Office/MoveAllowances/MoveAllowances.jsx b/src/pages/Office/MoveAllowances/MoveAllowances.jsx index 1412c39c972..346a0c6c263 100644 --- a/src/pages/Office/MoveAllowances/MoveAllowances.jsx +++ b/src/pages/Office/MoveAllowances/MoveAllowances.jsx @@ -99,6 +99,7 @@ const MoveAllowances = () => { storageInTransit, gunSafe, adminRestrictedWeightLocation, + weightRestriction, accompaniedTour, dependentsTwelveAndOver, dependentsUnderTwelve, @@ -120,6 +121,7 @@ const MoveAllowances = () => { storageInTransit: Number(storageInTransit), gunSafe, adminRestrictedWeightLocation, + weightRestriction: Number(weightRestriction), accompaniedTour, dependentsTwelveAndOver: Number(dependentsTwelveAndOver), dependentsUnderTwelve: Number(dependentsUnderTwelve), @@ -136,6 +138,7 @@ const MoveAllowances = () => { organizationalClothingAndIndividualEquipment, gunSafe, adminRestrictedWeightLocation, + weightRestriction, storageInTransit, dependentsUnderTwelve, dependentsTwelveAndOver, @@ -152,6 +155,7 @@ const MoveAllowances = () => { organizationalClothingAndIndividualEquipment, gunSafe, adminRestrictedWeightLocation, + weightRestriction, storageInTransit: `${storageInTransit}`, accompaniedTour, dependentsUnderTwelve: `${dependentsUnderTwelve}`, diff --git a/src/pages/Office/MoveDetails/MoveDetails.jsx b/src/pages/Office/MoveDetails/MoveDetails.jsx index 49209ee870b..81da8df5671 100644 --- a/src/pages/Office/MoveDetails/MoveDetails.jsx +++ b/src/pages/Office/MoveDetails/MoveDetails.jsx @@ -415,6 +415,7 @@ const MoveDetails = ({ dependentsTwelveAndOver: allowances.dependentsTwelveAndOver, accompaniedTour: allowances.accompaniedTour, ubAllowance: allowances.unaccompaniedBaggageAllowance, + weightRestriction: allowances.weightRestriction, }; const customerInfo = { diff --git a/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx b/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx index c954518334c..299d6de374d 100644 --- a/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx +++ b/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx @@ -87,6 +87,7 @@ const ServicesCounselingMoveAllowances = () => { storageInTransit, gunSafe, adminRestrictedWeightLocation, + weightRestriction, accompaniedTour, dependentsTwelveAndOver, dependentsUnderTwelve, @@ -108,6 +109,7 @@ const ServicesCounselingMoveAllowances = () => { organizationalClothingAndIndividualEquipment, gunSafe, adminRestrictedWeightLocation, + weightRestriction: Number(weightRestriction), accompaniedTour, dependentsTwelveAndOver: Number(dependentsTwelveAndOver), dependentsUnderTwelve: Number(dependentsUnderTwelve), @@ -124,6 +126,7 @@ const ServicesCounselingMoveAllowances = () => { organizationalClothingAndIndividualEquipment, gunSafe, adminRestrictedWeightLocation, + weightRestriction, storageInTransit, dependentsUnderTwelve, dependentsTwelveAndOver, @@ -140,6 +143,7 @@ const ServicesCounselingMoveAllowances = () => { storageInTransit: `${storageInTransit}`, gunSafe, adminRestrictedWeightLocation, + weightRestriction, organizationalClothingAndIndividualEquipment, accompaniedTour, dependentsUnderTwelve: `${dependentsUnderTwelve}`, diff --git a/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx b/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx index da6d6a2a34d..4fa2f82bbe6 100644 --- a/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx +++ b/src/pages/Office/ServicesCounselingMoveDetails/ServicesCounselingMoveDetails.jsx @@ -392,6 +392,7 @@ const ServicesCounselingMoveDetails = ({ dependentsTwelveAndOver: allowances.dependentsTwelveAndOver, accompaniedTour: allowances.accompaniedTour, ubAllowance: allowances.unaccompaniedBaggageAllowance, + weightRestriction: allowances.weightRestriction, }; const ordersInfo = { diff --git a/swagger-def/definitions/prime/Entitlements.yaml b/swagger-def/definitions/prime/Entitlements.yaml index 8a95dccf41c..45e4f573900 100644 --- a/swagger-def/definitions/prime/Entitlements.yaml +++ b/swagger-def/definitions/prime/Entitlements.yaml @@ -57,6 +57,10 @@ properties: totalDependents: example: 2 type: integer + weightRestriction: + example: 1500 + type: integer + x-formatting: weight eTag: type: string readOnly: true diff --git a/swagger-def/ghc.yaml b/swagger-def/ghc.yaml index c39682a8598..45017e8cb08 100644 --- a/swagger-def/ghc.yaml +++ b/swagger-def/ghc.yaml @@ -5026,6 +5026,10 @@ definitions: example: 3 x-nullable: true description: Indicates the number of dependents of the age twelve or older for a move. This is only present on OCONUS moves. + weightRestriction: + type: integer + example: 1500 + description: The amount of weight in pounds that the move is restricted to for a particular location. eTag: type: string type: object @@ -5837,6 +5841,9 @@ definitions: example: 500 type: integer x-nullable: true + weightRestriction: + example: 1500 + type: integer UpdateBillableWeightPayload: type: object properties: @@ -5933,6 +5940,12 @@ definitions: example: 500 type: integer x-nullable: true + weightRestriction: + example: 1500 + type: integer + description: unit is in lbs + x-formatting: weight + x-nullable: true MoveTaskOrder: description: The Move (MoveTaskOrder) properties: diff --git a/swagger-def/support.yaml b/swagger-def/support.yaml index 5f94bc926db..b487f1bdaea 100644 --- a/swagger-def/support.yaml +++ b/swagger-def/support.yaml @@ -916,6 +916,9 @@ definitions: totalDependents: example: 2 type: integer + weightRestriction: + example: 1500 + type: integer eTag: type: string readOnly: true diff --git a/swagger/ghc.yaml b/swagger/ghc.yaml index 83842cc917f..74a3ff2d4a5 100644 --- a/swagger/ghc.yaml +++ b/swagger/ghc.yaml @@ -5231,6 +5231,12 @@ definitions: description: >- Indicates the number of dependents of the age twelve or older for a move. This is only present on OCONUS moves. + weightRestriction: + type: integer + example: 1500 + description: >- + The amount of weight in pounds that the move is restricted to for a + particular location. eTag: type: string type: object @@ -6086,6 +6092,9 @@ definitions: example: 500 type: integer x-nullable: true + weightRestriction: + example: 1500 + type: integer UpdateBillableWeightPayload: type: object properties: @@ -6195,6 +6204,12 @@ definitions: example: 500 type: integer x-nullable: true + weightRestriction: + example: 1500 + type: integer + description: unit is in lbs + x-formatting: weight + x-nullable: true MoveTaskOrder: description: The Move (MoveTaskOrder) properties: diff --git a/swagger/prime.yaml b/swagger/prime.yaml index 8af5a4ee92d..974b986a39d 100644 --- a/swagger/prime.yaml +++ b/swagger/prime.yaml @@ -3059,6 +3059,10 @@ definitions: totalDependents: example: 2 type: integer + weightRestriction: + example: 1500 + type: integer + x-formatting: weight eTag: type: string readOnly: true diff --git a/swagger/prime_v2.yaml b/swagger/prime_v2.yaml index 05ac5076d6c..20c3c8243b6 100644 --- a/swagger/prime_v2.yaml +++ b/swagger/prime_v2.yaml @@ -1670,6 +1670,10 @@ definitions: totalDependents: example: 2 type: integer + weightRestriction: + example: 1500 + type: integer + x-formatting: weight eTag: type: string readOnly: true diff --git a/swagger/prime_v3.yaml b/swagger/prime_v3.yaml index 398bf9c100d..b7122385c20 100644 --- a/swagger/prime_v3.yaml +++ b/swagger/prime_v3.yaml @@ -1758,6 +1758,10 @@ definitions: totalDependents: example: 2 type: integer + weightRestriction: + example: 1500 + type: integer + x-formatting: weight eTag: type: string readOnly: true diff --git a/swagger/support.yaml b/swagger/support.yaml index bd09358deef..0d90796ada5 100644 --- a/swagger/support.yaml +++ b/swagger/support.yaml @@ -991,6 +991,9 @@ definitions: totalDependents: example: 2 type: integer + weightRestriction: + example: 1500 + type: integer eTag: type: string readOnly: true From a1e1fb0abcd4872964ecacc411cbfa3f9557e778 Mon Sep 17 00:00:00 2001 From: deandreJones Date: Fri, 10 Jan 2025 09:55:07 -0600 Subject: [PATCH 3/9] B-21934 add validation --- src/pages/Office/MoveAllowances/MoveAllowances.jsx | 6 +++++- .../ServicesCounselingMoveAllowances.jsx | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pages/Office/MoveAllowances/MoveAllowances.jsx b/src/pages/Office/MoveAllowances/MoveAllowances.jsx index 346a0c6c263..18484e884bd 100644 --- a/src/pages/Office/MoveAllowances/MoveAllowances.jsx +++ b/src/pages/Office/MoveAllowances/MoveAllowances.jsx @@ -43,6 +43,10 @@ const validationSchema = Yup.object({ .min(0, 'Storage in transit (days) must be greater than or equal to 0') .transform((value) => (Number.isNaN(value) ? 0 : value)) .notRequired(), + weightRestriction: Yup.number() + .min(0, 'Weight restriction must be greater than or equal to 0') + .transform((value) => (Number.isNaN(value) ? 0 : value)) + .notRequired(), }); const MoveAllowances = () => { @@ -155,7 +159,7 @@ const MoveAllowances = () => { organizationalClothingAndIndividualEquipment, gunSafe, adminRestrictedWeightLocation, - weightRestriction, + weightRestriction: `${weightRestriction}`, storageInTransit: `${storageInTransit}`, accompaniedTour, dependentsUnderTwelve: `${dependentsUnderTwelve}`, diff --git a/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx b/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx index 299d6de374d..d6a8f85bc6b 100644 --- a/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx +++ b/src/pages/Office/ServicesCounselingMoveAllowances/ServicesCounselingMoveAllowances.jsx @@ -143,7 +143,7 @@ const ServicesCounselingMoveAllowances = () => { storageInTransit: `${storageInTransit}`, gunSafe, adminRestrictedWeightLocation, - weightRestriction, + weightRestriction: `${weightRestriction}`, organizationalClothingAndIndividualEquipment, accompaniedTour, dependentsUnderTwelve: `${dependentsUnderTwelve}`, From 1d69b42ecffbe3a472869911132955f0bf4638b3 Mon Sep 17 00:00:00 2001 From: deandreJones Date: Fri, 10 Jan 2025 17:29:03 +0000 Subject: [PATCH 4/9] fix tests --- pkg/factory/entitlement_factory.go | 4 ++++ pkg/handlers/ghcapi/orders_test.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/pkg/factory/entitlement_factory.go b/pkg/factory/entitlement_factory.go index 235fdaf3be6..2255527c223 100644 --- a/pkg/factory/entitlement_factory.go +++ b/pkg/factory/entitlement_factory.go @@ -47,6 +47,7 @@ func BuildEntitlement(db *pop.Connection, customs []Customization, traits []Trai proGearWeight := 2000 proGearWeightSpouse := 500 ordersType := internalmessages.OrdersTypePERMANENTCHANGEOFSTATION + weightRestriction := 0 // Create default Entitlement entitlement := models.Entitlement{ @@ -59,6 +60,8 @@ func BuildEntitlement(db *pop.Connection, customs []Customization, traits []Trai ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, OrganizationalClothingAndIndividualEquipment: ocie, + AdminRestrictedWeightLocation: *setBoolPtr(&cEntitlement.AdminRestrictedWeightLocation, false), + WeightRestriction: weightRestriction, } // Set default calculated values entitlement.SetWeightAllotment(string(*grade), ordersType) @@ -73,4 +76,5 @@ func BuildEntitlement(db *pop.Connection, customs []Customization, traits []Trai } return entitlement + } diff --git a/pkg/handlers/ghcapi/orders_test.go b/pkg/handlers/ghcapi/orders_test.go index 6f554a05817..686894bd630 100644 --- a/pkg/handlers/ghcapi/orders_test.go +++ b/pkg/handlers/ghcapi/orders_test.go @@ -1476,6 +1476,8 @@ func (suite *HandlerSuite) TestCounselingUpdateAllowanceHandler() { ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, StorageInTransit: models.Int64Pointer(80), + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } request := httptest.NewRequest("PATCH", "/counseling/orders/{orderID}/allowances", nil) From 2440a23c724704b2d6cd9abdc7ff92ee287825a0 Mon Sep 17 00:00:00 2001 From: deandreJones Date: Fri, 10 Jan 2025 18:32:40 +0000 Subject: [PATCH 5/9] more tests --- pkg/services/order/order_updater_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/services/order/order_updater_test.go b/pkg/services/order/order_updater_test.go index 1bf72866552..1ed15ea9a89 100644 --- a/pkg/services/order/order_updater_test.go +++ b/pkg/services/order/order_updater_test.go @@ -588,6 +588,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsTOO() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: int64(*models.IntPointer(0)), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsTOO(suite.AppContextForTest(), order.ID, payload, eTag) @@ -630,6 +632,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsTOO() { AccompaniedTour: models.BoolPointer(true), DependentsTwelveAndOver: models.Int64Pointer(2), DependentsUnderTwelve: models.Int64Pointer(4), + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: int64(*models.IntPointer(0)), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsTOO(suite.AppContextForTest(), order.ID, payload, eTag) @@ -675,6 +679,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsTOO() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: int64(*models.IntPointer(0)), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsTOO(suite.AppContextForTest(), order.ID, payload, eTag) @@ -747,6 +753,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsCounselor() { AccompaniedTour: models.BoolPointer(true), DependentsTwelveAndOver: models.Int64Pointer(1), DependentsUnderTwelve: models.Int64Pointer(2), + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsCounselor(suite.AppContextForTest(), order.ID, payload, eTag) @@ -784,6 +792,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsCounselor() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsCounselor(suite.AppContextForTest(), order.ID, payload, eTag) @@ -829,6 +839,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsCounselor() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsCounselor(suite.AppContextForTest(), order.ID, payload, eTag) @@ -878,6 +890,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsCounselor() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsCounselor(suite.AppContextForTest(), orderWithoutDefaults.ID, payload, eTag) @@ -929,6 +943,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsCounselor() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsCounselor(suite.AppContextForTest(), order.ID, payload, eTag) @@ -965,6 +981,8 @@ func (suite *OrderServiceSuite) TestUpdateAllowanceAsCounselor() { ProGearWeight: proGearWeight, ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, + AdminRestrictedWeightLocation: models.BoolPointer(false), + WeightRestriction: models.Int64Pointer(0), } updatedOrder, _, err := orderUpdater.UpdateAllowanceAsCounselor(suite.AppContextForTest(), order.ID, payload, eTag) From 341c8fa2ad84e912efb2456e56456d3f03edd978 Mon Sep 17 00:00:00 2001 From: deandreJones Date: Fri, 10 Jan 2025 20:56:40 +0000 Subject: [PATCH 6/9] remove comment --- .../app/schema/20250106153750_admin_weight_restriction.up.sql | 4 ---- 1 file changed, 4 deletions(-) diff --git a/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql b/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql index a3e6e097e45..d5f248d8237 100644 --- a/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql +++ b/migrations/app/schema/20250106153750_admin_weight_restriction.up.sql @@ -1,6 +1,2 @@ ALTER TABLE entitlements ADD COLUMN IF NOT EXISTS admin_restricted_weight_location BOOLEAN; - --- ALTER COLUMN admin_restricted_weight_location TYPE boolean USING (COALESCE(admin_restricted_weight_location, false)), --- ALTER COLUMN admin_restricted_weight_location SET DEFAULT false, --- ALTER COLUMN admin_restricted_weight_location SET NOT NULL; \ No newline at end of file From 36ed644a365fe4497cf354c22d1bdc3381862220 Mon Sep 17 00:00:00 2001 From: Dre Jones <136509766+deandreJones@users.noreply.github.com> Date: Mon, 13 Jan 2025 14:50:28 -0600 Subject: [PATCH 7/9] Update ghc.yaml remove dup- from merge conflict --- swagger-def/ghc.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/swagger-def/ghc.yaml b/swagger-def/ghc.yaml index f9211cd67a0..432c2d07b9c 100644 --- a/swagger-def/ghc.yaml +++ b/swagger-def/ghc.yaml @@ -5893,7 +5893,6 @@ definitions: example: "N002214CSW32Y9" $ref: definitions/NullableString.yaml grade: - $ref: "#/definitions/Grade" $ref: '#/definitions/Grade' hasDependents: type: boolean From 84afa63af3b88589c57a810cb7a6d8ad7a22861c Mon Sep 17 00:00:00 2001 From: deandreJones Date: Tue, 14 Jan 2025 10:49:39 -0600 Subject: [PATCH 8/9] pointing --- ...250107184554_add_weight_restriction.up.sql | 2 +- pkg/factory/entitlement_factory.go | 4 +-- .../internal/payloads/model_to_payload.go | 5 ++-- .../primeapi/payloads/model_to_payload.go | 4 +-- .../primeapiv2/payloads/model_to_payload.go | 4 +-- .../primeapiv3/payloads/model_to_payload.go | 2 +- .../internal/payloads/model_to_payload.go | 2 +- pkg/models/ghc_entitlements.go | 4 +-- pkg/services/order/order_updater.go | 13 +++++---- pkg/testdatagen/make_entitlement.go | 2 ++ .../AllowancesDetailForm.jsx | 28 +++++++++++++++++-- 11 files changed, 49 insertions(+), 21 deletions(-) diff --git a/migrations/app/schema/20250107184554_add_weight_restriction.up.sql b/migrations/app/schema/20250107184554_add_weight_restriction.up.sql index 6d2a0ce08f6..13166af20ee 100644 --- a/migrations/app/schema/20250107184554_add_weight_restriction.up.sql +++ b/migrations/app/schema/20250107184554_add_weight_restriction.up.sql @@ -1,4 +1,4 @@ ALTER TABLE entitlements -ADD column weight_restriction int; +ADD column IF NOT EXISTS weight_restriction int; COMMENT ON COLUMN entitlements.weight_restriction IS 'The weight restricted on the move to a particular location'; diff --git a/pkg/factory/entitlement_factory.go b/pkg/factory/entitlement_factory.go index 2255527c223..02b2983c45d 100644 --- a/pkg/factory/entitlement_factory.go +++ b/pkg/factory/entitlement_factory.go @@ -60,8 +60,8 @@ func BuildEntitlement(db *pop.Connection, customs []Customization, traits []Trai ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, OrganizationalClothingAndIndividualEquipment: ocie, - AdminRestrictedWeightLocation: *setBoolPtr(&cEntitlement.AdminRestrictedWeightLocation, false), - WeightRestriction: weightRestriction, + AdminRestrictedWeightLocation: setBoolPtr(cEntitlement.AdminRestrictedWeightLocation, false), + WeightRestriction: &weightRestriction, } // Set default calculated values entitlement.SetWeightAllotment(string(*grade), ordersType) diff --git a/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go b/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go index a5ae34a4ce3..f7feca3e715 100644 --- a/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go +++ b/pkg/handlers/ghcapi/internal/payloads/model_to_payload.go @@ -722,7 +722,7 @@ func Entitlement(entitlement *models.Entitlement) *ghcmessages.Entitlements { adminRestrictedWeightLocation := entitlement.AdminRestrictedWeightLocation var weightRestriction int64 - wr := int64(entitlement.WeightRestriction) + wr := int64(*entitlement.WeightRestriction) weightRestriction = wr var accompaniedTour *bool @@ -759,10 +759,11 @@ func Entitlement(entitlement *models.Entitlement) *ghcmessages.Entitlements { UnaccompaniedBaggageAllowance: ubAllowance, OrganizationalClothingAndIndividualEquipment: entitlement.OrganizationalClothingAndIndividualEquipment, GunSafe: gunSafe, - AdminRestrictedWeightLocation: adminRestrictedWeightLocation, + AdminRestrictedWeightLocation: *adminRestrictedWeightLocation, WeightRestriction: weightRestriction, ETag: etag.GenerateEtag(entitlement.UpdatedAt), } + } // DutyLocation payload func DutyLocation(dutyLocation *models.DutyLocation) *ghcmessages.DutyLocation { if dutyLocation == nil { diff --git a/pkg/handlers/primeapi/payloads/model_to_payload.go b/pkg/handlers/primeapi/payloads/model_to_payload.go index 14a24327d46..ccbe2b2da59 100644 --- a/pkg/handlers/primeapi/payloads/model_to_payload.go +++ b/pkg/handlers/primeapi/payloads/model_to_payload.go @@ -248,7 +248,7 @@ func Entitlement(entitlement *models.Entitlement) *primemessages.Entitlements { UnaccompaniedBaggageAllowance: &ubAllowance, DependentsAuthorized: entitlement.DependentsAuthorized, GunSafe: entitlement.GunSafe, - AdminRestrictedWeightLocation: entitlement.AdminRestrictedWeightLocation, + AdminRestrictedWeightLocation: *entitlement.AdminRestrictedWeightLocation, NonTemporaryStorage: entitlement.NonTemporaryStorage, PrivatelyOwnedVehicle: entitlement.PrivatelyOwnedVehicle, ProGearWeight: int64(entitlement.ProGearWeight), @@ -258,7 +258,7 @@ func Entitlement(entitlement *models.Entitlement) *primemessages.Entitlements { StorageInTransit: sit, TotalDependents: totalDependents, TotalWeight: totalWeight, - WeightRestriction: int64(entitlement.WeightRestriction), + WeightRestriction: int64(*entitlement.WeightRestriction), ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/primeapiv2/payloads/model_to_payload.go b/pkg/handlers/primeapiv2/payloads/model_to_payload.go index 29dca5bd9ea..86cd761e17e 100644 --- a/pkg/handlers/primeapiv2/payloads/model_to_payload.go +++ b/pkg/handlers/primeapiv2/payloads/model_to_payload.go @@ -179,7 +179,7 @@ func Entitlement(entitlement *models.Entitlement) *primev2messages.Entitlements UnaccompaniedBaggageAllowance: &ubAllowance, DependentsAuthorized: entitlement.DependentsAuthorized, GunSafe: entitlement.GunSafe, - AdminRestrictedWeightLocation: entitlement.AdminRestrictedWeightLocation, + AdminRestrictedWeightLocation: *entitlement.AdminRestrictedWeightLocation, NonTemporaryStorage: entitlement.NonTemporaryStorage, PrivatelyOwnedVehicle: entitlement.PrivatelyOwnedVehicle, ProGearWeight: int64(entitlement.ProGearWeight), @@ -189,7 +189,7 @@ func Entitlement(entitlement *models.Entitlement) *primev2messages.Entitlements StorageInTransit: sit, TotalDependents: totalDependents, TotalWeight: totalWeight, - WeightRestriction: int64(entitlement.WeightRestriction), + WeightRestriction: int64(*entitlement.WeightRestriction), ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/primeapiv3/payloads/model_to_payload.go b/pkg/handlers/primeapiv3/payloads/model_to_payload.go index c0ce8f70e63..dfdd63530b3 100644 --- a/pkg/handlers/primeapiv3/payloads/model_to_payload.go +++ b/pkg/handlers/primeapiv3/payloads/model_to_payload.go @@ -215,7 +215,7 @@ func Entitlement(entitlement *models.Entitlement) *primev3messages.Entitlements StorageInTransit: sit, TotalDependents: totalDependents, TotalWeight: totalWeight, - WeightRestriction: int64(entitlement.WeightRestriction), + WeightRestriction: int64(*entitlement.WeightRestriction), ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/handlers/supportapi/internal/payloads/model_to_payload.go b/pkg/handlers/supportapi/internal/payloads/model_to_payload.go index 55d81ac65a8..e1e3c9f18a8 100644 --- a/pkg/handlers/supportapi/internal/payloads/model_to_payload.go +++ b/pkg/handlers/supportapi/internal/payloads/model_to_payload.go @@ -166,7 +166,7 @@ func Entitlement(entitlement *models.Entitlement) *supportmessages.Entitlement { StorageInTransit: sit, TotalDependents: totalDependents, TotalWeight: totalWeight, - WeightRestriction: int64(entitlement.WeightRestriction), + WeightRestriction: int64(*entitlement.WeightRestriction), ETag: etag.GenerateEtag(entitlement.UpdatedAt), } } diff --git a/pkg/models/ghc_entitlements.go b/pkg/models/ghc_entitlements.go index f8e6a383bf6..1bec7547de0 100644 --- a/pkg/models/ghc_entitlements.go +++ b/pkg/models/ghc_entitlements.go @@ -31,8 +31,8 @@ type Entitlement struct { OrganizationalClothingAndIndividualEquipment bool `db:"organizational_clothing_and_individual_equipment"` ProGearWeight int `db:"pro_gear_weight"` ProGearWeightSpouse int `db:"pro_gear_weight_spouse"` - AdminRestrictedWeightLocation bool `db:"admin_restricted_weight_location"` - WeightRestriction int `db:"weight_restriction"` + AdminRestrictedWeightLocation *bool `db:"admin_restricted_weight_location"` + WeightRestriction *int `db:"weight_restriction"` CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` } diff --git a/pkg/services/order/order_updater.go b/pkg/services/order/order_updater.go index a8692b14653..6075058b43f 100644 --- a/pkg/services/order/order_updater.go +++ b/pkg/services/order/order_updater.go @@ -457,10 +457,11 @@ func allowanceFromTOOPayload(appCtx appcontext.AppContext, existingOrder models. } if payload.AdminRestrictedWeightLocation != nil { - order.Entitlement.AdminRestrictedWeightLocation = *payload.AdminRestrictedWeightLocation + order.Entitlement.AdminRestrictedWeightLocation = payload.AdminRestrictedWeightLocation } - order.Entitlement.WeightRestriction = int(payload.WeightRestriction) + weightRestriction := int(payload.WeightRestriction) + order.Entitlement.WeightRestriction = &weightRestriction if payload.AccompaniedTour != nil { order.Entitlement.AccompaniedTour = payload.AccompaniedTour @@ -563,10 +564,13 @@ func allowanceFromCounselingPayload(appCtx appcontext.AppContext, existingOrder } if payload.AdminRestrictedWeightLocation != nil { - order.Entitlement.AdminRestrictedWeightLocation = *payload.AdminRestrictedWeightLocation + order.Entitlement.AdminRestrictedWeightLocation = payload.AdminRestrictedWeightLocation } - order.Entitlement.WeightRestriction = int(*payload.WeightRestriction) + if payload.WeightRestriction != nil { + weightRestriction := int(*payload.WeightRestriction) + order.Entitlement.WeightRestriction = &weightRestriction + } if payload.AccompaniedTour != nil { order.Entitlement.AccompaniedTour = payload.AccompaniedTour @@ -607,7 +611,6 @@ func allowanceFromCounselingPayload(appCtx appcontext.AppContext, existingOrder } return order - } func (f *orderUpdater) saveDocumentForAmendedOrder(appCtx appcontext.AppContext, doc *models.Document) (*models.Document, error) { var docID uuid.UUID diff --git a/pkg/testdatagen/make_entitlement.go b/pkg/testdatagen/make_entitlement.go index e71bf02cec1..9d9c787df4d 100644 --- a/pkg/testdatagen/make_entitlement.go +++ b/pkg/testdatagen/make_entitlement.go @@ -17,6 +17,7 @@ func makeEntitlement(db *pop.Connection, assertions Assertions) models.Entitleme ordersType := assertions.Order.OrdersType proGearWeight := 2000 proGearWeightSpouse := 500 + falsePtr := false if grade == nil || *grade == "" { grade = models.ServiceMemberGradeE1.Pointer() @@ -32,6 +33,7 @@ func makeEntitlement(db *pop.Connection, assertions Assertions) models.Entitleme ProGearWeightSpouse: proGearWeightSpouse, RequiredMedicalEquipmentWeight: rmeWeight, OrganizationalClothingAndIndividualEquipment: ocie, + AdminRestrictedWeightLocation: &falsePtr, } entitlement.SetWeightAllotment(string(*grade), ordersType) dBAuthorizedWeight := entitlement.AuthorizedWeight() diff --git a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx index 23c99ba8862..8e5531ba5bc 100644 --- a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx +++ b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx @@ -35,6 +35,29 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab checkUBFeatureFlag(); }, []); + useEffect(() => { + if (!isAdminWeightLocationChecked) { + // Find the weight restriction input and reset its value to 0 + const weightRestrictionInput = document.getElementById('weightRestrictionId'); + if (weightRestrictionInput) { + weightRestrictionInput.value = '0'; + } + } + }, [isAdminWeightLocationChecked]); + + const handleAdminWeightLocationChange = (e) => { + setIsAdminWeightLocationChecked(e.target.checked); + if (!e.target.checked) { + const weightRestrictionInput = document.querySelector('input[name="weightRestriction"]'); + if (weightRestrictionInput) { + weightRestrictionInput.value = '0'; + // Trigger change event to ensure form state is updated + const event = new Event('input', { bubbles: true }); + weightRestrictionInput.dispatchEvent(event); + } + } + }; + return (
{header &&

{header}

} @@ -172,9 +195,9 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab data-testid="adminWeightLocation" id="adminWeightLocation" name="adminRestrictedWeightLocation" - label="Admin Restricted Weight Location" + label="Admin restricted weight location" isDisabled={formIsDisabled} - onChange={(e) => setIsAdminWeightLocationChecked(e.target.checked)} + onChange={handleAdminWeightLocationChange} />
{isAdminWeightLocationChecked && ( @@ -209,7 +232,6 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab ); }; - AllowancesDetailForm.propTypes = { entitlements: EntitlementShape.isRequired, branchOptions: DropdownArrayOf.isRequired, From 87ab429574250e83f7300b590ac1aa9011b823ae Mon Sep 17 00:00:00 2001 From: deandreJones Date: Tue, 14 Jan 2025 11:08:26 -0600 Subject: [PATCH 9/9] cupid shuffle --- migrations/app/migrations_manifest.txt | 2 +- .../Office/AllowancesDetailForm/AllowancesDetailForm.jsx | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/migrations/app/migrations_manifest.txt b/migrations/app/migrations_manifest.txt index 59619d8ff1a..cd65e926c4a 100644 --- a/migrations/app/migrations_manifest.txt +++ b/migrations/app/migrations_manifest.txt @@ -1069,8 +1069,8 @@ 20241230190638_remove_AK_zips_from_zip3.up.sql 20241230190647_add_missing_AK_zips_to_zip3_distances.up.sql 20250103130619_revert_data_change_for_gbloc_for_ak.up.sql +20250103180420_update_pricing_proc_to_use_local_price_variable.up.sql 20250106153750_admin_weight_restriction.up.sql 20250106190758_admin_weight_restriction_convert_bool.up.sql 20250107184554_add_weight_restriction.up.sql -20250103180420_update_pricing_proc_to_use_local_price_variable.up.sql 20250110153428_add_shipment_address_updates_to_move_history.up.sql diff --git a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx index 8e5531ba5bc..739a5ea9d63 100644 --- a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx +++ b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx @@ -172,6 +172,10 @@ const AllowancesDetailForm = ({ header, entitlements, branchOptions, formIsDisab lazy={false} // immediate masking evaluation isDisabled={formIsDisabled} /> +
+
Standard Weight allowance
+
{formatWeight(entitlements.totalWeight)}
+
)} - -
-
Standard Weight allowance
-
{formatWeight(entitlements.totalWeight)}
-