public SalesOrderViewModel(PenjualanAndOrderModel order) { _orderParameter = order; LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand()); SaveCommand = new Command(SaveAction, CanSaved); ClearCommand = new Command(() => { Datas.Clear(); SelectedIndex = -1; Title = "Create Order"; Order = new OrderPenjualan { OrderDate = DateTime.Now }; Order.DeadLine = 12; RefreshProductStock(); }); QRCommand = new Command(async() => { var vm = new InputBarcodeViewModel(); vm.OnResultScanHandler += Vm_OnResultScanHandler; var form = new InputBarcodeView() { BindingContext = vm }; await Shell.Current.Navigation.PushModalAsync(form); }); AddCommand = new Command(async() => await ExecuteLoadItemsCommand()); Datas.CollectionChanged += Datas_CollectionChanged; DeleteCommand = new Command(DeleteAction); this.PropertyChanged += SalesOrderViewModel_PropertyChanged; InitAsync(order); }
public CreatePackingListViewModel(ShareModels.OrderPenjualan _order) { this.Order = _order; Datas = new ObservableCollection <ItemPenjualanModel>(); QRCommand = new Command(async() => { var vm = new InputBarcodeViewModel(); vm.OnResultScanHandler += Vm_OnResultScanHandler; var form = new InputBarcodeView() { BindingContext = vm }; await Shell.Current.Navigation.PushModalAsync(form); }); LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand()); LoadItemsCommand.Execute(null); }
private async void ScanAction(object obj) { try { var barcodeScan = new InputBarcodeView(); var vmScanBarcode = new InputBarcodeViewModel(); barcodeScan.BindingContext = vmScanBarcode; vmScanBarcode.OnResultScanHandler += async(dynamic result) => { if (result.Type == "Auto") { string article = result.Article.ToString(); var data = Items.Where(x => x.Product.CodeArticle == article).FirstOrDefault(); if (data != null) { data.ActualValue++; await Toas.ShowLong($"{data.Product.Name} , Amount : {data.ActualValue}"); } else { await Toas.ShowLong($"Error : {result.Article.ToString()} Not Found !"); } } else { string article = (string)result.Article; var data = Items.Where(x => x.Product.CodeArticle == article).FirstOrDefault(); if (data != null) { data.ActualValue += (double)result.Count; await Toas.ShowLong($"{data.Product.Name} , Amount : {data.ActualValue}"); } else { await Toas.ShowLong($"Error : {result.Article} Not Found !"); } } }; await Shell.Current.Navigation.PushModalAsync(barcodeScan); } catch (Exception ex) { await Toas.ShowLong($"Error : {ex.Message}"); } }
private async void Load() { var vm = new InputBarcodeViewModel(); vm.AutoCount = true; vm.ShowAutoCount = false; var form = new InputBarcodeView() { BindingContext = vm }; vm.OnResultScanHandler += async(dynamic result) => { if (result != null && result.Article != null) { var products = await DependencyService.Get <IProductService>().GetProductStock(); if (products != null) { var data = products.Where(x => x.CodeArticle == result.Article).FirstOrDefault(); if (data != null) { await Shell.Current.Navigation.PopModalAsync(); var detailForm = new ProductDetailView() { BindingContext = new ProductDetailViewModel(data) }; await Shell.Current.Navigation.PushAsync(detailForm); return; } } } await Toas.ShowLong($"{result.Article} Not Found !"); }; await Shell.Current.Navigation.PushModalAsync(form); }