Пример #1
0
        private void ToolbarItem_Show_Activated(object sender, EventArgs e)
        {
            LastSelectedOrder.SaleOrderData.CashDiscounts = App.DB.conn.Table <Models.CashDiscount>().ToArray().Where(a => a.OrderId == LastSelectedOrder.SaleOrderData.Id).ToArray();
            var OrderPreviewForm = new OrderPreviewForm(LastSelectedOrder.SaleOrderData, this, null, null, null, false)
            {
                StartColor = Color.FromHex("ffffff"),
                EndColor   = Color.FromHex("ffffff")
            };

            this.Navigation.PushAsync(OrderPreviewForm);
        }
Пример #2
0
        private void ToolbarItem_OrderPreviewForm_Activated(object sender, EventArgs e)
        {
            FocusedQuantityTextBoxId = null;
            if (SelectedPartner == null && !SettlementTypeId.HasValue)
            {
                App.ShowError("خطا", "مشتری و نحوه تسویه را مشخص کنید.", "خوب");
                return;
            }
            else if (SelectedPartner == null)
            {
                App.ShowError("خطا", "مشتری را مشخص کنید.", "خوب");
                return;
            }
            else if (!SettlementTypeId.HasValue)
            {
                App.ShowError("خطا", "نحوه تسویه را مشخص کنید.", "خوب");
                return;
            }

            var WithoutPriceStuffs = AllStuffsData.Where(a => a.Quantity != 0 && !a._UnitPrice.HasValue).ToList();

            if (WithoutPriceStuffs.Any())
            {
                var Message = "برخی اقلام در لیست قیمت این مشتری ثبت نشده اند:\n" + WithoutPriceStuffs.Select(a => a.StuffData.Name).Aggregate((sum, x) => sum + "\n" + x);
                App.ShowError("خطا", Message, "خوب");
                return;
            }

            SaleOrder SaleOrder;

            try
            {
                SaleOrder = MakeOrder(SelectedPartner.Id, SettlementTypeId.Value, DescriptionEditor.Text);
            }
            catch (Exception err)
            {
                App.ShowError("خطا", err.ProperMessage(), "خوب");
                return;
            }

            var OrderPreviewForm = new OrderPreviewForm(SaleOrder, OrdersForm, PartnerListForm, OrderInsertForm, this, true)
            {
                StartColor = Color.FromHex("ffffff"),
                EndColor   = Color.FromHex("ffffff")
            };

            this.Navigation.PushAsync(OrderPreviewForm);
        }
