private void SetSelectedBinContent()
        {
            List <BinViewModel> list = BinViewModels.FindAll(x => x.Selected == true);

            if (list is List <BinViewModel> )
            {
                ObservableCollection <BinContentGrouping> nlist = new ObservableCollection <BinContentGrouping>();

                foreach (BinViewModel bvm1 in list)
                {
                    nlist.Add(new BinContentGrouping(bvm1.Code, bvm1.BinContent));

                    //foreach (BinContentShortViewModel bcsvm in bvm1.BinContent)
                    //{
                    //    nlist.Add(bcsvm);
                    //}
                }
                //nlist.ToList().Sort(new BinContentShortViewModelComparer());
                SelectedBinContent     = nlist;
                EditedBinCodeIsEnabled = list.Count == 1;
            }
            else
            {
                EditedBinCodeIsEnabled = false;
            }
        }
Esempio n. 2
0
 private void RecreateBinsSections(int prevsections, int newsections, int newdepth, int newlevels)
 {
     if (prevsections < newsections)
     {
         for (int j = prevsections + 1; j <= newsections; j++)
         {
             for (int k = 1; k <= newdepth; k++)
             {
                 for (int i = 1; i <= newlevels; i++)
                 {
                     CreateBin(i, j, k);
                 }
             }
         }
     }
     else if (prevsections > newsections)
     {
         for (int j = prevsections; j > newsections; j--)
         {
             List <BinViewModel> list = BinViewModels.FindAll(x => x.Bin.Section == j);
             foreach (BinViewModel bvm in list)
             {
                 DeleteBin(bvm);
             }
         }
     }
 }
 private async void SetSelectedBinsByTemplate(bool codefieldchanged)
 {
     if (FillTemplateIsEnabled)
     {
         List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.Selected == true);
         foreach (BinViewModel bvm in selectedlist)
         {
             bvm.Code                 = TemplateCode;
             bvm.MaximumWeight        = TemplateMaximumWeight;
             bvm.Blocked              = TemplateBlocked;
             bvm.BlockMovement        = TemplateBlockMovement;
             bvm.BinType              = TemplateBinType;
             bvm.BinRanking           = TemplateBinRanking;
             bvm.MaximumCubage        = TemplateMaximumCubage;
             bvm.MaximumWeight        = TemplateMaximumWeight;
             bvm.AdjustmentBin        = TemplateAdjustmentBin;
             bvm.WarehouseClassCode   = TemplateWarehouseClassCode;
             bvm.SpecialEquipmentCode = TemplateSpecialEquipmentCode;
             bvm.Default              = TemplateDefault;
         }
         if (codefieldchanged)
         {
             await CheckBins(ACD).ConfigureAwait(true);
         }
     }
 }
Esempio n. 4
0
 private void RecreateBinsDepth(int prevdepth, int newdepth, int newlevels, int newsections)
 {
     if (prevdepth < newdepth)
     {
         for (int k = prevdepth + 1; k <= newdepth; k++)
         {
             for (int i = 1; i <= newlevels; i++)
             {
                 for (int j = 1; j <= newsections; j++)
                 {
                     CreateBin(i, j, k);
                 }
             }
         }
     }
     else if (prevdepth > newdepth)
     {
         for (int k = prevdepth; k > newdepth; k--)
         {
             List <BinViewModel> list = BinViewModels.FindAll(x => x.Bin.Depth == k);
             foreach (BinViewModel bvm in list)
             {
                 DeleteBin(bvm);
             }
         }
     }
 }
Esempio n. 5
0
        public async Task LoadBinValues(AsyncCancelationDispatcher acd)
        {
            try
            {
                List <BinValues> binvalues = await NAV.GetBinValuesByRackID(RackID, acd.Default).ConfigureAwait(true);

                if (NotDisposed)
                {
                    foreach (BinValues bv in binvalues)
                    {
                        BinViewModel bvm = BinViewModels.Find(x => x.Code == bv.Code);
                        if (bvm is BinViewModel)
                        {
                            bvm.BottomRightValue = bv.RightValue;
                            bvm.BottomLeftValue  = bv.LeftValue;
                        }
                    }
                }
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                throw e;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                throw e;
            }
        }
