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    
017    /*
018     * Created on Feb 13, 2006
019     *
020     */
021    package org.kuali.kfs.module.purap.businessobject;
022    
023    import java.math.BigDecimal;
024    
025    import org.apache.commons.lang.builder.ToStringBuilder;
026    import org.kuali.kfs.module.purap.PurapConstants;
027    import org.kuali.kfs.module.purap.service.ElectronicInvoiceMappingService;
028    
029    public class ElectronicInvoiceDetailRequestSummary {
030      
031      private String subTotalAmount; // has money xml node
032      private String subTotalAmountCurrency;
033      private String taxAmount; // has money xml node  (not all tax fields are stored as tax should never occur)
034      private String taxAmountCurrency;
035      private String taxDescription;
036      private String specialHandlingAmount; // has money xml node
037      private String specialHandlingAmountCurrency;
038      private String specialHandlingAmountDescription;
039      private String shippingAmount; // has money xml node
040      private String shippingAmountCurrency;
041      // grossAmount should = subTotalAmount + taxAmount + specialHandlingAmount + shippingAmount 
042      private String grossAmount; // subTotal + taxes + shipping + special handling
043      private String grossAmountCurrency;
044      private String discountAmount; // has money xml node
045      private String discountAmountCurrency;
046      // netAmount should = grossAmount - discountAmount 
047      private String netAmount;  // has money xml node
048      private String netAmountCurrency;
049      private String depositAmount;  // has money xml node
050      private String depositAmountCurrency;
051      // dueAmount should = newAmount - depositAmount
052      private String dueAmount;  // has money xml node
053      private String dueAmountCurrency;
054      
055      /**
056       * Newly Added
057       */
058      private String taxCategory;
059      private String taxPurpose;
060      private String taxPercentageRate;
061    //  private String taxableAmount;
062    //  private String taxableAmountCurrency;
063      
064      public ElectronicInvoiceDetailRequestSummary() {
065        super();
066      }
067      
068      public String getShippingDescription() {
069        if (this.shippingAmount != null) {
070          try {
071            if (BigDecimal.ZERO.compareTo(this.getInvoiceShippingAmount()) != 0) {
072              return PurapConstants.ElectronicInvoice.DEFAULT_SHIPPING_DESCRIPTION;
073            } else {
074              return null;
075            }
076          } catch (Throwable t) {
077            return null;
078          }
079        }
080        return null;
081      }
082      
083      public BigDecimal getInvoiceSubTotalAmount() {
084        if ( (this.subTotalAmount == null) || ("".equals(this.subTotalAmount)) ) {
085          return BigDecimal.ZERO;
086        } else {
087          return new BigDecimal(this.subTotalAmount);
088        }
089      }
090    
091      public BigDecimal getInvoiceTaxAmount() {
092        if ( (this.taxAmount == null) || ("".equals(this.taxAmount)) ) {
093          return BigDecimal.ZERO;
094        } else {
095          return new BigDecimal(this.taxAmount);
096        }
097      }
098    
099      public BigDecimal getInvoiceSpecialHandlingAmount() {
100        if ( (this.specialHandlingAmount == null) || ("".equals(this.specialHandlingAmount)) ) {
101          return BigDecimal.ZERO;
102        } else {
103          return new BigDecimal(this.specialHandlingAmount);
104        }
105      }
106    
107      public BigDecimal getInvoiceShippingAmount() {
108        if ( (this.shippingAmount == null) || ("".equals(this.shippingAmount)) ) {
109          return BigDecimal.ZERO;
110        } else {
111          return new BigDecimal(this.shippingAmount);
112        }
113      }
114    
115      public BigDecimal getInvoiceGrossAmount() {
116        if ( (this.grossAmount == null) || ("".equals(this.grossAmount)) ) {
117          return BigDecimal.ZERO;
118        } else {
119          return new BigDecimal(this.grossAmount);
120        }
121      }
122    
123      public BigDecimal getInvoiceDiscountAmount() {
124        if ( (this.discountAmount == null) || ("".equals(this.discountAmount)) ) {
125          return BigDecimal.ZERO;
126        } else {
127          return new BigDecimal(this.discountAmount);
128        }
129      }
130    
131      public BigDecimal getInvoiceNetAmount() {
132        if ( (this.netAmount == null) || ("".equals(this.netAmount)) ) {
133          return BigDecimal.ZERO;
134        } else {
135          return new BigDecimal(this.netAmount);
136        }
137      }
138      
139      public BigDecimal getInvoiceDepositAmount() {
140        if ( (this.depositAmount == null) || ("".equals(this.depositAmount)) ) {
141          return BigDecimal.ZERO;
142        } else {
143          return new BigDecimal(this.depositAmount);
144        }
145      }
146      
147      public BigDecimal getInvoiceDueAmount() {
148        if ( (this.dueAmount == null) || ("".equals(this.dueAmount)) ) {
149          return BigDecimal.ZERO;
150        } else {
151          return new BigDecimal(this.dueAmount);
152        }
153      }
154      
155      /**
156       * @return Returns the depositAmount.
157       */
158      public String getDepositAmount() {
159        return depositAmount;
160      }
161      /**
162       * @param depositAmount The depositAmount to set.
163       */
164      public void setDepositAmount(String depositAmount) {
165        this.depositAmount = depositAmount;
166      }
167      /**
168       * @return Returns the depositAmountCurrency.
169       */
170      public String getDepositAmountCurrency() {
171        return depositAmountCurrency;
172      }
173      /**
174       * @param depositAmountCurrency The depositAmountCurrency to set.
175       */
176      public void setDepositAmountCurrency(String depositAmountCurrency) {
177        this.depositAmountCurrency = depositAmountCurrency;
178      }
179      /**
180       * @return Returns the discountAmount.
181       */
182      public String getDiscountAmount() {
183        return discountAmount;
184      }
185      /**
186       * @param discountAmount The discountAmount to set.
187       */
188      public void setDiscountAmount(String discountAmount) {
189        this.discountAmount = discountAmount;
190      }
191      /**
192       * @return Returns the discountAmountCurrency.
193       */
194      public String getDiscountAmountCurrency() {
195        return discountAmountCurrency;
196      }
197      /**
198       * @param discountAmountCurrency The discountAmountCurrency to set.
199       */
200      public void setDiscountAmountCurrency(String discountAmountCurrency) {
201        this.discountAmountCurrency = discountAmountCurrency;
202      }
203      /**
204       * @return Returns the dueAmount.
205       */
206      public String getDueAmount() {
207        return dueAmount;
208      }
209      /**
210       * @param dueAmount The dueAmount to set.
211       */
212      public void setDueAmount(String dueAmount) {
213        this.dueAmount = dueAmount;
214      }
215      /**
216       * @return Returns the dueAmountCurrency.
217       */
218      public String getDueAmountCurrency() {
219        return dueAmountCurrency;
220      }
221      /**
222       * @param dueAmountCurrency The dueAmountCurrency to set.
223       */
224      public void setDueAmountCurrency(String dueAmountCurrency) {
225        this.dueAmountCurrency = dueAmountCurrency;
226      }
227      /**
228       * @return Returns the grossAmount.
229       */
230      public String getGrossAmount() {
231        return grossAmount;
232      }
233      /**
234       * @param grossAmount The grossAmount to set.
235       */
236      public void setGrossAmount(String grossAmount) {
237        this.grossAmount = grossAmount;
238      }
239      /**
240       * @return Returns the grossAmountCurrency.
241       */
242      public String getGrossAmountCurrency() {
243        return grossAmountCurrency;
244      }
245      /**
246       * @param grossAmountCurrency The grossAmountCurrency to set.
247       */
248      public void setGrossAmountCurrency(String grossAmountCurrency) {
249        this.grossAmountCurrency = grossAmountCurrency;
250      }
251      /**
252       * @return Returns the netAmount.
253       */
254      public String getNetAmount() {
255        return netAmount;
256      }
257      /**
258       * @param netAmount The netAmount to set.
259       */
260      public void setNetAmount(String netAmount) {
261        this.netAmount = netAmount;
262      }
263      /**
264       * @return Returns the netAmountCurrency.
265       */
266      public String getNetAmountCurrency() {
267        return netAmountCurrency;
268      }
269      /**
270       * @param netAmountCurrency The netAmountCurrency to set.
271       */
272      public void setNetAmountCurrency(String netAmountCurrency) {
273        this.netAmountCurrency = netAmountCurrency;
274      }
275      /**
276       * @return Returns the shippingAmount.
277       */
278      public String getShippingAmount() {
279        return shippingAmount;
280      }
281      /**
282       * @param shippingAmount The shippingAmount to set.
283       */
284      public void setShippingAmount(String shippingAmount) {
285        this.shippingAmount = shippingAmount;
286      }
287      /**
288       * @return Returns the shippingAmountCurrency.
289       */
290      public String getShippingAmountCurrency() {
291        return shippingAmountCurrency;
292      }
293      /**
294       * @param shippingAmountCurrency The shippingAmountCurrency to set.
295       */
296      public void setShippingAmountCurrency(String shippingAmountCurrency) {
297        this.shippingAmountCurrency = shippingAmountCurrency;
298      }
299      /**
300       * @return Returns the specialHandlingAmount.
301       */
302      public String getSpecialHandlingAmount() {
303        return specialHandlingAmount;
304      }
305      /**
306       * @param specialHandlingAmount The specialHandlingAmount to set.
307       */
308      public void setSpecialHandlingAmount(String specialHandlingAmount) {
309        this.specialHandlingAmount = specialHandlingAmount;
310      }
311      /**
312       * @return Returns the specialHandlingAmountCurrency.
313       */
314      public String getSpecialHandlingAmountCurrency() {
315        return specialHandlingAmountCurrency;
316      }
317      /**
318       * @param specialHandlingAmountCurrency The specialHandlingAmountCurrency to set.
319       */
320      public void setSpecialHandlingAmountCurrency(String specialHandlingAmountCurrency) {
321        this.specialHandlingAmountCurrency = specialHandlingAmountCurrency;
322      }
323      /**
324       * @return the specialHandlingAmountDescription
325       */
326      public String getSpecialHandlingAmountDescription() {
327          if (this.specialHandlingAmount != null) {
328              try {
329                if (BigDecimal.ZERO.compareTo(this.getInvoiceSpecialHandlingAmount()) != 0) {
330                  return PurapConstants.ElectronicInvoice.DEFAULT_SPECIAL_HANDLING_DESCRIPTION;
331                } else {
332                  return null;
333                }
334              } catch (Throwable t) {
335                return null;
336              }
337            }
338           return null;
339      }
340      
341      /**
342       * @param specialHandlingAmountDescription the specialHandlingAmountDescription to set
343       */
344      public void setSpecialHandlingAmountDescription(String specialHandlingAmountDescription) {
345        this.specialHandlingAmountDescription = specialHandlingAmountDescription;
346      }
347      /**
348       * @return Returns the subTotalAmount.
349       */
350      public String getSubTotalAmount() {
351        return subTotalAmount;
352      }
353      /**
354       * @param subTotalAmount The subTotalAmount to set.
355       */
356      public void setSubTotalAmount(String subTotalAmount) {
357        this.subTotalAmount = subTotalAmount;
358      }
359      /**
360       * @return Returns the subTotalAmountCurrency.
361       */
362      public String getSubTotalAmountCurrency() {
363        return subTotalAmountCurrency;
364      }
365      /**
366       * @param subTotalAmountCurrency The subTotalAmountCurrency to set.
367       */
368      public void setSubTotalAmountCurrency(String subTotalAmountCurrency) {
369        this.subTotalAmountCurrency = subTotalAmountCurrency;
370      }
371      /**
372       * @return Returns the taxAmount.
373       */
374      public String getTaxAmount() {
375        return taxAmount;
376      }
377      /**
378       * @param taxAmount The taxAmount to set.
379       */
380      public void setTaxAmount(String taxAmount) {
381        this.taxAmount = taxAmount;
382      }
383      /**
384       * @return Returns the taxAmountCurrency.
385       */
386      public String getTaxAmountCurrency() {
387        return taxAmountCurrency;
388      }
389      /**
390       * @param taxAmountCurrency The taxAmountCurrency to set.
391       */
392      public void setTaxAmountCurrency(String taxAmountCurrency) {
393        this.taxAmountCurrency = taxAmountCurrency;
394      }
395      /**
396       * @return Returns the taxDescription.
397       */
398      public String getTaxDescription() {
399        return taxDescription;
400      }
401      /**
402       * @param taxDescription The taxDescription to set.
403       */
404      public void setTaxDescription(String taxDescription) {
405        this.taxDescription = taxDescription;
406      }
407      
408      public String getTaxCategory() {
409          return taxCategory;
410      }
411    
412      public void setTaxCategory(String taxCategory) {
413          this.taxCategory = taxCategory;
414      }
415      
416      public String getTaxPercentageRate() {
417          return taxPercentageRate;
418      }
419    
420      public void setTaxPercentageRate(String taxPercentageRate) {
421          this.taxPercentageRate = taxPercentageRate;
422      }
423    
424      public String getTaxPurpose() {
425          return taxPurpose;
426      }
427    
428      public void setTaxPurpose(String taxPurpose) {
429          this.taxPurpose = taxPurpose;
430      }
431      
432    //  public String getTaxableAmount() {
433    //      return taxableAmount;
434    //  }
435    //
436    //  public void setTaxableAmount(String taxableAmount) {
437    //      this.taxableAmount = taxableAmount;
438    //  }
439    //
440    //  public String getTaxableAmountCurrency() {
441    //      return taxableAmountCurrency;
442    //  }
443    //
444    //  public void setTaxableAmountCurrency(String taxableAmountCurrency) {
445    //      this.taxableAmountCurrency = taxableAmountCurrency;
446    //  }
447      
448      public String toString(){
449          ToStringBuilder toString = new ToStringBuilder(this);
450          toString.append("subTotalAmount",getSubTotalAmount());
451          toString.append("subTotalAmountCurrency",getSubTotalAmountCurrency());
452          toString.append("taxAmount",getTaxAmount());
453          toString.append("taxAmountCurrency",getTaxAmountCurrency());
454    //      toString.append("taxableAmount",getTaxableAmount());
455    //      toString.append("taxableAmountCurrency",getTaxableAmountCurrency());
456          toString.append("taxDescription",getTaxDescription());
457          toString.append("taxPercentageRate",getTaxPercentageRate());
458          toString.append("taxPurpose",getTaxPurpose());
459          toString.append("taxCategory",getTaxCategory());
460          toString.append("specialHandlingAmount",getSpecialHandlingAmount());
461          toString.append("specialHandlingAmountCurrency",getSpecialHandlingAmountCurrency());
462          toString.append("specialHandlingAmountDescription",getSpecialHandlingAmountDescription());
463          toString.append("shippingAmount",getShippingAmount());
464          toString.append("shippingAmountCurrency",getShippingAmountCurrency());
465          toString.append("grossAmount",getGrossAmount());
466          toString.append("grossAmountCurrency",getGrossAmountCurrency());
467          toString.append("discountAmount",getDiscountAmount());
468          toString.append("discountAmountCurrency",getDiscountAmountCurrency());
469          toString.append("netAmount",getNetAmount());
470          toString.append("netAmountCurrency",getNetAmountCurrency());
471          toString.append("depositAmount",getDepositAmount());
472          toString.append("depositAmountCurrency",getDepositAmountCurrency());
473          toString.append("dueAmount",getDueAmount());
474          toString.append("dueAmountCurrency",getDueAmountCurrency());
475          
476          return toString.toString();
477      }
478    
479    }