⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 returnstockjdialog.java.svn-base

📁 Store Manager
💻 SVN-BASE
字号:
/* * returnStockJDialog.java * * Created on 2007年6月9日, 下午7:32 */package com.studio009.store.ui;import com.studio009.store.StoreApp;import com.studio009.store.entity.Stock;import com.studio009.store.entity.StockItem;import com.studio009.store.entity.StoreGoods;import java.text.SimpleDateFormat;import java.util.Vector;import javax.persistence.Query;import javax.swing.JOptionPane;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import javax.swing.table.DefaultTableModel;/** * 进货单退货对话框 * @see Stock * @author  wangs */public class ReturnStockJDialog extends javax.swing.JDialog {        /** Creates new form returnStockJDialog     * @param parent 父窗口     * @param modal 模式     */    public ReturnStockJDialog(java.awt.Window parent, boolean modal) {        super(parent, java.awt.Dialog.ModalityType.APPLICATION_MODAL);                initComponents();                // 设置对话框居中        this.setLocationRelativeTo(parent);    }        /** 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() {        em = StoreApp.getEntityManagerFactory().createEntityManager();        stockQuery = em.createQuery("select s from Stock s where s.stockState = 1");        stockList = stockQuery.getResultList();        jPanel1 = new javax.swing.JPanel();        jButton1 = new javax.swing.JButton();        jTextField1 = new javax.swing.JTextField();        jLabel1 = new javax.swing.JLabel();        jScrollPane1 = new javax.swing.JScrollPane();        jTable1 = new javax.swing.JTable();        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);        setTitle("\u91c7\u8d2d\u9000\u8d27");        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());        jButton1.setFont(new java.awt.Font("Dialog", 1, 14));        jButton1.setText("\u9000\u8d27");        jButton1.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton1ActionPerformed(evt);            }        });        jTextField1.setFont(new java.awt.Font("Dialog", 0, 18));        jLabel1.setFont(new java.awt.Font("Dialog", 1, 14));        jLabel1.setText("\u8fdb\u8d27\u5355\u53f7:");        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);        jPanel1.setLayout(jPanel1Layout);        jPanel1Layout.setHorizontalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addGap(23, 23, 23)                .addComponent(jLabel1)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)                .addGap(260, 260, 260)                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)                .addContainerGap(24, Short.MAX_VALUE))        );        jPanel1Layout.setVerticalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(jTextField1)                    .addComponent(jLabel1)                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        jTable1.setModel(getStockTableModel());        jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener(){            public void valueChanged(ListSelectionEvent e) {                tableSelected(e);            }        });        jScrollPane1.setViewportView(jTable1);        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()                .addContainerGap()                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 710, Short.MAX_VALUE)                    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))                .addContainerGap())        );        layout.setVerticalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addContainerGap()                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 373, Short.MAX_VALUE)                .addContainerGap())        );        pack();    }// </editor-fold>//GEN-END:initComponents    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed    int stockID = 0;    try {        stockID = Integer.parseInt(jTextField1.getText());    } catch (Exception e) {            }        // 在实体管理器里寻找进货单    Stock stock = em.find(Stock.class, stockID);    if (stock == null) {        JOptionPane.showMessageDialog(this, "没有找到该进货单!");        jTextField1.requestFocus();        return;    }    try {        for (StockItem si : stock.getStockItemCollection()) {            // 在仓库里查找商品            Query storeGoodsQuery = em.createQuery("select sg from StoreGoods sg where sg.storeName = :storeName and sg.goodsID = :goodsID");            storeGoodsQuery.setParameter("storeName", stock.getStoreName());            storeGoodsQuery.setParameter("goodsID", si.getGoodsID());            StoreGoods sg = null;            try {                sg = (StoreGoods) storeGoodsQuery.getSingleResult();            } catch (Exception e) {                JOptionPane.showMessageDialog(this, "没有找到商品!");                return;            }            // 更新数量            double quantity = sg.getStoreGoodsQuantity() - si.getStockQuantity();            // 检查数量            if (quantity < 0) {                throw new GoodNotEnoughException();            }            sg.setStoreGoodsQuantity(quantity);            si.setStockitemState(0);        }                stock.setStockState(0);        // 更新到数据库        try {            em.getTransaction().begin();            em.getTransaction().commit();        } catch(Exception e) {            JOptionPane.showMessageDialog(this, "退货失败!");            return;        }        JOptionPane.showMessageDialog(this, "进货单: " + stock.getStockID() + " 已退货!");    } catch (GoodNotEnoughException gnee) {        JOptionPane.showMessageDialog(this, "仓库的数量不足,不能完成退货!");        em.clear();    }    updateTable();}//GEN-LAST:event_jButton1ActionPerformedprivate void tableSelected(ListSelectionEvent evt) {    try {        jTextField1.setText(stockList.get(jTable1.getSelectedRow()).getStockID().toString());    } catch(Exception e) {            }}/** * 获取用来显示进货单的表格模型 * @return 用来显示进货单的表格模型 */public DefaultTableModel getStockTableModel() {    Vector columnName=new Vector();    columnName.add("单据编号");    columnName.add("供应商");    columnName.add("操作员");    columnName.add("收货仓库");    columnName.add("进货时间");    columnName.add("实付款");    columnName.add("欠付款");    Vector content=new Vector();        for( Stock s : stockList) {        Vector row = new Vector();        row.add(s.getStockID());        row.add(s.getSupplierName().getSupplierName());        row.add(s.getOperatorName().getOperatorName());        row.add(s.getStoreName().getStoreName());        row.add(new SimpleDateFormat().format(s.getStockTime()));        row.add(String.format("%.2f", s.getGiveMoney()));        row.add(String.format("%.2f", s.getOweGiveMoney()));        content.add(row);    }    DefaultTableModel stockItemTableModel=new DefaultTableModel(content,columnName){        public boolean isCellEditable(int row, int col) {            return false;        }    };        return stockItemTableModel;}/** * 更新表格 */private void updateTable(){    stockList = stockQuery.getResultList();    jTable1.setModel(getStockTableModel());    }/** * 退货时库存数量不足异常 */private class GoodNotEnoughException extends Exception{    }/** * @param args the command line arguments */public static void main(String args[]) {    java.awt.EventQueue.invokeLater(new Runnable() {        public void run() {            ReturnStockJDialog dialog = new ReturnStockJDialog(new javax.swing.JFrame(), true);            dialog.addWindowListener(new java.awt.event.WindowAdapter() {                public void windowClosing(java.awt.event.WindowEvent e) {                    System.exit(0);                }            });            dialog.setVisible(true);        }    });}    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.persistence.EntityManager em;    private javax.swing.JButton jButton1;    private javax.swing.JLabel jLabel1;    private javax.swing.JPanel jPanel1;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JTable jTable1;    private javax.swing.JTextField jTextField1;    private java.util.List<Stock> stockList;    private javax.persistence.Query stockQuery;    // End of variables declaration//GEN-END:variables    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -