Bläddra i källkod

UI tweaks for Requisition Grid

frogsoftware 1 år sedan
förälder
incheckning
557129535a

+ 4 - 0
prs.desktop/Panels/Requisitions/RequisitionItemGrid.cs

@@ -123,8 +123,11 @@ namespace PRSDesktop
                     {
                         continue;
                     }
+
                     item.ActualQuantity = quantity;
                 }
+                else
+                    item.ActualQuantity = 0;
 
                 list.Add(item);
             }
@@ -156,6 +159,7 @@ namespace PRSDesktop
                 .Add(DynamicGridOption.DeleteRows)
                 .Add(DynamicGridOption.FilterRows)
                 .Add(DynamicGridOption.MultiSelect)
+                .Add(DynamicGridOption.DirectEdit)
                 .Add(DynamicGridOption.DragTarget)
                 .EndUpdate();
         }

+ 151 - 105
prs.desktop/Panels/Requisitions/RequisitionPanel.xaml

@@ -8,12 +8,18 @@
              xmlns:dg="clr-namespace:InABox.DynamicGrid;assembly=InABox.Wpf"
              mc:Ignorable="d"
              d:DesignHeight="800" d:DesignWidth="1500">
-    <dg:DynamicSplitPanel AnchorWidth="450" View="Combined" AllowableViews="Combined,Master"
-                          MasterCaption="Requisition List" DetailCaption="Requisition Details"
-                          x:Name="MainPanel" OnChanged="MainPanel_OnChanged">
+    <dg:DynamicSplitPanel 
+        AnchorWidth="450" 
+        View="Combined" 
+        AllowableViews="Combined,Master"
+        DetailCaption="Requisition Items"
+        x:Name="MainPanel" 
+        OnChanged="MainPanel_OnChanged">
         <dg:DynamicSplitPanel.Header>
-            <Border Margin="0,0,0,2" BorderBrush="Gray" BorderThickness="0.75"
-                CornerRadius="5,5,0,0" Background="WhiteSmoke">
+            <Border 
+                BorderBrush="Gray" 
+                BorderThickness="0.75"
+                Background="WhiteSmoke">
                 <Label Content="Requisitions" VerticalContentAlignment="Center"
                    HorizontalContentAlignment="Center"/>
             </Border>
@@ -22,119 +28,159 @@
             <local:RequisitionGrid x:Name="Requisitions" OnSelectItem="Requisitions_OnSelectItem" />
         </dg:DynamicSplitPanel.Master>
         <dg:DynamicSplitPanel.Detail>
-            <dg:DynamicSplitPanel View="Combined" Anchor="Detail" AnchorWidth="450" AllowableViews="Combined"
-                                  x:Name="DetailsPanel" OnChanged="MainPanel_OnChanged">
+            <dg:DynamicSplitPanel 
+                View="Combined" 
+                Anchor="Detail" 
+                AnchorWidth="450" 
+                AllowableViews="Combined,Master"
+                DetailCaption="Requisition Details"
+                x:Name="DetailsPanel" 
+                OnChanged="MainPanel_OnChanged">
                 <dg:DynamicSplitPanel.Header>
-                    <Border Margin="0,0,0,2" BorderBrush="Gray" BorderThickness="0.75"
-                            CornerRadius="5,5,0,0" Background="WhiteSmoke">
-                        <Label Content="Items"
-                               VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
+                    <Border 
+                        BorderBrush="Gray" 
+                        BorderThickness="0.75"
+                        Background="WhiteSmoke">
+                        <Label 
+                            Content="Items"
+                            VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
                     </Border>
                 </dg:DynamicSplitPanel.Header>
                 <dg:DynamicSplitPanel.Master>
                     <local:RequisitionItemGrid x:Name="Items" Grid.Row="1" Grid.Column="2" />
                 </dg:DynamicSplitPanel.Master>
                 <dg:DynamicSplitPanel.DetailHeader>
-                    <Border Margin="4,0,0,2" BorderBrush="Gray" BorderThickness="0.75"
-                            CornerRadius="5,5,0,0" Background="WhiteSmoke">
-                        <Label Content="Requisition Details" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />
+                    <Border 
+                        BorderBrush="Gray" 
+                        BorderThickness="0.75"
+                        Background="WhiteSmoke">
+                        <Label 
+                            Content="Requisition Details" 
+                            VerticalContentAlignment="Center" 
+                            HorizontalContentAlignment="Center" />
                     </Border>
                 </dg:DynamicSplitPanel.DetailHeader>
                 <dg:DynamicSplitPanel.Detail>
