/*
* SplitTicketView.java
*
* Created on September 3, 2006, 11:11 PM
*/
package com.floreantpos.ui.views;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.floreantpos.main.Application;
import com.floreantpos.model.ActionHistory;
import com.floreantpos.model.Ticket;
import com.floreantpos.model.TicketItem;
import com.floreantpos.model.dao.ActionHistoryDAO;
import com.floreantpos.model.dao.TicketDAO;
import com.floreantpos.model.util.POSConstants;
import com.floreantpos.ui.dialog.POSDialog;
import com.floreantpos.ui.dialog.POSMessageDialog;
import com.floreantpos.ui.views.order.TicketForSplitView;
/**
*
* @author MShahriar
*/
public class SplitTicketDialog extends POSDialog {
private Ticket ticket;
/** Creates new form SplitTicketView */
public SplitTicketDialog() {
super(Application.getPosWindow(), true, true);
initComponents();
mainTicketView.setViewNumber(1);
ticketView2.setViewNumber(2);
ticketView3.setViewNumber(3);
ticketView4.setViewNumber(4);
mainTicketView.setTicketView1(ticketView2);
mainTicketView.setTicketView2(ticketView3);
mainTicketView.setTicketView3(ticketView4);
ticketView2.setTicketView1(mainTicketView);
ticketView2.setTicketView2(ticketView3);
ticketView2.setTicketView3(ticketView4);
ticketView3.setTicketView1(mainTicketView);
ticketView3.setTicketView2(ticketView2);
ticketView3.setTicketView3(ticketView4);
ticketView4.setTicketView1(mainTicketView);
ticketView4.setTicketView2(ticketView2);
ticketView4.setTicketView3(ticketView3);
ticketView3.setVisible(false);
ticketView4.setVisible(false);
setSize(794, 575);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup();
titlePanel1 = new com.floreantpos.ui.TitlePanel();
transparentPanel1 = new com.floreantpos.swing.TransparentPanel();
btnFinish = new com.floreantpos.swing.PosButton();
btnCancel = new com.floreantpos.swing.PosButton();
transparentPanel2 = new com.floreantpos.swing.TransparentPanel();
transparentPanel3 = new com.floreantpos.swing.TransparentPanel();
transparentPanel5 = new com.floreantpos.swing.TransparentPanel();
pOSTitleLabel1 = new com.floreantpos.swing.POSTitleLabel();
btnNumSplit2 = new com.floreantpos.swing.POSToggleButton();
btnNumSplit3 = new com.floreantpos.swing.POSToggleButton();
btnNumSplit4 = new com.floreantpos.swing.POSToggleButton();
lblTicketId = new com.floreantpos.swing.POSTitleLabel();
transparentPanel4 = new com.floreantpos.swing.TransparentPanel();
ticket1Container = new org.jdesktop.swingx.JXImagePanel();
mainTicketView = new com.floreantpos.ui.views.order.TicketForSplitView();
ticket2Container = new org.jdesktop.swingx.JXImagePanel();
ticketView2 = new com.floreantpos.ui.views.order.TicketForSplitView();
ticket3Container = new org.jdesktop.swingx.JXImagePanel();
ticketView3 = new com.floreantpos.ui.views.order.TicketForSplitView();
ticket4Container = new org.jdesktop.swingx.JXImagePanel();
ticketView4 = new com.floreantpos.ui.views.order.TicketForSplitView();
titlePanel1.setTitle("SPLIT TICKET");
getContentPane().add(titlePanel1, java.awt.BorderLayout.NORTH);
btnFinish.setText("FINISH");
btnFinish.setPreferredSize(new java.awt.Dimension(140, 50));
btnFinish.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnFinishActionPerformed(evt);
}
});
transparentPanel1.add(btnFinish);
btnCancel.setText("CANCEL");
btnCancel.setPreferredSize(new java.awt.Dimension(140, 50));
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCancelActionPerformed(evt);
}
});
transparentPanel1.add(btnCancel);
getContentPane().add(transparentPanel1, java.awt.BorderLayout.SOUTH);
transparentPanel2.setLayout(new java.awt.BorderLayout());
transparentPanel3.setLayout(new java.awt.BorderLayout());
transparentPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 5, 2));
pOSTitleLabel1.setText("NUMBER OF SPLITS");
transparentPanel5.add(pOSTitleLabel1);
buttonGroup1.add(btnNumSplit2);
btnNumSplit2.setSelected(true);
btnNumSplit2.setText("2");
btnNumSplit2.setPreferredSize(new java.awt.Dimension(60, 40));
btnNumSplit2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNumSplit2ActionPerformed(evt);
}
});
transparentPanel5.add(btnNumSplit2);
buttonGroup1.add(btnNumSplit3);
btnNumSplit3.setText("3");
btnNumSplit3.setPreferredSize(new java.awt.Dimension(60, 40));
btnNumSplit3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNumSplit3ActionPerformed(evt);
}
});
transparentPanel5.add(btnNumSplit3);
buttonGroup1.add(btnNumSplit4);
btnNumSplit4.setText("4");
btnNumSplit4.setPreferredSize(new java.awt.Dimension(60, 40));
btnNumSplit4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNumSplit4ActionPerformed(evt);
}
});
transparentPanel5.add(btnNumSplit4);
transparentPanel3.add(transparentPanel5, java.awt.BorderLayout.EAST);
lblTicketId.setText(" ORIGINAL TICKET ID:TICKET_ID");
transparentPanel3.add(lblTicketId, java.awt.BorderLayout.CENTER);
transparentPanel2.add(transparentPanel3, java.awt.BorderLayout.NORTH);
transparentPanel4.setLayout(new java.awt.GridLayout(1, 0));
ticket1Container.setLayout(new java.awt.BorderLayout());
ticket1Container.add(mainTicketView, java.awt.BorderLayout.CENTER);
transparentPanel4.add(ticket1Container);
ticket2Container.setLayout(new java.awt.BorderLayout());
ticket2Container.add(ticketView2, java.awt.BorderLayout.CENTER);
transparentPanel4.add(ticket2Container);
ticket3Container.setLayout(new java.awt.BorderLayout());
ticket3Container.add(ticketView3, java.awt.BorderLayout.CENTER);
transparentPanel4.add(ticket3Container);
ticket4Container.setLayout(new java.awt.BorderLayout());
ticket4Container.add(ticketView4, java.awt.BorderLayout.CENTER);
transparentPanel4.add(ticket4Container);
transparentPanel2.add(transparentPanel4, java.awt.BorderLayout.CENTER);
getContentPane().add(transparentPanel2, java.awt.BorderLayout.CENTER);
}// </editor-fold>//GEN-END:initComponents
private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
setTicket(null);
dispose();
}//GEN-LAST:event_btnCancelActionPerformed
private void btnFinishActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFinishActionPerformed
Session session = null;
Transaction tx = null;
try {
TicketDAO dao = new TicketDAO();
session = dao.getSession();
tx = session.beginTransaction();
saveTicket(mainTicketView, session);
saveTicket(ticketView2, session);
saveTicket(ticketView3, session);
saveTicket(ticketView4, session);
tx.commit();
//save the action
ActionHistoryDAO.getInstance().saveHistory(Application.getCurrentUser(), ActionHistory.SPLIT_CHECK, "CHK#:"+mainTicketView.getTicket().getId());
dispose();
} catch (Exception e) {
try {
tx.rollback();
} catch (Exception x) {
}
POSMessageDialog.showError(POSConstants.RESTART_ERROR_MESSAGE, e);
} finally {
try {
session.close();
} catch (Exception x) {
}
}
}//GEN-LAST:event_btnFinishActionPerformed
private void btnNumSplit4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNumSplit4ActionPerformed
ticketView3.setVisible(true);
ticketView4.setVisible(true);
}//GEN-LAST:event_btnNumSplit4ActionPerformed
private void btnNumSplit3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNumSplit3ActionPerformed
ticketView3.setVisible(true);
if (ticketView4.isVisible()) {
Ticket ticket4 = ticketView4.getTicket();
List<TicketItem> ticketItems = ticket4.getTicketItems();
for (TicketItem item : ticketItems) {
ticketView4.transferAllTicketItem(item, mainTicketView);
}
ticketView4.setVisible(false);
}
}//GEN-LAST:event_btnNumSplit3ActionPerformed
private void btnNumSplit2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNumSplit2ActionPerformed
if (ticketView3.isVisible()) {
Ticket ticket3 = ticketView3.getTicket();
List<TicketItem> ticketItems = new ArrayList<TicketItem>(ticket3.getTicketItems());
for (TicketItem item : ticketItems) {
ticketView3.transferAllTicketItem(item, mainTicketView);
}
ticketView3.setVisible(false);
}
if (ticketView4.isVisible()) {
Ticket ticket4 = ticketView4.getTicket();
List<TicketItem> ticketItems = ticket4.getTicketItems();
for (TicketItem item : ticketItems) {
ticketView4.transferAllTicketItem(item, mainTicketView);
}
ticketView4.setVisible(false);
}
}//GEN-LAST:event_btnNumSplit2ActionPerformed
public void saveTicket(TicketForSplitView view, Session session) {
if (!view.isVisible())
return;
view.updateModel();
Ticket ticket = view.getTicket();
if (ticket.getTicketItems().size() <= 0)
return;
ticket.setTableNumber(mainTicketView.getTicket().getTableNumber());
session.saveOrUpdate(ticket);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private com.floreantpos.swing.PosButton btnCancel;
private com.floreantpos.swing.PosButton btnFinish;
private com.floreantpos.swing.POSToggleButton btnNumSplit2;
private com.floreantpos.swing.POSToggleButton btnNumSplit3;
private com.floreantpos.swing.POSToggleButton btnNumSplit4;
private javax.swing.ButtonGroup buttonGroup1;
private com.floreantpos.swing.POSTitleLabel lblTicketId;
private com.floreantpos.ui.views.order.TicketForSplitView mainTicketView;
private com.floreantpos.swing.POSTitleLabel pOSTitleLabel1;
private org.jdesktop.swingx.JXImagePanel ticket1Container;
private org.jdesktop.swingx.JXImagePanel ticket2Container;
private org.jdesktop.swingx.JXImagePanel ticket3Container;
private org.jdesktop.swingx.JXImagePanel ticket4Container;
private com.floreantpos.ui.views.order.TicketForSplitView ticketView2;
private com.floreantpos.ui.views.order.TicketForSplitView ticketView3;
private com.floreantpos.ui.views.order.TicketForSplitView ticketView4;
private com.floreantpos.ui.TitlePanel titlePanel1;
private com.floreantpos.swing.TransparentPanel transparentPanel1;
private com.floreantpos.swing.TransparentPanel transparentPanel2;
private com.floreantpos.swing.TransparentPanel transparentPanel3;
private com.floreantpos.swing.TransparentPanel transparentPanel4;
private com.floreantpos.swing.TransparentPanel transparentPanel5;
// End of variables declaration//GEN-END:variables
public Ticket getTicket() {
return ticket;
}
public void setTicket(Ticket ticket) {
this.ticket = ticket;
if (ticket != null)
lblTicketId.setText("ORIGINAL TICKET ID: " + ticket.getId());
mainTicketView.setTicket(ticket);
}
}