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 @@ +
+ + + + + + + + + + + + + + + Sales Calculate Items Wise + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Item{{salesItem.sales_item}} Qty/UOM{{salesItem.sales_qty }}/{{salesItem.uom_name }} Rate/Unit {{salesItem.rate_per_unit }} Frequency {{salesItem.frequency_name}} Annual Sale Value {{salesItem.annual_sale_value}}
+
+
+
+ + + + Sales Calculate Items Month Wise + + + + + + + + {{expandDetails.salesItem}} + + + +
+
+ +

{{eachItem.header}}

+ + + + + + + + + + + + + + + + +
Date{{itemValue.sales_date | date: 'dd-MM-yyyy'}} Total Amount{{itemValue.sales_value}} {{getTotalCost(eachItem.value)}}
+
+ + +
+ +
+ + +
+ {{footer.month_message}} +
+
+ {{footer.year_message}} +
+
+
+
+
+
+ + + + + Purchase Details + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Item{{purchaseItem.purchase_item}} Qty/UOM{{purchaseItem.purchase_qty }}/{{purchaseItem.uom_name }} Rate/Unit {{purchaseItem.rate_per_unit }} Frequency {{purchaseItem.frequency_name}} Annual Purchase Value {{purchaseItem.annual_purchase_value}}
+
+
+
+ + + + Business Expenses + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Item {{businessEx.expense_item}} Value {{businessEx.expense_value }} Frequency {{businessEx.frequency_name}} Annual Expenses Value {{businessEx.annual_expenses_value}}
+
+
+
+ + + + House Hold Expenses + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Item{{householdItem.expense_item}} Value{{householdItem.expense_value }}Frequency {{householdItem.frequency_name}} Annual Expenses Value {{householdItem.annual_expense_value}}
+
+
+
+
+ + +
+
+ + +
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([]), + }); +} + +}