mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 07:22:53 +00:00
- Added ContainerValidationService to handle 20ft weight-pairing logic. - Introduced validate20ftWeightPairing utility function to check weight differences. - Updated BookingPricingService to include overweight line details and pairing errors in price response. - Enhanced BookingTransitionService to reject submissions with unpairable 20ft containers. - Created ShipmentValidation interface for pre-submit validation of container contracts. - Integrated shipment validation into the contract booking process, providing warnings for overweight containers and hard blocks for pairing errors. - Updated front-end components to display validation results and prevent submission when errors are present.
102 lines
4.3 KiB
TypeScript
102 lines
4.3 KiB
TypeScript
import { Module, forwardRef } from "@nestjs/common";
|
|
import { ConfigService } from "@nestjs/config";
|
|
import { TypeOrmModule } from "@nestjs/typeorm";
|
|
import { ExchangeModule, ExchangeOptions } from "@edr/api-common";
|
|
|
|
// import { CustomersModule } from '../customers/customers.module';
|
|
import { CompaniesModule } from '../companies/companies.module';
|
|
import { FilesModule } from '../files/files.module';
|
|
import { MinioModule } from '../minio/minio.module';
|
|
import { RuleEngineModule } from '../rule-engine/rule-engine.module';
|
|
import { FileUploadSettingsModule } from '../file-upload-settings/file-upload-settings.module';
|
|
import { SignaturesModule } from '../signatures/signatures.module';
|
|
import { BillingModule } from '../billing/billing.module';
|
|
import { FirstMileModule } from '../first-mile/first-mile.module';
|
|
import { BookingContractService } from './booking-contract.service';
|
|
import { BookingInvoiceService } from './booking-invoice.service';
|
|
// import { BookingPaymentController } from './booking-payment.controller';
|
|
// import { BookingPaymentService } from './booking-payment.service';
|
|
import { BookingPricingService } from './booking-pricing.service';
|
|
import { BookingReferenceDataService } from './booking-reference-data.service';
|
|
import { BookingTransitionService } from './booking-transition.service';
|
|
import { BookingsController } from './bookings.controller';
|
|
// import { PayController } from './pay.controller';
|
|
import { BookingsRepository } from './bookings.repository';
|
|
import { ConsolidationService } from './consolidation.service';
|
|
import { ContainerValidationService } from './container-validation.service';
|
|
import { BookingsService } from './bookings.service';
|
|
import { BookingApprovalStep } from './entities/booking-approval-step.entity';
|
|
import { BookingCargoModifier } from './entities/booking-cargo-modifier.entity';
|
|
import { BookingDocumentReview } from './entities/booking-document-review.entity';
|
|
import { BookingContainer } from './entities/booking-container.entity';
|
|
import { BookingRateSnapshot } from './entities/booking-rate-snapshot.entity';
|
|
import { BookingContractSignature } from './entities/booking-contract-signature.entity';
|
|
import { BookingReviewNote } from './entities/booking-review-note.entity';
|
|
import { Booking } from './entities/booking.entity';
|
|
import { ContractPdfService } from '../../contracts/contract-pdf.service';
|
|
import { ContractPricingScheduleBuilder } from '../../contracts/contract-pricing-schedule.builder';
|
|
import { ContractRendererService } from '../../contracts/contract-renderer.service';
|
|
import { ContractTemplateResolver } from '../../contracts/contract-template.resolver';
|
|
import { ContractViewModelBuilder } from '../../contracts/contract-view-model.builder';
|
|
import { TrainSchedulingModule } from '../train-scheduling/train-scheduling.module';
|
|
import { ContractsModule } from '../contracts/contracts.module';
|
|
import { BookingContainerAllocation } from "./entities/booking-container-allocation.entity";
|
|
|
|
|
|
@Module({
|
|
imports: [
|
|
TypeOrmModule.forFeature([
|
|
Booking,
|
|
BookingContainer,
|
|
BookingCargoModifier,
|
|
BookingApprovalStep,
|
|
BookingDocumentReview,
|
|
BookingRateSnapshot,
|
|
BookingReviewNote,
|
|
BookingContractSignature,
|
|
BookingContainerAllocation,
|
|
]),
|
|
BillingModule,
|
|
forwardRef(() => FirstMileModule),
|
|
forwardRef(() => TrainSchedulingModule),
|
|
forwardRef(() => ContractsModule),
|
|
forwardRef(() => ContractsModule),
|
|
FilesModule,
|
|
MinioModule,
|
|
CompaniesModule,
|
|
// CustomersModule,
|
|
RuleEngineModule,
|
|
FileUploadSettingsModule,
|
|
SignaturesModule,
|
|
ExchangeModule.forRootAsync({
|
|
inject: [ConfigService],
|
|
useFactory: (config: ConfigService): ExchangeOptions =>
|
|
config.get<ExchangeOptions>("app.cbeExchange") ?? {},
|
|
}),
|
|
],
|
|
controllers: [BookingsController],
|
|
providers: [
|
|
BookingsService,
|
|
BookingsRepository,
|
|
ConsolidationService,
|
|
ContainerValidationService,
|
|
BookingReferenceDataService,
|
|
BookingPricingService,
|
|
BookingTransitionService,
|
|
BookingContractService,
|
|
BookingInvoiceService,
|
|
ContractTemplateResolver,
|
|
ContractViewModelBuilder,
|
|
ContractPricingScheduleBuilder,
|
|
ContractRendererService,
|
|
ContractPdfService,
|
|
],
|
|
exports: [
|
|
BookingsService,
|
|
BookingsRepository,
|
|
BookingPricingService,
|
|
BookingInvoiceService,
|
|
],
|
|
})
|
|
export class BookingsModule { }
|