RequisitionItemScanner.xaml 15 KB

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