Example #1
0
        private async Task UpdateScanStateAsync(StockUpBillModel ob, string ID, int mode)
        {
            List <object> Parameters = new List <object>();

            Parameters.Add(App.Context.DataCenterId);
            Parameters.Add(mode);
            Parameters.Add(ID);
            string result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);

            if (result == "1")
            {
                var sd = ob.XAY_StockUpOrderEntry.Single(o => o.Id == ID);
                sd.F_XAY_IsScan = true;
                var scancount = (from q in ob.XAY_StockUpOrderEntry
                                 where q.F_XAY_IsScan == false
                                 select new { q.F_XAY_IsScan }).Count();
                if (scancount == 0)
                {
                    Parameters = new List <object>();
                    Parameters.Add(App.Context.DataCenterId);
                    Parameters.Add(4);
                    Parameters.Add(ob.Id);
                    Parameters.Add(1);
                    result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);
                    await Navigation.PopToRootAsync();
                }
            }
        }
        void HandleScanResult(ZXing.Result result)
        {
            if (result != null && !string.IsNullOrEmpty(result.Text))
            {
                s.Add(result.Text);
            }
            //listview.ItemsSource = s.ToArray();
            var v = CrossVibrate.Current;

            v.Vibration(TimeSpan.FromSeconds(0.2));
            //var result2 = InvokeHelper.Login();
            //var iResult = JObject.Parse(result2)["LoginResultType"].Value<int>();
            //if (iResult == 1 || iResult == -5)
            //{
            List <object> Parameters = new List <object>();

            Parameters.Add(result.Text);
            try
            {
                var result2 = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.ExecuteService", Parameters);
                label.Text = result2;
            }
            catch (Exception ex)
            {
                label.Text = ex.Message;
            }
        }
