BasketInvoiceBean.java
package sk.iway.iwcm.components.basket;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import sk.iway.Password;
import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.common.CloudToolsForCore;
import sk.iway.iwcm.system.jpa.AllowHtmlAttributeConverter;
/**
* BasketInvoiceBean.java - objednavka
*
*@Title webjet7
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2010
*@author $Author: jeeff $
*@version $Revision: 1.10 $
*@created Date: 9.11.2005 15:07:39
*@modified $Date: 2010/01/20 11:14:06 $
*/
@Entity
@Table(name="basket_invoice")
public class BasketInvoiceBean implements Serializable
{
private static final long serialVersionUID = -2743373083798323795L;
public static final Integer INVOICE_STATUS_NEW = Integer.valueOf(1);
public static final Integer INVOICE_STATUS_PAID = Integer.valueOf(2);
public static final Integer INVOICE_STATUS_CANCELLED = Integer.valueOf(3);
public static final Integer INVOICE_STATUS_DEPOSIT_PAID = Integer.valueOf(8);
public static final Integer INVOICE_STATUS_PARTIALLY_PAID = Integer.valueOf(4);
public static final Integer INVOICE_STATUS_ISSUED = Integer.valueOf(5);
@Id
@Column(name="basket_invoice_id")
@GeneratedValue(generator="WJGen_basket_invoice")
@TableGenerator(name="WJGen_basket_invoice", pkColumnValue="basket_invoice")
private int basketInvoiceId;
@Column(name="browser_id")
private Long browserId;
@Column(name="logged_user_id")
private int loggedUserId;
@Column(name="create_date")
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
@Column(name="status_id")
private Integer statusId;
@Column(name="delivery_company")
private String deliveryCompany;
@Column(name="delivery_name")
private String deliveryName;
@Column(name="delivery_surname")
private String deliverySurName;
@Column(name="delivery_street")
private String deliveryStreet;
@Column(name="delivery_city")
private String deliveryCity;
@Column(name="delivery_zip")
private String deliveryZip;
@Column(name="delivery_country")
private String deliveryCountry;
@Column(name="internal_invoice_id")
private String internalInvoiceId;
@Column(name="user_note")
private String userNote;
@Column(name="user_lng")
private String userLng;
@Column(name="payment_method")
private String paymentMethod;
@Column(name="delivery_method")
private String deliveryMethod;
@Column(name="contact_title")
private String contactTitle;
@Column(name="contact_first_name")
private String contactFirstName;
@Column(name="contact_last_name")
private String contactLastName;
@Column(name="contact_email")
private String contactEmail;
@Column(name="contact_phone")
private String contactPhone;
@Column(name="contact_company")
private String contactCompany;
@Column(name="contact_street")
private String contactStreet;
@Column(name="contact_city")
private String contactCity;
@Column(name="contact_zip")
private String contactZip;
@Column(name="contact_country")
private String contactCountry;
@Column(name="contact_ico")
private String contactIco;
@Column(name="contact_icdph")
private String contactIcdph;
@Column(name="contact_dic")
private String contactDic;
@Column(name="field_a")
private String fieldA;
@Column(name="field_b")
private String fieldB;
@Column(name="field_c")
private String fieldC;
@Column(name="field_d")
private String fieldD;
@Column(name="field_e")
private String fieldE;
@Column(name="field_f")
private String fieldF;
@Column(name="html_code")
@javax.persistence.Convert(converter = AllowHtmlAttributeConverter.class)
private String htmlCode;
@Column(name="currency")
private String currency;
@javax.persistence.OneToMany(cascade=CascadeType.ALL, targetEntity=BasketItemBean.class, mappedBy="basketInvoice")
private List<BasketItemBean> basketItems;// = new ArrayList<BasketItemBean>();
@Column(name="domain_id")
private int domainId;
/**
* Vrati celkovy pocet poloziek (vratane QTY)
* @return
*/
public int getTotalItems()
{
return(InvoiceDB.getTotalItems(getBasketItems()));
}
/**
* Vrati celkovu cenu poloziek vratane DPH
* @return
*/
public double getTotalPriceVat()
{
return(InvoiceDB.getTotalPriceVat(getBasketItems()));
}
public double getTotalPriceVatIn(String currency)
{
try
{
String constantName = "kurz_" + currency + "_" + getCurrency();
double rate = 1.0;
// nasli sme bezny kurz
if (Tools.isNotEmpty(Constants.getString(constantName)))
{
rate = Double.valueOf(Constants.getString(constantName));
return rate * getTotalPriceVat();
}
// nevyslo, skusime opacnu konverziu
constantName = "kurz_" + getCurrency() + "_" + currency;
// podobne, ako hore, ale kedze ide o opacny kurz, musime spravit
// 1/kurz
if (Tools.isNotEmpty(Constants.getString(constantName)))
{
rate = Double.valueOf(Constants.getString(constantName));
return (1.0 / rate) * getTotalPriceVat();
}
}
catch (NumberFormatException e)
{
sk.iway.iwcm.Logger.error(e);
throw new IllegalStateException("Malformed constant format for currencies "+getCurrency()+" and "+currency);
}
return getTotalPriceVat();
}
/**
* Vypocita autorizacny token k objednavke. Ako autorizacny token
* sa vezme retazec "INV"+id objednavky+Constants.getInstallName()
*
* Ak by sa tento prefix/sufix nepouzil, utocnik by ziskal pristup k {@link Password}.encrypt(ID_OBJEDNAVKY),
* co by potencialne mohol vyuzit pri inych autorizacnych testoch.
* @throws Exception ak sa nepodari enkrypcia
*/
public String getAuthorizationToken()
{
return getAuthorizationToken(getBasketInvoiceId());
}
public static String getAuthorizationToken(int invoiceId)
{
String rawKey = new StringBuilder().append("INV").append(invoiceId).append(Constants.getInstallName()).toString();
try
{
return new Password().encrypt(rawKey);
}
catch (Exception e)
{
sk.iway.iwcm.Logger.error(e);
return "";
}
}
/**
* ------- getters & setters
*
*
*/
public List<BasketItemBean> getBasketItems()
{
return basketItems;
}
public void setBasketItems(List<BasketItemBean> basketItems)
{
this.basketItems = basketItems;
}
public void setBasketInvoiceId(int basketInvoiceId)
{
this.basketInvoiceId = basketInvoiceId;
}
public int getBasketInvoiceId()
{
return basketInvoiceId;
}
public Long getBrowserId()
{
return browserId;
}
public void setBrowserId(Long browserId)
{
this.browserId = browserId;
}
public int getLoggedUserId()
{
return loggedUserId;
}
public void setLoggedUserId(int loggedUserId)
{
this.loggedUserId = loggedUserId;
}
public Date getCreateDate()
{
return createDate == null ? null : (Date) createDate.clone();
}
public void setCreateDate(Date createDate)
{
this.createDate = createDate == null ? null : (Date) createDate.clone();
}
public Integer getStatusId()
{
return statusId;
}
public void setStatusId(Integer statusId)
{
this.statusId = statusId;
}
public String getDeliveryCompany()
{
return deliveryCompany;
}
public void setDeliveryCompany(String deliveryCompany)
{
this.deliveryCompany = deliveryCompany;
}
public String getDeliveryName()
{
return deliveryName;
}
public void setDeliveryName(String deliveryName)
{
this.deliveryName = deliveryName;
}
public String getDeliverySurName() {
return deliverySurName;
}
public void setDeliverySurName(String deliverySurName) {
this.deliverySurName = deliverySurName;
}
public String getDeliveryStreet()
{
return deliveryStreet;
}
public void setDeliveryStreet(String deliveryStreet)
{
this.deliveryStreet = deliveryStreet;
}
public String getDeliveryCity()
{
return deliveryCity;
}
public void setDeliveryCity(String deliveryCity)
{
this.deliveryCity = deliveryCity;
}
public String getDeliveryZip()
{
return deliveryZip;
}
public void setDeliveryZip(String deliveryZip)
{
this.deliveryZip = deliveryZip;
}
public String getDeliveryCountry()
{
return deliveryCountry;
}
public void setDeliveryCountry(String deliveryCountry)
{
this.deliveryCountry = deliveryCountry;
}
public String getInternalInvoiceId()
{
return internalInvoiceId;
}
public void setInternalInvoiceId(String internalInvoiceId)
{
this.internalInvoiceId = internalInvoiceId;
}
public String getUserNote()
{
return userNote;
}
public void setUserNote(String userNote)
{
this.userNote = userNote;
}
public String getUserLng()
{
return userLng;
}
public void setUserLng(String userLng)
{
this.userLng = userLng;
}
public String getPaymentMethod()
{
return paymentMethod;
}
public void setPaymentMethod(String paymentMethod)
{
this.paymentMethod = paymentMethod;
}
public String getDeliveryMethod()
{
return deliveryMethod;
}
public void setDeliveryMethod(String deliveryMethod)
{
this.deliveryMethod = deliveryMethod;
}
public String getContactTitle()
{
return contactTitle;
}
public void setContactTitle(String contactTitle)
{
this.contactTitle = contactTitle;
}
public String getContactFirstName()
{
return contactFirstName;
}
public void setContactFirstName(String contactFirstName)
{
this.contactFirstName = contactFirstName;
}
public String getContactLastName()
{
return contactLastName;
}
public void setContactLastName(String contactLastName)
{
this.contactLastName = contactLastName;
}
public String getContactEmail()
{
return contactEmail;
}
public void setContactEmail(String contactEmail)
{
this.contactEmail = contactEmail;
}
public String getContactPhone()
{
return contactPhone;
}
public void setContactPhone(String contactPhone)
{
this.contactPhone = contactPhone;
}
public String getContactCompany()
{
return contactCompany;
}
public void setContactCompany(String contactCompany)
{
this.contactCompany = contactCompany;
}
public String getContactStreet()
{
return contactStreet;
}
public void setContactStreet(String contactStreet)
{
this.contactStreet = contactStreet;
}
public String getContactCity()
{
return contactCity;
}
public void setContactCity(String contactCity)
{
this.contactCity = contactCity;
}
public String getContactZip()
{
return contactZip;
}
public void setContactZip(String contactZip)
{
this.contactZip = contactZip;
}
public String getContactCountry()
{
return contactCountry;
}
public void setContactCountry(String contactCountry)
{
this.contactCountry = contactCountry;
}
public String getContactIco()
{
return contactIco;
}
public void setContactIco(String contactIco)
{
this.contactIco = contactIco;
}
public String getContactIcdph()
{
return contactIcdph;
}
public void setContactIcdph(String contactIcdph)
{
this.contactIcdph = contactIcdph;
}
public String getContactDic()
{
return contactDic;
}
public void setContactDic(String contactDic)
{
this.contactDic = contactDic;
}
public String getFieldA()
{
return fieldA;
}
public void setFieldA(String fieldA)
{
this.fieldA = fieldA;
}
public String getFieldB()
{
return fieldB;
}
public void setFieldB(String fieldB)
{
this.fieldB = fieldB;
}
public String getFieldC()
{
return fieldC;
}
public void setFieldC(String fieldC)
{
this.fieldC = fieldC;
}
public String getFieldD()
{
return fieldD;
}
public void setFieldD(String fieldD)
{
this.fieldD = fieldD;
}
public String getFieldE()
{
return fieldE;
}
public void setFieldE(String fieldE)
{
this.fieldE = fieldE;
}
public String getFieldF()
{
return fieldF;
}
public void setFieldF(String fieldF)
{
this.fieldF = fieldF;
}
public String getHtmlCode()
{
return htmlCode;
}
public void setHtmlCode(String htmlCode)
{
this.htmlCode = htmlCode;
}
public String getCurrency()
{
return currency;
}
public void setCurrency(String currency)
{
this.currency = currency;
}
/**
* Vrati aktualnu domainId
* @return
*/
public int getDomainId() {
return domainId;
//return CloudToolsForCore.getDomainId();
}
/**
* Force nastavi objektu domainId aktualnej domeny
*
*/
public void setDomainId(int domainId) {
//this.domainId = domainId;
this.domainId = CloudToolsForCore.getDomainId();
}
}