Bläddra i källkod

PRS 7.27b
Added Navigation Restrictions to data Entry Panel
Fixed Crashes with other IDynamicEditorPage instances

frogsoftware 1 år sedan
förälder
incheckning
78d6044160

+ 48 - 2
prs.desktop/Panels/DataEntry/DataEntryPanel.xaml.cs

@@ -87,10 +87,40 @@ namespace PRSDesktop
         {
             return new Dictionary<string, object[]>();
         }
+        
+        private void CheckSaved(CancelEventArgs cancel)
+        {
+            var result = MessageBox.Show("You have changes that have not been saved; do you wish to save these changes?", "Save Changes?", MessageBoxButton.YesNoCancel);
+            if (result == MessageBoxResult.Yes)
+            {
+                Editor.SaveItem(cancel);
+                if (!cancel.Cancel)
+                {
+                    MessageBox.Show("Purchase Order saved.");
+                }
+            }
+            else if (result == MessageBoxResult.Cancel)
+            {
+                cancel.Cancel = true;
+            }
+        }
+        private bool CheckSaved()
+        {
+            var cancel = new CancelEventArgs();
+            CheckSaved(cancel);
+            return !cancel.Cancel;
+        }
 
         public void Shutdown(CancelEventArgs? cancel)
         {
-            ScanPanel.Shutdown(cancel);
+            
+            if(bChanged)
+            {
+                CheckSaved(cancel);
+            }
+
+            if (cancel.Cancel == false) 
+                ScanPanel.Shutdown(cancel);
         }
 
         #region Host
@@ -147,8 +177,14 @@ namespace PRSDesktop
 
         private bool EditorChanged = false;
 
+
+        private bool bChanged = true;
+        
         private IDynamicDataGrid UpdateEditor(Type TEntity, BaseObject[]? items)
         {
+            bChanged = false;
+            ScanPanel.ScanGrid.IsEnabled = true;
+            
             DetailBorder.Child = null;
 
             Editor = new EmbeddedDynamicEditorForm();
@@ -169,12 +205,22 @@ namespace PRSDesktop
             {
                 var cancel = new System.ComponentModel.CancelEventArgs();
                 Editor.SaveItem(cancel);
-                if(!cancel.Cancel)
+                if (!cancel.Cancel)
+                {
                     ClearEditor(TEntity);
+                    bChanged = false;
+                    ScanPanel.ScanGrid.IsEnabled = true;                }
             };
             Editor.OnCancel += () =>
             {
                 ClearEditor(TEntity);
+                bChanged = false;
+                ScanPanel.ScanGrid.IsEnabled = true;
+            };
+            Editor.OnChanged += (sender, args) =>
+            {
+                bChanged = true;
+                ScanPanel.ScanGrid.IsEnabled = false;
             };
             
             DetailBorder.Child = Editor;

+ 2 - 2
prs.desktop/Panels/Employees/EmployeePanel.xaml.cs

@@ -210,14 +210,14 @@ namespace PRSDesktop
             DoSaveSettings();
         }
         
-        private void Roles_OnOnChanged(IDynamicGrid sender)
+        private void Roles_OnOnChanged(object sender, EventArgs args)
         {
             Activities.Refresh(false,true);
             Forms.Refresh(false, true);
         }
 
 
-        private void Rosters_OnOnChanged(IDynamicGrid sender)
+        private void Rosters_OnOnChanged(object sender, EventArgs args)
         {
             Employees.Refresh(false, true);
         }

+ 1 - 1
prs.desktop/Panels/Jobs/DocumentSets/JobDocumentSetPanel.xaml.cs

@@ -292,7 +292,7 @@ namespace PRSDesktop
             ShowPreview.Visibility = Visibility.Visible;
         }
 
-        private void Tasks_OnOnChanged(IDynamicGrid sender)
+        private void Tasks_OnOnChanged(object sender, EventArgs args)
         {
             Documents.Refresh();
         }

+ 2 - 2
prs.desktop/Panels/Meeting/MeetingPanel.xaml.cs

@@ -203,7 +203,7 @@ namespace PRSDesktop
             return new Dictionary<string, object?>();
         }
         
-        private void MeetingItemTasks_OnOnChanged(IDynamicGrid sender)
+        private void MeetingItemTasks_OnOnChanged(object sender, EventArgs args)
         {
             MeetingTasks.Refresh(false, true);
         }
@@ -211,7 +211,7 @@ namespace PRSDesktop
 
         #region MeetingItemDocuments
         
-        private void MeetingItemDocuments_OnChanged(IDynamicGrid sender)
+        private void MeetingItemDocuments_OnChanged(object sender, EventArgs args)
         {
             MeetingDocuments.Refresh(false, true);
         }

+ 1 - 1
prs.desktop/Panels/Suppliers/Bills/SupplierBills.cs

@@ -67,7 +67,7 @@ namespace PRSDesktop
         {
             return (row != null) && row.Get<Bill, DateTime>(x => x.Approved).IsEmpty()
                 ? null
-                : post;
+                : tick;
         }
 
         private BitmapImage? Posted_Image(CoreRow? row)

+ 1 - 1
prs.desktop/prsdesktop.iss

@@ -5,7 +5,7 @@
 #pragma verboselevel 9
 
 #define MyAppName "PRS Desktop"
-#define MyAppVersion "7.26"
+#define MyAppVersion "7.27b"
 #define MyAppPublisher "PRS Digital"
 #define MyAppURL "https://www.prs-software.com.au"
 #define MyAppExeName "PRSDesktop.exe"

+ 1 - 1
prs.server/PRSServer.iss

@@ -5,7 +5,7 @@
 #pragma verboselevel 9
 
 #define MyAppName "PRS Server"
-#define MyAppVersion "7.26"
+#define MyAppVersion "7.27b"
 #define MyAppPublisher "PRS Digital"
 #define MyAppURL "https://www.prs-software.com.au"
 #define MyAppExeName "PRSServer.exe"