Пример #3
0
        public AddFreeProducts(SaleOrder SaleOrder, OrderPreviewForm OrderPreviewForm)
        {
            InitializeComponent();

            this.SaleOrder        = SaleOrder;
            this.OrderPreviewForm = OrderPreviewForm;

            ArticlesList.HasUnevenRows  = true;
            ArticlesList.SeparatorColor = Color.FromHex("A5ABB7");
            ArticlesList.ItemSelected  += ArticlesList_ItemSelected;
            CustomFreeProductStuffListCell.UnitNameTapEventHandler = (s, e) => {
                var StuffId = (Guid)((TappedEventArgs)e).Parameter;
                UnitNameClicked(StuffId);
            };
            CustomFreeProductStuffListCell.QuantityPlusTapEventHandler = (s, e) => {
                var StuffId = (Guid)((TappedEventArgs)e).Parameter;
                QuantityPlusClicked(StuffId);
            };
            CustomFreeProductStuffListCell.QuantityMinusTapEventHandler = (s, e) => {
                var StuffId = (Guid)((TappedEventArgs)e).Parameter;
                QuantityMinusClicked(StuffId);
            };
            CustomFreeProductStuffListCell.AddedQuantityTextBoxTapEventHandler = async(s, e) =>
            {
                var StuffId = (Guid)((TappedEventArgs)e).Parameter;
                FocusedAddedQuantityTextBoxStuffId = StuffId;
                var ArticleRow = ArticlesData.SingleOrDefault(a => a.StuffId == StuffId);
                if (ArticleRow != null)
                {
                    await Task.Delay(200);

                    ArticlesList.ScrollTo(ArticleRow, ScrollToPosition.Start, true);
                }
            };
            ArticlesList.ItemTemplate = new DataTemplate(typeof(CustomFreeProductStuffListCell));
            ArticlesListHeader.Children.Add(new CustomFreeProductStuffListCell().GetView(false));

            ToolbarItem_SearchBar            = new ToolbarItem();
            ToolbarItem_SearchBar.Text       = "جستجو";
            ToolbarItem_SearchBar.Icon       = "Search.png";
            ToolbarItem_SearchBar.Activated += ToolbarItem_SearchBar_Activated;
            ToolbarItem_SearchBar.Order      = ToolbarItemOrder.Primary;
            ToolbarItem_SearchBar.Priority   = 10;
            if (!this.ToolbarItems.Contains(ToolbarItem_SearchBar) && !StuffsSearchBar.IsVisible)
            {
                this.ToolbarItems.Add(ToolbarItem_SearchBar);
            }

            StuffsSearchBar.TextChanged += async(sender, args) => {
                var thisTextSearchId = Guid.NewGuid();
                LastSearchWhenTypingId = thisTextSearchId;
                await Task.Delay(1000);

                if (LastSearchWhenTypingId == thisTextSearchId)
                {
                    await FillArticlesData(args.NewTextValue);
                }
            };
            StuffsSearchBar.SearchButtonPressed += async(sender, args) =>
            {
                await StuffsSearchBar.FadeTo(0, 350);

                StuffsSearchBar.IsVisible  = false;
                ToolbarItem_SearchBar.Icon = "Search.png";
            };

            ShowingOrder = false;

            FillArticlesData("");

            RowAddedQuantityKeyboard = new MyKeyboard <AddedQuantityEditingArticleModel, decimal>
                                       (
                RowAddedQuantityKeyboardHolder,
                new Command((parameter) => {        //OnOK
                FocusedAddedQuantityTextBoxStuffId = null;
                CalculateTotalAddedDiscount();
            }),
                new Command((parameter) => {        //OnChange
                CalculateTotalAddedDiscount();
            })
                                       );

            CalculateTotalAddedDiscount();
        }
