/// <summary> /// 在庫情報の更新をおこなう /// </summary> /// <param name="srhd">仕入ヘッダデータ</param> /// <param name="dt">仕入明細データテーブル</param> private void setS03_STOK_Update(T03_SRHD srhd, DataTable dt) { // 会社名から対象の倉庫を取得 int souk = T03Service.get倉庫コード(srhd.入荷先コード); foreach (DataRow row in dt.Rows) { T03_SRDTL srdtl = convertDataRowToT03_SRDTL_Entity(row); // 未入力レコードはスキップ if (srdtl.品番コード <= 0) { continue; } // 元伝票からの返品対象外商品なので処理しない if (row.RowState == DataRowState.Deleted) { continue; } decimal stockQty = 0; // 在庫調整数計算 if (srhd.仕入区分 == (int)CommonConstants.仕入区分.返品) { // No-108 Add Start stockQty = srdtl.数量 * -1; // オリジナル(変更前数量)と比較して差分数量を加減算 if (row.HasVersion(DataRowVersion.Original)) { decimal orgQty = ParseNumeric <decimal>(row["数量", DataRowVersion.Original]); stockQty = srdtl.数量 * -1 + orgQty; } // No-108 Add End } else { // 上記以外の場合は処理なし continue; } // 在庫作成・更新 S03_STOK stok = new S03_STOK(); stok.庫コード = souk; stok.品番コード = srdtl.品番コード; stok.賞味期限 = AppCommon.DateTimeToDate(srdtl.賞味期限, DateTime.MaxValue); stok.在庫数 = stockQty; S03Service.S03_STOK_Update(stok); } }
/// <summary> /// 入出庫履歴の登録・更新をおこなう /// </summary> /// <param name="srhd">仕入ヘッダデータ</param> /// <param name="dtlTable">仕入明細データテーブル</param> /// <param name="orghd">変更前仕入ヘッダデータ</param> protected void setS04_HISTORY_Create(T03_SRHD srhd, DataTable dtlTable, DataRow orghd) { foreach (DataRow row in dtlTable.Rows) { // 仕入明細データ取得 T03_SRDTL srdtl = convertDataRowToT03_SRDTL_Entity(row); // 商品未設定レコードは処理しない if (srdtl.品番コード <= 0) { continue; } // 元伝票からの返品対象外商品なので処理しない if (row.RowState == DataRowState.Deleted) { continue; } S04_HISTORY history = new S04_HISTORY(); history.入出庫日 = srhd.仕入日; history.入出庫時刻 = com.GetDbDateTime().TimeOfDay; history.庫コード = T03Service.get倉庫コード(srhd.入荷先コード); history.入出庫区分 = (int)S04Service.getInboundType(row, "数量", srdtl.数量); history.品番コード = srdtl.品番コード; history.賞味期限 = srdtl.賞味期限; history.数量 = Math.Abs(decimal.ToInt32(srdtl.数量)); history.伝票番号 = srhd.伝票番号; Dictionary <string, string> hstDic = new Dictionary <string, string>() { // No.156-2 Mod Start { S04.COLUMNS_NAME_入出庫日, orghd == null? history.入出庫日.ToString("yyyy/MM/dd") : string.Format("{0:yyyy/MM/dd}", orghd["仕入日", DataRowVersion.Original]) }, { S04.COLUMNS_NAME_倉庫コード, orghd == null? history.庫コード.ToString() : orghd["入荷先コード", DataRowVersion.Original] == DBNull.Value? null : T03Service.get倉庫コード(Convert.ToInt32(orghd["入荷先コード", DataRowVersion.Original])).ToString() }, { S04.COLUMNS_NAME_伝票番号, orghd == null? history.伝票番号.ToString() : orghd["伝票番号", DataRowVersion.Original].ToString() }, { S04.COLUMNS_NAME_品番コード, history.品番コード.ToString() } // No.156-2 Mod End }; if (row.RowState == DataRowState.Added) { // 仕入作成の為、履歴作成 S04Service.CreateProductHistory(history); } else if (row.RowState == DataRowState.Deleted) { S04Service.DeleteProductHistory(hstDic); } // No.156-2 Mod Start else { // (DataRowState.Modified、DataRowState.Unchanged) // 仕入更新の為、履歴更新 S04Service.UpdateProductHistory(history, hstDic); } // No.156-2 Mod End } }