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 + -
显示快捷键?