Browse Source

Merge commit '065ff2500533a0d6c5c06e2a532f12760f95bdaf' into frank

Frank van den Bos 1 year ago
parent
commit
5bccafd844

+ 3 - 0
prs.classes/Entities/Setout/SetoutGroupLink.cs

@@ -14,10 +14,13 @@ namespace Comal.Classes
 
         public DocumentLink OptimizationDocument { get; set; }
 
+        public JobLink Job { get; set; }
+
         protected override void Init()
         {
             Name = "";
             OptimizationDocument = new DocumentLink();
+            Job = new JobLink();
             base.Init();
         }
     }

+ 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
+    {
+    }
+
 }

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

@@ -0,0 +1,321 @@
+using InABox.Core;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Comal.Classes.SecurityDescriptors
+{
+    #region Common Buttons
+
+    #endregion
+
+    #region Quotes
+    /// <summary>
+    /// Entire tab visibility
+    /// </summary>
+    [Caption("View Desktop Quotes Tab")]
+    public class ViewDesktopQuotesTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Quotes Screen")]
+    public class ViewDesktopQuotesScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Product Kits Screen")]
+    public class ViewDesktopProductKitsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Cost Sheets Screen")]
+    public class ViewDesktopCostSheetsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Projects
+    /// <summary>
+    /// Entire tab visibility
+    /// </summary>
+    [Caption("View Desktop Projects Tab")]
+    public class ViewDesktopProjectsTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Projects Screen")]
+    public class ViewDesktopProjectsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Project Planner Screen")]
+    public class ViewDesktopProjectPlannerScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Design Management Screen")]
+    public class ViewDesktopDesignManagementScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Manufacturing
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Manufacturing Tab")]
+    public class ViewDesktopManufacturingTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Manufacturing Status Screen")]
+    public class ViewDesktopManufacturingStatusScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Factory Allocation Screen")]
+    public class ViewDesktopFactoryAllocationScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Factory Floor Screen")]
+    public class ViewDesktopFactoryFloorScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Logistics
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Logistics Tab")]
+    public class ViewDesktopLogisticsTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Ready To Go Screen")]
+    public class ViewDesktopReadyToGoScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Rack List Screen")]
+    public class ViewDesktopRackListScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Site Requisitions Screen")]
+    public class ViewDesktopSiteRequisitionsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Deliveries Screen")]
+    public class ViewDesktopDeliveriesScren : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Delivered On Site Screen")]
+    public class ViewDesktopDeliveredOnSiteScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Incoming Consignments Screen")]
+    public class ViewDesktopIncomingConsignmentsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Product Management
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Product Management Tab")]
+    public class ViewDesktopProductManagementTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Product List Screen")]
+    public class ViewDesktopProductListScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Stock Locations Screen")]
+    public class ViewDesktopStockLocationsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Stock Movements Screen")]
+    public class ViewDesktopStockMovementsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Stock Forecast Screen")]
+    public class ViewDesktopStockForecastScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Reservation Management Screen")]
+    public class ViewDesktopReservationManagementScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Human Resources
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Human Resources Tab")]
+    public class ViewDesktopHumanResourcesTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Calendar Screen")]
+    public class ViewDesktopCalendarScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Employee Planner Screen")]
+    public class ViewDesktopEmployeePlannerScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Staff TimeSheets Screen")]
+    public class ViewDesktopStaffTimeSheetsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Leave Requests Screen")]
+    public class ViewDesktopLeaveRequestsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Meetings Screen")]
+    public class ViewDesktopMeetingsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop User Accounts Screen")]
+    public class ViewDesktopUserAccountsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Employee List Screen")]
+    public class ViewDesktopEmployeeListScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Org Chart Screen")]
+    public class ViewDesktopOrgChartScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+    #endregion
+
+    #region Accounts
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Accounts Tab")]
+    public class ViewDesktopAccountsTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Customers Screen")]
+    public class ViewDesktopCustomersScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Invoices Screen")]
+    public class ViewDesktopInvoicesScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Receipts Screen")]
+    public class ViewDesktopReceiptsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Suppliers Screen")]
+    public class ViewDesktopSuppliersScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Purchase Orders Screen")]
+    public class ViewDesktopPurchaseOrdersScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Bills Screen")]
+    public class ViewDesktopBillsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Payments Screen")]
+    public class ViewDesktopPaymentsScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Equipment
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Equipment Tab")]
+    public class ViewDesktopEquipmentTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Equipment List Screen")]
+    public class ViewDesktopEquipmentListScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop GPS Trackers Screen")]
+    public class ViewDesktopGPSTrackersScreen : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+
+    #region Dashboards
+    /// <summary>
+    /// Entire Tab Visibility
+    /// </summary>
+    [Caption("View Desktop Dashboards Tab")]
+    public class ViewDesktopDashboardsTab : EnabledSecurityDescriptor<DesktopAccessLicence>
+    {
+    }
+
+    [Caption("View Desktop Factory KPIs Dashboard")]
+    public class ViewDesktopFactoryKPIsDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Template Analysis Dashboard")]
+    public class ViewDesktopTemplateAnalysisDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Factory Analysis Dashboard")]
+    public class ViewDesktopFactoryAnalysisDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Database Activity Dashboard")]
+    public class ViewDesktopDatabaseActivityDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop User Activity Dashboard")]
+    public class ViewDesktopUserActivityDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Digital Forms Dashboard")]
+    public class ViewDesktopDigitalFormsDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+
+    [Caption("View Desktop Quick Status Dashboard")]
+    public class ViewDesktopQuickStatusDashboard : EnabledSecurityDescriptor<DesktopAccessLicence>
+    { 
+    }
+    #endregion
+}

