2 Commits 664992b570 ... 94a7b44699

Author SHA1 Message Date
  Nick-PRSDigital@bitbucket.org 94a7b44699 DESKTOP - additions to manufacturing screen for group functionality and visibility 1 year ago
  Nick-PRSDigital@bitbucket.org b5b5061b8c PRS MOBILE/CLASSES - added security descriptors for visibility of each module 1 year ago

+ 11 - 0
prs.classes/LicenseTokens.cs

@@ -102,4 +102,15 @@ namespace Comal.Classes
     public class MeetingLicence : LicenseToken
     {
     }
+
+    [Caption("Mobile Access")]
+    public class MobileAccessLicence : LicenseToken
+    { 
+    }
+
+    [Caption("Desktop Access")]
+    public class DesktopAccessLicence : LicenseToken
+    {
+    }
+
 }

+ 12 - 0
prs.classes/SecurityDescriptors/Desktop_Access.cs

@@ -0,0 +1,12 @@
+using InABox.Core;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Comal.Classes.SecurityDescriptors
+{
+    [Caption("View Desktop Deliveries Module")]
+    public class ViewDesktopDeliveriesModule : DisabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+}

+ 68 - 0
prs.classes/SecurityDescriptors/Mobile_Access.cs

@@ -0,0 +1,68 @@
+using InABox.Core;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace Comal.Classes.SecurityDescriptors
+{
+    [Caption("View Mobile Assignments Module")]
+    public class ViewMobileAssignmentsModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    {
+    }
+
+    [Caption("View Mobile Deliveries Module")]
+    public class ViewMobileDeliveriesModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    {
+    }
+
+    [Caption("View Mobile Forms Module")]
+    public class ViewMobileFormsModule: DisabledSecurityDescriptor<MobileAccessLicence> 
+    {
+    }
+
+    [Caption("View Mobile Equipment Module")]
+    public class ViewMobileEquipmentModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile In Out Module")]
+    public class ViewMobileInOutModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Manufacturing Module")]
+    public class ViewMobileManufacturingModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Meetings Module")]
+    public class ViewMobileMeetingsModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Products Module")]
+    public class ViewMobileProductsModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Purchase Orders Module")]
+    public class ViewMobilePurchaseOrdersModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Store Requis Module")]
+    public class ViewMobileStoreRequisModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile My Tasks Module")]
+    public class ViewMobileMyTasksModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Warehousing Module")]
+    public class ViewMobileWarehousingModule : DisabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+}

+ 2 - 0
prs.desktop/Panels/Factory/FactoryPanel.xaml.cs

@@ -2156,6 +2156,7 @@ namespace PRSDesktop
             var distributed = packet.Get<ManufacturingPacket, bool>(c => c.Distributed);
             var packetsection = packet.Get<ManufacturingPacket, string>(c => c.StageLink.Section);
             var groupid = packet.Get<ManufacturingPacket, Guid>(c => c.SetoutLink.Group.ID);
+            var groupname = packet.Get<ManufacturingPacket, string>(c => c.SetoutLink.Group.Name);
 
             model.TemplateID = packet.Get<ManufacturingPacket, Guid>(c => c.ManufacturingTemplateLink.ID);
 
@@ -2325,6 +2326,7 @@ namespace PRSDesktop
                         .Add(x => x.SetoutLink.JobLink.JobNumber)
                         .Add(x => x.SetoutLink.JobLink.Name)
                         .Add(x => x.SetoutLink.Group.ID)
+                        .Add(x => x.SetoutLink.Group.Name)
                         .Add(x => x.DueDate)
                         .Add(x => x.SetoutLink.Location)
                         //.Add(x => x.SetoutLink.Reference)

+ 1 - 0
prs.desktop/Panels/Manufacturing/ManufacturingAllocationPanel.xaml.cs

@@ -219,6 +219,7 @@ namespace PRSDesktop
                     ? !sectionid.Equals(section) ? string.IsNullOrEmpty(pktsection) ? "" : pktsection.ToUpper().Trim() : "DISTRIB"
                     : "";
                 model.GroupID = row.Get<ManufacturingPacket, Guid>(c => c.SetoutLink.Group.ID);
+                model.GroupName = row.Get<ManufacturingPacket, string>(c => c.SetoutLink.Group.Name);
 
                 Kanbans.Add(model);
             }

