RequisitionItemEditor.xaml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. <Window x:Class="PRSDesktop.Panels.Requisitions.RequisitionItemEditor"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:PRSDesktop.Panels.Requisitions"
  7. xmlns:dg="clr-namespace:InABox.DynamicGrid;assembly=InABox.Wpf"
  8. xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
  9. mc:Ignorable="d"
  10. Title="Select Stock Holding" Height="800" Width="1200"
  11. x:Name="Window" WindowStartupLocation="CenterScreen">
  12. <Grid DataContext="{Binding ElementName=Window}">
  13. <Grid.RowDefinitions>
  14. <RowDefinition Height="*"/>
  15. <RowDefinition Height="Auto"/>
  16. </Grid.RowDefinitions>
  17. <dg:DynamicTabControl
  18. x:Name="TabControl"
  19. Grid.Row="0"
  20. SelectionChanged="TabChanged"
  21. Margin="5,5,5,0"
  22. SeparatorMargin="4">
  23. <dg:DynamicTabControl.Items>
  24. <dg:DynamicTabItem x:Name="HoldingsPage" Header="Stock Holdings">
  25. <dg:DynamicSplitPanel View="Combined" AllowableViews="Combined" Anchor="Master" AnchorWidth="600">
  26. <dg:DynamicSplitPanel.Header>
  27. <Border BorderBrush="Gray"
  28. BorderThickness="0.75"
  29. Background="WhiteSmoke">
  30. <Label Content="Products"
  31. VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
  32. </Border>
  33. </dg:DynamicSplitPanel.Header>
  34. <dg:DynamicSplitPanel.Master>
  35. <local:RequisitionItemProductSelectionGrid x:Name="StockHoldingProducts" OnSelectItem="StockHoldingProducts_OnSelectItem"/>
  36. </dg:DynamicSplitPanel.Master>
  37. <dg:DynamicSplitPanel.Detail>
  38. <Grid>
  39. <Grid.RowDefinitions>
  40. <RowDefinition Height="Auto"/>
  41. <RowDefinition Height="*"/>
  42. <RowDefinition Height="Auto"/>
  43. </Grid.RowDefinitions>
  44. <Border BorderBrush="Gray"
  45. BorderThickness="0.75"
  46. Background="WhiteSmoke"
  47. Grid.Row="0">
  48. <Label Content="Stock Holdings"
  49. VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
  50. </Border>
  51. <local:RequisitionItemStockHoldingSelectionGrid
  52. x:Name="StockHoldings"
  53. OnSelectItem="StockHoldings_OnSelectItem"
  54. AfterRefresh="StockHoldings_OnAfterRefresh"
  55. Grid.Row="1"
  56. Margin="0,4,0,0"/>
  57. <Grid Grid.Row="2" x:Name="JRIList" Margin="0,4,0,0">
  58. <Grid.RowDefinitions>
  59. <RowDefinition Height="40"/>
  60. <RowDefinition Height="0" x:Name="JRIRow"/>
  61. <RowDefinition Height="0" x:Name="TotalRow"/>
  62. </Grid.RowDefinitions>
  63. <Border Grid.Row="0" BorderBrush="Gray" BorderThickness="0.75" Background="WhiteSmoke" Padding="5,0,0,0">
  64. <Grid>
  65. <Grid.ColumnDefinitions>
  66. <ColumnDefinition Width="*"/>
  67. <ColumnDefinition Width="60"/>
  68. <ColumnDefinition Width="60"/>
  69. <ColumnDefinition Width="30"/>
  70. <ColumnDefinition Width="60"/>
  71. <ColumnDefinition Width="30"/>
  72. <ColumnDefinition Width="60"/>
  73. </Grid.ColumnDefinitions>
  74. <TextBlock
  75. Grid.Column="0"
  76. Grid.ColumnSpan="4"
  77. Text="Required Quantity:"
  78. FontWeight="Bold"
  79. VerticalAlignment="Center"
  80. Margin="5,0,0,0"/>
  81. <syncfusion:DoubleTextBox
  82. Grid.Column="6"
  83. x:Name="RequiredEditor"
  84. Value="{Binding RequiredQuantity}"
  85. HorizontalContentAlignment="Center"
  86. VerticalAlignment="Stretch"
  87. VerticalContentAlignment="Center"
  88. Margin="0,5,5,5"
  89. Background="LightYellow"/>
  90. </Grid>
  91. </Border>
  92. <ItemsControl x:Name="JobRequisitionItems" Grid.Row="1"
  93. ItemsSource="{Binding JRIItems}" BorderBrush="Gray" BorderThickness="0.75,0,0.75,0">
  94. <ItemsControl.ItemTemplate>
  95. <DataTemplate DataType="local:RequisitionItemStockHoldingItem">
  96. <Border BorderBrush="Gray"
  97. BorderThickness="0,0,0,0.75"
  98. Background="White"
  99. Padding="5">
  100. <Grid>
  101. <Grid.ColumnDefinitions>
  102. <ColumnDefinition Width="*"/>
  103. <ColumnDefinition Width="60"/>
  104. <ColumnDefinition Width="60"/>
  105. <ColumnDefinition Width="30"/>
  106. <ColumnDefinition Width="60"/>
  107. <ColumnDefinition Width="30"/>
  108. <ColumnDefinition Width="60"/>
  109. </Grid.ColumnDefinitions>
  110. <Grid.RowDefinitions>
  111. <RowDefinition Height="30" />
  112. </Grid.RowDefinitions>
  113. <TextBlock
  114. Grid.Column="0"
  115. VerticalAlignment="Center"
  116. Text="{Binding Text}"
  117. TextWrapping="NoWrap"
  118. TextTrimming="CharacterEllipsis"
  119. Margin="5,0,0,0"/>
  120. <syncfusion:DoubleTextBox
  121. Grid.Column="1"
  122. Value="{Binding Quantity}"
  123. IsReadOnly="True"
  124. HorizontalContentAlignment="Center"
  125. VerticalAlignment="Stretch"
  126. VerticalContentAlignment="Center"
  127. Margin="5,0,0,0"
  128. Background="WhiteSmoke"/>
  129. <Button
  130. Grid.Column="2"
  131. Content="None"
  132. Tag="{Binding}"
  133. Click="None_Click"
  134. Margin="5,0,0,0"/>
  135. <Button
  136. Grid.Column="3"
  137. Content="-"
  138. Tag="{Binding}"
  139. Click="Minus_Click"
  140. Margin="5,0,0,0"/>
  141. <syncfusion:DoubleTextBox
  142. Grid.Column="4"
  143. Value="{Binding Taken}"
  144. MinValue="0"
  145. MaxValue="{Binding Quantity}"
  146. HorizontalContentAlignment="Center"
  147. VerticalAlignment="Stretch"
  148. VerticalContentAlignment="Center"
  149. Margin="5,0,0,0"
  150. Background="LightYellow"/>
  151. <Button
  152. Grid.Column="5"
  153. Content="+"
  154. Tag="{Binding}"
  155. Click="Plus_Click"
  156. Margin="5,0,0,0"/>
  157. <Button
  158. Grid.Column="6"
  159. Content="All"
  160. Tag="{Binding}"
  161. Click="All_Click"
  162. Margin="5,0,0,0"/>
  163. </Grid>
  164. </Border>
  165. </DataTemplate>
  166. </ItemsControl.ItemTemplate>
  167. <ItemsControl.ItemsPanel>
  168. <ItemsPanelTemplate>
  169. <StackPanel/>
  170. </ItemsPanelTemplate>
  171. </ItemsControl.ItemsPanel>
  172. </ItemsControl>
  173. <Border Grid.Row="2" BorderBrush="Gray" BorderThickness="0.75,0,0.75,0.75" Background="WhiteSmoke" Padding="5,0,0,0">
  174. <Grid>
  175. <Grid.ColumnDefinitions>
  176. <ColumnDefinition Width="*"/>
  177. <ColumnDefinition Width="60"/>
  178. <ColumnDefinition Width="60"/>
  179. <ColumnDefinition Width="30"/>
  180. <ColumnDefinition Width="60"/>
  181. <ColumnDefinition Width="30"/>
  182. <ColumnDefinition Width="60"/>
  183. </Grid.ColumnDefinitions>
  184. <TextBlock
  185. Grid.Column="0"
  186. Grid.ColumnSpan="4"
  187. Text="Total:"
  188. FontWeight="Bold"
  189. VerticalAlignment="Center"
  190. Margin="5,0,0,0"/>
  191. <syncfusion:DoubleTextBox
  192. Grid.Column="4"
  193. Value="{Binding TotalTaken}"
  194. IsReadOnly="True"
  195. HorizontalContentAlignment="Center"
  196. VerticalAlignment="Stretch"
  197. VerticalContentAlignment="Center"
  198. Margin="0,5,5,5">
  199. <syncfusion:DoubleTextBox.Style>
  200. <Style TargetType="syncfusion:DoubleTextBox">
  201. <Setter Property="Background" Value="LightGreen"/>
  202. <Style.Triggers>
  203. <DataTrigger Binding="{Binding TotalTaken}" Value="0">
  204. <Setter Property="Background" Value="Orange"/>
  205. </DataTrigger>
  206. </Style.Triggers>
  207. </Style>
  208. </syncfusion:DoubleTextBox.Style>
  209. </syncfusion:DoubleTextBox>
  210. </Grid>
  211. </Border>
  212. </Grid>
  213. </Grid>
  214. </dg:DynamicSplitPanel.Detail>
  215. </dg:DynamicSplitPanel>
  216. </dg:DynamicTabItem>
  217. <dg:DynamicTabItem
  218. x:Name="BOMPage"
  219. Header="Bill Of Materials">
  220. <local:RequisitionItemBillOfMaterialsPage x:Name="BOMItems" OnChanged="BOMItems_OnOnChanged" />
  221. </dg:DynamicTabItem>
  222. <dg:DynamicTabItem
  223. x:Name="RequisitionPage"
  224. Header="Requisitions">
  225. <local:RequisitionItemJobRequitionPage x:Name="JobRequisitionItemsGrid" OnChanged="JobRequisitionItems_OnOnChanged" />
  226. </dg:DynamicTabItem>
  227. <dg:DynamicTabItem x:Name="InstancesPage" Header="Catalogue">
  228. <dg:DynamicSplitPanel View="Combined" AllowableViews="Combined" Anchor="Master" AnchorWidth="600">
  229. <dg:DynamicSplitPanel.Header>
  230. <Border BorderBrush="Gray"
  231. BorderThickness="0.75"
  232. Background="WhiteSmoke">
  233. <Label Content="Products"
  234. VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
  235. </Border>
  236. </dg:DynamicSplitPanel.Header>
  237. <dg:DynamicSplitPanel.Master>
  238. <local:RequisitionItemProductSelectionGrid x:Name="ProductInstancesProducts" OnSelectItem="ProductInstancesProducts_OnSelectItem"/>
  239. </dg:DynamicSplitPanel.Master>
  240. <dg:DynamicSplitPanel.DetailHeader>
  241. <Border BorderBrush="Gray"
  242. BorderThickness="0.75"
  243. Background="WhiteSmoke">
  244. <Label Content="Product Instances"
  245. VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>
  246. </Border>
  247. </dg:DynamicSplitPanel.DetailHeader>
  248. <dg:DynamicSplitPanel.Detail>
  249. <Grid>
  250. <Grid.RowDefinitions>
  251. <RowDefinition Height="*"/>
  252. <RowDefinition Height="Auto"/>
  253. </Grid.RowDefinitions>
  254. <Grid.ColumnDefinitions>
  255. <ColumnDefinition Width="*"/>
  256. </Grid.ColumnDefinitions>
  257. <local:RequisitionItemProductInstanceGrid
  258. x:Name="ProductInstances"
  259. OnSelectItem="ProductInstances_OnSelectItem"
  260. Grid.Row="0" />
  261. <Border Grid.Row="1" BorderBrush="Gray" BorderThickness="0.75" Background="WhiteSmoke" Padding="5,0,0,0" Margin="0,4,0,0" Height="40">
  262. <Grid>
  263. <Grid.ColumnDefinitions>
  264. <ColumnDefinition Width="*"/>
  265. <ColumnDefinition Width="60"/>
  266. </Grid.ColumnDefinitions>
  267. <TextBlock
  268. Grid.Column="0"
  269. Text="Required Quantity:"
  270. FontWeight="Bold"
  271. VerticalAlignment="Center"
  272. Margin="5,0,0,0"/>
  273. <syncfusion:DoubleTextBox
  274. Grid.Column="1"
  275. Value="{Binding RequiredQuantity}"
  276. HorizontalContentAlignment="Center"
  277. VerticalAlignment="Stretch"
  278. VerticalContentAlignment="Center"
  279. Margin="0,5,5,5"
  280. Background="LightYellow"/>
  281. </Grid>
  282. </Border>
  283. </Grid>
  284. </dg:DynamicSplitPanel.Detail>
  285. </dg:DynamicSplitPanel>
  286. </dg:DynamicTabItem>
  287. <dg:DynamicTabItem x:Name="CustomPage" Header="Custom">
  288. <dg:EmbeddedDynamicEditorForm
  289. x:Name="CustomEditorGrid"
  290. HideButtons="True"
  291. TabsVisible="False"
  292. ButtonsVisible="False"
  293. OnFormCustomiseEditor="CustomEditorGrid_OnFormCustomiseEditor"/>
  294. </dg:DynamicTabItem>
  295. </dg:DynamicTabControl.Items>
  296. </dg:DynamicTabControl>
  297. <DockPanel Grid.Row="1" LastChildFill="False" x:Name="Buttons">
  298. <Button x:Name="CancelButton" Click="CancelButton_Click"
  299. Content="Cancel"
  300. Margin="5" Padding="5" MinWidth="60"
  301. DockPanel.Dock="Right"/>
  302. <Button x:Name="OKButton" Click="OKButton_Click"
  303. Content="OK"
  304. Margin="5,5,0,5" Padding="5" MinWidth="60"
  305. DockPanel.Dock="Right"
  306. IsEnabled="{Binding CanSave}"/>
  307. </DockPanel>
  308. </Grid>
  309. </Window>