Example #3
0
 private string updateToSystem(string str, string date)
 {
     try
     {
         if (!string.IsNullOrWhiteSpace(str))
         {
             List <object> Parameters = new List <object>();
             Parameters.Add(str);
             Parameters.Add(date);
             string result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.ExecuteService2", Parameters);
             if (result == "0")
             {
                 return("无记录");
             }
             else if (result == "1")
             {
                 return("已同步");
             }
             else if (result == "2")
             {
                 return("重复");
             }
             else if (result == "err")
             {
                 return("err");
             }
         }
         return("err");
     }
     catch { return("err"); }
 }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="mode">1为扫描备货单号,2为扫描二维码,3为扫描物流单号,4为扫描k3备货单二维码查看图片,5为扫描二维码上传图片</param>
        public ScanPage(int mode)
        {
            InitializeComponent();
            ZXing.Mobile.MobileBarcodeScanningOptions scanningOptions = new ZXing.Mobile.MobileBarcodeScanningOptions {
                DelayBetweenContinuousScans = 2000, PossibleFormats = new List <ZXing.BarcodeFormat> {
                    ZXing.BarcodeFormat.CODE_128, ZXing.BarcodeFormat.CODE_39, ZXing.BarcodeFormat.CODE_93, ZXing.BarcodeFormat.EAN_13, ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.QR_CODE
                }, TryHarder = App.Context.ScanHardMode
            };

            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Options           = scanningOptions,
            };
            zxing.OnScanResult += (result) =>

                                  Device.BeginInvokeOnMainThread(async() =>
            {
                Vibration.Vibrate();
                var duration = TimeSpan.FromMilliseconds(100);
                Vibration.Vibrate(duration);
                if (mode == 1)
                {
                    StockUpBillModel stockUpBillModel = (StockUpBillModel)BindingContext;
                    Loadinganimation.IsVisible        = true;
                    //BackgroundWorker worker = new BackgroundWorker();

                    await Task.Run(() =>
                    {
                        List <object> Parameters = new List <object>();
                        Parameters.Add(App.Context.DataCenterId);
                        Parameters.Add(result.ToString());
                        string json = apiHelper.InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.StockUpExecuteService", Parameters);
                        if (json == "err" || string.IsNullOrWhiteSpace(json))
                        {
                            return;
                        }
                        else
                        {
                            var jsonobject                         = JsonConvert.DeserializeObject <StockUpBillModel>(json);
                            stockUpBillModel.Id                    = jsonobject.Id;
                            stockUpBillModel.FBillNo               = jsonobject.FBillNo;
                            stockUpBillModel.F_XAY_Custom          = jsonobject.F_XAY_Custom;
                            stockUpBillModel.F_XAY_Phone           = jsonobject.F_XAY_Phone;
                            stockUpBillModel.F_XAY_Logistics       = jsonobject.F_XAY_Logistics;
                            stockUpBillModel.XAY_StockUpOrderEntry = jsonobject.XAY_StockUpOrderEntry;
                        }
                    });
                    await Navigation.PopAsync();
                    //worker.DoWork += delegate
                    //{};
                    //worker.RunWorkerAsync();
                    //worker.RunWorkerCompleted += async delegate { await Navigation.PopAsync(); };
                }
                else if (mode == 2)
                {
                    string qrstring = BaseToString(result.ToString());
                    StockUpBillModel stockUpBillModel = (StockUpBillModel)BindingContext;
                    if (qrstring.Substring(0, 2) != "#%")
                    {
                        label.Text = "二维码数据格式有误";
                        return;
                    }
                    string jsonstring    = qrstring.Substring(2);
                    string[] stringarray = jsonstring.Split(',');
                    if (stringarray.Count() >= 3)
                    {
                        string ID = stringarray[0];
                        if (Convert.ToBoolean(stringarray[2]))
                        {
                            var MaterialInfo = stringarray[3].Split('&');
                            for (int i = 0; i < MaterialInfo.Count(); i++)
                            {
                                string subID             = MaterialInfo[i];
                                List <object> Parameters = new List <object>();
                                Parameters.Add(App.Context.DataCenterId);
                                Parameters.Add(2);
                                Parameters.Add(subID);
                                string apiresult = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);
                                if (apiresult == "1")
                                {
                                    var sd          = stockUpBillModel.XAY_StockUpOrderEntry.Single(o => o.Id == ID);
                                    var s           = sd.XAY_t_StockUpOrderSubEntry.Single(o => o.id == subID);
                                    s.F_XAY_IsCScan = true;
                                    var scancount   = (from q in sd.XAY_t_StockUpOrderSubEntry
                                                       where q.F_XAY_IsCScan == false
                                                       select new { q.F_XAY_IsCScan }).Count();
                                    if (scancount == 0)
                                    {
                                        await UpdateScanStateAsync(stockUpBillModel, ID, 1);
                                    }
                                }
                                else
                                {
                                    label.Text = "err";
                                }
                            }
                        }
                        else
                        {
                            await UpdateScanStateAsync(stockUpBillModel, ID, 1);
                            label.Text = "扫描成功";
                        }
                    }
                }
                else if (mode == 3)
                {
                    StockUpPageModel Model   = (StockUpPageModel)BindingContext;
                    Model.LogisticsNum       = result.ToString();
                    List <object> Parameters = new List <object>();
                    Parameters.Add(App.Context.DataCenterId);
                    Parameters.Add(mode);
                    Parameters.Add(Model.Id);
                    Parameters.Add(Model.LogisticsNum);
                    string backresult = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);
                    if (backresult == "1")
                    {
                        Model.isscan = true;
                        await Navigation.PopAsync();
                    }
                    else
                    {
                        label.Text = "err";
                    }
                }
                else if (mode == 4)
                {
                    zxing.IsScanning            = false;
                    StringBuilder stringBuilder = (StringBuilder)BindingContext;
                    stringBuilder.Append(result.ToString());
                    await Navigation.PopAsync();
                }
                else if (mode == 5)
                {
                    string qrresult = BaseToString(result.ToString());
                    string billno   = string.Empty;
                    if (qrresult.Substring(0, 2) != "#%")
                    {
                        billno = result.ToString();
                    }
                    else
                    {
                        Loadinganimation.IsVisible = true;
                        string jsonstring          = qrresult.Substring(2);
                        string[] stringarray       = jsonstring.Split(',');
                        if (stringarray.Count() >= 3)
                        {
                            string ID      = stringarray[0];
                            string json    = "{\"FormId\":\"9d0a72f2a1104fe1881969ad5a1fc22d\",\"FieldKeys\":\"FBillNO\",\"FilterString\":\"F_XAY_StockUpOrderEntity_FENTRYID=" + ID + "\",\"OrderString\":\"\",\"TopRowCount\":\"0\",\"StartRow\":\"0\",\"Limit\":\"0\"}";
                            string[] lists = Actions.Jsonhelper.JsonToString(json);
                            if (lists != null)
                            {
                                billno = lists[0];
                                billno = billno.Replace("[", "");
                                billno = billno.Replace("]", "");
                            }
                        }
                    }
                    StockUpPhoto photopage   = new StockUpPhoto();
                    photopage.BindingContext = billno;
                    Navigation.InsertPageBefore(photopage, this);
                    await Navigation.PopAsync();
                }
            });

            label = new Label
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                AutomationId      = "label",
                TextColor         = Color.White,
                FontSize          = 30
            };
            button = new Button {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                Text = "hahha"
            };
            Loadinganimation = new AnimationView
            {
                Animation         = "loading.json",
                HorizontalOptions = LayoutOptions.Center,
                WidthRequest      = 200,
                AutoPlay          = true,
                Loop      = true,
                IsVisible = false
            };
            #region
            button.Clicked += async delegate {
                //Vibration.Vibrate();
                //var duration = TimeSpan.FromMilliseconds(100);
                //Vibration.Vibrate(duration);

                if (mode == 1)
                {
                    StockUpBillModel stockUpBillModel = (StockUpBillModel)BindingContext;
                    Loadinganimation.IsVisible = true;
                    await Task.Run(() => {
                        List <object> Parameters = new List <object>();
                        Parameters.Add(App.Context.DataCenterId);
                        Parameters.Add("WLBHD201806220001");
                        string result = apiHelper.InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.StockUpExecuteService", Parameters);
                        if (result == "err" || string.IsNullOrWhiteSpace(result))
                        {
                            return;
                        }
                        else
                        {
                            var json = JsonConvert.DeserializeObject <StockUpBillModel>(result);
                            stockUpBillModel.FBillNo               = json.FBillNo;
                            stockUpBillModel.F_XAY_Custom          = json.F_XAY_Custom;
                            stockUpBillModel.F_XAY_Phone           = json.F_XAY_Phone;
                            stockUpBillModel.F_XAY_Logistics       = json.F_XAY_Logistics;
                            stockUpBillModel.XAY_StockUpOrderEntry = json.XAY_StockUpOrderEntry;
                        }
                    });

                    await Navigation.PopAsync();
                }
                else if (mode == 2)
                {
                    StockUpBillModel stockUpBillModel = (StockUpBillModel)BindingContext;
                    string           a = "#%{'Id':'100049','isSpareParts':false,'isgroup':true,'MaterialInfo':[{'Id':'100040','MaterialId':'4154077','Piece':1,'Qty':7,'Unit':'个'}]}";
                    if (a.Substring(0, 2) != "#%")
                    {
                        await DisplayAlert("提示", "二维码数据格式有误", "OK");

                        return;
                    }
                    string  jsonstring = a.Substring(2, a.Length - 2);
                    JObject jObject    = (JObject)JsonConvert.DeserializeObject(jsonstring);
                    if (jObject.ContainsKey("Id") && jObject.ContainsKey("BillNo"))
                    {
                        if (stockUpBillModel.FBillNo != jObject["BillNo"].ToString())
                        {
                            return;
                        }
                        string ID = jObject["Id"].ToString();
                        if ((bool)jObject["isgroup"])
                        {
                            var MaterialInfo = jObject["MaterialInfo"];
                            for (int i = 0; i < MaterialInfo.Count(); i++)
                            {
                                string        subID      = MaterialInfo[i]["Id"].ToString();
                                List <object> Parameters = new List <object>();
                                Parameters.Add(App.Context.DataCenterId);
                                Parameters.Add(2);
                                Parameters.Add(subID);
                                string result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);;
                                if (result == "1")
                                {
                                    var sd = stockUpBillModel.XAY_StockUpOrderEntry.Single(o => o.Id == ID && o.XAY_t_StockUpOrderSubEntry[i].id == subID);
                                    sd.XAY_t_StockUpOrderSubEntry[i].F_XAY_IsCScan = true;
                                    var scancount = (from q in sd.XAY_t_StockUpOrderSubEntry
                                                     where q.F_XAY_IsCScan == false
                                                     select new { q.F_XAY_IsCScan }).Count();
                                    label.Text = "扫描成功";
                                    if (scancount == 0)
                                    {
                                        await  UpdateScanStateAsync(stockUpBillModel, ID, 1);
                                    }
                                }
                            }
                        }
                        else
                        {
                            await  UpdateScanStateAsync(stockUpBillModel, ID, 1);
                        }
                    }
                }
                else if (mode == 3)
                {
                    StockUpPageModel Model = (StockUpPageModel)BindingContext;
                    Model.LogisticsNum = "123123123123";
                    List <object> Parameters = new List <object>();
                    Parameters.Add(App.Context.DataCenterId);
                    Parameters.Add(mode);
                    Parameters.Add(Model.Id);
                    Parameters.Add(Model.LogisticsNum);
                    string result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);
                    if (result == "1")
                    {
                        Model.isscan = true;
                        await Navigation.PopAsync();
                    }
                    else
                    {
                        label.Text = "dadad";
                    }
                }
            };
            #endregion
            overlay = new ZXingOverlay
            {
                ShowFlashButton = true,
            };
            overlay.FlashButtonClicked += (sender, e) =>
            {
                try
                {
                    if (!zxing.IsTorchOn)
                    {
                        sender.Image = "flash_off.png";
                        //    CrossLampState = true;
                        zxing.IsTorchOn = true;
                    }
                    else
                    {
                        sender.Image    = "flash_on.png";
                        zxing.IsTorchOn = false;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };
            grid.Children.Add(zxing);
            //overlay.Children.Add(button, 0, 0);
            overlay.Children.Add(Loadinganimation, 0, 1);
            overlay.Children.Add(label, 0, 0);
            grid.Children.Add(overlay);
            Content = grid;
        }
Example #5
0
        public PhotoGallery()
        {
            InitializeComponent();
            Grid        grid        = new Grid();
            ProgressBar progressbar = new ProgressBar
            {
                Progress        = 0,
                VerticalOptions = LayoutOptions.Start,
                BackgroundColor = Color.FromHex("#fafafa"),
                Opacity         = 0.9,
                HeightRequest   = 50,
                IsVisible       = false,
            };
            ListView listView = new ListView(ListViewCachingStrategy.RecycleElement);

            ImageService.Instance.Config.MaxMemoryCacheSize = 1000;
            this.Appearing += async(sender, e) =>
            {
                images = await DependencyService.Get <IPicturePicker>().GetImageStreamAsync();

                Selectedimages = new List <ImageModel>();
                listView.BeginRefresh();
            };
            listView.ItemsSource  = images;
            listView.ItemTemplate = new DataTemplate(typeof(CachedImageCell));
            //listView.IsPullToRefreshEnabled = true;
            listView.HasUnevenRows = true;

            listView.ItemSelected += (s, e) =>
            {
                ImageModel selected = (ImageModel)e.SelectedItem;
                if (Selectedimages.Contains(selected))
                {
                    Selectedimages.Remove(selected);
                }
                else
                {
                    Selectedimages.Add(selected);
                }
            };
            listView.Refreshing += delegate
            {
                listView.ItemsSource = images;
                listView.EndRefresh();
            };
            SendBtn.Clicked += async delegate
            {
                string billno;
                if (BindingContext != null)
                {
                    billno = BindingContext.ToString();
                    if (Selectedimages.Count > 0)
                    {
                        if (string.IsNullOrWhiteSpace(App.Context.FtpUrl) || string.IsNullOrWhiteSpace(App.Context.FtpUser) || string.IsNullOrWhiteSpace(App.Context.FtpPassword))
                        {
                            DependencyService.Get <IToast>().LongAlert("请在设置中完善ftp信息");
                            return;
                        }
                        FtpHelper ftpHelper  = new FtpHelper(App.Context.FtpUrl, App.Context.FtpUser, App.Context.FtpPassword);
                        bool      isdirexist = ftpHelper.DirectoryExist(billno);
                        if (!isdirexist)
                        {
                            ftpHelper.MakeDir(billno);
                        }
                        progressbar.IsVisible = true;
                        progressbar.Progress  = 0;
                        await Task.Run(() => {
                            for (int i = 0; i < Selectedimages.Count; i++)
                            {
                                ftpHelper.Upload(Selectedimages[i].Path, billno);
                                progressbar.Progress = (double)(i + 1) / (double)Selectedimages.Count;
                            }
                        });

                        progressbar.IsVisible = false;
                        DependencyService.Get <IToast>().LongAlert("成功");
                        List <object> Parameters = new List <object>();
                        Parameters.Add(App.Context.DataCenterId);
                        Parameters.Add(5);
                        Parameters.Add(billno);
                        Parameters.Add(App.Context.FtpUrl + billno);
                        string result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);
                    }
                }
                else
                {
                    DependencyService.Get <IToast>().LongAlert("请先扫描备货单条码后再上传图片");
                }
            };
            grid.Children.Add(listView);
            grid.Children.Add(progressbar);
            Content = grid;
        }
