private void btnSave_Click(object sender, EventArgs e) { if (CheckInput()) { BllHistoryStockTable HSTable = new BllHistoryStockTable(); BllHistoryStockLineTable HSLTable = null; HSTable.SLIP_NUMBER = txtSlipNumber.Text.Trim(); HSTable.SLIP_DATE = txtSlipDate.Value; HSTable.WAREHOUSE_CODE = txtWarehouseCode.Text.Trim(); HSTable.CREATE_USER = _userInfo.CODE; HSTable.LAST_UPDATE_USER = _userInfo.CODE; foreach (DataGridViewRow row in dgvData.Rows) { if (row.Cells["PRODUCT_CODE"].Value != null) { HSLTable = new BllHistoryStockLineTable(); HSLTable.SLIP_NUMBER = txtSlipNumber.Text.Trim(); HSLTable.LINE_NUMBER = row.Index + 1; HSLTable.PRODUCT_CODE = row.Cells["PRODUCT_CODE"].Value.ToString(); HSLTable.QUANTITY = CConvert.ToDecimal(row.Cells["SANCTION_NUMBER"].Value.ToString()); HSLTable.UNIT_CODE = row.Cells["UNIT_CODE"].Value.ToString(); HSLTable.REASON_CODE = row.Cells["REASON"].Value.ToString(); if (HSLTable.SLIP_NUMBER != null) { HSTable.AddItem(HSLTable); } } } int result = 0; try { bool b = true; result = bStock.AddHistory(HSTable); if (result <= 0) { b = false; string errorLog = "保存失败,请重试或与管理员联系."; MessageBox.Show(errorLog, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } if (b && dgvData.Rows.Count > 0) { dgvData.Rows.Clear(); initSlipNumber(); txtWarehouseCode.Text = ""; txtWarehouseName.Text = ""; MessageBox.Show("保存成功", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show("保存失败,系统错误,请与管理员联系.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); Logger.Error("新建订单保存失败!", ex); } } }
public int AddHistory(BllHistoryStockTable historyStockTable) { return(dal.AddHistory(historyStockTable)); }
/// <summary> /// add history /// </summary> public int AddHistory(BllHistoryStockTable historyStockTable) { int i = 0; int result = 0; while (i < 10) { try { List <CommandInfo> listSql = new List <CommandInfo>(); StringBuilder strSql = null; strSql = new StringBuilder(); strSql.Append("insert into BLL_HISTORY_STOCK("); strSql.Append("SLIP_NUMBER,SLIP_DATE,WAREHOUSE_CODE,COMPANY_CODE,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER)"); strSql.Append(" values ("); strSql.Append("@SLIP_NUMBER,@SLIP_DATE,@WAREHOUSE_CODE,@COMPANY_CODE,@STATUS_FLAG,@CREATE_USER,GETDATE(),GETDATE(),@LAST_UPDATE_USER)"); SqlParameter[] stockParam = { new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 20), new SqlParameter("@SLIP_DATE", SqlDbType.DateTime), new SqlParameter("@WAREHOUSE_CODE", SqlDbType.VarChar, 20), new SqlParameter("@COMPANY_CODE", SqlDbType.VarChar, 20), new SqlParameter("@STATUS_FLAG", SqlDbType.Int, 4), new SqlParameter("@CREATE_USER", SqlDbType.VarChar, 20), new SqlParameter("@LAST_UPDATE_USER", SqlDbType.VarChar, 20) }; stockParam[0].Value = historyStockTable.SLIP_NUMBER; stockParam[1].Value = historyStockTable.SLIP_DATE; stockParam[2].Value = historyStockTable.WAREHOUSE_CODE; stockParam[3].Value = historyStockTable.COMPANY_CODE; stockParam[4].Value = CConstant.INIT; stockParam[5].Value = historyStockTable.CREATE_USER; stockParam[6].Value = historyStockTable.LAST_UPDATE_USER; listSql.Add(new CommandInfo(strSql.ToString(), stockParam)); foreach (BllHistoryStockLineTable lineModel in historyStockTable.Items) { strSql = new StringBuilder(); strSql.Append("insert into BLL_HISTORY_STOCK_LINE("); strSql.Append("SLIP_NUMBER,LINE_NUMBER,PRODUCT_CODE,QUANTITY,UNIT_CODE,REASON_CODE,STATUS_FLAG)"); strSql.Append(" values ("); strSql.Append("@SLIP_NUMBER,@LINE_NUMBER,@PRODUCT_CODE,@QUANTITY,@UNIT_CODE,@REASON_CODE,@STATUS_FLAG)"); SqlParameter[] lineParam = { new SqlParameter("@SLIP_NUMBER", SqlDbType.VarChar, 20), new SqlParameter("@LINE_NUMBER", SqlDbType.Int, 4), new SqlParameter("@PRODUCT_CODE", SqlDbType.VarChar, 20), new SqlParameter("@QUANTITY", SqlDbType.Decimal, 9), new SqlParameter("@UNIT_CODE", SqlDbType.VarChar, 20), new SqlParameter("@REASON_CODE", SqlDbType.VarChar, 20), new SqlParameter("@STATUS_FLAG", SqlDbType.Int, 4) }; lineParam[0].Value = lineModel.SLIP_NUMBER; lineParam[1].Value = lineModel.LINE_NUMBER; lineParam[2].Value = lineModel.PRODUCT_CODE; lineParam[3].Value = lineModel.QUANTITY; lineParam[4].Value = lineModel.UNIT_CODE; lineParam[5].Value = lineModel.REASON_CODE; lineParam[6].Value = CConstant.INIT; listSql.Add(new CommandInfo(strSql.ToString(), lineParam)); if (Existstock(historyStockTable.WAREHOUSE_CODE, lineModel.PRODUCT_CODE)) { //库存更新 strSql = new StringBuilder(); strSql.Append("update BASE_STOCK set "); strSql.Append("QUANTITY=QUANTITY + @QUANTITY,"); strSql.Append("LAST_UPDATE_TIME=GETDATE(),"); strSql.Append("LAST_UPDATE_USER=@LAST_UPDATE_USER"); strSql.Append(" where WAREHOUSE_CODE=@WAREHOUSE_CODE and PRODUCT_CODE=@PRODUCT_CODE "); SqlParameter[] sParam = { new SqlParameter("@WAREHOUSE_CODE", SqlDbType.VarChar, 20), new SqlParameter("@PRODUCT_CODE", SqlDbType.VarChar, 20), new SqlParameter("@QUANTITY", SqlDbType.Decimal, 9), new SqlParameter("@LAST_UPDATE_USER", SqlDbType.VarChar, 20) }; sParam[0].Value = historyStockTable.WAREHOUSE_CODE; sParam[1].Value = lineModel.PRODUCT_CODE; sParam[2].Value = lineModel.QUANTITY; sParam[3].Value = historyStockTable.LAST_UPDATE_USER; listSql.Add(new CommandInfo(strSql.ToString(), sParam)); } else { strSql = new StringBuilder(); strSql.Append("insert into BASE_STOCK("); strSql.Append("WAREHOUSE_CODE,PRODUCT_CODE,UNIT_CODE,QUANTITY,STATUS_FLAG,CREATE_USER,CREATE_DATE_TIME,LAST_UPDATE_TIME,LAST_UPDATE_USER)"); strSql.Append(" values ("); strSql.Append("@WAREHOUSE_CODE,@PRODUCT_CODE,@UNIT_CODE,@QUANTITY,@STATUS_FLAG,@CREATE_USER,GETDATE(),GETDATE(),@LAST_UPDATE_USER)"); SqlParameter[] stockParam2 = { new SqlParameter("@WAREHOUSE_CODE", SqlDbType.VarChar, 20), new SqlParameter("@PRODUCT_CODE", SqlDbType.VarChar, 20), new SqlParameter("@UNIT_CODE", SqlDbType.VarChar, 20), new SqlParameter("@QUANTITY", SqlDbType.Decimal, 9), new SqlParameter("@STATUS_FLAG", SqlDbType.Int, 4), new SqlParameter("@CREATE_USER", SqlDbType.VarChar, 20), new SqlParameter("@LAST_UPDATE_USER", SqlDbType.VarChar, 20) }; stockParam2[0].Value = historyStockTable.WAREHOUSE_CODE; stockParam2[1].Value = lineModel.PRODUCT_CODE; stockParam2[2].Value = lineModel.UNIT_CODE; stockParam2[3].Value = lineModel.QUANTITY; stockParam2[4].Value = CConstant.INIT; stockParam2[5].Value = historyStockTable.CREATE_USER; stockParam2[6].Value = historyStockTable.LAST_UPDATE_USER; listSql.Add(new CommandInfo(strSql.ToString(), stockParam2)); } } result = DbHelperSQL.ExecuteSqlTran(listSql); } catch (SqlException ex) { if (i != 9) { int maxLlipNumber = CConvert.ToInt32(GetMaxSlipNumber()) + 1; historyStockTable.SLIP_NUMBER = maxLlipNumber.ToString().PadLeft(4, '0'); i++; continue; } } break; } return(result); }