public List <SRY19010_Member> SRY19010_GetDataHinList(string s車輌From, string s車輌To, int?[] i車輌List, int p年月, int p前月, int p前年, int i表示順序, string s車輌List) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { string s作成年月; s作成年月 = p年月.ToString().Substring(0, 4) + "年" + p年月.ToString().Substring(4, 2) + "月度"; List <SRY19010_Member> retList = new List <SRY19010_Member>(); context.Connection.Open(); try { string 車輌ピックアップ指定 = string.Empty; var ZENGETU = (from s14c in context.S14_CAR where s14c.集計年月 == p前月 select new SRY19010g_Member { 車輌Key = s14c.車輌KEY, 燃費 = s14c.燃料L == 0 ? 0 : Math.Round((decimal)((s14c.走行KM / s14c.燃料L)), 2), 走行KM = s14c.走行KM, 燃料L = s14c.燃料L, }).AsQueryable(); var ZENNEN = (from s14c in context.S14_CAR where s14c.集計年月 == p前年 select new SRY19010g_Member { 車輌Key = s14c.車輌KEY, 燃費 = s14c.燃料L == 0 ? 0 : Math.Round((decimal)((s14c.走行KM / s14c.燃料L)), 2), 走行KM = s14c.走行KM, 燃料L = s14c.燃料L, }).AsQueryable(); var query = (from m05 in context.M05_CAR.Where(c => c.廃車区分 == 0 && c.削除日付 == null) from m04 in context.M04_DRV.Where(c => c.削除日付 == null && c.乗務員KEY == m05.乗務員KEY).DefaultIfEmpty() from s14 in context.S14_CAR.Where(c => c.集計年月 == p年月 && c.車輌KEY == m05.車輌KEY) from s14sb in context.S14_CARSB.Where(c => c.集計年月 == p年月 && c.車輌KEY == m05.車輌KEY && c.経費項目ID == 401).DefaultIfEmpty() from zengetu in ZENGETU.Where(c => c.車輌Key == m05.車輌KEY).DefaultIfEmpty() from zennen in ZENNEN.Where(c => c.車輌Key == m05.車輌KEY).DefaultIfEmpty() select new SRY19010_Member { 車輌ID = m05.車輌KEY, 車輌番号 = m05.車輌番号, 乗務員名 = m04.乗務員名, 日数 = s14.稼動日数 == null ? 0 : s14.稼動日数, 運賃 = s14.運送収入 == null ? 0 : s14.運送収入, 壱日当り = s14.稼動日数 == null ? 0 : s14.稼動日数 == 0 ? 0 : Math.Round((decimal)((s14.運送収入 / s14.稼動日数)), 0), 輸送屯数 = s14.輸送屯数 == null ? 0 : s14.輸送屯数, 走行KM = s14.走行KM == null ? 0 : s14.走行KM, 実車KM = s14.実車KM == null ? 0 : s14.実車KM, 燃料L = s14.燃料L == null ? 0 : s14.燃料L, 燃費 = s14.燃料L == null ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14.走行KM / s14.燃料L)), 2), 燃料代 = s14sb.金額 == null ? 0 : s14sb.金額, 前月燃費 = zengetu.燃費 == null ? 0 : zengetu.燃費, 前月対比 = zengetu.燃費 == null ? 0 : zengetu.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14.走行KM / s14.燃料L) / zengetu.燃費), 0), 前月燃費差益 = zengetu.燃費 == null ? 0 : zengetu.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14sb.金額 / s14.燃料L) * (s14.走行KM / zengetu.燃費)), 0), 前月走行KM = zengetu.走行KM == null ? 0 : zengetu.走行KM, 前月燃料L = zengetu.燃料L == null ? 0 : zengetu.燃料L, 前年燃費 = zennen.燃費 == null ? 0 : zennen.燃費, 前年対比 = zennen.燃費 == null ? 0 : zennen.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14.走行KM / s14.燃料L) / zennen.燃費), 0), 前年燃費差益 = zennen.燃費 == null ? 0 : zennen.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14sb.金額 / s14.燃料L) * (s14.走行KM / zennen.燃費)), 0), 前年走行KM = zennen.走行KM == null ? 0 : zennen.走行KM, 前年燃料L = zennen.燃料L == null ? 0 : zennen.燃料L, コードFrom = s車輌From, コードTo = s車輌To, 車輌ピックアップ = s車輌List, 作成年月 = s作成年月, }).AsQueryable(); //***検索条件***// if (!(string.IsNullOrEmpty(s車輌From + s車輌To) && i車輌List.Length == 0)) { //From & ToがNULLだった場合 if (string.IsNullOrEmpty(s車輌From + s車輌To)) { query = query.Where(c => c.車輌ID >= int.MaxValue); } //車輌From処理 Min値 if (!string.IsNullOrEmpty(s車輌From)) { int i車輌From = AppCommon.IntParse(s車輌From); query = query.Where(c => c.車輌ID >= i車輌From); } //車輌To処理 Max値 if (!string.IsNullOrEmpty(s車輌To)) { int i車輌TO = AppCommon.IntParse(s車輌To); query = query.Where(c => c.車輌ID <= i車輌TO); } if (i車輌List.Length > 0) { var intCause = i車輌List; query = query.Union(from m05 in context.M05_CAR.Where(c => c.廃車区分 == 0 && c.削除日付 == null) from m04 in context.M04_DRV.Where(c => c.削除日付 == null && c.乗務員KEY == m05.乗務員KEY).DefaultIfEmpty() from s14 in context.S14_CAR.Where(c => c.集計年月 == p年月 && c.車輌KEY == m05.車輌KEY) from s14sb in context.S14_CARSB.Where(c => c.集計年月 == p年月 && c.車輌KEY == m05.車輌KEY && c.経費項目ID == 401).DefaultIfEmpty() from zengetu in ZENGETU.Where(c => c.車輌Key == m05.車輌KEY).DefaultIfEmpty() from zennen in ZENNEN.Where(c => c.車輌Key == m05.車輌KEY).DefaultIfEmpty() where intCause.Contains(m05.車輌ID) select new SRY19010_Member { 車輌ID = m05.車輌KEY, 車輌番号 = m05.車輌番号, 乗務員名 = m04.乗務員名, 日数 = s14.稼動日数 == null ? 0 : s14.稼動日数, 運賃 = s14.運送収入 == null ? 0 : s14.運送収入, 壱日当り = s14.稼動日数 == null ? 0 : s14.稼動日数 == 0 ? 0 : Math.Round((decimal)((s14.運送収入 / s14.稼動日数)), 0), 輸送屯数 = s14.輸送屯数 == null ? 0 : s14.輸送屯数, 走行KM = s14.走行KM == null ? 0 : s14.走行KM, 実車KM = s14.実車KM == null ? 0 : s14.実車KM, 燃料L = s14.燃料L == null ? 0 : s14.燃料L, 燃費 = s14.燃料L == null ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14.走行KM / s14.燃料L)), 2), 燃料代 = s14sb.金額 == null ? 0 : s14sb.金額, 前月燃費 = zengetu.燃費 == null ? 0 : zengetu.燃費, 前月対比 = zengetu.燃費 == null ? 0 : zengetu.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14.走行KM / s14.燃料L) / zengetu.燃費), 0), 前月燃費差益 = zengetu.燃費 == null ? 0 : zengetu.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14sb.金額 / s14.燃料L) * (s14.走行KM / zengetu.燃費)), 0), 前月走行KM = zengetu.走行KM == null ? 0 : zengetu.走行KM, 前月燃料L = zengetu.燃料L == null ? 0 : zengetu.燃料L, 前年燃費 = zennen.燃費 == null ? 0 : zennen.燃費, 前年対比 = zennen.燃費 == null ? 0 : zennen.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14.走行KM / s14.燃料L) / zennen.燃費), 0), 前年燃費差益 = zennen.燃費 == null ? 0 : zennen.燃費 == 0 ? 0 : s14.燃料L == 0 ? 0 : Math.Round((decimal)((s14sb.金額 / s14.燃料L) * (s14.走行KM / zennen.燃費)), 0), 前年走行KM = zennen.走行KM == null ? 0 : zennen.走行KM, 前年燃料L = zennen.燃料L == null ? 0 : zennen.燃料L, コードFrom = s車輌From, コードTo = s車輌To, 車輌ピックアップ = s車輌List, 作成年月 = s作成年月, }); } } else { //車輌FromがNullだった場合 if (string.IsNullOrEmpty(s車輌From)) { query = query.Where(c => c.車輌ID >= int.MinValue); } //車輌ToがNullだった場合 if (string.IsNullOrEmpty(s車輌To)) { query = query.Where(c => c.車輌ID <= int.MaxValue); } } //乗務員指定の表示 if (i車輌List.Length > 0) { for (int i = 0; i < query.Count(); i++) { 車輌ピックアップ指定 = 車輌ピックアップ指定 + i車輌List[i].ToString(); if (i < i車輌List.Length) { if (i == i車輌List.Length - 1) { break; } 車輌ピックアップ指定 = 車輌ピックアップ指定 + ","; } if (i車輌List.Length == 1) { break; } } } //表示順序変更 switch (i表示順序) { case 0: //車輌番号昇順 query = query.OrderBy(c => c.車輌ID); break; case 1: query = query.OrderByDescending(c => c.燃料L); break; case 2: //運送収入降順 query = query.OrderByDescending(c => c.燃費); break; } query = query.Where(c => c.日数 != 0 || c.運賃 != 0 || c.壱日当り != 0 || c.輸送屯数 != 0 || c.走行KM != 0 || c.実車KM != 0 || c.燃料L != 0 || c.燃費 != 0 || c.燃料代 != 0); retList = query.ToList(); return(retList); } catch (Exception ex) { throw ex; } } }
/// <summary> /// 商品在庫残高一覧表情報取得 /// </summary> /// <param name="pMyCompany">画面指定の自社コード</param> /// <param name="pDate">締年月</param> /// <param name="pParamDic"> /// == 検索条件 == /// 自社品番(品番指定検索) /// 検索品名(品名Like検索) /// 商品分類 /// シリーズ /// ブランド /// </param> /// <param name="pCoefficient">係数</param> /// <returns></returns> public List <SearchDataMember> GetPrintList(int pMyCompany, string pDate, Dictionary <string, string> pParamDic, decimal pCoefficient) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { try { int yearMonth = int.Parse(pDate.Replace("/", "")); // =========================== // 在庫基本情報取得 // =========================== // 月次在庫情報取得 var stocktakingList = context.S05_STOK_MONTH.Where(w => w.締年月 == yearMonth) .Join(context.M09_HIN.Where(w => w.削除日時 == null), x => x.品番コード, y => y.品番コード, (x, y) => new { STOK_MONTH = x, HIN = y }) .Join(context.M22_SOUK.Where(w => w.削除日時 == null && w.場所会社コード == pMyCompany), x => x.STOK_MONTH.庫コード, y => y.庫コード, (x, y) => new { x.STOK_MONTH, x.HIN, SOUK = y }) .ToList(); #region 入力項目による絞込 // 倉庫の条件チェック string Warehouse = pParamDic["倉庫コード"]; if (string.IsNullOrEmpty(Warehouse) == false) { stocktakingList = stocktakingList.Where(w => w.STOK_MONTH.庫コード == int.Parse(Warehouse)).ToList(); } // 自社品番の条件チェック string myProduct = pParamDic["自社品番"]; if (string.IsNullOrEmpty(myProduct) == false) { stocktakingList = stocktakingList.Where(w => w.HIN.自社品番 == myProduct).ToList(); } // 品名の条件チェック string productName = pParamDic["自社品名"]; if (string.IsNullOrEmpty(productName) == false) { stocktakingList = stocktakingList.Where(w => w.HIN.自社品名 != null && w.HIN.自社品名.Contains(productName)).ToList(); } // 商品分類の条件チェック int itemType; if (int.TryParse(pParamDic["商品分類コード"], out itemType) == true) { if (itemType >= CommonConstants.商品分類.食品.GetHashCode()) { stocktakingList = stocktakingList.Where(w => w.HIN.商品分類 == itemType).ToList(); } } // ブランドの条件チェック string brand = pParamDic["ブランドコード"]; if (string.IsNullOrEmpty(brand) == false) { stocktakingList = stocktakingList.Where(w => w.HIN.ブランド == brand).ToList(); } // シリーズの条件チェック string series = pParamDic["シリーズコード"]; if (string.IsNullOrEmpty(series) == false) { stocktakingList = stocktakingList.Where(w => w.HIN.シリーズ == series).ToList(); } #endregion // =========================== // 直近の仕入単価(最少額)を取得 // =========================== // 年月末日の取得 DateTime dteEndofMonth = getDateEndofMonth(yearMonth); // 品番毎の直近日付を取得する var LatestList = context.T03_SRHD.Where(w => w.削除日時 == null && w.仕入日 < dteEndofMonth) .Join(context.T03_SRDTL.Where(w => w.削除日時 == null), x => x.伝票番号, y => y.伝票番号, (x, y) => new { SHD = x, SDTL = y }) .GroupBy(g => new { g.SDTL.品番コード, g.SDTL.賞味期限 }) .Select(s => new { 品番コード = s.Key.品番コード, 賞味期限 = s.Key.賞味期限, 仕入日 = s.Max(m => m.SHD.仕入日), }) .OrderBy(o => o.品番コード) .ToList(); // 直近の仕入単価(最少額)を取得 DateTime dteMaxDate = AppCommon.GetMaxDate(); var PurchaseList = LatestList .Join(context.T03_SRHD.Where(w => w.削除日時 == null), x => x.仕入日, y => y.仕入日, (x, y) => new { Latest = x, SRHD = y }) .Join(context.T03_SRDTL.Where(w => w.削除日時 == null), x => new { dno = x.SRHD.伝票番号, hin = x.Latest.品番コード, date = x.Latest.賞味期限 }, y => new { dno = y.伝票番号, hin = y.品番コード, date = y.賞味期限 }, (x, y) => new { x.Latest, x.SRHD, SDTL = y }) .GroupBy(g => new { g.SDTL.品番コード, g.SDTL.賞味期限 }) .Select(s => new SearchDataUnitPrice { 品番コード = s.Key.品番コード, 賞味期限 = s.Key.賞味期限 ?? dteMaxDate, 仕入単価 = s.Min(m => m.SDTL.単価), }) .OrderBy(o => o.品番コード) .ToList(); // =========================== // 帳票データ取得 // =========================== var dataList = stocktakingList .GroupJoin(context.M06_IRO.Where(w => w.削除日時 == null), x => x.HIN.自社色, y => y.色コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { a.x.STOK_MONTH, a.x.HIN, a.x.SOUK, IRO = b }) .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SOUK.寄託会社コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (c, d) => new { c.x.STOK_MONTH, c.x.HIN, c.x.SOUK, c.x.IRO, JIS = d }) .GroupJoin(PurchaseList.Where(w => w.品番コード > 0), x => new { dno = x.STOK_MONTH.品番コード, date = x.STOK_MONTH.賞味期限 }, y => new { dno = y.品番コード, date = y.賞味期限 }, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (e, f) => new { e.x.STOK_MONTH, e.x.HIN, e.x.SOUK, e.x.IRO, e.x.JIS, Purchase = f }) .Select(x => new SearchDataMember { 自社コード = x.JIS.自社コード, 自社名 = x.JIS.自社名 ?? "", 庫コード = x.STOK_MONTH.庫コード.ToString(), 庫名称 = x.SOUK != null ? x.SOUK.庫略称名 : "", 品番コード = x.STOK_MONTH.品番コード.ToString(), 自社品番コード = x.HIN.自社品番, 自社色コード = x.HIN.自社色, 品番名称 = x.HIN.自社品名, 色名称 = x.IRO != null ? x.IRO.色名称 : "", 賞味期限 = AppCommon.GetMaxDate() == x.STOK_MONTH.賞味期限 ? "" : x.STOK_MONTH.賞味期限.ToString("yyyy/MM/dd"), 数量 = x.STOK_MONTH.在庫数量, 単位 = x.HIN.単位, 単価 = (x.Purchase != null ? x.Purchase.仕入単価 : x.HIN.原価 ?? 0) * pCoefficient, 金額 = x.STOK_MONTH.在庫数量 * (x.Purchase != null ? x.Purchase.仕入単価 : x.HIN.原価 ?? 0) * pCoefficient }) .OrderBy(o => o.自社コード) .ThenBy(t => t.庫コード) .ThenBy(t => t.品番コード) .ThenBy(t => t.自社色コード) .ThenBy(t => t.賞味期限) ; return(dataList.ToList()); } catch (System.ArgumentException agex) { throw agex; } catch (Exception ex) { throw ex; } } }
/// <summary> /// 請求書印字データを取得する /// </summary> /// <param name="condition"> /// == 検索条件 == /// 自社コード /// 作成年月日 /// 作成年月 /// 作成締日 /// 得意先コード /// 得意先枝番 /// </param> /// <param name="ds"> /// [0]請求一覧データ /// </param> /// <returns></returns> public DataSet GetPrintData(Dictionary <string, string> condition, DataSet ds) { DataSet dsResult = new DataSet(); DataTable tbl = ds.Tables[0]; // パラメータの型変換 int ival; int myCompany = int.Parse(condition["自社コード"]); int createYM = int.Parse(condition["作成年月"].Replace("/", "")); DateTime printDate = DateTime.Parse(condition["作成年月日"]); int? closingDate = int.TryParse(condition["作成締日"], out ival) ? ival : (int?)null; int? customerCd = int.TryParse(condition["得意先コード"], out ival) ? ival : (int?)null; int? customerEda = int.TryParse(condition["得意先枝番"], out ival) ? ival : (int?)null; using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { foreach (DataRow row in tbl.Rows) { SearchDataMember mem = getSearchDataMemberRow(row); if (mem.印刷区分 == false) { continue; } // 前月情報を取得 DateTime befYearMonth = new DateTime(createYM / 100, createYM % 100, 1).AddMonths(-1); int iBefYearMonth = befYearMonth.Year * 100 + befYearMonth.Month; #region 必要情報の取得 // 対象の請求ヘッダを取得 var seihd = context.S01_SEIHD.Where(w => w.自社コード == myCompany && w.請求年月 == createYM && (w.請求締日 == closingDate || closingDate == null) && w.請求先コード == mem.得意先コード && w.請求先枝番 == mem.得意先枝番 && w.入金日 == mem.入金日 && w.回数 == mem.回数) .FirstOrDefault(); // 取引先情報を取得 var tok = context.M01_TOK.Where(w => w.削除日時 == null && w.取引先コード == seihd.請求先コード && w.枝番 == seihd.請求先枝番) .FirstOrDefault(); // 前月の入金日 //int befPaymentDate = iBefYearMonth * 100 + tok.T入金日1 ?? 31; // 前月の請求ヘッダを取得 var befSeihd = context.S01_SEIHD.Where(w => w.自社コード == myCompany && w.請求年月 == iBefYearMonth && //(w.請求締日 == closingDate || closingDate == null) && w.請求先コード == mem.得意先コード && w.請求先枝番 == mem.得意先枝番 && //w.入金日 == befPaymentDate && w.回数 == mem.回数) .OrderByDescending(w => w.請求締日) .ThenByDescending(w => w.回数) .FirstOrDefault(); #endregion // 前月の締期間を算出 //DateTime befEndDate = AppCommon.GetClosingDate(befYearMonth.Year, befYearMonth.Month, closingDate, 0); //DateTime befStrDate = befEndDate.AddMonths(-1).AddDays(-1); long 前月入金額; // 各入金額を取得する if (befSeihd != null) { 前月入金額 = getNyukinData(context, seihd.自社コード, seihd.請求先コード, seihd.請求先枝番, (DateTime)befSeihd.集計開始日, (DateTime)befSeihd.集計最終日); } else { DateTime befEndDate = AppCommon.GetClosingDate(befYearMonth.Year, befYearMonth.Month, closingDate, 0); DateTime befStrDate = befEndDate.AddMonths(-1).AddDays(-1); 前月入金額 = getNyukinData(context, seihd.自社コード, seihd.請求先コード, seihd.請求先枝番, befEndDate, befStrDate); } long 今月入金額 = getNyukinData(context, seihd.自社コード, seihd.請求先コード, seihd.請求先枝番, (DateTime)seihd.集計開始日, (DateTime)seihd.集計最終日); #region 帳票ヘッダ情報取得 var hdResult = context.S01_SEIHD.Where(w => w.自社コード == myCompany && w.請求年月 == createYM && w.請求締日 == mem.締日 && w.請求先コード == mem.得意先コード && w.請求先枝番 == mem.得意先枝番 && w.入金日 == mem.入金日 && w.回数 == mem.回数) .GroupJoin(context.M01_TOK.Where(w => w.削除日時 == null), x => new { コード = x.請求先コード, 枝番 = x.請求先枝番 }, y => new { コード = y.取引先コード, 枝番 = y.枝番 }, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { SEIHD = a.x, TOK = b }) .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SEIHD.自社コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (c, d) => new { c.x.SEIHD, c.x.TOK, JIS = d }) .ToList() .Select(x => new PrintHeaderMember { PagingKey = string.Concat(x.SEIHD.請求先コード, "-", x.SEIHD.請求先枝番, "-", x.SEIHD.入金日, ">", x.SEIHD.回数), 自社コード = x.SEIHD.自社コード.ToString(), 請求年月 = x.SEIHD.請求年月.ToString(), 請求先コード = x.SEIHD.請求先コード.ToString(), 請求先枝番 = x.SEIHD.請求先枝番.ToString(), 得意先コード = string.Format("{0:D4}", x.SEIHD.請求先コード), // No.223 Mod 得意先枝番 = string.Format("{0:D2}", x.SEIHD.請求先枝番), // No.233 Mod 回数 = x.SEIHD.回数, 請求年 = x.SEIHD.請求年月 / 100, 請求月 = x.SEIHD.請求年月 % 100, 請求先郵便番号 = x.TOK.郵便番号, 請求先住所1 = x.TOK.住所1, 請求先住所2 = x.TOK.住所2, 得意先名称 = x.TOK.得意先名1, 得意先名称2 = x.TOK.得意先名2, 得意先部課名称 = x.TOK.部課名称, 自社名称 = x.JIS.自社名, 自社郵便番号 = x.JIS.郵便番号, 自社住所 = x.JIS.住所1.Trim() + x.JIS.住所2.Trim(), 自社TEL = x.JIS.電話番号, 自社FAX = x.JIS.FAX, 締日 = (x.TOK.T締日 >= 31) ? "末" : x.TOK.T締日.ToString(), 発行日付 = printDate.ToString("yyyy/MM/dd"), 前回請求額 = x.SEIHD.前月残高, //20190906 mod-s CB 軽減税率対応 DB値を設定に変更 //今回入金額 = 今月入金額, //繰越残高 = (前月入金額 - (befSeihd != null ? befSeihd.当月請求額 : 0)), 今回入金額 = x.SEIHD.入金額, 繰越残高 = x.SEIHD.繰越残高, //20190906 mod-e CB 軽減税率対応 御買上額 = x.SEIHD.売上額, 消費税S = x.SEIHD.消費税, 消費税K = 0, 今回請求額 = x.SEIHD.当月請求額, //20190903 mod&add-s CB 軽減税率対応 //振込先 = x.JIS.振込銀行1 振込先 = x.JIS.振込銀行1, 通常税率対象金額 = x.SEIHD.通常税率対象金額, 軽減税率対象金額 = x.SEIHD.軽減税率対象金額, 通常税率消費税 = x.SEIHD.通常税率消費税, 軽減税率消費税 = x.SEIHD.軽減税率消費税, 非税売上額 = x.SEIHD.非税売上額, 集計最終日 = x.SEIHD.集計最終日 //20190903 add-e CB 軽減税率対応 }); #endregion #region 帳票明細情報取得 var dtlResult = context.S01_SEIDTL.Where(w => w.自社コード == myCompany && w.請求年月 == createYM && w.請求締日 == mem.締日 && w.請求先コード == mem.得意先コード && w.請求先枝番 == mem.得意先枝番 && w.入金日 == mem.入金日 && w.回数 == mem.回数) .GroupJoin(context.M09_HIN.Where(w => w.削除日時 == null), x => x.品番コード, y => y.品番コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { SDTL = a.x, HIN = b }) .GroupJoin(context.M10_TOKHIN.Where(w => w.削除日時 == null && w.取引先コード == mem.得意先コード && w.枝番 == mem.得意先枝番), x => x.HIN.品番コード, y => y.品番コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (c, d) => new { c.x.SDTL, c.x.HIN, TOKHIN = d }) .ToList() .Select(x => new PrintDetailMember { PagingKey = string.Concat(x.SDTL.請求先コード, "-", x.SDTL.請求先枝番, "-", x.SDTL.入金日, ">", x.SDTL.回数), 自社コード = x.SDTL.自社コード.ToString(), 請求年月 = x.SDTL.請求年月.ToString(), 請求先コード = x.SDTL.請求先コード.ToString(), 請求先枝番 = x.SDTL.請求先枝番.ToString(), 得意先コード = string.Format("{0:D4}", x.SDTL.請求先コード), // No.223 Mod 得意先枝番 = string.Format("{0:D2}", x.SDTL.請求先枝番), // No.223 Mod 回数 = x.SDTL.回数, 伝票番号 = x.SDTL.伝票番号, // No-181 Mod 売上日 = x.SDTL.売上日.ToString("yyyy/MM/dd"), 自社品番 = x.HIN.自社品番, 相手品番 = x.TOKHIN == null ? "" : x.TOKHIN.得意先品番コード, 品番名称 = !string.IsNullOrEmpty(x.SDTL.自社品名) ? x.SDTL.自社品名 : x.HIN.自社品名, // No.389 Mod 数量 = x.SDTL.数量, 単価 = x.SDTL.単価, 金額 = x.SDTL.金額, //20190902 CB mod - s 軽減税率対応 //軽減税率適用 = x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.軽減税率 ? "*" : "" 軽減税率適用 = x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.軽減税率 ? "軽" : x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.非課税 ? "非" : "", //20190902 CB mod - e 摘要 = x.SDTL.摘要 }) .OrderBy(o => o.売上日).ThenBy(o => o.伝票番号); // No-181 Add #endregion #region 期間内の入金明細 var nyukinDtl = context.T11_NYKNHD.Where(c => c.入金先自社コード == myCompany && c.得意先コード == mem.得意先コード && c.得意先枝番 == mem.得意先枝番 && c.入金日 >= seihd.集計開始日 && c.入金日 <= seihd.集計最終日 && c.削除日時 == null ) .GroupJoin(context.T11_NYKNDTL.Where(c => c.削除日時 == null), x => x.伝票番号, y => y.伝票番号, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { HD = a.x, DTL = b }) .GroupJoin(context.M99_COMBOLIST.Where(c => c.分類 == "随時" && c.機能 == "入金問合せ" && c.カテゴリ == "金種"), x => x.DTL.金種コード, y => y.コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { NYU = a.x, CMB = b }) .ToList() .Select(x => new PrintDetailMember { PagingKey = string.Concat(mem.得意先コード, "-", mem.得意先枝番, "-", mem.入金日, ">", mem.回数), 自社コード = myCompany.ToString(), 請求年月 = createYM.ToString(), 請求先コード = mem.得意先コード.ToString(), 請求先枝番 = mem.得意先枝番.ToString(), 得意先コード = string.Format("{0:D4}", mem.得意先コード), // No.223 Mod 得意先枝番 = string.Format("{0:D2}", mem.得意先枝番), // No.223 Mod 回数 = mem.回数, 伝票番号 = x.NYU.HD.伝票番号, // No-181 Mod 売上日 = x.NYU.HD.入金日.ToString("yyyy/MM/dd"), 自社品番 = string.Empty, 相手品番 = string.Empty, 品番名称 = x.CMB.表示名 == null ? string.Empty : x.CMB.表示名, 数量 = 0, 単価 = 0, 金額 = x.NYU.DTL.金額, 軽減税率適用 = "", 摘要 = x.NYU.DTL.摘要, }); //売上日→伝票番号の順でソート var dtl = dtlResult.Concat(nyukinDtl).OrderBy(o => o.売上日).ThenBy(o => o.伝票番号); #endregion //20190910 CB add - s 軽減税率対応 //S01_SEIHDの集計最終日を基準としてM73_ZEIから税率を取得 DataTable dt; dt = KESSVCEntry.ConvertListToDataTable <PrintHeaderMember>(hdResult.AsQueryable().ToList()); M73 M73Service; M73Service = new M73(); foreach (DataRow dr in dt.Rows) { // drを使った処理(カラムにアクセスする場合は dr["カラム名"]と表記) DateTime?DateTimeWk = (DateTime)dr["集計最終日"]; if (DateTimeWk != null) { //共通関数仕様 +1日 DateTime answer = (DateTime)DateTimeWk; answer = answer.AddDays(1); List <M73.M73_ZEI_Member> lstM73 = M73Service.GetData(answer, -1); dr["軽減税率"] = lstM73[0].軽減税率; dr["消費税率"] = lstM73[0].消費税率; } } //20190910 CB add - e 軽減税率対応 //20190910 CB mod - s 軽減税率対応 //DataTable hdDt = KESSVCEntry.ConvertListToDataTable<PrintHeaderMember>(hdResult.AsQueryable().ToList()); DataTable hdDt = dt; //20190910 CB mod - e 軽減税率対応 hdDt.TableName = PRINT_HEADER_TABLE_NAME; DataTable dtlDt = KESSVCEntry.ConvertListToDataTable <PrintDetailMember>(dtl.AsQueryable().ToList()); dtlDt.TableName = PRINT_DETAIL_TABLE_NAME; if (dtlDt.Rows.Count == 0 && (decimal)hdDt.Rows[0]["今回請求額"] != 0) { DataRow dr = dtlDt.NewRow(); dr["PagingKey"] = hdDt.Rows[0]["PagingKey"]; dr["自社コード"] = hdDt.Rows[0]["自社コード"]; dr["請求年月"] = hdDt.Rows[0]["請求年月"]; dr["請求先コード"] = hdDt.Rows[0]["請求先コード"]; dr["請求先枝番"] = hdDt.Rows[0]["請求先枝番"]; dr["得意先コード"] = hdDt.Rows[0]["得意先コード"]; dr["得意先枝番"] = hdDt.Rows[0]["得意先枝番"]; dr["回数"] = hdDt.Rows[0]["回数"]; dtlDt.Rows.Add(dr); } if (dsResult.Tables.Contains(hdDt.TableName)) { // 2件目以降 dsResult.Tables[PRINT_HEADER_TABLE_NAME].Merge(hdDt); dsResult.Tables[PRINT_DETAIL_TABLE_NAME].Merge(dtlDt); } else { // 1件目 dsResult.Tables.Add(hdDt); dsResult.Tables.Add(dtlDt); } } } return(dsResult); }
/// <summary> /// M14_GSYAのデータ取得 /// </summary> /// <param name="pG車種IDID">G車種ID</param> /// <returns>M14_GSYA_Member</returns> public List <M14_GSYA_Member> GetData(int?pG車種ID, int pオプションコード) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var query = (from m14 in context.M14_GSYA where m14.削除日付 == null select new M14_GSYA_Member { G車種ID = m14.G車種ID, 登録日時 = m14.登録日時, 更新日時 = m14.更新日時, G車種名 = m14.G車種名, 略称名 = m14.略称名, CO2排出係数1 = m14.CO2排出係数1, CO2排出係数2 = m14.CO2排出係数2, 事業用区分 = m14.事業用区分, ディーゼル区分 = m14.ディーゼル区分, 小型普通区分 = m14.小型普通区分, 低公害区分 = m14.低公害区分, 削除日付 = m14.削除日付, }).AsQueryable(); //データが1件もない状態で<< < > >>を押された時の処理 if ((pG車種ID == null || pG車種ID == 0) && query.Count() == 0) { return(null); } if (pG車種ID != null) { if (pG車種ID == -1) { //全件取得 return(query.ToList()); } if (pオプションコード == 0) { query = query.Where(c => c.G車種ID == pG車種ID); } else if (pオプションコード == -1) { //p車種IDの1つ前のIDを取得 query = query.Where(c => (c.削除日付 == null)); query = query.Where(c => c.G車種ID < pG車種ID); if (query.Count() >= 2) { query = query.Where(c => c.G車種ID < pG車種ID); } query = query.OrderByDescending(c => c.G車種ID); } else { //p車種IDの1つ後のIDを取得 query = query.Where(c => (c.削除日付 == null)); query = query.Where(c => c.G車種ID > pG車種ID); if (query.Count() >= 2) { query = query.Where(c => c.G車種ID > pG車種ID); } query = query.OrderBy(c => c.G車種ID); } } else { if (pオプションコード == 0) { //車種IDの先頭のIDを取得 query = query.Where(c => (c.削除日付 == null)); query = query.OrderBy(c => c.G車種ID); } else if (pオプションコード == 1) { //車種IDの最後のIDを取得 query = query.Where(c => (c.削除日付 == null)); query = query.OrderByDescending(c => c.G車種ID); } else { //pオプションコード == 2 //query = query.Where(c => (c.削除日付 == null)); //query = query.OrderBy(c => c.G車種ID < pG車種ID + 1); } } var ret = query.FirstOrDefault(); List <M14_GSYA_Member> result = new List <M14_GSYA_Member>(); if (ret != null) { result.Add(ret); } return(result); } }
/// <summary> /// 得意先別車種別単価一覧表プレビュー用出力 /// 得意先別車種別単価一覧表CSV用出力 /// </summary> /// <returns></returns> /// <param name="s01toks">S01_toks__Member</param> public List <S01_TOKS_Member_Preview_csv> GetSearchListData(string p得意先IDFrom, string p得意先IDTo, string p処理年月From, string p処理年月To, string p回数From, string p回数To, int[] i得意先List) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var query = (from s01 in context.S01_TOKS from m01 in context.M01_TOK.Where(m01 => m01.得意先KEY == s01.得意先KEY) //where s01.削除日付 == null select new S01_TOKS_Member_Preview_csv { 得意先KEY = m01.得意先ID, 得意先名 = m01.略称名, 集計年月 = s01.集計年月, 回数 = s01.回数, 締集計開始日 = s01.締集計開始日, 締集計終了日 = s01.締集計終了日, 締日前月残高 = s01.締日前月残高, 締日入金現金 = s01.締日入金手形, 締日入金手形 = s01.締日入金手形, 締日入金その他 = s01.締日入金その他, 締日売上金額 = s01.締日売上金額, 締日通行料 = s01.締日通行料, 締日非課税売上 = s01.締日非課税売上, 締日課税売上 = s01.締日課税売上, 締日消費税 = s01.締日消費税, 締日内傭車売上 = s01.締日内傭車売上, 締日内傭車料 = s01.締日内傭車料, 締日未定件数 = s01.締日未定件数, 締日件数 = s01.締日件数, }); if (!string.IsNullOrEmpty(p得意先IDFrom)) { int ip得意先IDFrom = AppCommon.IntParse(p得意先IDFrom); query = query.Where(c => c.得意先KEY >= ip得意先IDFrom); } if (!string.IsNullOrEmpty(p得意先IDTo)) { int ip得意先IDTo = AppCommon.IntParse(p得意先IDTo); query = query.Where(c => c.得意先KEY <= ip得意先IDTo); } if (!string.IsNullOrEmpty(p処理年月From)) { int ip処理年月From = AppCommon.IntParse(p処理年月From); query = query.Where(c => c.集計年月 >= ip処理年月From); } if (!string.IsNullOrEmpty(p処理年月To)) { int ip処理年月To = AppCommon.IntParse(p処理年月To); query = query.Where(c => c.集計年月 <= ip処理年月To); } if (!string.IsNullOrEmpty(p回数From)) { int ip回数From = AppCommon.IntParse(p回数From); query = query.Where(c => c.回数 >= ip回数From); } if (!string.IsNullOrEmpty(p回数To)) { int ip回数To = AppCommon.IntParse(p回数To); query = query.Where(c => c.集計年月 <= ip回数To); } if (i得意先List.Length > 0) { var intCause = i得意先List; query = query.Union(from s01 in context.S01_TOKS from m01 in context.M01_TOK.Where(m01 => m01.得意先KEY == s01.得意先KEY) where intCause.Contains(m01.得意先KEY) select new S01_TOKS_Member_Preview_csv { 得意先KEY = m01.得意先ID, 得意先名 = m01.略称名, 集計年月 = s01.集計年月, 回数 = s01.回数, 締集計開始日 = s01.締集計開始日, 締集計終了日 = s01.締集計終了日, 締日前月残高 = s01.締日前月残高, 締日入金現金 = s01.締日入金手形, 締日入金手形 = s01.締日入金手形, 締日入金その他 = s01.締日入金その他, 締日売上金額 = s01.締日売上金額, 締日通行料 = s01.締日通行料, 締日非課税売上 = s01.締日非課税売上, 締日課税売上 = s01.締日課税売上, 締日消費税 = s01.締日消費税, 締日内傭車売上 = s01.締日内傭車売上, 締日内傭車料 = s01.締日内傭車料, 締日未定件数 = s01.締日未定件数, 締日件数 = s01.締日件数, }); } //削除データ検索条件 query = query.OrderBy(c => (c.得意先KEY)); return(query.ToList()); } }
/// <summary> /// 調整計算確定処理をおこなう /// </summary> /// <param name="paramDic">パラメータDic</param> /// <param name="userId">ログインユーザID</param> public void SetConfirm(Dictionary <string, string> paramDic, int userId) { int compCd = int.Parse(paramDic[PARAM_NAME_COMPANY]), year = int.Parse(paramDic[PARAM_NAME_YEAR].Replace("/", "")); decimal rate = decimal.Parse(paramDic[PARAM_NAME_RATE]); using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { // 取引先情報取得 var hanData = context.M70_JIS .Where(w => w.削除日時 == null && w.自社コード == compCd) .Join(context.M01_TOK, x => new { code = x.取引先コード ?? 0, eda = x.枝番 ?? 0 }, y => new { code = y.取引先コード, eda = y.枝番 }, (x, y) => new { JIS = x, TOK = y }) .FirstOrDefault(); // 決算月・請求締日から売上集計期間を算出する int pMonth = hanData.JIS.決算月 ?? CommonConstants.DEFAULT_SETTLEMENT_MONTH, pYear = pMonth < 4 ? year + 1 : year; DateTime lastMonth = new DateTime(pYear, pMonth, 1); DateTime targetMonth = lastMonth.AddMonths(-11); while (targetMonth <= lastMonth) { // 開始日は前月締日を設定 // No.101-3 Mod Start DateTime calcStartDate = AppCommon.GetClosingDate(targetMonth.AddMonths(-1).Year, targetMonth.AddMonths(-1).Month, hanData.TOK.T締日 ?? CommonConstants.DEFAULT_CLOSING_DAY); // 終了日は当月締日の前日を設定 DateTime calcEndDate = AppCommon.GetClosingDate(targetMonth.Year, targetMonth.Month, hanData.TOK.T締日 ?? CommonConstants.DEFAULT_CLOSING_DAY).AddDays(-1); // No.101-3 Mod End var hdList = context.T02_URHD_HAN .Where(v => v.削除日時 == null && v.販社コード == compCd && v.売上日 >= calcStartDate && v.売上日 <= calcEndDate); foreach (var hdRow in hdList) { // 売上ヘッダ情報更新 hdRow.消費税 = hdRow.調整消費税 ?? 0; hdRow.最終更新者 = userId; hdRow.最終更新日時 = com.GetDbDateTime(); hdRow.AcceptChanges(); // 仕入情報が存在するか var srhd = context.T03_SRHD_HAN.Where(w => w.削除日時 == null && w.伝票番号 == hdRow.伝票番号) .FirstOrDefault(); if (srhd != null) { // 仕入がある場合は値を更新する srhd.消費税 = hdRow.調整消費税; srhd.最終更新者 = userId; srhd.最終更新日時 = com.GetDbDateTime(); srhd.AcceptChanges(); } // 売上明細情報更新 foreach (var dtlRow in context.T02_URDTL_HAN.Where(w => w.削除日時 == null && w.伝票番号 == hdRow.伝票番号)) { dtlRow.単価 = dtlRow.調整単価 ?? 0; dtlRow.金額 = dtlRow.調整金額; dtlRow.最終更新者 = userId; dtlRow.最終更新日時 = com.GetDbDateTime(); dtlRow.AcceptChanges(); if (srhd != null) { // 仕入があれば対象の仕入明細の値を更新する var srdtl = context.T03_SRDTL_HAN.Where(w => w.伝票番号 == dtlRow.伝票番号 && w.行番号 == dtlRow.行番号) .FirstOrDefault(); if (srdtl == null) { continue; } srdtl.単価 = dtlRow.調整単価 ?? 0; srdtl.金額 = dtlRow.調整金額 ?? 0; srdtl.最終更新者 = userId; srdtl.最終更新日時 = com.GetDbDateTime(); srdtl.AcceptChanges(); } } } // データ更新後に締集計をおこなう TKS01010 clampService = new TKS01010(); // 集計処理に必要なデータを作成 var jis = context.M70_JIS.Where(w => w.削除日時 == null && w.自社区分 == (int)CommonConstants.自社区分.自社) .First(); TKS01010.TKS01010_SearchMember srcMem = new TKS01010.TKS01010_SearchMember(); srcMem.ID = string.Format("{0:D3} - {1:D2}", hanData.TOK.取引先コード, hanData.TOK.枝番); srcMem.得意先コード = hanData.TOK.取引先コード; srcMem.得意先枝番 = hanData.TOK.枝番; srcMem.得意先名 = hanData.TOK.得意先名1; // No.101-3 Mod Start srcMem.締日 = hanData.TOK.T締日 ?? CommonConstants.DEFAULT_CLOSING_DAY; // No.101-3 Mod End srcMem.開始日付1 = calcStartDate; srcMem.終了日付1 = calcEndDate; // No.101-3 Mod Start srcMem.入金日 = AppCommon.GetClosingDate(targetMonth.Year, targetMonth.Month, hanData.TOK.T入金日1 ?? CommonConstants.DEFAULT_CLOSING_DAY, hanData.TOK.Tサイト1 ?? 0); // No-169 Mod // No.101-3 Mod End List <TKS01010.TKS01010_SearchMember> list = new List <TKS01010.TKS01010_SearchMember>(); list.Add(srcMem); DataTable dt = KESSVCEntry.ConvertListToDataTable(list); DataSet ds = new DataSet(); ds.Tables.Add(dt); // 集計実行 clampService.BillingAggregation(ds, jis.自社コード, targetMonth.Year * 100 + targetMonth.Month, userId); // 次データの為に各値をカウントアップ targetMonth = targetMonth.AddMonths(1); } // 変更状態を確定 context.SaveChanges(); // トランザクションコミット tran.Commit(); } catch (Exception ex) { // トランザクションロールバック tran.Rollback(); throw ex; } }// end transaction } }
/// <summary> /// 都度請求締集計処理 /// </summary> /// <param name="paramDic"></param> /// <param name="userId"></param> public void BillingAggregation(Dictionary <string, string> paramDic, int userId) { string companyCd, startDate, endDate; try { // 画面パラメータ展開 companyCd = paramDic[PARAMS_NAME_COMPANY]; startDate = paramDic[PARAMS_NAME_CREATE_DATE_START]; endDate = paramDic[PARAMS_NAME_CREATE_DATE_END]; } catch (Exception e) { throw e; } using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); using (DbTransaction tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { TKS01010 tok01010 = new TKS01010(); // パラメータ型変換 int iCompany = int.Parse(companyCd); DateTime tStartDate = DateTime.Parse(startDate), tEndDate = DateTime.Parse(endDate); // 得意先取得 List <M01_TOK> tokList = getTargetTOK(context, iCompany); foreach (M01_TOK tok in tokList) { DateTime targetDate = tStartDate; while (targetDate <= tEndDate) { TKS01010.TKS01010_SearchMember mem = new TKS01010.TKS01010_SearchMember(); mem.ID = string.Format("{0} - {1}", tok.取引先コード, tok.枝番); mem.得意先コード = tok.取引先コード; mem.得意先枝番 = tok.枝番; mem.得意先名 = tok.得意先名1; mem.締日 = targetDate.Day; mem.区分 = string.Empty; mem.開始日付1 = targetDate; mem.終了日付1 = targetDate; mem.開始日付2 = null; mem.終了日付2 = null; mem.開始日付3 = null; mem.終了日付3 = null; mem.クリア開始日付 = targetDate; mem.クリア終了日付 = targetDate; mem.入金日 = targetDate; // 締集計の処理に投げる tok01010.getAggregateData(context, iCompany, targetDate.Year * 100 + targetDate.Month, mem, 1, userId); targetDate = targetDate.AddDays(1); } // -- end loop date } // -- end loop tok context.SaveChanges(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw ex; } } } }
/// <summary> /// 仕入明細問合せ検索をおこなう /// </summary> /// <param name="p自社コード"></param> /// <param name="cond"> /// === 検索条件辞書 === /// 仕入日From - 仕入日To /// 入金日From - 入金日To /// 入力区分 /// 仕入先コード - 仕入先枝番 /// 入荷先コード /// </param> /// <returns></returns> public List <SearchDataMember> GetDataList(int p自社コード, Dictionary <string, string> cond) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { try { #region パラメータの型変換 DateTime? sDateFrom = stringToDate(cond, "仕入日From"), sDateTo = stringToDate(cond, "仕入日To"), nDateFrom = stringToDate(cond, "入金日From"), nDateTo = stringToDate(cond, "入金日To"); int ival; int?inputType = int.TryParse(cond["入力区分"], out ival) ? (ival >= 0 ? ival : (int?)null) : (int?)null; int? supCode = int.TryParse(cond["仕入先コード"], out ival) ? ival : (int?)null, supEda = int.TryParse(cond["仕入先枝番"], out ival) ? ival : (int?)null, arrivalCode = int.TryParse(cond["入荷先コード"], out ival) ? ival : (int?)null; string hinban = cond["自社品番"]; // No.396 Add #endregion // 基本情報取得 var srDataList = context.T03_SRHD.Where(w => w.削除日時 == null && w.会社名コード == p自社コード) .Join(context.T03_SRDTL.Where(w => w.削除日時 == null), x => x.伝票番号, y => y.伝票番号, (x, y) => new { SHD = x, SDTL = y }) .GroupJoin(context.M09_HIN, //.Where(w => w.削除日時 == null), x => x.SDTL.品番コード, y => y.品番コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (x, y) => new { x.x.SHD, x.x.SDTL, HIN = y }); #region 条件絞込 // 仕入日From - To if (sDateFrom != null) { srDataList = srDataList.Where(w => w.SHD.仕入日 >= sDateFrom); } if (sDateTo != null) { srDataList = srDataList.Where(w => w.SHD.仕入日 <= sDateTo); } // 入金日From - To // TODO:保留 // 入力区分 if (inputType != null) { srDataList = srDataList.Where(w => w.SHD.入力区分 == inputType); } // 仕入先 if (supCode != null && supEda != null) { srDataList = srDataList.Where(w => w.SHD.仕入先コード == supCode && w.SHD.仕入先枝番 == supEda); } // 入荷先 if (arrivalCode != null) { srDataList = srDataList.Where(w => w.SHD.入荷先コード == arrivalCode); } // 自社品番 if (!string.IsNullOrEmpty(hinban)) { srDataList = srDataList.Where(w => w.HIN.自社品番 == hinban); } // No.396 Add #endregion // 返品分のデータを取得する //var returnList = srDataList.Where(w => w.SRHD.仕入区分 == (int)CommonConstants.仕入区分.返品).ToList(); #region 各名称を取得して検索メンバークラスに整形 var resultList = srDataList .GroupJoin(context.M01_TOK, //.Where(w => w.削除日時 == null), x => new { code = x.SHD.仕入先コード, eda = x.SHD.仕入先枝番 }, y => new { code = y.取引先コード, eda = y.枝番 }, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { a.x.SHD, a.x.SDTL, a.x.HIN, TOK = b }) .GroupJoin(context.M06_IRO, x => x.HIN.自社色, y => y.色コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (e, f) => new { e.x.SHD, e.x.SDTL, e.x.TOK, e.x.HIN, IRO = f }) .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SHD.会社名コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (g, h) => new { g.x.SHD, g.x.SDTL, g.x.TOK, g.x.HIN, g.x.IRO, JIS = h }) // 入荷先 .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SHD.入荷先コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (e, f) => new { e.x.SHD, e.x.SDTL, e.x.TOK, e.x.HIN, e.x.IRO, e.x.JIS, JIS2 = f }) .ToList() .Select(x => new SearchDataMember { 会社名コード = x.SHD.会社名コード, 自社名 = x.JIS.自社名 ?? "", // No.227,228 Add 仕入日 = x.SHD.仕入日.ToShortDateString(), // No.130-3 Mod // No-128 Mod Start 支払日 = x.TOK.S入金日1 == 0 ? string.Empty : x.SHD.仕入日.Day >= (x.TOK.S締日 ?? 31) ? // No.101-5 Mod Start new DateTime(x.SHD.仕入日.Year, x.SHD.仕入日.Month, ((x.TOK.S入金日1 ?? 31) >= 28 ? DateTime.DaysInMonth(x.SHD.仕入日.Year, x.SHD.仕入日.Month) : x.TOK.S入金日1 ?? 31)).AddMonths((x.TOK.Sサイト1 ?? 0) + 1).ToShortDateString() : // No.130-3 Mod new DateTime(x.SHD.仕入日.Year, x.SHD.仕入日.Month, ((x.TOK.S入金日1 ?? 31) >= 28 ? DateTime.DaysInMonth(x.SHD.仕入日.Year, x.SHD.仕入日.Month) : x.TOK.S入金日1 ?? 31)).AddMonths(x.TOK.Sサイト1 ?? 0).ToShortDateString(), // No.130-3 Mod // No.101-5 Mod End // No-128 Mod End 仕入区分コード = x.SHD.仕入区分, // No.396 Add 仕入区分 = x.SHD.仕入区分 == (int)CommonConstants.仕入区分.通常 ? CommonConstants.仕入区分_通常 : x.SHD.仕入区分 == (int)CommonConstants.仕入区分.返品 ? CommonConstants.仕入区分_返品 : string.Empty, 入力区分 = x.SHD.入力区分 == (int)CommonConstants.入力区分.仕入入力 ? CommonConstants.入力区分_仕入入力 : x.SHD.入力区分 == (int)CommonConstants.入力区分.売上入力 ? CommonConstants.入力区分_売上入力 : string.Empty, 伝票番号 = x.SHD.伝票番号, 元伝票番号 = x.SHD.元伝票番号 != null ? x.SHD.元伝票番号.ToString() : string.Empty, 行番号 = x.SDTL.行番号, 仕入先コード = string.Format("{0:D4} - {1:D2}", x.SHD.仕入先コード, x.SHD.仕入先枝番), // No.227,228 仕入先名 = x.TOK.略称名, 入荷先名 = x.JIS2 != null ? x.JIS2.自社名 : "", // No.396 Add 品番コード = x.SDTL.品番コード, 自社品番 = x.HIN.自社品番, 自社品名 = !string.IsNullOrEmpty(x.SDTL.自社品名) ? x.SDTL.自社品名 : x.HIN.自社品名, // No.390 Mod 自社色 = x.IRO != null ? x.IRO.色名称 : string.Empty, 賞味期限 = x.SDTL.賞味期限 == null ? null : x.SDTL.賞味期限.Value.ToShortDateString(), // No.130-3 Mod 数量 = x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? x.SDTL.数量 : x.SDTL.数量 * -1, 単価 = x.SDTL.単価, 単位 = x.SDTL.単位, 金額 = x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? x.SDTL.金額 : x.SDTL.金額 * -1, // No.396 Mod 消費税 = x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? (x.SHD.消費税 ?? 0) : (x.SHD.消費税 ?? 0) * -1, // No.396 Add 通常税率対象金額 = x.HIN.消費税区分 == 0 ? (x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? x.SDTL.金額 : x.SDTL.金額 * -1) : 0, 軽減税率対象金額 = x.HIN.消費税区分 == 1 ? (x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? x.SDTL.金額 : x.SDTL.金額 * -1) : 0, 非課税対象金額 = x.HIN.消費税区分 == 2 ? (x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? x.SDTL.金額 : x.SDTL.金額 * -1) : 0, 通常税率消費税 = x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? (x.SHD.通常税率消費税 ?? 0) : (x.SHD.通常税率消費税 ?? 0) * -1, 軽減税率消費税 = x.SHD.仕入区分 < (int)CommonConstants.仕入区分.返品 ? (x.SHD.軽減税率消費税 ?? 0) : (x.SHD.軽減税率消費税 ?? 0) * -1, 摘要 = x.SDTL.摘要, 発注番号 = x.SHD.発注番号 }) .OrderBy(o => o.仕入日) .ThenBy(t => t.伝票番号) .ThenBy(t => t.行番号) .ThenBy(t => t.会社名コード) .ToList(); #endregion if (inputType == null || inputType != CommonConstants.入力区分.仕入入力.GetHashCode()) { // 販社データ取得 var hanList = GetHanDataList(context, p自社コード, cond); // 既存リストに追加 resultList.AddRange(hanList); // リスト追加後にソート実施 resultList = resultList.OrderBy(o => o.仕入日).ThenBy(t => t.伝票番号).ThenBy(t => t.行番号).ThenBy(t => t.会社名コード).ToList(); } return(resultList); } catch (System.ArgumentException agex) { throw agex; } catch (Exception ex) { throw ex; } } }
/// <summary> /// 得意先品番登録データ登録処理 /// </summary> /// <param name="ds"> /// データセット /// [0:updTbl]登録・更新対象のデータテーブル /// [1:delTbl]削除対象のデータテーブル /// </param> public void Update(DataSet ds, int loginUserId) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); // データ登録・更新 DataTable updTbl = ds.Tables["MST19011_GetData"]; foreach (DataRow rw in updTbl.Rows) { string strJishaHinban = rw["自社品番"].ToString(); string strIro = string.IsNullOrEmpty(rw["色"].ToString()) ? null : rw["色"].ToString(); M09_HIN hinban; if (strIro == null) { hinban = context.M09_HIN.Where(c => c.自社品番 == strJishaHinban && c.自社色 == null).FirstOrDefault(); } else { hinban = context.M09_HIN.Where(c => c.自社品番 == strJishaHinban && c.自社色 == strIro).FirstOrDefault(); } if (hinban == null) { continue; } int i得意先コード = int.Parse(rw["得意先コード"].ToString()); int i枝番 = int.Parse(rw["枝番"].ToString()); // 対象データ取得 var data = context.M02_BAIKA .Where(w => w.得意先コード == i得意先コード && w.枝番 == i枝番 && w.品番コード == hinban.品番コード) .FirstOrDefault(); if (data == null) { // 新規登録 M02_BAIKA m02baika = new M02_BAIKA(); m02baika.得意先コード = i得意先コード; m02baika.枝番 = i枝番; m02baika.品番コード = hinban.品番コード; m02baika.単価 = decimal.Parse(rw["単価"].ToString()); m02baika.登録者 = loginUserId; m02baika.登録日時 = DateTime.Now; m02baika.最終更新者 = loginUserId; m02baika.最終更新日時 = DateTime.Now; context.M02_BAIKA.ApplyChanges(m02baika); } else { // データ更新 data.単価 = decimal.Parse(rw["単価"].ToString()); data.最終更新者 = loginUserId; data.最終更新日時 = DateTime.Now; data.削除者 = null; data.削除日時 = null; data.AcceptChanges(); } } context.SaveChanges(); } }
/// <summary> /// JMI06010 印刷 /// </summary> /// <param name="p商品ID">乗務員コード</param> /// <returns>T01</returns> public List <JMI06010_Member_CSV> GetDataList_CSV(string p乗務員From, string p乗務員To, int?[] i乗務員List, int p作成締日, DateTime d集計期間From, DateTime d集計期間To, string p作成年度, string s乗務員List) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { int drvfrom = AppCommon.IntParse(p乗務員From) == 0 ? int.MinValue : AppCommon.IntParse(p乗務員From); int drvto = AppCommon.IntParse(p乗務員To) == 0 ? int.MaxValue : AppCommon.IntParse(p乗務員To); if ((string.IsNullOrEmpty(p乗務員From + p乗務員To) && i乗務員List.Length != 0)) { drvfrom = int.MaxValue; drvto = int.MaxValue; } List <JMI06010_Member_CSV> retList = new List <JMI06010_Member_CSV>(); List <JMI06010_Date> retList2 = new List <JMI06010_Date>(); context.Connection.Open(); for (DateTime dDate = d集計期間From; dDate <= d集計期間To; dDate = dDate.AddDays(1)) { retList2.Add(new JMI06010_Date() { 日付 = dDate }); } int[] lst; lst = (from m04 in context.M04_DRV let t01l = from t01 in context.T01_TRN.Where(t01 => (t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) && (t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 != 1))) select t01.乗務員KEY let t02l = from t02 in context.V_T02_UTRN.Where(t02 => t02.労務日 >= d集計期間From && t02.労務日 <= d集計期間To) select t02.乗務員KEY let t03l = from t03 in context.T03_KTRN.Where(t03 => t03.経費発生日 >= d集計期間From && t03.経費発生日 <= d集計期間To) select t03.乗務員KEY where t01l.Contains(m04.乗務員KEY) || t02l.Contains(m04.乗務員KEY) || t03l.Contains(m04.乗務員KEY) select m04.乗務員KEY).ToArray(); var query2 = (from t in context.T03_KTRN join m07 in context.M07_KEI on t.経費項目ID equals m07.経費項目ID where m07.固定変動区分 == 1 select new JMI06010_KTRN { 日付 = t.経費発生日, 経費項目ID = t.経費項目ID, 金額 = t.金額, 乗務員KEY = t.乗務員KEY, }).AsQueryable(); var query = (from retdate in retList2 from m04 in context.M04_DRV.Where(c => (c.乗務員ID >= drvfrom && c.乗務員ID <= drvto || (i乗務員List.Contains(c.乗務員ID)))) join t01 in context.T01_TRN.Where(t01 => (t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) && (t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 != 1))) on retdate.日付 equals t01.請求日付 into t01Group join t02 in context.V_T02_UTRN.Where(t02 => t02.労務日 >= d集計期間From && t02.労務日 <= d集計期間To) on retdate.日付 equals t02.労務日 into t02Group join t03 in query2.Where(t03 => t03.日付 >= d集計期間From && t03.日付 <= d集計期間To) on retdate.日付 equals t03.日付 into t03Group let t01l = from t01 in context.T01_TRN.Where(t01 => t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) select t01.乗務員KEY let t02l = from t02 in context.V_T02_UTRN.Where(t02 => t02.労務日 >= d集計期間From && t02.労務日 <= d集計期間To) select t02.乗務員KEY let t03l = from t03 in context.T03_KTRN.Where(t03 => t03.経費発生日 >= d集計期間From && t03.経費発生日 <= d集計期間To) select t03.乗務員KEY where lst.Contains(m04.乗務員KEY) //where t01l.Contains(m04.乗務員KEY) || t02l.Contains(m04.乗務員KEY) || t03l.Contains(m04.乗務員KEY) orderby m04.乗務員ID, retdate.日付 select new JMI06010_Member_CSV { 日付 = retdate.日付, 売上金額 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2), 通行料 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.通行料) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.通行料), 売上合計 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料), 社内金額 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額), 歩合金額 = Math.Round((t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額) * m04.歩合率 / 100), 0) == null ? 0 : Math.Round((t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額) * m04.歩合率 / 100), 0), 経費合計 = t03Group.Where(t03gr => t03gr.乗務員KEY == m04.乗務員KEY && t03gr.日付 == retdate.日付).Sum(t03gr => t03gr.金額), 拘束H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.拘束時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.拘束時間), 運転H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.運転時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.運転時間), 高速H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.高速時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.高速時間), 作業H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.作業時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.作業時間), 待機H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.待機時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.待機時間), 休憩H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.休憩時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.休憩時間), 残業H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.残業時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.残業時間), 深夜H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.深夜時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.深夜時間), 走行KM = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.走行KM) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.走行KM), 実車KM = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.実車KM) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.実車KM), コード = m04.乗務員ID, 乗務員名 = m04.乗務員名, 歩合率 = m04.歩合率, }).AsQueryable(); //if (!(string.IsNullOrEmpty(p乗務員From + p乗務員To) && i乗務員List.Length == 0)) //{ // //乗務員が検索対象に入っていない時全データ取得 // if (string.IsNullOrEmpty(p乗務員From + p乗務員To)) // { // query = query.Where(c => c.コード >= int.MaxValue); // } // //乗務員From処理 Min値 // if (!string.IsNullOrEmpty(p乗務員From)) // { // int i乗務員FROM = AppCommon.IntParse(p乗務員From); // query = query.Where(c => c.コード >= i乗務員FROM); // } // //乗務員To処理 Max値 // if (!string.IsNullOrEmpty(p乗務員To)) // { // int i乗務員TO = AppCommon.IntParse(p乗務員To); // query = query.Where(c => c.コード <= i乗務員TO); // } // if (i乗務員List.Length > 0) // { // var intCause = i乗務員List; // query = query.Union(from retdate in retList2 // from m04 in context.M04_DRV // join t01 in context.T01_TRN.Where(t01 => (t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) && (t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 != 1))) on retdate.日付 equals t01.請求日付 into t01Group // join t02 in context.V_T02_UTRN.Where(t02 => t02.労務日 >= d集計期間From && t02.労務日 <= d集計期間To) on retdate.日付 equals t02.労務日 into t02Group // join t03 in query2.Where(t03 => t03.日付 >= d集計期間From && t03.日付 <= d集計期間To) on retdate.日付 equals t03.日付 into t03Group // let t01l = from t01 in context.T01_TRN.Where(t01 => t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) select t01.乗務員KEY // let t02l = from t02 in context.V_T02_UTRN.Where(t02 => t02.労務日 >= d集計期間From && t02.労務日 <= d集計期間To) select t02.乗務員KEY // let t03l = from t03 in context.T03_KTRN.Where(t03 => t03.経費発生日 >= d集計期間From && t03.経費発生日 <= d集計期間To) select t03.乗務員KEY // where lst.Contains(m04.乗務員KEY) && intCause.Contains(m04.乗務員ID) // //where t01l.Contains(m04.乗務員KEY) || t02l.Contains(m04.乗務員KEY) || t03l.Contains(m04.乗務員KEY) // orderby m04.乗務員ID, retdate.日付 // select new JMI06010_Member_CSV // { // 日付 = retdate.日付, // 売上金額 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2), // 通行料 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.通行料) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.通行料), // 売上合計 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料), // 社内金額 = t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額) == null ? 0 : t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額), // 歩合金額 = Math.Round((t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額) * m04.歩合率 / 100), 0) == null ? 0 : Math.Round((t01Group.Where(t01gr => t01gr.乗務員KEY == m04.乗務員KEY && t01gr.請求日付 == retdate.日付 && t01gr.支払先KEY == null).Sum(t01 => t01.支払金額) * m04.歩合率 / 100), 0), // 経費合計 = t03Group.Where(t03gr => t03gr.乗務員KEY == m04.乗務員KEY && t03gr.日付 == retdate.日付).Sum(t03gr => t03gr.金額), // 拘束H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.拘束時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.拘束時間), // 運転H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.運転時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.運転時間), // 高速H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.高速時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.高速時間), // 作業H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.作業時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.作業時間), // 待機H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.待機時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.待機時間), // 休憩H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.休憩時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.休憩時間), // 残業H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.残業時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.残業時間), // 深夜H = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.深夜時間) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.深夜時間), // 走行KM = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.走行KM) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.走行KM), // 実車KM = t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.実車KM) == null ? 0 : t02Group.Where(t02gr => t02gr.乗務員KEY == m04.乗務員KEY && t02gr.労務日 == retdate.日付).Sum(t02gr => t02gr.実車KM), // コード = m04.乗務員ID, // 乗務員名 = m04.乗務員名, // 歩合率 = m04.歩合率, // }); // } // else // { // query = query.Where(c => c.コード > int.MinValue && c.コード < int.MaxValue); // } //} query = query.Distinct(); //結果をリスト化 retList = (from q in query.ToArray() orderby q.コード, q.日付 select new JMI06010_Member_CSV { 日付 = q.日付, 売上金額 = q.売上金額, 通行料 = q.通行料, 売上合計 = q.売上合計, 社内金額 = q.社内金額, 歩合金額 = q.歩合金額, 経費合計 = q.経費合計, 拘束H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.拘束H), 運転H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.運転H), 高速H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.高速H), 作業H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.作業H), 待機H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.待機H), 休憩H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.休憩H), 残業H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.残業H), 深夜H = KyoeiSystem.Framework.Common.LinqSub.分TO時間(q.深夜H), 走行KM = q.走行KM, 実車KM = q.実車KM, コード = q.コード, 乗務員名 = q.乗務員名, 歩合率 = q.歩合率, }).ToList(); return(retList); } }
/// <summary> /// RunStoredDLY16010で作成されたワークを取得 /// </summary> /// <returns>W_DLY16010_Memberのリスト</returns> private List <W_DLY16010_Member> GetListDLY16010() { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var ret = (from x in context.W_DLY16010 select new W_DLY16010_Member { H_運行日付 = x.H_運行日付, D_乗務員ID = x.D_乗務員ID, D_乗務員名 = x.D_乗務員名, D_車種ID = x.D_車種ID, D_車種名 = x.D_車種名, D_車輌ID = x.D_車輌ID, D_車輌番号 = x.D_車輌番号, D_得意先ID1 = x.D_得意先ID1, D_得意先名1 = x.D_得意先名1, D_商品名1 = x.D_商品名1, D_発地名1 = x.D_発地名1, D_着地名1 = x.D_着地名1, D_数量1 = x.D_数量1, D_重量1 = x.D_重量1, D_配送時間1 = x.D_配送時間1, D_得意先ID2 = x.D_得意先ID2, D_得意先名2 = x.D_得意先名2, D_商品名2 = x.D_商品名2, D_発地名2 = x.D_発地名2, D_着地名2 = x.D_着地名2, D_数量2 = x.D_数量2, D_重量2 = x.D_重量2, D_配送時間2 = x.D_配送時間2, D_得意先ID3 = x.D_得意先ID3, D_得意先名3 = x.D_得意先名3, D_商品名3 = x.D_商品名3, D_発地名3 = x.D_発地名3, D_着地名3 = x.D_着地名3, D_数量3 = x.D_数量3, D_重量3 = x.D_重量3, D_配送時間3 = x.D_配送時間3, D_得意先ID4 = x.D_得意先ID4, D_得意先名4 = x.D_得意先名4, D_商品名4 = x.D_商品名4, D_発地名4 = x.D_発地名4, D_着地名4 = x.D_着地名4, D_数量4 = x.D_数量4, D_重量4 = x.D_重量4, D_配送時間4 = x.D_配送時間4, D_得意先ID5 = x.D_得意先ID5, D_得意先名5 = x.D_得意先名5, D_商品名5 = x.D_商品名5, D_発地名5 = x.D_発地名5, D_着地名5 = x.D_着地名5, D_数量5 = x.D_数量5, D_重量5 = x.D_重量5, D_配送時間5 = x.D_配送時間5, }).ToList(); return(ret); } }
/// <summary> /// 売上明細問合せ検索をおこなう(販社) /// </summary> /// <param name="p自社コード"></param> /// <param name="p自社販社区分"></param> /// <param name="cond"> /// === 検索条件辞書 === /// 売上日From /// 売上日To /// 売上区分 /// 得意先コード /// 得意先枝番 /// </param> /// <returns></returns> public List <SearchDataMember> GetData_Hansha(int p自社コード, Dictionary <string, string> cond) { // 画面パラメータを展開 DateTime wkDt; int wkVal; DateTime?salesDateFrom = DateTime.TryParse(cond["売上日From"], out wkDt) ? wkDt : (DateTime?)null, salesDateTo = DateTime.TryParse(cond["売上日To"], out wkDt) ? wkDt : (DateTime?)null; int salesKbn = int.Parse(cond["売上区分"]); int?customerCode = int.TryParse(cond["得意先コード"], out wkVal) ? wkVal : (int?)null, customerEda = int.TryParse(cond["得意先枝番"], out wkVal) ? wkVal : (int?)null; string myProductCode = cond["自社品番"]; using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { try { // 売上区分(名称)データ取得 var salesKbnData = context.M99_COMBOLIST .Where(w => w.分類 == "随時" && w.機能 == "請求明細問合せ" && w.カテゴリ == "売上区分"); // (販社)売上データ var urHanData = context.M70_JIS .Where(w => w.削除日時 == null && w.取引先コード != null && w.枝番 != null && w.自社区分 == (int)CommonConstants.自社区分.販社) .Join(context.T02_URHD_HAN.Where(w => w.削除日時 == null), x => x.自社コード, y => y.販社コード, (x, y) => new { JIS = x, UHD_HAN = y }) .Join(context.T02_URDTL_HAN.Where(w => w.削除日時 == null), x => x.UHD_HAN.伝票番号, y => y.伝票番号, (x, y) => new { JIS = x.JIS, UHD = x.UHD_HAN, UDTL = y }) .Join(context.M09_HIN.Where(w => w.削除日時 == null), x => x.UDTL.品番コード, y => y.品番コード, (x, y) => new { JIS = x.JIS, UHD = x.UHD, UDTL = x.UDTL, HIN = y }); #region 検索条件による絞込み if (salesDateFrom != null) { urHanData = urHanData.Where(x => x.UHD.売上日 >= salesDateFrom); } if (salesDateTo != null) { urHanData = urHanData.Where(x => x.UHD.売上日 <= salesDateTo); } if (salesKbn > 0) { urHanData = urHanData.Where(w => w.UHD.売上区分 == salesKbn); } if (!string.IsNullOrEmpty(myProductCode)) { urHanData = urHanData.Where(w => w.HIN.自社品番 == myProductCode); } if (customerCode != null && customerEda != null) { urHanData = urHanData.Where(w => w.JIS.取引先コード == customerCode && w.JIS.枝番 == customerEda); } #endregion var resultList = urHanData .Join(salesKbnData, x => x.UHD.売上区分, y => y.コード, (x, y) => new { x.UHD, x.UDTL, x.JIS, x.HIN, KBN = y }) .GroupJoin(context.M01_TOK, x => new { code = (int)x.JIS.取引先コード, eda = (int)x.JIS.枝番 }, y => new { code = y.取引先コード, eda = y.枝番 }, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { a.x.UHD, a.x.UDTL, a.x.JIS, a.x.HIN, a.x.KBN, TOK = b }) .GroupJoin(context.M06_IRO, x => x.HIN.自社色, y => y.色コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (e, f) => new { e.x.UHD, e.x.UDTL, e.x.JIS, e.x.HIN, e.x.KBN, e.x.TOK, IRO = f }) .OrderBy(o => o.UHD.販社コード) .ThenBy(t => t.JIS.枝番) .ThenBy(t => t.UHD.売上日) .ThenBy(t => t.UHD.伝票番号) .ThenBy(t => t.UDTL.行番号) .ToList() .Select(x => new SearchDataMember { 会社名コード = x.UHD.会社名コード, // No.227,228 Add 自社名 = x.JIS.自社名 ?? "", // No.227,228 Add 売上日 = x.UHD.売上日.ToShortDateString(), 請求日 = x.UHD.売上日.Day > x.TOK.T締日 ? AppCommon.GetClosingDate(x.UHD.売上日.Year, x.UHD.売上日.Month, x.TOK.T締日 ?? 31, 1).ToShortDateString() : AppCommon.GetClosingDate(x.UHD.売上日.Year, x.UHD.売上日.Month, x.TOK.T締日 ?? 31, 0).ToShortDateString(), 売上区分 = x.KBN.表示名, 伝票番号 = x.UHD.伝票番号.ToString(), 元伝票番号 = string.Empty, 行番号 = x.UDTL.行番号, 得意先コード = string.Format("{0:D4} - {1:D2}", x.JIS.取引先コード, x.JIS.枝番), // No.227,228 Add 得意先 = x.TOK != null ? x.TOK.略称名 : string.Empty, 品番コード = x.UDTL.品番コード, 自社品番 = x.HIN != null ? x.HIN.自社品番 : string.Empty, 自社品名 = !string.IsNullOrEmpty(x.UDTL.自社品名) ? x.UDTL.自社品名 : x.HIN != null ? x.HIN.自社品名 : string.Empty, // No.390 Mod 自社色 = x.IRO != null ? x.IRO.色名称 : string.Empty, 賞味期限 = x.UDTL.賞味期限 == null ? null : x.UDTL.賞味期限.Value.ToShortDateString(), 単価 = x.UDTL.単価, 数量 = x.UDTL.数量, 単位 = x.UDTL.単位, 金額 = x.UDTL.金額 == null ? 0 : x.UHD.売上区分 < (int)CommonConstants.売上区分.通常売上返品 ? (int)x.UDTL.金額 : (int)x.UDTL.金額 * -1, 摘要 = x.UDTL.摘要, 受注番号 = x.UHD.受注番号.ToString(), 品伝票番号 = x.UHD.品伝票番号.ToString(), }) .ToList(); return(resultList); } catch (System.ArgumentException agex) { throw agex; } catch (Exception ex) { throw ex; } } }
/// <summary> /// 入金予定表の基本情報を取得する /// </summary> /// <param name="condition"> /// == 検索条件 == /// 自社コード /// 入金年月 /// 入金日 /// 全入金日 /// 得意先コード /// 得意先枝番 /// 作成区分 /// </param> /// <returns></returns> private List <PrintMenber> getCommonData(Dictionary <string, string> condition) { // 検索パラメータを展開 int myCompany, paymentYearMonth, createType; int? paymentDay, customerCode, customerEda; bool isAllDays; getFormParams(condition, out myCompany, out paymentYearMonth, out paymentDay, out isAllDays, out customerCode, out customerEda, out createType); try { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { // 対象として取引区分:得意先、相殺、販社を対象とする List <int> kbnList = new List <int>() { (int)CommonConstants.取引区分.得意先, (int)CommonConstants.取引区分.相殺, (int)CommonConstants.取引区分.販社 }; // 集計得意先を取得 List <M01_TOK> tokList = context.M01_TOK.Where(w => w.削除日時 == null && kbnList.Contains(w.取引区分) && w.担当会社コード == myCompany).ToList(); // 請求情報取得 No.414 Mod var seiData = context.S01_SEIHD .Where(w => w.自社コード == myCompany && w.入金日 / 100 == paymentYearMonth).ToList(); #region 条件絞り込み // 締日が指定されている場合 No.414 Mod if (paymentDay != null) { int ival; DateTime closeDay = AppCommon.GetClosingDate(paymentYearMonth / 100, paymentYearMonth % 100, (int)paymentDay, 0); int nyuknDay = Int32.TryParse(closeDay.ToShortDateString().Replace("/", ""), out ival) ? ival : -1; // 請求ヘッダ.入金日に一致するデータを取得 seiData = seiData.Where(w => w.入金日 == nyuknDay).ToList(); } // 取引先が指定されている場合 if (customerCode != null && customerEda != null) { tokList = tokList.Where(w => w.取引先コード == customerCode && w.枝番 == customerEda).ToList(); } if (customerCode != null && customerEda == null) { tokList = tokList.Where(w => w.取引先コード == customerCode).ToList(); } #endregion tokList = tokList.OrderBy(o => o.取引先コード).ThenBy(t => t.枝番).ToList(); #region 集計処理 // 得意先毎に集計を実施 List <PrintMenber> resultList = new List <PrintMenber>(); foreach (M01_TOK tok in tokList) { var resultData = seiData.Where(w => w.請求先コード == tok.取引先コード && w.請求先枝番 == tok.枝番) .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.自社コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(z => z.y.DefaultIfEmpty(), (a, b) => new { SHD = a.x, JIS = b }) .ToList() .Select(s => new PrintMenber { 自社コード = s.SHD.自社コード, 自社名 = s.JIS.自社名, 得意先コード = string.Format("{0:D4} - {1:D2}", tok.取引先コード, tok.枝番), 取引先コード = tok.取引先コード, 枝番 = tok.枝番, 得意先名 = tok.略称名, 締処理 = "済", 売上額 = s.SHD.売上額, 消費税 = s.SHD.消費税, 回収予定額 = s.SHD.売上額 + s.SHD.消費税, 請求年月 = s.SHD.集計最終日 != null? Convert.ToDateTime(s.SHD.集計最終日).ToShortDateString() : s.SHD.請求年月日.ToShortDateString(), // No.414 Mod 締日 = s.SHD.請求締日, 現金・振込・小切手 = tok.Tサイト2 == null ? s.SHD.売上額 + s.SHD.消費税 : tok.T入金日2 == null ? s.SHD.売上額 + s.SHD.消費税 : // T請求区分:1(以上)の場合 // 請求条件金額の手形をxx枚発行し残金を現金とする tok.T請求区分 == (int)CommonConstants.請求・支払区分.ID01_以上 ? //tok.T請求条件 > 0 ? // (s.SHD.売上額 + s.SHD.消費税) % tok.T請求条件 : // 0 : tok.T請求条件 - (s.SHD.売上額 + s.SHD.消費税) > 0 ? (s.SHD.売上額 + s.SHD.消費税) : 0 : // T請求区分:(以下)の場合 // 請求条件金額の手形を発行し、残金を現金とする tok.T請求条件 > 0 ? (s.SHD.売上額 + s.SHD.消費税) - tok.T請求条件 > 0 ? (s.SHD.売上額 + s.SHD.消費税) - tok.T請求条件 : s.SHD.売上額 + s.SHD.消費税 : // 手形請求条件金額に満たない場合、全額を現金に振り分ける s.SHD.売上額 + s.SHD.消費税, 手形 = tok.Tサイト2 == null ? 0 : tok.T入金日2 == null ? 0 : // T請求区分:1(以上)の場合 // 請求条件金額の手形をxx枚発行する tok.T請求区分 == (int)CommonConstants.請求・支払区分.ID01_以上 ? //tok.T請求条件 > 0 ? // ((s.SHD.売上額 + s.SHD.消費税) / tok.T請求条件) * tok.T請求条件 : // s.SHD.売上額 + s.SHD.消費税 : tok.T請求条件 - (s.SHD.売上額 + s.SHD.消費税) <= 0 ? s.SHD.売上額 + s.SHD.消費税 : 0: // T請求区分:2(以下)の場合 // 請求条件金額の手形を発行する s.SHD.売上額 + s.SHD.消費税 - tok.T請求条件 >= 0 ? tok.T請求条件 : 0, 入金予定日 = s.SHD.入金日.ToString().Insert(4, "/").Insert(7, "/"), 期日 = tok.Tサイト2 == null ? null : tok.T入金日2 == null ? null : AppCommon.GetClosingDate(s.SHD.請求年月 / 100, s.SHD.請求年月 % 100, (int)tok.T入金日2, (int)tok.Tサイト2).ToShortDateString() }); resultList.AddRange(resultData); } #endregion // 条件絞り込み // 入金予定ありのみ if (createType == 1 || createType == 3) { resultList = resultList.Where(w => w.回収予定額 != 0).ToList(); } //請求処理前の得意先データを作成 if (createType == 3) { List <PrintMenber> addMiSeikyuuList = CreateMiseikyu(context, myCompany, paymentYearMonth, paymentDay, customerCode, customerEda); //NULLチェック if (addMiSeikyuuList != null) { resultList.AddRange(addMiSeikyuuList); } } return(resultList .OrderBy(o => o.自社コード) .ThenBy(t => t.入金予定日) .ThenBy(t => t.請求年月) .ThenBy(t => t.得意先コード) .ToList()); } } catch (Exception ex) { throw ex; } }
/// <summary> /// データ取得 /// </summary> public void SEARCH_MST900601(DataSet ds, int no) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); try { using (DbTransaction transaction = context.Connection.BeginTransaction()) { //変数宣言 DataTable dt; dt = ds.Tables["CSV取り込み"]; switch (no) { case 0: #region TRN foreach (DataRow row in dt.Rows) { // 20150715 wada add エラーでない行を登録対象とする。 if (!row.HasErrors) { int i明細番号 = ConvertToInt(row["明細番号"]); int i明細行 = ConvertToInt(row["明細行"]); // 新番号取得 var 明細番号M = (from n in context.M88_SEQ where n.明細番号ID == 1 select n ).FirstOrDefault(); if (明細番号M.現在明細番号 < i明細番号) { int p明細番号 = i明細番号 + 1; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } if (i明細番号 == 0) { i明細番号 = 明細番号M.現在明細番号 + 1; i明細行 = 1; int p明細番号 = i明細番号; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } int i得意先KEY = ConvertToInt(row["得意先KEY"]); int i支払先KEY = ConvertToInt(row["支払先KEY"]); int i車輌KEY = ConvertToInt(row["車輌KEY"]); int i乗務員KEY = ConvertToInt(row["乗務員KEY"]); //得意先 var ret = (from m01 in context.M01_TOK where m01.得意先ID == i得意先KEY select new MST90060_KEY { Key = m01.得意先KEY, }).AsQueryable(); foreach (var keys in ret) { i得意先KEY = keys.Key; } //支払先 var ret1 = (from m01 in context.M01_TOK where m01.得意先ID == i支払先KEY select new MST90060_KEY { Key = m01.得意先KEY, }).AsQueryable(); foreach (var keys in ret1) { i支払先KEY = keys.Key; } //車輌 var ret2 = (from m05 in context.M05_CAR where m05.車輌ID == i車輌KEY select new MST90060_KEY { Key = m05.車輌KEY, }).AsQueryable(); foreach (var keys in ret2) { i車輌KEY = keys.Key; } //乗務員 var ret3 = (from m04 in context.M04_DRV where m04.乗務員ID == i乗務員KEY select new MST90060_KEY { Key = m04.乗務員KEY, }).AsQueryable(); foreach (var keys in ret3) { i乗務員KEY = keys.Key; } T01_TRN t01 = new T01_TRN(); t01.明細番号 = i明細番号; //ConvertToInt(row["明細番号"]); t01.明細行 = i明細行; //ConvertToInt(row["明細行"]); t01.登録日時 = DateTime.Now; t01.更新日時 = DateTime.Now; t01.明細区分 = ConvertToInt(row["明細区分"]); t01.入力区分 = ConvertToInt(row["入力区分"]); t01.請求日付 = ConvertToDateTime(row["請求日付"]); t01.支払日付 = ConvertToDateTime(row["支払日付"]); t01.配送日付 = ConvertToDateTime(row["配送日付"]); t01.配送時間 = ConvertToDecimal(row["配送時間"]); t01.得意先KEY = i得意先KEY; t01.請求内訳ID = ConvertToIntNullable(row["請求内訳ID"]); t01.車輌KEY = i車輌KEY; t01.車種ID = ConvertToIntNullable(row["車種ID"]); t01.支払先KEY = i支払先KEY; t01.乗務員KEY = i乗務員KEY; t01.自社部門ID = ConvertToInt(row["自社部門ID"]); t01.車輌番号 = ConvertToStringNullable(row["車輌番号"]); t01.支払先名2次 = ConvertToStringNullable(row["支払先名2次"]); t01.実運送乗務員 = ConvertToStringNullable(row["実運送乗務員"]); t01.乗務員連絡先 = ConvertToStringNullable(row["乗務員連絡先"]); t01.請求運賃計算区分ID = ConvertToInt(row["請求運賃計算区分ID"]); t01.支払運賃計算区分ID = ConvertToInt(row["支払運賃計算区分ID"]); t01.数量 = ConvertToDecimal(row["数量"]); t01.単位 = ConvertToStringNullable(row["単位"]); t01.重量 = ConvertToDecimal(row["重量"]); t01.走行KM = ConvertToInt(row["走行KM"]); t01.実車KM = ConvertToInt(row["実車KM"]); t01.待機時間 = ConvertToDecimal(row["重量"]); t01.売上単価 = ConvertToDecimal(row["売上単価"]); t01.売上金額 = ConvertToInt(row["売上金額"]); t01.通行料 = ConvertToInt(row["通行料"]); t01.請求割増1 = ConvertToInt(row["請求割増1"]); t01.請求割増2 = ConvertToInt(row["請求割増2"]); t01.請求消費税 = ConvertToInt(row["請求消費税"]); t01.支払単価 = ConvertToDecimal(row["支払単価"]); t01.支払金額 = ConvertToInt(row["支払金額"]); t01.支払通行料 = ConvertToInt(row["支払通行料"]); t01.支払割増1 = ConvertToInt(row["支払割増1"]); t01.支払割増2 = ConvertToInt(row["支払割増2"]); t01.支払消費税 = ConvertToInt(row["支払消費税"]); t01.水揚金額 = ConvertToInt(row["水揚金額"]); t01.社内区分 = ConvertToInt(row["社内区分"]); t01.請求税区分 = ConvertToInt(row["請求税区分"]); t01.支払税区分 = ConvertToInt(row["支払税区分"]); t01.商品ID = ConvertToIntNullable(row["商品ID"]); t01.商品名 = ConvertToStringNullable(row["商品名"]); t01.発地ID = ConvertToIntNullable(row["発地ID"]); t01.発地名 = ConvertToStringNullable(row["発地名"]); t01.着地ID = ConvertToIntNullable(row["着地ID"]); t01.着地名 = ConvertToStringNullable(row["着地名"]); t01.請求摘要ID = ConvertToIntNullable(row["請求摘要ID"]); t01.請求摘要 = ConvertToStringNullable(row["請求摘要"]); t01.社内備考ID = ConvertToIntNullable(row["社内備考ID"]); t01.社内備考 = ConvertToStringNullable(row["社内備考"]); t01.入力者ID = ConvertToIntNullable(row["入力者ID"]); context.T01_TRN.ApplyChanges(t01); } } context.SaveChanges(); transaction.Commit(); break; #endregion case 1: #region UTRN foreach (DataRow row in dt.Rows) { // 20150715 wada add エラーでない行を登録対象とする。 if (!row.HasErrors) { int i明細番号 = ConvertToInt(row["明細番号"]); int i明細行 = ConvertToInt(row["明細行"]); // 新番号取得 var 明細番号M = (from n in context.M88_SEQ where n.明細番号ID == 1 select n ).FirstOrDefault(); if (明細番号M.現在明細番号 < i明細番号) { int p明細番号 = i明細番号 + 1; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } if (i明細番号 == 0) { i明細番号 = 明細番号M.現在明細番号 + 1; i明細行 = 1; int p明細番号 = i明細番号; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } int i車輌KEY = ConvertToInt(row["車輌KEY"]); int i乗務員KEY = ConvertToInt(row["乗務員KEY"]); //車輌 var ret = (from m05 in context.M05_CAR where m05.車輌ID == i車輌KEY select new MST90060_KEY { Key = m05.車輌KEY, }).AsQueryable(); foreach (var keys in ret) { i車輌KEY = keys.Key; } //乗務員 var ret1 = (from m04 in context.M04_DRV where m04.乗務員ID == i乗務員KEY select new MST90060_KEY { Key = m04.乗務員KEY, }).AsQueryable(); foreach (var keys in ret1) { i乗務員KEY = keys.Key; } T02_UTRN t02 = new T02_UTRN(); t02.明細番号 = i明細番号; // ConvertToInt(row["明細番号"]); t02.明細行 = i明細行; // ConvertToInt(row["明細行"]); t02.登録日時 = DateTime.Now; t02.更新日時 = DateTime.Now; t02.明細区分 = 1; t02.入力区分 = 2; t02.実運行日開始 = ConvertToDateTimeNullable(row["実運行日開始"]); t02.実運行日終了 = ConvertToDateTimeNullable(row["実運行日終了"]); t02.車輌KEY = i車輌KEY; t02.乗務員KEY = i乗務員KEY; t02.車種ID = ConvertToIntNullable(row["車種ID"]); t02.車輌番号 = ConvertToStringNullable(row["車輌番号"]); t02.自社部門ID = ConvertToIntNullable(row["自社部門ID"]); t02.出庫時間 = ConvertToDecimal(row["出庫時間"]); t02.帰庫時間 = ConvertToDecimal(row["帰庫時間"]); t02.出勤区分ID = ConvertToInt(row["出勤区分ID"]); t02.拘束時間 = ConvertToDecimal(row["拘束時間"]); t02.運転時間 = ConvertToDecimal(row["運転時間"]); t02.高速時間 = ConvertToDecimal(row["高速時間"]); t02.作業時間 = ConvertToDecimal(row["作業時間"]); t02.待機時間 = ConvertToDecimal(row["待機時間"]); t02.休憩時間 = ConvertToDecimal(row["休憩時間"]); t02.残業時間 = ConvertToDecimal(row["残業時間"]); t02.深夜時間 = ConvertToDecimal(row["深夜時間"]); t02.走行KM = ConvertToInt(row["走行KM"]); t02.実車KM = ConvertToInt(row["実車KM"]); t02.輸送屯数 = ConvertToDecimal(row["輸送屯数"]); t02.出庫KM = ConvertToInt(row["出庫KM"]); t02.帰庫KM = ConvertToInt(row["帰庫KM"]); t02.備考 = ConvertToStringNullable(row["備考"]); t02.勤務開始日 = ConvertToDateTime(row["勤務開始日"]); t02.勤務終了日 = ConvertToDateTime(row["勤務終了日"]); t02.労務日 = ConvertToDateTime(row["労務日"]); t02.入力者ID = ConvertToIntNullable(row["入力者ID"]); context.T02_UTRN.ApplyChanges(t02); } } context.SaveChanges(); transaction.Commit(); break; #endregion case 2: #region KTRN 注:データベースが車輌IDになっている。 foreach (DataRow row in dt.Rows) { // 20150715 wada add エラーでない行を登録対象とする。 if (!row.HasErrors) { int i明細番号 = ConvertToInt(row["明細番号"]); int i明細行 = ConvertToInt(row["明細行"]); // 新番号取得 var 明細番号M = (from n in context.M88_SEQ where n.明細番号ID == 1 select n ).FirstOrDefault(); if (明細番号M.現在明細番号 < i明細番号) { int p明細番号 = i明細番号; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } if (i明細番号 == 0) { i明細番号 = 明細番号M.現在明細番号 + 1; i明細行 = 1; int p明細番号 = i明細番号; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } int i支払先KEY = ConvertToInt(row["支払先KEY"]); int i乗務員KEY = ConvertToInt(row["乗務員KEY"]); int i車輌KEY = ConvertToInt(row["車輌ID"]); //支払先 var ret = (from m01 in context.M01_TOK where m01.得意先ID == i支払先KEY select new MST90060_KEY { Key = m01.得意先KEY, }).AsQueryable(); foreach (var keys in ret) { i支払先KEY = keys.Key; } //乗務員 var ret1 = (from m04 in context.M04_DRV where m04.乗務員ID == i乗務員KEY select new MST90060_KEY { Key = m04.乗務員KEY, }).AsQueryable(); foreach (var keys in ret1) { i乗務員KEY = keys.Key; } //車輌 var ret2 = (from m05 in context.M05_CAR where m05.車輌ID == i車輌KEY select new MST90060_KEY { Key = m05.車輌KEY, }).AsQueryable(); foreach (var keys in ret2) { i車輌KEY = keys.Key; } T03_KTRN t03 = new T03_KTRN(); t03.明細番号 = i明細番号; // ConvertToInt(row["明細番号"]); t03.明細行 = i明細行; // ConvertToInt(row["明細行"]); t03.登録日時 = DateTime.Now; t03.更新日時 = DateTime.Now; t03.明細区分 = 1; t03.入力区分 = 1; t03.経費発生日 = ConvertToDateTimeNullable(row["経費発生日"]); t03.車輌ID = i車輌KEY; t03.車輌番号 = ConvertToStringNullable(row["車輌番号"]); t03.メーター = ConvertToIntNullable(row["メーター"]); t03.乗務員KEY = i乗務員KEY; t03.支払先KEY = i支払先KEY; t03.自社部門ID = ConvertToIntNullable(row["自社部門ID"]); t03.経費項目ID = ConvertToIntNullable(row["経費項目ID"]); t03.経費補助名称 = ConvertToStringNullable(row["経費補助名称"]); t03.単価 = ConvertToDecimal(row["単価"]); t03.内軽油税分 = ConvertToDecimal(row["内軽油税分"]); t03.数量 = ConvertToDecimal(row["数量"]); t03.金額 = ConvertToInt(row["金額"]); t03.収支区分 = ConvertToIntNullable(row["収支区分"]); t03.摘要ID = ConvertToIntNullable(row["摘要ID"]); t03.摘要名 = ConvertToStringNullable(row["摘要名"]); t03.入力者ID = ConvertToIntNullable(row["入力者ID"]); context.T03_KTRN.ApplyChanges(t03); } } context.SaveChanges(); transaction.Commit(); break; #endregion case 3: #region NTRN foreach (DataRow row in dt.Rows) { // 20150715 wada add エラーでない行を登録対象とする。 if (!row.HasErrors) { int i明細番号 = ConvertToInt(row["明細番号"]); int i明細行 = ConvertToInt(row["明細行"]); // 新番号取得 var 明細番号M = (from n in context.M88_SEQ where n.明細番号ID == 1 select n ).FirstOrDefault(); if (明細番号M.現在明細番号 < i明細番号) { int p明細番号 = 明細番号M.現在明細番号 + 1; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } if (i明細番号 == 0) { i明細番号 = 明細番号M.現在明細番号 + 1; i明細行 = 1; int p明細番号 = i明細番号; 明細番号M.現在明細番号 = p明細番号; 明細番号M.AcceptChanges(); } int i得意先KEY = ConvertToInt(row["取引先KEY"]); //得意先 var ret = (from m01 in context.M01_TOK where m01.得意先ID == i得意先KEY select new MST90060_KEY { Key = m01.得意先KEY, }).AsQueryable(); foreach (var keys in ret) { i得意先KEY = keys.Key; } T04_NYUK t04 = new T04_NYUK(); t04.明細番号 = i明細番号; // ConvertToInt(row["明細番号"]); t04.明細行 = i明細行; // ConvertToInt(row["明細行"]); t04.登録日時 = DateTime.Now; t04.更新日時 = DateTime.Now; t04.明細区分 = ConvertToInt(row["明細区分"]); t04.入出金日付 = ConvertToDateTimeNullable(row["入出金日付"]); t04.取引先KEY = i得意先KEY; t04.入出金区分 = ConvertToInt(row["入出金区分"]); t04.入出金金額 = ConvertToInt(row["入出金金額"]); t04.摘要ID = ConvertToIntNullable(row["摘要ID"]); t04.摘要名 = ConvertToStringNullable(row["摘要名"]); t04.手形日付 = ConvertToDateTimeNullable(row["手形日付"]); t04.入力者ID = ConvertToIntNullable(row["入力者ID"]); context.T04_NYUK.ApplyChanges(t04); } } context.SaveChanges(); transaction.Commit(); break; #endregion } return; } } catch (Exception ex) { throw ex; } } }
/// <summary> /// M92_KZEIのデータ取得 /// </summary> public List <M92_KZEI_Member> GetData(DateTime?p適用開始年月日, int?pオプションコード) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var query = (from M92 in context.M92_KZEI select new M92_KZEI_Member { 適用開始年月日 = M92.適用開始年月日, 軽油引取税率 = M92.軽油引取税率, 削除日付 = M92.削除日付, }).AsQueryable(); if (p適用開始年月日 != null) { if (pオプションコード == 0) { query = query.Where(c => c.適用開始年月日 == p適用開始年月日); } else if (pオプションコード == -1) { //自社IDの1つ前のIDを取得 query = query.Where(c => c.適用開始年月日 <= p適用開始年月日); if (query.Count() >= 2) { query = query.Where(c => c.適用開始年月日 < p適用開始年月日); } query = query.OrderByDescending(c => c.適用開始年月日); } else { //自社IDの1つ後のIDを取得 query = query.Where(c => c.適用開始年月日 >= p適用開始年月日); if (query.Count() >= 2) { query = query.Where(c => c.適用開始年月日 > p適用開始年月日); } query = query.OrderBy(c => c.適用開始年月日); } } else { if (pオプションコード == 0) { //自社IDの先頭のIDを取得 query = query.OrderBy(c => c.適用開始年月日); } else if (pオプションコード == 1) { query = query.Where(c => c.削除日付 == null); query = query.OrderByDescending(c => c.適用開始年月日); if (pオプションコード == 0) { query = query.OrderBy(c => c.適用開始年月日); } } } var ret = query.FirstOrDefault(); List <M92_KZEI_Member> result = new List <M92_KZEI_Member>(); if (ret != null) { result.Add(ret); } return(query.ToList()); } }
/// <summary> /// 仕入データ問合せ検索をおこなう /// </summary> /// <param name="p自社コード"></param> /// <param name="cond"> /// === 検索条件辞書 === /// 仕入日From - 仕入日To /// 入金日From - 入金日To /// 入力区分 /// 仕入先コード - 仕入先枝番 /// 入荷先コード /// </param> /// <returns></returns> public List <SearchDataMember> GetDataList(int p自社コード, Dictionary <string, string> cond) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { try { #region パラメータの型変換 DateTime? sDateFrom = stringToDate(cond, "仕入日From"), sDateTo = stringToDate(cond, "仕入日To"), nDateFrom = stringToDate(cond, "入金日From"), nDateTo = stringToDate(cond, "入金日To"); int ival; int?inputType = int.TryParse(cond["入力区分"], out ival) ? (ival >= 0 ? ival : (int?)null) : (int?)null; int? supCode = int.TryParse(cond["仕入先コード"], out ival) ? ival : (int?)null, supEda = int.TryParse(cond["仕入先枝番"], out ival) ? ival : (int?)null, arrivalCode = int.TryParse(cond["入荷先コード"], out ival) ? ival : (int?)null; #endregion // 基本情報取得 var srDataList = context.T03_SRHD.Where(w => w.削除日時 == null && w.会社名コード == p自社コード) .Join(context.T03_SRDTL .Where(w => w.削除日時 == null) .GroupBy(g => new { g.伝票番号 }) .Select(x => new { x.Key.伝票番号, 合計金額 = x.Sum(s => s.金額) }), x => x.伝票番号, y => y.伝票番号, (x, y) => new { SRHD = x, SRDTL = y }); #region 条件絞込 // 仕入日From - To if (sDateFrom != null) { srDataList = srDataList.Where(w => w.SRHD.仕入日 >= sDateFrom); } if (sDateTo != null) { srDataList = srDataList.Where(w => w.SRHD.仕入日 <= sDateTo); } // 入金日From - To // TODO:保留 // 入力区分 if (inputType != null) { srDataList = srDataList.Where(w => w.SRHD.入力区分 == inputType); } // 仕入先 if (supCode != null && supEda != null) { srDataList = srDataList.Where(w => w.SRHD.仕入先コード == supCode && w.SRHD.仕入先枝番 == supEda); } // 入荷先 if (arrivalCode != null) { srDataList = srDataList.Where(w => w.SRHD.入荷先コード == arrivalCode); } #endregion // 返品分のデータを取得する var returnList = srDataList.Where(w => w.SRHD.仕入区分 == (int)CommonConstants.仕入区分.返品).ToList(); #region 各名称を取得して検索メンバークラスに整形 var resultList = srDataList.Where(w => w.SRHD.仕入区分 < (int)CommonConstants.仕入区分.返品).ToList() // 返品分の仕入情報 .GroupJoin(returnList, x => x.SRHD.伝票番号, y => y.SRHD.元伝票番号, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (p, q) => new { p.x.SRHD, p.x.SRDTL, RTSR = q }) // 会社名 .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SRHD.会社名コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (a, b) => new { a.x.SRHD, a.x.SRDTL, a.x.RTSR, JIS1 = b }) // 仕入先 .GroupJoin(context.M01_TOK.Where(w => w.削除日時 == null), x => new { code = x.SRHD.仕入先コード, eda = x.SRHD.仕入先枝番 }, y => new { code = y.取引先コード, eda = y.枝番 }, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (c, d) => new { c.x.SRHD, c.x.SRDTL, c.x.RTSR, c.x.JIS1, TOK = d }) // 入荷先 .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SRHD.入荷先コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(x => x.y.DefaultIfEmpty(), (e, f) => new { e.x.SRHD, e.x.SRDTL, e.x.RTSR, e.x.JIS1, e.x.TOK, JIS2 = f }) .ToList() .Select(x => new SearchDataMember { 伝票番号 = x.SRHD.伝票番号, //No.406 Mod 返品伝票番号 = x.RTSR != null ? x.RTSR.SRHD.伝票番号.ToString() : "", 会社名コード = x.SRHD.会社名コード.ToString(), 自社名 = x.JIS1 != null ? x.JIS1.自社名 : "", 仕入日 = x.SRHD.仕入日.ToString("yyyy/MM/dd"), 支払日 = "", // TODO:一応足しておく 入力区分 = x.SRHD.入力区分.ToString(), 入力区分名 = CommonConstants.Get入力区分Dic()[x.SRHD.入力区分], 仕入先コード = string.Format("{0:D4} - {1:D2}", x.SRHD.仕入先コード, x.SRHD.仕入先枝番), // No.227,228 Mod 仕入先名 = x.TOK != null ? x.TOK.略称名 : "", 入荷先コード = x.SRHD.入荷先コード.ToString(), 入荷先名 = x.JIS2 != null ? x.JIS2.自社名 : "", 発注番号 = x.SRHD.発注番号.ToString(), 備考 = x.SRHD.備考, 合計金額 = x.SRDTL.合計金額, 消費税 = x.SRHD.消費税 ?? 0, 返品合計金額 = x.RTSR != null ? (x.RTSR.SRDTL.合計金額 * -1) : 0, 返品消費税 = x.RTSR != null ? (x.RTSR.SRHD.消費税 * -1) ?? 0 : 0 }) .ToList(); #endregion if (inputType == null || inputType != CommonConstants.入力区分.仕入入力.GetHashCode()) { var hanList = GetHanDataList(context, p自社コード, cond); // 既存リストに追加 resultList.AddRange(hanList); } // リスト追加後にソート実施 resultList = resultList.OrderBy(o => o.仕入日).ThenBy(t => t.伝票番号).ToList(); //No.406 Mod return(resultList); } catch (System.ArgumentException agex) { throw agex; } catch (Exception ex) { throw ex; } } }
/// <summary> /// 調整計算をおこなう /// </summary> /// <param name="paramDic">パラメータDic</param> /// <param name="userId">ログインユーザID</param> public List <BSK05010_SearchMember> SetCalculate(Dictionary <string, string> paramDic, int userId) { int compCd = int.Parse(paramDic[PARAM_NAME_COMPANY]), year = int.Parse(paramDic[PARAM_NAME_YEAR].Replace("/", "")); decimal rate = decimal.Parse(paramDic[PARAM_NAME_RATE]); M73 zeiService = new M73(); using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { var hanData = context.M70_JIS .Where(w => w.削除日時 == null && w.自社コード == compCd) .Join(context.M01_TOK, x => new { code = x.取引先コード ?? 0, eda = x.枝番 ?? 0 }, y => new { code = y.取引先コード, eda = y.枝番 }, (x, y) => new { JIS = x, TOK = y }) .FirstOrDefault(); // 決算月・請求締日から売上集計期間を算出する int pMonth = hanData.JIS.決算月 ?? CommonConstants.DEFAULT_SETTLEMENT_MONTH, pYear = pMonth < 4 ? year + 1 : year; // 締日前日が集計最終日 // No.101-3 Mod Start DateTime priodEndDate = AppCommon.GetClosingDate(pYear, pMonth, hanData.TOK.T締日 ?? CommonConstants.DEFAULT_CLOSING_DAY).AddDays(-1); // No.101-3 Mod End // 最終日から12ヶ月遡って翌日を集計開始日とする DateTime priodStrDate = priodEndDate.AddMonths(-12).AddDays(1); //debugLog.WriteLine(string.Format("集計期間:{0}~{1}", priodStrDate.ToString("yyyy/MM/dd"), priodEndDate.ToString("yyyy/MM/dd"))); #region 販社明細の調整計算(単価・金額) // 対象期間内の販社売上明細を取得 var dtlList = context.T02_URDTL_HAN .Where(w => w.削除日時 == null && context.T02_URHD_HAN .Where(v => v.削除日時 == null && v.販社コード == compCd && v.売上日 >= priodStrDate && v.売上日 <= priodEndDate) .Select(s => s.伝票番号) .Contains(w.伝票番号)); foreach (var data in dtlList) { decimal calcRate = rate / 100m + 1; // 調整比率を調整額として反映 data.調整単価 = Math.Round(data.単価 * calcRate, 0); data.調整金額 = decimal.ToInt32(Math.Round((data.金額 ?? 0) * calcRate, 0)); //debugLog.WriteLine(string.Format("Rate:{0:#,0.##}", calcRate)); //debugLog.WriteLine(string.Format("単価:{0:#,0} ⇒ {1:#,0.##}", data.単価, data.調整単価)); //debugLog.WriteLine(string.Format("金額:{0:#,0} ⇒ {1:#,0.##}", data.金額, data.調整金額)); //debugLog.WriteLine("--------------------"); data.AcceptChanges(); } #endregion // 変更状態を確定 context.SaveChanges(); #region 販社ヘッダの調整計算(消費税) var hdList = context.T02_URHD_HAN .Where(w => w.削除日時 == null && w.販社コード == compCd && w.売上日 >= priodStrDate && w.売上日 <= priodEndDate); foreach (var data in hdList) { int sumTax = 0; foreach (var row in context.T02_URDTL_HAN.Where(w => w.削除日時 == null && w.伝票番号 == data.伝票番号)) { // No.101-3 Mod Start sumTax += decimal.ToInt32( zeiService.getCalculatTax(hanData.TOK.T税区分ID, data.売上日, row.品番コード, row.調整金額 ?? 0, row.数量, hanData.TOK.T消費税区分)); // No.272 Mod // No.101-3 Mod End } data.調整消費税 = sumTax; data.調整比率 = rate; data.AcceptChanges(); } #endregion // 変更状態を確定 context.SaveChanges(); // トランザクションコミット tran.Commit(); } catch (Exception ex) { // トランザクションロールバック tran.Rollback(); throw ex; } }// end transaction } // データを再取得して返却 return(GetDataList(paramDic)); }
public List <SHR13010_Member> SHR13010_GetDataHinList(string s取引先From, string s取引先To, int?[] i取引先List, int i作成年, int i作成月, DateTime d集計月, string s作成年月度, int i作成区分, int i取引区分) { string 取引先指定ピックアップ = string.Empty; using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { List <SHR13010_Member> retList = new List <SHR13010_Member>(); context.Connection.Open(); //売上データ【全件抽出】 var query = (from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) join s01 in context.S01_TOKS.Where(c => c.回数 == 1) on m01.得意先KEY equals s01.得意先KEY into Group from s01Group in Group group new { s01Group, m01 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.T集金日, s01Group.集計年月 } into grGroup select new SHR13010_Company_Sales { コード = grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日, 集計日付 = grGroup.Key.集計年月, 集金日 = grGroup.Key.T集金日, 通行料 = grGroup.Sum(c => c.s01Group.締日通行料), 消費税 = grGroup.Sum(c => c.s01Group.締日消費税), 売上金額 = grGroup.Sum(c => c.s01Group.締日売上金額), 売上金額計 = grGroup.Sum(c => c.s01Group.締日売上金額 + c.s01Group.締日消費税 + c.s01Group.締日通行料), }).ToList(); //支払データ【全件抽出】 var query2 = (from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) join s02 in context.S02_YOSS.Where(c => c.回数 == 1) on m01.得意先KEY equals s02.支払先KEY into Group from s02Group in Group group new { m01, s02Group } by new { m01.得意先ID, m01.略称名, m01.Sサイト日, m01.S集金日, s02Group.集計年月 } into grGroup select new SHR13010_Company_Payment { コードs = grGroup.Key.得意先ID, 取引先名s = grGroup.Key.略称名, サイトs = grGroup.Key.Sサイト日, 集計日付s = grGroup.Key.集計年月, 集金日s = grGroup.Key.S集金日, 支払通行料 = grGroup.Sum(c => c.s02Group.締日通行料), 支払消費税 = grGroup.Sum(c => c.s02Group.締日消費税), 傭車金額 = grGroup.Sum(c => c.s02Group.締日売上金額), 傭車金額計 = grGroup.Sum(c => c.s02Group.締日売上金額 + c.s02Group.締日消費税 + c.s02Group.締日通行料), }).ToList(); //集計日付に会社ごとのサイト数を計算し【請求月】を算出 for (int i = 0; i < query.Count; i++) { if (Convert.ToDateTime((query[i].集計日付).ToString().Substring(0, 4) + "/" + query[i].集計日付.ToString().Substring(4, 2) + "/01").AddMonths(query[i].サイト) == d集計月) { //サイト数を計算したデータと入力されたデータが同じなら挿入 query[i].請求月 = Convert.ToDateTime((query[i].集計日付).ToString().Substring(0, 4) + "/" + query[i].集計日付.ToString().Substring(4, 2) + "/01").AddMonths(query[i].サイト); } else { //集計の必要のないデータには【1111年11月11日】を挿入 query[i].請求月 = Convert.ToDateTime("1111/11/11"); } } ; //集計日付に会社ごとのサイト数を計算し【支払月】を算出 for (int i = 0; i < query2.Count; i++) { if (Convert.ToDateTime((query2[i].集計日付s).ToString().Substring(0, 4) + "/" + query2[i].集計日付s.ToString().Substring(4, 2) + "/01").AddMonths(query2[i].サイトs) == d集計月) { //サイト数を計算したデータと入力されたデータが同じなら挿入 query2[i].支払月s = Convert.ToDateTime((query2[i].集計日付s).ToString().Substring(0, 4) + "/" + query2[i].集計日付s.ToString().Substring(4, 2) + "/01").AddMonths(query2[i].サイトs); } else { //集計の必要のないデータには【1111年11月11日】を挿入 query2[i].支払月s = Convert.ToDateTime("1111/11/11"); } } ; //必要のないデータを変数化し【RemoveAll】で取り除く DateTime Value = Convert.ToDateTime("1111/11/11"); query.RemoveAll(c => c.請求月 == Value); query2.RemoveAll(c => c.支払月s == Value); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region 売上と支払 両方ともデータがあるとき if (query.Count() != 0 && query2.Count() != 0) { //2つのクエリの【和集合】を求める var retquery = (from s01 in query select s01.コード).Union( from s02 in query2 select s02.コードs).AsQueryable(); //【売上】と【支払】データを1つにまとめる var join = (from ret in retquery from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from q01 in query.Where(c => c.コード == m01.得意先ID).DefaultIfEmpty() from q02 in query2.Where(c => c.コードs == m01.得意先ID).DefaultIfEmpty() group new { m01, q01, q02 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup select new SHR13010_Member { コード = grGroup.Key.得意先ID == null ? 0 : grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名 == null ? "" : grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日 == null ? 0 : grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日 == null ? 0 : grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日 == null ? 0 : grGroup.Key.T集金日, S集金日 = grGroup.Key.S集金日 == null ? 0 : grGroup.Key.S集金日, 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子" == null ? "" : grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分 == null ? 10 : grGroup.Key.取引区分, 作成年月度 = s作成年月度 == null ? "" : s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }).AsQueryable(); //<<<データの絞込み>>> if (!(string.IsNullOrEmpty(s取引先From + s取引先To) && i取引先List.Length == 0)) { if (string.IsNullOrEmpty(s取引先From + s取引先To)) { join = join.Where(c => c.コード >= int.MaxValue); } if (!string.IsNullOrEmpty(s取引先From)) { int i取引先From = AppCommon.IntParse(s取引先From); join = join.Where(c => c.コード >= i取引先From); } if (!string.IsNullOrEmpty(s取引先To)) { int i取引先To = AppCommon.IntParse(s取引先To); join = join.Where(c => c.コード <= i取引先To); } if (i取引先List.Length > 0) { var intCouse = i取引先List; join = join.Union(from ret in retquery from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from q01 in query.Where(c => c.コード == m01.得意先ID).DefaultIfEmpty() from q02 in query2.Where(c => c.コードs == m01.得意先ID).DefaultIfEmpty() group new { m01, q01, q02 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup where intCouse.Contains(grGroup.Key.得意先ID) select new SHR13010_Member { コード = grGroup.Key.得意先ID == null ? 0 : grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名 == null ? "" : grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日 == null ? 0 : grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日 == null ? 0 : grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日 == null ? 0 : grGroup.Key.T集金日, S集金日 = grGroup.Key.S集金日 == null ? 0 : grGroup.Key.S集金日, 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子" == null ? "" : grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分 == null ? 10 : grGroup.Key.取引区分, 作成年月度 = s作成年月度 == null ? "" : s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }).OrderBy(c => c.コード).AsQueryable(); //取引先指定の表示 if (i取引先List.Length > 0) { for (int i = 0; i < query.Count(); i++) { 取引先指定ピックアップ = 取引先指定ピックアップ + i取引先List[i].ToString(); if (i < i取引先List.Length) { if (i == i取引先List.Length - 1) { break; } 取引先指定ピックアップ = 取引先指定ピックアップ + ","; } if (i取引先List.Length == 1) { break; } } } } } else { if (string.IsNullOrEmpty(s取引先From)) { join = join.Where(c => c.コード >= int.MinValue); } if (string.IsNullOrEmpty(s取引先To)) { join = join.Where(c => c.コード <= int.MaxValue); } } //【売上】・【支払】・【売上/支払】データをList化 List <SHR13010_Member> LIST = join.ToList(); List <SHR13010_Company_Sales> SalesList = query.ToList(); List <SHR13010_Company_Payment> PaymentList = query2.ToList(); List <SHR13010_Member> queryLIST = new List <SHR13010_Member>(); int?name = 0; foreach (var data in LIST) { if (name != data.コード) { queryLIST.Add(data); } name = data.コード; } //売上と支払を1つにしたデータをLoop for (int i = 0; i < queryLIST.Count(); i++) { //QueryListに当てはまる【売上】データがある場合、データ挿入 for (int x = 0; x < SalesList.Count(); x++) { if (queryLIST[i].コード == SalesList[x].コード) { queryLIST[i].請求月 = SalesList[x].集計日付; queryLIST[i].通行料 = SalesList[x].通行料; queryLIST[i].消費税 = SalesList[x].消費税; queryLIST[i].売上金額 = SalesList[x].売上金額; queryLIST[i].売上金額計 = SalesList[x].売上金額計; } else { continue; } } //QueryListに当てはまる【支払】データがある場合、データ挿入 for (int y = 0; y < PaymentList.Count(); y++) { if (queryLIST[i].コード == PaymentList[y].コードs) { queryLIST[i].支払月 = PaymentList[y].集計日付s; queryLIST[i].支払通行料 = PaymentList[y].支払通行料; queryLIST[i].支払消費税 = PaymentList[y].支払消費税; queryLIST[i].傭車金額 = PaymentList[y].傭車金額; queryLIST[i].傭車金額計 = PaymentList[y].傭車金額計; } else { continue; } } } //帳票の【売上額】と【支払額】を比較して額が多いほうの差分データを挿入 for (int i = 0; i < queryLIST.Count(); i++) { if (queryLIST[i].売上金額計 > queryLIST[i].傭車金額計) { queryLIST[i].売上 = queryLIST[i].売上金額計 - queryLIST[i].傭車金額計; } else if (queryLIST[i].売上金額計 < queryLIST[i].傭車金額計) { queryLIST[i].支払 = queryLIST[i].傭車金額計 - queryLIST[i].売上金額計; } else { continue; } } //取引ありのみ表示 if (i作成区分 == 0) { queryLIST = queryLIST.Where(c => c.売上金額計 != 0 || c.傭車金額計 != 0).ToList(); } //【全取引】の企業のみ if (i取引区分 == 1) { queryLIST = queryLIST.Where(c => c.取引区分 == 0).ToList(); } //親子区分【子】を非表示に queryLIST = queryLIST.Where(c => c.親子区分 != "子").ToList(); //表示順序変更 queryLIST = queryLIST.OrderBy(c => c.コード).ToList(); return(queryLIST.ToList()); } #endregion ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region 売上データのみ else if (query.Count() != 0 && query2.Count() == 0) { var retquery = (from s01 in query select s01.コード).Union( from s02 in query2 select s02.コードs).Distinct().AsQueryable(); var join = (from ret in retquery from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from q01 in query.Where(c => c.コード == m01.得意先ID).DefaultIfEmpty() group new { m01, q01 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup select new SHR13010_Member { コード = grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日, S集金日 = grGroup.Key.T集金日, 請求月 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.集計日付) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.集計日付), 支払月 = 0, 通行料 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.通行料) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.通行料), 支払通行料 = 0, 消費税 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.消費税) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.消費税), 支払消費税 = 0, 売上金額 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.売上金額) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.売上金額), 傭車金額 = 0, 売上金額計 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.売上金額計) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.売上金額計), 傭車金額計 = 0, 売上 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.売上金額計) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.売上金額計), 支払 = 0, 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分, 作成年月度 = s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }).AsQueryable(); //<<<データの絞込み>>> if (!(string.IsNullOrEmpty(s取引先From + s取引先To) && i取引先List.Length == 0)) { if (string.IsNullOrEmpty(s取引先From + s取引先To)) { join = join.Where(c => c.コード >= int.MaxValue); } if (!string.IsNullOrEmpty(s取引先From)) { int i取引先From = AppCommon.IntParse(s取引先From); join = join.Where(c => c.コード >= i取引先From); } if (!string.IsNullOrEmpty(s取引先To)) { int i取引先To = AppCommon.IntParse(s取引先To); join = join.Where(c => c.コード <= i取引先To); } if (i取引先List.Length > 0) { var intCouse = i取引先List; join = join.Union(from ret in retquery from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from q01 in query.Where(c => c.コード == m01.得意先ID).DefaultIfEmpty() group new { m01, q01 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup where intCouse.Contains(grGroup.Key.得意先ID) select new SHR13010_Member { コード = grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日, S集金日 = grGroup.Key.T集金日, 請求月 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.集計日付) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.集計日付), 支払月 = 0, 通行料 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.通行料) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.通行料), 支払通行料 = 0, 消費税 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.消費税) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.消費税), 支払消費税 = 0, 売上金額 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.売上金額) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.売上金額), 傭車金額 = 0, 売上金額計 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.売上金額計) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.売上金額計), 傭車金額計 = 0, 売上 = query.Where(c => c.コード == grGroup.Key.得意先ID).Sum(c => c.売上金額計) == 0 ? 0 : query.Where(c => c.コード == grGroup.Key.得意先ID).Distinct().Sum(c => c.売上金額計), 支払 = 0, 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分, 作成年月度 = s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }); //取引先指定の表示 if (i取引先List.Length > 0) { for (int i = 0; i < query.Count(); i++) { 取引先指定ピックアップ = 取引先指定ピックアップ + i取引先List[i].ToString(); if (i < i取引先List.Length) { if (i == i取引先List.Length - 1) { break; } 取引先指定ピックアップ = 取引先指定ピックアップ + ","; } if (i取引先List.Length == 1) { break; } } } } } else { if (string.IsNullOrEmpty(s取引先From)) { join = join.Where(c => c.コード >= int.MinValue); } if (string.IsNullOrEmpty(s取引先To)) { join = join.Where(c => c.コード <= int.MaxValue); } } //取引ありのみ表示 if (i作成区分 == 0) { join = join.Where(c => c.売上金額計 != 0 || c.傭車金額計 != 0).Distinct(); } //【全取引】の企業のみ if (i取引区分 == 1) { join = join.Where(c => c.取引区分 == 0).Distinct(); } //親子区分【子】を非表示に join = join.Where(c => c.親子区分 != "子"); //表示順序変更 join = join.OrderBy(c => c.コード); return(join.ToList()); } #endregion ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region 支払データのみ else if (query.Count() == 0 && query2.Count() != 0) { var retquery = (from s01 in query select s01.コード).Union( from s02 in query2 select s02.コードs).AsQueryable(); var join = (from ret in retquery from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from q02 in query2.Where(c => c.コードs == m01.得意先ID).DefaultIfEmpty() group new { m01, q02 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup select new SHR13010_Member { コード = grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日, S集金日 = grGroup.Key.T集金日, 請求月 = 0, 支払月 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.集計日付s) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Distinct().Sum(c => c.集計日付s), 通行料 = 0, 支払通行料 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払通行料) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払通行料), 消費税 = 0, 支払消費税 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払消費税) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払消費税), 売上金額 = 0, 傭車金額 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額), 売上金額計 = 0, 傭車金額計 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計), 売上 = 0, 支払 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計), 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子" == null ? "" : grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分 == null ? 10 : grGroup.Key.取引区分, 作成年月度 = s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }).AsQueryable().Distinct(); //<<<データの絞込み>>> if (!(string.IsNullOrEmpty(s取引先From + s取引先To) && i取引先List.Length == 0)) { if (string.IsNullOrEmpty(s取引先From + s取引先To)) { join = join.Where(c => c.コード >= int.MaxValue); } if (!string.IsNullOrEmpty(s取引先From)) { int i取引先From = AppCommon.IntParse(s取引先From); join = join.Where(c => c.コード >= i取引先From); } if (!string.IsNullOrEmpty(s取引先To)) { int i取引先To = AppCommon.IntParse(s取引先To); join = join.Where(c => c.コード <= i取引先To); } if (i取引先List.Length > 0) { var intCouse = i取引先List; join = join.Union(from ret in retquery from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from q02 in query2.Where(c => c.コードs == m01.得意先ID).DefaultIfEmpty() group new { m01, q02 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup where intCouse.Contains(grGroup.Key.得意先ID) select new SHR13010_Member { コード = grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日, S集金日 = grGroup.Key.T集金日, 請求月 = 0, 支払月 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.集計日付s) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Distinct().Sum(c => c.集計日付s), 通行料 = 0, 支払通行料 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払通行料) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払通行料), 消費税 = 0, 支払消費税 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払消費税) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.支払消費税), 売上金額 = 0, 傭車金額 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額), 売上金額計 = 0, 傭車金額計 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計), 売上 = 0, 支払 = query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計) == 0 ? 0 : query2.Where(c => c.コードs == grGroup.Key.得意先ID).Sum(c => c.傭車金額計), 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子" == null ? "" : grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分 == null ? 10 : grGroup.Key.取引区分, 作成年月度 = s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }); //取引先指定の表示 if (i取引先List.Length > 0) { for (int i = 0; i < query.Count(); i++) { 取引先指定ピックアップ = 取引先指定ピックアップ + i取引先List[i].ToString(); if (i < i取引先List.Length) { if (i == i取引先List.Length - 1) { break; } 取引先指定ピックアップ = 取引先指定ピックアップ + ","; } if (i取引先List.Length == 1) { break; } } } } } else { if (string.IsNullOrEmpty(s取引先From)) { join = join.Where(c => c.コード >= int.MinValue); } if (string.IsNullOrEmpty(s取引先To)) { join = join.Where(c => c.コード <= int.MaxValue); } } //取引ありのみ表示 if (i作成区分 == 0) { join = join.Where(c => c.売上金額計 != 0 || c.傭車金額計 != 0); } //【全取引】の企業のみ if (i取引区分 == 1) { join = join.Where(c => c.取引区分 == 0); } //親子区分【子】を非表示に join = join.Where(c => c.親子区分 != "子"); //表示順序変更 join = join.OrderBy(c => c.コード); return(join.ToList()); } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region データ無し else { var join = (from m01 in context.M01_TOK.Where(c => c.削除日付 == null && c.親子区分ID != 3) from s01 in context.S01_TOKS.Where(c => c.得意先KEY == m01.得意先KEY && c.回数 == 1).DefaultIfEmpty() from s02 in context.S02_YOSS.Where(c => c.支払先KEY == m01.得意先KEY && c.回数 == 1).DefaultIfEmpty() group new { m01, s01, s02 } by new { m01.得意先ID, m01.略称名, m01.Tサイト日, m01.Sサイト日, m01.T集金日, m01.S集金日, m01.親子区分ID, m01.取引区分, } into grGroup select new SHR13010_Member { コード = grGroup.Key.得意先ID, 取引先名 = grGroup.Key.略称名, サイト = grGroup.Key.Tサイト日, サイトs = grGroup.Key.Sサイト日, 集金日 = grGroup.Key.T集金日, S集金日 = grGroup.Key.T集金日, 請求月 = 0, 支払月 = 0, 通行料 = 0, 支払通行料 = 0, 消費税 = 0, 支払消費税 = 0, 売上金額 = 0, 傭車金額 = 0, 売上金額計 = 0, 傭車金額計 = 0, 売上 = 0, 支払 = 0, 親子区分 = grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子" == null ? "" : grGroup.Key.親子区分ID == 0 ? "" : grGroup.Key.親子区分ID == 1 ? "親" : grGroup.Key.親子区分ID == 2 ? "親" : "子", 取引区分 = grGroup.Key.取引区分 == null ? 10 : grGroup.Key.取引区分, 作成年月度 = s作成年月度, 取引先指定 = s取引先From + "~" + s取引先To, 取引先ピックアップ = 取引先指定ピックアップ == "" ? "" : 取引先指定ピックアップ, }).Distinct().AsQueryable(); #endregion //作成区分が0だった場合 if (i作成区分 == 0) { //売上・支払が発生していないデータを除く join = join.Where(c => c.売上金額計 != 0 || c.傭車金額計 != 0); } return(join.ToList()); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } }
/// <summary> /// 調整見込計算をおこなった結果を取得する /// </summary> /// <param name="paramDic">パラメータDic</param> /// <returns></returns> public List <BSK05010_SearchMember> GetDataList(Dictionary <string, string> paramDic) { int compCd = int.Parse(paramDic[PARAM_NAME_COMPANY]), year = int.Parse(paramDic[PARAM_NAME_YEAR].Replace("/", "")); decimal rate = decimal.Parse(paramDic[PARAM_NAME_RATE]); using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var jis = context.M70_JIS .Where(w => w.削除日時 == null && w.自社コード == compCd) .FirstOrDefault(); // 決算月から請求年月の範囲を取得 int month = jis.決算月 ?? CommonConstants.DEFAULT_SETTLEMENT_MONTH; DateTime priodEndDate = new DateTime(month < 4 ? year + 1 : year, month, 1); DateTime priodStrDate = priodEndDate.AddMonths(-11); int sYearMonth = priodStrDate.Year * 100 + priodStrDate.Month, eYearMonth = priodEndDate.Year * 100 + priodEndDate.Month; DateTime targetDate = priodStrDate; List <string> targetList = new List <string>(); while (targetDate <= priodEndDate) { targetList.Add(targetDate.ToString("yyyy/MM")); targetDate = targetDate.AddMonths(1); } var urData = getSalesAjustData(context, year, compCd); var seiData = context.S01_SEIHD .Where(w => w.請求先コード == jis.取引先コード && w.請求先枝番 == jis.枝番 && w.請求年月 >= sYearMonth && w.請求年月 <= eYearMonth) .GroupBy(g => new { g.自社コード, g.請求年月 }) .OrderBy(o => o.Key.請求年月) .ToList() .Select(s => new { 決算対象年月 = string.Format("{0}/{1:D2}", s.Key.請求年月 / 100, s.Key.請求年月 % 100), 決算調整前金額 = s.Sum(m => m.売上額) - s.Sum(m => m.値引額), }) .Select(s => new BSK05010_SearchMember { 決算対象年月 = s.決算対象年月, 決算調整前金額 = s.決算調整前金額, 決算調整見込金額 = (long)Math.Round(s.決算調整前金額 * (rate / 100 + 1), 0), }); var result = targetList.AsQueryable() .GroupJoin(seiData, x => x, y => y.決算対象年月, (x, y) => new { x, y }) .SelectMany(z => z.y.DefaultIfEmpty(), (a, b) => new { 対象年月 = a.x, SEI = b }) .ToList() .Select(s => new BSK05010_SearchMember { 決算対象年月 = s.対象年月, 決算調整前金額 = s.SEI != null ? s.SEI.決算調整前金額 : 0, 決算調整見込金額 = s.SEI != null ? s.SEI.決算調整見込金額 : 0, 決算調整後金額 = urData.ContainsKey(s.対象年月) ? urData[s.対象年月] : (long?)null }); return(result.ToList()); } }
/// <summary> /// TKS11010 締日帳票CSV /// </summary> /// <param name="p商品ID">得意先コード</param> /// <returns>S02</returns> public List <TKS11010_Member_CSV> SEARCH_TKS11010_GetDataList_CSV(string p得意先From, string p得意先To, int?[] i得意先List, string p作成集金日, bool b全集金日, string p作成年, string p作成月, int 作成区分_CValue, int?集計, DateTime?d集計期間From, DateTime?d集計期間To) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { List <TKS11010_Member_CSV> retList = new List <TKS11010_Member_CSV>(); List <TKS11010_Member_CSV> queryList = new List <TKS11010_Member_CSV>(); context.Connection.Open(); //支払先指定 表示用 string 得意先指定表示 = string.Empty; //サイト計算 var query2 = (from m01 in context.M01_TOK.Where(m01 => m01.削除日付 == null && m01.親子区分ID != 3) select new TKS11010_Member2 { 得意先ID = m01.得意先ID, 得意先名 = m01.略称名, 得意先KEY = m01.得意先KEY, サイト = m01.Tサイト日, 締日 = m01.T締日, 集金日 = m01.T集金日, 親子区分ID = m01.親子区分ID, 作成年月 = 集計 ?? 0, }).ToList(); DateTime d集計年月 = DateTime.Now; for (int i = 0; i < query2.Count; i++) { if (DateTime.TryParse(((p作成年).ToString() + "/" + (p作成月).ToString() + "/" + "01"), out d集計年月)) { query2[i].年月 = ((d集計年月.AddMonths(Convert.ToInt32(-query2[i].サイト)).Year) * 100) + (d集計年月.AddMonths(Convert.ToInt32(-query2[i].サイト)).Month); } ; } ; var query = (from q01 in query2 join v01 in context.S01_TOKS on new { q01.得意先KEY, nen = q01.年月 } equals new { v01.得意先KEY, nen = v01.集計年月 } into v01Group join nyukin in context.S01_TOKS on new { q01.得意先KEY, nen = q01.作成年月 } equals new { nyukin.得意先KEY, nen = nyukin.集計年月 } into nyukinGroup select new TKS11010_Member_CSV { 得意先コード = q01.得意先ID, 得意先名 = q01.得意先名, 親子区分ID = q01.親子区分ID == 0 ? "" : q01.親子区分ID == 1 ? "親" : q01.親子区分ID == 2 ? "親" : "子", 集金日 = q01.集金日 == null ? 0 : q01.集金日, サイト = q01.サイト == null ? 0 : q01.サイト, 売上金額 = v01Group.Sum(v01g => v01g.締日売上金額), 内課税額 = v01Group.Sum(v01g => v01g.締日課税売上), 消費税 = v01Group.Sum(v01g => v01g.締日消費税), 通行料 = v01Group.Sum(v01g => v01g.締日通行料), 回収予定額 = v01Group.Sum(v01g => v01g.締日売上金額 + v01g.締日通行料 + v01g.締日消費税), 請求年月 = null, 締日 = q01.締日 == null ? 0 : q01.締日, 当月入金額 = nyukinGroup.Sum(c => c.締日入金現金 + c.締日入金手形), 入金調整額 = nyukinGroup.Sum(c => c.締日入金その他), 入金合計額 = nyukinGroup.Sum(c => c.締日入金現金 + c.締日入金手形 + c.締日入金その他), 集計年月 = q01.年月, 全集金日 = p作成集金日 == string.Empty ? "全集金日" : p作成集金日, 対象年月 = d集計期間From, 表示区分 = 作成区分_CValue == 0 ? "(回収予定あり得意先のみ)" : 作成区分_CValue == 1 ? "(回収予定無し得意先含む)" : "", }).AsQueryable(); if (!(string.IsNullOrEmpty(p得意先From + p得意先To) && i得意先List.Length == 0)) { //得意先が検索対象に入っていない時全データ取得 if (string.IsNullOrEmpty(p得意先From + p得意先To)) { query = query.Where(c => c.得意先コード >= int.MaxValue); } //得意先From処理 Min値 if (!string.IsNullOrEmpty(p得意先From)) { int i支払先FROM = AppCommon.IntParse(p得意先From); query = query.Where(c => c.得意先コード >= i支払先FROM); } //得意先To処理 Max値 if (!string.IsNullOrEmpty(p得意先To)) { int i支払先TO = AppCommon.IntParse(p得意先To); query = query.Where(c => c.得意先コード <= i支払先TO); } //全締日集計処理 if (b全集金日 == true) { query = query.Where(c => c.集金日 >= 1 && c.集金日 <= 31); } //締日処理 if (!string.IsNullOrEmpty(p作成集金日)) { int?p変換作成締日 = AppCommon.IntParse(p作成集金日); query = query.Where(c => c.集金日 == p変換作成締日); } if (i得意先List.Length > 0) { var intCause = i得意先List; query = query.Union(from q01 in query2 join v01 in context.S01_TOKS on new { q01.得意先KEY, nen = q01.年月 } equals new { v01.得意先KEY, nen = v01.集計年月 } into v01Group join nyukin in context.S01_TOKS on new { q01.得意先KEY, nen = q01.作成年月 } equals new { nyukin.得意先KEY, nen = nyukin.集計年月 } into nyukinGroup where intCause.Contains(q01.得意先ID) select new TKS11010_Member_CSV { 得意先コード = q01.得意先ID, 得意先名 = q01.得意先名, 親子区分ID = q01.親子区分ID == 0 ? "" : q01.親子区分ID == 1 ? "親" : q01.親子区分ID == 2 ? "親" : "子", 集金日 = q01.集金日 == null ? 0 : q01.集金日, サイト = q01.サイト == null ? 0 : q01.サイト, 売上金額 = v01Group.Sum(v01g => v01g.締日売上金額), 内課税額 = v01Group.Sum(v01g => v01g.締日課税売上), 消費税 = v01Group.Sum(v01g => v01g.締日消費税), 通行料 = v01Group.Sum(v01g => v01g.締日通行料), 回収予定額 = v01Group.Sum(v01g => v01g.締日売上金額 + v01g.締日通行料 + v01g.締日消費税), 請求年月 = null, 締日 = q01.締日 == null ? 0 : q01.締日, 当月入金額 = nyukinGroup.Sum(c => c.締日入金現金 + c.締日入金手形), 入金調整額 = nyukinGroup.Sum(c => c.締日入金その他), 入金合計額 = nyukinGroup.Sum(c => c.締日入金現金 + c.締日入金手形 + c.締日入金その他), 集計年月 = q01.年月, 全集金日 = p作成集金日 == string.Empty ? "全集金日" : p作成集金日, 対象年月 = d集計期間From, 表示区分 = 作成区分_CValue == 0 ? "(回収予定あり得意先のみ)" : 作成区分_CValue == 1 ? "(回収予定無し得意先含む)" : "", }).AsQueryable(); //全締日集計処理 if (b全集金日 == true) { query = query.Where(c => c.集金日 >= 1 && c.集金日 <= 31); } //締日処理 if (!string.IsNullOrEmpty(p作成集金日)) { int?p変換作成締日 = AppCommon.IntParse(p作成集金日); query = query.Where(c => c.集金日 == p変換作成締日); } } } else { //得意先From処理 Min値 if (string.IsNullOrEmpty(p得意先From)) { query = query.Where(c => c.得意先コード >= int.MinValue); } //得意先To処理 Max値 if (string.IsNullOrEmpty(p得意先To)) { query = query.Where(c => c.得意先コード <= int.MaxValue); } //全締日集計処理 if (b全集金日 == true) { query = query.Where(c => c.集金日 >= 1 && c.集金日 <= 31); } //締日処理 if (!string.IsNullOrEmpty(p作成集金日)) { int?p変換作成締日 = AppCommon.IntParse(p作成集金日); query = query.Where(c => c.集金日 == p変換作成締日); } } //内訳別表示処理 //売上あり:0 //売上なし:1 switch (作成区分_CValue) { //支払取引全体 case 0: query = query.Where(c => c.回収予定額 != 0); break; //支払先 case 1: //query = query.Where(c => c.回収予定額 >= 0); break; default: break; } //支払先指定の表示 if (i得意先List.Length > 0) { for (int i = 0; i < query.Count(); i++) { 得意先指定表示 = 得意先指定表示 + i得意先List[i].ToString(); if (i < i得意先List.Length) { if (i == i得意先List.Length - 1) { break; } 得意先指定表示 = 得意先指定表示 + ","; } if (i得意先List.Length == 1) { break; } } } List <TKS11010_Member_CSV> queryLIST = new List <TKS11010_Member_CSV>(); queryLIST = query.ToList(); for (int i = 0; i < queryLIST.Count(); i++) { if (queryLIST[i].請求年月 == null) { if (queryLIST[i].サイト != null) { DateTime Wk; Wk = DateTime.TryParse(p作成年 + "/" + p作成月 + "/" + "01", out Wk) ? Wk : DateTime.Today; DateTime dtBirth = Wk; dtBirth = dtBirth.AddMonths(Convert.ToInt32(-queryLIST[i].サイト)); queryLIST[i].請求年月 = dtBirth; } } } return(queryLIST.ToList()); } }
/// <summary> /// M14_GSYAの新規追加 /// </summary> /// <param name="m14gsya">M14_GSYA_Member</param> public int Update(int?pG車種ID, string pG車種名, string 略称名, decimal?CO2排出係数1, decimal?CO2排出係数2, int?事業用区分, int?ディーゼル区分, int?小型普通貨物区分, int?低公害者区分, bool pMaintenanceFlg, bool pGetNextNumber) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); if (pGetNextNumber) { pG車種ID = GetNextNumber(); } //更新行を特定 var ret = from x in context.M14_GSYA where (x.G車種ID == pG車種ID) orderby x.G車種ID select x; var data = ret.FirstOrDefault(); //更新 if (data == null) { M14_GSYA m14 = new M14_GSYA(); m14.G車種ID = (int)pG車種ID; m14.登録日時 = m14.登録日時; m14.更新日時 = m14.更新日時; m14.G車種名 = pG車種名; m14.略称名 = 略称名; m14.CO2排出係数1 = CO2排出係数1; m14.CO2排出係数2 = CO2排出係数2; m14.事業用区分 = 事業用区分; m14.ディーゼル区分 = ディーゼル区分; m14.小型普通区分 = 小型普通貨物区分; m14.低公害区分 = 低公害者区分; m14.削除日付 = null; //登録時、記述 context.M14_GSYA.ApplyChanges(m14); } //登録 else { if (pMaintenanceFlg) { return(-1); } data.G車種ID = (int)pG車種ID; data.登録日時 = DateTime.Now; data.G車種名 = pG車種名; data.略称名 = 略称名; data.CO2排出係数1 = CO2排出係数1; data.CO2排出係数2 = CO2排出係数2; data.事業用区分 = 事業用区分; data.ディーゼル区分 = ディーゼル区分; data.小型普通区分 = 小型普通貨物区分; data.低公害区分 = 低公害者区分; data.削除日付 = null; //更新時、記述 data.AcceptChanges(); } //データベースへの最終登録 context.SaveChanges(); } return(1); }
/// <summary> /// 自社部門マスタ一覧検索データ取得 /// </summary> /// <returns></returns> public List <M71_BUM_Member> GetSearchDataForList(string 自社部門コードFROM, string 自社部門コードTO, int[] i自社部門IDList, string 表示方法) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var ret = (from m71 in context.M71_BUM where m71.削除日付 == null select new M71_BUM_Member { 自社部門ID = m71.自社部門ID, 登録日時 = m71.登録日時, 更新日時 = m71.更新日時, 自社部門名 = m71.自社部門名, かな読み = m71.かな読み, 法人ナンバー = m71.法人ナンバー, }).AsQueryable(); if (!(string.IsNullOrEmpty(自社部門コードFROM + 自社部門コードTO) && i自社部門IDList.Length == 0)) { if (string.IsNullOrEmpty(自社部門コードFROM + 自社部門コードTO)) { ret = ret.Where(c => c.自社部門ID >= int.MaxValue); } if (!string.IsNullOrEmpty(自社部門コードFROM)) { int i自社部門コードFROM = AppCommon.IntParse(自社部門コードFROM); ret = ret.Where(c => c.自社部門ID >= i自社部門コードFROM); } if (!string.IsNullOrEmpty(自社部門コードTO)) { int i自社部門コードTO = AppCommon.IntParse(自社部門コードTO); ret = ret.Where(c => c.自社部門ID <= i自社部門コードTO); } if (i自社部門IDList.Length > 0) { var intCause = i自社部門IDList; ret = ret.Union(from m71 in context.M71_BUM where m71.削除日付 == null && intCause.Contains(m71.自社部門ID) select new M71_BUM_Member { 自社部門ID = m71.自社部門ID, 登録日時 = m71.登録日時, 更新日時 = m71.更新日時, 自社部門名 = m71.自社部門名, かな読み = m71.かな読み, 法人ナンバー = m71.法人ナンバー, }); } } ret = ret.Distinct(); if (表示方法 == "0") { ret.OrderBy(c => c.自社部門ID); } else { ret.OrderBy(c => c.かな読み); } return(ret.ToList()); } }
/// <summary> /// S01_TOKSの更新 /// </summary> /// <param name="s01toks">S01_TOKS_Member</param> public void Update(S01_TOKS_Member s01toks) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { // トランザクションのインスタンス化(開始) using (var tran = new TransactionScope()) { context.Connection.Open(); //更新行を特定 var ret = from x in context.S01_TOKS where (x.得意先KEY == (from tok in context.M01_TOK where tok.得意先ID == s01toks.得意先KEY select tok.得意先KEY).FirstOrDefault() && x.集計年月 == s01toks.集計年月 && x.回数 == s01toks.回数) select x; var s01 = ret.FirstOrDefault(); if ((s01 != null)) { s01.得意先KEY = (from tok in context.M01_TOK where tok.得意先ID == s01toks.得意先KEY select tok.得意先KEY).FirstOrDefault(); s01.集計年月 = s01toks.集計年月; s01.回数 = s01toks.回数; s01.登録日時 = s01toks.登録日時; s01.更新日時 = s01toks.更新日時; s01.締集計開始日 = s01toks.締集計開始日; s01.締集計終了日 = s01toks.締集計終了日; s01.締日前月残高 = s01toks.締日前月残高; s01.締日入金現金 = s01toks.締日入金現金; s01.締日入金手形 = s01toks.締日入金手形; s01.締日入金その他 = s01toks.締日入金その他; s01.締日売上金額 = s01toks.締日売上金額; s01.締日通行料 = s01toks.締日通行料; s01.締日課税売上 = s01toks.締日課税売上; s01.締日非課税売上 = s01toks.締日非課税売上; s01.締日消費税 = s01toks.締日消費税; s01.締日内傭車売上 = s01toks.締日内傭車売上; s01.締日内傭車料 = s01toks.締日内傭車料; s01.締日未定件数 = s01toks.締日未定件数; s01.締日件数 = s01toks.締日件数; s01.締日 = s01toks.締日; s01.AcceptChanges(); } else { context.S01_TOKS.AddObject( new S01_TOKS() { 得意先KEY = (from tok in context.M01_TOK where tok.得意先ID == s01toks.得意先KEY select tok.得意先KEY).FirstOrDefault(), 集計年月 = s01toks.集計年月, 回数 = s01toks.回数, 登録日時 = s01toks.登録日時, 更新日時 = s01toks.更新日時, 締集計開始日 = s01toks.締集計開始日, 締集計終了日 = s01toks.締集計終了日, 締日前月残高 = s01toks.締日前月残高, 締日入金現金 = s01toks.締日入金現金, 締日入金手形 = s01toks.締日入金手形, 締日入金その他 = s01toks.締日入金その他, 締日売上金額 = s01toks.締日売上金額, 締日通行料 = s01toks.締日通行料, 締日課税売上 = s01toks.締日課税売上, 締日非課税売上 = s01toks.締日非課税売上, 締日消費税 = s01toks.締日消費税, 締日内傭車売上 = s01toks.締日内傭車売上, 締日内傭車料 = s01toks.締日内傭車料, 締日未定件数 = s01toks.締日未定件数, 締日件数 = s01toks.締日件数, 締日 = s01toks.締日, } ); context.SaveChanges(); //var p2 = (from x in context.S01_TOKS where x.得意先KEY == s01toks.得意先KEY && x.集計年月 == s01toks.集計年月 && x.回数 == s01toks.回数 select x.得意先KEY).FirstOrDefault(); //s01toks.得意先KEY = p2; } context.SaveChanges(); tran.Complete(); } } }
/// <summary> /// M71_BUMのデータ取得 /// </summary> /// <param name="p自社ID">自社ID</param> /// <returns>M71_BUM_Member</returns> public List <M71_BUM_Member> GetData(int?p自社部門ID, int pオプションコード) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var query = (from m71 in context.M71_BUM //where m71.削除日付 == null select new M71_BUM_Member { 自社部門ID = m71.自社部門ID, 登録日時 = m71.登録日時, 更新日時 = m71.更新日時, 自社部門名 = m71.自社部門名, かな読み = m71.かな読み, 法人ナンバー = m71.法人ナンバー, 削除日付 = m71.削除日付, }).AsQueryable(); //データが1件もない状態で<< < > >>を押された時の処理 if ((p自社部門ID == null || p自社部門ID == 0) && query.Where(c => c.削除日付 == null).Count() == 0) { return(null); } if (p自社部門ID != null) { if (p自社部門ID == -1) { //全件取得 return(query.ToList()); } if (pオプションコード == 0) { query = query.Where(c => c.自社部門ID == p自社部門ID); } else if (pオプションコード == -1) { //p車種IDの1つ前のIDを取得 query = query.Where(c => (c.削除日付 == null)); query = query.Where(c => c.自社部門ID < p自社部門ID); if (query.Count() >= 2) { query = query.Where(c => c.自社部門ID < p自社部門ID); } query = query.OrderByDescending(c => c.自社部門ID); } else { //p車種IDの1つ後のIDを取得 query = query.Where(c => (c.削除日付 == null)); query = query.Where(c => c.自社部門ID > p自社部門ID); if (query.Count() >= 2) { query = query.Where(c => c.自社部門ID > p自社部門ID); } query = query.OrderBy(c => c.自社部門ID); } } else { if (pオプションコード == 0) { query = query.Where(c => (c.削除日付 == null)); //車種IDの先頭のIDを取得 query = query.OrderBy(c => c.自社部門ID); } else if (pオプションコード == 1) { query = query.Where(c => (c.削除日付 == null)); //車種IDの最後のIDを取得 query = query.OrderByDescending(c => c.自社部門ID); } else { //pオプションコード == 2 query = query.Where(c => (c.削除日付 == null)); query = query.OrderBy(c => c.自社部門ID < p自社部門ID + 1); } } var ret = query.FirstOrDefault(); List <M71_BUM_Member> result = new List <M71_BUM_Member>(); if (ret != null) { result.Add(ret); } return(query.ToList()); } }
/// <summary> /// 出力情報を取得する /// </summary> /// <param name="paramDic"></param> /// <returns></returns> public List <BSK09010_PrintMember> GetPrintList(Dictionary <string, string> paramDic) { // パラメータ展開 int yearMonth = int.Parse(paramDic["対象年月"].Replace("/", "")); using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); var baseList = context.M01_TOK .Where(w => w.削除日時 == null && w.取引区分 == (int)CommonConstants.取引区分.相殺) .GroupJoin(context.S01_SEIHD.Where(w => w.請求年月 == yearMonth), x => new { c = x.取引先コード, e = x.枝番 }, y => new { c = y.請求先コード, e = y.請求先枝番 }, (x, y) => new { x, y }) .SelectMany(z => z.y.DefaultIfEmpty(), (a, b) => new { TOK = a.x, SEI = b }) .GroupJoin(context.S02_SHRHD.Where(w => w.支払年月 == yearMonth), x => new { c = x.TOK.取引先コード, e = x.TOK.枝番 }, y => new { c = y.支払先コード, e = y.支払先枝番 }, (x, y) => new { x, y }) .SelectMany(z => z.y.DefaultIfEmpty(), (c, d) => new { c.x.TOK, c.x.SEI, SHR = d }) .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null), x => x.SEI.自社コード, y => y.自社コード, (x, y) => new { x, y }) .SelectMany(z => z.y.DefaultIfEmpty(), (e, f) => new { e.x.TOK, e.x.SEI, e.x.SHR, JIS = f }) .Where(w => w.SEI != null && w.SHR != null) .Select(s => new { s.JIS.自社コード, // No.227,228 Add s.JIS.自社名, // No.227,228 Add s.TOK.取引先コード, s.TOK.枝番, 取引先名 = s.TOK.略称名, // No.229 Mod s.SEI.入金日, s.SHR.支払日, s.SEI.当月請求額, 支払予定額 = s.SHR.支払額 + s.SHR.消費税 }); DateTime wdt; var resultList = baseList .ToList() .Select(s => new BSK09010_PrintMember { 自社コード = s.自社コード, 自社名 = s.自社名, 得意先コード = string.Format("{0:D4} - {0:D2}", s.取引先コード, s.枝番), // No.223 Mod 得意先名 = s.取引先名, 入金日 = DateTime.TryParseExact(s.入金日.ToString(), "yyyyMMdd", null, DateTimeStyles.None, out wdt) ? wdt.ToShortDateString() : DateTime.Now.ToShortDateString(), // No-168 Mod 支払日 = DateTime.TryParseExact(s.支払日.ToString(), "yyyyMMdd", null, DateTimeStyles.None, out wdt) ? wdt.ToShortDateString() : DateTime.Now.ToShortDateString(), // No-168 Mod 請求予定額 = s.当月請求額, 支払予定額 = s.支払予定額, 相殺請求予定額 = s.当月請求額 - s.支払予定額 }); return(resultList.ToList()); } }
/// <summary> /// 売上明細問い合わせリスト取得 /// </summary> /// <param name="p検索日付From">検索日付From(未選択の場合はnull)</param> /// <param name="p検索日付To">検索日付To(未選択の場合はnull)</param> /// <param name="p検索日付区分">検索日付区分</param> /// <param name="p売上未定区分">売上未定区分(0:全件 1:未定のみ 2:確定のみ 3:金額が未入力のみ)</param> /// <returns>DLY13010_Memberのリスト</returns> public DLY13010_DATASET GetListDLY13010(int?p担当者ID, int?p車輌ID, int?p乗務員ID , DateTime?p検索日付From, DateTime?p検索日付To, int p検索日付区分 , int?p自社部門ID, int?p売上未定区分 , string p商品名, string p発地名, string p着地名, string p請求摘要, string p社内備考 , string 表示順指定0, string 表示順指定1, string 表示順指定2, string 表示順指定3, string 表示順指定4, string 自社部門Value , int p乗務員FROM, int p乗務員TO , int p車輌FROM, int p車輌TO , int?[] p乗務員 , int?[] p車輌 ) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); DLY13010_DATASET result = new DLY13010_DATASET(); var query = (from t02 in context.T02_UTRN.Where(x => x.明細行 == 1) from m04 in context.M04_DRV.Where(x => x.乗務員KEY == t02.乗務員KEY).DefaultIfEmpty() from m05 in context.M05_CAR.Where(x => x.車輌KEY == t02.車輌KEY).DefaultIfEmpty() from m78 in context.M78_SYK.Where(x => x.出勤区分ID == t02.出勤区分ID).DefaultIfEmpty() where (p担当者ID == null || p担当者ID == 0 || t02.入力者ID == p担当者ID) && (p自社部門ID == null || p自社部門ID == 0 || t02.自社部門ID == p自社部門ID) && (p車輌ID == null || p車輌ID == 0 || m05.車輌ID == p車輌ID) select new DLY13010_Member { 出庫日付 = t02.実運行日開始, 帰庫日付 = t02.実運行日終了, 出勤区分 = m78.出勤区分名, 出社時間 = t02.出庫時間 == null ? 0 : t02.出庫時間, 退社時間 = t02.帰庫時間 == null ? 0 : t02.帰庫時間, 自社部門ID = t02.自社部門ID, 乗務員ID = m04.乗務員ID, 運転者名 = m04.乗務員名, 車輌ID = m05.車輌ID, 車輌番号 = t02.車輌番号, 車種ID = t02.車種ID, 拘束時間 = (decimal)t02.拘束時間 == null ? 0 : (decimal)t02.拘束時間, 運転時間 = (decimal)t02.運転時間 == null ? 0 : (decimal)t02.運転時間, 作業時間 = (decimal)t02.作業時間 == null ? 0 : (decimal)t02.作業時間, 待機時間 = (decimal)t02.待機時間 == null ? 0 : (decimal)t02.待機時間, 休憩時間 = (decimal)t02.休憩時間 == null ? 0 : (decimal)t02.休憩時間, 残業時間 = (decimal)t02.残業時間 == null ? 0 : (decimal)t02.残業時間, 深夜時間 = (decimal)t02.深夜時間 == null ? 0 : (decimal)t02.深夜時間, 走行km = t02.走行KM == null ? 0 : t02.走行KM, 実車km = t02.実車KM == null ? 0 : t02.実車KM, 輸送屯数 = t02.輸送屯数 == null ? 0 : t02.輸送屯数, 出庫km = t02.出庫KM == null ? 0 : t02.出庫KM, 帰庫km = t02.帰庫KM == null ? 0 : t02.帰庫KM, 明細番号 = t02.明細番号, 明細行 = t02.明細行, 明細区分 = t02.明細区分, 入力区分 = t02.入力区分, s入力区分 = t02.入力区分 == 1 ? "運転日報" : t02.入力区分 == 2 ? "日報入力" : "", 検索日付From = p検索日付From, 検索日付To = p検索日付To, 部門指定 = 自社部門Value, 表示順序 = 表示順指定0 + " ," + 表示順指定1 + " ," + 表示順指定2 + " ," + 表示順指定3 + " ," + 表示順指定4, }).Distinct().AsQueryable(); List <DLY13010_Member> ret = null; if (p車輌ID != null || p乗務員ID != null || p検索日付From != null || p検索日付To != null) { //車輌検索 if (p車輌ID != null) { query = query.Where(c => c.車輌ID == p車輌ID); } //乗員検索 if (p乗務員ID != null) { query = query.Where(c => c.乗務員ID == p乗務員ID); } //d適用開始日Fromの値がNULLの時 if (p検索日付From != null) { query = query.Where(c => c.出庫日付 >= p検索日付From); } //d適用開始日Fromの値がNULLの時 if (p検索日付To != null) { query = query.Where(c => c.出庫日付 <= p検索日付To); } //d適用開始日From、d適用開始日Toの値がある時 if (p検索日付From != null && p検索日付To != null) { query = query.Where(c => c.出庫日付 >= p検索日付From && c.出庫日付 <= p検索日付To); } ret = query.ToList(); } else { ret = query.ToList(); } // コードの範囲指定での絞り込み if (p乗務員FROM >= 0) { ret = query.Where(x => x.乗務員ID >= p乗務員FROM).ToList(); } if (p乗務員TO >= 0) { ret = query.Where(x => x.乗務員ID <= p乗務員TO).ToList(); } if (p車輌FROM >= 0) { ret = query.Where(x => x.車輌ID >= p車輌FROM).ToList(); } if (p車輌TO >= 0) { ret = query.Where(x => x.車輌ID <= p車輌TO).ToList(); } // コード一覧の絞込み if (p乗務員.Length > 0) { ret = query.Where(x => p乗務員.Contains(x.乗務員ID)).ToList(); } if (p車輌.Length > 0) { ret = query.Where(x => p車輌.Contains(x.車輌ID)).ToList(); } result.DataList = ret.ToList(); return(result); //合計計算処理 //result.TotalList.Add(new DLY13010_TOTAL_Member()); //foreach (var rec in result.DataList) //{ //result.TotalList[0].現金通行料合計 += rec.売上金額; //result.TotalList[0].プレート合計 += rec.通行料; //result.TotalList[0].フェリー代合計 += rec.支払金額; //result.TotalList[0].電話代合計 += rec.支払通行料; //result.TotalList[0].稼動金額合計 += (rec.売上金額 + rec.通行料) - (rec.支払金額 + rec.支払通行料); //} } }
/// <summary> /// 請求一覧検索情報取得 /// </summary> /// <param name="condition"> /// == 検索条件 == /// 自社コード /// 作成年月日 /// 作成年月 /// 作成締日 /// 得意先コード /// 得意先枝番 /// </param> /// <returns></returns> public List <SearchDataMember> GetDataList(Dictionary <string, string> condition) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { try { // パラメータの型変換 int ival; int myCompany = int.Parse(condition["自社コード"]); int createYM = int.Parse(condition["作成年月"].Replace("/", "")); int?closingDate = int.TryParse(condition["作成締日"], out ival) ? ival : (int?)null; int?customerCd = int.TryParse(condition["得意先コード"], out ival) ? ival : (int?)null; int?customerEda = int.TryParse(condition["得意先枝番"], out ival) ? ival : (int?)null; var result = context.S01_SEIHD .Where(w => w.自社コード == myCompany && w.請求年月 == createYM && (closingDate == null || w.請求締日 == closingDate)) .Join(context.M01_TOK.Where(w => w.削除日時 == null), x => new { コード = x.請求先コード, 枝番 = x.請求先枝番 }, y => new { コード = y.取引先コード, 枝番 = y.枝番 }, (x, y) => new { x, y }) .Select(x => new { SEIHD = x.x, TOK = x.y }) .OrderBy(o => o.SEIHD.請求年月日) .ThenBy(t => t.SEIHD.請求先コード) .ThenBy(t => t.SEIHD.請求先枝番) .ToList(); // 取引先の指定があれば条件を追加 if (customerCd != null && customerEda != null) { result = result.Where(w => w.SEIHD.請求先コード == customerCd && w.SEIHD.請求先枝番 == customerEda) .ToList(); } else if (customerCd != null) { result = result.Where(w => w.SEIHD.請求先コード == customerCd) .ToList(); } // 返却用にデータを整形 var dataList = result.Select(x => new SearchDataMember { 印刷区分 = true, ID = string.Format("{0:D4} - {1:D2}", x.SEIHD.請求先コード, x.SEIHD.請求先枝番), // No.223 Add 自社コード = x.SEIHD.自社コード, 締日 = x.SEIHD.請求締日, 請求年月 = x.SEIHD.請求年月, 得意先コード = x.SEIHD.請求先コード, 得意先枝番 = x.SEIHD.請求先枝番, 得意先名 = x.TOK.略称名, 回数 = x.SEIHD.回数, 集計期間 = string.Format("{0:yyyy/MM/dd}~{1:yyyy/MM/dd}", x.SEIHD.集計開始日, x.SEIHD.集計最終日), 当月請求額 = x.SEIHD.当月請求額, 郵便番号 = x.TOK.郵便番号, 住所1 = x.TOK.住所1, 住所2 = x.TOK.住所2, 電話番号 = x.TOK.電話番号, 入金日 = x.SEIHD.入金日 }) .ToList(); return(dataList.ToList()); } catch (System.ArgumentException agex) { throw agex; } catch (Exception ex) { throw ex; } } }
public List <MasterList_Member> GetMasterList(string param) { List <MasterList_Member> result = new List <MasterList_Member>(); using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { string selsts = UnselectedChar; context.Connection.Open(); switch (param) { //case "得意先": // result = (from mst in context.M01_TOK // where mst.取引区分 == 0 || mst.取引区分 == 1 // && mst.削除日付 == null // orderby mst.得意先ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.得意先ID, // 表示名 = mst.得意先名1, // } // ).ToList(); // break; //case "支払先": // result = (from mst in context.M01_TOK // where mst.取引区分 == 0 || mst.取引区分 == 2 // && mst.削除日付 == null // orderby mst.得意先ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.得意先ID, // 表示名 = mst.得意先名1, // } // ).ToList(); // break; //case "仕入先": // result = (from mst in context.M01_TOK // where mst.取引区分 == 0 || mst.取引区分 == 3 // && mst.削除日付 == null // orderby mst.得意先ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.得意先ID, // 表示名 = mst.得意先名1, // } // ).ToList(); // break; case "乗務員": result = (from mst in context.M04_DRV where mst.削除日付 == null orderby mst.乗務員ID select new MasterList_Member { 選択 = selsts, コード = mst.乗務員ID, 表示名 = mst.乗務員名, } ).ToList(); break; case "車輌": result = (from mst in context.M05_CAR where mst.削除日付 == null orderby mst.車輌ID select new MasterList_Member { 選択 = selsts, コード = mst.車輌ID, 表示名 = mst.車輌番号, } ).ToList(); break; //case "車種": // result = (from mst in context.M06_SYA // where mst.削除日付 == null // orderby mst.車種ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.車種ID, // 表示名 = mst.車種名, // } // ).ToList(); // break; //case "発地": // result = (from mst in context.M08_TIK // where mst.削除日付 == null // orderby mst.発着地ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.発着地ID, // 表示名 = mst.発着地名, // }).ToList(); // break; //case "着地": // result = (from mst in context.M08_TIK // where mst.削除日付 == null // orderby mst.発着地ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.発着地ID, // 表示名 = mst.発着地名, // } // ).ToList(); // break; //case "商品": // result = (from mst in context.M09_HIN // where mst.削除日付 == null // orderby mst.商品ID // select new MasterList_Member // { // 選択 = selsts, // コード = mst.商品ID, // 表示名 = mst.商品名, // } // ).ToList(); // break; } } return(result); }
/// <summary> /// 請求データ削除 /// </summary> /// <param name="condition"></param> /// <param name="ds"></param> /// <returns></returns> public bool DataDelete(DataSet ds) { DataTable tbl = ds.Tables[0]; using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { foreach (DataRow row in tbl.Rows) { SearchDataMember mem = getSearchDataMemberRow(row); if (mem.印刷区分 == false) { //印刷区分falseは削除対象外 continue; } var delList = context.S01_SEIDTL .Where(w => w.自社コード == mem.自社コード && w.請求年月 == mem.請求年月 && w.請求締日 == mem.締日 && w.請求先コード == mem.得意先コード && w.請求先枝番 == mem.得意先枝番 && w.入金日 == mem.入金日 && w.回数 == mem.回数); foreach (var delData in delList) { context.S01_SEIDTL.DeleteObject(delData); } var delHead = context.S01_SEIHD .Where(w => w.自社コード == mem.自社コード && w.請求年月 == mem.請求年月 && w.請求締日 == mem.締日 && w.請求先コード == mem.得意先コード && w.請求先枝番 == mem.得意先枝番 && w.入金日 == mem.入金日 && w.回数 == mem.回数); foreach (var del in delHead) { context.S01_SEIHD.DeleteObject(del); } } context.SaveChanges(); } catch { tran.Rollback(); throw; } tran.Commit(); } } return(true); }
/// <summary> /// セット品番マスタ登録処理 /// </summary> /// <param name="ds"> /// データセット /// [0:updTbl]登録・更新対象のデータテーブル /// [1:delTbl]削除対象のデータテーブル /// </param> public void Update(DataSet ds, int loginUserId) { using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString())) { context.Connection.Open(); // データ登録・更新 DataTable updTbl = ds.Tables["MST10011_GetData"]; Dictionary <string, List <DataRow> > dicSetProducts = new Dictionary <string, List <DataRow> >(); string strKey = string.Empty; List <DataRow> hinList = new List <DataRow>(); foreach (DataRow rw in updTbl.Rows) { strKey = rw["セット品番"].ToString() + "_" + rw["色"].ToString(); if (dicSetProducts.Keys.Contains(strKey)) { hinList.Add(rw); dicSetProducts[strKey] = hinList; } else { hinList = new List <DataRow>(); hinList.Add(rw); dicSetProducts.Add(strKey, hinList); } } foreach (string key in dicSetProducts.Keys) { List <DataRow> kouseihinList = dicSetProducts[key]; M09_HIN hinban = null; for (int i = 0; i < kouseihinList.Count; i++) { DataRow rw = kouseihinList[i]; string strJishaHinban = rw["セット品番"].ToString(); string strIro = string.IsNullOrEmpty(rw["色"].ToString()) ? null : rw["色"].ToString(); if (i == 0) { if (strIro == null) { hinban = context.M09_HIN.Where(c => c.自社品番 == strJishaHinban && c.自社色 == null).FirstOrDefault(); } else { hinban = context.M09_HIN.Where(c => c.自社品番 == strJishaHinban && c.自社色 == strIro).FirstOrDefault(); } if (hinban == null) { continue; } var delData = context.M10_SHIN.Where(w => w.品番コード == hinban.品番コード).ToList(); if (delData != null) { foreach (M10_SHIN dtl in delData) { context.M10_SHIN.DeleteObject(dtl); } context.SaveChanges(); } } string strKoseiHinban = rw["構成品番"].ToString(); string strKoseiIro = string.IsNullOrEmpty(rw["構成品色"].ToString()) ? null : rw["構成品色"].ToString(); M09_HIN koseihinban = null; if (strKoseiIro == null) { koseihinban = context.M09_HIN.Where(c => c.自社品番 == strKoseiHinban && c.自社色 == null).FirstOrDefault(); } else { koseihinban = context.M09_HIN.Where(c => c.自社品番 == strKoseiHinban && c.自社色 == strKoseiIro).FirstOrDefault(); } if (koseihinban == null) { continue; } M10_SHIN addHin = new M10_SHIN(); addHin.品番コード = hinban.品番コード; addHin.部品行 = i + 1; addHin.構成品番コード = koseihinban.品番コード; addHin.使用数量 = int.Parse(rw["使用数量"].ToString()); addHin.登録者 = loginUserId; addHin.登録日時 = DateTime.Now; addHin.最終更新者 = loginUserId; addHin.最終更新日時 = DateTime.Now; context.M10_SHIN.AddObject(addHin); } } context.SaveChanges(); } }