123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Windows;
- using System.Windows.Media.Imaging;
- using com.sun.org.apache.xpath.@internal;
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- using Syncfusion.UI.Xaml.Diagram.Controls;
- namespace PRSDesktop
- {
- public class SupplierBills : DynamicDataGrid<Bill>
- {
- private static readonly BitmapImage? tick = PRSDesktop.Resources.tick.AsBitmapImage();
- private static readonly BitmapImage? post = PRSDesktop.Resources.post.AsBitmapImage();
- private static readonly BitmapImage? warning = PRSDesktop.Resources.warning.AsBitmapImage();
- private static readonly BitmapImage? refresh = PRSDesktop.Resources.refresh.AsBitmapImage();
- private readonly BitmapImage pdf = PRSDesktop.Resources.doc_pdf.AsBitmapImage();
- public SupplierBills()
- {
- HiddenColumns.Add(x => x.PostedStatus);
- HiddenColumns.Add(x => x.PostedStatus);
- HiddenColumns.Add(x => x.PostedNote);
- ActionColumns.Add(new DynamicImageColumn(Approved_Image, null));
-
- ActionColumns.Add(new DynamicImageColumn(Posted_Image, null)
- {
- ToolTip = Posted_ToolTip
- });
- }
- protected override void DoReconfigure(FluentList<DynamicGridOption> options)
- {
- base.DoReconfigure(options);
- options
- .BeginUpdate()
- .Add(DynamicGridOption.FilterRows)
- .Add(DynamicGridOption.SelectColumns)
- .Add(DynamicGridOption.MultiSelect)
- .Add(DynamicGridOption.RecordCount)
- .Add(DynamicGridOption.ShowHelp)
- .EndUpdate();
- }
- private FrameworkElement? Posted_ToolTip(DynamicActionColumn column, CoreRow? row)
- {
- if (row is null)
- {
- return column.TextToolTip("Bill Processed Status");
- }
- return column.TextToolTip(row.Get<Bill, PostedStatus>(x => x.PostedStatus) switch
- {
- PostedStatus.PostFailed => "Post failed: " + row.Get<Bill, string>(x => x.PostedNote),
- PostedStatus.RequiresRepost => "Repost required: " + row.Get<Bill, string>(x => x.PostedNote),
- PostedStatus.Posted => "Processed",
- PostedStatus.NeverPosted or _ => "Not posted yet",
- });
- }
-
- private BitmapImage? Approved_Image(CoreRow? row)
- {
- return (row != null) && row.Get<Bill, DateTime>(x => x.Approved).IsEmpty()
- ? null
- : tick;
- }
- private BitmapImage? Posted_Image(CoreRow? row)
- {
- if (row is null)
- return post;
- return row.Get<Bill, PostedStatus>(x => x.PostedStatus) switch
- {
- PostedStatus.PostFailed => warning,
- PostedStatus.Posted => tick,
- PostedStatus.RequiresRepost => refresh,
- PostedStatus.NeverPosted or _ => null,
- };
- }
- public Bill[] LoadBills(CoreRow[] rows)
- {
- return LoadItems(rows);
- }
- }
- }
|