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.validator.annotation.Extended; 022import io.konik.zugferd.entity.CommonMonetarySummation; 023import io.konik.zugferd.unqualified.Amount; 024 025import javax.validation.Valid; 026import javax.validation.constraints.NotNull; 027import javax.xml.bind.annotation.XmlElement; 028import javax.xml.bind.annotation.XmlType; 029 030/** 031 * 032 * The specified per item monetary summation. 033 */ 034@XmlType(propOrder = { "lineTotal", "totalAllowanceCharge" }) 035public class SpecifiedMonetarySummation extends CommonMonetarySummation { 036 037 @XmlElement(name = "TotalAllowanceChargeAmount") 038 private Amount totalAllowanceCharge; 039 040 @Comfort 041 @Override 042 @NotNull(groups = Comfort.class) 043 public Amount getLineTotal() { 044 return super.getLineTotal(); 045 } 046 047 @Override 048 public SpecifiedMonetarySummation setLineTotal(Amount lineTotal) { 049 super.setLineTotal(lineTotal); 050 return this; 051 } 052 053 /** 054 * Gets the total allowance charge. 055 * 056 * @return the total allowance charge 057 */ 058 @Extended 059 @Valid 060 public Amount getTotalAllowanceCharge() { 061 return totalAllowanceCharge; 062 } 063 064 /** 065 * Sets the total allowance charge. 066 * 067 * @param totalAllowanceCharge the new total allowance charge 068 * @return the specified monetary summation 069 */ 070 public SpecifiedMonetarySummation setTotalAllowanceCharge(Amount totalAllowanceCharge) { 071 this.totalAllowanceCharge = totalAllowanceCharge; 072 return this; 073 } 074}