| import { FormSOP } from '../../libappsop/formsop'; | 
| import { ListSOP } from '../../libappsop/listsop'; | 
| import { DialogPostponementSpecification, DialogPostponementSpecificationFields } from '../dialogs/dialog.postponementspecification'; | 
|   | 
| export class FormPostponementSettings extends FormSOP { | 
|   public listPostponementSpecifications = new ListPostponementSpecifications(); | 
|   | 
|   public constructor() { | 
|     super('FormPostponementSettings'); | 
|   } | 
| } | 
|   | 
| export class ListPostponementSpecifications extends ListSOP<DialogPostponementSpecification, ListPostponementSpecificationsColumn> { | 
|   public constructor() { | 
|     super('ListPostponementSpecification', new DialogPostponementSpecification()); | 
|   | 
|     // Set primary key column name(s), to display in error message when assert fails | 
|     this.rowPrimaryColumnNames = {'Sales segment': ''}; | 
|   } | 
|   | 
|   public async create(inputValues: DialogPostponementSpecificationFields): Promise<void> { | 
|     const [dlg] = await this.selectContextMenu(listPostponementSpecificationsContextMenuItem.Create); | 
|     await dlg.updateDialogValues(inputValues); | 
|     await dlg.clickOK(); | 
|   } | 
| } | 
|   | 
| export interface ListPostponementSpecificationsColumn { | 
|   'Sales segment'?: string; | 
|   Horizon?: string; | 
|   'Max postponement'?: string; | 
| } | 
|   | 
| const listPostponementSpecificationsContextMenuItem = { | 
|   Create: { ContextMenu: 'listContextMenuPostponementSpecification', Name: 'MenuCreate', Label: 'Create' }, | 
| }; | 
|   | 
| export { listPostponementSpecificationsContextMenuItem as ListPostponementSpecificationsContextMenuItem }; | 
|   | 
| // Step description to re-use in spec file to prevent scriptor re-write each time | 
| const stepPostponementSpecification = { | 
|   create: (fields: any): string => { | 
|     const arr: string[] = []; | 
|     for (const [key, value] of Object.entries(fields)) { | 
|       arr.push(`${key} = "${value}"`); | 
|     } | 
|     return `Create postponement specification with values: ${arr.join(', ')}.`; | 
|   }, | 
| }; | 
|   | 
| export { stepPostponementSpecification as StepPostponementSpecification }; |