public static void Main() { var storeEngine = new StoreEngine(); storeEngine.Run(); }
/// <summary> /// 将线边仓中的批次进行合并。 /// </summary> /// <param name="db">数据库对象。</param> /// <param name="dbtran">数据库操作事务对象。</param> /// <param name="dsParams"> /// 包含合批数据的数据集对象. /// (1)数据集对象中包含一个名称为<see cref="BASE_PARAMETER_FIELDS.DATABASE_TABLE_NAME"/>的数据表对象。 /// 数据表中存放待合并的批次返工或退库数据。 /// (2) 数据集对象中包含一个名称为<see cref="TRANS_TABLES.TABLE_MAIN_DATA"/>的数据表对象。 /// 数据表中必须包含两个列"name"和"value"。列name存放哈希表的键名,列value存放哈希表键对应的键值。 /// 键名: /// 合并到批次的返工或退库记录的主键<see cref="WST_STORE_MAT_FIELDS.FIELD_ROW_KEY"/>, /// 合并到批次的批次号<see cref="POR_LOT_FIELDS.FIELD_LOT_NUMBER"/>, /// 合并后批次的数量<see cref="POR_LOT_FIELDS.FIELD_QUANTITY"/>, /// 编辑人<see cref="WIP_TRANSACTION_FIELDS.FIELD_EDITOR"/>, /// 编辑时区<see cref="WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIMEZONE_KEY"/>, /// 编辑时间<see cref="WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIME"/>, /// 批次主键<see cref="POR_LOT_FIELDS.FIELD_LOT_KEY"/>。 /// </param> private void MergeLotInStore(Database db, DbTransaction dbtran, DataSet dsParams) { String sql = string.Empty; DataSet dsReturn = new DataSet(); DataSet ds; string strParentRowKey = ""; string strParentLotNumber = ""; string strParentTransKey = ""; string strParentStepKey = ""; string strParentRouteKey = ""; string strParentEnterpriseKey = ""; string strParentQTY = ""; string strTotalQTY = ""; string strSumQTY = ""; string strComment = ""; string strEditor = "", strEditTimeZone = "", strEditTime = ""; string strLineKey = "", strShiftName = "", strWorkOrderKey = "", strStateFlag = ""; if (dsParams.Tables.Count > 0)//数据集中包含数据表。 { DataTable dataTable = dsParams.Tables[TRANS_TABLES.TABLE_MAIN_DATA]; Hashtable hashData = SolarViewer.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dataTable); strParentRowKey = hashData[WST_STORE_MAT_FIELDS.FIELD_ROW_KEY].ToString(); strParentLotNumber = hashData["LOT_NUMBER"].ToString(); strSumQTY = hashData[POR_LOT_FIELDS.FIELD_QUANTITY].ToString(); //strComment = hashData[WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY_COMMENT].ToString(); strEditor = hashData[WIP_TRANSACTION_FIELDS.FIELD_EDITOR].ToString(); strEditTimeZone = hashData[WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIMEZONE_KEY].ToString(); strEditTime = UtilHelper.GetSysdate(db).ToString("yyyy-MM-dd HH:mm:ss"); // Get Lot Details ds = StoreEngine.GetStoreLotDetailsInfor(db, strParentRowKey); strParentStepKey = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME].Rows[0][WST_STORE_MAT_FIELDS.FIELD_STEP_KEY].ToString(); strParentRouteKey = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME].Rows[0][WST_STORE_MAT_FIELDS.FIELD_ROUTE_KEY].ToString(); strParentEnterpriseKey = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME].Rows[0][WST_STORE_MAT_FIELDS.FIELD_ENTERPRISE_KEY].ToString(); strParentQTY = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME].Rows[0][WST_STORE_MAT_FIELDS.FIELD_ITEM_QTY].ToString(); strLineKey = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME].Rows[0][WST_STORE_MAT_FIELDS.FIELD_LINE_KEY].ToString(); strShiftName = UtilHelper.GetShiftKey(db, strEditTime); strWorkOrderKey = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME].Rows[0][POR_LOT_FIELDS.FIELD_WORK_ORDER_KEY].ToString(); //更新WST_STORE_MAT记录 sql = string.Format(@"UPDATE WST_STORE_MAT SET ITEM_QTY= '{0}', EDIT_TIME=GETDATE() WHERE ROW_KEY='{1}'", strSumQTY.PreventSQLInjection(), strParentRowKey.PreventSQLInjection()); db.ExecuteNonQuery(dbtran, CommandType.Text, sql); strTotalQTY = (Convert.ToInt32(strParentQTY) + Convert.ToInt32(strSumQTY)).ToString(); WIP_TRANSACTION_FIELDS wipFields = new WIP_TRANSACTION_FIELDS(); #region 合并批次操作记录 Hashtable parenttransactionTable = new Hashtable(); DataTable parenttransaction = new DataTable(); strParentTransKey = UtilHelper.GenerateNewKey(0); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_TRANSACTION_KEY, strParentTransKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_PIECE_TYPE, "0"); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_PIECE_KEY, hashData[POR_LOT_FIELDS.FIELD_LOT_KEY].ToString()); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_CHILD_LOT_KEY, strParentRowKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_QUANTITY_IN, strParentQTY); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_QUANTITY_OUT, strTotalQTY); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY, ACTIVITY_FIELD_VALUES.FIELD_ACTIVITY_STOREMERGE); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY_COMMENT, strComment); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_EDITOR, strEditor); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIMEZONE_KEY, strEditTimeZone); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIME, strEditTime); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_LINE_KEY, strLineKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_SHIFT_NAME, strShiftName); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_WORK_ORDER_KEY, strWorkOrderKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_STEP_KEY, strParentStepKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ROUTE_KEY, strParentRouteKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ENTERPRISE_KEY, strParentEnterpriseKey); parenttransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_STATE_FLAG, strStateFlag); //向WIP_TRANSACTION插入合并到批次的操作记录 sql = DatabaseTable.BuildInsertSqlStatement(wipFields, parenttransactionTable, null); db.ExecuteNonQuery(dbtran, CommandType.Text, sql); #endregion #region 生成子批次 string strChildRowKey = ""; string strChildLotNumber = ""; string strChildQty = ""; if (dsParams.Tables.Contains(BASE_PARAMETER_FIELDS.DATABASE_TABLE_NAME)) { DataTable parameterdatatable = dsParams.Tables[BASE_PARAMETER_FIELDS.DATABASE_TABLE_NAME]; for (int i = 0; i < parameterdatatable.Rows.Count; i++) { //更新WST_STORE_MAT数据 strChildRowKey = parameterdatatable.Rows[i][WST_STORE_MAT_FIELDS.FIELD_ROW_KEY].ToString(); strChildLotNumber = parameterdatatable.Rows[i]["LOT_NUMBER"].ToString(); strChildQty = parameterdatatable.Rows[i][WST_STORE_MAT_FIELDS.FIELD_ITEM_QTY].ToString(); sql = @"UPDATE WST_STORE_MAT SET ITEM_QTY='0',OBJECT_STATUS='3', EDIT_TIME=GETDATE() WHERE ROW_KEY='" + strChildRowKey.PreventSQLInjection() + "'"; db.ExecuteNonQuery(dbtran, CommandType.Text, sql); //向WIP_TRANSACTION插入被合并批次的操作记录 Hashtable childtransactionTable = new Hashtable(); DataTable childtransaction = new DataTable(); //sql = ""; string strChildTransKey = UtilHelper.GenerateNewKey(0); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_TRANSACTION_KEY, strChildTransKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_PIECE_TYPE, "0"); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_PIECE_KEY, parameterdatatable.Rows[i][POR_LOT_FIELDS.FIELD_LOT_KEY].ToString()); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_CHILD_LOT_KEY, strChildRowKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_QUANTITY_IN, strChildQty); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_QUANTITY_OUT, "0"); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY, ACTIVITY_FIELD_VALUES.FIELD_ACTIVITY_STORE_MERGED); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY_COMMENT, ""); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_EDITOR, strEditor); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIMEZONE_KEY, strEditTimeZone); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIME, strEditTime); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_LINE_KEY, strLineKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_SHIFT_NAME, strShiftName); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_WORK_ORDER_KEY, strWorkOrderKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ENTERPRISE_KEY, strParentEnterpriseKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_ROUTE_KEY, strParentRouteKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_STEP_KEY, strParentStepKey); childtransactionTable.Add(WIP_TRANSACTION_FIELDS.FIELD_STATE_FLAG, strStateFlag); sql = DatabaseTable.BuildInsertSqlStatement(wipFields, childtransactionTable, null); db.ExecuteNonQuery(dbtran, CommandType.Text, sql); //向WIP_MERGE插入合并批次记录 Hashtable MergeHashTable = new Hashtable(); WIP_MERGE_FIELDS wipMerge = new WIP_MERGE_FIELDS(); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_TRANSACTION_KEY, strParentTransKey); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_CHILD_LOT_KEY, strChildRowKey); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_MAIN_LOT_KEY, strParentRowKey); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_MERGE_QUANTITY, strChildQty); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_STEP_KEY, strParentStepKey); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_ROUTE_KEY, strParentRouteKey); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_ENTERPRISE_KEY, strParentEnterpriseKey); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_EDITOR, strEditor); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_EDIT_TIME, strEditTime); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_EDIT_TIMEZONE, strEditTimeZone); MergeHashTable.Add(WIP_MERGE_FIELDS.FIELD_CHILD_TRANSACTION_KEY, strChildTransKey); sql = DatabaseTable.BuildInsertSqlStatement(wipMerge, MergeHashTable, null); db.ExecuteNonQuery(dbtran, CommandType.Text, sql); } } #endregion } }
/// <summary> /// 采集不良数据。 /// </summary> /// <param name="dbTran">数据操作事务对象。</param> /// <param name="ds">包含报废数据的数据集对象。</param> private void SetDefect(DbTransaction dbTran, DataSet ds) { DataTable dataTable = ds.Tables[TRANS_TABLES.TABLE_PARAM]; Hashtable hashData = SolarViewer.Hemera.Share.Common.CommonUtils.ConvertToHashtable(dataTable); string lotKey = Convert.ToString(hashData[POR_LOT_FIELDS.FIELD_LOT_KEY]); string strWorkOrderKey = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_WORK_ORDER_KEY]); string strLineKey = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_LINE_KEY]); string strOprLine = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_OPR_LINE]); string strEditor = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_EDITOR]); string strOperator = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_OPERATOR]); string strShiftName = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_SHIFT_NAME]); string strEditTime = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIME]); string shiftKey = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_SHIFT_KEY]); string computeName = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_OPR_COMPUTER]); string stateFlag = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_STATE_FLAG]); string reworkFlag = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_REWORK_FLAG]); //string comment = Convert.ToString(hashData[WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY_COMMENT]); //Q.001 string comment = Convert.ToString(hashData["DEFECTCOMMET"]); //Q.001 DataTable table = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME]; string sql = string.Format(@"SELECT LOT_SEQ,LOT_NUMBER FROM POR_LOT WHERE LOT_KEY='{0}'", lotKey.PreventSQLInjection()); IDataReader readerSEQ = db.ExecuteReader(CommandType.Text, sql); int seq = 0; //获取当前批次对应的返工和退库记录数。 string lotNumber = string.Empty; if (readerSEQ.Read()) { if (readerSEQ["LOT_SEQ"].ToString() != "") { seq = Int32.Parse(readerSEQ["LOT_SEQ"].ToString()); } lotNumber = readerSEQ[POR_LOT_FIELDS.FIELD_LOT_NUMBER].ToString(); } readerSEQ.Close(); readerSEQ.Dispose(); for (int i = 0; i < table.Rows.Count; i++) { table.Rows[i][WST_STORE_MAT_FIELDS.FIELD_ITEM_NO] = lotNumber + (seq + i + 1).ToString("00"); table.Rows[i][WIP_TRANSACTION_FIELDS.FIELD_SHIFT_NAME] = strShiftName; } //插入批次对应的返工和退库记录。 WipManagement.InsertIntoStoreMat(db, dbTran, ds); //更新批次对应的返工和退库记录数。 sql = string.Format(@"UPDATE POR_LOT SET LOT_SEQ='{0}' WHERE LOT_KEY='{1}'", seq + table.Rows.Count, lotKey.PreventSQLInjection()); db.ExecuteNonQuery(dbTran, CommandType.Text, sql); //如果包含缺陷代码数据表。设置了先区分不良代码再入库。 if (ds.Tables.Contains(WIP_DEFECT_FIELDS.DATABASE_TABLE_NAME)) { DataTable dtStoreMat = ds.Tables[WST_STORE_MAT_FIELDS.DATABASE_TABLE_NAME]; DataTable dtDefect = ds.Tables[WIP_DEFECT_FIELDS.DATABASE_TABLE_NAME]; string rowKey = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_ROW_KEY].ToString(); string storeType = dtStoreMat.Rows[0][WST_STORE_FIELDS.FIELD_STORE_TYPE].ToString(); string lineKey = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_LINE_KEY].ToString(); string stepKey = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_STEP_KEY].ToString(); string routeKey = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_ROUTE_KEY].ToString(); string enterpriseKey = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_ENTERPRISE_KEY].ToString(); string quantity = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_ITEM_QTY].ToString(); string editor = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_EDITOR].ToString(); string editTimeZone = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_EDIT_TIMEZONE].ToString(); string workorderNumber = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_WORKORDER_NUMBER].ToString(); string storeKey = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_STORE_KEY].ToString(); string storeName = dtStoreMat.Rows[0][WST_STORE_FIELDS.FIELD_STORE_NAME].ToString(); string objectStatus = dtStoreMat.Rows[0][WST_STORE_MAT_FIELDS.FIELD_OBJECT_STATUS].ToString(); #region RW_STORE_TRANSACTION Hashtable htReworkLotInStore = new Hashtable(); DataTable dtReworkLotInStore = new DataTable(); htReworkLotInStore.Add(WST_STORE_FIELDS.FIELD_STORE_TYPE, storeType); htReworkLotInStore.Add(POR_WORK_ORDER_FIELDS.FIELD_WORK_ORDER_KEY, strWorkOrderKey); htReworkLotInStore.Add(WST_STORE_MAT_FIELDS.FIELD_ROW_KEY, rowKey); htReworkLotInStore.Add(WST_STORE_MAT_FIELDS.FIELD_LINE_KEY, lineKey); htReworkLotInStore.Add(WST_STORE_MAT_FIELDS.FIELD_STEP_KEY, stepKey); htReworkLotInStore.Add(WST_STORE_MAT_FIELDS.FIELD_ROUTE_KEY, routeKey); htReworkLotInStore.Add(WST_STORE_MAT_FIELDS.FIELD_ENTERPRISE_KEY, enterpriseKey); htReworkLotInStore.Add(WST_STORE_MAT_FIELDS.FIELD_ITEM_QTY, quantity); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_EDITOR, editor); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIMEZONE_KEY, editTimeZone); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_OPERATOR, strOperator); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_PIECE_KEY, lotKey); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_SHIFT_NAME, strShiftName); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_SHIFT_KEY, shiftKey); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_OPR_COMPUTER, computeName); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_STATE_FLAG, stateFlag); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_REWORK_FLAG, reworkFlag); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_OPR_LINE, strOprLine); htReworkLotInStore.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY_COMMENT, comment); dtReworkLotInStore = SolarViewer.Hemera.Share.Common.CommonUtils.ParseToDataTable(htReworkLotInStore); dtReworkLotInStore.TableName = TRANS_TABLES.TABLE_MAIN_DATA; DataSet dsReworkLotInStore = new DataSet(); dsReworkLotInStore.Tables.Add(dtReworkLotInStore); dsReworkLotInStore.Merge(dtDefect); StoreEngine.ReworkLotInStore(db, dbTran, dsReworkLotInStore); #endregion #region RWOUTSTORE //ReworkLot DataTable dtReworkLotDetail = new DataTable(); dtReworkLotDetail.TableName = BASE_PARAMETER_FIELDS.DATABASE_TABLE_NAME; dtReworkLotDetail.Columns.Add("ROW_KEY"); dtReworkLotDetail.Columns.Add("LOT_NUMBER"); dtReworkLotDetail.Columns.Add("LINE_KEY"); dtReworkLotDetail.Columns.Add("LINE_NAME"); dtReworkLotDetail.Columns.Add("ITEM_QTY"); dtReworkLotDetail.Columns.Add("EDIT_TIME"); dtReworkLotDetail.Columns.Add("STEP_KEY"); dtReworkLotDetail.Columns.Add("ROUTE_KEY"); dtReworkLotDetail.Columns.Add("ENTERPRISE_KEY"); dtReworkLotDetail.Columns.Add(WST_STORE_MAT_FIELDS.FIELD_BALANCE_QTY); dtReworkLotDetail.Columns.Add(WST_STORE_MAT_FIELDS.FIELD_BALANCE_EDITOR); dtReworkLotDetail.Columns.Add(POR_LOT_FIELDS.FIELD_LOT_KEY); dtReworkLotDetail.Rows.Add(rowKey, lotNumber, lineKey, strOprLine, quantity, strEditTime, stepKey, routeKey, enterpriseKey, 0, string.Empty, lotKey); DataSet dsReworkLot = new DataSet(); dsReworkLot.Tables.Add(dtReworkLotDetail); Hashtable htReworkLot = new Hashtable(); DataTable dtReworkLot = new DataTable(); htReworkLot.Add(WST_STORE_FIELDS.FIELD_STORE_NAME, storeName); htReworkLot.Add(WST_STORE_FIELDS.FIELD_STORE_TYPE, storeType); htReworkLot.Add(POR_WORK_ORDER_FIELDS.FIELD_WORK_ORDER_KEY, strWorkOrderKey); htReworkLot.Add(WST_STORE_MAT_FIELDS.FIELD_STORE_KEY, storeKey); htReworkLot.Add(WST_STORE_MAT_FIELDS.FIELD_WORKORDER_NUMBER, workorderNumber); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY, string.Empty); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_EDITOR, editor); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_EDIT_TIMEZONE_KEY, editTimeZone); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_OPERATOR, strOperator); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_SHIFT_NAME, strShiftName); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_SHIFT_KEY, shiftKey); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_OPR_COMPUTER, computeName); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_STATE_FLAG, stateFlag); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_REWORK_FLAG, reworkFlag); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_OPR_LINE, strOprLine); htReworkLot.Add(WIP_TRANSACTION_FIELDS.FIELD_ACTIVITY_COMMENT, comment); htReworkLot.Add("REWORK_QTY", quantity); dtReworkLot = SolarViewer.Hemera.Share.Common.CommonUtils.ParseToDataTable(htReworkLot); dtReworkLot.TableName = TRANS_TABLES.TABLE_MAIN_DATA; dsReworkLot.Tables.Add(dtReworkLot); StoreEngine.ReworkLot(db, dbTran, dsReworkLot); #endregion } }