-                    <Border BorderBrush="DarkGray" BorderThickness="1" Margin="4,0,0,2"
-                            Padding="0,0,0,5">
-                        <Grid>
-                            <Grid.RowDefinitions>
-                                <RowDefinition Height="Auto" />
-                                <RowDefinition Height="Auto" />
-                                <RowDefinition Height="Auto" />
-                                <RowDefinition Height="1" />
-                                <RowDefinition Height="*" />
-                                <RowDefinition Height="1" />
-                                <RowDefinition Height="Auto" />
-                                <RowDefinition Height="Auto" />
-                                <RowDefinition Height="Auto" />
-                            </Grid.RowDefinitions>
-                            <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="120" />
-                                <ColumnDefinition Width="*" />
-                            </Grid.ColumnDefinitions>
+                    
+                    <DockPanel>
+                        <Border 
+                            BorderBrush="DarkGray" 
+                            BorderThickness="1" 
+                            DockPanel.Dock="Top">
+                            
+                                <TextBlock 
+                                    x:Name="Title" 
+                                    Text=" " 
+                                    FontSize="16"
+                                    FontWeight="Bold" 
+                                    TextWrapping="Wrap" 
+                                    Padding="5,10,5,10" 
+                                    TextAlignment="Center"/>
+                            
+                        </Border>
+                        
+                        <Border 
+                            BorderBrush="DarkGray" 
+                            BorderThickness="1" 
+                            DockPanel.Dock="Bottom">
+                            <Grid>
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="Auto" />
+                                    <RowDefinition Height="Auto" />
+                                    <RowDefinition Height="Auto" />
+                                    <RowDefinition Height="Auto" />
+                                    <RowDefinition Height="Auto" />
+                                </Grid.RowDefinitions>
+                                <Grid.ColumnDefinitions>
+                                    <ColumnDefinition Width="120" />
+                                    <ColumnDefinition Width="*" />
+                                </Grid.ColumnDefinitions>
+                                
+                                <Label Content="Requested By:" Grid.Row="0" Grid.Column="0" FontSize="16" FontWeight="Bold"
+                                       HorizontalContentAlignment="Center" Margin="5,5,0,0"  VerticalContentAlignment="Center" />
+                                <Button x:Name="RequestedBy" Grid.Row="0" Grid.Column="1" FontSize="16" FontWeight="Bold"
+                                        HorizontalContentAlignment="Center" Margin="5,5,5,0" IsEnabled="False" Height="40" />
+                                
+                                <Label Content="Delivery Due:" Grid.Row="1" Grid.Column="0" FontSize="16" FontWeight="Bold"
+                                       HorizontalContentAlignment="Center" Margin="5,5,0,0"  VerticalContentAlignment="Center" />
+                                <Button x:Name="DueDate" Grid.Row="1" Grid.Column="1" FontSize="16" FontWeight="Bold"
+                                        HorizontalContentAlignment="Center" Margin="5,5,5,0" IsEnabled="False" Height="40" />
+                                
+                                <Label Content="Pick Status:" Grid.Row="2" Grid.Column="0" FontSize="16" FontWeight="Bold"
+                                       HorizontalContentAlignment="Center" Margin="5,5,0,0" VerticalContentAlignment="Center" />
+                                <Button x:Name="MarkAsFilled" Grid.Row="2" Grid.Column="1" Click="MarkAsFilled_Click" Margin="5,5,5,0"
+                                        Padding="5">
+                                    <Button.Content>
+                                        <Grid HorizontalAlignment="Stretch">
+                                            <Grid.ColumnDefinitions>
+                                                <ColumnDefinition Width="60" />
+                                                <ColumnDefinition Width="*" />
+                                            </Grid.ColumnDefinitions>
+                                            <Image x:Name="PickImage" Source="pack://application:,,,/Resources/tick.png" Height="30"
+                                                   Grid.Column="0" />
+                                            <Label x:Name="MarkAsFilledDescription" Content="Mark As Filled" FontSize="16"
+                                                   FontWeight="Bold" Grid.Column="1" HorizontalContentAlignment="Center" HorizontalAlignment="Stretch" />
+                                        </Grid>
+                                    </Button.Content>
+                                </Button>
 
