public final TicketInfo loadTicket(final int tickettype, final int ticketid) throws BasicException { TicketInfo ticket = (TicketInfo) new PreparedSentence( s, "SELECT T.ID, T.TICKETTYPE, T.TICKETID, R.DATENEW, R.MONEY, R.ATTRIBUTES, P.ID, P.NAME, T.CUSTOMER FROM RECEIPTS R JOIN TICKETS T ON R.ID = T.ID LEFT OUTER JOIN PEOPLE P ON T.PERSON = P.ID WHERE T.TICKETTYPE = ? AND T.TICKETID = ?", SerializerWriteParams.INSTANCE, new SerializerReadClass(TicketInfo.class)) .find( new DataParams() { public void writeValues() throws BasicException { setInt(1, tickettype); setInt(2, ticketid); } }); if (ticket != null) { String customerid = ticket.getCustomerId(); ticket.setCustomer(customerid == null ? null : loadCustomerExt(customerid)); ticket.setLines( new PreparedSentence( s, "SELECT L.TICKET, L.LINE, L.PRODUCT, L.ATTRIBUTESETINSTANCE_ID, L.UNITS, L.PRICE, T.ID, T.NAME, T.CATEGORY, T.VALIDFROM, T.CUSTCATEGORY, T.PARENTID, T.RATE, T.RATECASCADE, T.RATEORDER, L.ATTRIBUTES " + "FROM TICKETLINES L, TAXES T WHERE L.TAXID = T.ID AND L.TICKET = ? ORDER BY L.LINE", SerializerWriteString.INSTANCE, new SerializerReadClass(TicketLineInfo.class)) .list(ticket.getId())); ticket.setPayments( new PreparedSentence( s, "SELECT PAYMENT, TOTAL, TRANSID FROM PAYMENTS WHERE RECEIPT = ?", SerializerWriteString.INSTANCE, new SerializerReadClass(PaymentInfoTicket.class)) .list(ticket.getId())); } return ticket; }