@experteam-mx/ngx-services
Version:
Angular common services for Experteam apps
273 lines (272 loc) • 7.44 kB
TypeScript
import { ActiveLessSymfonyModel, SymfonyModel } from './api.models';
import { CustomerType } from './api-shipments.enums';
import { Supply } from './api-supplies.interfaces';
export interface ShipmentComposition extends SymfonyModel {
currencyCode: string;
extraCharges: ExtraChargeComposition[];
globalProductCode: string;
globalProductName: string;
localProductCode: string;
localProductName: string;
trackingNumber: string;
contentDescription: string;
realWeight: number;
piecesNumber: number;
productSubtotal: number;
productTax: number;
productTotal: number;
declaredValue: number;
insuredValue: number;
accountNumber: string;
userId: number;
installationId: number;
companyCountryId: number;
productId: number;
countryReferenceCurrencyId: number;
commercialExchangeRate: number;
ibsExchangeRate: number;
shipmentStatusId: number;
shipmentAddresses: ShipmentAddresses[];
shipmentPieces: ShipmentPieces[];
shipmentCompanyCountryExtraCharges: ShipmentCompanyCountryExtraCharges[];
shipmentGsop: ShipmentGsop;
additionalData: AdditionalData;
transactionId: string;
requiresPayment: boolean;
originServiceAreaCode: string;
originFacilityCode: string;
destinationServiceAreaCode: string;
destinationFacilityCode: string;
productTaxes: string[];
isInspected: boolean;
extraFields: {
[key: string]: string | number | boolean;
};
shipmentContentTypeId: number;
commercialInvoice: CommercialInvoice;
shipmentScopeId: number;
shipmentGroupId: number;
product: string[];
declaredCurrency: string;
insuredCurrency: string;
deliveryDateTime: string;
date: string;
promotionCode: string;
priceOverrideApproverId: number;
priceOverrideReasonId: number;
customs: Customs;
exportReasonId: number;
exportReason: string[];
shipmentBookPickup: ShipmentBookPickup;
questionId: number;
isInsured: boolean;
itnNumber: string;
einNumber: string;
otherAccountNumber: string;
dutiesAndTaxesAccountNumber: string;
discountId: string;
discountReference: string;
totalPublishedValue: number;
totalPartnerAccountValue: number;
isMarketingConsent: boolean;
isTermCondition: boolean;
isDocument: boolean;
isCash: boolean;
isPriceOverride: boolean;
isProforma: boolean;
isPromotionCode: boolean;
isRetailRate: boolean;
isOtherOrigin: boolean;
isOccurs: boolean;
isDutiesAndTaxes: boolean;
}
export interface ExtraChargeComposition {
globalServiceCode: string;
localServiceCode: string;
globalServiceName: string;
localServiceName: string;
subtotal: number;
tax: number;
total: number;
taxes: Tax[];
}
export interface Tax {
code: string;
percent: number;
baseAmount: number;
amount: number;
}
export interface ShipmentAddresses extends SymfonyModel {
index: number;
identificationTypeId: number;
identificationNumber: string;
companyName: string;
fullName: string;
email: string;
phoneCode: string;
phoneNumber: string;
postalCode: string;
stateCode: string;
countyName: string;
cityName: string;
addressLine1: string;
addressLine2: string;
addressLine3: string;
countryId: number;
identificationType: IdentificationTypeComposition;
roleType: CustomerType;
}
export interface IdentificationTypeComposition extends SymfonyModel {
name: string;
companyCountryId: number;
}
export interface ShipmentPieces extends ActiveLessSymfonyModel {
number: number;
height: number;
length: number;
width: number;
realWeight: number;
volumetricWeight: number;
dataIdentifier: string;
trackingNumber: string;
licensePlateBarCode: string;
shipmentPieceCompanyCountrySupplies: ShipmentPieceCompanyCountrySupplies[];
}
export interface ShipmentPieceCompanyCountrySupplies extends ActiveLessSymfonyModel {
supplyId: number;
quantity: number;
subtotal: number;
taxBase: number;
taxPercent: number;
tax: number;
total: number;
description: string;
supply: Supply;
}
export interface CommercialInvoice extends ActiveLessSymfonyModel {
documentTypeId: number;
tradingTransactionTypeId: number;
documentFunctionId: number;
number: string;
remarks: string;
items: Item[];
documentType: DocumentTypeComposition;
tradingTransactionType: TradingTransactionType;
documentFunction: DocumentFunction;
}
export interface Item extends ActiveLessSymfonyModel {
description: string;
quantity: number;
quantityUnitId: number;
subtotal: number;
manufactureCountryCode: string;
realWeight: number;
commodityId: number;
quantityUnit: QuantityUnit;
manufactureCountry: ManufactureCountry;
commodity: Commodity;
}
export interface QuantityUnit extends SymfonyModel {
code: string;
name: string;
}
export interface ManufactureCountry {
id: string;
code: string;
name: string;
locationType: string[];
unit: string[];
timezone: string;
hasImportService: boolean;
isActive: boolean;
regions: string[];
zones: string[];
isoCode: string;
}
export interface Commodity extends SymfonyModel {
code: string;
name: string;
countryId: number;
}
export interface DocumentTypeComposition extends SymfonyModel {
code: string;
name: string;
description: string;
}
export interface TradingTransactionType extends SymfonyModel {
code: string;
name: string;
description: string;
}
export interface DocumentFunction extends SymfonyModel {
code: string;
name: string;
}
export interface ShipmentGsop extends ActiveLessSymfonyModel {
productContentCode: string;
originServiceAreaCode: string;
destinationServiceAreaCode: string;
internalServiceCode: string;
awbBarCode: string;
dhlRoutingBarCode: string;
}
export interface ShipmentCompanyCountryExtraCharges extends ActiveLessSymfonyModel {
subtotal: number;
tax: number;
total: number;
extraChargeId: number;
extraChargeCode: string;
}
export interface AdditionalData {
awbTypeCode: string;
countryCode: string;
shipmentTypeCode: string;
productGlobalCode: string;
productLocalCode: string;
currencyCode: string;
userUsername: string;
locationFacilityCode: string;
}
export interface Customs {
criteria: Criteria;
rules: Rules[];
}
export interface Criteria {
origin: string;
destination: string;
dutiable: boolean;
declaredValue: number;
}
export interface Rules {
id: number;
level: string;
attributes: Attributes[];
}
export interface Attributes {
id: number;
field: string;
dhlCode: string;
values: Values;
}
export interface Values {
shipment: string;
customer: CustomerComposition;
invoiceHeader: string;
invoiceItem: string[];
}
export interface CustomerComposition {
SP: string;
RV: string;
}
export interface ShipmentBookPickup extends ActiveLessSymfonyModel {
pickupDate: string;
readyByTime: string;
closeTime: string;
confirmationNumber: string;
packageLocationId: number;
remarks: string;
packageLocation: PackageLocation;
}
export interface PackageLocation extends SymfonyModel {
name: string;
}