-                            <TextBlock x:Name="Title" Text=" " Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" FontSize="16"
-                                       FontWeight="Bold" TextWrapping="Wrap" Margin="5,5,5,5" Padding="5,0,0,0" MinHeight="40" />
-                            <Label Content="Requested By:" Grid.Row="1" Grid.Column="0" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Left" Margin="5,5,0,0" />
-                            <Label x:Name="RequestedBy" Grid.Row="1" Grid.Column="1" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Left" Margin="5,5,0,0" />
-                            <Label Content="Delivery Due:" Grid.Row="2" Grid.Column="0" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Left" Margin="5,5,0,5" />
-                            <Label x:Name="DueDate" Grid.Row="2" Grid.Column="1" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Left" Margin="5,5,0,5" />
+                                <Label Content="Taken By:" Grid.Row="3" Grid.Column="0" FontSize="16" FontWeight="Bold"
+                                       HorizontalContentAlignment="Center" Margin="5,5,0,0" VerticalContentAlignment="Center" />
+                                <Button x:Name="TakenBy" Grid.Row="3" Grid.Column="1" Click="TakenBy_Click" Margin="5,5,5,0"
+                                        Padding="5">
+                                    <Button.Content>
+                                        <Grid HorizontalAlignment="Stretch">
+                                            <Grid.ColumnDefinitions>
+                                                <ColumnDefinition Width="60" />
+                                                <ColumnDefinition Width="*" />
+                                            </Grid.ColumnDefinitions>
+                                            <Image x:Name="TruckImage" Source="pack://application:,,,/Resources/truck.png" Height="30"
+                                                   Grid.Column="0" />
+                                            <Label x:Name="TakenByDescription" Content="Select Employee" FontSize="16"
+                                                   FontWeight="Bold" Grid.Column="1" HorizontalContentAlignment="Center" HorizontalAlignment="Stretch" />
+                                        </Grid>
 
+                                    </Button.Content>
+                                </Button>
 
