/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.tem.businessobject;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import org.kuali.kfs.fp.businessobject.TravelCompanyCode;
import org.kuali.rice.core.api.util.type.KualiDecimal;
public interface TemExpense {
@Id
@Column(name = "id", nullable = false)
public Long getId();
public void setId(final Long id);
@Column(name = "fdoc_nbr", length = 14, nullable = false)
public String getDocumentNumber();
public void setDocumentNumber(String documentNumber);
@Column(name = "fdoc_line_nbr", nullable = false)
public Integer getDocumentLineNumber();
public void setDocumentLineNumber(Integer documentLineNumber);
@Column(name = "exp_parent_id", nullable = true)
public Long getExpenseParentId();
public void setExpenseParentId(Long expenseParentId);
@Column(name = "exp_dt", nullable = true)
public Date getExpenseDate();
public void setExpenseDate(Date expenseDate);
/**
* Gets the value of reimbursable
*
* @return the value of reimbursable
*/
@Column(name = "NON_REIM_IND", nullable = true, length = 1)
public Boolean getNonReimbursable();
/**
* Sets the value of reimbursable
*
* @param argReimbursable Value to assign to this.reimbursable
*/
public void setNonReimbursable(final Boolean nonReimbursable);
/**
* Gets the value of taxable
*
* @return the value of taxable
*/
@Column(name = "TAXABLE_IND", nullable = true, length = 1)
public Boolean getTaxable();
/**
* Sets the value of taxable
*
* @param argTaxable Value to assign to this.taxable
*/
public void setTaxable(final Boolean argTaxable);
/**
* Gets the value of missingReceipt
*
* @return the value of missingReceipt
*/
@Column(name = "MISG_RCPT_IND", nullable = true, length = 1)
public Boolean getMissingReceipt();
/**
* Sets the value of missingReceipt
*
* @param argMissingReceipt Value to assign to this.missingReceipt
*/
public void setMissingReceipt(final Boolean argMissingReceipt);
@Column(name = "EXP_AMT", precision = 19, scale = 2, nullable = false)
public KualiDecimal getExpenseAmount();
public void setExpenseAmount(KualiDecimal expenseAmount);
/**
* Gets the value of description
*
* @return the value of description
*/
@Column(name = "EXP_DESC", length = 255, nullable = true)
public String getDescription();
/**
* Sets the value of description
*
* @param argDescription Value to assign to this.description
*/
public void setDescription(final String argDescription);
/**
* Gets the value of description
*
* @return the value of description
*/
public String getNotes();
/**
* Sets the value of description
*
* @param argDescription Value to assign to this.description
*/
public void setNotes(final String argDescription);
/**
* Gets the value of currencyRate
*
* @return the value of currencyRate
*/
@Column(name = "CUR_RT", precision = 4, scale = 3, nullable = false)
public BigDecimal getCurrencyRate();
/**
* Sets the value of currencyRate
*
* @param argCurrencyRate Value to assign to this.currencyRate
*/
public void setCurrencyRate(final BigDecimal argCurrencyRate);
/**
* Sets the value of convertedAmount
*
* @param convertedAmount value to assign to this.convertedAmount
*/
public void setConvertedAmount(final KualiDecimal convertedAmount);
/**
* Get the value of convertedAmount
*
* @return the value of convertedAmount
*/
@Column(name = "CONVERTED_AMT", precision = 7, scale = 2, nullable = true)
public KualiDecimal getConvertedAmount();
/**
* Gets the value of travelCompanyCodeName
*
* @return the value of travelCompanyCodeName
*/
@Column(name = "DV_EXP_CO_NM", nullable = false)
public String getTravelCompanyCodeName();
/**
* Sets the value of travelCompanyCodeName
*
* @param argTravelCompanyCodeName Value to assign to this.travelCompanyCodeName
*/
public void setTravelCompanyCodeName(final String argTravelCompanyCodeName);
/**
* Gets the value of travelCompanyCode
*
* @return the value of travelCompanyCode
*/
@ManyToOne
@JoinColumn(name = "DV_EXP_CO_NM", nullable = false)
public TravelCompanyCode getTravelCompanyCode();
/**
* Sets the value of travelCompanyCode
*
* @param argTravelCompanyCode Value to assign to this.travelCompanyCode
*/
public void setTravelCompanyCode(final TravelCompanyCode argTravelCompanyCode);
/**
* Gets the expenseDetails attribute.
* @return Returns the expenseDetails.
*/
public List<? extends TemExpense> getExpenseDetails();
/**
* Sets the expenseDetails attribute value.
* @param expenseDetails The expenseDetails to set.
*/
public void setExpenseDetails(List<TemExpense> expenseDetails);
/**
* Get the total detail expenses amount
*
* @return
*/
public KualiDecimal getTotalDetailExpenseAmount();
/**
* @param expense
*/
public void addExpenseDetails(TemExpense expense);
public String getSequenceName();
public String getExpenseLineTypeCode();
public void setExpenseLineTypeCode(String expenseLineTypeCode);
public String getClassOfServiceCode();
public boolean isRentalCar();
public Boolean getRentalCarInsurance();
public String getExpenseTypeCode();
public Long getExpenseTypeObjectCodeId();
public void setExpenseTypeObjectCodeId(Long expenseTypeObjectCodeId);
public ExpenseTypeObjectCode getExpenseTypeObjectCode();
public void setExpenseTypeObjectCode(ExpenseTypeObjectCode expenseTypeObjectCode);
/**
* Requests that this expense refresh its expense type object code (and, by implication, expenseTypeObjectCodeId) based on the values passed in
* @param documentTypeName the document type name of the document owning this expense
* @param travelerTypeCode the traveler type code of the traveler associated with the document which owns this expense
* @param tripCode the trip type code associated with teh document which owns this expense
*/
public void refreshExpenseTypeObjectCode(String documentTypeName, String travelerTypeCode, String tripTypeCode);
}