+ 30 - 0
prs.desktop/Panels/Manufacturing/ManufacturingKanban.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Windows;
 using System.Windows.Media.Imaging;
 using PropertyChanged;
 using Syncfusion.UI.Xaml.Kanban;
@@ -30,6 +31,35 @@ namespace PRSDesktop
         public BitmapImage IssuesImage { get; set; }
         public Guid TemplateID { get; set; }
         public Guid GroupID { get; set; }
+
+        #region Group Display Properties
+        //Automatically displays/hides the group section of a displayed packet, and sorts out things like the corner radius
+        public CornerRadius MainRadius { get; set; }
+        public CornerRadius OrderRadius { get; set; }
+        public Visibility GroupVisibility { get; set; }
+
+        private string groupname;
+        public string GroupName
+        {
+            get => groupname;
+            set
+            {
+                groupname = value;
+                if (string.IsNullOrWhiteSpace(groupname))
+                {
+                    GroupVisibility = Visibility.Collapsed;
+                    OrderRadius = new CornerRadius(5, 0, 0, 5);
+                    MainRadius = new CornerRadius(0, 5, 5, 0);
+                }
+                else
+                {
+                    GroupVisibility = Visibility.Visible;
+                    OrderRadius = new CornerRadius(5, 0, 0, 0);
+                    MainRadius = new CornerRadius(0, 5, 0, 0);
+                }
+            }
+        }
+        #endregion
     }
 }
 

+ 1 - 0
prs.desktop/Panels/Manufacturing/ManufacturingPanel.xaml.cs

@@ -726,6 +726,7 @@ namespace PRSDesktop
             columns.Add(x => x.SetoutLink.Location);
             columns.Add(x => x.SetoutLink.JobLink.ID);
             columns.Add(x => x.SetoutLink.Group.ID);
+            columns.Add(x => x.SetoutLink.Group.Name);
 
             columns.Add(x => x.OrderItem.ID);
             //columns.Add(x => x.OrderItem.ReceivedDate);

+ 16 - 3
prs.desktop/Panels/Manufacturing/ManufacturingPanelColumn.xaml

@@ -18,12 +18,16 @@
 
         <DataTemplate x:Key="FullManufacturingPanel">
             <Grid Margin="0,1,0,1">
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="auto"/>
+                    <RowDefinition Height="auto"/>
+                </Grid.RowDefinitions>
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="Auto" />
                     <ColumnDefinition Width="*" />
                 </Grid.ColumnDefinitions>
 
-                <Border Grid.Column="0" BorderBrush="Gray" BorderThickness="0.75,0.75,0,0.75" CornerRadius="5,0,0,5"
+                <Border Grid.Column="0" Grid.Row="0" BorderBrush="Gray" BorderThickness="0.75,0.75,0,0.75" CornerRadius="{Binding OrderRadius}"
                         Background="{Binding OrderColor}" Tag="{Binding}"
                         MouseLeftButtonDown="Border_MouseLeftButtonDown" ToolTip="{Binding Issues}">
                     <DockPanel>
@@ -40,7 +44,7 @@
                     </DockPanel>
                 </Border>
 
-                <Border Grid.Column="1" BorderBrush="Gray" BorderThickness="0,0.75,0.75,0.75" CornerRadius="0,5,5,0"
+                <Border Grid.Column="1" Grid.Row="0" BorderBrush="Gray" BorderThickness="0,0.75,0.75,0.75" CornerRadius="{Binding MainRadius}"
                         Background="{Binding ColorKey}" Tag="{Binding}"
                         MouseLeftButtonDown="Border_MouseLeftButtonDown" ToolTip="{Binding Issues}">
                     <Grid Margin="3">
@@ -101,6 +105,15 @@
                     </Grid>
                 </Border>
 
+                <Border  Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="Gray" BorderThickness="0.75,0,0.75,0.75" CornerRadius="0,0,5,5"
+                        Background="Yellow" Tag="{Binding}" Visibility="{Binding GroupVisibility}">
+                    <DockPanel>
+                        <Label DockPanel.Dock="Top" Content="{Binding GroupName}" HorizontalContentAlignment="Left" FontWeight="DemiBold"
+                               Margin="3, -3, -3, -3">
+                        </Label>
+                    </DockPanel>
+                </Border>
+
                 <Grid.ContextMenu>
                     <ContextMenu x:Name="PacketMenu" Opened="PacketMenu_Opened" Tag="{Binding}">
 