-                            <Border BorderBrush="DarkGray" BorderThickness="1" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" />
-
-                            <TextBlock x:Name="Request" Grid.Row="4" TextWrapping="Wrap" FontSize="16" Grid.Column="0"
-                                       Grid.ColumnSpan="2" Padding="10,5,5,5" Background="LightYellow" />
-
-                            <Border BorderBrush="DarkGray" BorderThickness="1" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2" />
-
-                            <Label Content="Pick Status:" Grid.Row="6" Grid.Column="0" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Center" Margin="5,5,0,0" VerticalContentAlignment="Center" />
-                            <Button x:Name="MarkAsFilled" Grid.Row="6" Grid.Column="1" Click="MarkAsFilled_Click" Margin="5,5,5,0"
-                                    Padding="5">
-                                <Button.Content>
-                                    <Grid>
-                                        <Grid.ColumnDefinitions>
-                                            <ColumnDefinition Width="60" />
-                                            <ColumnDefinition Width="250" />
-                                        </Grid.ColumnDefinitions>
-                                        <Image x:Name="PickImage" Source="pack://application:,,,/Resources/tick.png" Height="30"
-                                               Grid.Column="0" />
-                                        <Label x:Name="MarkAsFilledDescription" Content="Mark As Filled" FontSize="16"
-                                               FontWeight="Bold" Grid.Column="1" HorizontalContentAlignment="Center" />
-                                    </Grid>
-                                </Button.Content>
-                            </Button>
-
-                            <Label Content="Taken By:" Grid.Row="7" Grid.Column="0" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Center" Margin="5,5,0,0" VerticalContentAlignment="Center" />
-                            <Button x:Name="TakenBy" Grid.Row="7" Grid.Column="1" Click="TakenBy_Click" Margin="5,5,5,0"
-                                    Padding="5">
-                                <Button.Content>
-                                    <Grid>
-                                        <Grid.ColumnDefinitions>
-                                            <ColumnDefinition Width="60" />
-                                            <ColumnDefinition Width="250" />
-                                        </Grid.ColumnDefinitions>
-                                        <Image x:Name="TruckImage" Source="pack://application:,,,/Resources/truck.png" Height="30"
-                                               Grid.Column="0" />
-                                        <Label x:Name="TakenByDescription" Content="Select Employee" FontSize="16"
-                                               FontWeight="Bold" Grid.Column="1" HorizontalContentAlignment="Center" />
-                                    </Grid>
-
-                                </Button.Content>
-                            </Button>
-
-                            <Label Content="Warehouse:" Grid.Row="8" Grid.Column="0" FontSize="16" FontWeight="Bold"
-                                   HorizontalContentAlignment="Center" Margin="5,5,0,0" VerticalContentAlignment="Center" />
-                            <Button x:Name="UpdateStock" Grid.Row="8" Grid.Column="1" Click="UpdateStock_Click" Margin="5,5,5,0"
-                                    Padding="5">
-                                <Button.Content>
-                                    <Grid>
-                                        <Grid.ColumnDefinitions>
-                                            <ColumnDefinition Width="60" />
-                                            <ColumnDefinition Width="250" />
-                                        </Grid.ColumnDefinitions>
-                                        <Image x:Name="StockImage" Source="pack://application:,,,/Resources/forklift.png"
-                                               Height="30" Grid.Column="0" />
-                                        <Label x:Name="UpdateStockDescription" Content="Update Stock Holdings" FontSize="16"
-                                               FontWeight="Bold" Grid.Column="1" HorizontalContentAlignment="Center" />
-                                    </Grid>
-                                </Button.Content>
-                            </Button>
-                        </Grid>
-                    </Border>
+                                <Label Content="Warehouse:" Grid.Row="4" Grid.Column="0" FontSize="16" FontWeight="Bold"
+                                       HorizontalContentAlignment="Center" Margin="5,5,0,5" VerticalContentAlignment="Center" />
+                                <Button x:Name="UpdateStock" Grid.Row="4" Grid.Column="1" Click="UpdateStock_Click" Margin="5,5,5,5"
+                                        Padding="5">
+                                    <Button.Content>
+                                        <Grid HorizontalAlignment="Stretch">
+                                            <Grid.ColumnDefinitions>
+                                                <ColumnDefinition Width="60" />
+                                                <ColumnDefinition Width="*" />
+                                            </Grid.ColumnDefinitions>
+                                            <Image x:Name="StockImage" Source="pack://application:,,,/Resources/forklift.png"
+                                                   Height="30" Grid.Column="0" />
+                                            <Label x:Name="UpdateStockDescription" Content="Update Stock Holdings" FontSize="16"
+                                                   FontWeight="Bold" Grid.Column="1" HorizontalContentAlignment="Center" HorizontalAlignment="Stretch" />
+                                        </Grid>
+                                    </Button.Content>
+                                </Button>
+                            </Grid>
+                        </Border>
+                        
+                        <Border 
+                            BorderBrush="DarkGray" 
+                            BorderThickness="1"
+                            DockPanel.Dock="Top"
+                            Margin="0,2,0,2" >
+                                 <TextBlock 
+                                     x:Name="Request" 
+                                     TextWrapping="Wrap" 
+                                     FontSize="16" 
+                                     Padding="10,5,5,5" 
+                                     Background="LightYellow" />
+                        </Border>
+        
+                        
+                        
+                    </DockPanel>
+                    
+ 
                 </dg:DynamicSplitPanel.Detail>
             </dg:DynamicSplitPanel>
         </dg:DynamicSplitPanel.Detail>

+ 1 - 0
prs.shared/Database Update Scripts/DatabaseUpdateScripts.cs

@@ -37,6 +37,7 @@ namespace PRS.Shared
             DataUpdater.RegisterUpdateScript<Update_7_37>();
             DataUpdater.RegisterUpdateScript<Update_7_40>();
             DataUpdater.RegisterUpdateScript<Update_7_43>();
+            DataUpdater.RegisterUpdateScript<Update_7_48>();
         }
     }
 }

+ 32 - 0
prs.shared/Database Update Scripts/Update_7_48.cs

@@ -0,0 +1,32 @@
+using InABox.Configuration;
+using InABox.Core;
+using InABox.Database;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Comal.Classes;
+
+namespace PRS.Shared
+{
+    public class Update_7_48 : DatabaseUpdateScript
+    {
+        public override VersionNumber Version => new VersionNumber(7, 48);
+
+        public override bool Update()
+        {
+            var items = DbFactory.Provider.Query(
+                new Filter<RequisitionItem>(x=>x.ActualQuantity).IsEqualTo(0)
+                    .And(x=>x.Quantity).IsNotEqualTo(0),
+                new Columns<RequisitionItem>(x => x.ID)
+                    .Add(x => x.Quantity)
+                    .Add(x=>x.ActualQuantity)
+                ).ToObjects<RequisitionItem>().ToList();
+            foreach (var item in items)
+                item.ActualQuantity = item.Quantity;
+            DbFactory.Provider.Save(items);
+            return true;
+        }
+    }
+}