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

+
+ + + + + + + Office + Clinic + Factory + Warehouse + Shop + Residence cum Office + Residence + Other (PD officer to fill) + + + + + + Commercial (Office type) Area + + Commercial (shop type) Area + Industrial Area + Residential Area + Mix use (Comment mandatory) + Rural (Village) area + Others (Please specify) + + + + + {{data.description}} + + + + + + {{data.rating}} + + + + + + {{data.description}} + + + + + +

Neighbour hood +

+ +

+
+ + + + + + + Yes + No + + + + + + + + Yes + No + Dont Know + + + + + + +
+
+
+ +
\ 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 @@ + + +
+
+
+
+ +
+
+
+ + + {{ asset.name }} + + +
+
+ +
+ +
+
+
+
+
+ + + {{ prop.name }} + + +
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+
+ + + {{ ins_type.name }} + + +
+
+ + + +
+
+ + + {{ freqn.name }} + + +
+
+
+
+ + + +
+
+ + + +
+
+
+
+
+
+ +
+
+
+
+
+
+ + + {{ ins_type.name }} + + +
+
+ + + +
+
+ + + +
+
+
+
+
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+
+ +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ EMI +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+ + +
+
+
\ 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 @@ +
+
+ + + + +

{{i+1}} Banking details + add + + + delete +

+
+
+ + + + + + + + + + Savings + Current + OD + CC + + + + + + + Yes + No + NA + + + + + + + + Yes + No + + + + + +
+ +
+
+ +
\ 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! -

+ + +
+
+
+
+
+
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+
+ + + {{ pm.name }} + + +
+
+ + + + +
+
+ + + + +
+
+
+
+ + + {{ feq.name }} + + +
+
+ + + + +
+ +
+ + + +
+
+
+
+ +
+
+
+ + +
+
+
\ 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 @@ +
+ + + Yes + No + + + + +

Loan Details

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
\ 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

+
+ + + + {{state}} + + + + + + + + + + + +

Earning Members +

+ +

+
+ + + + + {{relation.name}} + + + + + + Salaried + SENP + SEP + + + + + + + + + + + + +
+
+
+ + +

Non Earning Members +

+ +

+
+ + + + + {{relation.name}} + + + + + + {{occupation.name}} + + + + + + + + + +
+
+
+ + +

Residence +

+ + + + + + + + + + + Self Owned + Family Owned + Rented + Others + + + + + + + + + + + +

\ 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 @@ +
+ + + + + + Yes + No + + + + +

Loan Details

+ +

+
+ + + + Rental Income + Interest Income + Agricultural Income + Dividend Income and Others + + + + + + + + + + + +
+
+
+ +
\ 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 @@ +
+ + + Yes + No + + + + +

Loan Details

+ +

+
+ + + + Rental Income + Interest Income + Agricultural Income + Dividend Income and Others + + + + + + + + + + + +
+
+
+ +
\ 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! -

+
+ + + + +
+ +
+ + + Main Applicant + +
+
+ + + + + + + + + + + + + + + + + {{education}} + + + + + + + + {{earning}} + + + +
+
+ +
+
+ + +
+ + + + + +
+ + + Co Applicant + +
+
+ + + + + + + + + + + + + + + + + + + + {{education}} + + + + + + + + + {{earning}} + + + + + + + + {{rel.name}} + + + +
+
+ + +
+ +
+ + +
+ +
+ +
+ + +
+ +
+
+ +
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

