diff --git a/ng6-seed/ng6-seed.zip b/ng6-seed/ng6-seed.zip
new file mode 100644
index 000000000..38076affb
Binary files /dev/null and b/ng6-seed/ng6-seed.zip differ
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.html
new file mode 100644
index 000000000..4b25b783e
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.html
@@ -0,0 +1,102 @@
+
Address
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.scss
new file mode 100644
index 000000000..db319b869
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.scss
@@ -0,0 +1,18 @@
+.address {
+ display: flex;
+ padding: 0 2%;
+ flex-direction: column;
+}
+
+.address > * {
+ width: 100%;
+}
+.matcard mat-form-field {
+ margin: 0 2%;
+}
+.address .button {
+ float: right;
+ width: 10px;
+ background: #62B013;
+ color: white;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.ts
new file mode 100644
index 000000000..0e00cb7c7
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/address/address.component.ts
@@ -0,0 +1,184 @@
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray, FormControl, AbstractControl,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import {ActivatedRoute, Router} from "@angular/router";
+@Component({
+ selector: 'app-address',
+ templateUrl: './address.component.html',
+ styleUrls: ['./address.component.scss']
+})
+export class AddressComponent implements OnInit {
+ locationdata: any = [];
+ commentData: any = [];
+ customerData: any = [];
+ public currentLoanForm: FormGroup;
+ private notifier: NotifierService;
+ public addressForm: FormGroup;
+
+ public address: AbstractControl;
+ public addressType: AbstractControl;
+ public locality: AbstractControl;
+ public pdLocation: AbstractControl;
+ public commentlocality: AbstractControl;
+ public customerBehaviour: AbstractControl;
+
+
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+ ngOnInit() {
+ this.getLocation();
+ this.getComment();
+ this.getCustomer();
+ this.initAddressForm();
+ let params: any = {};
+ params.pd_id = '250';
+ params.pd_form_id = '250';
+ this._pd.retriveForm(params).subscribe(data => {
+ console.log('data', data);
+ var result = Object.keys(data.records.neighbourhood).map(function(key) {
+ return data.records.neighbourhood[key];
+ });
+ this.addressForm.controls.address.setValue(data.records.address);
+ this.addressForm.controls.pd_location.setValue(data.records.pd_location);
+ this.addressForm.controls.address_type.setValue(data.records.address_type);
+ this.addressForm.controls.comment_locality.setValue(data.records.comment_locality);
+ this.addressForm.controls.customer_behaviour.setValue(data.records.customer_behaviour);
+ this.addressForm.controls.locality.setValue(data.records.locality);
+ const control = this.addressForm.controls['neighbourhood'];
+ if(result.length == 0) {
+ control.push(this.createNeighbour());
+ } else {
+ result.forEach(datas => {
+ control.push(this.createNeighbour());
+ });
+ this.addressForm.controls.neighbourhood.setValue(result);
+ }
+ console.log('result', result);
+ });
+ }
+ public initAddressForm(): void {
+ this.addressForm = this.fb.group({
+ address: ['', Validators.compose([Validators.required])],
+ address_type: ['', Validators.compose([Validators.required])],
+ locality: ['', Validators.compose([Validators.required])],
+ pd_location: ['', Validators.compose([Validators.required])],
+ comment_locality: ['', Validators.compose([Validators.required])],
+ customer_behaviour: ['', Validators.compose([Validators.required])],
+ neighbourhood: this.fb.array([])
+ });
+ this.address = this.addressForm.controls['address'];
+ this.addressType = this.addressForm.controls['address_type'];
+ this.locality = this.addressForm.controls['locality'];
+ this.pdLocation = this.addressForm.controls['pd_location'];
+ this.commentlocality = this.addressForm.controls['comment_locality'];
+ this.customerBehaviour = this.addressForm.controls['customer_behaviour'];
+ }
+ createNeighbour(): FormGroup {
+ return this.fb.group({
+ name: ['', Validators.compose([Validators.required])],
+ do_you_know: ['', Validators.compose([Validators.required])],
+ how_long: ['', Validators.compose([Validators.required])],
+ is_owner: ['', Validators.compose([Validators.required])],
+ });
+ }
+ getLocation() {
+ let master_name = 'PDLOCATIONAPPROACH';
+ this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ console.log('data', data);
+ data.records.forEach(val => {
+ if (val.isactive == 1) {
+ this.locationdata.push(val);
+ }
+ })
+ });
+ }
+ getComment() {
+ let master_name = 'COMMENTSONLOCALITY';
+ this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ console.log('data', data);
+ data.records.forEach(val => {
+ if (val.isactive == 1) {
+ this.commentData.push(val);
+ }
+ })
+ });
+ }
+ getCustomer() {
+ let master_name = 'CUSTOMERBEHAVIOUR';
+ this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ console.log('data', data);
+ data.records.forEach(val => {
+ if (val.isactive == 1) {
+ this.customerData.push(val);
+ }
+ })
+ });
+ }
+ addNeighbour() {
+ const control = this.addressForm.controls['neighbourhood'];
+ if (control.length <= 1) {
+ control.push(this.createNeighbour());
+ }
+ }
+ removeNeighbour(index) {
+ const control = this.addressForm.controls['neighbourhood'];
+ control.removeAt(index);
+ }
+ onSubmit() {
+ if (!this.addressForm.valid) {
+ this.validateAllFormFields(this.addressForm);
+ return;
+ }
+ console.log('form', this.addressForm.value);
+ let records: any = {};
+ records.address = this.address.value;
+ records.address_type = this.addressType.value;
+ records.locality = this.locality.value;
+ records.pd_location = this.pdLocation.value;
+ records.comment_locality = this.commentlocality.value;
+ records.customer_behaviour = this.commentlocality.value;
+ records.neighbourhood = this.addressForm.value.items;
+ records.pdid = '250';
+ records.formid = '250';
+ records.fk_createdby = '250';
+ console.log('params', records);
+ this._pd.saveForm(records).subscribe(data => {
+ console.log('data', data);
+ this.notifier.notify('success', 'Saved Successfully.');
+
+ });
+ }
+ validateAllFormFields(formGroup: FormGroup) {
+ Object.keys(formGroup.controls).forEach(field => {
+ const control = formGroup.get(field);
+ if (control instanceof FormControl) {
+ control.markAsTouched({onlySelf: true});
+ } else if (control instanceof FormGroup) {
+ this.validateAllFormFields(control);
+ }
+ });
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html
new file mode 100644
index 000000000..b55e5fa2d
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html
@@ -0,0 +1,235 @@
+
+
+
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.spec.ts
new file mode 100644
index 000000000..53a17db27
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AssetsInfoComponent } from './assets-info.component';
+
+describe('AssetsInfoComponent', () => {
+ let component: AssetsInfoComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ AssetsInfoComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(AssetsInfoComponent);
+ 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/assets-info/assets-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.ts
new file mode 100644
index 000000000..204344fbb
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.ts
@@ -0,0 +1,556 @@
+/** Common Imports */
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+@Component({
+ selector: 'app-assets-info',
+ templateUrl: './assets-info.component.html',
+ styleUrls: ['./assets-info.component.scss']
+})
+export class AssetsInfoComponent implements OnInit {
+
+ @Input() pdid: number;
+
+ public _assetsQuesFrom: FormGroup;
+ public submitted = false;
+
+ public m_assets_type = [
+ {
+ 'id': "1",
+ 'name': "Property"
+ },
+ {
+ 'id': "2",
+ 'name': "Four Wheeler"
+ },
+ {
+ 'id': "3",
+ 'name': "Two Wheeler"
+ },
+ {
+ 'id': "4",
+ 'name': "Jewellery"
+ },
+ {
+ 'id': "5",
+ 'name': "Consumer Durable"
+ },
+ {
+ 'id': "6",
+ 'name': "Insurance"
+ },
+ {
+ 'id': "7",
+ 'name': "Investments"
+ },
+ {
+ 'id': "8",
+ 'name': "Others"
+ }
+ ]
+
+ public m_propertyType = [
+ {
+ 'id': "1",
+ 'name': 'Residential'
+ },
+ {
+ 'id': "2",
+ 'name': 'Commercial'
+ },
+ {
+ 'id': "3",
+ 'name': 'Industrial'
+ },
+ {
+ 'id': "4",
+ 'name': 'Land'
+ }
+ ];
+
+ public m_insuranceType = [{
+ 'id': "1",
+ 'name': 'Life'
+ }, {
+ 'id': "2",
+ 'name': 'Health'
+ }]
+
+ public m_investmentType = [{
+ 'id': "1",
+ 'name': 'FD'
+ }, {
+ 'id': "2",
+ 'name': 'RD'
+ }, {
+ 'id': "3",
+ 'name': 'Mutual Funds'
+ }, {
+ 'id': "4",
+ 'name': 'PPF'
+ }, {
+ 'id': "5",
+ 'name': 'Shares'
+ }, {
+ 'id': "6",
+ 'name': 'Others'
+ }]
+
+ public m_freqOfPurchase = [
+ {
+ 'id': "1",
+ 'name': 'Daily'
+ },
+ {
+ 'id': "2",
+ 'name': 'Weekly'
+ },
+ {
+ 'id': "3",
+ 'name': 'Monthly'
+ },
+ {
+ 'id': "4",
+ 'name': 'Every 3 months'
+ },
+ {
+ 'id': "5",
+ 'name': 'Half yearly'
+ },
+ {
+ 'id': "6",
+ 'name': 'Yearly'
+ },
+ {
+ 'id': "7",
+ 'name': 'As and when required'
+ },
+ {
+ 'id': "8",
+ 'name': 'Others'
+ }
+ ]
+
+ private notifier: NotifierService;
+ constructor(
+ notifier: NotifierService,
+ private _formBuilder: FormBuilder,
+ private pdTrigerService: PdTrigerService) {
+ this.notifier = notifier;
+ }
+
+ ngOnInit() {
+
+ this.getPdSupplierFormDetails();
+ }
+ apiLoadFinish: boolean = false;
+ getPdSupplierFormDetails() {
+ this.pdTrigerService.getPDFormDetailsWithID(this.pdid, '4').subscribe(
+ data => {
+ if (data) {
+ if (data.dataStatus) {
+ this.formLoadData(data.records);
+ } else {
+ this.formLoadData(null);
+ }
+ this.apiLoadFinish = true;
+ } else {
+ // this.noRecordFound = true;
+ }
+ }
+ );
+ }
+
+ formLoadData(val) {
+ if (val !== null) {
+ let value = val;
+ this._assetsQuesFrom = this._formBuilder.group({
+ pdid: [this.pdid],
+ formid: ['4'],
+ assets_details: this._formBuilder.array([
+ // this.initDetails(),
+ ])
+ });
+ this.addAssetsDetailsWithData(value.assets_details);
+ } else {
+ this._assetsQuesFrom = this._formBuilder.group({
+ pdid: [this.pdid],
+ formid: ['4'],
+ assets_details: this._formBuilder.array([
+ this.initDetails(),
+ ])
+ });
+ }
+ this.loadDetails = true;
+ }
+
+ // convenience getter for easy access to form fields
+ get f() { return this._assetsQuesFrom.controls; }
+
+ get f_assets_details() {
+ return this._assetsQuesFrom.get('assets_details');
+ }
+
+ // Dynamic Form field creation Functionality : START ===>
+ initDetails() {
+ return this._formBuilder.group({
+ assets_mode: ['', Validators.compose([Validators.required])],
+ details: this._formBuilder.array([]),
+ approximate_market_value: ['', Validators.compose([Validators.required])],
+ name_of_the_owner: ['', Validators.compose([Validators.required])],
+ year_of_purchase: ['', Validators.compose([Validators.required])],
+ emi: [''],
+ emi_paid: [''],
+ elapsed_tenure: [''],
+ balance_tenure: ['']
+ });
+ }
+
+
+ show: boolean;
+ selectedAssetsType(e: any, i: any): void {
+ let val = i;
+ const arr = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ arr.controls.splice(0);
+ switch (e.value) {
+ case '1': {
+ let val = i;
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadProperty());
+ break;
+ }
+ case '2': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.load_Two_Four_Weeler());
+ break;
+ }
+ case '3': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.load_Two_Four_Weeler());
+ break;
+ }
+ case '4': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadJwellDescription());
+ break;
+ }
+ case '5': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadConsumerDurableDescription());
+ break;
+ }
+ case '6': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadInsuranceDescription());
+ break;
+ }
+ case '7': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadInvestDescription());
+ break;
+ }
+ case '8': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.otherAssetsDescription());
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+
+
+ loadProperty() {
+ return this._formBuilder.group({
+ property_type: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+ loadJwellDescription() {
+ return this._formBuilder.group({
+ jwell_description: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+ loadConsumerDurableDescription() {
+ return this._formBuilder.group({
+ consumer_durable_description: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+ otherAssetsDescription() {
+ return this._formBuilder.group({
+ any_other_assets: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+ loadInsuranceDescription() {
+ return this._formBuilder.group({
+ insurance_type: ['', Validators.compose([Validators.required])],
+ premium_paid: ['', Validators.compose([Validators.required])],
+ frequency_mode: ['', Validators.compose([Validators.required])],
+ sum_assured: ['', Validators.compose([Validators.required])],
+ members_coverd: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+ loadInvestDescription() {
+ return this._formBuilder.group({
+ investments_type: ['', Validators.compose([Validators.required])],
+ amount_of_invest: ['', Validators.compose([Validators.required])],
+ bank_name: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+ load_Two_Four_Weeler() {
+ return this._formBuilder.group({
+ manufacturer_model: ['', Validators.compose([Validators.required])]
+ });
+ }
+
+
+
+ loadPropertyWithData(data) {
+ return this._formBuilder.group({
+ property_type: [data.property_type, Validators.compose([Validators.required])]
+ });
+ }
+
+ loadJwellDescriptionWithData(data) {
+ return this._formBuilder.group({
+ jwell_description: [data.jwell_description, Validators.compose([Validators.required])]
+ });
+ }
+
+ loadConsumerDurableDescriptionWithData(data) {
+ return this._formBuilder.group({
+ consumer_durable_description: [data.consumer_durable_description, Validators.compose([Validators.required])]
+ });
+ }
+
+ otherAssetsDescriptionWithData(data) {
+ return this._formBuilder.group({
+ any_other_assets: [data.any_other_assets, Validators.compose([Validators.required])]
+ });
+ }
+
+ loadInsuranceDescriptionWithData(data) {
+ return this._formBuilder.group({
+ insurance_type: [data.insurance_type, Validators.compose([Validators.required])],
+ premium_paid: [data.premium_paid, Validators.compose([Validators.required])],
+ frequency_mode: [data.frequency_mode, Validators.compose([Validators.required])],
+ sum_assured: [data.sum_assured, Validators.compose([Validators.required])],
+ members_coverd: [data.members_coverd, Validators.compose([Validators.required])]
+ });
+ }
+
+ loadInvestDescriptionWithData(data) {
+ return this._formBuilder.group({
+ investments_type: [data.investments_type, Validators.compose([Validators.required])],
+ amount_of_invest: [data.amount_of_invest, Validators.compose([Validators.required])],
+ bank_name: [data.bank_name, Validators.compose([Validators.required])]
+ });
+ }
+
+ load_Two_Four_WeelerWithData(data) {
+ return this._formBuilder.group({
+ manufacturer_model: [data.manufacturer_model, Validators.compose([Validators.required])]
+ });
+ }
+
+
+ initDetailsWithdata(data) {
+ return this._formBuilder.group({
+ assets_mode: [data.assets_mode, Validators.compose([Validators.required])],
+ details: this._formBuilder.array([]),
+ approximate_market_value: [data.approximate_market_value, Validators.compose([Validators.required])],
+ name_of_the_owner: [data.name_of_the_owner, Validators.compose([Validators.required])],
+ year_of_purchase: [data.year_of_purchase, Validators.compose([Validators.required])],
+ emi: [data.emi || 0],
+ emi_paid: [data.emi_paid || ''],
+ elapsed_tenure: [data.elapsed_tenure || ''],
+ balance_tenure: [data.balance_tenure || '']
+ });
+ }
+ loadDetails: boolean;
+ addAssetsDetailsWithData(supp_data) {
+ var result = Object.keys(supp_data).map(function (key) {
+ return supp_data[key];
+ });
+ if (result.length > 0) {
+ for (let val of result) {
+ let vals = {
+ assets_mode: val.assets_mode,
+ approximate_market_value: val.approximate_market_value,
+ name_of_the_owner: val.name_of_the_owner,
+ year_of_purchase: val.year_of_purchase,
+ emi: val.emi,
+ emi_paid: val.emi_paid,
+ elapsed_tenure: val.elapsed_tenure,
+ balance_tenure: val.balance_tenure
+ };
+ const control = this._assetsQuesFrom.controls['assets_details'];
+ control.push(this.initDetailsWithdata(vals));
+ this.setAssetsDetailsWithData(vals.assets_mode, val.details, control.length - 1)
+ }
+ }
+ this.loadDetails = true;
+ }
+
+ setAssetsDetailsWithData(assets_details_mode: any, datas: any, i: any): void {
+ let val = i;
+ // var data = Object.keys(datas).map(function (key) {
+ // return datas[key];
+ // });
+ // alert(JSON.stringify(datas));
+ let data = datas;
+ const arr = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ arr.controls.splice(0);
+ switch (assets_details_mode) {
+ case '1': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadPropertyWithData(data));
+ break;
+ }
+ case '2': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.load_Two_Four_WeelerWithData(data));
+ break;
+ }
+ case '3': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.load_Two_Four_WeelerWithData(data));
+ break;
+ }
+ case '4': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadJwellDescriptionWithData(data));
+ break;
+ }
+ case '5': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadConsumerDurableDescriptionWithData(data));
+ break;
+ }
+ case '6': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadInsuranceDescriptionWithData(data));
+ break;
+ }
+ case '7': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.loadInvestDescriptionWithData(data));
+ break;
+ }
+ case '8': {
+ const control = (this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
+ control.push(this.otherAssetsDescriptionWithData(data));
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+
+ addSupplierDetails(e) {
+ const control = this._assetsQuesFrom.controls['assets_details'];
+ control.push(this.initDetails());
+ }
+ removeLanguage(i: number) {
+ const control = this._assetsQuesFrom.controls['assets_details'];
+ control.removeAt(i);
+ }
+
+ public paymentModeTextBox: number;
+ selectedPM(e) {
+ this.paymentModeTextBox = e.value;
+ // this.f.supplier_details.controls.get('payment_mode_value');
+ }
+
+ public freqPurchaseTextBox: number;
+ selectedFreqPurchase(e) {
+ this.freqPurchaseTextBox = e.value;
+ }
+
+
+ /** To Save/Edited Popup Data */
+ onSubmit() {
+ this.submitted = true;
+ // stop here if form is invalid
+ if (this._assetsQuesFrom.invalid) {
+ return;
+ } else {
+ var answerFormValues = this._assetsQuesFrom.value;
+
+ //To Remove The "Null" With Key also
+ Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);
+ answerFormValues.assets_details.map(val => {
+ if (val.emi == '0') {
+ val.emi_paid = '';
+ val.elapsed_tenure = '';
+ val.balance_tenure = '';
+ }
+ });
+
+ // Add BRANCH data with help Service File
+ this.pdTrigerService.savePDFormDetailsWithID(answerFormValues).subscribe(
+ dataresult => {
+ if (dataresult.status == 200) {
+ // console.log(dataresult);
+ this.notifier.notify('success', 'Record Saved Successfully.!');
+ // this.dialogRef.close();
+ // alert("sample alert for Saving");
+ }
+ else {
+ this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ // this.errorMessage = "Some Thing Wents Wrong Try Again !";
+ }
+ }, error => {
+ this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ // this.errorMessage = "Something Wents Wrong Try Again !";
+ // this.dialogRef.close();
+ });
+ //After Saving the BRANCH data then popup close
+ // this.dialogRef.close();
+ }
+ }
+
+ /** To Reset Popup Data */
+ onReset() {
+ const arr = this._assetsQuesFrom.controls.assets_details;
+ arr.controls.splice(0);
+ this.getPdSupplierFormDetails();
+ }
+ // {
+ // 'main_raw_materials': 'sdkjfal',
+ // 'supplier_details' ; [
+ // {
+ // 'supplier_name':'ldskjfalks',
+ // 'payment_mode': '1',
+ // 'payment_mode_value':''
+ // }
+ // ]
+ // }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.html
new file mode 100644
index 000000000..c7363fbe0
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.html
@@ -0,0 +1,65 @@
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.scss
new file mode 100644
index 000000000..868e51eb9
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.scss
@@ -0,0 +1,10 @@
+.banlFields mat-form-field {
+ width: 100%;
+ margin: 0 2%;
+}
+.bankForm .button {
+ float: right;
+ width: 10px;
+ background: #62B013;
+ color: white;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.ts
new file mode 100644
index 000000000..755405c4b
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/banking-details/banking-details.component.ts
@@ -0,0 +1,114 @@
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray, FormControl, AbstractControl,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import {ActivatedRoute, Router} from "@angular/router";
+@Component({
+ selector: 'app-banking-details',
+ templateUrl: './banking-details.component.html',
+ styleUrls: ['./banking-details.component.scss']
+})
+export class BankingDetailsComponent implements OnInit {
+ public bankingForm: FormGroup;
+ step: any;
+ private notifier: NotifierService;
+
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+ ngOnInit() {
+ this.step = 0;
+ this.initBankingForm();
+ let params: any = {};
+ params.pd_id = '252';
+ params.pd_form_id = '252';
+ this._pd.retriveForm(params).subscribe(data => {
+ console.log('data', data);
+ var result = Object.keys(data.records.banking_details).map(function(key) {
+ return data.records.banking_details[key];
+ });
+ const control = this.bankingForm.controls['itemRows'];
+ if(result.length == 0) {
+ control.push(this.createBankarray());
+ } else {
+ result.forEach(datas => {
+ control.push(this.createBankarray());
+ });
+ this.bankingForm.controls.itemRows.setValue(result);
+ }
+ });
+ }
+ public initBankingForm(): void {
+ this.bankingForm = this.fb.group({
+ itemRows: this.fb.array([])
+ });
+ }
+ createBankarray() {
+ return this.fb.group({
+ applicant_name: ['', Validators.compose([Validators.required])],
+ bank_name: ['', Validators.compose([Validators.required])],
+ account_type: ['', Validators.compose([Validators.required])],
+ salary: ['', Validators.compose([Validators.required])],
+ limit: ['', Validators.compose([Validators.required])],
+ is_main: ['', Validators.compose([Validators.required])],
+ vintage: ['', Validators.compose([Validators.required])],
+ });
+ }
+ addBankdetails(i) {
+ this.step = i++;
+ const control = this.bankingForm.controls['itemRows'];
+ control.push(this.createBankarray());
+ }
+ deleteBankdetails(index: number) {
+ const control = this.bankingForm.controls['itemRows'];
+ control.removeAt(index);
+ }
+
+ bankSubmit() {
+ if (!this.bankingForm.valid) {
+ this.validateAllFormFields(this.bankingForm);
+ return;
+ }
+ let records: any = {};
+ records.pdid = '252';
+ records.formid = '252';
+ records.fk_createdby = '252';
+ records.banking_details = this.bankingForm.controls['itemRows'].value;
+ console.log('data', records);
+ this._pd.saveForm(records).subscribe(data => {
+ console.log('data', data);
+ this.notifier.notify('success', 'Saved Successfully.');
+ })
+ }
+ validateAllFormFields(formGroup: FormGroup) {
+ Object.keys(formGroup.controls).forEach(field => {
+ const control = formGroup.get(field);
+ if (control instanceof FormControl) {
+ control.markAsTouched({onlySelf: true});
+ } else if (control instanceof FormGroup) {
+ this.validateAllFormFields(control);
+ }
+ });
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.html
index 0c0a40381..2582904d1 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.html
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.html
@@ -1,3 +1,81 @@
-
- client-info works!
-
+
+
+
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.ts
index 80ae7153a..5e373360f 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/client-info/client-info.component.ts
@@ -1,5 +1,27 @@
-import { Component, OnInit } from '@angular/core';
+/** Common Imports */
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
@Component({
selector: 'app-client-info',
templateUrl: './client-info.component.html',
@@ -7,9 +29,233 @@ import { Component, OnInit } from '@angular/core';
})
export class ClientInfoComponent implements OnInit {
- constructor() { }
+ @Input() pdid: number;
+
+ public _supplierQuesFrom: FormGroup;
+ public submitted = false;
+ public m_paymentModeType= [
+ {
+ 'id': "1",
+ 'name': 'Immediate Or Advanced Payment'
+ },
+ {
+ 'id': "2",
+ 'name': 'Credit'
+ },
+ {
+ 'id': "3",
+ 'name': 'Combination of Both'
+ },
+ ];
+
+ public m_freqOfPurchase= [
+ {
+ 'id': "1",
+ 'name': 'Daily'
+ },
+ {
+ 'id': "2",
+ 'name': 'Weekly'
+ },
+ {
+ 'id': "3",
+ 'name': 'Monthly'
+ },
+ {
+ 'id': "4",
+ 'name': 'Every 3 months'
+ },
+ {
+ 'id': "5",
+ 'name': 'Half yearly'
+ },
+ {
+ 'id': "6",
+ 'name': 'Yearly'
+ },
+ {
+ 'id': "7",
+ 'name': 'As and when required'
+ },
+ {
+ 'id': "8",
+ 'name': 'Others'
+ }
+ ]
+
+ constructor(
+ private _formBuilder: FormBuilder,
+ private pdTrigerService: PdTrigerService) { }
ngOnInit() {
+
+ this.getPdSupplierFormDetails();
+ }
+apiLoadFinish: boolean = false;
+ getPdSupplierFormDetails() {
+ this.pdTrigerService.getPDFormDetailsWithID(this.pdid, '1').subscribe(
+ data => {
+ if (data) {
+ if(data.dataStatus){
+ this.formLoadData(data.records)
+ } else {
+ this.formLoadData(null)
+ }
+ this.apiLoadFinish = true;
+ } else {
+ // this.noRecordFound = true;
+ }
+ }
+ );
}
+ formLoadData(val) {
+ if(val !== null) {
+ let value = val;
+ this._supplierQuesFrom = this._formBuilder.group({
+ pdid: [this.pdid],
+ formid: ['1'],
+ main_raw_materials: [value.main_raw_materials, Validators.compose([Validators.required])],
+ supplier_details: this._formBuilder.array([
+ // this.initDetails(),
+ ])
+ });
+ this.addSupplierDetailsWithData(value.supplier_details);
+ } else {
+ this._supplierQuesFrom = this._formBuilder.group({
+ pdid: [this.pdid],
+ formid: ['1'],
+ main_raw_materials: [null, Validators.compose([Validators.required])],
+ supplier_details: this._formBuilder.array([
+ this.initDetails(),
+ ])
+ });
+ }
+ }
+
+ // convenience getter for easy access to form fields
+ get f() { return this._supplierQuesFrom.controls; }
+
+ // Dynamic Form field creation Functionality : START ===>
+ initDetails() {
+ return this._formBuilder.group({
+ supplier_name: ['', Validators.compose([Validators.required])],
+ contact_person: ['', Validators.compose([Validators.required])],
+ mobile_number: ['', Validators.compose([Validators.required])],
+ payment_mode: ['', Validators.compose([Validators.required])],
+ per_of_immediate_advance_payment:[''],
+ credit_period:[''],
+ frequency_of_purchase: ['', Validators.compose([Validators.required])],
+ freq_purchase_others_text_value: ['']
+ });
+ }
+
+ initDetailsWithdata(data) {
+ return this._formBuilder.group({
+ supplier_name: [data.supplier_name, Validators.compose([Validators.required])],
+ contact_person: [data.contact_person, Validators.compose([Validators.required])],
+ mobile_number: [data.mobile_number, Validators.compose([Validators.required])],
+ payment_mode: [data.payment_mode, Validators.compose([Validators.required])],
+ per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''],
+ credit_period:[data.credit_period || ''],
+ frequency_of_purchase: [data.frequency_of_purchase, Validators.compose([Validators.required])],
+ freq_purchase_others_text_value: [data.freq_purchase_others_text_value || '']
+ });
+ }
+
+ addSupplierDetailsWithData(supp_data) {
+
+var result = Object.keys(supp_data).map(function(key) {
+ return supp_data[key];
+});
+ if (result.length > 0) {
+ for (let val of result) {
+ let vals = {
+ supplier_name: val.supplier_name,
+ contact_person: val.contact_person,
+ mobile_number: val.mobile_number,
+ payment_mode: val.payment_mode,
+ per_of_immediate_advance_payment: val.per_of_immediate_advance_payment,
+ credit_period: val.credit_period,
+ frequency_of_purchase: val.frequency_of_purchase,
+ freq_purchase_others_text_value: val.freq_purchase_others_text_value
+ };
+ const control = this._supplierQuesFrom.controls['supplier_details'];
+ control.push(this.initDetailsWithdata(vals));
+ }
+ }
+ }
+
+ addSupplierDetails(e) {
+ const control = this._supplierQuesFrom.controls['supplier_details'];
+ control.push(this.initDetails());
+ }
+ removeLanguage(i: number) {
+ const control = this._supplierQuesFrom.controls['supplier_details'];
+ control.removeAt(i);
+ }
+
+ public paymentModeTextBox: number;
+ selectedPM(e) {
+ this.paymentModeTextBox = e.value;
+ // this.f.supplier_details.controls.get('payment_mode_value');
+ }
+
+ public freqPurchaseTextBox: number;
+ selectedFreqPurchase(e){
+ this.freqPurchaseTextBox = e.value;
+ }
+
+
+ /** To Save/Edited Popup Data */
+ onSubmit() {
+ this.submitted = true;
+ // stop here if form is invalid
+ if (this._supplierQuesFrom.invalid) {
+ return;
+ } else {
+ var answerFormValues = this._supplierQuesFrom.value;
+
+ //To Remove The "Null" With Key also
+ Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);
+ alert(JSON.stringify(answerFormValues));
+ //Add BRANCH data with help Service File
+ this.pdTrigerService.savePDFormDetailsWithID(answerFormValues).subscribe(
+ dataresult => {
+ if (dataresult.status == 200) {
+ // console.log(dataresult);
+ // this.notifier.notify('success', 'Record Saved Successfully.!');
+ // this.dialogRef.close();
+ // alert("sample alert for Saving");
+ }
+ else {
+ // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ // this.errorMessage = "Some Thing Wents Wrong Try Again !";
+ }
+ }, error => {
+ // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ // this.errorMessage = "Something Wents Wrong Try Again !";
+ // this.dialogRef.close();
+ });
+ //After Saving the BRANCH data then popup close
+ // this.dialogRef.close();
+ }
+ }
+
+ /** To Reset Popup Data */
+ onReset() {
+ // this._addQuesFrom.reset();
+ }
+
+ // {
+ // 'main_raw_materials': 'sdkjfal',
+ // 'supplier_details' ; [
+ // {
+ // 'supplier_name':'ldskjfalks',
+ // 'payment_mode': '1',
+ // 'payment_mode_value':''
+ // }
+ // ]
+ // }
+
}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.html
new file mode 100644
index 000000000..de8a53594
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.html
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.scss
new file mode 100644
index 000000000..db319b869
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.scss
@@ -0,0 +1,18 @@
+.address {
+ display: flex;
+ padding: 0 2%;
+ flex-direction: column;
+}
+
+.address > * {
+ width: 100%;
+}
+.matcard mat-form-field {
+ margin: 0 2%;
+}
+.address .button {
+ float: right;
+ width: 10px;
+ background: #62B013;
+ color: white;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts
new file mode 100644
index 000000000..2a4ad012e
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts
@@ -0,0 +1,93 @@
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray, FormControl,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import {ActivatedRoute, Router} from "@angular/router";
+@Component({
+ selector: 'app-current-loan',
+ templateUrl: './current-loan.component.html',
+ styleUrls: ['./current-loan.component.scss']
+})
+export class CurrentLoanComponent implements OnInit {
+ public currentLoanForm: FormGroup;
+ private notifier: NotifierService;
+
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+ ngOnInit() {
+ this.initCurrentloanForm();
+ }
+ public initCurrentloanForm(): void {
+ this.currentLoanForm = this.fb.group({
+ existing_loan: ['', Validators.compose([Validators.required])],
+ loan_details: this.fb.array([this.createLoanDetail()])
+ });
+ }
+ createLoanDetail() {
+ return this.fb.group({
+ loan_amount: ['', Validators.compose([Validators.required])],
+ emi: ['', Validators.compose([Validators.required])],
+ loan_type: ['', Validators.compose([Validators.required])],
+ lender: ['', Validators.compose([Validators.required])],
+ original_tenure: ['', Validators.compose([Validators.required])],
+ current_balance_tenure: ['', Validators.compose([Validators.required])],
+ });
+ }
+ addLoanDetails() {
+ const control = this.currentLoanForm.controls['loan_details'];
+ control.push(this.createLoanDetail());
+ }
+ deleteLoanDetails(index) {
+ const control = this.currentLoanForm.controls['loan_details'];
+ control.removeAt(index);
+ }
+ submitCurrentloan() {
+ if (!this.currentLoanForm.valid) {
+ this.validateAllFormFields(this.currentLoanForm);
+ return;
+ }
+ let records: any = {};
+ records.pdid = '253';
+ records.formid = '253';
+ records.fk_createdby = '253';
+ records.existing_loan = this.currentLoanForm.controls['existing_loan'].value;
+ records.loan_details = this.currentLoanForm.controls['loan_details'].value;
+ console.log('data', records);
+ this._pd.saveForm(records).subscribe(data => {
+ console.log('data', data);
+ this.notifier.notify('success', 'Saved Successfully.');
+ })
+ }
+ validateAllFormFields(formGroup: FormGroup) {
+ Object.keys(formGroup.controls).forEach(field => {
+ const control = formGroup.get(field);
+ if (control instanceof FormControl) {
+ control.markAsTouched({onlySelf: true});
+ } else if (control instanceof FormGroup) {
+ this.validateAllFormFields(control);
+ }
+ });
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.html
new file mode 100644
index 000000000..65b02ca59
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.html
@@ -0,0 +1,134 @@
+Family
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.scss
new file mode 100644
index 000000000..db319b869
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.scss
@@ -0,0 +1,18 @@
+.address {
+ display: flex;
+ padding: 0 2%;
+ flex-direction: column;
+}
+
+.address > * {
+ width: 100%;
+}
+.matcard mat-form-field {
+ margin: 0 2%;
+}
+.address .button {
+ float: right;
+ width: 10px;
+ background: #62B013;
+ color: white;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.ts
new file mode 100644
index 000000000..ce812d914
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/family-details/family-details.component.ts
@@ -0,0 +1,216 @@
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray, FormControl, AbstractControl,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import {ActivatedRoute, Router} from "@angular/router";
+@Component({
+ selector: 'app-family-details',
+ templateUrl: './family-details.component.html',
+ styleUrls: ['./family-details.component.scss']
+})
+export class FamilyDetailsComponent implements OnInit {
+ public currentLoanForm: FormGroup;
+ private notifier: NotifierService;
+ public familyForm: FormGroup;
+
+ public person: AbstractControl;
+ public personOther: AbstractControl;
+ public members: AbstractControl;
+ public residence: AbstractControl;
+ public years: AbstractControl;
+ public ownership: AbstractControl;
+ public ownershipOther: AbstractControl;
+ public rent: AbstractControl;
+
+ relationData: any = [];
+ occupationData: any = [];
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+ ngOnInit() {
+ this.getRelation();
+ this.getOccupation();
+ this.initFamilyForm();
+ let params: any = {};
+ params.pd_id = '251';
+ params.pd_form_id = '251';
+ this._pd.retriveForm(params).subscribe(data => {
+ console.log('data', data);
+ var result = Object.keys(data.records.non_earning_members).map(function(key) {
+ return data.records.non_earning_members[key];
+ });
+ var earning = Object.keys(data.records.earning_members).map(function(key) {
+ return data.records.earning_members[key];
+ });
+ this.familyForm.controls.person.setValue(data.records.person_met);
+ this.familyForm.controls.members.setValue(data.records.family_members);
+ this.familyForm.controls.years.setValue(data.records.no_of_years);
+ this.familyForm.controls.ownership.setValue(data.records.ownership);
+ this.familyForm.controls.rent.setValue(data.records.what_rent);
+ const control = this.familyForm.controls['nonEarningMembers'];
+ if (result.length == 0) {
+ control.push(this.createNonMembers());
+ } else {
+ result.forEach(datas => {
+ control.push(this.createNonMembers());
+ });
+ this.familyForm.controls.nonEarningMembers.setValue(result);
+ }
+ const value = this.familyForm.controls['earningMembers'];
+ if(earning.length == 0) {
+ value.push(this.createMembers());
+ } else {
+ earning.forEach(datas => {
+ value.push(this.createMembers());
+ });
+ this.familyForm.controls.earningMembers.setValue(earning);
+
+ }
+ this.familyForm.controls.residence.setValue(data.records.residence);
+
+ });
+ }
+ public initFamilyForm(): void {
+ this.familyForm = this.fb.group({
+ person: ['', Validators.compose([Validators.required])],
+ personOther: [''],
+ members: ['', Validators.compose([Validators.required])],
+ residence: ['', Validators.compose([Validators.required])],
+ years: ['', Validators.compose([Validators.required])],
+ ownership: ['', Validators.compose([Validators.required])],
+ ownershipOther: [''],
+ rent: [''],
+ earningMembers: this.fb.array([]),
+ nonEarningMembers: this.fb.array([])
+ });
+ this.person = this.familyForm.controls['person'];
+ this.personOther = this.familyForm.controls['personOther'];
+ this.members = this.familyForm.controls['members'];
+ this.residence = this.familyForm.controls['residence'];
+ this.years = this.familyForm.controls['years'];
+ this.ownership = this.familyForm.controls['ownership'];
+ this.ownershipOther = this.familyForm.controls['ownershipOther'];
+ this.rent = this.familyForm.controls['rent'];
+ }
+ createMembers(): FormGroup {
+ return this.fb.group({
+ relation: ['', Validators.compose([Validators.required])],
+ segment: ['', Validators.compose([Validators.required])],
+ income: ['', Validators.compose([Validators.required])],
+ employer_name: ['', Validators.compose([Validators.required])],
+ });
+ }
+ createNonMembers(): FormGroup {
+ return this.fb.group({
+ relationship: ['', Validators.compose([Validators.required])],
+ occupation: ['', Validators.compose([Validators.required])],
+ retired: ['', Validators.compose([Validators.required])],
+ });
+ }
+
+ addearningMembers() {
+ const control = this.familyForm.controls['earningMembers'];
+ control.push(this.createMembers());
+ }
+ addMembers() {
+ const control = this.familyForm.controls['nonEarningMembers'];
+ control.push(this.createNonMembers());
+ }
+ deleteEarningMembers(index) {
+ const control = this.familyForm.controls['earningMembers'];
+ control.removeAt(index);
+ }
+ deleteMembers(index) {
+ const control = this.familyForm.controls['nonEarningMembers'];
+ control.removeAt(index);
+ }
+
+
+ getRelation() {
+ let master_name = 'RELATIONSHIPS';
+ this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ console.log('data', data);
+ data.records.forEach(val => {
+ if (val.isactive == 1) {
+ this.relationData.push(val);
+ }
+ })
+ });
+ }
+ getOccupation() {
+ let master_name = 'OCCUPATIONMEMBERS';
+ this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ console.log('data', data);
+ data.records.forEach(val => {
+ if (val.isactive == 1) {
+ this.occupationData.push(val);
+ }
+ })
+ });
+ }
+ submitFamily() {
+ if (!this.familyForm.valid) {
+ this.validateAllFormFields(this.familyForm);
+ return;
+ }
+ console.log('data', this.familyForm.value);
+ let records: any = {};
+ records.no_of_years = this.years.value;
+ if (this.ownership.value == 'Others') {
+ records.ownership = this.ownershipOther.value;
+ } else {
+ records.ownership = this.ownership.value;
+ }
+ records.residence = this.residence.value;
+ if (this.ownership.value == 'Rented') {
+ records.what_rent = this.rent.value;
+ }
+ if (this.person.value == 'Other') {
+ records.person_met = this.personOther.value;
+ } else {
+ records.person_met = this.person.value;
+ }
+ records.family_members = this.members.value;
+ records.earning_members = this.familyForm.controls['earningMembers'].value;
+ records.non_earning_members = this.familyForm.controls['nonEarningMembers'].value;
+ records.pdid = '251';
+ records.formid = '251';
+ records.fk_createdby = '251';
+ console.log('params', records);
+ this._pd.saveForm(records).subscribe(data => {
+ console.log('data', data);
+ this.notifier.notify('success', 'Saved Successfully.');
+ })
+ }
+ validateAllFormFields(formGroup: FormGroup) {
+ Object.keys(formGroup.controls).forEach(field => {
+ const control = formGroup.get(field);
+ if (control instanceof FormControl) {
+ control.markAsTouched({onlySelf: true});
+ } else if (control instanceof FormGroup) {
+ this.validateAllFormFields(control);
+ }
+ });
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.html
new file mode 100644
index 000000000..617e657ef
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.html
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.scss
new file mode 100644
index 000000000..db319b869
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.scss
@@ -0,0 +1,18 @@
+.address {
+ display: flex;
+ padding: 0 2%;
+ flex-direction: column;
+}
+
+.address > * {
+ width: 100%;
+}
+.matcard mat-form-field {
+ margin: 0 2%;
+}
+.address .button {
+ float: right;
+ width: 10px;
+ background: #62B013;
+ color: white;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts
new file mode 100644
index 000000000..9bc956f27
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts
@@ -0,0 +1,103 @@
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray, FormControl,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import {ActivatedRoute, Router} from '@angular/router';
+@Component({
+ selector: 'app-loan-details',
+ templateUrl: './loan-details.component.html',
+ styleUrls: ['./loan-details.component.scss']
+})
+export class LoanDetailsComponent implements OnInit {
+ public loanDetailsForm: FormGroup;
+ private notifier: NotifierService;
+ frequencyData: any;
+
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+ ngOnInit() {
+ this.initloanDetailsForm();
+ // this.getFrequency();
+ }
+ public initloanDetailsForm(): void {
+ this.loanDetailsForm = this.fb.group({
+ other_income: ['', Validators.compose([Validators.required])],
+ // income_details: this.fb.array([this.createDetail()])
+ });
+ }
+ // createDetail() {
+ // return this.fb.group({
+ // source: ['', Validators.compose([Validators.required])],
+ // amount: ['', Validators.compose([Validators.required])],
+ // frequency: ['', Validators.compose([Validators.required])],
+ // });
+ // }
+ // getFrequency() {
+ // let master_name = 'FREQUENCY';
+ // this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ // console.log('data', data);
+ // data.records.forEach(val => {
+ // if (val.isactive == 1) {
+ // this.frequencyData.push(val);
+ // }
+ // })
+ // });
+ // }
+ // addIncomeDetails() {
+ // const control = this.otherIncomeForm.controls['income_details'];
+ // control.push(this.createDetail());
+ // }
+ // deleteIncomeDetails(index) {
+ // const control = this.otherIncomeForm.controls['income_details'];
+ // control.removeAt(index);
+ // }
+ // submitCurrentDetails() {
+ // if (!this.otherIncomeForm.valid) {
+ // this.validateAllFormFields(this.otherIncomeForm);
+ // return;
+ // }
+ // let records: any = {};
+ // records.pdid = '25‎4';
+ // records.formid = '25‎4';
+ // records.fk_createdby = '25‎4';
+ // records.other_income = this.otherIncomeForm.controls['other_income'].value;
+ // records.income_details = this.otherIncomeForm.controls['income_details'].value;
+ // console.log('data', records);
+ // this._pd.saveForm(records).subscribe(data => {
+ // console.log('data', data);
+ // this.notifier.notify('success', 'Saved Successfully.');
+ // })
+ // }
+ // validateAllFormFields(formGroup: FormGroup) {
+ // Object.keys(formGroup.controls).forEach(field => {
+ // const control = formGroup.get(field);
+ // if (control instanceof FormControl) {
+ // control.markAsTouched({onlySelf: true});
+ // } else if (control instanceof FormGroup) {
+ // this.validateAllFormFields(control);
+ // }
+ // });
+ // }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.html
new file mode 100644
index 000000000..25e8e81af
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.html
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.scss
new file mode 100644
index 000000000..db319b869
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.scss
@@ -0,0 +1,18 @@
+.address {
+ display: flex;
+ padding: 0 2%;
+ flex-direction: column;
+}
+
+.address > * {
+ width: 100%;
+}
+.matcard mat-form-field {
+ margin: 0 2%;
+}
+.address .button {
+ float: right;
+ width: 10px;
+ background: #62B013;
+ color: white;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts
new file mode 100644
index 000000000..72a564b11
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts
@@ -0,0 +1,103 @@
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray, FormControl,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
+import {ActivatedRoute, Router} from '@angular/router';
+@Component({
+ selector: 'app-other-income',
+ templateUrl: './other-income.component.html',
+ styleUrls: ['./other-income.component.scss']
+})
+export class OtherIncomeComponent implements OnInit {
+ public otherIncomeForm: FormGroup;
+ private notifier: NotifierService;
+ frequencyData: any;
+
+ constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
+ private router: Router,
+ private _pd: PdTrigerService) {
+
+ }
+ ngOnInit() {
+ this.initOtherincomeForm();
+ this.getFrequency();
+ }
+ public initOtherincomeForm(): void {
+ this.otherIncomeForm = this.fb.group({
+ other_income: ['', Validators.compose([Validators.required])],
+ income_details: this.fb.array([this.createDetail()])
+ });
+ }
+ createDetail() {
+ return this.fb.group({
+ source: ['', Validators.compose([Validators.required])],
+ amount: ['', Validators.compose([Validators.required])],
+ frequency: ['', Validators.compose([Validators.required])],
+ });
+ }
+ getFrequency() {
+ let master_name = 'FREQUENCY';
+ this._pd.getAllMasterDatas(master_name).subscribe(data => {
+ console.log('data', data);
+ data.records.forEach(val => {
+ if (val.isactive == 1) {
+ this.frequencyData.push(val);
+ }
+ })
+ });
+ }
+ addIncomeDetails() {
+ const control = this.otherIncomeForm.controls['income_details'];
+ control.push(this.createDetail());
+ }
+ deleteIncomeDetails(index) {
+ const control = this.otherIncomeForm.controls['income_details'];
+ control.removeAt(index);
+ }
+ submitCurrentDetails() {
+ if (!this.otherIncomeForm.valid) {
+ this.validateAllFormFields(this.otherIncomeForm);
+ return;
+ }
+ let records: any = {};
+ records.pdid = '25‎4';
+ records.formid = '25‎4';
+ records.fk_createdby = '25‎4';
+ records.other_income = this.otherIncomeForm.controls['other_income'].value;
+ records.income_details = this.otherIncomeForm.controls['income_details'].value;
+ console.log('data', records);
+ this._pd.saveForm(records).subscribe(data => {
+ console.log('data', data);
+ this.notifier.notify('success', 'Saved Successfully.');
+ })
+ }
+ validateAllFormFields(formGroup: FormGroup) {
+ Object.keys(formGroup.controls).forEach(field => {
+ const control = formGroup.get(field);
+ if (control instanceof FormControl) {
+ control.markAsTouched({onlySelf: true});
+ } else if (control instanceof FormGroup) {
+ this.validateAllFormFields(control);
+ }
+ });
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.html
index 3527ddf35..36b5e52f7 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.html
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.html
@@ -1,3 +1,124 @@
-
- personal-info works!
-
+
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.scss
index e69de29bb..776d000ca 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.scss
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.scss
@@ -0,0 +1,6 @@
+.mat-card-content {
+ background-color: white;
+ }
+ .mat-card-actions {
+ background-color: white;
+ }
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.ts
index 75070f4db..9dad2e46c 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/personal-info/personal-info.component.ts
@@ -1,4 +1,8 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit , Input, Output } from '@angular/core';
+import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms';
+import { NotifierService } from 'angular-notifier';
+import { PdTrigerService } from './../../../../../pd-service/pd-triger.service';
+import { Key } from 'protractor';
@Component({
selector: 'app-personal-info',
@@ -7,9 +11,245 @@ import { Component, OnInit } from '@angular/core';
})
export class PersonalInfoComponent implements OnInit {
- constructor() { }
+ qualifications:any=["Graduate","Under Graduate","Post Graduate","Professional"];
+ earningStatus:any=["Earning Member","House Wife","Student","Retired","Pensioner","Other Non earning member"];
+ relationShipList:any=[];
+ @Input() pdid : string;
+ @Input() pd_all_details:any;
+ form_id:number;
+ private notifier: NotifierService;
+ public _personalForm: FormGroup;
+
+ public mainApplicantQuestions : any = ["Name","Age","Entity","Educational Qualification","Earning Status"];
+ public coApplicantQuestions : any = ["Name","Age","Entity","Educational Qualification","Earning Status","Relationship"];
+
+ public mainApplicantDetails :any=[];
+ public coApplicantDetails :any=[];
+
+ errorMessage:any;
+ //coItem:any;
+ //mainItem:any;
+
+ repeat:number=3;
+
+ constructor(notifier: NotifierService,private _fb: FormBuilder,private _pd: PdTrigerService) {
+ this.notifier = notifier;
+ this.form_id = 3;
+ }
ngOnInit() {
+
+ this.loadPDDetails(this.pdid,this.form_id);
+ this.getRelationMaster();
+ this.mainApplicantDetails = this.pd_all_details.pdapplicants_detials.filter(item => item.applicant_type == 1);
+ // console.log(this.mainApplicantDetails)
+ this.coApplicantDetails = this.pd_all_details.pdapplicants_detials.filter(item => item.applicant_type == 0);
+ }
+
+ // load form pd details
+ loadPDDetails(pd:string,form:number){
+
+ this._pd.getPDFormDetailsWithID(this.pdid,this.form_id).subscribe(
+ data => {
+ if (data.status == 200) {
+ this.loadFormWithIDData(data.records);
+
+ }
+ else if(data.status == 204){
+ let defaultMainApp=[];
+ let defaultCoApp=[];
+ // generate default main applicant form details
+ if(this.mainApplicantDetails.length>0){
+ for(let j=0;j this.errorMessage = error);
+}
+
+loadDataStatus: boolean;
+
+loadFormWithIDData(data) {
+ var main_result = Object.keys(data.main_applicant_details).map(function(key) {
+ return data.main_applicant_details[key];
+});
+var co_result = Object.keys(data.co_applicant_details).map(function(key) {
+ return data.co_applicant_details[key];
+});
+
+ // main applicant
+ let mainApplicantGroup = new FormArray(main_result.map((item,key) => new FormGroup({
+ name_ans:new FormControl(item.name_ans, Validators.required),
+ age_ans:new FormControl(item.age_ans, Validators.required),
+ entity_ans:new FormControl(item.entity_ans, Validators.required),
+ qualification_ans:new FormControl(item.qualification_ans, Validators.required),
+ earning_ans:new FormControl(item.earning_ans, Validators.required),
+ })));
+ // co applicant
+ let iterateCoApp=[];
+
+ let coApplicantGroup = new FormArray(co_result.map((item,key) => new FormGroup({
+ name_ans:new FormControl(item.name_ans, Validators.required),
+ age_ans:new FormControl(item.age_ans, Validators.required),
+ entity_ans:new FormControl(item.entity_ans, Validators.required),
+ qualification_ans:new FormControl(item.qualification_ans, Validators.required),
+ earning_ans:new FormControl(item.earning_ans, Validators.required),
+ relation_ans:new FormControl(item.relation_ans, Validators.required),
+
+ })));
+
+ this._personalForm = this._fb.group({
+ pdid:null,
+ form_id:null,
+ mainItem: mainApplicantGroup,
+ coItem: coApplicantGroup,
+ });
+ //console.log(this._personalForm);
+ this.loadDataStatus = true;
+}
+
+ loadFormData(mainApp,coApp){
+ // main applicant
+ let mainApplicantGroup = new FormArray(this.mainApplicantDetails.map((item,key) => new FormGroup({
+ name_ques:new FormControl(this.mainApplicantQuestions[0]),
+ name_ans:new FormControl(item.applicant_name, Validators.required),
+ name_id:new FormControl(0),
+ age_ques:new FormControl(this.mainApplicantQuestions[1]),
+ age_id:new FormControl(1),
+ age_ans:new FormControl(null, Validators.required),
+ entity_ques: new FormControl(this.mainApplicantQuestions[2]),
+ entity_id: new FormControl(2),
+ entity_ans:new FormControl(null, Validators.required),
+ qualification_ques: new FormControl(this.mainApplicantQuestions[3]),
+ qualification_id: new FormControl(3),
+ qualification_ans:new FormControl(null, Validators.required),
+ earningStatus_ques:new FormControl(this.mainApplicantQuestions[4]),
+ earning_id: new FormControl(4),
+ earning_ans:new FormControl(null, Validators.required),
+
+ })));
+ // co applicant
+ let iterateCoApp=[];
+
+ let coApplicantGroup = new FormArray(this.coApplicantDetails.map((item,key) => new FormGroup({
+ name_ques:new FormControl(this.coApplicantQuestions[0]),
+ name_ans:new FormControl(item.applicant_name, Validators.required),
+ name_id:new FormControl(0),
+ age_ques:new FormControl(this.coApplicantQuestions[1]),
+ age_id:new FormControl(1),
+ age_ans:new FormControl(null, Validators.required),
+ entity_ques: new FormControl(this.coApplicantQuestions[2]),
+ entity_id: new FormControl(2),
+ entity_ans:new FormControl(null, Validators.required),
+ qualification_ques: new FormControl(this.coApplicantQuestions[3]),
+ qualification_id: new FormControl(3),
+ qualification_ans:new FormControl(null, Validators.required),
+ earningStatus_ques:new FormControl(this.coApplicantQuestions[4]),
+ earning_id: new FormControl(4),
+ earning_ans:new FormControl(null, Validators.required),
+ relationShip_ques:new FormControl(this.coApplicantQuestions[5]),
+ relation_id:new FormControl(5),
+ relation_ans:new FormControl(null, Validators.required),
+
+ })));
+
+ this._personalForm = this._fb.group({
+ pdid:null,
+ form_id:null,
+ mainItem: mainApplicantGroup,
+ coItem: coApplicantGroup,
+ });
+ //console.log(this._personalForm);
+this.loadDataStatus = true;
}
+ //get pd main applicant array values
+ get pdMainapplicant() { return this._personalForm.get('mainItem') as FormArray; }
+
+ // get pd co applicant array values
+ get pdCoapplicant() {return this._personalForm.get('coItem') as FormArray;}
+
+ // get relation master details
+ getRelationMaster(){
+ let relation ="RELATIONSHIPS";
+ this._pd.getAllMasterDatas(relation).subscribe(
+ data => {
+ if (data.status == 200) {
+ this.relationShipList=data.records;
+
+ }
+}, error => this.errorMessage = error);
+}
+
+// submit forms details
+submitPersonalForm(formData:any) {
+ if(this._personalForm.valid){
+ let main_applicantDetails:any=[];
+ let co_applicantDetails:any=[];
+
+ formData.mainItem.forEach((element,key) => {
+ if(key==0){
+ main_applicantDetails.push({
+ "name_ans":element.name_ans,
+ "age_ans":element.age_ans,
+ "entity_ans":element.entity_ans,
+ "qualification_ans":element.qualification_ans,
+ "earning_ans":element.earning_ans,
+ })
+ }
+
+ });
+ formData.coItem.forEach((Coelement,Cokey) => {
+ co_applicantDetails.push({
+
+ "name_ans":Coelement.name_ans,
+ "age_ans":Coelement.age_ans,
+ "qualification_ans":Coelement.qualification_ans,
+ "entity_ans":Coelement.entity_ans,
+ "earning_ans":Coelement.earning_ans,
+ "relation_ans":Coelement.relation_ans,
+ })
+
+ });
+
+ let save_details:any={
+ "pdid": this.pdid,
+ "formid": this.form_id,
+ "main_applicant_details":main_applicantDetails,
+ "co_applicant_details":co_applicantDetails
+ };
+ this._pd.savePDFormDetailsWithID(save_details).subscribe(result => {
+ if (result.status == 200) {
+ this.notifier.notify('success', 'Success.');
+ }
+ else {
+ this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ }
+ }, error => {
+ this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ });
+ }
+}
+
+
}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html
index 7fbdf4049..b244be4e3 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html
@@ -1,3 +1,96 @@
-
- supplier-info works!
-
+
+
+ Supplier Details
+
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.scss
index e69de29bb..890847551 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.scss
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.scss
@@ -0,0 +1,3 @@
+.example-full-width{
+ width : 100%;
+}
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.ts
index 8f91281d8..3a2f64e99 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.ts
@@ -1,15 +1,261 @@
-import { Component, OnInit } from '@angular/core';
+/** Common Imports */
+import {
+ Component,
+ OnInit,
+ Inject,
+ Input
+} from '@angular/core';
+import {
+ FormBuilder,
+ FormGroup,
+ Validators,
+ FormArray,
+} from '@angular/forms';
+
+import { NotifierService } from 'angular-notifier';
+
+import {
+ MatDialog,
+ MatDialogRef,
+ MAT_DIALOG_DATA
+} from '@angular/material';
+/** Service */
+import { PdTrigerService } from '../../../../../pd-service/pd-triger.service';
@Component({
selector: 'app-supplier-info',
templateUrl: './supplier-info.component.html',
styleUrls: ['./supplier-info.component.scss']
})
export class SupplierInfoComponent implements OnInit {
+
+ @Input() pdid: number;
- constructor() { }
+ public _supplierQuesFrom: FormGroup;
+ public submitted = false;
+ public m_paymentModeType= [
+ {
+ 'id': "1",
+ 'name': 'Immediate Or Advanced Payment'
+ },
+ {
+ 'id': "2",
+ 'name': 'Credit'
+ },
+ {
+ 'id': "3",
+ 'name': 'Combination of Both'
+ },
+ ];
+
+ public m_freqOfPurchase= [
+ {
+ 'id': "1",
+ 'name': 'Daily'
+ },
+ {
+ 'id': "2",
+ 'name': 'Weekly'
+ },
+ {
+ 'id': "3",
+ 'name': 'Monthly'
+ },
+ {
+ 'id': "4",
+ 'name': 'Every 3 months'
+ },
+ {
+ 'id': "5",
+ 'name': 'Half yearly'
+ },
+ {
+ 'id': "6",
+ 'name': 'Yearly'
+ },
+ {
+ 'id': "7",
+ 'name': 'As and when required'
+ },
+ {
+ 'id': "8",
+ 'name': 'Others'
+ }
+ ]
+
+ constructor(
+ private _formBuilder: FormBuilder,
+ private pdTrigerService: PdTrigerService) { }
ngOnInit() {
+
+ this.getPdSupplierFormDetails();
+ }
+apiLoadFinish: boolean = false;
+ getPdSupplierFormDetails() {
+ this.pdTrigerService.getPDFormDetailsWithID(this.pdid, '1').subscribe(
+ data => {
+ if (data) {
+ if(data.dataStatus){
+ this.formLoadData(data.records)
+ } else {
+ this.formLoadData(null)
+ }
+ this.apiLoadFinish = true;
+ } else {
+ // this.noRecordFound = true;
+ }
+ }
+ );
}
+ formLoadData(val) {
+ if(val !== null) {
+ let value = val;
+ this._supplierQuesFrom = this._formBuilder.group({
+ pdid: [this.pdid],
+ formid: ['1'],
+ main_raw_materials: [value.main_raw_materials, Validators.compose([Validators.required])],
+ supplier_details: this._formBuilder.array([
+ // this.initDetails(),
+ ])
+ });
+ this.addSupplierDetailsWithData(value.supplier_details);
+ } else {
+ this._supplierQuesFrom = this._formBuilder.group({
+ pdid: [this.pdid],
+ formid: ['1'],
+ main_raw_materials: [null, Validators.compose([Validators.required])],
+ supplier_details: this._formBuilder.array([
+ this.initDetails(),
+ ])
+ });
+ }
+ }
+
+ // convenience getter for easy access to form fields
+ get f() { return this._supplierQuesFrom.controls; }
+
+ // Dynamic Form field creation Functionality : START ===>
+ initDetails() {
+ return this._formBuilder.group({
+ supplier_name: ['', Validators.compose([Validators.required])],
+ contact_person: ['', Validators.compose([Validators.required])],
+ mobile_number: ['', Validators.compose([Validators.required])],
+ payment_mode: ['', Validators.compose([Validators.required])],
+ per_of_immediate_advance_payment:[''],
+ credit_period:[''],
+ frequency_of_purchase: ['', Validators.compose([Validators.required])],
+ freq_purchase_others_text_value: ['']
+ });
+ }
+
+ initDetailsWithdata(data) {
+ return this._formBuilder.group({
+ supplier_name: [data.supplier_name, Validators.compose([Validators.required])],
+ contact_person: [data.contact_person, Validators.compose([Validators.required])],
+ mobile_number: [data.mobile_number, Validators.compose([Validators.required])],
+ payment_mode: [data.payment_mode, Validators.compose([Validators.required])],
+ per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''],
+ credit_period:[data.credit_period || ''],
+ frequency_of_purchase: [data.frequency_of_purchase, Validators.compose([Validators.required])],
+ freq_purchase_others_text_value: [data.freq_purchase_others_text_value || '']
+ });
+ }
+
+ addSupplierDetailsWithData(supp_data) {
+
+var result = Object.keys(supp_data).map(function(key) {
+ return supp_data[key];
+});
+ if (result.length > 0) {
+ for (let val of result) {
+ let vals = {
+ supplier_name: val.supplier_name,
+ contact_person: val.contact_person,
+ mobile_number: val.mobile_number,
+ payment_mode: val.payment_mode,
+ per_of_immediate_advance_payment: val.per_of_immediate_advance_payment,
+ credit_period: val.credit_period,
+ frequency_of_purchase: val.frequency_of_purchase,
+ freq_purchase_others_text_value: val.freq_purchase_others_text_value
+ };
+ const control = this._supplierQuesFrom.controls['supplier_details'];
+ control.push(this.initDetailsWithdata(vals));
+ }
+ }
+ }
+
+ addSupplierDetails(e) {
+ const control = this._supplierQuesFrom.controls['supplier_details'];
+ control.push(this.initDetails());
+ }
+ removeLanguage(i: number) {
+ const control = this._supplierQuesFrom.controls['supplier_details'];
+ control.removeAt(i);
+ }
+
+ public paymentModeTextBox: number;
+ selectedPM(e) {
+ this.paymentModeTextBox = e.value;
+ // this.f.supplier_details.controls.get('payment_mode_value');
+ }
+
+ public freqPurchaseTextBox: number;
+ selectedFreqPurchase(e){
+ this.freqPurchaseTextBox = e.value;
+ }
+
+
+ /** To Save/Edited Popup Data */
+ onSubmit() {
+ this.submitted = true;
+ // stop here if form is invalid
+ if (this._supplierQuesFrom.invalid) {
+ return;
+ } else {
+ var answerFormValues = this._supplierQuesFrom.value;
+
+ //To Remove The "Null" With Key also
+ Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);
+ alert(JSON.stringify(answerFormValues));
+ //Add BRANCH data with help Service File
+ this.pdTrigerService.savePDFormDetailsWithID(answerFormValues).subscribe(
+ dataresult => {
+ if (dataresult.status == 200) {
+ // console.log(dataresult);
+ // this.notifier.notify('success', 'Record Saved Successfully.!');
+ // this.dialogRef.close();
+ // alert("sample alert for Saving");
+ }
+ else {
+ // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ // this.errorMessage = "Some Thing Wents Wrong Try Again !";
+ }
+ }, error => {
+ // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
+ // this.errorMessage = "Something Wents Wrong Try Again !";
+ // this.dialogRef.close();
+ });
+ //After Saving the BRANCH data then popup close
+ // this.dialogRef.close();
+ }
+ }
+
+ /** To Reset Popup Data */
+ onReset() {
+ // this._addQuesFrom.reset();
+ }
+
+ // {
+ // 'main_raw_materials': 'sdkjfal',
+ // 'supplier_details' ; [
+ // {
+ // 'supplier_name':'ldskjfalks',
+ // 'payment_mode': '1',
+ // 'payment_mode_value':''
+ // }
+ // ]
+ // }
+
}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.html
index 0c1e6db93..3f2e4fcec 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.html
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.html
@@ -1,13 +1,8 @@
-