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';
import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
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 {StoreModule} from '@ngrx/store';
import {EffectsModule} from '@ngrx/effects';
......@@ -193,7 +193,8 @@ const appRoutes: Routes = [
EffectsModule.run(OrderEffects),
FormsModule,
BrowserAnimationsModule,
BBKeyInputModule
// BBKeyInputModule
BBComponentModule
],
providers: [
{provide: LocationStrategy, useClass: HashLocationStrategy},
......
......@@ -458,11 +458,58 @@ md-card {
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>
<div class="row checkout-page">
<div class="medium-8 columns">
......@@ -8,9 +7,11 @@
<md-vertical-stepper #stepper [linear]="true">
<md-step [stepControl]="loginFormGroup">
<ng-template mdStepLabel class="panel-selected">
Login <span *ngIf="userData" class = "email-data"> {{userData?.EMAIL_ID}}</span>
Login <span *ngIf="userData">
<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>
<!-- <button style="float: right;margin: 10px;" md-button mdStepperNext>Next</button>-->
......@@ -19,17 +20,92 @@
</form>
</md-step>
<ng-container *ngTemplateOutlet = "ecmType == 1 ? ecmBillAdress : salesBillAdress"></ng-container>
<ng-template #salesBillAdress >
<md-step [stepControl]="salesAddressFormGroup">
<ng-template mdStepLabel class="panel-selected">
Customer Selection
</ng-template>
<form [formGroup]="salesAddressFormGroup">
<div class = "sales-form">
<span class = "auto-select">
<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>
<div *ngIf="saleAddress.soldTo" class="user-alladress-info" >
<div class="name">
<span class="name-span">{{saleAddress.soldTo?.custName}}</span>
</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>
</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-form-field class ="date-picker">
<input mdInput [mdDatepicker]="dueDate" [(ngModel)]="saleAddress.dueDate" formControlName = "dueDate" placeholder="Due Date " (click)="dueDate.open();">
<md-datepicker #dueDate></md-datepicker>
</md-form-field>
</div>
</form>
<div class="edit-detail-template">
<button md-button mdStepperNext class="save-button" [disabled]="salesAddressFormGroup.invalid" (click)="submitForm()" >
Save
</button>
<button md-button>
Cancel
</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">
......@@ -39,12 +115,9 @@
</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();">
......@@ -56,6 +129,7 @@
</div>
</md-radio-group>
</md-step>
</ng-template>
<md-step [stepControl]="reviewOrdersFormGroup">
<ng-template mdStepLabel>Review Order({{cartItems.length}} Items)</ng-template>
......@@ -72,8 +146,6 @@
<ng-template mdStepLabel>Payment Method</ng-template>
<ng-container *ngTemplateOutlet="paymentOptions"></ng-container>
</md-step>
</md-vertical-stepper>
</div>
......@@ -121,7 +193,6 @@
<div class="large-2 columns ecm-item-img">
<ecm-image [refId]='item.itemCode' [refSer]="'M-ITEM'" [object]="'ITEM'" [isSingleImage]="true" [isThumbnail]="true"></ecm-image>
</div>
<div class="large-6 columns ecm-item-info">
<span style="display: block;font-size: 16px;"> {{item.itemHeader.itemDescr}} </span>
<div *ngIf="item.itemCategory.catCode == 'CAT0000004'" class="delivery-offers">
......
......@@ -21,16 +21,30 @@ import { AddressScreenComponent } from '../../user-address/address-manager/addre
import { EcmPanelComponent } from '../ecm-panel/ecm-panel.component';
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( {
selector: 'ecm-checkout',
templateUrl: './ecm-checkout.component.html',
styleUrls: ['./ecm-checkout.component.css']
styleUrls: ['./ecm-checkout.component.css'],
providers:[EcmCheckoutService]
})
export class EcmCheckoutComponent implements OnInit ,DoCheck {
ecmType = localStorage.getItem( 'ECM_TYPE' );
dataSource = '/ibase/ecm/service/customers/'
@ViewChild('userForm') currentForm: NgForm;
@Input() unAuthorized: boolean = false;
checked = false;
totalPrice:number = 0;
cartItems;
......@@ -39,6 +53,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
selectedStep;
orderReviewed;
selectedAddressOpt;
ecmType; //chitra
@ViewChild( 'cardScreen' ) child: CardScreenComponent;
@ViewChild('addrAddScreen') addScreen: AddressScreenComponent;
......@@ -56,24 +71,36 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
cvv;
public childForm;
public editForm;
address;
addressObj;
loginFormGroup: FormGroup;
addressFormGroup: FormGroup;
reviewOrdersFormGroup: 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.addressActions.loadAddress());
this.store.dispatch(this.cardActions.loadSavedCards());
this.saleAddress = new SaleAddress();//chitra
}
ngOnInit() {
this.ecmType= localStorage.getItem( 'ECM_TYPE' );
console.log("ecmType exist in local storage",this.ecmType);
console.log("selectedAddressOpt -- >",this.selectedAddressOpt);
this.store.dispatch(this.addressActions.loadAddress());
this.store.dispatch(this.cardActions.loadSavedCards());
window.scrollTo(0,0);
this.createUserData();
this.getCartItems();
if(this.checkoutService.getItem()){
this.cartItems = [];
......@@ -130,6 +157,17 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
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 {
......@@ -180,7 +218,7 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
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);
......@@ -334,7 +372,6 @@ export class EcmCheckoutComponent implements OnInit ,DoCheck {
ngDoCheck()
{
//already logged in
if( this.userData && !this.redirect)
{
console.log('stepper--',this.stepper._steps,this.stepper.selectedIndex);
......@@ -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