| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- 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;
- }
- };
- }
- }
- }
- }
|