コード例 #1
0
        ///------------------------------------------------------------------------
        /// <summary>
        ///     商品マスターデータテーブルから情報を取得する : 2020/04/09 </summary>
        /// <param name="syohins">
        ///     ClsCsvData.ClsCsvSyohin_Newクラス配列</param>
        /// <param name="sSyohinCD">
        ///     商品コード  </param>
        /// <returns>
        ///     商品マスタークラス</returns>
        ///------------------------------------------------------------------------
        public static ClsCsvData.ClsCsvSyohin GetSyohinsFromDataTable(string sSyohinCD, System.Data.DataTable data)
        {
            ClsCsvData.ClsCsvSyohin cls = new ClsCsvData.ClsCsvSyohin
            {
                SyohinCode = "",
                SyohinName = "",
                Kikaku     = ""
            };

            DataRow[] row = data.AsEnumerable().Where(a => a["商品コード"].ToString() == sSyohinCD).ToArray();

            foreach (var t in row)
            {
                cls.SyohinCode = t["商品コード"].ToString();
                cls.SyohinName = t["商品名"].ToString();
                //cls.Kikaku = t["規格"].ToString();
                break;
            }

            return(cls);
        }
コード例 #2
0
            ///-------------------------------------------------------
            /// <summary>
            ///     売上原価Pro仕入データ作成 </summary>
            ///
            /// 2020/09/28 : 仕入伝票は売上仕入区分で判断
            ///-------------------------------------------------------
            public void CreateShiireCsv()
            {
                DateTime dt;

                string[] ProArray    = null;
                int      iX          = 0;
                int      _DEN_SHIIRE = Utility.StrtoInt(global.DEN_SHIIRE); // 2020/09/28

                try
                {
                    // 2020/09/28 コメント化
                    //var s = tblDeliv.Where(a => a.DenKbn == Utility.StrtoInt(global.DEN_NOUHINKARI) ||
                    //                       a.DenKbn == Utility.StrtoInt(global.DEN_GENPIN));

                    // 仕入伝票は売上仕入区分で判断:2020/09/28
                    var s = tblDeliv.Where(a => a.UriShiire == _DEN_SHIIRE);

                    // 仕入伝票があれば実行:2020/09/28
                    if (s.Count() > 0)
                    {
                        foreach (var t in s)
                        {
                            if (!DateTime.TryParse(t.NounyuDate, out dt))
                            {
                                continue;
                            }

                            for (int i = 0; i < 5; i++)
                            {
                                string BCode = "";
                                string BSuu  = "";

                                if (i == 0)
                                {
                                    BCode = t.BuhinCode_1;
                                    BSuu  = t.Suu_1;
                                }
                                else if (i == 1)
                                {
                                    BCode = t.BuhinCode_2;
                                    BSuu  = t.Suu_2;
                                }
                                else if (i == 2)
                                {
                                    BCode = t.BuhinCode_3;
                                    BSuu  = t.Suu_3;
                                }
                                else if (i == 3)
                                {
                                    BCode = t.BuhinCode_4;
                                    BSuu  = t.Suu_4;
                                }
                                else if (i == 4)
                                {
                                    BCode = t.BuhinCode_5;
                                    BSuu  = t.Suu_5;
                                }

                                if (BCode == string.Empty)
                                {
                                    continue;
                                }

                                StringBuilder sb = new StringBuilder();

                                if (iX == 0)
                                {
                                    sb.Append("H1,");
                                    sb.Append("H2,");
                                    sb.Append("H3,");
                                    sb.Append("H4,");
                                    sb.Append("H5,");
                                    sb.Append("H6,");
                                    sb.Append("H7,");
                                    sb.Append("H8,");
                                    sb.Append("H9,");
                                    sb.Append("H10,");
                                    sb.Append("H11,");
                                    sb.Append("H12,");
                                    sb.Append("H13").Append(Environment.NewLine);
                                }

                                sb.Append(dt.Year + dt.Month.ToString("D2") + dt.Day.ToString("D2")).Append(","); // 仕入日
                                sb.Append(t.KakeGenkin.ToString()).Append(",");                                   // 仕入区分
                                sb.Append(t.NonyuCode.ToString()).Append(",");                                    // 仕入先コード
                                sb.Append(string.Empty).Append(",");                                              // 受注番号:値なし 2020/07/24

                                // 2020/08/20 間違えてコメント外したがこれで売上原価Pro側を定義したためそのままとする
                                sb.Append(t.BumonCode.ToString()).Append(",");              // 部門コード  // 2020/08/17 コメント化

                                sb.Append(string.Empty).Append(",");                        // 部門コード : 値なし 2020/08/17
                                sb.Append(BCode.Replace(",", " ")).Append(",");             // 部品コード

                                // 商品マスターより名称・規格を取得
                                ClsCsvData.ClsCsvSyohin cls = Utility.GetSyohinsFromDataTable(BCode, global.dtSyohin);
                                sb.Append(cls.SyohinName.Replace(",", " ")).Append(",");    // 品名
                                sb.Append(cls.Kikaku.Replace(",", " ")).Append(",");        // 規格

                                sb.Append(BSuu).Append(",");                                // 数量
                                sb.Append(string.Empty).Append(",");                        // 単位
                                sb.Append(string.Empty).Append(",");                        // 仕入単価
                                sb.Append(string.Empty).Append(",");                        // 備考1
                                sb.Append(string.Empty);                                    // 備考2

                                Array.Resize(ref ProArray, iX + 1);
                                ProArray[iX] = sb.ToString();

                                iX++;
                            }
                        }

                        // 売上原価Proデータ CSVファイル出力
                        if (ProArray != null)
                        {
                            txtFileWrite(CsvOutPath, ProArray, "仕入");
                        }

                        // データ削除
                        DeleteShiireData(_DEN_SHIIRE);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                }
            }