change material selection

This commit is contained in:
pakintada@gmail.com 2024-01-08 10:37:31 +07:00
parent f9d833e3b7
commit 3698e6e3c0
7 changed files with 49 additions and 28 deletions

View file

@ -34,14 +34,16 @@ export class RecipeToppingsetComponent implements OnInit {
@Input() productCode!: string;
@Output() toppingSetChange = new EventEmitter<unknown[]>();
toppingSetList: ToppingSet[] = [];
allToppings: Topping | undefined = undefined;
allToppingsDefinitions:
| { groupId: string; name: string; members: string; default: string }[]
| null = [{ groupId: '0', name: 'none', members: '0', default: '0' }];
allToppingMembersByGroup: { id: string; members: {id:string, name:string}[] }[] = [];
allToppingMembersByGroup: {
id: string;
members: { id: string; name: string }[];
}[] = [];
private _toppingSetOriginalArray!: ToppingSet[];
@ -70,16 +72,10 @@ export class RecipeToppingsetComponent implements OnInit {
this.productCode
)
.subscribe((data) => {
console.log('getToppingset', data);
this.toppingSetList = data;
// this.toppingForm.patchValue({toppingList: data});
this._toppingSetOriginalArray = data;
data.forEach((toppingSet: ToppingSet) => {
// console.log("getToppingset",toppingSet);
// toppingSet.ListGroupID = toppingSet.ListGroupID.map((id) => id.toString());
this.toppingList.push(
this._formBuilder.group({
isUse: toppingSet.isUse,
@ -90,7 +86,7 @@ export class RecipeToppingsetComponent implements OnInit {
);
});
console.log('controls', this.toppingList.controls);
// console.log('controls', this.toppingList.controls);
// this.toppingSetChange.emit(this.toppingSetList);
});
@ -112,12 +108,12 @@ export class RecipeToppingsetComponent implements OnInit {
groupId: group.groupID,
name: group.name,
members: group.idInGroup,
default: group.idDefault
default: group.idDefault,
});
this.allToppingMembersByGroup.push({
id: group.groupID,
members: this.mapToppingListToMember(group.idInGroup.split(','))
members: this.mapToppingListToMember(group.idInGroup.split(',')),
});
}
});
@ -158,14 +154,13 @@ export class RecipeToppingsetComponent implements OnInit {
newToppingSetList.push(toppingSet);
});
console.log('newToppingList', newToppingSetList);
// console.log('newToppingList', newToppingSetList);
this.toppingSetChange.emit(newToppingSetList as unknown[]);
} else {
console.log('newToppingListNoChange', value.toppingList);
this.toppingSetChange.emit([]);
}
});
}
// match group id to its name
@ -190,13 +185,12 @@ export class RecipeToppingsetComponent implements OnInit {
}
getMembersByGroupId(groupID: string) {
return this.allToppingMembersByGroup
.find((x) => x.id == groupID)
?.members;
return this.allToppingMembersByGroup.find((x) => x.id == groupID)?.members;
}
getGroupIdByIndex(i: number) {
return (this.toppingForm.value.toppingList![i] as any).groupID as string;
// console.log("getGroupId",this.toppingList.value![i])
return (this.toppingList.value![i] as any).groupID as string;
}
mapToppingListToMember = (mm: string[]) =>
@ -210,6 +204,17 @@ export class RecipeToppingsetComponent implements OnInit {
};
});
getDefaultOfGroup(groupID: any) {
this.toppingList.controls.forEach((control) => {
if ((control.value as any).groupID == groupID) {
let newDefault = this.allToppingsDefinitions!.find(
(x) => x.groupId == groupID
)!.default;
// set new defaultid
control.get('defaultIDSelect')?.setValue(newDefault);
}
});
}
compareFunc = (a: any, b: any) => a.toString() === b.toString();
}