Пример #4
0
        public AddDiscounts(SaleOrder saleOrder, OrderPreviewForm OrderPreviewForm)
        {
            InitializeComponent();

            SaleOrder = new SaleOrderAddedDiscountModel()
            {
                SaleOrder = saleOrder
            };
            OrderAddedDiscountPercent.BindingContext = SaleOrder;
            OrderAddedDiscountPercent.SetBinding(Label.TextProperty, new Binding()
            {
                Mode = BindingMode.OneWay, Path = "AddedDiscountPercentLabel"
            });

            this.OrderPreviewForm = OrderPreviewForm;

            ArticlesList.HasUnevenRows  = true;
            ArticlesList.SeparatorColor = Color.FromHex("A5ABB7");
            ArticlesList.ItemSelected  += ArticlesList_ItemSelected;
            CustomArticleListCell.AddedDiscountPercentPlusTapEventHandler = (s, e) => {
                var ArticleId = (Guid)((TappedEventArgs)e).Parameter;
                AddedDiscountPercentPlusClicked(ArticleId);
            };
            CustomArticleListCell.AddedDiscountPercentMinusTapEventHandler = (s, e) => {
                var ArticleId = (Guid)((TappedEventArgs)e).Parameter;
                AddedDiscountPercentMinusClicked(ArticleId);
            };
            CustomArticleListCell.AddedDiscountPercentTextBoxTapEventHandler = async(s, e) =>
            {
                var ArticleId = (Guid)((TappedEventArgs)e).Parameter;
                FocusedAddedDiscountPercentTextBoxArticleId = ArticleId;
                var ArticleRow = ArticlesData.SingleOrDefault(a => a.ArtcileData.Id == ArticleId);
                if (ArticleRow != null)
                {
                    await Task.Delay(200);

                    ArticlesList.ScrollTo(ArticleRow, ScrollToPosition.Start, true);
                }
            };
            ArticlesList.ItemTemplate = new DataTemplate(typeof(CustomArticleListCell));
            ArticlesListHeader.Children.Add(new CustomArticleListCell().GetView(false));

            ShowingOrder = false;

            FillArticlesData();

            CalculateTotalAddedDiscount();

            var OrderAddedDiscountPercentPlusTapGestureRecognizer = new TapGestureRecognizer();

            OrderAddedDiscountPercentPlusTapGestureRecognizer.Tapped += (s, e) => {
                var NewDiscountPercent      = SaleOrder.SaleOrder.DiscountPercent + 1;
                var NewAddedDiscountPercent = SaleOrder.AddedDiscountPercent + 1;
                var Correction = NewDiscountPercent > 100 ? 100 - NewDiscountPercent : NewAddedDiscountPercent < 0 ? -NewAddedDiscountPercent : 0;
                NewDiscountPercent      += Correction;
                NewAddedDiscountPercent += Correction;

                //SaleOrder.SaleOrder.DiscountPercent = NewDiscountPercent;
                SaleOrder.AddedDiscountPercent = NewAddedDiscountPercent;

                CalculateTotalAddedDiscount();
            };
            OrderAddedDiscountPercentPlusLabel.GestureRecognizers.Add(OrderAddedDiscountPercentPlusTapGestureRecognizer);

            var OrderAddedDiscountPercentMinusTapGestureRecognizer = new TapGestureRecognizer();

            OrderAddedDiscountPercentMinusTapGestureRecognizer.Tapped += (s, e) => {
                var NewDiscountPercent      = SaleOrder.SaleOrder.DiscountPercent - 1;
                var NewAddedDiscountPercent = SaleOrder.AddedDiscountPercent - 1;
                var Correction = NewDiscountPercent > 100 ? 100 - NewDiscountPercent : NewAddedDiscountPercent < 0 ? -NewAddedDiscountPercent : 0;
                NewDiscountPercent      += Correction;
                NewAddedDiscountPercent += Correction;

                //SaleOrder.SaleOrder.DiscountPercent = NewDiscountPercent;
                SaleOrder.AddedDiscountPercent = NewAddedDiscountPercent;

                CalculateTotalAddedDiscount();
            };
            OrderAddedDiscountPercentMinusLabel.GestureRecognizers.Add(OrderAddedDiscountPercentMinusTapGestureRecognizer);

            var OrderAddedDiscountPercentTapGestureRecognizer = new TapGestureRecognizer();

            OrderAddedDiscountPercentTapGestureRecognizer.Tapped += (s, e) => {
                SaleOrder.AddedDiscountPercentFocused = true;

                OrderKeyboardObject = new AddedDiscountPercentEditingOrderModel(SaleOrder, SaleOrder != null ? SaleOrder.AddedDiscountPercent : 0);
                OrderAddedDiscountPercentKeyboard.SetObject(OrderKeyboardObject, a => a.AddedDiscountPercent);
                OrderAddedDiscountPercentKeyboard.Show();

                FocusedAddedDiscountPercentTextBoxArticleId = null;
            };
            OrderAddedDiscountPercent.GestureRecognizers.Add(OrderAddedDiscountPercentTapGestureRecognizer);

            RowAddedDiscountPercentKeyboard = new MyKeyboard <AddedDiscountPercentEditingArticleModel, decimal>
                                              (
                RowAddedDiscountPercentKeyboardHolder,
                new Command((parameter) => {        //OnOK
                FocusedAddedDiscountPercentTextBoxArticleId = null;
                CalculateTotalAddedDiscount();
            }),
                new Command((parameter) => {        //OnChange
                CalculateTotalAddedDiscount();
            })
                                              );

            OrderAddedDiscountPercentKeyboard = new MyKeyboard <AddedDiscountPercentEditingOrderModel, decimal>
                                                (
                OrderAddedDiscountPercentKeyboardHolder,
                new Command((parameter) => {        //OnOK
                SaleOrder.AddedDiscountPercentFocused = false;
                OrderAddedDiscountPercentKeyboard.Hide();
                CalculateTotalAddedDiscount();
            }),
                new Command((parameter) => {        //OnChange
                CalculateTotalAddedDiscount();
            })
                                                );
        }