Esempio n. 6
0
 public void BinViewModelsDispose()
 {
     foreach (BinViewModel bvm in BinViewModels)
     {
         bvm.DisposeModel();
     }
     BinViewModels.Clear();
 }
Esempio n. 7
0
 public void Clear()
 {
     foreach (BinViewModel bvm in BinViewModels)
     {
         DeleteBin(bvm);
     }
     BinViewModels.Clear();
 }
Esempio n. 8
0
        public async Task CheckSelectedBins(AsyncCancelationDispatcher acd)
        {
            List <BinViewModel> list = BinViewModels.FindAll(x => x.IsSelected == true);

            foreach (BinViewModel bvm in list)
            {
                await CheckBin(bvm, acd).ConfigureAwait(true);
            }
        }
Esempio n. 9
0
        public async Task CheckBins(AsyncCancelationDispatcher acd)
        {
            List <BinViewModel> list = BinViewModels.ToList();

            foreach (BinViewModel bvm in list)
            {
                await CheckBin(bvm, acd).ConfigureAwait(true);
            }
        }
Esempio n. 10
0
        public void UnSelect()
        {
            List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.Selected == true);

            foreach (BinViewModel bvm in selectedlist)
            {
                bvm.Selected = false;
            }
            IsSelectedBins = false;
        }
Esempio n. 11
0
        public void DeleteBins()
        {
            List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.Selected == true);

            foreach (BinViewModel bvm in selectedlist)
            {
                DeleteBin(bvm);
            }
            MessagingCenter.Send(this, "Update");
        }
Esempio n. 12
0
        public async Task LoadBinImages(AsyncCancelationDispatcher acd)
        {
            try
            {
                List <BinImage> binimages = await NAV.GetBinImagesByRackID(RackID, acd.Default).ConfigureAwait(true);

                if (NotDisposed)
                {
                    foreach (BinImage bi in binimages)
                    {
                        if (!acd.Default.IsCancellationRequested)
                        {
                            BinViewModel bvm = BinViewModels.Find(x => x.Code == bi.BinCode);
                            if (bvm is BinViewModel)
                            {
                                try
                                {
                                    System.IO.Stream output = await ImageService.Instance.LoadUrl(bi.ImageURL)
                                                              .LoadingPlaceholder("icon.png")
                                                              .DownSample(100, 100)
                                                              .AsJPGStreamAsync();

                                    if (NotDisposed)
                                    {
                                        if (bvm.NotDisposed)
                                        {
                                            bvm.ImageSource       = ImageSource.FromStream(() => output);
                                            bvm.ImageSourceLoaded = true;
                                        }
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                catch (Exception e)
                                {
                                    System.Diagnostics.Debug.WriteLine("WCS:LI [" + bi.BinCode + "] " + e.Message);
                                }
                            }
                        }
                    }
                }
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                throw e;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                throw e;
            }
        }
Esempio n. 13
0
        public void AfterSelect()
        {
            BinViewModel selectedbvm = BinViewModels.Find(x => x.IsSelected == true);

            IsSelectedBins = selectedbvm is BinViewModel;

            if (selectedbvm is BinViewModel)
            {
                SetTemplateBySelectedBin(selectedbvm);
            }
        }
Esempio n. 14
0
        public void BlockBins()
        {
            List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.Selected == true);

            foreach (BinViewModel bvm in selectedlist)
            {
                bvm.Blocked = !bvm.Blocked;
            }
            UnSelect();

            MessagingCenter.Send(this, "Update");
        }
        private void Select(BinViewModel bvm)
        {
            bvm.Selected = !bvm.Selected;

            BinViewModel selectedbvm = BinViewModels.Find(x => x.Selected == true);

            IsSelectedBins = selectedbvm is BinViewModel;

            if (selectedbvm is BinViewModel)
            {
                SetTemplateBySelectedBin(selectedbvm);
            }
        }
Esempio n. 16
0
        public void CombineBins()
        {
            string combinedrackno1           = "";
            string locationcode1             = "";
            string rackno1                   = "";
            List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.Selected == true);

            if (selectedlist.Count > 1)
            {
                DefineBordersOfCombine(selectedlist);

                List <BinViewModel> fordelete =
                    BinViewModels.FindAll(x =>
                                          x.Section >= leftsection &&
                                          x.Section <= rightsection &&
                                          x.Level >= leftlevel &&
                                          x.Level <= rightlevel);

                BinViewModel firstbvm = BinViewModels.Find(x =>
                                                           x.Section >= leftsection &&
                                                           x.Level >= leftlevel);

                if (firstbvm is BinViewModel)
                {
                    combinedrackno1 = firstbvm.Code;
                    locationcode1   = firstbvm.LocationCode;
                    rackno1         = firstbvm.RackNo;
                }

                DeleteSelected(fordelete);

                Bin newbin = new Bin()
                {
                    LocationCode = locationcode1,
                    RackNo       = rackno1,
                    Code         = combinedrackno1,
                    Section      = leftsection,
                    Level        = leftlevel,
                    Depth        = 1,
                    SectionSpan  = rightsection - leftsection + 1,
                    LevelSpan    = rightlevel - leftlevel + 1,
                };

                BinViewModel bvm = new BinViewModel(Navigation, newbin);
                FillBinFromTemplate(bvm);
                bvm.OnTap += Bvm_OnTap;
                BinViewModels.Add(bvm);
            }
            UnSelect();
            MessagingCenter.Send(this, "Update");
        }
