📄 countsalereturnframe.java~337~
字号:
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 + -