@@ -109,7 +122,7 @@
                         <Separator x:Name="ViewSetoutSeparator" />
 
                         <MenuItem x:Name="IssueSetout" Header="Issue Item" Click="IssueSetout_Click" Tag="{Binding}" />
-                        <MenuItem x:Name="IssueGroup" Header="Issue Cutting Group" Click="IssueGroup_Click" Tag="{Binding}" />
+                        <MenuItem x:Name="IssueGroup" Header="Issue Optimization Group" Click="IssueGroup_Click" Tag="{Binding}" />
                         <MenuItem x:Name="ProgressSetout" Header="Progress Item" Click="ProgressSetout_Click"
                                   Tag="{Binding}" />
                         <MenuItem x:Name="SplitSetout" Header="Split Manufacturing" Click="SplitSetout_Click"

+ 2 - 0
prs.desktop/Panels/Manufacturing/ManufacturingPanelColumn.xaml.cs

@@ -225,6 +225,7 @@ namespace PRSDesktop
                 var templatecode = Data.Templates.FirstOrDefault(x => x.ID.Equals(templateid))?.Code;
 
                 var groupid = packet.SetoutLink.Group.ID;
+                var groupname = packet.SetoutLink.Group.Name;
 
                 if (bOK)
                 {
@@ -344,6 +345,7 @@ namespace PRSDesktop
                     model.Template = templatecode;
 
                     model.GroupID = groupid;
+                    model.GroupName = groupname;
 
 
                     if (!stageValid || stageid.Equals(Guid.Empty) || stageid.Equals(CoreUtils.FullGuid))

+ 14 - 14
prs.mobile.new/PRS.Mobile/MainPage.xaml.cs

@@ -12,6 +12,7 @@ using Comal.Classes;
 using InABox.Configuration;
 using Xamarin.Forms.Xaml;
 using XF.Material.Forms.UI.Dialogs;
+using Comal.Classes.SecurityDescriptors;
 
 namespace PRS.Mobile
 {
@@ -175,22 +176,21 @@ namespace PRS.Mobile
         }
 
         private void EnableModules()
-        {
-            
+        {          
             SetupClockOnButton(Security.IsAllowed<IsJobOnlyEmployee>());
 
-            Assignments.IsVisible = Security.CanView<Assignment>();
-            Deliveries.IsVisible = Security.CanView<Delivery>();
-            Forms.IsVisible = Security.CanView<DigitalForm>();
-            Equipment.IsVisible = Security.CanView<Equipment>();
-            InOut.IsVisible = Security.IsAllowed<CanViewInOutBoard>();
-            Manufacturing.IsVisible = Security.CanView<ManufacturingPacket>();
-            Meetings.IsVisible = Security.CanView<Meeting>();
-            Products.IsVisible = Security.CanView<Product>();
-            PurchaseOrders.IsVisible = Security.CanView<PurchaseOrder>();
-            StoreRequis.IsVisible = Security.CanView<Requisition>();
-            MyTasks.IsVisible = Security.CanView<Kanban>();
-            Warehousing.IsVisible = Security.CanView<StockWarehouse>();
+            Assignments.IsVisible = Security.IsAllowed<ViewMobileAssignmentsModule>();
+            Deliveries.IsVisible = Security.IsAllowed<ViewMobileDeliveriesModule>();
+            Forms.IsVisible = Security.IsAllowed<ViewMobileFormsModule>();
+            Equipment.IsVisible = Security.IsAllowed<ViewMobileEquipmentModule>();
+            InOut.IsVisible = Security.IsAllowed<ViewMobileInOutModule>();
+            Manufacturing.IsVisible = Security.IsAllowed<ViewMobileManufacturingModule>();
+            Meetings.IsVisible = Security.IsAllowed<ViewMobileMeetingsModule>();
+            Products.IsVisible = Security.IsAllowed<ViewMobileProductsModule>();
+            PurchaseOrders.IsVisible = Security.IsAllowed<ViewMobilePurchaseOrdersModule>();
+            StoreRequis.IsVisible = Security.IsAllowed<ViewMobileStoreRequisModule>();
+            MyTasks.IsVisible = Security.IsAllowed<ViewMobileMyTasksModule>();
+            Warehousing.IsVisible = Security.IsAllowed<ViewMobileWarehousingModule>();
         }
         
         protected override void UpdateTransportStatus()