Esempio n. 17
0
        private void SetSelectedBinContent()
        {
            List <BinViewModel> list = BinViewModels.FindAll(x => x.IsSelected == true);

            if (list is List <BinViewModel> )
            {
                ObservableCollection <BinContentGrouping> nlist = new ObservableCollection <BinContentGrouping>();
                foreach (BinViewModel bvm1 in list)
                {
                    nlist.Add(new BinContentGrouping(bvm1.Code, bvm1.BinContent));
                }
                SelectedBinContent = nlist;
                LoadContentImages(false);
            }
        }
        public async Task CheckBins(AsyncCancelationDispatcher acd)
        {
            try
            {
                List <BinViewModel> list = BinViewModels.ToList();
                foreach (BinViewModel bvm in list)
                {
                    bvm.IsChecked = false;
                    NAVFilter navfilter = new NAVFilter
                    {
                        LocationCodeFilter = LocationCode,
                        BinCodeFilter      = bvm.Code
                    };
                    List <Bin> binsexist = await NAV.GetBinList(navfilter, ACD.Default).ConfigureAwait(true);

                    if (binsexist.Count > 0)
                    {
                        bvm.IsExist = true;
                        Bin bin = binsexist.First();

                        //Place in new rack
                        bin.RackNo      = bvm.RackNo;
                        bin.Section     = bvm.Section;
                        bin.Level       = bvm.Level;
                        bin.Depth       = bvm.Depth;
                        bin.SectionSpan = bvm.SectionSpan;
                        bin.LevelSpan   = bvm.LevelSpan;
                        bin.DepthSpan   = bvm.DepthSpan;
                        bvm.FillFields(bin);
                    }
                    else
                    {
                        bvm.IsExist = false;
                    }
                    bvm.IsChecked = true;
                }
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                ErrorText = e.Message;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                ErrorText = e.Message;
            }
        }
