All pastes #631437 Raw Edit

mrBlaQ

public java v1 · immutable
#631437 ·published 2007-07-23 23:28 UTC
rendered paste body
package vitalvinyl.pos.action.pos;import org.apache.log4j.Logger;import vitalvinyl.manager.order.InsufficientFundsException;import vitalvinyl.manager.order.OrderManager;import vitalvinyl.manager.order.OrderManagerFactory;import vitalvinyl.model.order.PurchaseItem;import vitalvinyl.model.order.Payment;import vitalvinyl.model.media.Media;import vitalvinyl.model.gear.Gear;import vitalvinyl.model.promotion.TicketEvent;import java.io.FileWriter;import java.io.IOException;import java.util.Iterator;public class CloseOrder extends RegisterOrder {    private static final Logger logger = Logger.getLogger(CloseOrder.class);    private static final int RECEIPT_COLUMNS = 48;    public String doDefault() {        logger.debug("doDefault - start");        try {            // find the item            order = loadOrder();            //TODO: uncomment when testing on live printer            printReceipt(prepareCustomerInvoice());            // do not processRegisterOrder if the order has already been completed            if (order.isProcessed()) {                addErrorMessage(getText("order.alreadyprocessed.label"));                return INPUT;            }            logger.debug("Closing order: " + order.getID());            OrderManager manager = OrderManagerFactory.getManager();            manager.processRegisterOrder(order);            return SUCCESS;        } catch (InsufficientFundsException e) {            logger.warn(e.getMessage(), e);            addErrorMessage(getText("order.mustcompletepayment.label"));        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("doDefault - end");        }        return INPUT;    }    public String centerString(String input) {        String output = "";        int start = RECEIPT_COLUMNS / 2 - (input.length() / 2);        for (int spaces = 1; spaces < start; spaces++) {            output += " ";        }        output += input;        return output;    }    public String rightJustifyString(String input) {        String output = "";        int start = RECEIPT_COLUMNS - input.length();        for (int spaces = 0; spaces < start; spaces++) {            output += " ";        }        output += input;        return output;    }    private static String pad(String str, int padlen, String pad) {        String padding = "";        if (str.length() > Math.abs(padlen)) {            str = str.substring(0, Math.abs(padlen));        }        int len = Math.abs(padlen) - str.length();        if (len < 1)            return str;        for (int i = 0 ; i < len ; ++i) {            padding = padding + pad;        }        return (padlen < 0 ? padding + str : str + padding);    }    public String prepareCustomerInvoice() {        String output = "";        try {            output += centerString("Vital Culture") + "\r\n";            output += centerString("3 West 15th St") + "\r\n";            output += centerString("Mpls, MN 55403") + "\r\n";            output += centerString("612.874.8892") + "\r\n";            output += "\r\n";            output += "************************************************\r\n";            for (Iterator itr = mediaItems.iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                Media media = (Media) purchaseItem.getItem();                output += pad(String.valueOf(media.getID()), 7, " ");                output += pad(media.getArtist().getName(), 15, " ");                output += pad(media.getName() , 17, " ");                output += pad(roundMoney(order.getSubTotal(purchaseItem.getID())), -9, " ");                output += "\r\n";            }            for (Iterator itr = gearItems.iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                Gear gear = (Gear) purchaseItem.getItem();                output += pad(String.valueOf(gear.getID()), 7, " ");                output += pad(gear.getManufacturer().getName(), 15, " ");                output += pad(gear.getName() , 17, " ");                output += pad(roundMoney(order.getSubTotal(purchaseItem.getID())), -9, " ");                output += "\r\n";            }            for (Iterator itr = ticketItems.iterator(); itr.hasNext();) {                PurchaseItem purchaseItem = (PurchaseItem) itr.next();                TicketEvent ticketEvent = (TicketEvent) purchaseItem.getItem();                output += pad(String.valueOf(ticketEvent.getID()), 7, " ");                output += pad(ticketEvent.getPartner().getCompany(), 15, " ");                output += pad(ticketEvent.getName() , 17, " ");                output += pad(roundMoney(order.getSubTotal(purchaseItem.getID())), -9, " ");                output += "\r\n";            }            output += rightJustifyString("_________") + "\r\n";            output += rightJustifyString("Subtotal: " + pad(roundMoney(order.getSubTotal()), -9, " ")) + "\r\n";            output += rightJustifyString("Tax: " + pad(roundMoney(order.getTax()), -9, " ")) + "\r\n";            output += rightJustifyString("=========") + "\r\n";            output += rightJustifyString("Total: " + pad(roundMoney(order.getTotal()), -9, " ")) + "\r\n";            output += rightJustifyString("=========") + "\r\n";            for (Iterator itr = order.getPayments().iterator(); itr.hasNext();) {                Payment payment = (Payment) itr.next();                if (payment.getCashAmount() > 0) {                    output += rightJustifyString("Cash: " + pad(roundMoney(payment.getCashAmount()), -9, " ")) + "\r\n";                } else if (payment.getCreditAmount() > 0) {                    output += rightJustifyString("Credit: " + "TID: " + payment.getTransactionID() + " " + "***" + payment.getCcLastFour() + " " + payment.getCcExpirationMonth() + "/" + payment.getCcExpirationYear() + "         ") + "\r\n";                    output += rightJustifyString(pad(roundMoney(payment.getCashAmount()), -9, " ")) + "\r\n";                } else if (payment.getGiftCertificateAmount() > 0) {                    output += rightJustifyString("Gift Cert: " + pad(roundMoney(payment.getCashAmount()), -9, " ")) + "\r\n";                } else if (payment.getCheckAmount() > 0) {                    output += rightJustifyString("Check: " + "#" + payment.getCheckNumber() + " " + pad(roundMoney(payment.getCashAmount()), -9, " ")) + "\r\n";                }            }            output += rightJustifyString("_________") + "\r\n";            output += rightJustifyString("Amount Tendered: " + pad(roundMoney(order.getTotalPayments()), -9, " ")) + "\r\n";            output += rightJustifyString("Change: " + pad(roundMoney(order.remainingDue()), -9, " ")) + "\r\n";            output += "\r\n";            String tempInfo = "";            tempInfo += getAssignedTill().getTillNumber() + " ";            tempInfo += order.getID() + " ";            tempInfo += order.getConception() + " ";            output += centerString(tempInfo) + "\r\n";            output += "************************************************\r\n";            output += "  NO RETURNS ON VINYLS AND CDS. FOR CONVENIENT  \r\n";            output += "  RETURNS/EXCHANGES, PLEASE SAVE YOUR RECIEPT.  \r\n";            output += "   VISIT US ONLINE AT WWW.VITALCULTURE.COM      \r\n";            output += "       THANK YOU FOR SHOPPING VITAL!            \r\n";            output += "************************************************\r\n";            output += "\r\n";            output += "\r\n";            output += "\r\n";            output += "\r\n";            output += "\r\n";            output += "\r\n";            output += "\r\n";        } catch (Exception e) {            logger.warn(e.getMessage(), e);            addErrorMessage(e.getMessage());        } finally {            logger.debug("doDefault - end");        }        return output;    }    public static void printReceipt(String sText) {        try {            FileWriter out = new FileWriter("lpt1");            //FileWriter out = new FileWriter("c:/receipt.txt");            out.write(sText);            //out.write(0x0D); // CR            out.close();        }        catch (IOException e) {            e.printStackTrace();        }    }}