+
+
+
+ + + You must Include Raw Material Details. + +
+
+
+
+ +
+ + +
+
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+
+ + + {{ pm.name }} + + +
+
+ + + + +
+
+ + + + +
+
+
+
+ + + {{ feq.name }} + + +
+
+ + + + +
+ +
+ + + +
+
+
+ +
+
+
+ +
+
+
+ + +
+
+
\ 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 @@ - - + + @@ -19,13 +14,8 @@ - - {{ (questions.question.length>15)? (questions.question | - slice:0:15)+'..':(questions.question) }} - + + {{ (questions.question.length>15)? (questions.question | slice:0:15)+'..':(questions.question) }} @@ -33,8 +23,8 @@ - - {{ (formButton.form_name.length>15)? (formButton.form_name | slice:0:15)+'..':(formButton.form_name) }} + + {{ (formButton.form_name.length>17)? (formButton.form_name | slice:0:17)+'..':(formButton.form_name) }} @@ -51,12 +41,9 @@
-
- +
+

{{mainApplicantName}}

{{pdMasterList.customer_segment_name}} @@ -71,8 +58,7 @@
- - +

No Records Found..

@@ -80,135 +66,100 @@ - + + +
+ - - + {{optionsForm.controls.pd_question.value}} +
+
- {{optionsForm.controls.pd_question.value}} -
-
+ - + - + + {{option.pd_answer}} - - - {{option.pd_answer}} - + - + - + - +
+
-
-
- - - -
-
-
-
+
+
+
+
-
-
-
-
-
- {{docs.pd_document_title}} - - +
+
+
+
+ {{docs.pd_document_title}} + +
+
-
+
+ -
- - - -
- -
- - - -
-
- - Remarks - - - -
- -
- - - skip_previous - - - chevron_left - - - chevron_right - - - skip_next - - + +
- -
- - + + +
+
+ + Remarks + + +
+ +
+ + skip_previous + chevron_left + chevron_right + skip_next + + +
+ +
+ +
+ + {{selectedCategory.question}} -
+
- - chevron_left - - - chevron_right - + chevron_left + chevron_right
@@ -221,50 +172,42 @@ - +
{{textBoxForm.controls.pd_question.value}} -
+
- + Answers - +
-
+
- +
-
+
-
-
+
- {{docs.pd_document_title}} - + {{docs.pd_document_title}}
@@ -284,41 +227,21 @@ -
+
Remarks - +
-
+
- - skip_previous - - - chevron_left - - - chevron_right - - - skip_next - + skip_previous + chevron_left + chevron_right + skip_next
@@ -333,20 +256,12 @@ -
+
- - chevron_left - - - chevron_right - + chevron_left + chevron_right
@@ -357,51 +272,38 @@ - + {{checkBoxForm.controls.pd_question.value}} -
+
- + - - - {{ control.controls.pd_answer.value }} - - + {{ control.controls.pd_answer.value }}
-
+
- +
-
+
-
-
+
- {{docs.pd_document_title}} - + {{docs.pd_document_title}}
@@ -421,44 +323,21 @@ -
+
Remarks - +
-
+
- - skip_previous - - - chevron_left - - - chevron_right - - - skip_next - + skip_previous + chevron_left + chevron_right + skip_next
@@ -473,20 +352,12 @@ -
+
- - chevron_left - - - chevron_right - + chevron_left + chevron_right
@@ -504,323 +375,43 @@
- -

supplier

+ + - -

client

+ + -

Personal

+
- -

Address

- - - - - - - - Office - Clinic - Factory - Warehouse - Shop - Residence cum Office - Residence - Other (PD officer to fill) - - - - - - Commercial (Office type) Area - - Commercial (shop type) Area - Industrial Area - Residential Area - Mix use (Comment mandatory) - Rural (Village) area - Others (Please specify) - - - - - {{data.description}} - - - - - - {{data.rating}} - - - - - - {{data.description}} - - - - - -

Neighbour hood -

- -

-
- - - - - - - Yes - No - - - - - - - - Yes - No - Dont Know - - - - - - -
-
-
- - - +
-

Family

-
- - - - {{state}} - - - - - - - - - - - -

Earning Members -

- -

-
- - - - - {{relation.name}} - - - - - - Salaried - SENP - SEP - - - - - - - - - - - - -
-
-
- - -

Non Earning Members -

- -

