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); }
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); }
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(); }
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(); }) ); }