1 package com.srv4pos.server.api.sale;
2
3 import com.srv4pos.server.api.infrastructure.Constraints;
4 import com.srv4pos.server.api.infrastructure.Info;
5 import com.srv4pos.server.api.infrastructure.journal.JournalDate;
6 import org.springframework.roo.addon.javabean.RooJavaBean;
7 import org.springframework.roo.addon.json.RooJson;
8 import org.springframework.roo.addon.tostring.RooToString;
9
10 import javax.validation.Valid;
11 import javax.validation.constraints.Min;
12 import javax.validation.constraints.NotNull;
13 import javax.validation.constraints.Pattern;
14 import javax.validation.constraints.Size;
15 import java.util.Date;
16 import java.util.List;
17
18
19
20
21
22 @RooJavaBean
23 @RooToString
24 @RooJson(deepSerialize = true)
25 public class SaleInfo implements Info {
26
27
28
29
30 public static enum Fields { ID, BRUTTO }
31
32
33
34
35 private long id;
36
37
38
39
40 @NotNull
41 private String sellerIdentifier;
42
43
44
45
46 @NotNull
47 private SaleState saleState;
48
49
50
51
52 @NotNull
53 private boolean refund;
54
55
56
57
58 private Integer refundFor;
59
60
61
62
63 @NotNull
64 @Min(0)
65 private long absoluteDiscount;
66
67
68
69
70 @NotNull
71 @Min(0)
72 private Integer relativeDiscount;
73
74
75
76
77
78
79 @NotNull
80 @Min(0)
81 private long vanillaBrutto;
82
83
84
85
86
87
88
89 @NotNull
90 @Min(0)
91 private long discount;
92
93
94
95
96
97
98 @NotNull
99 @Min(0)
100 private long brutto;
101
102
103
104
105
106
107 @NotNull
108 @Min(0)
109 private long vat;
110
111
112
113
114 @Size(max = 20)
115 private String controlUnitId;
116
117
118
119
120 @Size(max = 50, min = 1)
121 @Pattern(regexp = Constraints.WINDOWS_FILENAME_REGEX)
122 private String treasurer;
123
124
125
126
127 @JournalDate
128 private Date close;
129
130
131
132
133 private String day;
134
135 private Integer version;
136
137
138
139
140 @Valid
141 private List<SaleProductInfo> saleProducts;
142
143
144
145
146 @Valid
147 private List<PrintInfo> prints;
148
149
150
151
152 @Valid
153 private List<PaymentInfo> payments;
154
155 @NotNull
156 @Valid
157 private List<VatRateSumInfo> vatRateSums;
158 }