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}