Forráskód Böngészése

Fixed errors when editing Spreadsheets
Import BOM from Logikal now attaches spreadsheet to project

frankvandenbos 1 hónapja
szülő
commit
a63fbd9b17

+ 2 - 0
prs.classes/Spreadsheet/EntitySpreadsheet.cs

@@ -25,6 +25,8 @@ namespace Comal.Classes
         [NullEditor]
         public TParentLink Parent { get; set; }
 
+        [RequiredColumn]
+        [NullEditor]
         public byte[] Data { get; set; } = Array.Empty<byte>();
     }
 

+ 2 - 2
prs.desktop/Components/Spreadsheet/SpreadsheetGrid.cs

@@ -33,7 +33,7 @@ namespace PRSDesktop
         protected override void Init()
         {
             base.Init();
-
+            
             ActionColumns.Add(new DynamicImageColumn(EditImage, EditSpreadsheet) { Position = DynamicActionColumnPosition.Start });
 
             HiddenColumns.Add(x => x.Superceded);
@@ -168,7 +168,7 @@ namespace PRSDesktop
         
         protected override void DoAdd(bool openEditorOnDirectEdit = false)
         {
-            if ((Master?.ID ?? Guid.Empty) != Guid.Empty)
+            if ((Master?.ID ?? Guid.Empty) == Guid.Empty)
             {
                 MessageBox.Show($"No {typeof(TEntity).EntityName().Split(".").Last()} selected!");
                 return;

+ 17 - 3
prs.desktop/Panels/Jobs/BillOfMaterials/JobBillOfMaterialsGrid.cs

@@ -186,11 +186,13 @@ namespace PRSDesktop
         {
             materials.Clear();
             activities.Clear();
+            byte[] exceldata = null;
             var import = new LogikalElevationSelection(Master, LogikalElevationSelectionType.BOM, (project, boms) =>
             {
                 var bom = boms.FirstOrDefault();
                 if (bom != null)
                 {
+                    exceldata = bom.ExcelData;
                     if (_logikalSettings.SaveFiles)
                     {
                         File.WriteAllBytes(
@@ -220,14 +222,25 @@ namespace PRSDesktop
                 return false;
             });
             if (import.ShowDialog() == true && (materials.Any() || activities.Any()))
-                CreateBOM(null);
+            {
+                var bom = CreateBOM(null);
+                if (exceldata != null)
+                {
+                    var ss = new JobSpreadsheet();
+                    ss.Code = $"BOM {bom.Number}";
+                    ss.Description = $"Logikal BOM {bom.Number} Imported {DateTime.Now:f}";
+                    ss.Data = exceldata;
+                    ss.Parent.ID = Master.ID;
+                    Client.Save(ss, "Imported From Logikal");
+                }
+            }
         }
 
-        private void CreateBOM(JobScope? scope)
+        private JobBillOfMaterials CreateBOM(JobScope? scope)
         {
+            JobBillOfMaterials bom = new();
             Progress.ShowModal("Creating Bill of Materials", progress =>
             {
-                var bom = new JobBillOfMaterials();
                 bom.Job.CopyFrom(Master);
                 bom.Description = $"BOM Imported {DateTime.Now}";
                 Client.Save(bom, "Imported From Logikal");
@@ -257,6 +270,7 @@ namespace PRSDesktop
             });
 
             Refresh(false,true);
+            return bom;
         }
 
         private void CreateBOMPart(ProductLink product, ProductStyleLink? style, IBaseDimensions dimensions, double quantity, double cost)