package com.idega.block.creditcard.presentation;
import java.sql.SQLException;
import java.sql.Date;
import java.util.List;
import com.idega.block.creditcard.business.CreditCardClient;
import com.idega.block.creditcard.data.CreditCardAuthorizationEntry;
import com.idega.block.trade.stockroom.data.Supplier;
import com.idega.core.contact.data.Phone;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.PresentationObjectContainer;
import com.idega.presentation.Table;
import com.idega.presentation.text.HorizontalRule;
import com.idega.presentation.text.Text;
import com.idega.util.IWTimestamp;
import com.idega.util.text.TextSoap;
/**
* Title: idegaWeb
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="mailto:gimmi@idega.is">Grimur Jonsson</a>
* @version 1.0
*/
public class Receipt extends PresentationObjectContainer{
private IWResourceBundle iwrb;
private IWBundle bundle;
private CreditCardClient _client;
private CreditCardAuthorizationEntry _entries;
private Supplier _supplier;
public static final String IW_BUNDLE_IDENTIFIER = "com.idega.block.creditcard";
public Receipt(CreditCardAuthorizationEntry entry, Supplier supplier) {
this._entries = entry;
this._supplier = supplier;
this._client = null;
}
public void main(IWContext iwc) {
init(iwc);
createReceipt(iwc);
}
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
private void init(IWContext iwc) {
this.bundle = getBundle(iwc);
this.iwrb = this.bundle.getResourceBundle(iwc);
}
private Text getText(String content) {
Text text = new Text(content);
return text;
}
private Text getTextBold(String content) {
Text text = getText(content);
text.setBold(true);
return text;
}
private void createReceipt(IWContext iwc) {
Table table = new Table();
// table.setBorder(1);
table.setColor("#FFFFFF");
int row = 1;
try {
table.mergeCells(1,row,2,row);
table.setRowAlignment(row, "center");
table.add(getTextBold(this._supplier.getName()), 1,row);
++row;
table.mergeCells(1,row,2,row);
table.setRowAlignment(row, "center");
table.add(getText(this._supplier.getAddress().getStreetName()), 1,row);
List phones = this._supplier.getHomePhone();
if (phones != null && phones.size() > 0) {
++row;
table.mergeCells(1,row,2,row);
table.setRowAlignment(row, "center");
table.add(getText(this.iwrb.getLocalizedString("travel.phone","Phone")+": "+((Phone) phones.get(phones.size()-1)).getNumber()), 1,row);
}
if (this._supplier.getOrganizationID() != null) {
++row;
table.mergeCells(1, row, 2, row);
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_CENTER);
table.add(getText(this.iwrb.getLocalizedString("travel.organization_id","Organization id")+": "+this._supplier.getOrganizationID()), 1, row);
}
HorizontalRule hr = new HorizontalRule("100%");
hr.setColor("#000000");
++row;
table.mergeCells(1, row, 2, row);
table.add(hr,1 ,row);
++row;
IWTimestamp stamp = null;
/*
* if (_client != null) {
stamp = _client.getIdegaTimestamp();
} else
*/
if (this._entries != null) {
try {
Date date = this._entries.getDate();
//String time = _entries.getEntryTime();
//String date = _entries.getEntryDate();
//stamp = new IWTimestamp(date.substring(0,4)+"-"+date.substring(4, 6)+"-"+date.substring(6)+" "+time.substring(0, 2)+":"+time.substring(2, 4)+":"+time.substring(4, 6));
stamp = new IWTimestamp(date);
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
if (stamp !=null) {
table.add(getText(this.iwrb.getLocalizedString("date","Date")+" : "+stamp.getLocaleDate(iwc)), 1, row);
++row;
table.add(getText(this.iwrb.getLocalizedString("time","Time")+" : "+TextSoap.addZero(stamp.getHour())+":"+TextSoap.addZero(stamp.getMinute())), 1, row);
} else {
table.add(getText(this.iwrb.getLocalizedString("date","Date")+" : <error>"), 1, row);
++row;
table.add(getText(this.iwrb.getLocalizedString("time","Time")+" : <error>"), 1, row);
}
table.mergeCells(1, row, 2, row);
table.add(hr,1 ,row);
++row;
++row;
/*if (_client != null) {
table.add(getTextBold(_client.getCardTypeName()),1,row);
} else
*/
if (this._entries != null ){
table.add(getTextBold(this._entries.getBrandName()), 1, row);
}
++row;
/*
if (_client != null) {
String ccNumber = _client.getCCNumber();
if (ccNumber.length() <5) {
table.add(getText(ccNumber),1,row);
}else {
for (int i = 0; i < ccNumber.length() -4; i++) {
table.add(getText("*"),1,row);
}
}
} else {*/
table.add(getText("-"),1,row);
//}
String expire = "";
/*if (_client != null) {
expire =_client.getExpire();
} else if (_entries != null) {*/
expire = this._entries.getCardExpires();
//}
table.add(getText(this.iwrb.getLocalizedString("valid","Valid")+Text.NON_BREAKING_SPACE), 2, row);
table.add(getText(expire.substring(2,4)+"/"+expire.substring(0,2)), 2, row);
++row;
table.add(getText(Text.NON_BREAKING_SPACE), 1,row);
++row;
table.add(getTextBold(this.iwrb.getLocalizedString("amount","Amount")), 1,row);
/*
if (_client != null) {
table.add(getTextBold(TextSoap.decimalFormat(_client.getAmount(), 2)), 2, row);
table.add(getTextBold(Text.NON_BREAKING_SPACE+_client.getCurrency()), 2, row);
} else if (_entries != null) {
table.add(getTextBold(TextSoap.decimalFormat(_entries.getAuthorisationAmount(), 2)), 2, row);
table.add(getTextBold(Text.NON_BREAKING_SPACE+_entries.getAuthorisationCurrency()), 2, row);
}*/
table.add(getTextBold(TextSoap.decimalFormat(this._entries.getAmount() / CreditCardAuthorizationEntry.amountMultiplier, 2)), 2, row);
table.add(getTextBold(Text.NON_BREAKING_SPACE+this._entries.getCurrency()), 2, row);
++row;
table.add(getText(Text.NON_BREAKING_SPACE), 1,row);
++row;
table.add(getText(this.iwrb.getLocalizedString("autorization_number","Autorization number")), 1,row);
/*
if(_client != null) {
table.add(getText(_client.getAutorIdentifyRSP()), 2, row);
} else if (_entries != null) {
table.add(getText(_entries.getAuthorisationIdRsp()), 2, row);
}*/
table.add(getText(this._entries.getAuthorizationCode()), 2, row);
}catch (SQLException sql) {
sql.printStackTrace(System.err);
}
table.setColumnAlignment(2, "right");
add(table);
}
public synchronized Object clone() {
Receipt obj = null;
try {
obj = (Receipt)super.clone();
}
catch(Exception ex) {
ex.printStackTrace(System.err);
}
return obj;
}
}