Esempio n. 19
0
 private void Select(BinViewModel bvm)
 {
     if (!MultiSelectBins)
     {
         List <BinViewModel> list = BinViewModels.FindAll(x => x.IsSelected == true);
         foreach (BinViewModel bvm1 in list)
         {
             if (bvm1 != bvm)
             {
                 bvm1.IsSelected = false;
             }
         }
     }
     bvm.IsSelected = !bvm.IsSelected;
     AfterSelect();
 }
        public void DeleteBins()
        {
            List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.Selected == true);

            foreach (BinViewModel bvm in selectedlist)
            {
                DeleteBin(bvm);
                EmptySpaceViewModel esvm = new EmptySpaceViewModel(Navigation);
                esvm.Section = bvm.Section;
                esvm.Level   = bvm.Level;
                esvm.Depth   = bvm.Depth;
                esvm.OnTap  += Esvm_OnTap;
                EmptySpacesViewModels.Add(esvm);
            }
            MessagingCenter.Send(this, "Update");
        }
        public async Task LoadBins(AsyncCancelationDispatcher acd)
        {
            BinViewModelsDispose();
            try
            {
                LoadedBinsQuantity = 0;
                SearchBinsQuantity = 0;
                NAVFilter navfilter = new NAVFilter
                {
                    LocationCodeFilter = LocationCode,
                    ZoneCodeFilter     = ZoneCode,
                    RackCodeFilter     = RackNo
                };
                List <Bin> bins = await NAV.GetBinList(navfilter, ACD.Default).ConfigureAwait(true);

                if (!IsDisposed)
                {
                    if (bins.Count > 0)
                    {
                        LoadedBinsQuantity = bins.Count;
                        foreach (Bin bin in bins)
                        {
                            BinViewModel bvm = new BinViewModel(Navigation, bin);
                            bvm.IsContent = !bin.Empty;
                            bvm.Color     = Color.FromHex("#e2dacf");
                            bvm.OnTap    += Bvm_OnTap;

                            ExistInSearch(bvm);
                            ExistInUDS(bvm);

                            BinViewModels.Add(bvm);
                        }
                    }
                    MessagingCenter.Send <BinsViewModel>(this, "BinsIsLoaded");
                }
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                ErrorText = e.Message;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                ErrorText = e.Message;
            }
        }
Esempio n. 22
0
        public void CreateBin(int i, int j, int k)
        {
            Bin newbin = new Bin()
            {
                RackNo  = RackNo,
                Section = j,
                Level   = i,
                Depth   = k
            };
            BinViewModel bvm = new BinViewModel(Navigation, newbin);

            if (BinTemplate is BinTemplate)
            {
                FillBinFromTemplate(bvm);
            }
            bvm.OnTap += Bvm_OnTap;
            BinViewModels.Add(bvm);
        }
        public void CreateBins(int depth, int levels, int sections)
        {
            foreach (BinViewModel bvm in BinViewModels)
            {
                bvm.OnTap -= Bvm_OnTap;
            }
            BinViewModels.Clear();

            for (int k = 1; k <= depth; k++)
            {
                for (int i = 1; i <= levels; i++)
                {
                    for (int j = 1; j <= sections; j++)
                    {
                        CreateBin(i, j, k);
                    }
                }
            }
        }
Esempio n. 24
0
        public void DeleteBins()
        {
            List <BinViewModel> selectedlist = BinViewModels.FindAll(x => x.IsSelected == true);

            foreach (BinViewModel bvm in selectedlist)
            {
                DeleteBin(bvm);

                for (int i = 1; i <= bvm.SectionSpan; i++)
                {
                    for (int j = 1; j <= bvm.LevelSpan; j++)
                    {
                        EmptySpaceViewModel esvm = new EmptySpaceViewModel(Navigation);
                        esvm.Section = bvm.Section + i - 1;
                        esvm.Level   = bvm.Level + j - 1;
                        esvm.Depth   = bvm.Depth;
                        esvm.OnTap  += Esvm_OnTap;
                        EmptySpacesViewModels.Add(esvm);
                    }
                }
            }
            MessagingCenter.Send(this, "Update");
        }
Esempio n. 25
0
 public void FillEmptyPositions(int Sections, int Levels)
 {
     for (int i = 1; i <= Sections; i++)
     {
         for (int j = 1; j <= Levels; j++)
         {
             BinViewModel exist = BinViewModels.Find(x => x.Level == j && x.Section == i);
             if (exist is null)
             {
                 EmptySpaceViewModel existesvm = EmptySpacesViewModels.Find(x => x.Level == j && x.Section == i);
                 if (existesvm is null)
                 {
                     EmptySpaceViewModel esvm = new EmptySpaceViewModel(Navigation);
                     esvm.Section = i;
                     esvm.Level   = j;
                     esvm.Depth   = 1;
                     esvm.OnTap  += Esvm_OnTap;
                     EmptySpacesViewModels.Add(esvm);
                 }
             }
         }
     }
 }
Esempio n. 26
0
 public BinViewModel Find(int j, int i, int k)
 {
     return(BinViewModels.Find(x => x.Bin.Section == j && x.Bin.Level == i && x.Bin.Depth == k));
 }
