Commit 36cb1414 authored by ctandel's avatar ctandel

Added customer-selection screen for ecm-type = 2

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@175155 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 58192051
...@@ -5,8 +5,8 @@ import { LocationStrategy, HashLocationStrategy } from '@angular/common'; ...@@ -5,8 +5,8 @@ import { LocationStrategy, HashLocationStrategy } from '@angular/common';
import { FormsModule,ReactiveFormsModule } from '@angular/forms'; import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http'; import { HttpModule } from '@angular/http';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import {BBKeyInputModule} from 'base-blocks'; //import {BBKeyInputModule} from 'base-blocks';
import { BBComponentModule } from 'base-blocks';
//import { JwtHelper } from 'angular2-jwt'; //For Future //import { JwtHelper } from 'angular2-jwt'; //For Future
import {StoreModule} from '@ngrx/store'; import {StoreModule} from '@ngrx/store';
import {EffectsModule} from '@ngrx/effects'; import {EffectsModule} from '@ngrx/effects';
...@@ -193,7 +193,8 @@ const appRoutes: Routes = [ ...@@ -193,7 +193,8 @@ const appRoutes: Routes = [
EffectsModule.run(OrderEffects), EffectsModule.run(OrderEffects),
FormsModule, FormsModule,
BrowserAnimationsModule, BrowserAnimationsModule,
BBKeyInputModule // BBKeyInputModule
BBComponentModule
], ],
providers: [ providers: [
{provide: LocationStrategy, useClass: HashLocationStrategy}, {provide: LocationStrategy, useClass: HashLocationStrategy},
......
...@@ -458,11 +458,58 @@ md-card { ...@@ -458,11 +458,58 @@ md-card {
display: none !important; display: none !important;
} }
.sales-form{
padding-left: 50px;
}
.date-picker{
padding-left: 90px;
}
mat-calendar#md-datepicker-0 {
width: 100% !important;
height: 100% !important;
}
mat-calendar#md-datepicker-1 {
width: 100% !important;
height: 100% !important;
}
mat-calendar#md-datepicker-2 {
width: 100% !important;
height: 100% !important;
}
/*mat-autocomplete-panel.mat-autocomplete-visible {
visibility: visible;
width: 350px !important ;
}*/
mat-autocomplete-panel {
visibility: visible;
width: 375px !important ;
}
.mat-calendar {
display: block;
width: 100% !important;
}
/*chitranga*/
.name{
padding-bottom: 8px;
}
.name-span{
color: #000;
font-weight: 600;
font-size: 12px;
}
.address-span{
color: #666;
display: block;
font-size: 12px;
}
.user-alladress-info {
display: inline-block;
/* padding-left: 75px; */
padding-left: 30px;
}
<ecm-header [isFixedHeader]=true> </ecm-header> <ecm-header [isFixedHeader]=true> </ecm-header>
<div class="row checkout-page"> <div class="row checkout-page">
<div class="medium-8 columns"> <div class="medium-8 columns">
...@@ -8,9 +7,11 @@ ...@@ -8,9 +7,11 @@
<md-vertical-stepper #stepper [linear]="true"> <md-vertical-stepper #stepper [linear]="true">
<md-step [stepControl]="loginFormGroup"> <md-step [stepControl]="loginFormGroup">
<ng-template mdStepLabel class="panel-selected"> <ng-template mdStepLabel class="panel-selected">
Login <span *ngIf="userData" class = "email-data"> {{userData?.EMAIL_ID}}</span> Login <span *ngIf="userData">
</ng-template> <span *ngIf="userData.EMAIL_ID" class = "email-data">{{userData?.EMAIL_ID}}</span>
<span *ngIf="userData.HOD_EMAIL" class = "email-data">{{userData?.HOD_EMAIL}}</span>
</span>
</ng-template>
<ng-container *ngTemplateOutlet="loginPage"></ng-container> <ng-container *ngTemplateOutlet="loginPage"></ng-container>
<!-- <button style="float: right;margin: 10px;" md-button mdStepperNext>Next</button>--> <!-- <button style="float: right;margin: 10px;" md-button mdStepperNext>Next</button>-->
...@@ -19,43 +20,116 @@ ...@@ -19,43 +20,116 @@
</form> </form>
</md-step> </md-step>
<md-step [stepControl]="addressFormGroup"> <ng-container *ngTemplateOutlet = "ecmType == 1 ? ecmBillAdress : salesBillAdress"></ng-container>
<ng-template mdStepLabel class="panel-selected">
Delivery/Billing Address <ng-template #salesBillAdress >
</ng-template> <md-step [stepControl]="salesAddressFormGroup">
<ng-template mdStepLabel class="panel-selected">
<md-radio-group [required]="true" class="example-radio-group" [(ngModel)]="selectedAddressOpt"> Customer Selection
<span *ngFor = "let address of addressList"> </ng-template>
<md-radio-button class="user-address" [value]="address">
<address-screen [address]="address" class="address-screen"></address-screen>
</md-radio-button> <form [formGroup]="salesAddressFormGroup">
<div *ngIf="address == selectedAddressOpt"> <div class = "sales-form">
<form [formGroup]="addressFormGroup"> <span class = "auto-select">
<input type="hidden" formControlName="address" [(ngModel)]="selectedAddress"> <bb-autosuggest (onDeSelect)= "onDeSelect('soldTo');" (onSelect)="onSelect($event, 'soldTo');" name = "soldTo" [(ngModel)]="saleAddress.soldTo.custName" formControlName = "soldTo" [uxDesign] = "'UX2'" [dataSource]= 'dataSource' [chipEnable] = "false" [placeholder] = "'Sold to '" ></bb-autosuggest>
</form> <div *ngIf="saleAddress.soldTo" class="user-alladress-info" >
<button md-button class="save-button" type="button" mdStepperNext (click)="selectAddress(address)"> <div class="name">
Deliver Here <span class="name-span">{{saleAddress.soldTo?.custName}}</span>
</button> </div>
<div>
<span class="address-span">{{saleAddress.soldTo.address?.addr1}} {{ getSeparator(saleAddress.soldTo.address?.addr1) }} {{saleAddress.soldTo.address?.addr2}} {{ getSeparator(saleAddress.soldTo.address?.addr2) }} {{saleAddress.soldTo.address?.addr3}} {{ getSeparator(saleAddress.soldTo.address?.addr3) }} {{saleAddress.soldTo.address?.city}} {{ getSeparator(saleAddress.soldTo.address?.city) }} </span>
<span class="address-span">{{saleAddress.soldTo.address?.stateDescr}} - {{saleAddress.soldTo.address?.pinCode}} - {{saleAddress.soldTo.address?.countDescr}}. </span>
</div>
</div> </div>
</span> </span>
<br>
<bb-autosuggest (onDeSelect)= "onDeSelect('billTo');" (onSelect)="onSelect($event,'billTo');" name = "billTo" [(ngModel)]="saleAddress.billTo.custName" formControlName = "billTo" [uxDesign] = "'UX2'" [dataSource]= 'dataSource' [chipEnable] = "false" [placeholder] = "' Bill to '"></bb-autosuggest>
<div *ngIf="saleAddress.billTo" class="user-alladress-info" >
<div class="name">
<span class="name-span">{{saleAddress.billTo?.custName}}</span>
</div>
<div>
<span class="address-span">{{saleAddress.billTo.address?.addr1}} {{ getSeparator(saleAddress.billTo.address?.addr1) }} {{saleAddress.billTo.address?.addr2}} {{ getSeparator(saleAddress.billTo.address?.addr2) }} {{saleAddress.billTo.address?.addr3}} {{ getSeparator(saleAddress.billTo.address?.addr3) }} {{saleAddress.billTo.address?.city}} {{ getSeparator(saleAddress.billTo.address?.city) }} </span>
<span class="address-span">{{saleAddress.billTo.address?.stateDescr}} - {{saleAddress.billTo.address?.pinCode}} - {{saleAddress.billTo.address?.countDescr}}. </span>
</div>
</div>
<br>
<bb-autosuggest (onDeSelect)= "onDeSelect('deliverTo');" (onSelect)="onSelect($event,'deliverTo');" name = "deliverTo" [(ngModel)]="saleAddress.deliverTo.custName" formControlName = "deliverTo" [uxDesign] = "'UX2'" [dataSource]= 'dataSource' [chipEnable] = "false" [placeholder] = "'Deliver to'"></bb-autosuggest>
<div *ngIf="saleAddress.deliverTo" class="user-alladress-info" >
<div class="name">
<span class="name-span">{{saleAddress.deliverTo?.custName}}</span>
</div>
<div>
<span class="address-span">{{saleAddress.deliverTo.address?.addr1}} {{ getSeparator(saleAddress.deliverTo.address?.addr1) }} {{saleAddress.deliverTo.address?.addr2}} {{ getSeparator(saleAddress.deliverTo.address?.addr2) }} {{saleAddress.deliverTo.address?.addr3}} {{ getSeparator(saleAddress.deliverTo.address?.addr3) }} {{saleAddress.deliverTo.address?.city}} {{ getSeparator(saleAddress.deliverTo.address?.city) }} </span>
<span class="address-span">{{saleAddress.deliverTo.address?.stateDescr}} - {{saleAddress.deliverTo.address?.pinCode}} - {{saleAddress.deliverTo.address?.countDescr}}. </span>
</div>
</div>
<br>
<bb-textbox [required]="true" [uxDesign]="'UX3'" [required]="true" [(ngModel)]="saleAddress.orderNo" formControlName = "orderNo" [placeholder]="'Purchase order No '" ></bb-textbox><br>
<md-form-field>
<input mdInput [mdDatepicker]="orderDate" [(ngModel)]="saleAddress.orderDate" formControlName = "orderDate" placeholder="Purchase order date" (click)="orderDate.open();">
<md-datepicker #orderDate></md-datepicker>
</md-form-field><br>
<md-form-field>
<input mdInput [mdDatepicker]="shipDate" [(ngModel)]="saleAddress.shipDate" formControlName = "shipDate" placeholder="Ship Date" (click)="shipDate.open();" >
<md-datepicker #shipDate></md-datepicker>
</md-form-field>
<md-radio-button class="user-address" [value]="'newaddress'"> <md-form-field class ="date-picker">
<span class="address-screen">New Address</span> <input mdInput [mdDatepicker]="dueDate" [(ngModel)]="saleAddress.dueDate" formControlName = "dueDate" placeholder="Due Date " (click)="dueDate.open();">
</md-radio-button> <md-datepicker #dueDate></md-datepicker>
</md-form-field>
<div *ngIf="selectedAddressOpt == 'newaddress'" class="edit-detail-template"> </div>
<address-screen #addrAddScreen [editMode]="'E'" [address]="newAddress" class="address-screen"></address-screen> </form>
<button md-button mdStepperNext class="save-button" *ngIf="editForm" [disabled]="!editForm.valid || !editForm.dirty" (click)="saveAddress();"> <div class="edit-detail-template">
Save and Deliver Here <button md-button mdStepperNext class="save-button" [disabled]="salesAddressFormGroup.invalid" (click)="submitForm()" >
</button> Save
<button md-button (click)="selectedAddress = addressList[0]"> </button>
Cancel <button md-button>
</button> Cancel
</div> </button>
</div>
</md-step>
</ng-template>
<ng-template #ecmBillAdress >
<md-step [stepControl]="addressFormGroup">
<ng-template mdStepLabel class="panel-selected">
Delivery/Billing Address
</ng-template>
<md-radio-group [required]="true" class="example-radio-group" [(ngModel)]="selectedAddressOpt">
<span *ngFor = "let address of addressList">
<md-radio-button class="user-address" [value]="address">
<address-screen [address]="address" class="address-screen"></address-screen>
</md-radio-button>
<div *ngIf="address == selectedAddressOpt">
<form [formGroup]="addressFormGroup">
<input type="hidden" formControlName="address" [(ngModel)]="selectedAddress">
</form>
<button md-button class="save-button" type="button" mdStepperNext (click)="selectAddress(address)">
Deliver Here
</button>
</div>
</span>
<md-radio-button class="user-address" [value]="'newaddress'">
<span class="address-screen">New Address</span>
</md-radio-button>
<div *ngIf="selectedAddressOpt == 'newaddress'" class="edit-detail-template">
<address-screen #addrAddScreen [editMode]="'E'" [address]="newAddress" class="address-screen"></address-screen>
<button md-button mdStepperNext class="save-button" *ngIf="editForm" [disabled]="!editForm.valid || !editForm.dirty" (click)="saveAddress();">
Save and Deliver Here
</button>
<button md-button (click)="selectedAddress = addressList[0]">
Cancel
</button>
</div>
</md-radio-group> </md-radio-group>
</md-step> </md-step>
</ng-template>
<md-step [stepControl]="reviewOrdersFormGroup"> <md-step [stepControl]="reviewOrdersFormGroup">
<ng-template mdStepLabel>Review Order({{cartItems.length}} Items)</ng-template> <ng-template mdStepLabel>Review Order({{cartItems.length}} Items)</ng-template>
...@@ -72,8 +146,6 @@ ...@@ -72,8 +146,6 @@
<ng-template mdStepLabel>Payment Method</ng-template> <ng-template mdStepLabel>Payment Method</ng-template>
<ng-container *ngTemplateOutlet="paymentOptions"></ng-container> <ng-container *ngTemplateOutlet="paymentOptions"></ng-container>
</md-step> </md-step>
</md-vertical-stepper> </md-vertical-stepper>
</div> </div>
...@@ -121,16 +193,15 @@ ...@@ -121,16 +193,15 @@
<div class="large-2 columns ecm-item-img"> <div class="large-2 columns ecm-item-img">
<ecm-image [refId]='item.itemCode' [refSer]="'M-ITEM'" [object]="'ITEM'" [isSingleImage]="true" [isThumbnail]="true"></ecm-image> <ecm-image [refId]='item.itemCode' [refSer]="'M-ITEM'" [object]="'ITEM'" [isSingleImage]="true" [isThumbnail]="true"></ecm-image>
</div> </div>
<div class="large-6 columns ecm-item-info"> <div class="large-6 columns ecm-item-info">
<span style="display: block;font-size: 16px;"> {{item.itemHeader.itemDescr}} </span> <span style="display: block;font-size: 16px;"> {{item.itemHeader.itemDescr}} </span>
<div *ngIf="item.itemCategory.catCode == 'CAT0000004'" class="delivery-offers"> <div *ngIf="item.itemCategory.catCode == 'CAT0000004'" class="delivery-offers">
<span>FREE Delivery in 5 to 6 days</span> <span>FREE Delivery in 5 to 6 days</span>
<button type="button" class="md-button link_button"> <button type="button" class="md-button link_button">
More Offers More Offers
<i class="material-icons arrow ">&#xE313;</i> <i class="material-icons arrow ">&#xE313;</i>
</button> </button>
</div> </div>
</div> </div>
<counter [quantity]="item.itemQuantity" (decrement)="decrement(item);" (increment)="increment(item);"> <counter [quantity]="item.itemQuantity" (decrement)="decrement(item);" (increment)="increment(item);">
...@@ -139,7 +210,7 @@ ...@@ -139,7 +210,7 @@
<span style="display: block;" class="total-cost">Rs {{item.itemHeader.itemDiscountedRate}}</span> <span style="display: block;" class="total-cost">Rs {{item.itemHeader.itemDiscountedRate}}</span>
<span class="discounted-price"><s>Rs {{item.itemHeader.itemCostRate}}</s> <span class="discount-rate">{{item.itemHeader.itemDiscount}}% Off</span></span> <span class="discounted-price"><s>Rs {{item.itemHeader.itemCostRate}}</s> <span class="discount-rate">{{item.itemHeader.itemDiscount}}% Off</span></span>
</div> </div>
<span *ngIf="item == 'occassion'" class="individual-price">Rs 500 per person (Inclusive GST)</span> <span *ngIf="item == 'occassion'" class="individual-price">Rs 500 per person (Inclusive GST)</span>
</price> </price>
</counter> </counter>
</div> </div>
......
...@@ -21,16 +21,30 @@ import { AddressScreenComponent } from '../../user-address/address-manager/addre ...@@ -21,16 +21,30 @@ import { AddressScreenComponent } from '../../user-address/address-manager/addre
import { EcmPanelComponent } from '../ecm-panel/ecm-panel.component'; import { EcmPanelComponent } from '../ecm-panel/ecm-panel.component';
import { EcmCartService } from '../ecm-cart/ecm-cart.service'; import { EcmCartService } from '../ecm-cart/ecm-cart.service';
export class SaleAddress {
public soldTo:string = '';
public billTo:string = '';
public deliverTo:string = '';
public orderNo:string = '';
public orderDate:string = '';
public shipDate:string = '';
public dueDate:string = '';
}
@Component( { @Component( {
selector: 'ecm-checkout', selector: 'ecm-checkout',
templateUrl: './ecm-checkout.component.html', templateUrl: './ecm-checkout.component.html',
styleUrls: ['./ecm-checkout.component.css'] styleUrls: ['./ecm-checkout.component.css'],
providers:[EcmCheckoutService]
}) })
export class EcmCheckoutComponent implements OnInit ,DoCheck { export class EcmCheckoutComponent implements OnInit ,DoCheck {
ecmType = localStorage.getItem( 'ECM_TYPE' ); dataSource = '/ibase/ecm/service/customers/'
@ViewChild('userForm') currentForm: NgForm; @ViewChild('userForm') currentForm: NgForm;
@Input() unAuthorized: boolean = false; @Input() unAuthorized: boolean = false;
checked = false; checked = false;
totalPrice:number = 0; totalPrice:number = 0;
cartItems; cartItems;
...@@ -39,6 +53,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -39,6 +53,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
selectedStep; selectedStep;
orderReviewed; orderReviewed;
selectedAddressOpt; selectedAddressOpt;
ecmType; //chitra
@ViewChild( 'cardScreen' ) child: CardScreenComponent; @ViewChild( 'cardScreen' ) child: CardScreenComponent;
@ViewChild('addrAddScreen') addScreen: AddressScreenComponent; @ViewChild('addrAddScreen') addScreen: AddressScreenComponent;
...@@ -56,24 +71,36 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -56,24 +71,36 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
cvv; cvv;
public childForm; public childForm;
public editForm; public editForm;
address;
addressObj;
loginFormGroup: FormGroup; loginFormGroup: FormGroup;
addressFormGroup: FormGroup; addressFormGroup: FormGroup;
reviewOrdersFormGroup: FormGroup; reviewOrdersFormGroup: FormGroup;
cardFormGroup: FormGroup; cardFormGroup: FormGroup;
salesAddressFormGroup : FormGroup;
saleAddress;
constructor(private formBuilder: FormBuilder, private store: Store<AppState>,public checkoutService: EcmCheckoutService, private cartService: EcmCartService,private _location: Location, private cartActions: CartActions, public breadcrumbSerivce: Breadcrumbs, private cardActions: SavedCardAction, private profileActions: ProfileActions, private addressActions: AdressAction, public snackBar: MdSnackBar, private _formBuilder: FormBuilder) {
constructor(private formBuilder: FormBuilder, private store: Store<AppState>,public checkoutService: EcmCheckoutService,private _location: Location, private cartActions: CartActions, public breadcrumbSerivce: Breadcrumbs, private cardActions: SavedCardAction, private profileActions: ProfileActions, private addressActions: AdressAction, public snackBar: MdSnackBar, private _formBuilder: FormBuilder) {
this.store.dispatch(this.profileActions.loadProfile()); this.store.dispatch(this.profileActions.loadProfile());
this.store.dispatch(this.addressActions.loadAddress()); this.store.dispatch(this.addressActions.loadAddress());
this.store.dispatch(this.cardActions.loadSavedCards()); this.store.dispatch(this.cardActions.loadSavedCards());
this.saleAddress = new SaleAddress();//chitra
} }
ngOnInit() { ngOnInit() {
this.ecmType= localStorage.getItem( 'ECM_TYPE' );
console.log("ecmType exist in local storage",this.ecmType);
console.log("selectedAddressOpt -- >",this.selectedAddressOpt); console.log("selectedAddressOpt -- >",this.selectedAddressOpt);
this.store.dispatch(this.addressActions.loadAddress()); this.store.dispatch(this.addressActions.loadAddress());
this.store.dispatch(this.cardActions.loadSavedCards()); this.store.dispatch(this.cardActions.loadSavedCards());
window.scrollTo(0,0); window.scrollTo(0,0);
this.createUserData(); this.createUserData();
this.getCartItems();
if(this.checkoutService.getItem()){ if(this.checkoutService.getItem()){
this.cartItems = []; this.cartItems = [];
...@@ -130,6 +157,17 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -130,6 +157,17 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
cvv: ['', Validators.required] cvv: ['', Validators.required]
}); });
/*chitra */
this.salesAddressFormGroup = this._formBuilder.group({
soldTo: ['', Validators.required],
billTo: ['', Validators.required],
deliverTo: ['', Validators.required],
orderNo: ['', Validators.required],
orderDate: ['', Validators.required],
shipDate: ['', Validators.required],
dueDate: ['', Validators.required]
});
} }
ngAfterViewChecked(): void { ngAfterViewChecked(): void {
...@@ -180,7 +218,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -180,7 +218,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
break; break;
} }
let order = { "token_id": this.userData.TOKEN_ID, "billAddress": this.selectedAddress, "orderedItems":this.cartItems, "paymentInfo": paymentInfo, "ecm_type":this.ecmType}; let order = { "token_id": this.userData.TOKEN_ID, "billAddress": this.selectedAddress, "orderedItems":this.cartItems, "paymentInfo": paymentInfo};
console.log('-----order-----',order); console.log('-----order-----',order);
...@@ -264,8 +302,8 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -264,8 +302,8 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
} }
createUserData() { createUserData() {
var userInfo = localStorage.getItem( 'userInfo' ); var userInfo = localStorage.getItem( 'userInfo' );
if ( userInfo !== 'undefined' && userInfo !== null && userInfo !== 'null' ) if ( userInfo !== 'undefined' && userInfo !== null && userInfo !== 'null' )
{ {
this.userData = JSON.parse( userInfo ); this.userData = JSON.parse( userInfo );
...@@ -334,8 +372,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -334,8 +372,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
ngDoCheck() ngDoCheck()
{ {
//already logged in if( this.userData && !this.redirect)
if( this.userData && !this.redirect)
{ {
console.log('stepper--',this.stepper._steps,this.stepper.selectedIndex); console.log('stepper--',this.stepper._steps,this.stepper.selectedIndex);
if(this.stepper._steps && this.stepper.selectedIndex == 0) if(this.stepper._steps && this.stepper.selectedIndex == 0)
...@@ -351,6 +388,52 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck { ...@@ -351,6 +388,52 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
} }
} }
onSelect(dataObj, field){
console.log("dataObj in ecm checkout ",dataObj,dataObj.address);
this.addressObj = dataObj;
this.address = dataObj.address;
if(field == 'soldTo'){
this.saleAddress.soldTo = dataObj;
}
if(field == 'billTo'){
this.saleAddress.billTo = dataObj;
}
if(field == 'deliverTo'){
this.saleAddress.deliverTo = dataObj;
}
}
getSeparator( displayVal ){
if( displayVal ) {
return ',';
}
return '';
}
onDeSelect(data){
console.log("values in onDeSelect()---------");
if(data == 'soldTo'){
this.saleAddress.soldTo = '';
}
if(data == 'billTo'){
this.saleAddress.billTo = '';
}
if(data == 'deliverTo'){
this.saleAddress.deliverTo = '';
}
}
submitForm(){
console.log('submitted---',this.salesAddressFormGroup);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment