QuickPickModule.xaml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mobile:MobilePage xmlns="http://xamarin.com/schemas/2014/forms"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  4. xmlns:mobile="clr-namespace:InABox.Mobile;assembly=InABox.Mobile.Shared"
  5. xmlns:views="http://xamarin.com/schemas/2020/toolkit"
  6. xmlns:local="clr-namespace:PRS.Mobile;assembly=PRS.Mobile"
  7. xmlns:forms="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
  8. x:Class="PRS.Mobile.QuickPickModule">
  9. <mobile:MobilePage.BindingContext>
  10. <local:QuickPickViewModel x:Name="_viewModel"/>
  11. </mobile:MobilePage.BindingContext>
  12. <mobile:MobilePage.Resources>
  13. <mobile:ByteArrayToImageSourceConverter x:Key="ByteArrayToImageSourceConverter" BlankIfEmpty="False"/>
  14. <mobile:StringWithDefaultValueConverter x:Key="DefaultToGeneralStock" Default="(General Stock)" />
  15. <mobile:DoubleCalculator x:Key="ScannerHeightCalculator" Type="Product" Constants="0.65"/>
  16. <mobile:IntToBooleanConverter x:Key="SummaryPageVisible" Value="1" Result="True" />
  17. <mobile:BooleanMatcher x:Key="MatchAll" Type="All" Value="True" />
  18. <mobile:StringWithDefaultValueConverter x:Key="JobNameConverter" Default="(Select Job)" />
  19. <mobile:GuidToBooleanConverter x:Key="GuidToBooleanConverter" EmptyValue="False"></mobile:GuidToBooleanConverter>
  20. <DataTemplate x:Key="_locationTemplate" x:Name="_locationTemplate" x:DataType="local:StockHoldingShell">
  21. <ViewCell>
  22. <mobile:MobileCard
  23. HeightRequest="50"
  24. IsClickable="True"
  25. Clicked="SelectFromHolding_Click"
  26. Margin="0,0,0,5"
  27. Padding="5,0,0,0"
  28. BackgroundColor="{StaticResource Theme.Surface}">
  29. <Grid RowSpacing="0" ColumnSpacing="0">
  30. <Grid.ColumnDefinitions>
  31. <ColumnDefinition Width="50"/>
  32. <ColumnDefinition Width="5"/>
  33. <ColumnDefinition Width="*"/>
  34. <ColumnDefinition Width="1"/>
  35. <ColumnDefinition Width="50"/>
  36. </Grid.ColumnDefinitions>
  37. <Grid.RowDefinitions>
  38. <RowDefinition Height="20"/>
  39. <RowDefinition Height="15"/>
  40. <RowDefinition Height="15"/>
  41. </Grid.RowDefinitions>
  42. <Image
  43. Grid.Row="0"
  44. Grid.Column="0"
  45. Grid.RowSpan="3"
  46. Margin="2"
  47. Source="{Binding Image, Converter={StaticResource ByteArrayToImageSourceConverter}}"/>
  48. <BoxView Grid.Row="0" Grid.RowSpan="3" Grid.Column="1" BackgroundColor="Gray" WidthRequest="1" HorizontalOptions="Start"/>
  49. <Label
  50. Grid.Row="0"
  51. Grid.Column="2"
  52. views:DockLayout.Dock="Left"
  53. FontSize="{StaticResource Theme.Text.Small.Size}"
  54. TextColor="{StaticResource Theme.OnSurface}"
  55. VerticalTextAlignment="Center"
  56. Text="{Binding ProductName}"/>
  57. <views:DockLayout
  58. Grid.Row="1"
  59. Grid.Column="2">
  60. <Label
  61. views:DockLayout.Dock="Left"
  62. FontSize="{StaticResource Theme.Text.Micro.Size}"
  63. TextColor="{StaticResource Theme.OnSurface}"
  64. VerticalTextAlignment="Center"
  65. Text="{Binding DimensionsUnitSize}"/>
  66. <Label
  67. views:DockLayout.Dock="Left"
  68. FontSize="{StaticResource Theme.Text.Micro.Size}"
  69. TextColor="{StaticResource Theme.OnSurface}"
  70. Margin="5,0,0,0"
  71. VerticalTextAlignment="Center"
  72. Text="{Binding StyleDescription}"/>
  73. </views:DockLayout>
  74. <Label
  75. Grid.Row="2"
  76. Grid.Column="2"
  77. FontSize="{StaticResource Theme.Text.Micro.Size}"
  78. TextColor="{StaticResource Theme.OnSurface}"
  79. VerticalTextAlignment="Center"
  80. Text="{Binding JobDisplay, Converter={StaticResource DefaultToGeneralStock}}"/>
  81. <BoxView Grid.Row="0" Grid.RowSpan="3" Grid.Column="3" BackgroundColor="Gray"/>
  82. <Label
  83. Grid.Row="0"
  84. Grid.RowSpan="3"
  85. Grid.Column="4"
  86. FontSize="{StaticResource Theme.Text.Header.Size}"
  87. TextColor="{StaticResource Theme.OnSurface}"
  88. VerticalTextAlignment="Center"
  89. HorizontalTextAlignment="Center"
  90. Text="{Binding Units}"/>
  91. </Grid>
  92. </mobile:MobileCard>
  93. </ViewCell>
  94. </DataTemplate>
  95. <DataTemplate
  96. x:Key="_requisitionItemTemplate"
  97. x:DataType="local:RequisitionItemShell">
  98. <ViewCell>
  99. <mobile:MobileCard
  100. IsClickable="True"
  101. Margin="0,0,0,5"
  102. Padding="0"
  103. Background="LightYellow">
  104. <Grid ColumnSpacing="5">
  105. <Grid.ColumnDefinitions>
  106. <ColumnDefinition Width="50"/>
  107. <ColumnDefinition Width="1"/>
  108. <ColumnDefinition Width="*"/>
  109. <ColumnDefinition Width="1"/>
  110. <ColumnDefinition Width="60"/>
  111. </Grid.ColumnDefinitions>
  112. <Image
  113. Grid.Row="0"
  114. Source="{Binding Image, Converter={StaticResource ByteArrayToImageSourceConverter}}"
  115. HorizontalOptions="Center"
  116. VerticalOptions="Center"
  117. Margin="5,0,0,0"/>
  118. <BoxView Grid.Column="1" BackgroundColor="Gray"/>
  119. <Label
  120. Grid.Column="2"
  121. FontSize="Small"
  122. TextColor="Black"
  123. Text="{Binding Description}"
  124. VerticalTextAlignment="Center"
  125. />
  126. <BoxView Grid.Column="3" BackgroundColor="Gray"/>
  127. <Label
  128. Grid.Column="4"
  129. HorizontalOptions="Center"
  130. VerticalOptions="Center"
  131. Margin="0,0,5,0"
  132. FontSize="Small"
  133. TextColor="Black"
  134. Text="{Binding Quantity}"
  135. />
  136. </Grid>
  137. </mobile:MobileCard>
  138. </ViewCell>
  139. </DataTemplate>
  140. </mobile:MobilePage.Resources>
  141. <mobile:MobilePage.PrimaryMenu>
  142. <mobile:MobileMenuButton Image="save" Clicked="SaveList_Click">
  143. <mobile:MobileMenuButton.IsVisible>
  144. <MultiBinding Converter="{StaticResource MatchAll}">
  145. <Binding Path="HasItems" />
  146. <Binding Path="Job.ID" Converter="{StaticResource GuidToBooleanConverter}" />
  147. <Binding Source="{x:Reference _tabStrip}" Path="SelectedIndex" Converter="{StaticResource SummaryPageVisible}" />
  148. </MultiBinding>
  149. </mobile:MobileMenuButton.IsVisible>
  150. </mobile:MobileMenuButton>
  151. </mobile:MobilePage.PrimaryMenu>
  152. <mobile:MobilePage.PageContent>
  153. <views:DockLayout Margin="5">
  154. <mobile:MobileTabStrip
  155. views:DockLayout.Dock="Bottom"
  156. HeightRequest="50"
  157. x:Name="_tabStrip"
  158. SelectedIndex="0"
  159. Margin="0,5,0,0"
  160. SelectionChanged="_tabStrip_OnSelectionChanged">
  161. <mobile:MobileTabStrip.Items>
  162. <mobile:MobileTabStripItem Text="Location" />
  163. <mobile:MobileTabStripItem Text="Summary" />
  164. </mobile:MobileTabStrip.Items>
  165. </mobile:MobileTabStrip>
  166. <mobile:MobilePageStack
  167. views:DockLayout.Dock="Top"
  168. SelectedIndex="{Binding Source={x:Reference _tabStrip}, Path=SelectedIndex}">
  169. <mobile:MobilePageStack.Items>
  170. <mobile:MobilePageStackItem>
  171. <mobile:MobilePageStackItem.Content>
  172. <views:DockLayout>
  173. <mobile:MobileCard
  174. Padding="0"
  175. IsClippedToBounds="True"
  176. views:DockLayout.Dock="Top">
  177. <mobile:MobileCard.HeightRequest>
  178. <MultiBinding Converter="{StaticResource ScannerHeightCalculator}">
  179. <Binding Source="{RelativeSource AncestorType={x:Type local:QuickPickModule}}" Path="Width" />
  180. </MultiBinding>
  181. </mobile:MobileCard.HeightRequest>
  182. <Grid x:Name="scannerGrid">
  183. <Grid.RowDefinitions>
  184. <RowDefinition Height="*"/>
  185. <RowDefinition Height="21"/>
  186. <RowDefinition Height="4*"/>
  187. <RowDefinition Height="21"/>
  188. <RowDefinition Height="*"/>
  189. </Grid.RowDefinitions>
  190. <Grid.ColumnDefinitions>
  191. <ColumnDefinition Width="*"/>
  192. <ColumnDefinition Width="21"/>
  193. <ColumnDefinition Width="4*"/>
  194. <ColumnDefinition Width="21"/>
  195. <ColumnDefinition Width="*"/>
  196. </Grid.ColumnDefinitions>
  197. <forms:ZXingScannerView
  198. Grid.Row="0"
  199. Grid.Column="0"
  200. Grid.RowSpan="5"
  201. Grid.ColumnSpan="5"
  202. x:Name="_scanView"
  203. Background="Gray"
  204. OnScanResult="ScanView_OnScanResult"/>
  205. <Polyline Points="20,00 00,00 00,20" Grid.Row="1" Grid.Column="1" x:Name="topleft" Stroke="Red" StrokeThickness="2"/>
  206. <Polyline Points="00,00 20,00 20,20" Grid.Row="1" Grid.Column="3" x:Name="topright" Stroke="Red" StrokeThickness="2"/>
  207. <Polyline Points="20,00 20,20 00,20" Grid.Row="3" Grid.Column="3" x:Name="bottomright" Stroke="Red" StrokeThickness="2"/>
  208. <Polyline Points="20,20 00,20 00,00" Grid.Row="3" Grid.Column="1" x:Name="bottomleft" Stroke="Red" StrokeThickness="2"/>
  209. <Label
  210. Text="Scan Barcode"
  211. TextColor="White"
  212. BackgroundColor="Transparent"
  213. Grid.Row="4"
  214. Grid.Column="0"
  215. Grid.ColumnSpan="5"
  216. HorizontalTextAlignment="Center"
  217. VerticalTextAlignment="Center"/>
  218. </Grid>
  219. </mobile:MobileCard>
  220. <mobile:MobileListView
  221. views:DockLayout.Dock="Top"
  222. x:Name="_holdings"
  223. PullToRefresh="False"
  224. ShowRecordCount="False"
  225. Margin="0,5,0,0"
  226. ItemsSource="{Binding Holdings.Items}"
  227. ItemTemplate="{StaticResource _locationTemplate}"/>
  228. </views:DockLayout>
  229. </mobile:MobilePageStackItem.Content>
  230. </mobile:MobilePageStackItem>
  231. <mobile:MobilePageStackItem>
  232. <mobile:MobilePageStackItem.Content>
  233. <views:DockLayout>
  234. <mobile:MobileButton
  235. views:DockLayout.Dock="Top"
  236. x:Name="Job"
  237. Text="{Binding Job.DisplayName, Converter={StaticResource JobNameConverter}}"
  238. Clicked="SelectJob_Clicked"/>
  239. <mobile:MobileListView
  240. views:DockLayout.Dock="Top"
  241. x:Name="_requiItems"
  242. PullToRefresh="False"
  243. ShowRecordCount="False"
  244. Margin="0,5,0,0"
  245. ItemsSource="{Binding RequisitionItems.Items}"
  246. ItemTemplate="{StaticResource _requisitionItemTemplate}"/>
  247. </views:DockLayout>
  248. </mobile:MobilePageStackItem.Content>
  249. </mobile:MobilePageStackItem>
  250. </mobile:MobilePageStack.Items>
  251. </mobile:MobilePageStack>
  252. </views:DockLayout>
  253. </mobile:MobilePage.PageContent>
  254. </mobile:MobilePage>