3
3
using System . ComponentModel . DataAnnotations ;
4
4
using System . ComponentModel . DataAnnotations . Schema ;
5
5
using System . Text . Json . Serialization ;
6
- using DevExpress . ExpressApp ;
7
6
using DevExpress . ExpressApp . DC ;
8
7
using DevExpress . ExpressApp . Utils ;
9
8
using DevExpress . Persistent . Base ;
10
9
using OutlookInspired . Module . Attributes ;
11
10
using OutlookInspired . Module . Features ;
12
11
using OutlookInspired . Module . Features . CloneView ;
13
12
using OutlookInspired . Module . Features . Maps ;
13
+ using BaseEditorAliases = DevExpress . ExpressApp . Editors . EditorAliases ;
14
14
15
-
16
- namespace OutlookInspired . Module . BusinessObjects {
15
+ namespace OutlookInspired . Module . BusinessObjects {
17
16
[ XafDefaultProperty ( nameof ( InvoiceNumber ) ) ]
18
17
[ CloneView ( CloneViewType . DetailView , ChildDetailView ) ]
19
18
[ CloneView ( CloneViewType . DetailView , MapsDetailView ) ]
20
19
[ CloneView ( CloneViewType . DetailView , InvoiceDetailView ) ]
21
20
[ CloneView ( CloneViewType . ListView , ListViewDetail ) ]
22
- [ ImageName ( "BO_Order" ) ] [ VisibleInReports ( true ) ]
23
- public class Order : OutlookInspiredBaseObject , IViewFilter , IRouteMapsMarker {
21
+ [ ImageName ( "BO_Order" ) ]
22
+ [ VisibleInReports ( true ) ]
23
+ public class Order : OutlookInspiredBaseObject , IViewFilter , IRouteMapsMarker {
24
24
public const string MapsDetailView = "Order_DetailView_Maps" ;
25
25
public const string InvoiceDetailView = "Order_Invoice_DetailView" ;
26
26
public const string ChildDetailView = "Order_DetailView_Child" ;
27
27
public const string ListViewDetail = "Order_ListView_Detail" ;
28
-
28
+
29
29
[ XafDisplayName ( "Invoice #" ) ]
30
- [ FontSizeDelta ( 4 ) ] [ MaxLength ( 100 ) ]
31
- public virtual string InvoiceNumber { get ; set ; }
32
-
30
+ [ FontSizeDelta ( 4 ) ]
31
+ [ MaxLength ( 100 ) ]
32
+ public virtual string InvoiceNumber { get ; set ; }
33
+
33
34
public virtual Customer Customer { get ; set ; }
34
35
public virtual CustomerStore Store { get ; set ; }
35
36
[ MaxLength ( 100 ) ]
36
- public virtual string PONumber { get ; set ; }
37
+ public virtual string PONumber { get ; set ; }
37
38
public virtual Employee Employee { get ; set ; }
38
- public virtual DateOnly OrderDate { get ; set ; }
39
+ public virtual DateOnly OrderDate { get ; set ; }
39
40
[ Column ( TypeName = CurrencyType ) ]
40
- public virtual decimal SaleAmount { get ; set ; }
41
+ public virtual decimal SaleAmount { get ; set ; }
41
42
[ Column ( TypeName = CurrencyType ) ]
42
- public virtual decimal ShippingAmount { get ; set ; }
43
+ public virtual decimal ShippingAmount { get ; set ; }
43
44
[ Column ( TypeName = CurrencyType ) ]
44
- public virtual decimal TotalAmount { get ; set ; }
45
+ public virtual decimal TotalAmount { get ; set ; }
45
46
46
47
[ Browsable ( false ) ]
47
48
public virtual int Year => OrderDate . Year ;
48
- public virtual DateTime ? ShipDate { get ; set ; }
49
- public virtual OrderShipMethod ShipMethod { get ; set ; }
49
+ public virtual DateTime ? ShipDate { get ; set ; }
50
+ public virtual OrderShipMethod ShipMethod { get ; set ; }
50
51
[ EditorAlias ( EditorAliases . DxHtmlPropertyEditor ) ]
51
- public virtual byte [ ] OrderTerms { get ; set ; }
52
+ public virtual byte [ ] OrderTerms { get ; set ; }
52
53
[ Aggregated ]
53
- public virtual ObservableCollection < OrderItem > OrderItems { get ; set ; } = new ( ) ;
54
- public virtual ShipmentCourier ShipmentCourier { get ; set ; }
54
+ public virtual ObservableCollection < OrderItem > OrderItems { get ; set ; } = new ( ) ;
55
+ public virtual ShipmentCourier ShipmentCourier { get ; set ; }
55
56
[ EditorAlias ( EditorAliases . EnumImageOnlyEditor ) ]
56
- public virtual ShipmentStatus ShipmentStatus { get ; set ; }
57
+ public virtual ShipmentStatus ShipmentStatus { get ; set ; }
57
58
58
59
[ HideInUI ( HideInUI . DetailView ) ]
59
60
[ XafDisplayName ( nameof ( ShipmentStatus ) ) ]
60
61
[ ImageEditor ( ListViewImageEditorMode = ImageEditorMode . PictureEdit ,
61
- DetailViewImageEditorMode = ImageEditorMode . PictureEdit , ImageSizeMode = ImageSizeMode . Zoom ) ]
62
+ DetailViewImageEditorMode = ImageEditorMode . PictureEdit , ImageSizeMode = ImageSizeMode . Zoom ) ]
62
63
public virtual byte [ ] ShipmentStatusImage => ImageLoader . Instance . GetEnumValueImageInfo ( @ShipmentStatus ) . ImageBytes ;
63
64
64
- [ EditorAlias ( EditorAliases . PdfViewerEditor ) ]
65
+ [ EditorAlias ( BaseEditorAliases . PdfViewerPropertyEditor ) ]
65
66
[ HideInUI ( HideInUI . DetailView ) ]
66
67
[ NotMapped ]
67
- public virtual byte [ ] ShipmentDetail { get ; set ; } = [ ] ;
68
-
69
-
70
- [ EditorAlias ( EditorAliases . PdfViewerEditor ) ]
68
+ public virtual byte [ ] ShipmentDetail { get ; set ; } = [ ] ;
69
+
70
+ [ EditorAlias ( BaseEditorAliases . PdfViewerPropertyEditor ) ]
71
71
// [HideInUI(HideInUI.DetailView)]
72
72
[ VisibleInDetailView ( false ) ]
73
73
[ NotMapped ]
74
- public virtual byte [ ] InvoiceDocument { get ; set ; } = [ ] ;
74
+ public virtual byte [ ] InvoiceDocument { get ; set ; } = [ ] ;
75
75
[ EditorAlias ( EditorAliases . DxHtmlPropertyEditor ) ]
76
- public virtual byte [ ] Comments { get ; set ; }
76
+ public virtual byte [ ] Comments { get ; set ; }
77
77
[ Column ( TypeName = CurrencyType ) ]
78
- public virtual decimal RefundTotal { get ; set ; }
78
+ public virtual decimal RefundTotal { get ; set ; }
79
79
[ Column ( TypeName = CurrencyType ) ]
80
- public virtual decimal PaymentTotal { get ; set ; }
80
+ public virtual decimal PaymentTotal { get ; set ; }
81
81
82
82
[ HideInUI ( HideInUI . ListView ) ]
83
83
[ PersistentAlias ( "[<TaxRate>][State = ^.Customer.BillingAddressState].Single(Rate) * TotalAmount" ) ]
@@ -86,29 +86,27 @@ public class Order :OutlookInspiredBaseObject, IViewFilter,IRouteMapsMarker{
86
86
[ PersistentAlias ( "Iif(" + nameof ( PaymentTotal ) + "=0 AND " + nameof ( RefundTotal ) + "=0,0,Iif(" +
87
87
nameof ( RefundTotal ) + "=" + nameof ( TotalAmount ) + ",3,Iif(" + nameof ( PaymentTotal ) + "=" +
88
88
nameof ( TotalAmount ) + ",1,2)))" ) ]
89
- public PaymentStatus PaymentStatus
89
+ public PaymentStatus PaymentStatus
90
90
=> Enum . TryParse ( EvaluateAlias ( ) as string , out PaymentStatus result ) ? result : PaymentStatus . Other ;
91
91
92
92
[ HideInUI ( HideInUI . DetailView ) ]
93
93
[ XafDisplayName ( nameof ( ShipmentStatus ) ) ]
94
94
[ ImageEditor ( ListViewImageEditorMode = ImageEditorMode . PictureEdit ,
95
- DetailViewImageEditorMode = ImageEditorMode . PictureEdit , ImageSizeMode = ImageSizeMode . Zoom ) ]
95
+ DetailViewImageEditorMode = ImageEditorMode . PictureEdit , ImageSizeMode = ImageSizeMode . Zoom ) ]
96
96
public byte [ ] PaymentStatusImage => ImageLoader . Instance . GetEnumValueImageInfo ( PaymentStatus ) . ImageBytes ;
97
-
98
- public double ActualWeight
97
+ public double ActualWeight
99
98
=> OrderItems == null ? 0 : OrderItems . Where ( item => item . Product != null )
100
99
. Sum ( item => item . Product . Weight * item . ProductUnits ) ;
101
100
102
101
[ EditorAlias ( EditorAliases . MapHomeOfficePropertyEditor ) ]
103
- public Location Location => new ( ) { Latitude = ( ( IBaseMapsMarker ) this ) . Latitude , Longitude = ( ( IBaseMapsMarker ) this ) . Longitude } ;
102
+ public Location Location => new ( ) { Latitude = ( ( IBaseMapsMarker ) this ) . Latitude , Longitude = ( ( IBaseMapsMarker ) this ) . Longitude } ;
104
103
string IBaseMapsMarker . Title => Store ? . Customer . Name ;
105
104
106
- double IBaseMapsMarker . Latitude => Store ? . Latitude ?? 0 ;
107
-
108
- double IBaseMapsMarker . Longitude => Store ? . Longitude ?? 0 ;
105
+ double IBaseMapsMarker . Latitude => Store ? . Latitude ?? 0 ;
109
106
107
+ double IBaseMapsMarker . Longitude => Store ? . Longitude ?? 0 ;
110
108
}
111
-
109
+
112
110
[ JsonConverter ( typeof ( JsonStringEnumConverter ) ) ]
113
111
public enum OrderShipMethod {
114
112
Ground , Air
@@ -129,11 +127,11 @@ public enum ShipmentStatus {
129
127
[ JsonConverter ( typeof ( JsonStringEnumConverter ) ) ]
130
128
public enum PaymentStatus {
131
129
[ ImageName ( "PaymentUnPaid" ) ]
132
- Unpaid ,
130
+ Unpaid ,
133
131
[ ImageName ( "PaymentPaid" ) ]
134
- PaidInFull ,
132
+ PaidInFull ,
135
133
[ ImageName ( "PaymentRefund" ) ]
136
134
RefundInFull ,
137
135
Other
138
136
}
139
- }
137
+ }
0 commit comments