/**
* Copyright 2011 Society for Health Information Systems Programmes, India (HISP India)
*
* This file is part of Hospital-core module.
*
* Hospital-core module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* Hospital-core module 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Hospital-core module. If not, see <http://www.gnu.org/licenses/>.
*
**/
package org.openmrs.module.hospitalcore.model;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Date;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
/**
* <p> Class: InventoryStoreDrugTransaction </p>
* <p> Package: org.openmrs.module.inventory.model </p>
* <p> Author: Nguyen manh chuyen </p>
* <p> Update by: Nguyen manh chuyen </p>
* <p> Version: $1.0 </p>
* <p> Create date: Jan 5, 2011 1:28:02 PM </p>
* <p> Update date: Jan 5, 2011 1:28:02 PM </p>
**/
public class InventoryStoreDrugTransactionDetail implements Serializable , Comparable<InventoryStoreDrugTransactionDetail>{
private static final long serialVersionUID = 1L;
private Integer id;
private InventoryStoreDrugTransaction transaction;
private InventoryDrug drug;
private InventoryDrugFormulation formulation;
private Integer quantity ;
private Integer currentQuantity ;
private Integer issueQuantity;
private BigDecimal unitPrice;
private BigDecimal totalPrice;
private BigDecimal VAT;
private String batchNo;
private String companyName ;
private Date dateManufacture;
private Date dateExpiry;
private Date createdOn;
private long openingBalance;
private long closingBalance;
private InventoryStoreDrugTransactionDetail parent;
private Set<InventoryStoreDrugTransactionDetail> subDetails;
private Date receiptDate;
private Integer expireStatus=0;
public InventoryStoreDrugTransactionDetail() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public InventoryStoreDrugTransaction getTransaction() {
return transaction;
}
public void setTransaction(InventoryStoreDrugTransaction transaction) {
this.transaction = transaction;
}
public BigDecimal getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(BigDecimal unitPrice) {
this.unitPrice = unitPrice;
}
public BigDecimal getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(BigDecimal totalPrice) {
this.totalPrice = totalPrice;
}
public BigDecimal getVAT() {
return VAT;
}
public void setVAT(BigDecimal vAT) {
VAT = vAT;
}
public String getBatchNo() {
return batchNo;
}
public void setBatchNo(String batchNo) {
this.batchNo = batchNo;
}
public String getCompanyName() {
return companyName;
}
public String getCompanyNameShort() {
return StringUtils.isNotBlank(companyName) && companyName.length() > 10 ?companyName.substring(0, 7)+"..." : companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public Date getDateManufacture() {
return dateManufacture;
}
public void setDateManufacture(Date dateManufacture) {
this.dateManufacture = dateManufacture;
}
public Date getDateExpiry() {
return dateExpiry;
}
public void setDateExpiry(Date dateExpiry) {
this.dateExpiry = dateExpiry;
}
public Date getReceiptDate() {
return receiptDate;
}
public void setReceiptDate(Date receiptDate) {
this.receiptDate = receiptDate;
}
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
public Integer getCurrentQuantity() {
return currentQuantity;
}
public void setCurrentQuantity(Integer currentQuantity) {
this.currentQuantity = currentQuantity;
}
public InventoryDrug getDrug() {
return drug;
}
public void setDrug(InventoryDrug drug) {
this.drug = drug;
}
public InventoryDrugFormulation getFormulation() {
return formulation;
}
public void setFormulation(InventoryDrugFormulation formulation) {
this.formulation = formulation;
}
public InventoryStoreDrugTransactionDetail getParent() {
return parent;
}
public void setParent(InventoryStoreDrugTransactionDetail parent) {
this.parent = parent;
}
public Set<InventoryStoreDrugTransactionDetail> getSubDetails() {
return subDetails;
}
public void setSubDetails(Set<InventoryStoreDrugTransactionDetail> subDetails) {
this.subDetails = subDetails;
}
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public long getOpeningBalance() {
return openingBalance;
}
public void setOpeningBalance(long openingBalance) {
this.openingBalance = openingBalance;
}
public long getClosingBalance() {
return closingBalance;
}
public void setClosingBalance(long closingBalance) {
this.closingBalance = closingBalance;
}
public Integer getIssueQuantity() {
return issueQuantity;
}
public void setIssueQuantity(Integer issueQuantity) {
this.issueQuantity = issueQuantity;
}
public int getExpiryLessThan3Month(){
Date currentDate = new Date();
Date date3Month = DateUtils.addMonths(currentDate, 3);
if(this.getTransaction().getTypeTransaction() == 1 && this.getCurrentQuantity() > 0 && this.dateExpiry.before(date3Month)){
return 1;
}
return 0;
}
//03/07/2012: Kesavulu:sort Item Names #300
//10/7/2012: harsh #300 : deleted unused method
public int compareTo(InventoryStoreDrugTransactionDetail i) {
return (this.drug).compareTo(i.drug);
}
public Integer getExpireStatus() {
return expireStatus;
}
public void setExpireStatus(Integer expireStatus) {
this.expireStatus = expireStatus;
}
}