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

📄 countsalereturnframe.java~337~

📁 一个使用java 写的进销存代码 使用了ejb 等技术 是学习j2ee的好
💻 JAVA~337~
📖 第 1 页 / 共 3 页
字号:
    String endDateStr = jTextField3.getText().trim();
    if (selectedIndex == 0 | selectedIndex == 1 | selectedIndex == 2 |
        selectedIndex == 3) {
      if (searchValue.length() == 0) {
        JOptionPane.showMessageDialog(null, "请输入查询值");
        return;
      }
      switch (selectedIndex) {
        case 0:
          //根据销售退货单编号取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "saleId", searchValue, 2);
          break;
        case 1:
          //根据客户取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "customerName", searchValue, 2);
          break;
        case 2:
          //根据前台销售员取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "counterUser", searchValue, 2);
          break;
        case 3:
          if(dataMethod.checkInt(searchValue) == 0){
            JOptionPane.showMessageDialog(null, "按完成状态查询时,输入值必须是整数,"
                                          + "0表示进行,1表示撤消,2表示完成.");
            return;
          }
          //根据完成状态取得记录
          saleLedgers = stockManagementData.getSaleLedgerByOnProcess(
              ledgerDate, 2, Integer.parseInt(searchValue));
          break;
      }
    }else{
      java.sql.Timestamp startDate = dataMethod.transferDate(startDateStr);
      java.sql.Timestamp endDate = dataMethod.transferEndDate(endDateStr);
      if(startDate == null | endDate == null){
        JOptionPane.showMessageDialog(null, "日期输入错误,正确的日期格式是"
                                      + "yyyy-mm-dd(年-月-日),如2004-1-1");
        return;
      }
      //根据日期取得记录
      saleLedgers = stockManagementData.getSaleLedgerByOrderDate(ledgerDate,
          startDate, endDate, 2);
    }
    this.showSearchSaleLedger();
  }
  //单击事件
  public void actionPerformed(ActionEvent e) {
    //取得按钮的动作字符串
    String actionCommand = e.getActionCommand().trim();
    //检查打开的账套是否当前账套
    if (actionCommand.equals("createSaleLedger") |
        actionCommand.equals("updateSaleLedger") |
        actionCommand.equals("cancelSaleLedger") |
        actionCommand.equals("restoreSaleLedger")) {
      int result = stockManagementData.isCurrentLedger(ledgerDate);
      if(result == 0){
        JOptionPane.showMessageDialog(null, ledgerDate + "是往期账套,不能进行添加、修改和撤消操作.");
        return;
      }
    }
    //检查销售退货单是否完成
    if (actionCommand.equals("updateSaleLedger") |
        actionCommand.equals("cancelSaleLedger") |
        actionCommand.equals("restoreSaleLedger")|
        actionCommand.equals("sign")|
        actionCommand.equals("showData")) {
      if(jList1.isSelectionEmpty()){
        JOptionPane.showMessageDialog(null, "请选择销售退货单.");
        return;
      }
      int selectedIndex = jList1.getSelectedIndex();
      int onProcess = Integer.parseInt(saleLedgers[selectedIndex][9]);
      if(onProcess == 2){
        JOptionPane.showMessageDialog(null, saleLedgers[selectedIndex][0]
                                      + "销售退货单已经完成,不可以进行修改、撤消、恢复、电子签名和查询库存销售出库单数据等操作.");
        return;
      }
    }
    if (actionCommand.equals("search")) {
      //查询
      search();
    }else if(actionCommand.equals("showData")){
      //显示库存销售出库单的明细数据
      this.showStockSubLedger();
    }else if(actionCommand.equals("createSaleLedger")){
      action = "create";
      this.clearSaleLedger();
      this.checkBtn(true);
      this.checkSubBtn(true);
    }else if(actionCommand.equals("updateSaleLedger")){
      action = "update";
      this.checkBtn(true);
    }else if(actionCommand.equals("cancelSaleLedger")){
      action = "cancel";
      this.checkBtn(true);
    }else if(actionCommand.equals("restoreSaleLedger")){
      action = "restore";
      this.checkBtn(true);
    }else if(actionCommand.equals("ok")){
      //创建销售账套数据表的单个记录数组
      String[] saleLedger = new String[11];
      //取得销售退货单的值
      saleLedger[1] = "2";                         //2表示销售退货单
      saleLedger[2] = "顾客";                       //在前台退还商品的客户名称统一为顾客
      saleLedger[3] = user.getUserName();          //前台销售员
      saleLedger[4] = jTextField7.getText().trim();//仓库
      saleLedger[5] = "";
      saleLedger[6] = "";
      saleLedger[7] = dataMethod.getCurrentDate().toString(); //填写日期
      saleLedger[8] = dataMethod.getCurrentDate().toString(); //系统日期
      saleLedger[9] = "0";                                    //完成状态
      saleLedger[10] = jTextArea1.getText().trim();
      if(action.equals("update") | action.equals("cancel")  | action.equals("restore")){
        int selectedIndex = jList1.getSelectedIndex();
        //取得原来的单据编号
        saleLedger[0] = saleLedgers[selectedIndex][0].trim();
      }
      int result = 0;
      if(action.equals("update") | action.equals("create")){
        //检查销售单的柜台名字
        result = stockManagementData.checkWarehouse(saleLedger[4]);
        if(result == 0){
          JOptionPane.showMessageDialog(null, saleLedger[4] + "在仓库数据库中"
                                        + "不存在,请打开仓库数据管理窗口添加.");
          return;
        }
        //检查商品条形码
        result = this.checkSaleSubLedgerGoodsBarCode();
        if(result == 0) return;
        //检查销售退货单的数量
        result = this.checkSaleSubLedgerQuantity();
        if(result == 0) return;
        //转换表格数组
        this.transferSaleReturnTableData();
      }
      if(action.equals("create")){
        //检查明细账是否为空
        if(saleSubLedgerObjects.length == 0){
          JOptionPane.showMessageDialog(null, "明细账数据表为空,不可以创建销售退货单.");
          return;
        }
        //添加销售退货单
        result = stockManagementData.createSaleLedgerAndSub(ledgerDate,
            saleLedger, saleSubLedgers);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售退货单添加成功,请重新执行查询操作显示新的销售退货单.");
        }else{
          JOptionPane.showMessageDialog(null, "销售退货单添加失败,请检查输入值是否大于字段范围.");
        }
      }else if (action.equals("update")){
        //修改销售退货单
        result = stockManagementData.updateSaleLedgerAndSub(ledgerDate,
            saleLedger, saleSubLedgers);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售退货单修改成功.");
          //更新数组的数据
          int selectedIndex = jList1.getSelectedIndex();
          for(int i = 0; i < 11; i++){
            saleLedgers[selectedIndex][i] = saleLedger[i];
          }
        }else{
          JOptionPane.showMessageDialog(null, "销售退货单修改失败,请检查输入值是否大于字段范围.");
        }
      }else if (action.equals("cancel")){
        //撤消销售退货单
        result = stockManagementData.signSaleLedgerAndSub(ledgerDate, "counterUser", user.getUserName(),
            saleLedger[0], 1, saleLedger[10]);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售退货单撤消成功.");
          //更新完成状态编辑框的值
          jTextField9.setText(onProcesses[1]);
          //更新数组的数据
          int selectedIndex = jList1.getSelectedIndex();
          saleLedgers[selectedIndex][9] = "1";
          saleLedgers[selectedIndex][10] = saleLedger[10];
        }else{
          JOptionPane.showMessageDialog(null, "销售退货单撤消失败.");
        }
      }else if (action.equals("restore")){
        //恢复销售退货单
        result = stockManagementData.signSaleLedgerAndSub(ledgerDate, "counterUser", user.getUserName(),
            saleLedger[0], 0, saleLedger[10]);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售退货单恢复成功.");
          //更新完成状态编辑框的值
          jTextField9.setText(onProcesses[0]);
          //更新数组的数据
          int selectedIndex = jList1.getSelectedIndex();
          saleLedgers[selectedIndex][9] = "0";
          saleLedgers[selectedIndex][10] = saleLedger[10];
        }else{
          JOptionPane.showMessageDialog(null, "销售退货单恢复失败.");
        }
      }
      this.checkSubBtn(false);
      this.checkBtn(false);
    }else if(actionCommand.equals("cancel")){
      this.jList1_valueChanged(null);
      this.checkBtn(false);
      this.checkSubBtn(false);
    }else if(actionCommand.equals("sign")){
      //检查库存销售退货单的商品条形码
      int result = this.checkStockSubLedgerGoodsBarCode();
      if(result == 0) return;
      //检查库存销售退货单的数量
      result = this.checkStockSubLedgerQuantity();
      if(result == 0) return;
      //检查库存销售退货单的有效期
      result = this.checkStockSubLedgerDate();
      if(result == 0) return;
      //检查销售退货单和库存销售退货单的数量是否相等
      result = this.CheckSaleAndStockQuantity();
      if(result == 0) return;
      //转换表格数组
      this.transferSaleReturnTableData();
      int selectedIndex = jList1.getSelectedIndex();
      String saleId = saleLedgers[selectedIndex][0];
      String warehouse = saleLedgers[selectedIndex][4];
      String remark = jTextArea1.getText();
      //进行电子签名
      result = stockManagementData.counterUserSignSaleReturn(ledgerDate, saleId,
          user.getUserName(), remark, warehouse, stockSubLedgers);
      if(result == 1){
        JOptionPane.showMessageDialog(null, "电子签名成功.");
        //更新完成状态编辑框的值
        jTextField9.setText(onProcesses[2]);
        saleLedgers[selectedIndex][9] = "2";
        saleLedgers[selectedIndex][10] = remark;
      }else{
        JOptionPane.showMessageDialog(null, "电子签名失败.");
      }
    }else if(actionCommand.equals("print")){
      int selectedIndex = jList1.getSelectedIndex();
      if(selectedIndex == -1){
        JOptionPane.showMessageDialog(null, "先选择销售退货单.");
        return;
      }
      //取得选择销售退货单的数据
      String[] saleLedger = new String[11];
      for(int i = 0; i < saleLedger.length; i++){
        if(saleLedgers[selectedIndex][i] == null){
          saleLedger[i] = "";
        }else{
          saleLedger[i] = saleLedgers[selectedIndex][i];
        }
      }
      //取得销售退货单的明细账数据
      String[][] saleSubLedgerForPrint = new String[saleSubLedgerObjects.length][4];
      for(int i = 0; i < saleSubLedgers.length; i++){
        saleSubLedgerForPrint[i][0] = (String)saleSubLedgerObjects[i][2];
        saleSubLedgerForPrint[i][1] = ((Double)saleSubLedgerObjects[i][6]).toString();
        saleSubLedgerForPrint[i][2] = ((Integer)saleSubLedgerObjects[i][7]).toString();
        saleSubLedgerForPrint[i][3] = ((Double)saleSubLedgerObjects[i][8]).toString();
      }
      //显示销售退货单打印窗口
      if(saleOrderReturnPrintFrame == null){
        saleOrderReturnPrintFrame = new SaleOrderReturnPrintFrame();
        //使窗口居中对齐
        setCenterPosition(saleOrderReturnPrintFrame);
        saleOrderReturnPrintFrame.setVisible(true);
      }else{
        saleOrderReturnPrintFrame.setVisible(true);
      }
      //为打印窗口传入数组参数
      saleOrderReturnPrintFrame.setSaleLedger(saleLedger);
      saleOrderReturnPrintFrame.setSaleSubLedger(saleSubLedgerForPrint);
      //显示总页码
      saleOrderReturnPrintFrame.splitPage();
    }else if(actionCommand.equals("createSub")){
      //为销售账套明细表添加一个空行
      int objectsLength = saleSubLedgerObjects.length;
      Object[][] tempObjs = new Object[objectsLength + 1][9];
      System.arraycopy(saleSubLedgerObjects, 0, tempObjs, 0, objectsLength);
      tempObjs[objectsLength][0] = new Integer(0);
      tempObjs[objectsLength][1] = new String("");
      tempObjs[objectsLength][2] = new String("");
      tempObjs[objectsLength][3] = new Double(0);    //销售价
      tempObjs[objectsLength][4] = new Double(0);    //折扣
      tempObjs[objectsLength][5] = new Double(0);    //实际售价
      tempObjs[objectsLength][6] = new Double(0);    //退货金额
      tempObjs[objectsLength][7] = new Integer(0);   //数量
      tempObjs[objectsLength][8] = new Double(0);    //金额
      saleSubLedgerObjects = tempObjs;
      this.showSaleTableData(saleSubLedgerObjects);
    }else if(actionCommand.equals("deleteSub")){
      if(jTable1.getSelectedRowCount() == 0){
        JOptionPane.showMessageDialog(null, "请选择明细记录.");
        return;
      }
      //删除选择的记录
      int selectedIndex = jTable1.getSelectedRow();
      Object[][] tempObjs = new Object[saleSubLedgerObjects.length - 1][9];
      int line = 0;
      for(int i = 0; i < saleSubLedgerObjects.length; i++){
        if(i == selectedIndex){
          continue;
        }else{
          for(int j = 0; j < 9; j++){
            tempObjs[line][j] = saleSubLedgerObjects[i][j];
          }
          line++;
        }
      }
      saleSubLedgerObjects = tempObjs;
      this.showSaleTableData(saleSubLedgerObjects);
    }else if(actionCommand.equals("deleteStockSub")){
      if(jTable2.getSelectedRowCount() == 0){
        JOptionPane.showMessageDialog(null, "请选择库存列表的明细记录.");
        return;
      }
      //删除选择的记录
      int selectedIndex = jTable2.getSelectedRow();
      Object[][] tempObjs = new Object[stockSubLedgerObjects.length - 1][4];
      int line = 0;
      for(int i = 0; i < stockSubLedgerObjects.length; i++){
        if(i == selectedIndex){
          continue;
        }else{
          for(int j = 0; j < 4; j++){
            tempObjs[line][j] = stockSubLedgerObjects[i][j];
          }
          line++;
        }
      }
      stockSubLedgerObjects = tempObjs;
      this.showStockTableData(stockSubLedgerObjects);
    }else if(actionCommand.equals("exit")){
      exit();
    }
  }
  //使窗口居中的方法
  public void setCenterPosition(JFrame frame){
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation( (screenSize.width - frameSize.width) / 2,
                           (screenSize.height - frameSize.height) / 2);
  }
}

⌨️ 快捷键说明

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