001/*
002 * Copyright (C) 2014 konik.io
003 *
004 * This file is part of Konik library.
005 *
006 * Konik library is free software: you can redistribute it and/or modify
007 * it under the terms of the GNU Affero General Public License as published by
008 * the Free Software Foundation, either version 3 of the License, or
009 * (at your option) any later version.
010 *
011 * Konik library is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014 * GNU Affero General Public License for more details.
015 *
016 * You should have received a copy of the GNU Affero General Public License
017 * along with Konik library.  If not, see <http://www.gnu.org/licenses/>.
018 */
019package io.konik.zugferd.entity;
020
021import io.konik.zugferd.unqualified.Amount;
022
023import javax.validation.Valid;
024import javax.xml.bind.annotation.XmlAccessType;
025import javax.xml.bind.annotation.XmlAccessorType;
026import javax.xml.bind.annotation.XmlElement;
027import javax.xml.bind.annotation.XmlType;
028
029
030/**
031 * = The Monetary Summation
032 * 
033 */
034@XmlAccessorType(XmlAccessType.FIELD)
035@XmlType(name = "TradeSettlementMonetarySummationType", propOrder = { "netTotal", "chargeTotal",
036                "allowanceTotal", "taxBasisTotal", "taxTotal", "grandTotal", "totalPrepaid", "duePayable" })
037public class MonetarySummation {
038
039        /** The "net total" amount. */
040   @Valid
041        @XmlElement(name = "LineTotalAmount")
042        private Amount netTotal;
043
044        /** The charges total amount. */
045   @Valid
046        @XmlElement(name = "ChargeTotalAmount")
047        private Amount chargeTotal;
048
049        /** The allowance total amount. */
050   @Valid
051        @XmlElement(name = "AllowanceTotalAmount")
052        private Amount allowanceTotal;
053
054        /** The tax basis total amount. The invoice net sum = netTotal + charges - allowance. */
055        @XmlElement(name = "TaxBasisTotalAmount")
056        @Valid
057        private Amount taxBasisTotal;
058
059        /** The total tax amount. */
060        @Valid
061        @XmlElement(name = "TaxTotalAmount")
062        private Amount taxTotal;
063
064        /** The grand total amount. */
065        @Valid
066        @XmlElement(name = "GrandTotalAmount")
067        private Amount grandTotal;
068
069        /** The total prepaid amount. */
070        @Valid
071        @XmlElement(name = "TotalPrepaidAmount")
072        private Amount totalPrepaid;
073
074        /** The due payable amount. */
075        @Valid
076        @XmlElement(name = "DuePayableAmount")
077        private Amount duePayable;
078
079        /**
080         * Gets the line total amount.
081         * 
082         * Profile:: BASIC
083         * 
084         * 
085         * @return the line total amount
086         */
087        public Amount getNetTotal() {
088                return netTotal;
089        }
090
091        /**
092         * Sets the line total amount.
093         * 
094         * Profile:: BASIC
095         * 
096         * 
097         * @param netTotal the new line total amount
098         * @return the trade settlement monetary summation
099         */
100        public MonetarySummation setNetTotal(Amount netTotal) {
101                this.netTotal = netTotal;
102                return this;
103        }
104
105        /**
106         * Gets the charge total amount.
107         * 
108         * Profile:: BASIC
109         * 
110         * 
111         * @return the charge total amount
112         */
113        public Amount getChargeTotal() {
114                return chargeTotal;
115        }
116
117        /**
118         * Sets the charge total amount.
119         * 
120         * Profile:: BASIC
121         * 
122         * 
123         * @param chargeTotal the new charge total amount
124         * @return the trade settlement monetary summation
125         */
126        public MonetarySummation setChargeTotal(Amount chargeTotal) {
127                this.chargeTotal = chargeTotal;
128                return this;
129        }
130
131        /**
132         * Gets the allowance total amount.
133         * 
134         * Profile:: BASIC
135         * 
136         * @return the allowance total amount
137         */
138        public Amount getAllowanceTotal() {
139                return allowanceTotal;
140        }
141
142        /**
143         * Sets the allowance total amount.
144         * 
145         * Profile:: BASIC
146         * 
147         * @param allowanceTotal the new allowance total amount
148         * @return the trade settlement monetary summation
149         */
150        public MonetarySummation setAllowanceTotal(Amount allowanceTotal) {
151                this.allowanceTotal = allowanceTotal;
152                return this;
153        }
154
155        /**
156         * Gets the tax basis total amount.
157         * The invoice net sum = netTotal + charges - allowence.
158         * 
159         * Profile:: BASIC
160         * 
161         * @return the tax basis total amount
162         */
163        public Amount getTaxBasisTotal() {
164                return taxBasisTotal;
165        }
166
167        /**
168         * Sets the tax basis total amount.
169         * The invoice net sum = netTotal + charges - allowence.
170         * 
171         * Profile:: BASIC
172         * 
173         * @param taxBasisTotal the new tax basis total amount
174         * @return the trade settlement monetary summation
175         */
176        public MonetarySummation setTaxBasisTotal(Amount taxBasisTotal) {
177                this.taxBasisTotal = taxBasisTotal;
178                return this;
179        }
180
181        /**
182         * Gets the total tax amount.
183         * 
184         * Profile:: BASIC
185         * 
186         * @return the tax total amount
187         */
188        public Amount getTaxTotal() {
189                return taxTotal;
190        }
191
192        /**
193         * Sets the total tax amount.
194         * 
195         * Profile:: BASIC
196         * 
197         * @param taxTotal the new tax total amount
198         * @return the trade settlement monetary summation
199         */
200        public MonetarySummation setTaxTotal(Amount taxTotal) {
201                this.taxTotal = taxTotal;
202                return this;
203        }
204
205        /**
206         * Gets the grand total amount.
207         * 
208         * Profile:: BASIC
209         * 
210         * @return the grand total amount
211         */
212        public Amount getGrandTotal() {
213                return grandTotal;
214        }
215
216        /**
217         * Sets the grand total amount.
218         * 
219         * Profile:: BASIC
220         * 
221         * 
222         * @param grandTotal the new grand total amount
223         * @return the trade settlement monetary summation
224         */
225        public MonetarySummation setGrandTotal(Amount grandTotal) {
226                this.grandTotal = grandTotal;
227                return this;
228        }
229
230        /**
231         * Gets the total prepaid amount.
232         * 
233         * Profile:: COMFORT
234         * 
235         * 
236         * @return the total prepaid amount
237         */
238        public Amount getTotalPrepaid() {
239                return totalPrepaid;
240        }
241
242        /**
243         * Sets the total prepaid amount.
244
245         * Profile:: COMFORT
246
247         * 
248         * @param totalPrepaid the new total prepaid amount
249         * @return the trade settlement monetary summation
250         */
251        public MonetarySummation setTotalPrepaid(Amount totalPrepaid) {
252                this.totalPrepaid = totalPrepaid;
253                return this;
254        }
255
256        /**
257         * Gets the due payable amount.
258         * 
259         * Profile:: COMFORT
260         * 
261         * 
262         * @return the due payable amount
263         */
264        public Amount getDuePayable() {
265                return duePayable;
266        }
267
268        /**
269         * Sets the due payable amount.
270
271         * Profile:: COMFORT
272
273         * 
274         * @param duePayable the new due payable amount
275         * @return the trade settlement monetary summation
276         */
277        public MonetarySummation setDuePayable(Amount duePayable) {
278                this.duePayable = duePayable;
279                return this;
280        }
281
282}