mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-09 07:08:18 +00:00
- Implemented in the to manage the physical item capacity for each wagon type. - Added a new migration to create the column in the table. - Introduced method in to update rate units when cargo type unit of measure changes. - Updated booking calculations to consider items per wagon for break-bulk cargo. - Refactored various components to utilize the new items fit logic and ensure consistent date formatting across the application. - Added tests for the new display timezone functionality to ensure consistent date/time representation across different user settings.
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
|
|
/**
|
|
* Rates created before their commodity's unit_of_measure was flipped kept the
|
|
* old bulk-quantity unit, so bookings of a PER_ITEM commodity (e.g. Machinery)
|
|
* quoted "per ton". PER_TON and PER_ITEM bill the same stored quantity — only
|
|
* the name differs — so renaming is safe. Going forward the cargo-types
|
|
* service syncs rates on every uom change; this backfills the drift.
|
|
*/
|
|
export class SyncBulkRateUnitsToCargoUom3140000000000 implements MigrationInterface {
|
|
name = 'SyncBulkRateUnitsToCargoUom3140000000000';
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(
|
|
`UPDATE "freight"."rates" r
|
|
SET "rate_unit" = 'PER_ITEM'
|
|
FROM "freight"."cargo_types" ct
|
|
WHERE ct."id" = r."cargo_type_id"
|
|
AND ct."unit_of_measure" = 'PER_ITEM'
|
|
AND r."rate_unit" = 'PER_TON'`,
|
|
);
|
|
await queryRunner.query(
|
|
`UPDATE "freight"."rates" r
|
|
SET "rate_unit" = 'PER_TON'
|
|
FROM "freight"."cargo_types" ct
|
|
WHERE ct."id" = r."cargo_type_id"
|
|
AND ct."unit_of_measure" = 'PER_TON'
|
|
AND r."rate_unit" = 'PER_ITEM'`,
|
|
);
|
|
}
|
|
|
|
public async down(): Promise<void> {
|
|
// Irreversible rename-by-join: the pre-sync unit is not recorded. Both
|
|
// units bill identically, so rolling back the code needs no data change.
|
|
}
|
|
}
|