Exemplo n.º 1
0
        /// <summary>
        /// 仕入明細情報の更新をおこなう
        /// </summary>
        /// <param name="srhd">仕入ヘッダデータ</param>
        /// <param name="dt">仕入明細データテーブル</param>
        /// <returns></returns>
        protected List <T03_SRDTL> setT03_SRDTL_Update(T03_SRHD shd, DataTable dt)
        {
            // 登録済データの削除
            T03Service.T03_SRDTL_DeleteRecords(shd.伝票番号);

            List <T03_SRDTL> resultList = new List <T03_SRDTL>();

            // 明細追加
            foreach (DataRow row in dt.Rows)
            {
                // Del-Insの為削除されたレコードは不要
                if (row.RowState == DataRowState.Deleted)
                {
                    continue;
                }

                T03_SRDTL dtlData = convertDataRowToT03_SRDTL_Entity(row);
                dtlData.伝票番号 = shd.伝票番号;

                if (dtlData.品番コード <= 0)
                {
                    continue;
                }

                // 明細データの登録実行
                T03Service.T03_SRDTL_Update(dtlData);

                resultList.Add(dtlData);
            }

            return(resultList);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 仕入ヘッダ情報の更新をおこなう
        /// </summary>
        /// <param name="row">仕入ヘッダデータ行</param>
        /// <returns></returns>
        protected T03_SRHD setT03_SRHD_Update(DataRow row)
        {
            // 入力情報
            T03_SRHD t03Data = convertDataRowToT03_SRHD_Entity(row);

            // 仕入ヘッダの登録を実行
            T03Service.T03_SRHD_Update(t03Data);

            return(t03Data);
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        /// <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
            }
        }