/*
* ManagerDialog.java
*
* Created on September 2, 2006, 1:27 AM
*/
package com.floreantpos.ui.dialog;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
import org.jdesktop.swingx.JXDatePicker;
import com.floreantpos.main.Application;
import com.floreantpos.model.TipsCashoutReport;
import com.floreantpos.model.User;
import com.floreantpos.model.dao.GratuityDAO;
import com.floreantpos.model.dao.UserDAO;
import com.floreantpos.swing.GlassPane;
import com.floreantpos.swing.ListComboBoxModel;
import foxtrot.Job;
import foxtrot.Worker;
/**
*
* @author MShahriar
*/
public class ManagerDialog extends JFrame {
private GlassPane glassPane;
/** Creates new form ManagerDialog */
public ManagerDialog() {
super();
initComponents();
setIconImage(Application.getPosWindow().getIconImage());
setTitle(Application.getTitle() + ": Manager Functions");
glassPane = new GlassPane();
setGlassPane(glassPane);
}
public void setGlassPaneVisible(boolean b) {
glassPane.setVisible(b);
}
/** 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() {
titlePanel1 = new com.floreantpos.ui.TitlePanel();
transparentPanel4 = new com.floreantpos.swing.TransparentPanel();
transparentPanel2 = new com.floreantpos.swing.TransparentPanel();
transparentPanel3 = new com.floreantpos.swing.TransparentPanel();
btnShowTips = new com.floreantpos.swing.PosButton();
btnDrawerPullReport = new com.floreantpos.swing.PosButton();
btnOpenTickets = new com.floreantpos.swing.PosButton();
btnCashDrops = new com.floreantpos.swing.PosButton();
transparentPanel1 = new com.floreantpos.swing.TransparentPanel();
btnFinish = new com.floreantpos.swing.PosButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
titlePanel1.setTitle("MANAGER FUNCTION");
getContentPane().add(titlePanel1, java.awt.BorderLayout.NORTH);
transparentPanel4.setLayout(new java.awt.BorderLayout());
transparentPanel4.setOpaque(true);
transparentPanel2.setLayout(new java.awt.GridBagLayout());
transparentPanel2.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
transparentPanel3.setLayout(new java.awt.GridLayout(2, 2, 5, 5));
btnShowTips.setText("SERVER TIPS");
btnShowTips.setPreferredSize(new java.awt.Dimension(220, 60));
btnShowTips.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
doShowServerTips(evt);
}
});
transparentPanel3.add(btnShowTips);
btnDrawerPullReport.setText("DRAWER PULL");
btnDrawerPullReport.setPreferredSize(new java.awt.Dimension(220, 60));
btnDrawerPullReport.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDrawerPullReportActionPerformed(evt);
}
});
transparentPanel3.add(btnDrawerPullReport);
btnOpenTickets.setText("OPEN TICKETS");
btnOpenTickets.setPreferredSize(new java.awt.Dimension(220, 60));
btnOpenTickets.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnOpenTicketsActionPerformed(evt);
}
});
transparentPanel3.add(btnOpenTickets);
btnCashDrops.setText("DRAWER BLEED");
btnCashDrops.setPreferredSize(new java.awt.Dimension(220, 60));
btnCashDrops.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCashDropsActionPerformed(evt);
}
});
transparentPanel3.add(btnCashDrops);
transparentPanel2.add(transparentPanel3, new java.awt.GridBagConstraints());
transparentPanel4.add(transparentPanel2, java.awt.BorderLayout.CENTER);
transparentPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
btnFinish.setText("FINISH");
btnFinish.setPreferredSize(new java.awt.Dimension(120, 60));
btnFinish.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnFinishActionPerformed(evt);
}
});
transparentPanel1.add(btnFinish);
transparentPanel4.add(transparentPanel1, java.awt.BorderLayout.SOUTH);
getContentPane().add(transparentPanel4, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnFinishActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnFinishActionPerformed
dispose();
}//GEN-LAST:event_btnFinishActionPerformed
private void btnCashDropsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCashDropsActionPerformed
Job job = new Job() {
@Override
public Object run() {
try {
setGlassPaneVisible(true);
CashDropDialog dialog = new CashDropDialog(ManagerDialog.this);
dialog.initDate();
dialog.open();
} catch (Exception e) {
POSMessageDialog.showError("An unexpected error has occured", e);
} finally {
setGlassPaneVisible(false);
}
return null;
}
};
Worker.post(job);
}//GEN-LAST:event_btnCashDropsActionPerformed
private void btnOpenTicketsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOpenTicketsActionPerformed
Job job = new Job() {
@Override
public Object run() {
try {
setGlassPaneVisible(true);
OpenTicketsListDialog dialog = new OpenTicketsListDialog(ManagerDialog.this, true);
dialog.open();
} catch (Exception e) {
POSMessageDialog.showError("An unexpected error has occured", e);
} finally {
setGlassPaneVisible(false);
}
return null;
}
};
Worker.post(job);
}//GEN-LAST:event_btnOpenTicketsActionPerformed
private void btnDrawerPullReportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCashDrawerReportActionPerformed
showDrawerPullReport();
}//GEN-LAST:event_btnCashDrawerReportActionPerformed
private void showDrawerPullReport() {
Job job = new Job() {
@Override
public Object run() {
try {
setGlassPaneVisible(true);
DrawerPullReportDialog dialog = new DrawerPullReportDialog(ManagerDialog.this, true);
dialog.setTitle("DRAWER PULL");
dialog.initialize();
dialog.setSize(430, 500);
dialog.setResizable(false);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.open();
} catch (Exception e) {
POSMessageDialog.showError("An unexpected error has occured", e);
} finally {
setGlassPaneVisible(false);
}
return null;
}
};
Worker.post(job);
}
private void doShowServerTips(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnResetDrawerActionPerformed
Job job = new Job() {
@Override
public Object run() {
try {
setGlassPaneVisible(true);
JPanel panel = new JPanel(new MigLayout());
List<User> users = UserDAO.getInstance().findAll();
JXDatePicker fromDatePicker = new JXDatePicker();
JXDatePicker toDatePicker = new JXDatePicker();
panel.add(new JLabel("Select User: "), "grow");
JComboBox userCombo = new JComboBox(new ListComboBoxModel(users));
panel.add(userCombo, "grow, wrap");
panel.add(new JLabel("From: "), "grow");
panel.add(fromDatePicker,"wrap");
panel.add(new JLabel("To: "), "grow");
panel.add(toDatePicker);
int option = JOptionPane.showOptionDialog(ManagerDialog.this, panel, "Select Crieteria", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
if(option != JOptionPane.OK_OPTION) {
return null;
}
GratuityDAO gratuityDAO = new GratuityDAO();
TipsCashoutReport report = gratuityDAO.createReport(fromDatePicker.getDate(), toDatePicker.getDate(), (User) userCombo.getSelectedItem());
TipsCashoutReportDialog dialog = new TipsCashoutReportDialog(report, ManagerDialog.this, true);
dialog.setSize(400, 600);
dialog.open();
} catch (Exception e) {
POSMessageDialog.showError("An unexpected error has occured", e);
} finally {
setGlassPaneVisible(false);
}
return null;
}
};
Worker.post(job);
}//GEN-LAST:event_btnResetDrawerActionPerformed
public void open() {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = 800;
int height = 600;
int x = (screenSize.width - 800) / 2;
int y = (screenSize.height - 600) / 2;
setSize(width, height);
setLocation(x, y);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private com.floreantpos.swing.PosButton btnDrawerPullReport;
private com.floreantpos.swing.PosButton btnCashDrops;
private com.floreantpos.swing.PosButton btnFinish;
private com.floreantpos.swing.PosButton btnOpenTickets;
private com.floreantpos.swing.PosButton btnShowTips;
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;
// End of variables declaration//GEN-END:variables
}