示例#1
0
        async Task ExecuteLoadItemsCommand()
        {
            try
            {
                Pembelians.Clear();
                var pembelians = await PembelianService.GetPembelians();

                foreach (var item in pembelians)
                {
                    Pembelians.Add(item);
                }
                await Task.Delay(500);

                Items.Clear();
                Source = await IncomingService.Load();

                if (Source.Model != null)
                {
                    Model = Source.Model;
                    foreach (var item in Source.Datas)
                    {
                        item.UpdateEvent += Item_UpdateEvent;
                        Items.Add(item);
                    }
                }
            }
            catch (Exception ex)
            {
                await Toas.ShowLong($"Error : {ex.Message}");
            }
            finally
            {
                IsBusy = false;
            }
        }
示例#2
0
        private async void CameraAction(object obj)
        {
            try
            {
                IsBusy = true;

                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    await MessageHelper.ErrorAsync(":( Permission not granted to photos.");

                    return;
                }

                var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium,
                    Directory = "Pictures",
                    Name      = "image.jpg"
                });

                if (file == null)
                {
                    return;
                }
                var image = new ProductImage
                {
                    ProductId = Model.Id
                };
                var stream = file.GetStream();
                using (MemoryStream ms = new MemoryStream())
                {
                    stream.CopyTo(ms);
                    image.Buffer = ms.ToArray();
                }

                file.Dispose();

                image = await Products.AddPhoto(image);

                if (image != null)
                {
                    Model.ProductImage.Add(image);
                    Pictures.Add(new ProductImageModel(image));
                    await Toas.ShowLong("Success !");
                }
            }
            catch (Exception ex)
            {
                await MessageHelper.ErrorAsync(ex.Message);
            }
            finally
            {
                IsBusy = false;
            }
        }
示例#3
0
        protected override bool OnBackButtonPressed()
        {
            countPress++;
            if (countPress >= 2)
            {
                return(base.OnBackButtonPressed());
            }

            Toas.ShowLong("Tekan Sekali Lagi Untuk Keluar !");
            Task.Run(() => ClearCount());
            return(true);
        }
示例#4
0
 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}");
     }
 }
示例#5
0
        private async void Vm_OnResultScanHandler(dynamic result)
        {
            if (result != null)
            {
                string article = result.Article.ToString();
                var    data    = Datas.Where(x => x.Product.CodeArticle == article).FirstOrDefault();
                if (data != null)
                {
                    double max = data.Amount - data.Real;
                    if (max <= 0)
                    {
                        await Toas.ShowLong($"Sorry, {data.Product.Name}-{data.Product.Size}, Sudah Lengkap");

                        return;
                    }

                    if (result.Type == "Auto")
                    {
                        data.Real += max < 0.5 ? max : 0.5;
                        await Toas.ShowLong($"{data.Product.Name}-{data.Product.Size}, Jumlah: {data.Real} {data.Unit.Name}, Dari : {data.Amount} { data.Unit.Name}");
                    }
                    else
                    {
                        if ((double)result.Count > max)
                        {
                            await Toas.ShowLong($"Sorry, {data.Product.Name}-{data.Product.Size} hanya kurang  : {max} {data.Unit.Name}");
                        }
                        else
                        {
                            data.Real += (double)result.Count;
                            await Toas.ShowLong($"{data.Product.Name}-{data.Product.Size}, Jumlah: {data.Real} {data.Unit.Name}, Dari : {data.Amount} { data.Unit.Name}");

                            return;
                        }
                    }
                }
                else
                {
                    await Toas.ShowLong($"Error : {result.Article.ToString()} Tidak Ada Diorder !");
                }
            }
        }
示例#6
0
        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);
        }
示例#7
0
        private async void RemoveImageAction(object obj)
        {
            try
            {
                var model   = (ProductImageModel)obj;
                var deleted = await Products.RemovePhoto(model.Id);

                if (deleted)
                {
                    Pictures.Remove(model);
                    var item = Model.ProductImage.SingleOrDefault(x => x.Id == model.Id);
                    if (item != null)
                    {
                        Model.ProductImage.Remove(item);
                    }
                    await Toas.ShowLong("Delete Success !");
                }
            }
            catch (Exception ex)
            {
                await MessageHelper.ErrorAsync(ex.Message);
            }
        }