salejdialog.java.svn-base

来自「Store Manager」· SVN-BASE 代码 · 共 753 行 · 第 1/3 页

SVN-BASE
753
字号
    return new DefaultComboBoxModel(storeNameList);}/** * 获取用来显示销售明细的表格模型 * @return 用来显示销售明细的表格模型 */public DefaultTableModel getSaleItemTableModel() {    Vector columnName=new Vector();    columnName.add("序号");    columnName.add("商品名称");    columnName.add("规格");    columnName.add("单位");    columnName.add("单价");    columnName.add("数量");    columnName.add("总金额");    Vector content=new Vector();        total = 0;    int index = 0;    for( SaleItem s : saleItemList) {        index ++;        Vector row = new Vector();        row.add(index);        row.add(s.getStoreGoodsID().getGoodsID().getGoodsName());        row.add(s.getStoreGoodsID().getGoodsID().getSpec());        row.add(s.getStoreGoodsID().getGoodsID().getUnit());        row.add(String.format("%.2f",s.getSalePrice()));        row.add(String.format("%.2f",s.getSaleQuantity()));        //row.add(nf.format(s.getCostPrice().doubleValue() * s.getStockQuantity()));        double d = s.getSalePrice().doubleValue() * s.getSaleQuantity();        row.add(row.add(String.format("%.2f",d)));        total += d;        content.add(row);    }    DefaultTableModel stockItemTableModel=new DefaultTableModel(content,columnName){        public boolean isCellEditable(int row, int col) {            return false;        }    };    return stockItemTableModel;}/** * 更新表格 */private void updateTable(){    jTable1.setModel(getSaleItemTableModel());    jNumberField2.setText(String.format("%.2f",total));    jNumberField1.setText("1.00");    jTextField2GetFocus();}/** * 聚焦到条形码输入框 */private void jTextField2GetFocus() {    jTextField2.requestFocus();    jTextField2.setSelectionStart(0);    jTextField2.setSelectionEnd(jTextField2.getText().length());}/** * 聚焦到商品数量输入框 */private void jNumberField1GetFocus() {    jNumberField1.setText("1.00");    jNumberField1.requestFocus();    jNumberField1.setSelectionStart(0);    jNumberField1.setSelectionEnd(jTextField2.getText().length());}/** * 提交订单明细 */private void submiteSaleItem() {        // 如果商品条形码为空,返回    if (jTextField2.getText().isEmpty()) {        jTextField2GetFocus();        return;    }    double quantity = 0;    try {        quantity = Double.parseDouble(jNumberField1.getText());    } catch (Exception e) {            }    // 如果商品编号为空,返回    if (quantity <= 0) {        jNumberField1GetFocus();        return;    }        // 寻找相应的商品    Query q = em.createQuery("select sg from StoreGoods sg where sg.goodsID.goodsID = :goodsID and sg.storeName = :storeName");    q.setParameter("goodsID", jTextField2.getText());    q.setParameter("storeName", store);    StoreGoods storeGoods = null;    try{        storeGoods = (StoreGoods)q.getSingleResult();    } catch(NoResultException nre) {        storeGoods = null;    } catch (Exception e) {        e.printStackTrace();    }    if (storeGoods == null) {        JOptionPane.showMessageDialog(this, "在 " + store.getStoreName() + " 中没有找到该商品!");        jTextField2GetFocus();        return;    }        // 检查商品数量    if (quantity > storeGoods.getStoreGoodsQuantity()) {        JOptionPane.showMessageDialog(this, storeGoods.getGoodsID().getGoodsName() + " 存货不足, 只有 " +                storeGoods.getStoreGoodsQuantity() + " 了!");        jNumberField1GetFocus();        return;    }    SaleItem saleItem = new SaleItem();    saleItem.setSaleID(sale);    saleItem.setSaleQuantity(quantity);    saleItem.setSalePrice(storeGoods.getGoodsID().getPrice());    saleItem.setStoreGoodsID(storeGoods);    storeGoods.setStoreGoodsQuantity(storeGoods.getStoreGoodsQuantity() - quantity);    saleItemList.add(saleItem);    updateTable();}/** * 保存销售单 */private void saveSale(){    if (saleItemList == null || saleItemList.isEmpty()){        JOptionPane.showMessageDialog(this,"没有需要保存的销售单!");        return;    }        sale.setGetMoney(new BigDecimal(total));    sale.setOweGetMoney(new BigDecimal(0));        // 弹出收款的窗口    Sale result =  new MoneyJDialog(this, sale, true).showDialog();    if (result == null) return;    sale.setOweGetMoney(result.getOweGetMoney());    sale.setGetMoney(result.getGetMoney());    sale.setSaleState(1);        // 保存销售单到数据库    for (SaleItem si : saleItemList) {        //        StoreGoods sg = em.find(StoreGoods.class, si.getStoreGoodsID().getGoodsID());        //        double quantity = sg.getStoreGoodsQuantity() - si.getSaleQuantity();        //        if (quantity < 0) {        //        //        }        //        sg.setStoreGoodsQuantity(quantity);        em.persist(si);    }    em.persist(sale);    em.getTransaction().begin();    try {        em.getTransaction().commit();    } catch (Exception e) {        JOptionPane.showMessageDialog(this, "保存失败!");        e.printStackTrace();        return;    }    startNewSale();    }private void startNewSale() {    saleItemList = new Vector<SaleItem>();    sale = new Sale(null, new Date(), new BigDecimal(0), new BigDecimal(0), 0);    sale.setCustomerName(customer);    sale.setOperatorName(operator);    sale.setSaleItemCollection(saleItemList);    updateTable();}/** * 退出 */private void exit() {    if (saleItemList == null || saleItemList.isEmpty()) {        this.dispose();        return;    }    if (JOptionPane.showConfirmDialog(this, "销售单未保存!是否退出?", "退出", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {        this.dispose();    }}/** * @param args the command line arguments */public static void main(String args[]) {    java.awt.EventQueue.invokeLater(new Runnable() {        public void run() {            SaleJDialog dialog = new SaleJDialog(new javax.swing.JFrame(), new Operator(), 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 com.studio009.store.entity.Customer customer;    private javax.swing.JComboBox customerJComboBox;    private java.util.List<Customer> customerList;    private javax.persistence.Query customerQuery;    private javax.persistence.EntityManager em;    private javax.swing.JButton jButton1;    private javax.swing.JButton jButton2;    private javax.swing.JButton jButton3;    private javax.swing.JButton jButton4;    private javax.swing.JButton jButton5;    private javax.swing.JButton jButton6;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel4;    private javax.swing.JLabel jLabel5;    private javax.swing.JLabel jLabel6;    private javax.swing.JLabel jLabel7;    private com.sunking.swing.JNumberField jNumberField1;    private com.sunking.swing.JNumberField jNumberField2;    private javax.swing.JPanel jPanel1;    private javax.swing.JPanel jPanel2;    private javax.swing.JPanel jPanel3;    private javax.swing.JPanel jPanel4;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JTable jTable1;    private javax.swing.JTextField jTextField1;    private javax.swing.JTextField jTextField2;    private com.studio009.store.entity.Operator operator;    private com.studio009.store.entity.Sale sale;    private java.util.List<SaleItem> saleItemList;    private com.studio009.store.entity.Store store;    private javax.swing.JComboBox storeJComboBox;    private java.util.List<Store> storeList;    private javax.persistence.Query storeQuery;    private javax.beans.binding.BindingContext bindingContext;    // End of variables declaration//GEN-END:variables    private double total = 0;}

⌨️ 快捷键说明

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