Example #6
0
        public StockUpPhoto()
        {
            InitializeComponent();
            this.PageIndex      = 0;
            this.PageSize       = 24;
            this.Selected       = 0;
            this.selectedImages = new List <ImageModel>();
            ImageService.Instance.Config.MaxMemoryCacheSize = 1000;
            Grid firstgrid = new Grid()
            {
                WidthRequest  = 120,
                HeightRequest = 120,
            };
            Image takaphoto = new Image
            {
                WidthRequest  = 120,
                HeightRequest = 120,
                Scale         = 0.4,
                Source        = "camera_black.png"
            };
            BoxView box = new BoxView
            {
                Opacity = 0.5,
                Color   = Color.Black,
            };
            TapGestureRecognizer recognizer = new TapGestureRecognizer();

            recognizer.Tapped += async(s, args) =>
            {
                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    return;
                }
                var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                {
                    Directory          = "Stock6Media",
                    SaveToAlbum        = true,
                    CompressionQuality = 75,
                    CustomPhotoSize    = 50,
                    PhotoSize          = PhotoSize.MaxWidthHeight,
                    MaxWidthHeight     = 2000,
                    DefaultCamera      = CameraDevice.Front
                });

                if (file == null)
                {
                    return;
                }
                ImageModel model = new ImageModel(file.Path, 111, "zaop", "");
                Grid       grid  = AddImage(model);
                flexLayout.Children.Insert(1, grid);
                //takaphoto.Source = ImageSource.FromStream(() =>
                //{
                //    var stream = file.GetStream();
                //    file.Dispose();
                //    return stream;
                //});
            };
            box.GestureRecognizers.Add(recognizer);
            firstgrid.Children.Add(takaphoto);
            firstgrid.Children.Add(box);
            flexLayout.Children.Add(firstgrid);
            this.Appearing += async(sender, e) =>
            {
                images = await DependencyService.Get <IPicturePicker>().GetImageStreamAsync();

                var initResult = await BindSearchResult();

                activityIndicator.IsRunning = false;
                activityIndicator.IsVisible = false;
            };
            scrollview.Scrolled += async(sender, e) =>
            {
                if (scrollview.ScrollY >= scrollview.ContentSize.Height - scrollview.Height * 1.5)
                {
                    oldY = scrollview.ScrollY;
                    var result = await BindSearchResult();
                }
            };
            SendBtn.Clicked += async delegate
            {
                var current = Connectivity.NetworkAccess;
                if (current != NetworkAccess.Internet)
                {
                    DependencyService.Get <IToast>().LongAlert("网络异常,请稍后重试!");
                    return;
                }

                string billno;
                if (BindingContext != null)
                {
                    billno = BindingContext.ToString();
                    if (selectedImages.Count > 0)
                    {
                        if (string.IsNullOrWhiteSpace(App.Context.FtpUrl) || string.IsNullOrWhiteSpace(App.Context.FtpUser) || string.IsNullOrWhiteSpace(App.Context.FtpPassword))
                        {
                            DependencyService.Get <IToast>().LongAlert("请在设置中完善ftp信息");
                            return;
                        }
                        FtpHelper ftpHelper  = new FtpHelper(App.Context.FtpUrl, App.Context.FtpUser, App.Context.FtpPassword);
                        bool      isdirexist = ftpHelper.DirectoryExist(billno);
                        if (!isdirexist)
                        {
                            ftpHelper.MakeDir(billno);
                        }
                        progressbar.IsVisible = true;
                        progressbar.Progress  = 0;
                        await Task.Run(() => {
                            for (int i = 0; i < selectedImages.Count; i++)
                            {
                                ftpHelper.Upload(selectedImages[i].Path, billno);
                                progressbar.Progress = (double)(i + 1) / (double)selectedImages.Count;
                            }
                        });

                        progressbar.IsVisible = false;
                        DependencyService.Get <IToast>().LongAlert("成功");
                        if (billno.Contains("WLBHD"))
                        {
                            List <object> Parameters = new List <object>();
                            Parameters.Add(App.Context.DataCenterId);
                            Parameters.Add(5);
                            Parameters.Add(billno);
                            Parameters.Add(App.Context.FtpUrl + billno + "/");
                            string result = InvokeHelper.AbstractWebApiBusinessService("Kingdee.BOS.WebAPI.ServiceExtend.ServicesStub.CustomBusinessService.UpdateStockUpScanState", Parameters);
                        }
                    }
                }
                else
                {
                    DependencyService.Get <IToast>().LongAlert("请先扫描备货单条码后再上传图片");
                }
            };
            //BackgroundWorker worker = new BackgroundWorker();
            //worker.DoWork += Worker_DoWorkAsync;
            //worker.RunWorkerCompleted += Worker_RunWorkerCompleted;
            //worker.RunWorkerAsync();
            //LoadBitmapCollection();
        }