+ 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 : EnabledSecurityDescriptor<MobileAccessLicence>
+    {
+    }
+
+    [Caption("View Mobile Deliveries Module")]
+    public class ViewMobileDeliveriesModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    {
+    }
+
+    [Caption("View Mobile Forms Module")]
+    public class ViewMobileFormsModule: EnabledSecurityDescriptor<MobileAccessLicence> 
+    {
+    }
+
+    [Caption("View Mobile Equipment Module")]
+    public class ViewMobileEquipmentModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile In Out Module")]
+    public class ViewMobileInOutModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Manufacturing Module")]
+    public class ViewMobileManufacturingModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Meetings Module")]
+    public class ViewMobileMeetingsModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Products Module")]
+    public class ViewMobileProductsModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Purchase Orders Module")]
+    public class ViewMobilePurchaseOrdersModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Store Requis Module")]
+    public class ViewMobileStoreRequisModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile My Tasks Module")]
+    public class ViewMobileMyTasksModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+
+    [Caption("View Mobile Warehousing Module")]
+    public class ViewMobileWarehousingModule : EnabledSecurityDescriptor<MobileAccessLicence>
+    { 
+    }
+}

+ 7 - 7
prs.desktop/MainWindow.xaml

@@ -333,9 +333,9 @@
                     <fluent:Button x:Name="ProjectPlannerButton" Header="Project Planner"
                                    LargeIcon="pack://application:,,,/Resources/calendar.png"
                                    Click="ProjectPlanner_Checked" MinWidth="60" />
-                    <fluent:Button x:Name="SetoutImportButton" Header="Design Management"
+                    <fluent:Button x:Name="DesignManagementButton" Header="Design Management"
                                    LargeIcon="pack://application:,,,/Resources/design.png"
-                                   Click="SetoutImport_Checked" MinWidth="60" />
+                                   Click="DesignManagement_Checked" MinWidth="60" />
                     <fluent:Button x:Name="ServiceButton" Header="Service"
                                    LargeIcon="pack://application:,,,/Resources/service.png"
                                    Click="Service_Checked" MinWidth="60" />
@@ -543,9 +543,9 @@
                     <fluent:Button x:Name="StockSummaryButton" Header="Stock Forecast"
                                    LargeIcon="pack://application:,,,/Resources/kpi.png"
                                    Click="StockSummaryButton_Clicked" MinWidth="60" />