Esempio n. 27
0
        private async void Bvm_OnTap(BinViewModel bvm)
        {
            bvm.Selected = !bvm.Selected;

            BinViewModel selectedbvm = BinViewModels.Find(x => x.Selected == true);

            IsSelectedBins = selectedbvm is BinViewModel;

            if (selectedbvm is BinViewModel)
            {
                SetTemplateBySelectedBin(selectedbvm);
            }

            if (bvm.IsContent)
            {
                bvm.LoadAnimation = true;
                try
                {
                    List <BinContent> bincontent = await NAV.GetBinContentList(LocationCode, ZoneCode, bvm.Code, "", "", 1, int.MaxValue, ACD.Default).ConfigureAwait(true);

                    if ((!IsDisposed) && (bincontent.Count > 0))
                    {
                        bvm.BinContent.Clear();
                        foreach (BinContent bc in bincontent)
                        {
                            BinContentShortViewModel bsvm = new BinContentShortViewModel(Navigation, bc);
                            bvm.BinContent.Add(bsvm);
                        }
                    }
                }
                catch (OperationCanceledException e)
                {
                    System.Diagnostics.Debug.WriteLine("Cancel LoadBinContent", e.Message);
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine(e.Message);
                }
                bvm.LoadAnimation = false;
            }

            List <BinViewModel> list = BinViewModels.FindAll(x => x.Selected == true);

            if (list is List <BinViewModel> )
            {
                ObservableCollection <BinContentShortViewModel> nlist = new ObservableCollection <BinContentShortViewModel>();

                foreach (BinViewModel bvm1 in list)
                {
                    foreach (BinContentShortViewModel bcsvm in bvm1.BinContent)
                    {
                        nlist.Add(bcsvm);
                    }
                }

                SelectedBinContent     = nlist;
                EditedBinCodeIsEnabled = list.Count == 1;
            }
            else
            {
                EditedBinCodeIsEnabled = false;
            }

            if (OnBinClick is Action <BinsViewModel> )
            {
                OnBinClick(this);
            }
        }
Esempio n. 28
0
 private void DeleteBin(BinViewModel bvm)
 {
     bvm.OnTap -= Bvm_OnTap;
     BinViewModels.Remove(bvm);
 }
Esempio n. 29
0
 private BinViewModel GetFirstSelected()
 {
     return(BinViewModels.Find(x => x.Selected == true));
 }
Esempio n. 30
0
        private async void Bvm_OnTap(BinViewModel bvm)
        {
            Select(bvm);

            if (!IsEditMode)
            {
                if (bvm.IsSelected)
                {
                    LastSelectedBinCode = bvm.Code;
                    MessagingCenter.Send(bvm, "BinsViewModel.BinSelected");

                    if (bvm.IsContent)
                    {
                        bvm.LoadAnimation = true;
                        try
                        {
                            NAVFilter navfilter = new NAVFilter
                            {
                                LocationCodeFilter = LocationCode,
                                ZoneCodeFilter     = ZoneCode,
                                BinCodeFilter      = bvm.Code
                            };

                            List <BinContent> bincontent = await NAV.GetBinContentList(navfilter, ACD.Default).ConfigureAwait(true);

                            if ((NotDisposed) && (bincontent.Count > 0))
                            {
                                FillBinContent(bvm, bincontent);
                            }

                            List <BinInfo> bininfo = await NAV.GetBinInfo(bvm.LocationCode, bvm.Code, ACD.Default).ConfigureAwait(true);

                            if (NotDisposed)
                            {
                                FillBinInfo(bvm, bininfo);
                            }
                        }
                        catch (Exception e)
                        {
                            System.Diagnostics.Debug.WriteLine(e.Message);
                        }
                        bvm.LoadAnimation = false;
                    }
                }

                SetSelectedBinContent();
            }

            EditedBinCodeIsEnabled = false;
            List <BinViewModel> list = BinViewModels.FindAll(x => x.IsSelected == true);

            if (list is List <BinViewModel> )
            {
                EditedBinCodeIsEnabled = list.Count == 1;
            }

            if (OnBinClick is Action <BinsViewModel> )
            {
                OnBinClick(this);
            }
        }