// Chromis POS - The New Face of Open Source POS // Copyright (c) (c) 2015-2016 // http://www.chromis.co.uk // // This file is part of Chromis POS // // Chromis POS 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. // // Chromis POS 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 Chromis POS. If not, see <http://www.gnu.org/licenses/>. package uk.chromis.pos.sales; import java.util.List; import uk.chromis.basic.BasicException; import uk.chromis.data.loader.Datas; import uk.chromis.data.loader.PreparedSentence; import uk.chromis.data.loader.SerializerReadBasic; import uk.chromis.data.loader.SerializerReadClass; import uk.chromis.data.loader.SerializerReadString; import uk.chromis.data.loader.SerializerWriteBasicExt; import uk.chromis.data.loader.SerializerWriteString; import uk.chromis.data.loader.Session; import uk.chromis.data.loader.StaticSentence; import uk.chromis.pos.forms.AppConfig; import uk.chromis.pos.forms.BeanFactoryDataSingle; import uk.chromis.pos.ticket.TicketInfo; /** * * @author adrianromero */ public class DataLogicReceipts extends BeanFactoryDataSingle { private Session s; /** * Creates a new instance of DataLogicReceipts */ public DataLogicReceipts() { } /** * * @param s */ @Override public void init(Session s) { this.s = s; } /** * * @param Id * @return * @throws BasicException */ public final TicketInfo getSharedTicket(String Id) throws BasicException { if (Id == null) { return null; } else { Object[] record = (Object[]) new StaticSentence(s, "SELECT CONTENT FROM SHAREDTICKETS WHERE ID = ? ", SerializerWriteString.INSTANCE, new SerializerReadBasic(new Datas[]{Datas.SERIALIZABLE})).find(Id); return record == null ? null : (TicketInfo) record[0]; } } /** * * @return @throws BasicException */ public final List<SharedTicketInfo> getSharedTicketList() throws BasicException { return (List<SharedTicketInfo>) new StaticSentence(s // , "SELECT ID, NAME, CONTENT PICKUPID FROM SHAREDTICKETS ORDER BY ID" , "SELECT ID, NAME, CONTENT, PICKUPID FROM SHAREDTICKETS ORDER BY ID", null, new SerializerReadClass(SharedTicketInfo.class)).list(); } /** * Get shared ticket list for current logged in user only. * * @return @throws BasicException */ public final List<SharedTicketInfo> getSharedTicketListByUser(String User) throws BasicException { return (List<SharedTicketInfo>) new StaticSentence(s // , "SELECT ID, NAME, CONTENT PICKUPID FROM SHAREDTICKETS ORDER BY ID" , "SELECT ID, NAME, CONTENT, PICKUPID FROM SHAREDTICKETS WHERE NAME LIKE '%" + User + " -%' ", null, new SerializerReadClass(SharedTicketInfo.class)).list(); } /** * * @param id * @param ticket * @param pickupid * @throws BasicException */ public final void updateSharedTicket(final String id, final TicketInfo ticket, int pickupid) throws BasicException { Object[] values = new Object[]{ id, ticket.getName(), ticket, pickupid }; Datas[] datas = new Datas[]{ Datas.STRING, Datas.STRING, Datas.SERIALIZABLE, Datas.INT }; new PreparedSentence(s, "UPDATE SHAREDTICKETS SET " + "NAME = ?, " + "CONTENT = ?, " + "PICKUPID = ? " + "WHERE ID = ?", new SerializerWriteBasicExt(datas, new int[]{1, 2, 3, 0})).exec(values); } /** * * @param id * @param ticket * @param pickupid * @throws BasicException */ public final void insertSharedTicket(final String id, final TicketInfo ticket, int pickupid) throws BasicException { Object[] values = new Object[]{ id, ticket.getName(), ticket, pickupid, ticket.printUser() }; Datas[] datas; datas = new Datas[]{ Datas.STRING, Datas.STRING, Datas.SERIALIZABLE, Datas.INT, Datas.STRING }; new PreparedSentence(s, "INSERT INTO SHAREDTICKETS (" + "ID, " + "NAME, " + "CONTENT, " + "PICKUPID, " + "APPUSER) " + "VALUES (?, ?, ?, ?, ?)", new SerializerWriteBasicExt(datas, new int[]{0, 1, 2, 3, 4})).exec(values); } public final void insertSharedTicketUsingPickUpID(final String id, final TicketInfo ticket, int pickupid) throws BasicException { Object[] values = new Object[]{ id, "Pickup Id: " + getPickupString(pickupid), ticket, pickupid, ticket.getUser().getName() }; Datas[] datas; datas = new Datas[]{ Datas.STRING, Datas.STRING, Datas.SERIALIZABLE, Datas.INT, Datas.STRING }; new PreparedSentence(s, "INSERT INTO SHAREDTICKETS (" + "ID, " + "NAME, " + "CONTENT, " + "PICKUPID, " + "APPUSER) " + "VALUES (?, ?, ?, ?, ?)", new SerializerWriteBasicExt(datas, new int[]{0, 1, 2, 3, 4})).exec(values); } /** * * @param id * @throws BasicException */ public final void deleteSharedTicket(final String id) throws BasicException { new StaticSentence(s, "DELETE FROM SHAREDTICKETS WHERE ID = ?", SerializerWriteString.INSTANCE).exec(id); } /** * * @param Id * @return * @throws BasicException */ public final Integer getPickupId(String Id) throws BasicException { if (Id == null) { return null; } else { Object[] record = (Object[]) new StaticSentence(s, "SELECT PICKUPID FROM SHAREDTICKETS WHERE ID = ?", SerializerWriteString.INSTANCE, new SerializerReadBasic(new Datas[]{Datas.INT})).find(Id); return record == null ? 0 : (Integer) record[0]; } } public final String getAppUser(String Id) throws BasicException { if (Id == null) { return null; } else { Object[] record = (Object[]) new StaticSentence(s, "SELECT APPUSER FROM SHAREDTICKETS WHERE ID = ? ", SerializerWriteString.INSTANCE, new SerializerReadBasic(new Datas[]{Datas.STRING})).find(Id); return record == null ? "" : (String) record[0]; } } public final String getTicketName(String Id) throws BasicException { if (Id == null) { return null; } else { Object[] record = (Object[]) new StaticSentence(s, "SELECT NAME FROM SHAREDTICKETS WHERE ID = ?", SerializerWriteString.INSTANCE, new SerializerReadBasic(new Datas[]{Datas.STRING})).find(Id); return record == null ? "" : (String) record[0]; } } private String getPickupString(int pickup) { String tmpPickupId = Integer.toString(pickup); String pickupSize = (AppConfig.getInstance().getProperty("till.pickupsize")); if (pickupSize != null && (Integer.parseInt(pickupSize) >= tmpPickupId.length())) { while (tmpPickupId.length() < (Integer.parseInt(pickupSize))) { tmpPickupId = "0" + tmpPickupId; } } return (tmpPickupId); } }