-                    <fluent:Button x:Name="JobRequisitionDashboardButton" Header="Reservation Management"
+                    <fluent:Button x:Name="ReservationManagementButton" Header="Reservation Management"
                                    LargeIcon="pack://application:,,,/Resources/requisition.png"
-                                   Click="JobRequisitionDashboardButton_Clicked" MinWidth="60" />
+                                   Click="ReservationManagementButton_Clicked" MinWidth="60" />
                 </fluent:RibbonGroupBox>
 
                 <fluent:RibbonGroupBox x:Name="ProductReports" Width="Auto" MinWidth="60" Header="Print"
@@ -605,7 +605,7 @@
                                    LargeIcon="pack://application:,,,/Resources/report.png"
                                    Click="DailyReport_Checked" MinWidth="60" />
                     <syncfusion:RibbonSeparator x:Name="HumanResourcesTaskSeparator" />
-                    <fluent:Button x:Name="AssignmentsButton" Header="Calendar"
+                    <fluent:Button x:Name="CalendarButton" Header="Calendar"
                                    LargeIcon="pack://application:,,,/Resources/assignments.png"
                                    Click="CalendarButton_Click" MinWidth="60" />
                     <fluent:Button x:Name="EmployeePlannerButton" Header="Employee Planner"
@@ -864,9 +864,9 @@
                     <fluent:Button x:Name="UserActivityButton" Header="User Activity"
                                    LargeIcon="pack://application:,,,/Resources/kpi.png"
                                    Click="UserActivityButton_Click" MinWidth="60" />
-                    <fluent:Button x:Name="QAAnalysisButton" Header="Digital Forms"
+                    <fluent:Button x:Name="DigitalFormsButton" Header="Digital Forms"
                                    LargeIcon="pack://application:,,,/Resources/kpi.png"
-                                   Click="QAAnalysisButton_Click" MinWidth="60" />
+                                   Click="DigitalFormsButton_Click" MinWidth="60" />
                     <fluent:Button x:Name="QuickStatusButton" Header="Quick Status"
                                    LargeIcon="pack://application:,,,/Resources/kpi.png"
                                    Click="QuickStatus_Click" MinWidth="60" />

File diff suppressed because it is too large
+ 642 - 562
prs.desktop/MainWindow.xaml.cs


+ 3 - 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,8 @@ 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.SetoutLink.Group.Job.JobNumber)
                         .Add(x => x.DueDate)
                         .Add(x => x.SetoutLink.Location)
                         //.Add(x => x.SetoutLink.Reference)

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

@@ -219,6 +219,10 @@ namespace PRSDesktop
                     ? !sectionid.Equals(section) ? string.IsNullOrEmpty(pktsection) ? "" : pktsection.ToUpper().Trim() : "DISTRIB"
                     : "";
                 model.GroupID = row.Get<ManufacturingPacket, Guid>(c => c.SetoutLink.Group.ID);
+                var groupname = row.Get<ManufacturingPacket, string>(c => c.SetoutLink.Group.Name);
+                model.GroupName = !string.IsNullOrWhiteSpace(groupname) ?
+                    row.Get<ManufacturingPacket, string>(c => c.SetoutLink.Group.Job.JobNumber) + ": " + groupname
+                    : "";
 
                 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
     }
 }
 

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

@@ -726,6 +726,8 @@ 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.SetoutLink.Group.Job.JobNumber);
 
             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"

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

@@ -225,6 +225,9 @@ 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;
+                groupname = !string.IsNullOrWhiteSpace(groupname) ? packet.SetoutLink.Group.Job.JobNumber + ": " + groupname
+                    : "";
 
                 if (bOK)
                 {
@@ -344,6 +347,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

@@ -13,6 +13,7 @@ using InABox.Configuration;
 using JetBrains.Annotations;
 using Xamarin.Forms.Xaml;
 using XF.Material.Forms.UI.Dialogs;
+using Comal.Classes.SecurityDescriptors;
 
 namespace PRS.Mobile
 {
@@ -154,22 +155,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()

Some files were not shown because too many files changed in this diff