001/* Copyright (C) 2014 konik.io 002 * 003 * This file is part of the Konik library. 004 * 005 * The Konik library is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * The Konik library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with the Konik library. If not, see <http://www.gnu.org/licenses/>. 017 */ 018package io.konik.zugferd.entity.trade.item; 019 020import io.konik.validator.annotation.Comfort; 021import io.konik.zugferd.entity.CommonMonetarySummation; 022import io.konik.zugferd.unqualified.Amount; 023 024import javax.validation.Valid; 025import javax.validation.constraints.NotNull; 026import javax.xml.bind.annotation.XmlElement; 027import javax.xml.bind.annotation.XmlType; 028 029/** 030 * 031 * The specified per item monetary summation. 032 */ 033@XmlType(propOrder = { "lineTotal", "totalAllowanceCharge" }) 034public class SpecifiedMonetarySummation extends CommonMonetarySummation { 035 036 @Valid 037 @XmlElement(name = "TotalAllowanceChargeAmount") 038 private Amount totalAllowanceCharge; 039 040 @Override 041 @NotNull(groups = Comfort.class) 042 public Amount getLineTotal() { 043 return super.getLineTotal(); 044 } 045 046 @Override 047 public SpecifiedMonetarySummation setLineTotal(Amount lineTotal) { 048 super.setLineTotal(lineTotal); 049 return this; 050 } 051 052 /** 053 * Gets the total allowance charge. 054 * 055 * @return the total allowance charge 056 */ 057 public Amount getTotalAllowanceCharge() { 058 return totalAllowanceCharge; 059 } 060 061 /** 062 * Sets the total allowance charge. 063 * 064 * @param totalAllowanceCharge the new total allowance charge 065 * @return 066 */ 067 public SpecifiedMonetarySummation setTotalAllowanceCharge(Amount totalAllowanceCharge) { 068 this.totalAllowanceCharge = totalAllowanceCharge; 069 return this; 070 } 071}