diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.html
new file mode 100644
index 000000000..f6b85d4b4
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.html
@@ -0,0 +1,281 @@
+
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.scss
new file mode 100644
index 000000000..1ca16c276
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.scss
@@ -0,0 +1,46 @@
+.example-container {
+ max-height: 300px;
+ overflow: auto;
+}
+
+table {
+ width: 100%;
+}
+
+tr.mat-footer-row {
+ font-weight: bold;
+}
+
+.mat-table-sticky {
+ border-top: 1px solid #e0e0e0;
+}
+
+ .mat-form-field {
+ width: 100%;
+ }
+ .expan_footer{
+ font-size: 18px;
+ direction: rtl;
+ }
+ .expan_table_header {
+ font-size: 18px;
+ text-align: center;
+ }
+ .h4_font {
+ font-size: 18px;
+ }
+
+// table, th, td {
+// border: 1px solid rgba(0, 0, 0, 0.12);
+// border-collapse: collapse;
+// }
+// td {
+// padding: 5px;
+// text-align: left;
+// }
+// th {
+// padding: 5px;
+// text-align: center;
+// }
+
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.spec.ts
new file mode 100644
index 000000000..0e5f1ba73
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AssessedIncomeComponent } from './assessed-income.component';
+
+describe('AssessedIncomeComponent', () => {
+ let component: AssessedIncomeComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ AssessedIncomeComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(AssessedIncomeComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.ts
new file mode 100644
index 000000000..e2aebdb6b
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assessed-income/assessed-income.component.ts
@@ -0,0 +1,150 @@
+import {Component,OnInit,Inject,Input, ViewChild } from '@angular/core';
+import {FormBuilder,FormGroup,Validators,FormArray, FormControl,} from '@angular/forms';
+import { NotifierService } from 'angular-notifier';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import { ActivatedRoute, Router } from "@angular/router";
+
+@Component({
+ selector: 'app-assessed-income',
+ templateUrl: './assessed-income.component.html',
+ styleUrls: ['./assessed-income.component.scss']
+})
+export class AssessedIncomeComponent implements OnInit {
+ public _assessedIncomeFormFrom: FormGroup;
+ private notifier: NotifierService;
+ @Input() pdid: number;
+ @Input() form_id: number;
+ salesCaluatedItemColumns: string[] = ['Item', 'Qty/UOM','Rate/Unit','Frequency','Annual Sale Value'];
+ public salesCaluatedItem:any= [];
+ salesItemMonthWiseColumns: string[] = ['Item', 'Value','Frequency','Annual Expenses Value'];
+ public salesItemMonthWise:any= [];
+ purchaseDetailsColumns: string[] = ['Item', 'Qty/UOM','Rate/Unit','Frequency','Annual Purchase Value'];
+ public purchaseDetails:any= [];
+ businessExpensesColumns: string[] = ['Item', 'Value','Frequency','Annual Expenses Value'];
+ public businessExpenses:any= [];
+ houseHoldExpensesColumns: string[] = ['Item', 'Value','Frequency','Annual Expenses Value'];
+ public houseHoldExpenses:any= [];
+
+ public salesMonthItemColumns = ['Date','Amount'];
+
+
+// Sales Item MonthWise declare table header,body andd footer elements
+salesMonthWiseTable:any=[];
+salesItemMonthWiseBody: any[];
+salesItemMonthWiseFooter: any[];
+
+salesMonthWiseExpandedItems: any=[]
+
+
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+
+ ngOnInit() {
+
+ this.initAssessedIncomeForm();
+ let params: any = {};
+ params.pd_id = this.pdid;
+ params.pd_form_id = this.form_id;
+ this._pd.getAssessedIncomeFormDetails(params).subscribe(value => {
+ if (value.status == 200) {
+ if(value.records.sales_declared_by_customer){
+ this._assessedIncomeFormFrom.controls['sales_declared_by_customer'].setValue(value.records.sales_declared_by_customer[0].sales_declared_by_customer);
+ }
+ else{
+ this._assessedIncomeFormFrom.controls['sales_declared_by_customer'].setValue('');
+
+ }
+ if(value.records.sales_calculated_by_itemwise){
+ this.salesCaluatedItem = value.records.sales_calculated_by_itemwise;
+ }
+ if(value.records.sales_items_by_monthwise){
+ this.salesItemMonthWise = value.records.sales_items_by_monthwise;
+ // hide table format start
+
+ // this.salesItemMonthWise.forEach((itemElement, itemIndex) => {
+ // this.salesItemMonthWiseBody= Object.keys(itemElement.items).map(key => ({ header:key, value: itemElement.items[key] }));
+ // let combineTableColumn = Object.keys(itemElement.items).map(key => (itemElement.items[key]));
+ // let sumItems: any=[];
+ // combineTableColumn.forEach((sumValue, sumIndex) => {
+ // let calculateItems = sumValue.reduce((acc, calculate) => acc + Number(calculate.sales_value), 0);
+ // sumItems.push({bodyElement:sumValue, bodyElementTotal:calculateItems});
+ // })
+ // let calculateAllItemsTotal:number=sumItems.reduce((racc, rcalculate) => racc + Number(rcalculate.bodyElementTotal), 0);
+ // let convertYear : number = 12 / sumItems.length;
+ // let tableFooterMessage: any=[];
+ // tableFooterMessage.push({
+ // message: sumItems.length + ' Months ' + itemElement.sales_item + ' Sales ',
+ // value:calculateAllItemsTotal,
+ // cols_span_length:sumItems.length * 2 -1,
+ // })
+ // tableFooterMessage.push({
+ // message: ' Yearly ' + itemElement.sales_item + ' Sales Arrived',
+ // value: calculateAllItemsTotal * convertYear,
+ // cols_span_length:sumItems.length * 2 -1 ,
+ // })
+ // this.salesMonthWiseTable.push({salesItem:itemElement.sales_item,headerElement:this.salesItemMonthWiseBody, bodyElements:sumItems, parentTableFooter:tableFooterMessage});
+ // //console.log(this.salesMonthWiseTable)
+ // });
+ // hide table format end
+
+
+ this.salesItemMonthWise.forEach((itemElement, itemIndex) => {
+ let expandBodyContent= Object.keys(itemElement.items).map(key => ({ header:key, value: itemElement.items[key] }));
+ let listItems: any=[];
+ expandBodyContent.forEach((expnadElement, expnadIndex) => {
+ let calculateItems = expnadElement.value.reduce((acc, calculate) => acc + Number(calculate.sales_value), 0);
+ listItems.push({items:expnadElement, itemsTotal:calculateItems})
+ })
+ let calculateAllItemsTotal:number=listItems.reduce((racc, rcalculate) => racc + Number(rcalculate.itemsTotal), 0);
+
+ let convertYear : number = 12 / listItems.length;
+ let footerMessage: any=[];
+ footerMessage.push({
+ month_message: listItems.length + ' Months ' + itemElement.sales_item + ' Sales : '+ calculateAllItemsTotal,
+ month_value:calculateAllItemsTotal,
+ year_message: ' Yearly ' + itemElement.sales_item + ' Sales Arrived : '+ calculateAllItemsTotal * convertYear,
+ year_value: calculateAllItemsTotal * convertYear,
+ })
+ // footerMessage.push({
+ // message: ' Yearly ' + itemElement.sales_item + ' Sales Arrived',
+ // value: calculateAllItemsTotal * convertYear,
+ // })
+ this.salesMonthWiseExpandedItems.push({salesItem:itemElement.sales_item, expandElements:expandBodyContent, footerMessage: footerMessage});
+ });
+
+
+ }
+ if(value.records.purchase_details){
+ this.purchaseDetails = value.records.purchase_details;
+ }
+ if(value.records.business_expenses){
+ this.businessExpenses=value.records.business_expenses;
+ }
+ if(value.records.house_hold_expenses){
+ this.houseHoldExpenses = value.records.house_hold_expenses;
+ }
+ }
+
+ })
+ }
+
+ // get total cost
+ getTotalCost(getItems:any) {
+ return getItems.map(t => t.sales_value).reduce((acc, value) => acc + Number(value), 0);
+ }
+
+
+ // Dynamic Form field creation
+
+ public initAssessedIncomeForm(): void {
+ this._assessedIncomeFormFrom = this.fb.group({
+ sales_declared_by_customer: ['', Validators.compose([Validators.required])],
+ // lender_representative_details: this.fb.array([]),
+ });
+}
+
+}