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 b37cb7159..82e871951 100755 --- 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,313 +1,203 @@ -
- -

-
{{pageTitle}}
-
- - -
-

- - - - - - - - -
-
- - - - -
- -
-
- - - - -
-
- - - - -
-
- - - - Valid Mobile Number Requried - Valid Mobile Number Requried - -
-
-
-
- - - {{ pm.name }} - - -
-
- - - - -
-
- - - - -
-
-
-
- - - {{ feq.name }} - - -
-
- - - - -
- -
- - - -
-
- -
-
- - - - - -
- -
- +

+
{{pageTitle}}
+
+ +
+

+
+ + + +
Manufacturing Product Details
+
+
+
+
+ +
Raw Material #{{l+1}}
+
+ + + {{ pm.name }} + + + + + + + + +
- -
-
+
+ + + + + + {{ pm.name }} + + + + + +
+
+ + + +
+
- - - - - - - - - - - - - - - +
+
+ + + +
+ +
+
+
+
+ + +
Trading Product Details
+
+
+
+
+ +
Trading Product #{{l+1}}
+
+ + + {{ pm.name }} + + + + + + + + + +
+
+ + + + + + {{ pm.name }} + + + + + +
+
+ + + +
+
+
+
+
+ + + +
+ +
+
+
+
+
+ + +
Service Provider Product Details
+
+
+
+
+ +
Service Provider Product #{{l+1}}
+
+ + + {{ pm.name }} + + + + + + + + + +
+
+ + + + + + {{ pm.name }} + + + + + +
+
+ + + +
+
+
+
+
+ + + +
+ +
+
+
+
+
+ +
Retail Trading Product Details
+
Retail Trading Details Not applicable here !!
+
+ +
- -
-
- - -
-
- - - - - \ No newline at end of file + + +
\ 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 d8fac2c96..dce48115a 100755 --- 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 @@ -30,120 +30,440 @@ import { PdTrigerService } from '../../../../../pd-service/pd-triger.service'; }) export class ClientInfoComponent implements OnInit { - pageTitle: string ="Client Details"; - + pageTitle: string = "Client Details"; + //@Input() pdid: number; - pdid : number; + pdid: string; form_id: number; - - loadDataStatus: boolean=true; - - public _clientQuesFrom: FormGroup; + public _supplierQuesFrom: FormGroup; public submitted = false; - public m_paymentModeType= []; - // public m_paymentModeType= [ - // { - // 'id': "1", - // 'name': 'Immediate Or Advanced Payment' - // }, - // { - // 'id': "2", - // 'name': 'Credit' - // }, - // { - // 'id': "3", - // 'name': 'Combination of Both' - // }, - // ]; - public m_freqOfPurchase= []; - // 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; + public m_paymentModeType = []; + private notifier: NotifierService; + + + public m_manufacturingProducts = [ + { + id: 1, + name: 'Manufac prd 1' + }, { + id: 2, + name: 'Manufac prd 2' + } + ]; + public m_tradingProducts = [ + { + id: 1, + name: 'trading prd 1' + }, { + id: 2, + name: 'trading prd 2' + } + ]; + public m_suplierProducts = [ + { + id: 1, + name: 'service prd 1' + }, { + id: 2, + name: 'service prd 2' + } + ]; constructor( notifier: NotifierService, private _formBuilder: FormBuilder, private pdTrigerService: PdTrigerService, - @Inject(MAT_DIALOG_DATA) public pd_all_details: any) { - this.pdid = this.pd_all_details.pdmaster_details.pd_id; - this.form_id = 2; - this.notifier = notifier; -} -public viewerOptions: any = { - navbar: false, - toolbar: { - zoomIn: 4, - zoomOut: 4, - oneToOne: 4, - reset: 4, - prev: 4, - play: { - show: 4, - size: 'large', - }, - next: 4, - rotateLeft: 4, - rotateRight: 4, - flipHorizontal: 4, - flipVertical: 4, + @Inject(MAT_DIALOG_DATA) public pd_all_details: any) { + this.pdid = this.pd_all_details.pdmaster_details.pd_id; + this.form_id = 2; + this.notifier = notifier; } -}; - ngOnInit() { - this.getM_FreqOfPurchase(); - this.getM_PaymentModeType(); - this.getClientFormDetails(); - } - - -// ================== - - getM_FreqOfPurchase() { - this.pdTrigerService.getAllMasterDatas('FREQUENCY').subscribe( - data => { - this.m_freqOfPurchase = data.records.filter(data => data.isactive == 1); + public viewerOptions: any = { + navbar: false, + toolbar: { + zoomIn: 4, + zoomOut: 4, + oneToOne: 4, + reset: 4, + prev: 4, + play: { + show: 4, + size: 'large', }, - error => { - // this.notifier.notify('warning', 'No Category Records Found.!'); - // this.m_assets_type = "No Category Records Found."; - } - ) + next: 4, + rotateLeft: 4, + rotateRight: 4, + flipHorizontal: 4, + flipVertical: 4, + } + }; + + noRecordsFound: Boolean = false; + ngOnInit() { + + this.pdTrigerService.getTypeofActivityForSuppliedInfoForm(this.pdid).subscribe(data => { + // if(data.dataStatus === undefined){ + let datas = { + "profession_name": "Others", + "type_of_activity": [ + { + "type_of_activity_id": 1, + "name": "Manufacturing Details" + }, + { + "type_of_activity_id": 2, + "name": "Retail trading" + }, + { + "type_of_activity_id": 3, + "name": "Wholesale trading" + }, + { + "type_of_activity_id": 4, + "name": "Service Providers" + } + ] + }; + this.initFormLoadDetails(datas.type_of_activity); + // }else { + // this.notifier.notify('warning', 'No Category Records Found.!'); + // this.noRecordsFound = false; + // } + }, err => { + this.notifier.notify('warning', 'No Category Records Found.!'); + this.noRecordsFound = false; + }) + + // this.getM_FreqOfPurchase(); + this.getM_PaymentModeType(); + // this.getPdSupplierFormDetails(); } - getM_PaymentModeType() { + retaildTradingForm: Boolean = false; + initFormLoadDetails(record) { + this.pdTrigerService.getPDFormDetailsWithID(this.pdid, '2').subscribe( + data => { + if (data.dataStatus) { + let dataForm = data.records; + if (dataForm !== undefined) { + this._supplierQuesFrom = this._formBuilder.group({ + pdid: [this.pdid], + formid: ['1'], + manufacturing_details: this._formBuilder.array([this.manufacturingFormCreation(record)]), + trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + service_provider_details: this._formBuilder.array([this.serviceProviderFormCreation(record)]), + supplier_info_form_remark: [dataForm.supplier_info_form_remark || null] + // wholesale_trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + }); + // Load form details for manufacturing + let arr = record.filter(data => data.type_of_activity_id === 1); + if (arr.length > 0) { + let api_main_raw_materials = Object.keys(dataForm.main_raw_materials).map(function (key) { + return dataForm.main_raw_materials[key]; + }); + this.initManufacturingProductsDetails(api_main_raw_materials); + this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(dataForm.main_raw_materials_total_payments_percent_on_credit || null); + } + + // Load form details for the wholeshale trading details + let arr1 = record.filter(data => data.type_of_activity_id === 3); + if (arr1.length > 0) { + let api_trading_products = Object.keys(dataForm.trading_products).map(function (key) { + return dataForm.trading_products[key]; + }); + this.initTradingProductsDetails(api_trading_products); + this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trading_products_total_payments_percent_on_credit || null); + } + + // Load form details for the service provider prduct details + let arr2 = record.filter(data => data.type_of_activity_id === 4); + if (arr2.length > 0) { + let api_service_provider_products = Object.keys(dataForm.service_products).map(function (key) { + return dataForm.service_products[key]; + }); + this.initServiceProviderProductsDetails(api_service_provider_products); + this._supplierQuesFrom.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(dataForm.service_products_total_payments_percent_on_credit || null); + } + // Load form details for the retail trading details + let arr3 = record.filter(data => data.type_of_activity_id === 2); + if (arr3.length > 0) { + this.retaildTradingForm = true; + } + this.noRecordsFound = true; + } else { + this._supplierQuesFrom = this._formBuilder.group({ + pdid: [this.pdid], + formid: ['1'], + manufacturing_details: this._formBuilder.array([this.manufacturingFormCreation(record)]), + trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + service_provider_details: this._formBuilder.array([this.serviceProviderFormCreation(record)]), + supplier_info_form_remark: [dataForm.supplier_info_form_remark || null] + // wholesale_trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + }); + let arr = record.filter(data => data.type_of_activity_id === 1); + if (arr.length > 0) { + this.initManufacturingProductsDetails(null); + this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null); + } + let arr1 = record.filter(data => data.type_of_activity_id === 3); + if (arr1.length > 0) { + this.initTradingProductsDetails(null); + this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trading_products_total_payments_percent_on_credit || null); + } + let arr2 = record.filter(data => data.type_of_activity_id === 4); + if (arr2.length > 0) { + let api_service_provider_products = Object.keys(dataForm.service_products).map(function (key) { + return dataForm.service_products[key]; + }); + this.initServiceProviderProductsDetails(api_service_provider_products); + this._supplierQuesFrom.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(dataForm.service_products_total_payments_percent_on_credit || null); + } + // Load form details for the retail trading details + let arr3 = record.filter(data => data.type_of_activity_id === 2); + if (arr3.length > 0) { + this.retaildTradingForm = true; + } + this.noRecordsFound = true; + } + } else { + this._supplierQuesFrom = this._formBuilder.group({ + pdid: [this.pdid], + formid: ['1'], + manufacturing_details: this._formBuilder.array([this.manufacturingFormCreation(record)]), + trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + service_provider_details: this._formBuilder.array([this.serviceProviderFormCreation(record)]), + supplier_info_form_remark: [] + // wholesale_trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + }); + let arr = record.filter(data => data.type_of_activity_id === 1); + if (arr.length > 0) { + this.initManufacturingProductsDetails(null); + this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null); + } + let arr1 = record.filter(data => data.type_of_activity_id === 3); + if (arr1.length > 0) { + this.initTradingProductsDetails(null); + this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null); + } + let arr2 = record.filter(data => data.type_of_activity_id === 4); + if (arr2.length > 0) { + this.initServiceProviderProductsDetails(null); + this._supplierQuesFrom.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null); + } + // Load form details for the retail trading details + let arr3 = record.filter(data => data.type_of_activity_id === 2); + if (arr3.length > 0) { + this.retaildTradingForm = true; + } + this.noRecordsFound = true; + } + }, err => { + + } + ); + } + + + manufacturingForm: Boolean = false; + manufacturingFormCreation(val) { + let arr = val.filter(data => data.type_of_activity_id === 1); + if (arr.length > 0) { + this.manufacturingForm = true; + return this._formBuilder.group({ + main_raw_materials: this._formBuilder.array([]), + main_raw_materials_total_payments_percent_on_credit: [] + }) + // } + } else { + return; + } + } + + tradingForm: Boolean = false; + tradingFormCreation(val) { + let arr = val.filter(data => data.type_of_activity_id === 3); + if (arr.length > 0) { + this.tradingForm = true; + return this._formBuilder.group({ + trading_products: this._formBuilder.array([]), + trading_products_total_payments_percent_on_credit: [] + }); + } else { + return; + } + } + + serviceProviderForm: Boolean = false; + serviceProviderFormCreation(val) { + let arr = val.filter(data => data.type_of_activity_id === 4); + if (arr.length > 0) { + this.serviceProviderForm = true; + return this._formBuilder.group({ + service_products: this._formBuilder.array([]), + service_products_total_payments_percent_on_credit: [] + }); + } else { + return; + } + } + + initManufacturingProductsDetails(datas) { + const control = this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials']; + if (datas === null) { + control.push(this.initManufacturingProducts(null)); + } else { + for (let val of datas) { + control.push(this.initManufacturingProducts(val)); + } + } + } + + initManufacturingProducts(records) { + if (records === null) { + return this._formBuilder.group({ + manufacturing_product_name: [''], + manufacturing_client_name: [''], + manufacturing_contact_person_name: [''], + manufacturing_contact_person_mobile_number: [''], + manufacturing_payment_type: [''], + manufacturing_credit_days: [''], + }) + } else { + return this._formBuilder.group({ + manufacturing_product_name: [records.manufacturing_raw_material_name || null], + manufacturing_client_name: [records.manufacturing_client_name || null], + manufacturing_contact_person_name: [records.manufacturing_contact_person_name || null], + manufacturing_contact_person_mobile_number: [records.manufacturing_contact_person_mobile_number || null], + manufacturing_payment_type: [records.manufacturing_payment_type || null], + manufacturing_credit_days: [records.manufacturing_credit_days || null], + }) + } + } + + initTradingProductsDetails(datas) { + const control = this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products']; + if (datas === null) { + control.push(this.initTradingProducts(null)); + } else { + for (let val of datas) { + control.push(this.initTradingProducts(val)); + } + } + } + + initTradingProducts(records) { + if (records === null) { + return this._formBuilder.group({ + trade_product_name: [''], + trade_client_name: [''], + trade_product_contact_person_name: [''], + trade_product_contact_person_mobile_number: [''], + trade_product_payment_type: [''], + trade_product_frequency_of_purchase: [''], + trade_product_credit_days: [''], + }) + } else { + return this._formBuilder.group({ + trade_product_name: [records.trade_product_name], + trade_client_name: [records.trade_client_name], + trade_product_contact_person_name: [records.trade_product_contact_person_name], + trade_product_contact_person_mobile_number: [records.trade_product_contact_person_mobile_number], + trade_product_payment_type: [records.trade_product_payment_type], + trade_product_frequency_of_purchase: [records.trade_product_frequency_of_purchase], + trade_product_credit_days: [records.trade_product_credit_days], + }) + } + } + + initServiceProviderProductsDetails(datas) { + const control = this._supplierQuesFrom.controls['service_provider_details']['controls'][0].controls['service_products']; + if (datas === null) { + control.push(this.initServiceProviderProducts(null)); + } else { + for (let val of datas) { + control.push(this.initServiceProviderProducts(val)); + } + } + } + + initServiceProviderProducts(records) { + if (records === null) { + return this._formBuilder.group({ + service_provider_product_name: [''], + service_provider_client_name: [''], + service_provider_product_contact_person_name: [''], + service_provider_product_contact_person_mobile_number: [''], + service_provider_product_payment_type: [''], + service_provider_product_frequency_of_purchase: [''], + service_provider_product_credit_days: [''], + }) + } else { + return this._formBuilder.group({ + service_provider_product_name: [records.service_provider_product_name], + service_provider_client_name: [records.service_provider_client_name], + service_provider_product_contact_person_name: [records.service_provider_product_contact_person_name], + service_provider_product_contact_person_mobile_number: [records.service_provider_product_contact_person_mobile_number], + service_provider_product_payment_type: [records.service_provider_product_payment_type], + service_provider_product_frequency_of_purchase: [records.service_provider_product_frequency_of_purchase], + service_provider_product_credit_days: [records.service_provider_product_credit_days], + }) + } + } + + addMoreRawMaterials(e): void { + // e.stropPropagation(); + const control = this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials']; + // console.log(control); + control.push(this.initManufacturingProducts(null)); + } + + removeRawMaterials(inx): void { + const control = this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials']; + control.removeAt(inx); + } + + addMoretradeProduct(e): void { + // e.stropPropagation(); + const control = this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products']; + // console.log(control); + control.push(this.initTradingProducts(null)); + } + + removeTradingProduct(inx): void { + const control = this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products']; + control.removeAt(inx); + } + + addMoreServiceProduct(e): void { + // e.stropPropagation(); + const control = this._supplierQuesFrom.controls['service_provider_details']['controls'][0].controls['service_products']; + // console.log(control); + control.push(this.initServiceProviderProducts(null)); + } + + removeServiceProduct(inx): void { + const control = this._supplierQuesFrom.controls['service_provider_details']['controls'][0].controls['service_products']; + control.removeAt(inx); + } + + + // ================== + + //getM_FreqOfPurchase() { + // this.pdTrigerService.getAllMasterDatas('FREQUENCY').subscribe( + // data => { + // this.m_freqOfPurchase = data.records.filter(data => data.isactive == 1); + // }, + // error => { + // this.notifier.notify('warning', 'No Category Records Found.!'); + // this.m_assets_type = "No Category Records Found."; + /// } + // ) + // } + + getM_PaymentModeType() { this.pdTrigerService.getAllMasterDatas('PAYMENTMODE').subscribe( data => { this.m_paymentModeType = data.records.filter(data => data.isactive == 1); @@ -156,147 +476,35 @@ public viewerOptions: any = { } -// ================== + // ================== -apiLoadFinish: boolean = false; - getClientFormDetails() { - this.pdTrigerService.getPDFormDetailsWithID(this.pdid, '2').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._clientQuesFrom = this._formBuilder.group({ - pdid: [this.pdid], - formid: ['2'], - client_details: this._formBuilder.array([ - // this.initDetails(), - ]) - }); - this.addClientDetailsWithData(value.client_details); - } else { - this._clientQuesFrom = this._formBuilder.group({ - pdid: [this.pdid], - formid: ['2'], - client_details: this._formBuilder.array([ - this.initDetails(), - ]) - }); - } - } - - // convenience getter for easy access to form fields - get f() { return this._clientQuesFrom.controls; } - - // Dynamic Form field creation Functionality : START ===> - initDetails() { - return this._formBuilder.group({ - client_name: ['', Validators.compose([Validators.required])], - contact_person: ['', Validators.compose([Validators.required])], - mobile_number: ['', Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])], - 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({ - client_name: [data.client_name, Validators.compose([Validators.required])], - contact_person: [data.contact_person, Validators.compose([Validators.required])], - mobile_number: [data.mobile_number, Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])], - 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 || ''] - }); - } - - addClientDetailsWithData(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 = { - client_name: val.client_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._clientQuesFrom.controls['client_details']; - control.push(this.initDetailsWithdata(vals)); - } - } - } - - addSupplierDetails(e) { - const control = this._clientQuesFrom.controls['client_details']; - control.push(this.initDetails()); - } - removeLanguage(i: number) { - const control = this._clientQuesFrom.controls['client_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._clientQuesFrom.invalid) { + if (this._supplierQuesFrom.invalid) { return; } else { - var answerFormValues = this._clientQuesFrom.value; + var answerFormValues = this._supplierQuesFrom.value; - // To Remove The "Null" With Key also + //To Remove The "Null" With Key also Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]); - + console.log(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.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.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.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); // this.errorMessage = "Something Wents Wrong Try Again !"; // this.dialogRef.close(); }); @@ -309,8 +517,9 @@ var result = Object.keys(supp_data).map(function(key) { onReset() { // this._addQuesFrom.reset(); } - /** On Key Press Event For Mobile Number */ - keyPress(event: any) { + + /** On Key Press Event For Mobile Number */ + keyPress(event: any) { const pattern = /[0-9]/; let inputChar = String.fromCharCode(event.charCode); 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 172160c01..bea4ae748 100755 --- 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,229 +1,134 @@ -
-
- -

-
{{pageTitle}}
-
- -
-

- - - - - -
-
- - - - - You must Include Raw Material Details. - - - -
-
-
-
- - - -
- -
-
- - - - -
-
- - - - -
-
- - - - Valid Mobile Number Requried - Vaild Mobile Number Requried - - -
-
-
-
- - - {{ pm.name }} - - -
-
- - - -
-
- - - -
-
-
- - - - - - -
-
-
- - - -
-
+

+
{{pageTitle}}
+
+ +
+

+
+ + + +
Manufacturing Product Details
+
+
+
+
+ +
Raw Material #{{l+1}}
+
+ + + + + + + + + +
+
+ + + + + + {{ pm.name }} + + + + + +
+
+ + + +
+
- -
- -
-
- - - - - - - - - - - +
+
+ + + +
+ +
+
+
+
+
+ +
Trading Product Details
+
+
+
+
+ +
Trading Product #{{l+1}}
+
+ + + + + + + + + +
+
+ + + + + + {{ pm.name }} + + + + + +
+
+ + + +
+
+
+
+
+ + + +
+ +
+
+
+
+
+ +
Service Provider Product Details
+
Service Provider Details Not applicable here !!
+
+
+
- -
-
- - - -
-
- - -
- \ No newline at end of file + + Remarks + + +
+
+ +
+ + +
\ 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 a56a76238..f25701393 100755 --- 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 @@ -3,7 +3,7 @@ import { Component, OnInit, Inject, - Output,Input + Output, Input } from '@angular/core'; import { @@ -31,69 +31,313 @@ import { PdTrigerService } from '../../../../../pd-service/pd-triger.service'; }) export class SupplierInfoComponent implements OnInit { - - pageTitle: string ="Supplier Details"; - + + pageTitle: string = "Supplier Details"; + //@Input() pdid: number; - pdid : string; - form_id:number; + pdid: string; + form_id: number; public _supplierQuesFrom: FormGroup; public submitted = false; - public m_paymentModeType= []; + public m_paymentModeType = []; private notifier: NotifierService; constructor( - notifier: NotifierService, - private _formBuilder: FormBuilder, - private pdTrigerService: PdTrigerService, - @Inject(MAT_DIALOG_DATA) public pd_all_details: any) { - this.pdid = this.pd_all_details.pdmaster_details.pd_id; - this.form_id = 1; - this.notifier = notifier; + notifier: NotifierService, + private _formBuilder: FormBuilder, + private pdTrigerService: PdTrigerService, + @Inject(MAT_DIALOG_DATA) public pd_all_details: any) { + this.pdid = this.pd_all_details.pdmaster_details.pd_id; + this.form_id = 1; + this.notifier = notifier; } public viewerOptions: any = { - navbar: false, - toolbar: { - zoomIn: 4, - zoomOut: 4, - oneToOne: 4, - reset: 4, - prev: 4, - play: { - show: 4, - size: 'large', - }, - next: 4, - rotateLeft: 4, - rotateRight: 4, - flipHorizontal: 4, - flipVertical: 4, - } -}; + navbar: false, + toolbar: { + zoomIn: 4, + zoomOut: 4, + oneToOne: 4, + reset: 4, + prev: 4, + play: { + show: 4, + size: 'large', + }, + next: 4, + rotateLeft: 4, + rotateRight: 4, + flipHorizontal: 4, + flipVertical: 4, + } + }; + noRecordsFound: Boolean = false; ngOnInit() { - // this.getM_FreqOfPurchase(); + + this.pdTrigerService.getTypeofActivityForSuppliedInfoForm(this.pdid).subscribe(data => { + // if(data.dataStatus === undefined){ + let datas = { + "profession_name": "Others", + "type_of_activity": [ + { + "type_of_activity_id": 1, + "name": "Manufacturing Details" + }, + { + "type_of_activity_id": 2, + "name": "Retail trading" + }, + { + "type_of_activity_id": 4, + "name": "Service Provider" + } + ] + }; + this.initFormLoadDetails(datas.type_of_activity); + // }else { + // this.notifier.notify('warning', 'No Category Records Found.!'); + // this.noRecordsFound = false; + // } + }, err => { + this.notifier.notify('warning', 'No Category Records Found.!'); + this.noRecordsFound = false; + }) + + // this.getM_FreqOfPurchase(); this.getM_PaymentModeType(); - this.getPdSupplierFormDetails(); + // this.getPdSupplierFormDetails(); } -// ================== + + serviceProviderForm: Boolean = false; + initFormLoadDetails(record) { + this.pdTrigerService.getPDFormDetailsWithID(this.pdid, '1').subscribe( + data => { + if(data.dataStatus){ + let dataForm = data.records; + if(dataForm !== undefined) { + this._supplierQuesFrom = this._formBuilder.group({ + pdid: [this.pdid], + formid: ['1'], + manufacturing_details: this._formBuilder.array([this.manufacturingFormCreation(record)]), + trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + supplier_info_form_remark: [dataForm.supplier_info_form_remark || null] + // wholesale_trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + }); + let arr = record.filter(data => data.type_of_activity_id === 1); + if(arr.length > 0) { + let api_main_raw_materials = Object.keys(dataForm.main_raw_materials).map(function (key) { + return dataForm.main_raw_materials[key]; + }); + this.initManufacturingProductsDetails(api_main_raw_materials); + this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(dataForm.main_raw_materials_total_payments_percent_on_credit || null); + } + let arr1 = record.filter(data => data.type_of_activity_id === 2 || 3); + if(arr1.length > 0) { + let api_trading_products = Object.keys(dataForm.trading_products).map(function (key) { + return dataForm.trading_products[key]; + }); + this.initTradingProductsDetails(api_trading_products); + this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trading_products_total_payments_percent_on_credit || null); + } + this.noRecordsFound = true; + } else { + this._supplierQuesFrom = this._formBuilder.group({ + pdid: [this.pdid], + formid: ['1'], + manufacturing_details: this._formBuilder.array([this.manufacturingFormCreation(record)]), + trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + supplier_info_form_remark: [dataForm.supplier_info_form_remark || null] + // wholesale_trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + }); + let arr = record.filter(data => data.type_of_activity_id === 1); + if(arr.length > 0) { + this.initManufacturingProductsDetails(null); + this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null); + } + let arr1 = record.filter(data => data.type_of_activity_id === 2 || 3); + if(arr1.length > 0) { + this.initTradingProductsDetails(null); + this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trading_products_total_payments_percent_on_credit || null); + } + this.noRecordsFound = true; + } + let arr2 = record.filter(data => data.type_of_activity_id === 4); + if(arr2.length > 0) { + this.serviceProviderForm = true; + } + } else { + this._supplierQuesFrom = this._formBuilder.group({ + pdid: [this.pdid], + formid: ['1'], + manufacturing_details: this._formBuilder.array([this.manufacturingFormCreation(record)]), + trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + supplier_info_form_remark: [] + // wholesale_trade_details: this._formBuilder.array([this.tradingFormCreation(record)]), + }); + let arr = record.filter(data => data.type_of_activity_id === 1); + if(arr.length > 0) { + this.initManufacturingProductsDetails(null); + this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null); + } + let arr1 = record.filter(data => data.type_of_activity_id === 2 || 3); + if(arr1.length > 0) { + this.initTradingProductsDetails(null); + this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null); + } + let arr2 = record.filter(data => data.type_of_activity_id === 4); + if(arr2.length > 0) { + this.serviceProviderForm = true; + } + this.noRecordsFound = true; + } + }, err => { + + } + ); + } + + + manufacturingForm: Boolean = false; + manufacturingFormCreation(val) { + let arr = val.filter(data => data.type_of_activity_id === 1); + if (arr.length > 0) { + this.manufacturingForm = true; + return this._formBuilder.group({ + main_raw_materials: this._formBuilder.array([]), + main_raw_materials_total_payments_percent_on_credit: [] + }) + // } + } else { + return; + } + } + + tradingForm: Boolean = false; + tradingFormCreation(val) { + let arr = val.filter(data => data.type_of_activity_id === 2 || 3); + if (arr.length > 0) { + this.tradingForm = true; + return this._formBuilder.group({ + trading_products: this._formBuilder.array([]), + trading_products_total_payments_percent_on_credit: [] + }); + } else { + return; + } + } + + initManufacturingProductsDetails(datas) { + const control = this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials']; + if(datas === null){ + control.push(this.initManufacturingProducts(null)); + } else { + for (let val of datas) { + control.push(this.initManufacturingProducts(val)); + } + } + } + + initManufacturingProducts(records) { + if(records === null) { + return this._formBuilder.group({ + manufacturing_raw_material_name: [''], + manufacturing_supplier_name: [''], + manufacturing_contact_person_name: [''], + manufacturing_contact_person_mobile_number: [''], + manufacturing_payment_type: [''], + manufacturing_credit_days: [''], + manufacturing_frequency_of_purchase: [''], + }) + } else { + return this._formBuilder.group({ + manufacturing_raw_material_name: [records.manufacturing_raw_material_name || null], + manufacturing_supplier_name: [records.manufacturing_supplier_name || null], + manufacturing_contact_person_name: [records.manufacturing_contact_person_name || null], + manufacturing_contact_person_mobile_number: [records.manufacturing_contact_person_mobile_number || null], + manufacturing_payment_type: [records.manufacturing_payment_type || null], + manufacturing_credit_days: [records.manufacturing_credit_days || null], + manufacturing_frequency_of_purchase: [records.manufacturing_frequency_of_purchase || null], + }) + } + } + + initTradingProductsDetails(datas) { + const control = this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products']; + if(datas === null){ + control.push(this.initTradingProducts(null)); + } else { + for (let val of datas) { + control.push(this.initTradingProducts(val)); + } + } + } + + initTradingProducts(records) { + if(records === null) { + return this._formBuilder.group({ + trade_product_name: [''], + trade_supplier_name: [''], + trade_product_contact_person_name: [''], + trade_product_contact_person_mobile_number: [''], + trade_product_payment_type: [''], + trade_product_frequency_of_purchase: [''], + trade_product_credit_days: [''], + }) + } else { + return this._formBuilder.group({ + trade_product_name: [records.trade_product_name], + trade_supplier_name: [records.trade_supplier_name], + trade_product_contact_person_name: [records.trade_product_contact_person_name], + trade_product_contact_person_mobile_number: [records.trade_product_contact_person_mobile_number], + trade_product_payment_type: [records.trade_product_payment_type], + trade_product_frequency_of_purchase: [records.trade_product_frequency_of_purchase], + trade_product_credit_days: [records.trade_product_credit_days], + }) + } + } + + addMoreRawMaterials(e): void { + // e.stropPropagation(); + const control = this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials']; + // console.log(control); + control.push(this.initManufacturingProducts(null)); + } + + removeRawMaterials(inx): void { + const control = this._supplierQuesFrom.controls['manufacturing_details']['controls'][0].controls['main_raw_materials']; + control.removeAt(inx); + } + + addMoretradeProduct(e): void { + // e.stropPropagation(); + const control = this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products']; + // console.log(control); + control.push(this.initTradingProducts(null)); + } + + removeTradingProduct(inx): void { + const control = this._supplierQuesFrom.controls['trade_details']['controls'][0].controls['trading_products']; + control.removeAt(inx); + } + + // ================== //getM_FreqOfPurchase() { - // this.pdTrigerService.getAllMasterDatas('FREQUENCY').subscribe( - // data => { - // this.m_freqOfPurchase = data.records.filter(data => data.isactive == 1); - // }, - // error => { - // this.notifier.notify('warning', 'No Category Records Found.!'); - // this.m_assets_type = "No Category Records Found."; - /// } - // ) - // } + // this.pdTrigerService.getAllMasterDatas('FREQUENCY').subscribe( + // data => { + // this.m_freqOfPurchase = data.records.filter(data => data.isactive == 1); + // }, + // error => { + // this.notifier.notify('warning', 'No Category Records Found.!'); + // this.m_assets_type = "No Category Records Found."; + /// } + // ) + // } - getM_PaymentModeType() { + getM_PaymentModeType() { this.pdTrigerService.getAllMasterDatas('PAYMENTMODE').subscribe( data => { this.m_paymentModeType = data.records.filter(data => data.isactive == 1); @@ -106,123 +350,8 @@ export class SupplierInfoComponent implements OnInit { } -// ================== + // ================== -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, Validators.minLength(10), Validators.maxLength(10)])], - 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, Validators.minLength(10), Validators.maxLength(10)])], - 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; @@ -234,7 +363,7 @@ apiLoadFinish: boolean = false; //To Remove The "Null" With Key also Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]); - // alert(JSON.stringify(answerFormValues)); + console.log(JSON.stringify(answerFormValues)); //Add BRANCH data with help Service File this.pdTrigerService.savePDFormDetailsWithID(answerFormValues).subscribe( dataresult => { @@ -253,8 +382,8 @@ apiLoadFinish: boolean = false; // this.errorMessage = "Something Wents Wrong Try Again !"; // this.dialogRef.close(); }); - //After Saving the BRANCH data then popup close - // this.dialogRef.close(); + // //After Saving the BRANCH data then popup close + // // this.dialogRef.close(); } } 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 f281ec28c..fb7e5aa53 100755 --- 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 @@ -282,14 +282,14 @@ getPDFormDetailsWithID(pdID, formID ):Observable { // get Pd Final report Question Answer - getPdFinalReportDetails(pdId: number) { + getPdFinalReportDetails(pdId: number): Observable { return this._http.post(this.apiUrl+"getFinalPDReportQuestions",{"pd_id":pdId}) .pipe( catchError(this.handleError('operation', [])) ) } - getPDReportFinalDocument(pdId: any){ + getPDReportFinalDocument(pdId: any): Observable{ pdId.fk_createdby = this._aws.getlocale(); return this._http.post(this.apiUrl+"generatePDReport",{"records": pdId}) .pipe( @@ -297,28 +297,28 @@ getPDFormDetailsWithID(pdID, formID ):Observable { ) } - getActualPDReportModelTemplate(pdId: any) { + getActualPDReportModelTemplate(pdId: any) : Observable{ return this._http.post(this.apiUrl+"getLatestPDReportBlob ",{"records":{"pd_id":pdId}}) .pipe( catchError(this.handleError('operation', [])) ) } - updatePDReportDetails(records: any){ + updatePDReportDetails(records: any): Observable{ return this._http.post(this.apiUrl+"saveNewVersionOfPDReport ",{"records": records}) .pipe( catchError(this.handleError('operation', [])) ) } - getPdDocVersionList(pdId: number){ + getPdDocVersionList(pdId: number): Observable{ return this._http.post(this.apiUrl+"getListOfPDReportVersions",{"records":{"pd_id":pdId}}) .pipe( catchError(this.handleError('operation', [])) ) } - swapOlderPDReportToLatest(pdId: any){ + swapOlderPDReportToLatest(pdId: any): Observable{ pdId.fk_createdby = this._aws.getlocale(); alert(JSON.stringify(pdId)); return this._http.post(this.apiUrl+"swapOlderPDReportToLatest",{"records": pdId}) @@ -327,6 +327,12 @@ getPDFormDetailsWithID(pdID, formID ):Observable { ) } +getTypeofActivityForSuppliedInfoForm(pd_id: any): Observable{ + return this._http.post(this.apiUrl+"getTypeOfActivetyFromBusinessForm", {"records": { "pd_id" : pd_id }}) + .pipe( + catchError(this.handleError('operation', [])) + ) + }