import { Component, OnInit, ViewChild } from '@angular/core';
import { CheckBoxComponent } from '@syncfusion/ej2-angular-buttons';
import { DropDownList } from '@syncfusion/ej2-angular-dropdowns';
import { EditSettingsModel, GridComponent, ToolbarItems } from '@syncfusion/ej2-angular-grids';
import { ClickEventArgs, ItemModel } from '@syncfusion/ej2-angular-navigations';
import { DialogComponent } from '@syncfusion/ej2-angular-popups';
import { MastertrackercreatorService } from '../../service/data/mastertrackercreator.service';
import { ToolServiceService } from '../../service/data/tool-service.service';
import { COMPANY_NAME } from '../result-document/result-document.component';
@Component({
selector: 'app-update-matchup',
templateUrl: './update-matchup.component.html',
styleUrls: ['./update-matchup.component.css']
})
export class UpdateMatchupComponent implements OnInit {
data: any;
masterMatchUpAddendum: any;
masterMatchUpAddendum1: any;
agreementTypeDatas = [];
agreementTypeDatas1 = [];
agreementTypeDatas11 = [];
parentReferenceDropDownData = [];
parentReferenceDropDownData1 = [];
public dpParams: any;
public elem: HTMLElement;
public dropObj: DropDownList
public targetElement: HTMLElement;
public editSettings: EditSettingsModel;
dataTest = ['MSA', 'SOW', 'Amendment', 'Addendum', 'Order', 'Parent']
isDisableGrid = true;
@ViewChild('grid') grid: GridComponent;
@ViewChild('matchupTemplateDialog') matchupTemplateDialog: DialogComponent;
@ViewChild('select')
public reorderObj: CheckBoxComponent;
public mode: string;
public toolbar: ToolbarItems[] | object;
public filterSettings: Object;
public filteringType: Object[] = [
{ Id: 'Menu', type: 'Menu' },
{ Id: 'CheckBox', type: 'Checkbox' },
{ Id: 'Excel', type: 'Excel' }
];
//public checkFields: Object = { text: 'AgreementType', value: 'companyId' };
constructor(private masterTrackerCreatorService: MastertrackercreatorService, private toolService: ToolServiceService) { }
ngOnInit() {
this.getAgreementTypeDataForMasterMatchup();
this.parentRefrenceIdDropDown();
this.filterSettings = { type: 'Menu' };
this.mode = 'CheckBox';
this.editSettings = { allowEditing: true, allowAdding: true, allowDeleting: true };
this.toolbar = ['Search']
}
updateMatchupClick() {
this.matchupTemplateDialog.show();
}
toolbarClick(args: ClickEventArgs): void {
if (args.item.id.endsWith('clear')) {
this.grid.searchSettings.key = '';
(this.grid.element.querySelector(".e-input-group.e-search .e-input") as any).value = "";
}
if (args.item.id.endsWith('Update')) {
}
//Master matchup addendum.
if (args.item.id.endsWith('Update Matchup')) {
this.matchupTemplateDialog.show();
}
}
onRunMatchupClick(event) {
this.isDisableGrid = true;
this.matchupTemplateDialog.hide();
var parentAgreementType = event.form.value.parentAgreementType;
var childAgreementType = event.form.value.childAgreementType;
var parentDocument = event.form.value.parentDocument;
let content = {
"childAgreementType": event.form.value.childAgreementType,
"parentAgreementType": event.form.value.parentAgreementType,
"parentDocument": event.form.value.parentDocument
}
this.data = [];
if (parentDocument == "") {
parentDocument = "no";
}
this.masterTrackerCreatorService.getVerifiedDataBasedOnUserConditions(parentAgreementType, childAgreementType, parentDocument).subscribe(dataList => {
console.log("Data is ");
this.masterMatchUpAddendum1 = dataList;
for (let i = 0; i < this.masterMatchUpAddendum1.length; i++) {
this.masterMatchUpAddendum1[i]["blId"] = this.masterMatchUpAddendum1[i].refrenceId;
}
this.data = this.masterMatchUpAddendum1;
})
}
// Getting Data for parent child mapup filter
getAgreementTypeDataForMasterMatchup() {
this.toolService.GetRelevantAgrrementType().subscribe(response => {
if (response != null) {
this.agreementTypeDatas = response
this.agreementTypeDatas.forEach(data => {
this.agreementTypeDatas1.push(data.agreementType);
console.log(this.agreementTypeDatas1+" data is dropdown")
})
} else {
console.log('Data not fount');
}
});
this.agreementTypeDatas11 = this.agreementTypeDatas1;
}
parentRefrenceIdDropDown() {
for (let i = 0; i <= 10000; i++) {
this.parentReferenceDropDownData1[i] = 999 + i + "";
}
this.parentReferenceDropDownData1.push(" Parent not found");
this.dpParams = {
create: () => {
this.elem = document.createElement("input");
(this.elem as any).name = "parentReferenceId";
return this.elem;
},
read: () => {
return this.dropObj.value;
},
destroy: () => {
this.dropObj.destroy();
},
write: (args: { rowData: object; column: any }) => {
this.dropObj = new DropDownList({
dataSource: this.parentReferenceDropDownData1,
value: args.rowData[args.column.field],
fields: { value: 'parentReferenceId', text: 'parentReferenceId' },
allowFiltering: true,
ignoreAccent: true,
filterBarPlaceholder: 'e.g: 10001'
});
this.dropObj.appendTo(this.elem);
}
};
}
actionBegin(event) {
if (event.requestType == "save") {
let companyName = sessionStorage.getItem(COMPANY_NAME);
let content = {
"transationId": event.data.TransationId,
"refrenceId": event.data.refrenceId,
"companyName": companyName,
"parentRefrenceId": event.data.parentReferenceId
}
this.masterTrackerCreatorService.updateParentRefrenceId(content).subscribe(response => {
if (response == true) {
for (let i = 0; i < this.data.length; i++) {
if (this.data[i].refrenceId === event.data.refrenceId) {
this.data[i].parentReferenceId = event.data.parentReferenceId;
break;
}
}
}
})
}
}
}