-
- - - - - {{relation.name}} - - - - - - {{occupation.name}} - - - - - - - - -
-
-
- - -

Residence -

- - - - - - - - - - - Self Owned - Family Owned - Rented - Others - - - - - - - - - - - -

-
- - -
-
- - - - -

{{i+1}} Banking details - add - - - delete -

-
-
- - - - - - - - - - Savings - Current - OD - CC - - - - - - - Yes - No - NA - - - - - - - - Yes - No - - - - - -
- -
-
- -
+
+ + + + + + + + + + + + + +
@@ -834,5 +425,4 @@ - - \ No newline at end of file + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.scss index 5f3eb7681..543149a8b 100644 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.scss +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.scss @@ -139,16 +139,4 @@ mat-icon{ background: #62B013; color: white; } -.banlFields mat-form-field { - width: 100%; - margin: 0 2%; -} -.bankForm .button { - float: right; - width: 10px; - background: #62B013; - color: white; -} -.has-danger{ - border: solid thin #f44336!important; -} \ No newline at end of file + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.ts index 47b979fbd..b89a4eff2 100644 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd.component.ts @@ -38,6 +38,22 @@ export class StartPdComponent implements OnInit, OnDestroy { 'Other' ]; relationDetails: any = [1]; +// errorMessage:any; +// selectedCategory:any=[]; +// categoryList: any=[]; +// pdMasterList: any=[]; +// optionsForm: FormGroup; +// checkBoxForm:FormGroup; +// textBoxForm:FormGroup; +// next:number; +// previous:number; +// selectedCategoryIndex:number; +// selectedQuestionIndex:number; +// getQuestionsLength:number; +// answerList:any=[]; +// ansPDList:any=[]; +// pdFullDetails:any=[]; + // category static form buttons categoryFormButtons: any = [ { @@ -53,17 +69,33 @@ export class StartPdComponent implements OnInit, OnDestroy { "form_name": "Personal Details", }, { - "form_id": 4, - "form_name": "Address" + "form_id":4, + "form_name":"Asset Details", }, { "form_id": 5, - "form_name": "Family", + "form_name": "Address" }, { "form_id": 6, + "form_name": "Family", + }, + { + "form_id": 7, "form_name": "Banking", }, + { + "form_id": 8, + "form_name": "Current Loan", + }, + { + "form_id": 9, + "form_name": "Other Income", + }, + { + "form_id": 10, + "form_name": "Loan Details", + }, ]; formsCategoryEnable: boolean = false; @@ -81,33 +113,11 @@ export class StartPdComponent implements OnInit, OnDestroy { currentPDStatus: string; actualQuestions: number; answeredQuestions: number; - locationdata: any = []; - commentData: any = []; - customerData: any = []; - relationData: any = []; - occupationData: any = []; - public addressForm: FormGroup; - public familyForm: FormGroup; - public bankingForm: FormGroup; - public address: AbstractControl; - public addressType: AbstractControl; - public locality: AbstractControl; - public pdLocation: AbstractControl; - public commentlocality: AbstractControl; - public customerBehaviour: AbstractControl; - public person: AbstractControl; - public personOther: AbstractControl; - - public members: AbstractControl; - public residence: AbstractControl; - public years: AbstractControl; - public ownership: AbstractControl; - public ownershipOther: AbstractControl; - public rent: AbstractControl; - step: any; + // start + // end private notifier: NotifierService; @@ -120,16 +130,9 @@ export class StartPdComponent implements OnInit, OnDestroy { } ngOnInit() { - this.step = 0; - this.getLocation(); - this.getComment(); - this.getCustomer(); - this.getRelation(); - this.getOccupation(); + // start - this.initAddressForm(); - this.initFamilyForm(); - this.initBankingForm(); + // end this.listPDComponent.showListView(false); const elemSidebar = document.querySelector('.app-inner .mail-sidebar'); const elemContent = document.querySelector('.app-inner .main-content'); @@ -143,85 +146,10 @@ export class StartPdComponent implements OnInit, OnDestroy { this.next = 1; this.previous = 2; } - 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.createNeighbour() ]) - }); - 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])], - }); - } - 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([ this.createMembers()]), - nonEarningMembers: this.fb.array([ this.createNonMembers()]) - }); - 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']; + // start - this.rent = this.familyForm.controls['rent']; - } - public initBankingForm(): void { - this.bankingForm = this.fb.group({ - itemRows: this.fb.array([this.createBankarray()]) - }); - } - 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])], - }); - } - createMembers(): FormGroup { - return this.fb.group({ - relation: ['', Validators.compose([Validators.required])], - segment: ['', Validators.compose([Validators.required])], - income: ['', Validators.compose([Validators.required])], - employerName: ['', 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])], - }); - } + + // end isMac(): boolean { let bool = false; @@ -276,10 +204,35 @@ export class StartPdComponent implements OnInit, OnDestroy { "template_id": selectedQuestions.fk_template_id, "category_id": selectedQuestions.fk_template_question_category_id } - this.getAnswers(serachQuestions); - } + // loadTemplates(startID:string){ + // this._pd.loadPDTemplates(startID).subscribe( + // data => { + // if (data.status == 200) { + // this.pdMasterList=data.records.pdmaster_details; + // this.categoryList=data.records.question_answers; + // let filterApplicantName= data.records.pdapplicants_detials.filter(item => item.applicant_type == 1); + // this.mainApplicantName = filterApplicantName[0].applicant_name; + // this.currentPDStatus = data.records.pdmaster_details.pd_status; + // + // this.actualQuestions = data.records.counts.overall_question_count; + // this.answeredQuestions = data.records.counts.overall_answered_count; + // + // this.pdFullDetails = data.records + // + // } + // else{ + // this.pdMasterList=""; + // this.mainApplicantName=""; + // this.categoryList=[]; + // this.currentPDStatus=""; + // } + // this.getAnswers(serachQuestions); + // + // }); + // } + // load question based answer list getAnswers(serachList: any) { this.answerList = []; @@ -585,245 +538,20 @@ export class StartPdComponent implements OnInit, OnDestroy { this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); }); } - - // direct form based questions + // start + // direct form based questions OnSelectDirectForms(details: any) { this.formsCategoryEnable = true; this.selectedFormsCategory = details; - if(details.form_id == '4') { - 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); - this.addressForm.controls.neighbourhood.setValue(result); - console.log('result', result); - }); - } - if(details.form_id == '5') { - 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); - this.familyForm.controls.nonEarningMembers.setValue(result); - this.familyForm.controls.earningMembers.setValue(earning); - this.familyForm.controls.residence.setValue(residence); - }); - } - if(details.form_id == '6') { - 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]; - }); - this.bankingForm.controls.itemRows.setValue(result); - }); - } - } - 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); - } - 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); } - 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); - } - }) - }); - } - 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); - } - }) - }); - } - 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); - } + // load pd view component loadPdViewCompoent() { this.router.navigate(['../../viewpd', this.startPD], {relativeTo: this.route}); } - 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); - let params: any = {}; - params.pd_id = '250'; - params.pd_form_id = '250'; - console.log('param', params); - }); - } - 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); - }) - } - 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); - }) - } - 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); - } - }); - } -} +// end + } diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html index 00b3d4d69..a0dfcc36d 100644 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html @@ -45,9 +45,13 @@ + +

{{master.pd_contact_person}}   {{master.pd_contact_mobileno}} (Lender Contact Details)

+

{{master.product_name}} / {{master.subproduct_name}}

{{master.pd_type_name}} /  {{master.loan_amount}}

-

{{master.addressline1}} , {{master.addressline2}} , {{master.addressline3}}

+

{{master.addressline1}} , {{master.addressline2}} , {{master.addressline3}}

+

Remarks : {{master.remarks}}

diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts index caf1cc177..4c582d98b 100644 --- a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts @@ -48,6 +48,13 @@ import {QcCompletedPdComponent} from './list-pd/qc-completed-pd/qc-completed-pd. import {ClientInfoComponent} from './list-pd/start-pd/forms/client-info/client-info.component'; import {SupplierInfoComponent} from './list-pd/start-pd/forms/supplier-info/supplier-info.component'; import {PersonalInfoComponent} from './list-pd/start-pd/forms/personal-info/personal-info.component'; +import {CurrentLoanComponent} from "./list-pd/start-pd/forms/current-loan/current-loan.component"; +import {LoanDetailsComponent} from "./list-pd/start-pd/forms/loan-details/loan-details.component"; +import {OtherIncomeComponent} from "./list-pd/start-pd/forms/other-income/other-income.component"; +import { AssetsInfoComponent } from './list-pd/start-pd/forms/assets-info/assets-info.component'; +import {AddressComponent} from "./list-pd/start-pd/forms/address/address.component"; +import {FamilyDetailsComponent} from "./list-pd/start-pd/forms/family-details/family-details.component"; +import {BankingDetailsComponent} from "./list-pd/start-pd/forms/banking-details/banking-details.component"; /** * Custom angular notifier options @@ -121,7 +128,7 @@ const pdCustomNotifierOptions: NotifierOptions = { AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), OwlDateTimeModule, OwlNativeDateTimeModule, ], - declarations: [ListPdComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent], + declarations: [BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent], exports: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, CompletedPdComponent, QcCompletedPdComponent], providers: [PdTrigerService, GetGeometricLocationService], entryComponents: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent] diff --git a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts index 5923fb2ae..0ca33f2c0 100644 --- a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts +++ b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts @@ -221,21 +221,59 @@ export class PdTrigerService { } // save pd answers - savePDQuestions(saveData: any): Observable { - saveData.createdby = this._aws.getlocale(); - saveData.fk_createdon = currentdate; - // saveData[0].fk_updatedby = this._aws.getlocale(); - // saveData[0].updatedon = currentdate; - - return this._http.post(this.apiUrl + "savePDQuestions", {"records": saveData}) - .pipe( - catchError(this.handleError('operation', [])) - ) - } + // savePDQuestions(saveData: any): Observable { + // saveData.createdby = this._aws.getlocale(); + // saveData.fk_createdon = currentdate; + // // saveData[0].fk_updatedby = this._aws.getlocale(); + // // saveData[0].updatedon = currentdate; + // + // return this._http.post(this.apiUrl + "savePDQuestions", {"records": saveData}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } private handleError(operation = 'operation', result?: T) { return (error: any): Observable => { return of(result as T); }; } +// common Pd form details get for the Pd Process +getPDFormDetailsWithID(pdID, formID ):Observable { + return this._http.post(this.apiUrl+"getPDFormDetails",{"pd_id":pdID,"pd_form_id" : formID}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // save Pd form details + savePDFormDetailsWithID(saveData: any): Observable { + saveData.fk_createdby = this._aws.getlocale(); + // saveData[0].fk_updatedby = this._aws.getlocale(); + // saveData[0].updatedon = currentdate; + + return this._http.post(this.apiUrl+"savePDFormDetails",{"records":saveData}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // save pd answers + savePDQuestions(saveData: any): Observable { + saveData.createdby = this._aws.getlocale(); + saveData.fk_createdon = currentdate; + // saveData[0].fk_updatedby = this._aws.getlocale(); + // saveData[0].updatedon = currentdate; + + return this._http.post(this.apiUrl+"savePDQuestions",{"records":saveData}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // private handleError(operation = 'operation', result?: T) { + // return (error: any): Observable => { + // return of(result as T); + // }; + // } } diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html index 943abcf9c..350c34216 100644 --- a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html @@ -40,10 +40,14 @@ +

{{master.pd_contact_person}}   {{master.pd_contact_mobileno}} (Lender Contact Details)

+

{{master.product_name}} / {{master.subproduct_name}}

{{master.pd_type_name}} /  {{master.loan_amount}}

{{master.addressline1}},{{master.addressline2}} ,{{master.addressline3}}

-
+

Remarks : {{master.remarks}}

+ + diff --git a/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html b/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html index c6ce4f330..d1e73369d 100644 --- a/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html +++ b/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html @@ -34,54 +34,23 @@ - - + - - +
No Record Found ...
-
- - -
+
diff --git a/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.ts b/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.ts index 5a2243c77..6e3aa81c9 100644 --- a/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.ts +++ b/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.ts @@ -36,14 +36,14 @@ export class EntityListComponent implements OnInit { // pagination variable details length = 50; pageIndex = 0; - pageSize = 10; + pageSize = 10; pageEvent: PageEvent; // data source variable details questionListData = null; public dataLength: number; public dataSource = new MatTableDataSource(); - displayedColumns = ['categroy_name', 'question', 'actions']; + displayedColumns = ['entity_name', 'name','contact', 'actions']; @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; diff --git a/ng6-seed/src/app/template/questions/list/list.component.html b/ng6-seed/src/app/template/questions/list/list.component.html index fd7fe1a92..ac0ed4c45 100644 --- a/ng6-seed/src/app/template/questions/list/list.component.html +++ b/ng6-seed/src/app/template/questions/list/list.component.html @@ -47,11 +47,10 @@ -
- - -
+
- -
- + + + @@ -33,7 +33,7 @@
- {{lender.full_name}} - {{lender.product_name}} - {{lender.customer_segment_name}} ,
+ {{lender.full_name}} - {{lender.product_name}} - {{lender.customer_segment_name}} ,

@@ -45,38 +45,18 @@
- - -
-
- + + + + +
No Record Found ...
-
-
- - -
+ +
+
diff --git a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss index a0999becd..00579aa03 100644 --- a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss +++ b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss @@ -25,8 +25,8 @@ overflow: hidden; // white-space: nowrap; display: -webkit-box; - line-height: 16px; /* fallback */ - max-height: 32px; /* fallback */ + line-height: 15px; /* fallback */ + max-height: 44px; /* fallback */ -webkit-line-clamp: 2; /* number of lines to show */ -webkit-box-orient: vertical; diff --git a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts index c72aaf2e2..34122c711 100644 --- a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts +++ b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts @@ -20,12 +20,13 @@ import { TemplatesAddComponent } from './templates-add/templates-add.component'; }) export class TemplateListComponent implements OnInit, OnDestroy { - public templateList = []; + public templateList: any[] = []; public listView: boolean; public names: string; public noTemplMasterRecrdFound: boolean = false; public search_cid : any; + // pagination variable details length = 50; pageIndex = 0; @@ -55,6 +56,10 @@ export class TemplateListComponent implements OnInit, OnDestroy { this.getTemplateMastersListDetails(); } + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } // get question master list details getTemplateMastersListDetails() { @@ -123,7 +128,10 @@ export class TemplateListComponent implements OnInit, OnDestroy { //Called once, before the instance is destroyed. //Add 'implements OnDestroy' to the class. } - + // padination page event call + pageChange(e) { + console.log(e); + } public m_templateList = { "dataStatus": true, diff --git a/ng6-seed/src/index.html b/ng6-seed/src/index.html index 84a9194ad..1703d3bd1 100644 --- a/ng6-seed/src/index.html +++ b/ng6-seed/src/index.html @@ -135,7 +135,7 @@ .swal2-title, .swal2-header { text-align:left !important; } - .mat-card-subtitle{ + .mat-card, .mat-card-content, .mat-card-subtitle{ color:#000 !important; }