Shipping Address
+
+
+ Company Name
+
+
+ Address is required
+
+
+ Maximum 100 characters allowed
+
+
+
diff --git a/src/app/carnet/shipping/shipping.component.ts b/src/app/carnet/shipping/shipping.component.ts
index d0268ae..487e76f 100644
--- a/src/app/carnet/shipping/shipping.component.ts
+++ b/src/app/carnet/shipping/shipping.component.ts
@@ -1,5 +1,5 @@
import { CommonModule } from '@angular/common';
-import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
+import { Component, EventEmitter, inject, Input, Output, SimpleChanges } from '@angular/core';
import { ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms';
import { NotificationService } from '../../core/services/common/notification.service';
import { AngularMaterialModule } from '../../shared/module/angular-material.module';
@@ -31,6 +31,7 @@ import { Holder } from '../../core/models/carnet/holder';
export class ShippingComponent {
@Input() headerid: number = 0;
@Input() isEditMode = false;
+ @Input() refreshShippingData = false;
@Output() completed = new EventEmitter();
private fb = inject(FormBuilder);
@@ -72,6 +73,7 @@ export class ShippingComponent {
needsLostDocProtection: [false],
shipTo: ['PREPARER', Validators.required],
address: this.fb.group({
+ companyName: [''],
address1: [''],
address2: [''],
city: [''],
@@ -110,7 +112,7 @@ export class ShippingComponent {
this.loadDeliveryMethods();
this.loadPaymentTypes();
- if (this.headerid && this.isEditMode) {
+ if (this.headerid) {
this.loadShippingData();
}
}
@@ -172,6 +174,12 @@ export class ShippingComponent {
this.shippingForm.get('address.zip')?.updateValueAndValidity();
}
+ ngOnChanges(changes: SimpleChanges) {
+ if (changes['refreshShippingData'] && this.headerid > 0) {
+ this.loadShippingData();
+ }
+ }
+
editAddressForm(): void {
this.showAddressForm = true;
let shipTo = this.shippingForm.get('shipTo')?.value;
@@ -369,6 +377,7 @@ export class ShippingComponent {
addressGroup.patchValue({
addressid: shipping.address?.addressid,
+ companyName: shipping.address?.companyName,
address1: shipping.address?.address1,
address2: shipping.address?.address2,
city: shipping.address?.city,
@@ -399,7 +408,9 @@ export class ShippingComponent {
if (shipTo === '3RDPARTY') {
Object.keys(addressGroup.controls).forEach(key => {
- if (key === 'address1') {
+ if (key === 'companyName') {
+ addressGroup.get(key)?.setValidators([Validators.required, Validators.maxLength(100)]);
+ } else if (key === 'address1') {
addressGroup.get(key)?.setValidators([Validators.required, Validators.maxLength(100)]);
} else if (key === 'address2') {
addressGroup.get(key)?.setValidators([Validators.maxLength(100)]);
@@ -450,13 +461,13 @@ export class ShippingComponent {
let shipTo = this.shippingForm.get('shipTo')?.value;
if (shipTo === 'PREPARER' && this.preparerAddress) {
- return `${this.preparerAddress.address1},
+ return `${this.preparerAddress.companyName}, ${this.preparerAddress.address1},
${this.preparerAddress.city}, ${this.preparerAddress.state}, ${this.preparerAddress.zip},
${this.preparerAddress.country}`;
}
if (shipTo === 'HOLDER' && this.holderAddress) {
- return `${this.holderAddress.address1},
+ return `${this.holderAddress.companyName}, ${this.holderAddress.address1},
${this.holderAddress.city}, ${this.holderAddress.state}, ${this.holderAddress.zip},
${this.holderAddress.country}`;
}
diff --git a/src/app/core/models/carnet/shipping-address.ts b/src/app/core/models/carnet/shipping-address.ts
index 0904f00..0beca1e 100644
--- a/src/app/core/models/carnet/shipping-address.ts
+++ b/src/app/core/models/carnet/shipping-address.ts
@@ -1,4 +1,5 @@
export interface ShippingAddress {
+ companyName: string;
addressid: number;
address1: string;
address2?: string | null;
diff --git a/src/app/core/services/carnet/shipping.service.ts b/src/app/core/services/carnet/shipping.service.ts
index 3bc997c..5dc7760 100644
--- a/src/app/core/services/carnet/shipping.service.ts
+++ b/src/app/core/services/carnet/shipping.service.ts
@@ -38,6 +38,7 @@ export class ShippingService {
};
shippingData.address = {
+ companyName: shippingDetails.P_SHIPNAME,
addressid: shippingDetails.SHIPADDRESSID,
address1: shippingDetails.ADDRESS1,
address2: shippingDetails.ADDRESS2,
@@ -74,11 +75,11 @@ export class ShippingService {
P_CUSTCOURIERNO: shippingData.courierAccount,
P_PAYMENTMETHOD: shippingData.paymentMethod,
-
P_FORMOFSECURITY: shippingData.needsBond ? 'Y' : 'N',
P_INSPROTECTION: shippingData.needsInsurance ? 'Y' : 'N',
P_LDIPROTECTION: shippingData.needsLostDocProtection ? 'Y' : 'N',
+ P_SHIPNAME: shippingData.address?.companyName,
P_ADDRESS1: shippingData.address?.address1 || null,
P_ADDRESS2: shippingData.address?.address2 || null,
P_CITY: shippingData.address?.city || null,
@@ -142,7 +143,8 @@ export class ShippingService {
private mapToAddress(address: any): ShippingAddress {
return {
- addressid: address.SHIPADDRESSID,
+ companyName: address.NAMEOF ?? address.HOLDERNAME,
+ addressid: address.LOCATIONID ?? address.LOCATIONID,
address1: address.ADDRESS1,
address2: address.ADDRESS2,
city: address.CITY,