001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.module.ar.document.web.struts; 017 018 import java.io.Serializable; 019 020 import org.kuali.kfs.module.ar.businessobject.CustomerInvoiceDetail; 021 import org.kuali.kfs.module.ar.businessobject.InvoicePaidApplied; 022 import org.kuali.rice.kns.util.KualiDecimal; 023 024 public class PaymentApplicationInvoiceDetailApply implements Serializable { 025 026 private static final int DEFAULT_PAID_APPLIED_ITEM_NUMBER = 0; 027 028 private CustomerInvoiceDetail invoiceDetail; 029 private InvoicePaidApplied paidApplied; 030 031 private KualiDecimal amountApplied; 032 private KualiDecimal amountAppliedOldValue; 033 private boolean fullApply; 034 private boolean fullApplyOldValue; 035 private boolean invoiceQuickApplied; 036 private String payAppDocNumber; 037 038 public PaymentApplicationInvoiceDetailApply(String payAppDocNumber, CustomerInvoiceDetail invoiceDetail) { 039 this.invoiceDetail = invoiceDetail; 040 this.amountApplied = KualiDecimal.ZERO; 041 this.amountAppliedOldValue = KualiDecimal.ZERO; 042 this.fullApply = false; 043 this.fullApplyOldValue = false; 044 this.paidApplied = new InvoicePaidApplied(); 045 this.payAppDocNumber = payAppDocNumber; 046 this.invoiceQuickApplied = false; 047 } 048 049 public InvoicePaidApplied generatePaidApplied() { 050 InvoicePaidApplied paidApplied = new InvoicePaidApplied(payAppDocNumber, invoiceDetail.getDocumentNumber(), 051 invoiceDetail.getSequenceNumber(), amountApplied, DEFAULT_PAID_APPLIED_ITEM_NUMBER); 052 return paidApplied; 053 } 054 055 public KualiDecimal getAmountOpen() { 056 return invoiceDetail.getAmountOpen(); 057 } 058 059 public KualiDecimal getAmountApplied() { 060 return amountApplied; 061 } 062 063 public void setAmountApplied(KualiDecimal amountApplied) { 064 this.amountAppliedOldValue = this.amountApplied; 065 if (amountApplied == null) { 066 this.amountApplied = KualiDecimal.ZERO; 067 } 068 else { 069 this.amountApplied = amountApplied; 070 } 071 } 072 073 public boolean isAmountAppliedChanged() { 074 return !amountApplied.equals(amountAppliedOldValue); 075 } 076 077 public boolean isFullApply() { 078 return fullApply; 079 } 080 081 public void setFullApply(boolean fullApply) { 082 this.fullApplyOldValue = this.fullApply; 083 this.fullApply = fullApply; 084 } 085 086 public boolean isFullApplyChanged() { 087 return fullApply != fullApplyOldValue; 088 } 089 090 public CustomerInvoiceDetail getInvoiceDetail() { 091 return invoiceDetail; 092 } 093 094 public String getInvoiceDocumentNumber() { 095 return invoiceDetail.getDocumentNumber(); 096 } 097 098 public Integer getSequenceNumber() { 099 return invoiceDetail.getSequenceNumber(); 100 } 101 102 public String getChartOfAccountsCode() { 103 return invoiceDetail.getChartOfAccountsCode(); 104 } 105 106 public String getAccountNumber() { 107 return invoiceDetail.getAccountNumber(); 108 } 109 110 public String getInvoiceItemDescription() { 111 return invoiceDetail.getInvoiceItemDescription(); 112 } 113 114 public KualiDecimal getAmount() { 115 return invoiceDetail.getAmount(); 116 } 117 118 public boolean isInvoiceQuickApplied() { 119 return invoiceQuickApplied; 120 } 121 122 public void setInvoiceQuickApplied(boolean invoiceQuickApplied) { 123 this.invoiceQuickApplied = invoiceQuickApplied; 124 } 125 126 }