| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PRSDesktop
- {
- public class ManufacturingPanelProperties : BaseObject, IGlobalConfigurationSettings
- {
- [ScriptEditor]
- public string PickingListOptimisationScript { get; set; } = "";
- public static string PickingListOptimisationMethodName() => "CustomisePickingList";
- public static string DefaultPickingListOptimisationScript()
- {
- return
- @"using InABox.Core;
- using Comal.Classes;
- using PRSDesktop;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- public class Module
- {
- public List<RequisitionItem>? " + PickingListOptimisationMethodName() + @"(Requisition requisition, List<RequisitionItem> requisitionItems)
- {
- return requisitionItems;
- }
- }";
- }
- }
- public class ManufacturingPanelPropertiesGrid : DynamicItemsListGrid<ManufacturingPanelProperties>
- {
- public ManufacturingPanelPropertiesGrid()
- {
- OnCustomiseEditor += ManufacturingPanelPropertiesGrid_OnCustomiseEditor;
- }
- private void ManufacturingPanelPropertiesGrid_OnCustomiseEditor(IDynamicEditorForm sender, ManufacturingPanelProperties[]? items, DynamicGridColumn column, BaseEditor editor)
- {
- if (items?.FirstOrDefault() is not ManufacturingPanelProperties properties) return;
- if (column.ColumnName == nameof(ManufacturingPanelProperties.PickingListOptimisationScript) && editor is ScriptEditor scriptEditor)
- {
- scriptEditor.Type = ScriptEditorType.TemplateEditor;
- scriptEditor.OnEditorClicked += () =>
- {
- var script = properties.PickingListOptimisationScript.NotWhiteSpaceOr()
- ?? ManufacturingPanelProperties.DefaultPickingListOptimisationScript();
- var editor = new ScriptEditorWindow(script, SyntaxLanguage.CSharp);
- if (editor.ShowDialog() == true)
- {
- sender.SetEditorValue(column.ColumnName, editor.Script);
- properties.PickingListOptimisationScript = editor.Script;
- }
- };
- }
- }
- }
- }
|