Ejemplo n.º 1
0
        /// <summary>
        /// 在庫参照データを取得する
        /// </summary>
        /// <param name="stockpileCode"></param>
        /// <param name="paramDic"></param>
        /// <returns></returns>
        public List <Search_S03_STOK> GetData(int stockpileCode, Dictionary <string, string> paramDic)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                DateTime maxDate = AppCommon.GetMaxDate();

                var result =
                    context.S03_STOK
                    .Where(w => w.削除日時 == null && w.庫コード == stockpileCode)
                    .Join(context.V_M09_HIN,
                          x => x.品番コード,
                          y => y.品番コード,
                          (x, y) => new { STOK = x, HIN = y })
                    .ToList()
                    .Select(x => new Search_S03_STOK
                {
                    品番コード = x.STOK.品番コード,
                    自社品番  = x.HIN.自社品番 ?? string.Empty,
                    自社品名  = x.HIN.自社品名 ?? string.Empty,
                    自社色名  = x.HIN.自社色名 ?? string.Empty,
                    賞味期限  = x.STOK.賞味期限 == maxDate ? (DateTime?)null : x.STOK.賞味期限,
                    在庫数   = x.STOK.在庫数,
                    ブランド名 = x.HIN.ブランド名 ?? string.Empty,
                    シリーズ名 = x.HIN.シリーズ名 ?? string.Empty,
                    品群名   = x.HIN.品群名 ?? string.Empty
                });

                #region 画面入力条件適用

                string productCode = paramDic["品番"],
                       productName = paramDic["品名"],
                       colorName   = paramDic["色名"],
                       brandName   = paramDic["ブランド"],
                       seriesName  = paramDic["シリーズ"],
                       hingunName  = paramDic["品群"];

                if (!string.IsNullOrEmpty(productCode))
                {
                    result = result.Where(x => x.自社品番.Contains(productCode));
                }

                if (!string.IsNullOrEmpty(productName))
                {
                    result = result.Where(x => x.自社品名.Contains(productName));
                }

                if (!string.IsNullOrEmpty(colorName))
                {
                    result = result.Where(x => x.自社色名.Contains(colorName));
                }

                if (!string.IsNullOrEmpty(brandName))
                {
                    result = result.Where(x => x.ブランド名.Contains(brandName));
                }

                if (!string.IsNullOrEmpty(seriesName))
                {
                    result = result.Where(x => x.シリーズ名.Contains(seriesName));
                }

                if (!string.IsNullOrEmpty(hingunName))
                {
                    result = result.Where(x => x.品群名.Contains(hingunName));
                }

                #endregion


                return(result.ToList());
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 移動入力情報を削除する
        /// </summary>
        /// <param name="ds">
        /// 移動データセット
        /// [0:T05_IDOHD、1:T05_IDODTL]
        /// </param>
        /// <param name="userId">ログインユーザID</param>
        /// <returns></returns>
        public void Delete(string slipNumber, int userId)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
                {
                    T05Service = new T05(context, userId);
                    S03Service = new S03(context, userId);
                    S04Service = new S04(context, userId, S04.機能ID.振替入力);

                    int number = 0;
                    if (int.TryParse(slipNumber, out number))
                    {
                        try
                        {
                            var idohd =
                                context.T05_IDOHD
                                .Where(x => x.削除日時 == null &&
                                       x.伝票番号 == number)
                                .FirstOrDefault();

                            var idodtl =
                                context.T05_IDODTL
                                .Where(x => x.削除日時 == null &&
                                       x.伝票番号 == number)
                                .ToList();

                            // 伝票データが存在しない場合は処理しない。
                            if (idodtl == null || idodtl.Count == 0)
                            {
                                return;
                            }

                            // 1>> ヘッダ情報削除
                            T05Service.T05_IDOHD_Delete(number);

                            // 2>> 明細情報削除
                            T05Service.T05_IDODTL_Delete(number);

                            // 3>> 在庫情報削除
                            #region 在庫調整

                            foreach (T05_IDODTL row in idodtl)
                            {
                                int souko = row.行番号 == 2 ? (int)idohd.出荷元倉庫コード : (int)idohd.出荷先倉庫コード;

                                // 対象データ設定
                                S03_STOK stok = new S03_STOK();
                                stok.庫コード  = souko;
                                stok.品番コード = row.品番コード;
                                stok.賞味期限  = AppCommon.DateTimeToDate(row.賞味期限, DateTime.MaxValue);
                                stok.在庫数   = row.行番号 == 2 ? row.数量 : row.数量 * (-1);

                                // 旧賞味期限の在庫を更新
                                S03Service.S03_STOK_Update(stok);

                                // 変更状態を確定
                                context.SaveChanges();
                            }

                            #endregion

                            // 4>> 入出庫データの物理削除
                            S04Service.PhysicalDeletionProductHistory(context, number, (int)S04.機能ID.振替入力);

                            // 変更状態を確定
                            context.SaveChanges();

                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                            throw ex;
                        }
                    }
                    else
                    {
                        throw new KeyNotFoundException("伝票番号が正しくありません");
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <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();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 品番から消費税計算をおこなう
        /// </summary>
        /// <param name="context"></param>
        /// <param name="salesDate">売上日</param>
        /// <param name="productCode">品番コード</param>
        /// <param name="price">単価</param>
        /// <param name="qty">数量</param>
        /// /// <param name="taxKbn">税区分ID</param>
        /// <param name="taxKbn">消費税区分[M01_TOK.T消費税区分(S支払消費税区分)] 1:一括、2:個別、3:請求無し</param>
        /// <returns></returns>
        public decimal CalculateTax(DateTime salesDate, int productCode, decimal price, decimal qty, int taxKbnId, int taxKbn)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                var hin =
                    context.M09_HIN
                    .Where(w => w.削除日時 == null && w.品番コード == productCode)
                    .FirstOrDefault();

                if (hin == null)
                {
                    return(0);
                }

                decimal conTax    = 0;
                decimal taxRate   = getTargetTaxRate(salesDate, hin.消費税区分 ?? 0);
                decimal calcValue = decimal.Multiply(price * qty, decimal.Divide(taxRate, 100m));

                if (taxKbn == (int)CommonConstants.消費税区分.ID03_請求無)
                {
                    return(conTax);
                }

                switch (taxKbnId)
                {
                case 1:
                    // 切捨て
                    if (calcValue > 0)
                    {
                        conTax += Math.Floor(calcValue);
                    }
                    else
                    {
                        conTax += Math.Ceiling(calcValue);
                    }
                    break;

                case 2:
                    // 四捨五入
                    conTax += Math.Round(calcValue, 0);
                    break;

                case 3:
                    // 切上げ
                    if (calcValue > 0)
                    {
                        conTax += Math.Ceiling(calcValue);
                    }
                    else
                    {
                        conTax += Math.Floor(calcValue);
                    }
                    break;

                default:
                    // 上記以外は税計算なしとする
                    break;
                }

                return(conTax);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 適正在庫問合せ検索情報取得
        /// </summary>
        /// <param name="p自社コード">画面指定の自社コード</param>
        /// <param name="p倉庫コード">画面指定の倉庫コード</param>
        /// <param name="cond">
        ///  == 検索条件 ==
        ///  自社品番(品番指定検索)
        ///  検索品名(品名Like検索)
        ///  商品分類
        ///  シリーズ
        ///  ブランド
        /// </param>
        /// <returns></returns>
        public List <SearchDataMember> GetDataList(string p自社コード, string p倉庫コード, Dictionary <string, string> cond)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                try
                {
                    int val = -1;

                    // 在庫基本情報
                    var stockList =
                        context.S03_STOK.Where(w => w.削除日時 == null)
                        .GroupBy(g => new { g.庫コード, g.品番コード })
                        .Select(s => new BaseStockMember
                    {
                        庫コード  = s.Key.庫コード,
                        品番コード = s.Key.品番コード,
                        在庫数量  = s.Sum(m => m.在庫数)
                    })
                        .Join(context.M09_HIN.Where(w => w.削除日時 == null),
                              x => x.品番コード,
                              y => y.品番コード,
                              (x, y) => new { STOK = x, HIN = y })
                        .ToList();

                    // 雑コードを除く商品
                    stockList = stockList.Where(w => w.HIN.商品形態分類 != (int)CommonConstants.商品形態分類.雑コード).ToList();

                    #region 入力項目による絞込
                    // 自社コードの条件チェック
                    if (!string.IsNullOrEmpty(p自社コード))
                    {
                        int n自社コード = Int32.TryParse(p自社コード, out val) ? val : -1;
                        var jis    =
                            context.M70_JIS
                            .Where(w => w.削除日時 == null && w.自社コード == n自社コード)
                            .FirstOrDefault();

                        // 自社倉庫、マルセン倉庫(xxx確保)の在庫を抽出
                        if (jis != null)
                        {
                            var soukList = context.M22_SOUK.Where(v =>
                                                                  v.削除日時 == null &&
                                                                  (v.寄託会社コード == n自社コード) ||
                                                                  (v.場所会社コード == n自社コード))
                                           .Select(s => s.庫コード).ToList();
                            stockList =
                                stockList.Where(w => soukList.Contains(w.STOK.庫コード)).ToList();
                        }
                    }

                    // 倉庫コードの条件チェック
                    if (!string.IsNullOrEmpty(p倉庫コード))
                    {
                        int n倉庫コード = Int32.TryParse(p倉庫コード, out val) ? val : -1;
                        stockList = stockList.Where(w => w.STOK.庫コード == n倉庫コード).ToList();
                    }

                    // 自社品番の条件チェック
                    string myProduct = cond["自社品番"];
                    if (!string.IsNullOrEmpty(myProduct))
                    {
                        stockList = stockList.Where(w => w.HIN.自社品番 == myProduct).ToList();
                    }

                    // 品名の条件チェック
                    string productName = cond["検索品名"];
                    if (!string.IsNullOrEmpty(productName))
                    {
                        stockList = stockList.Where(w => w.HIN.自社品名 != null && w.HIN.自社品名.Contains(productName)).ToList();
                    }

                    // 商品分類の条件チェック
                    int itemType;
                    if (int.TryParse(cond["商品分類"], out itemType))
                    {
                        if (itemType >= CommonConstants.商品分類.食品.GetHashCode())
                        {
                            stockList = stockList.Where(w => w.HIN.商品分類 == itemType).ToList();
                        }
                    }

                    // ブランドの条件チェック
                    string brand = cond["ブランド"];
                    if (!string.IsNullOrEmpty(brand))
                    {
                        stockList = stockList.Where(w => w.HIN.ブランド == brand).ToList();
                    }

                    // シリーズの条件チェック
                    string series = cond["シリーズ"];
                    if (!string.IsNullOrEmpty(series))
                    {
                        stockList = stockList.Where(w => w.HIN.シリーズ == series).ToList();
                    }

                    #endregion

                    // 検索データ取得
                    var dataList =
                        stockList
                        .GroupJoin(context.S03_STOK_JUST,
                                   x => new { soukCd = x.STOK.庫コード, hinCd = x.STOK.品番コード },
                                   y => new { soukCd = y.庫コード, hinCd = y.品番コード },
                                   (x, y) => new { x, y })
                        .SelectMany(z => z.y.DefaultIfEmpty(),
                                    (a, b) => new { STOK = a.x.STOK, HIN = a.x.HIN, JUST = b })
                        .GroupJoin(context.M22_SOUK.Where(w => w.削除日時 == null),
                                   x => x.STOK.庫コード,
                                   y => y.庫コード,
                                   (x, y) => new { x, y })
                        .SelectMany(x => x.y.DefaultIfEmpty(),
                                    (c, d) => new { c.x.STOK, c.x.HIN, c.x.JUST, SOUK = d })
                        .GroupJoin(context.M06_IRO.Where(w => w.削除日時 == null),
                                   x => x.HIN.自社色,
                                   y => y.色コード,
                                   (x, y) => new { x, y })
                        .SelectMany(x => x.y.DefaultIfEmpty(),
                                    (e, f) => new { e.x.STOK, e.x.HIN, e.x.JUST, e.x.SOUK, IRO = f })
                        .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null),
                                   x => x.SOUK.寄託会社コード,
                                   y => y.自社コード,
                                   (x, y) => new { x, y })
                        .SelectMany(x => x.y.DefaultIfEmpty(),
                                    (g, h) => new { g.x.STOK, g.x.HIN, g.x.JUST, g.x.SOUK, g.x.IRO, JIS = h })
                        .Select(s => new SearchDataMember
                    {
                        自社コード    = s.JIS.自社コード,
                        自社名      = s.JIS.自社名 ?? "",
                        庫コード     = s.STOK.庫コード,
                        庫名称      = s.SOUK != null ? s.SOUK.庫名 : "",
                        品番コード    = s.STOK.品番コード,
                        str品番コード = s.STOK.品番コード.ToString(),
                        自社品番コード  = s.HIN.自社品番,
                        自社色コード   = s.HIN.自社色,
                        自社品名     = s.HIN.自社品名,
                        色名称      = s.IRO != null ? s.IRO.色名称 : "",
                        適正数量     = s.JUST != null ? s.JUST.適正在庫数量 : 0,
                        最低数量     = s.JUST != null ? s.JUST.最低在庫数量 : 0,
                        実在庫数量    = s.STOK.在庫数量,
                        単位1      = s.HIN.単位,
                        単位2      = s.HIN.単位
                    });

                    // 表示条件の絞り込み
                    string hKbn = cond["表示条件"];
                    if (hKbn == "1")
                    {
                        // 表示条件 1:適正数量に満たない商品または適正数量×2を超える商品
                        dataList = dataList.Where(w => w.実在庫数量 <w.適正数量 ||
                                                                w.実在庫数量> w.適正数量 * 2);
                    }
                    else if (hKbn == "2")
                    {
                        // 表示条件 2:最低数量に満たない商品
                        dataList = dataList.Where(w => w.実在庫数量 < w.最低数量);
                    }
                    else
                    {
                        // 表示条件 0:なし
                    }
                    return(dataList.OrderBy(o => o.品番コード).ThenBy(o => o.庫コード).ToList());
                }
                catch (System.ArgumentException agex)
                {
                    throw agex;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 商品と地区による運賃計算
        /// </summary>
        /// <param name="result"></param>
        /// <param name="p請求支払区分"></param>
        /// <param name="p得意先ID"></param>
        /// <param name="p発地ID"></param>
        /// <param name="p着地ID"></param>
        /// <param name="p商品ID"></param>
        /// <param name="p重量"></param>
        /// <param name="p数量"></param>
        public void GetUnitCostArea(DLY01010_TANKA result, int p請求支払区分, int p得意先ID, int p発地ID, int p着地ID, int p商品ID, decimal p重量, decimal p数量)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();
                int tcode = (from k in context.M01_TOK
                             where k.得意先ID == p得意先ID &&
                             k.削除日付 == null
                             select k.得意先KEY).FirstOrDefault();

                if (p請求支払区分 == 0)
                {
                    var tankadata = (from r in context.M02_TTAN1
                                     where r.得意先KEY == tcode &&
                                     r.商品ID == p商品ID &&
                                     (r.発地ID == p発地ID || r.発地ID == 0) &&
                                     (r.着地ID == p着地ID || r.着地ID == 0) &&
                                     r.削除日付 == null
                                     orderby r.発地ID descending, r.着地ID descending
                                     select r).FirstOrDefault();

                    if (tankadata != null)
                    {
                        if (tankadata.計算区分 == 0)
                        {
                            result.Tanka   = tankadata.売上単価;
                            result.Kingaku = p数量 * result.Tanka;
                        }
                        else if (tankadata.計算区分 == 1)
                        {
                            result.Tanka   = tankadata.売上単価;
                            result.Kingaku = p重量 * result.Tanka;
                        }
                        else
                        {
                            result.Tanka   = tankadata.売上単価;
                            result.Kingaku = p重量 * p数量 * result.Tanka;
                        }
                    }
                    else
                    {
                        result.Tanka   = 0;
                        result.Kingaku = 0;
                    }
                }
                else
                {
                    var tankadata = (from r in context.M03_YTAN1
                                     where r.支払先KEY == tcode &&
                                     r.商品ID == p商品ID &&
                                     (r.発地ID == p発地ID || r.発地ID == 0) &&
                                     (r.着地ID == p着地ID || r.着地ID == 0) &&
                                     r.削除日付 == null
                                     orderby r.発地ID descending, r.着地ID descending
                                     select r).FirstOrDefault();

                    if (tankadata != null)
                    {
                        if (tankadata.計算区分 == 0)
                        {
                            result.Tanka   = tankadata.支払単価;
                            result.Kingaku = p数量 * result.Tanka;
                        }
                        else if (tankadata.計算区分 == 1)
                        {
                            result.Tanka   = tankadata.支払単価;
                            result.Kingaku = p重量 * result.Tanka;
                        }
                        else
                        {
                            result.Tanka   = tankadata.支払単価 == null ? -1 : (decimal)tankadata.支払単価;
                            result.Kingaku = p重量 * p数量 * result.Tanka;
                        }
                    }
                    else
                    {
                        result.Tanka   = 0;
                        result.Kingaku = 0;
                    }
                }
            }

            return;
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 棚卸更新処理
        /// </summary>
        /// <param name="pMyCompany">会社コード</param>
        /// <param name="pStocktakingDate">棚卸日</param>
        /// <param name="pParamDic">パラメータ辞書</param>
        /// <param name="pUserId">ログインユーザID</param>
        public void UpdateStocktaking(DataSet ds, int pMyCompany, string pStocktakingDate, Dictionary <string, string> pParamDic, int pUserId, bool 新規FLG)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                // ---------------------------
                // 初期処理
                // ---------------------------
                context.Connection.Open();

                using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
                {
                    try
                    {
                        DataTable tbl = ds.Tables[0];

                        // 登録用リスト
                        List <S10_STOCKTAKING> 庫別棚卸在庫List = new List <S10_STOCKTAKING>();

                        // 倉庫単位で更新処理をする
                        Dictionary <string, string> unitDic = new Dictionary <string, string>();
                        unitDic.Add("倉庫コード", pParamDic["倉庫コード"]);
                        unitDic.Add("自社品番", string.Empty);
                        unitDic.Add("自社品名", string.Empty);
                        unitDic.Add("商品分類", string.Empty);
                        unitDic.Add("ブランドコード", string.Empty);
                        unitDic.Add("シリーズコード", string.Empty);


                        // ---------------------------
                        // データ設定
                        // ---------------------------

                        foreach (DataRow row in tbl.Rows)
                        {
                            if (row.RowState != DataRowState.Deleted)
                            {
                                庫別棚卸在庫List.Add(ConvertS10_STOCKTAKING_Entity(row, pUserId, com.GetDbDateTime()));
                            }
                        }

                        // ---------------------------
                        // 既存データの削除削除処理
                        // ---------------------------

                        DateTime dt = DateTime.Parse(pStocktakingDate);
                        Delete_S10_STOCKTAKING(context, pMyCompany, dt, unitDic);

                        // ---------------------------
                        // 更新処理
                        // ---------------------------

                        foreach (var row in  庫別棚卸在庫List)
                        {
                            context.S10_STOCKTAKING.ApplyChanges(row);
                        }

                        // ---------------------------
                        // 終了処理
                        // ---------------------------
                        // 変更内容を確定
                        context.SaveChanges();

                        // トランザクションのコミット
                        tran.Commit();
                    }
                    catch (Exception ex)
                    {
                        // トランザクションのロールバック
                        tran.Rollback();
                        throw ex;
                    }
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 先月データ取得
        /// </summary>
        /// <param name="s作成年月"></param>
        /// <returns></returns>
        public List <SERCHE_MST32010> LAST_MANTH_MST32010(string s作成年月)
        {
            DateTime d年月 = Convert.ToDateTime(s作成年月.Substring(0, 4).ToString() + "/" + s作成年月.Substring(5, 2).ToString() + "/" + "01");

            int ii年月1  = AppCommon.IntParse(d年月.Year.ToString() + d年月.ToString("MM"));
            int ii年月2  = AppCommon.IntParse(d年月.AddMonths(1).Year.ToString() + d年月.AddMonths(1).ToString("MM"));
            int ii年月3  = AppCommon.IntParse(d年月.AddMonths(2).Year.ToString() + d年月.AddMonths(2).ToString("MM"));
            int ii年月4  = AppCommon.IntParse(d年月.AddMonths(3).Year.ToString() + d年月.AddMonths(3).ToString("MM"));
            int ii年月5  = AppCommon.IntParse(d年月.AddMonths(4).Year.ToString() + d年月.AddMonths(4).ToString("MM"));
            int ii年月6  = AppCommon.IntParse(d年月.AddMonths(5).Year.ToString() + d年月.AddMonths(5).ToString("MM"));
            int ii年月7  = AppCommon.IntParse(d年月.AddMonths(6).Year.ToString() + d年月.AddMonths(6).ToString("MM"));
            int ii年月8  = AppCommon.IntParse(d年月.AddMonths(7).Year.ToString() + d年月.AddMonths(7).ToString("MM"));
            int ii年月9  = AppCommon.IntParse(d年月.AddMonths(8).Year.ToString() + d年月.AddMonths(8).ToString("MM"));
            int ii年月10 = AppCommon.IntParse(d年月.AddMonths(9).Year.ToString() + d年月.AddMonths(9).ToString("MM"));
            int ii年月11 = AppCommon.IntParse(d年月.AddMonths(10).Year.ToString() + d年月.AddMonths(10).ToString("MM"));
            int ii年月12 = AppCommon.IntParse(d年月.AddMonths(11).Year.ToString() + d年月.AddMonths(11).ToString("MM"));


            d年月 = d年月.AddYears(-1);

            int i年月1  = AppCommon.IntParse(d年月.Year.ToString() + d年月.ToString("MM"));
            int i年月2  = AppCommon.IntParse(d年月.AddMonths(1).Year.ToString() + d年月.AddMonths(1).ToString("MM"));
            int i年月3  = AppCommon.IntParse(d年月.AddMonths(2).Year.ToString() + d年月.AddMonths(2).ToString("MM"));
            int i年月4  = AppCommon.IntParse(d年月.AddMonths(3).Year.ToString() + d年月.AddMonths(3).ToString("MM"));
            int i年月5  = AppCommon.IntParse(d年月.AddMonths(4).Year.ToString() + d年月.AddMonths(4).ToString("MM"));
            int i年月6  = AppCommon.IntParse(d年月.AddMonths(5).Year.ToString() + d年月.AddMonths(5).ToString("MM"));
            int i年月7  = AppCommon.IntParse(d年月.AddMonths(6).Year.ToString() + d年月.AddMonths(6).ToString("MM"));
            int i年月8  = AppCommon.IntParse(d年月.AddMonths(7).Year.ToString() + d年月.AddMonths(7).ToString("MM"));
            int i年月9  = AppCommon.IntParse(d年月.AddMonths(8).Year.ToString() + d年月.AddMonths(8).ToString("MM"));
            int i年月10 = AppCommon.IntParse(d年月.AddMonths(9).Year.ToString() + d年月.AddMonths(9).ToString("MM"));
            int i年月11 = AppCommon.IntParse(d年月.AddMonths(10).Year.ToString() + d年月.AddMonths(10).ToString("MM"));
            int i年月12 = AppCommon.IntParse(d年月.AddMonths(11).Year.ToString() + d年月.AddMonths(11).ToString("MM"));


            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                var query = (from m05 in context.M05_CAR.Where(c => c.削除日付 == null)
                             join m17 in context.M17_CYSN on m05.車輌KEY equals m17.車輌KEY into m17Group
                             select new SERCHE_MST32010
                {
                    車輌KEY = m05.車輌KEY,
                    車輌コード = m05.車輌ID,
                    車番 = m05.車輌番号,
                    月1 = m17Group.Where(c => c.年月 == i年月1).Select(c => c.売上予算).FirstOrDefault(),
                    月2 = m17Group.Where(c => c.年月 == i年月2).Select(c => c.売上予算).FirstOrDefault(),
                    月3 = m17Group.Where(c => c.年月 == i年月3).Select(c => c.売上予算).FirstOrDefault(),
                    月4 = m17Group.Where(c => c.年月 == i年月4).Select(c => c.売上予算).FirstOrDefault(),
                    月5 = m17Group.Where(c => c.年月 == i年月5).Select(c => c.売上予算).FirstOrDefault(),
                    月6 = m17Group.Where(c => c.年月 == i年月6).Select(c => c.売上予算).FirstOrDefault(),
                    月7 = m17Group.Where(c => c.年月 == i年月7).Select(c => c.売上予算).FirstOrDefault(),
                    月8 = m17Group.Where(c => c.年月 == i年月8).Select(c => c.売上予算).FirstOrDefault(),
                    月9 = m17Group.Where(c => c.年月 == i年月9).Select(c => c.売上予算).FirstOrDefault(),
                    月10 = m17Group.Where(c => c.年月 == i年月10).Select(c => c.売上予算).FirstOrDefault(),
                    月11 = m17Group.Where(c => c.年月 == i年月11).Select(c => c.売上予算).FirstOrDefault(),
                    月12 = m17Group.Where(c => c.年月 == i年月12).Select(c => c.売上予算).FirstOrDefault(),
                    年月1 = ii年月1,
                    年月2 = ii年月2,
                    年月3 = ii年月3,
                    年月4 = ii年月4,
                    年月5 = ii年月5,
                    年月6 = ii年月6,
                    年月7 = ii年月7,
                    年月8 = ii年月8,
                    年月9 = ii年月9,
                    年月10 = ii年月10,
                    年月11 = ii年月11,
                    年月12 = ii年月12,
                }).AsQueryable();
                var queryLIST = query.ToList();

                return(queryLIST);
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Spread情報変更 【UPDATE】
        /// </summary>
        /// <param name="p明細番号"></param>
        /// <param name="p明細行"></param>
        /// <param name="colname"></param>
        /// <param name="val"></param>
        public void INSERT_GetData(object o車輌コード, object s車番, object s車種, string s目標燃費, object val, string s作成年月)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                //*** 変数定義 ***//
                int      i年月    = Convert.ToInt32(s作成年月.Substring(0, 4) + s作成年月.Substring(5, 2));
                int      i車輌コード = Convert.ToInt32(o車輌コード);
                decimal  d目標燃費  = Convert.ToDecimal(val);
                DateTime d更新日時  = DateTime.Now;
                DateTime d登録日時  = DateTime.Now;
                //***   終了   ***//

                using (var tran = new TransactionScope())
                {
                    var query = (from m17 in context.M17_CYSN
                                 from m05 in context.M05_CAR.Where(c => c.車輌KEY == m17.車輌KEY)
                                 from m06 in context.M06_SYA.Where(c => c.車種ID == m05.車種ID)
                                 where m05.車輌ID == i車輌コード && m17.年月 == i年月
                                 select new SERCHE_MST32010
                    {
                        車輌コード = m05.車輌ID,
                        車番 = m05.車輌番号,
                        //車種 = m06.車種名,
                        //目標燃費 = m17.目標燃費,
                    }).AsQueryable();

                    var ret = (from m17 in context.M17_CYSN
                               from m05 in context.M05_CAR.Where(c => c.車輌KEY == m17.車輌KEY)
                               where m05.車輌ID == i車輌コード
                               select new UPDATE_MST32010
                    {
                        車輌KEY = m17.車輌KEY,
                    }).AsQueryable();

                    List <UPDATE_MST32010> retList = ret.ToList();
                    int    車輌KEY = retList[0].車輌KEY;
                    string sql   = string.Empty;
                    if (query.Count() == 0)
                    {
                        //INSERT処理
                        sql = string.Format("INSERT INTO M17_CYSN (車輌KEY , 年月 , 登録日時 , 更新日時 , 目標燃費 , 削除日付)VALUES('{0}','{1}','{2}','','{3}',NULL)"
                                            , 車輌KEY, i年月, d登録日時, d目標燃費);
                    }
                    else
                    {
                        //UPDATE処理
                        sql = string.Format("UPDATE M17_CYSN SET 目標燃費 = '{3}' , 更新日時 = '{2}' WHERE 車輌KEY = {0} AND 年月 = {1}"
                                            , 車輌KEY, i年月, d更新日時, d目標燃費);
                    }
                    context.Connection.Open();
                    int count = context.ExecuteStoreCommand(sql);
                    // トリガが定義されていると、更新結果は複数行になる
                    if (count > 0)
                    {
                        tran.Complete();
                    }
                    else
                    {
                        // 更新行なし
                        throw new Framework.Common.DBDataNotFoundException();
                    }
                }
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 仕入詳細(返品)情報(品番情報含む)を取得する
        /// </summary>
        /// <param name="slipNumber">伝票番号</param>
        /// <returns></returns>
        private List <T03.T03_SRDTL_RT_Extension> getT03_SRDTL_RT_Extension(string slipNumber)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                int num;
                if (int.TryParse(slipNumber, out num))
                {
                    // 元伝票の明細番号を取得
                    var 元伝票番号 =
                        context.T03_SRHD.Where(w => w.削除日時 == null && w.伝票番号 == num)
                        .Select(s => s.元伝票番号)
                        .FirstOrDefault();

                    var result =
                        context.T03_SRDTL.Where(w => w.削除日時 == null && w.伝票番号 == num)
                        .GroupJoin(context.T03_SRDTL.Where(w => w.削除日時 == null && w.伝票番号 == 元伝票番号),
                                   x => x.行番号,
                                   y => y.行番号,
                                   (x, y) => new { x, y })
                        .SelectMany(x => x.y.DefaultIfEmpty(),
                                    (a, b) => new { SRTDTL = a.x, SRDTL = b })
                        .GroupJoin(context.M09_HIN.Where(w => w.削除日時 == null),
                                   x => x.SRTDTL.品番コード,
                                   y => y.品番コード,
                                   (x, y) => new { x, y })
                        .SelectMany(x => x.y.DefaultIfEmpty(),
                                    (c, d) => new { c.x.SRTDTL, c.x.SRDTL, HIN = d })
                        .OrderBy(o => o.SRTDTL.伝票番号)
                        .ThenBy(t => t.SRTDTL.行番号)
                        .ToList();

                    if (context.T03_SRHD.Where(w => w.伝票番号 == num).Select(s => s.仕入区分).FirstOrDefault() == CommonConstants.仕入区分.返品.GetHashCode())
                    {
                        // 返品レコードとしてデータを作成
                        var resultRtDtl =
                            result.Select(x => new T03.T03_SRDTL_RT_Extension
                        {
                            伝票番号  = x.SRTDTL.伝票番号,
                            行番号   = x.SRTDTL.行番号,
                            品番コード = x.SRTDTL.品番コード,
                            自社品番  = x.HIN.自社品番,
                            自社品名  = x.HIN.自社品名,
                            賞味期限  = x.SRTDTL.賞味期限,
                            仕入数量  = x.SRDTL == null ? (decimal?)null : x.SRDTL.数量,
                            数量    = x.SRTDTL.数量,
                            単位    = x.SRTDTL.単位,
                            単価    = x.SRTDTL.単価,
                            金額    = x.SRTDTL.金額,
                            税区分   =             // No-94 Add
                                    x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.軽減税率 ? CommonConstants.消費税区分略称_軽減税率 :
                                    x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.非課税 ? CommonConstants.消費税区分略称_非課税 : string.Empty,
                            摘要    = x.SRTDTL.摘要,
                            消費税区分 = x.HIN.消費税区分 ?? 0,
                            商品分類  = x.HIN.商品分類 ?? 0
                        })
                            .ToList();

                        return(resultRtDtl);
                    }
                    else
                    {
                        // 仕入データとしてデータを作成
                        var resultSrDtl =
                            result.Select(x => new T03.T03_SRDTL_RT_Extension
                        {
                            伝票番号  = x.SRTDTL.伝票番号,
                            行番号   = x.SRTDTL.行番号,
                            品番コード = x.SRTDTL.品番コード,
                            自社品番  = x.HIN.自社品番,
                            自社品名  = x.HIN.自社品名,
                            賞味期限  = x.SRTDTL.賞味期限,
                            仕入数量  = x.SRTDTL.数量,
                            数量    = x.SRTDTL.数量,
                            単位    = x.SRTDTL.単位,
                            単価    = x.SRTDTL.単価,
                            金額    = x.SRTDTL.金額,
                            税区分   =             // No-94 Add
                                    x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.軽減税率 ? CommonConstants.消費税区分略称_軽減税率 :
                                    x.HIN.消費税区分 == (int)CommonConstants.商品消費税区分.非課税 ? CommonConstants.消費税区分略称_非課税 : string.Empty,
                            摘要    = x.SRTDTL.摘要,
                            消費税区分 = x.HIN.消費税区分 ?? 0,
                            商品分類  = x.HIN.商品分類 ?? 0
                        })
                            .ToList();

                        return(resultSrDtl);
                    }
                }
                else
                {
                    return(new List <T03.T03_SRDTL_RT_Extension>());
                }
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 仕入ヘッダ情報を取得する
        /// </summary>
        /// <param name="companyCode">会社名コード</param>
        /// <param name="slipNumber">伝票番号</param>
        /// <param name="userId">ログインユーザID</param>
        /// <returns></returns>
        private List <T03.T03_SRHD_RT_Extension> getM03_SRHD_RT_Extension(string companyCode, string slipNumber, int userId)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                int code, num;
                if (int.TryParse(companyCode, out code) && int.TryParse(slipNumber, out num))
                {
                    var result =
                        context.T03_SRHD.Where(w => w.削除日時 == null && w.会社名コード == code && w.伝票番号 == num)
                        .GroupJoin(context.T03_SRHD.Where(w => w.削除日時 == null),
                                   x => x.元伝票番号,
                                   y => y.伝票番号,
                                   (x, y) => new { x, y })
                        .SelectMany(s => s.y.DefaultIfEmpty(), (a, b) => new { SRTHD = a.x, SRHD = b })
                        .ToList();

                    if (result.Select(s => s.SRTHD.仕入区分).FirstOrDefault() == CommonConstants.仕入区分.返品.GetHashCode())
                    {
                        // 返品レコードとしてデータを作成
                        var resultRthd =
                            result.Select(x => new T03.T03_SRHD_RT_Extension
                        {
                            伝票番号   = x.SRTHD.伝票番号.ToString(),
                            会社名コード = x.SRTHD.会社名コード.ToString(),
                            仕入日    = x.SRTHD.仕入日,
                            入力区分   = x.SRTHD.入力区分,
                            仕入区分   = x.SRTHD.仕入区分,
                            仕入先コード = x.SRTHD.仕入先コード.ToString(),
                            仕入先枝番  = x.SRTHD.仕入先枝番.ToString(),
                            入荷先コード = x.SRTHD.入荷先コード.ToString(),
                            発注番号   = x.SRTHD.発注番号.ToString(),
                            備考     = x.SRTHD.備考,
                            // No-94 Add Start
                            通常税率対象金額 = x.SRTHD.通常税率対象金額 ?? 0,
                            軽減税率対象金額 = x.SRTHD.軽減税率対象金額 ?? 0,
                            通常税率消費税  = x.SRTHD.通常税率消費税 ?? 0,
                            軽減税率消費税  = x.SRTHD.軽減税率消費税 ?? 0,
                            // No-94 Add End
                            // No-95 Add Start
                            小計  = x.SRTHD.小計 ?? 0,
                            総合計 = x.SRTHD.総合計 ?? 0,
                            // No-95 Add End
                            消費税   = x.SRTHD.消費税,
                            元伝票番号 = x.SRHD == null ? "" : x.SRHD.伝票番号.ToString(),
                            元仕入日  = x.SRHD == null ? (DateTime?)null : x.SRHD.仕入日,
                            データ状態 = false
                        })
                            .ToList();

                        return(resultRthd);
                    }
                    else
                    {
                        // 仕入レコードとしてデータを作成
                        // ①新規伝票番号を取得
                        M88      seqSv     = new M88();
                        int      newSeqNum = seqSv.getNextNumber(CommonConstants.明細番号ID.ID01_売上_仕入_移動, userId);
                        DateTime retDate   = (DateTime)AppCommon.DateTimeToDate(DateTime.Now);

                        var resultSrhd =
                            result.Select(x => new T03.T03_SRHD_RT_Extension
                        {
                            伝票番号   = newSeqNum.ToString(),
                            会社名コード = x.SRTHD.会社名コード.ToString(),
                            仕入日    = retDate,
                            入力区分   = x.SRTHD.入力区分,
                            仕入区分   = CommonConstants.仕入区分.返品.GetHashCode(),
                            仕入先コード = x.SRTHD.仕入先コード.ToString(),
                            仕入先枝番  = x.SRTHD.仕入先枝番.ToString(),
                            入荷先コード = x.SRTHD.入荷先コード.ToString(),
                            発注番号   = x.SRTHD.発注番号.ToString(),
                            備考     = x.SRTHD.備考,
                            // No-94 Add Start
                            通常税率対象金額 = x.SRTHD.通常税率対象金額 ?? 0,
                            軽減税率対象金額 = x.SRTHD.軽減税率対象金額 ?? 0,
                            通常税率消費税  = x.SRTHD.通常税率消費税 ?? 0,
                            軽減税率消費税  = x.SRTHD.軽減税率消費税 ?? 0,
                            // No-94 Add End
                            // No-95 Add Start
                            小計  = x.SRTHD.小計 ?? 0,
                            総合計 = x.SRTHD.総合計 ?? 0,
                            // No-95 Add End
                            消費税   = x.SRTHD.消費税,
                            元伝票番号 = x.SRTHD.伝票番号.ToString(),
                            元仕入日  = x.SRTHD.仕入日,
                            データ状態 = true
                        })
                            .ToList();

                        return(resultSrhd);
                    }
                }
                else
                {
                    return(new List <T03.T03_SRHD_RT_Extension>());
                }
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 確定済チェック
        /// </summary>
        /// <param name="自社コード"></param>
        /// <param name="得意先コード"></param>
        /// <param name="得意先枝番"></param>
        /// <param name="仕入先コード"></param>
        /// <param name="仕入先枝番"></param>
        /// <returns></returns>
        public DataTable CheckFix(string 自社コード, string 得意先コード, string 得意先枝番, string 仕入先コード, string 仕入先枝番)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                // パラメータ型変換
                int iVal    = 0;
                int company = int.TryParse(自社コード, out iVal) ? iVal : -1;
                int tCode   = int.TryParse(得意先コード, out iVal) ? iVal : -1;
                int tEda    = int.TryParse(得意先枝番, out iVal) ? iVal : -1;
                int sCode   = int.TryParse(仕入先コード, out iVal) ? iVal : -1;
                int sEda    = int.TryParse(仕入先枝番, out iVal) ? iVal : -1;

                IEnumerable <TKS90010_FIX_INFO> tFixData = null;
                IEnumerable <TKS90010_FIX_INFO> sFixData = null;

                // 得意先情報
                if (!string.IsNullOrEmpty(得意先コード))
                {
                    var tokData = context.M01_TOK.Where(w => w.取引先コード == tCode && w.枝番 == tEda &&
                                                        w.削除日時 == null);

                    tFixData = tokData
                               .GroupJoin(context.S11_KAKUTEI.Where(w => w.確定区分 == (int)CommonConstants.確定区分.請求),
                                          x => new { jis = x.担当会社コード, tKbn = x.取引区分, day = (int)x.T締日 },
                                          y => new { jis = y.自社コード, tKbn = y.取引区分, day = y.締日 },
                                          (x, y) => new { x, y })
                               .SelectMany(z => z.y.DefaultIfEmpty(),
                                           (a, b) => new { TOK = a.x, FIX = b })
                               .ToList()
                               .Select(s => new TKS90010_FIX_INFO
                    {
                        自社コード  = s.FIX != null ? s.FIX.自社コード : (int?)null,
                        区分     = CommonConstants.確定区分_請求,
                        確定区分   = s.FIX != null ? s.FIX.確定区分 : (int?)null,
                        取引区分   = s.TOK.取引区分,
                        取引先コード = s.TOK.取引先コード.ToString(),
                        枝番     = s.TOK.枝番.ToString(),
                        取引先名   = s.TOK.略称名,
                        締日     = s.FIX != null ? s.FIX.締日 : (int?)null,
                        確定日    = s.FIX != null ? s.FIX.確定日 : (DateTime?)null
                    })
                               .Union
                                   (tokData
                                   .GroupJoin(context.S11_KAKUTEI.Where(w => w.確定区分 == (int)CommonConstants.確定区分.支払),
                                              x => new { jis = x.担当会社コード, tKbn = x.取引区分, day = (int)x.S締日 },
                                              y => new { jis = y.自社コード, tKbn = y.取引区分, day = y.締日 },
                                              (x, y) => new { x, y })
                                   .SelectMany(z => z.y.DefaultIfEmpty(),
                                               (a, b) => new { TOK = a.x, FIX = b })
                                   .ToList()
                                   .Select(s => new TKS90010_FIX_INFO
                    {
                        自社コード  = s.FIX != null ? s.FIX.自社コード : (int?)null,
                        区分     = CommonConstants.確定区分_支払,
                        確定区分   = s.FIX != null ? s.FIX.確定区分 : (int?)null,
                        取引区分   = s.TOK.取引区分,
                        取引先コード = s.TOK.取引先コード.ToString(),
                        枝番     = s.TOK.枝番.ToString(),
                        取引先名   = s.TOK.略称名,
                        締日     = s.FIX != null ? s.FIX.締日 : (int?)null,
                        確定日    = s.FIX != null ? s.FIX.確定日 : (DateTime?)null
                    }));
                }

                // 仕入先情報
                if (!string.IsNullOrEmpty(仕入先コード))
                {
                    var sTokData = context.M01_TOK.Where(w => w.取引先コード == sCode && w.枝番 == sEda &&
                                                         w.削除日時 == null);

                    sFixData = sTokData
                               .GroupJoin(context.S11_KAKUTEI.Where(w => w.確定区分 == (int)CommonConstants.確定区分.支払),
                                          x => new { jis = x.担当会社コード, tKbn = x.取引区分, day = (int)x.S締日 },
                                          y => new { jis = y.自社コード, tKbn = y.取引区分, day = y.締日 },
                                          (x, y) => new { x, y })
                               .SelectMany(z => z.y.DefaultIfEmpty(),
                                           (a, b) => new { TOK = a.x, FIX = b })
                               .ToList()
                               .Select(s => new TKS90010_FIX_INFO
                    {
                        自社コード  = s.FIX != null ? s.FIX.自社コード : (int?)null,
                        区分     = CommonConstants.確定区分_支払,
                        確定区分   = s.FIX != null ? s.FIX.確定区分 : (int?)null,
                        取引区分   = s.TOK.取引区分,
                        取引先コード = s.TOK.取引先コード.ToString(),
                        枝番     = s.TOK.枝番.ToString(),
                        取引先名   = s.TOK.略称名,
                        締日     = s.FIX != null ? s.FIX.締日 : (int?)null,
                        確定日    = s.FIX != null ? s.FIX.確定日 : (DateTime?)null
                    })
                               .Union
                                   (sTokData
                                   .GroupJoin(context.S11_KAKUTEI.Where(w => w.確定区分 == (int)CommonConstants.確定区分.請求),
                                              x => new { jis = x.担当会社コード, tKbn = x.取引区分, day = (int)x.T締日 },
                                              y => new { jis = y.自社コード, tKbn = y.取引区分, day = y.締日 },
                                              (x, y) => new { x, y })
                                   .SelectMany(z => z.y.DefaultIfEmpty(),
                                               (a, b) => new { TOK = a.x, FIX = b })
                                   .ToList()
                                   .Select(s => new TKS90010_FIX_INFO
                    {
                        自社コード  = s.FIX != null ? s.FIX.自社コード : (int?)null,
                        区分     = CommonConstants.確定区分_請求,
                        確定区分   = s.FIX != null ? s.FIX.確定区分 : (int?)null,
                        取引区分   = s.TOK.取引区分,
                        取引先コード = s.TOK.取引先コード.ToString(),
                        枝番     = s.TOK.枝番.ToString(),
                        取引先名   = s.TOK.略称名,
                        締日     = s.FIX != null ? s.FIX.締日 : (int?)null,
                        確定日    = s.FIX != null ? s.FIX.確定日 : (DateTime?)null
                    }));
                }

                // 確定データを連結
                tFixData = tFixData != null ?
                           (sFixData != null ? tFixData.Concat(sFixData) : tFixData) : sFixData;

                // Datatable変換
                DataTable fixDt = KESSVCEntry.ConvertListToDataTable(tFixData.ToList());
                return(fixDt);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 確定テーブル更新
        /// </summary>
        /// <param name="自社コード"></param>
        /// <param name="締日"></param>
        /// <param name="確定日"></param>
        /// <param name="取引区分"></param>
        /// <returns></returns>
        public int Update(string 自社コード, string 取引区分, string 確定区分, string 締日, string 確定日, int pLoginUserCode)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                using (var tran = context.Connection.BeginTransaction(System.Data.IsolationLevel.Serializable))
                {
                    try
                    {
                        // パラメータ型変換
                        int      iVal = 0;
                        DateTime dt;
                        DateTime minDt       = DateTime.MinValue;
                        int      company     = int.TryParse(自社コード, out iVal) ? iVal : -1;
                        int      fixKbn      = int.TryParse(確定区分, out iVal) ? iVal : -1;
                        int      triKbn      = int.TryParse(取引区分, out iVal) ? iVal : -1;
                        int      closingDays = int.TryParse(締日, out iVal) ? iVal : -1;
                        DateTime?fixDay      = DateTime.TryParse(確定日, out dt) ? dt : (DateTime?)null;
                        if (fixDay == minDt)
                        {
                            fixDay = null;
                        }

                        // 更新行を特定
                        var s11Data =
                            context.S11_KAKUTEI
                            .Where(x => x.自社コード == company &&
                                   x.取引区分 == triKbn &&
                                   x.確定区分 == fixKbn &&
                                   x.締日 == closingDays)
                            .Select(c => c)
                            .FirstOrDefault();

                        if (s11Data != null)
                        {
                            s11Data.確定日  = fixDay;
                            s11Data.登録日時 = DateTime.Now;
                            s11Data.登録者  = pLoginUserCode;
                            s11Data.AcceptChanges();
                        }
                        else
                        {
                            S11_KAKUTEI s11 = new S11_KAKUTEI();
                            s11.自社コード = company;
                            s11.取引区分  = triKbn;
                            s11.確定区分  = fixKbn;
                            s11.締日    = closingDays;
                            s11.確定日   = fixDay;
                            s11.登録者   = pLoginUserCode;
                            s11.登録日時  = DateTime.Now;

                            context.S11_KAKUTEI.ApplyChanges(s11);
                        }
                        context.SaveChanges();
                        tran.Commit();
                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();
                        throw ex;
                    }
                }
            }
            return(1);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 確定情報取得
        /// </summary>
        /// <param name="自社コード"></param>
        /// <param name="締日"></param>
        /// <param name="取引先区分"></param>
        /// <returns></returns>
        public List <TKS90010_SearchMember> GetListData(string 自社コード, string 締日, string 取引区分)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                // パラメータ型変換
                int iVal        = 0;
                int company     = int.TryParse(自社コード, out iVal) ? iVal : -1;
                int triKbn      = int.TryParse(取引区分, out iVal) ? iVal : -1;
                int?closingDays = int.TryParse(締日, out iVal) ? iVal : (int?)null;

                // 得意先情報
                IQueryable <M01_TOK> seiTokData, shiTokData;
                var tokData = context.M01_TOK.Where(w => w.取引区分 == triKbn && w.削除日時 == null);

                // 自社コードが指定されている場合、絞り込み
                if (!string.IsNullOrEmpty(自社コード))
                {
                    tokData = tokData.Where(w => w.担当会社コード == company);
                }

                seiTokData = tokData;
                shiTokData = tokData;

                // 締日が指定されている場合、絞り込み
                if (!string.IsNullOrEmpty(締日))
                {
                    switch (triKbn)
                    {
                    case (int)CommonConstants.取引区分.得意先:
                        seiTokData = tokData.Where(w => w.T締日 == closingDays && w.T締日 > 0);
                        seiTokData = tokData.Where(w => w.T締日 == closingDays);
                        break;

                    case (int)CommonConstants.取引区分.仕入先:
                    case (int)CommonConstants.取引区分.加工先:
                        shiTokData = tokData.Where(w => w.S締日 == closingDays && w.S締日 > 0);
                        break;

                    case (int)CommonConstants.取引区分.相殺:
                        seiTokData = tokData.Where(w => (w.T締日 == closingDays && w.T締日 > 0));
                        shiTokData = tokData.Where(w => (w.S締日 == closingDays && w.S締日 > 0));
                        break;

                    default:
                        break;
                    }
                }

                // 検索情報取得
                // 請求確定データ
                var seiData = seiTokData.Where(w => w.T締日 != null && w.T締日 > 0)
                              .GroupJoin(context.S11_KAKUTEI.Where(w => w.確定区分 == (int)CommonConstants.確定区分.請求),
                                         x => new { code = x.担当会社コード, tKbn = x.取引区分, day = (int)x.T締日 },
                                         y => new { code = y.自社コード, tKbn = y.取引区分, day = y.締日 },
                                         (x, y) => new { x, y })
                              .SelectMany(z => z.y.DefaultIfEmpty(),
                                          (a, b) => new { TOK_T = a.x, FIX = b })
                              .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null),
                                         x => new { jis = x.TOK_T.担当会社コード },
                                         y => new { jis = y.自社コード },
                                         (x, y) => new { x, y })
                              .SelectMany(z => z.y.DefaultIfEmpty(),
                                          (c, d) => new { TOK_T = c.x.TOK_T, FIX = c.x.FIX, JIS = d })
                              .GroupBy(g => new
                {
                    g.TOK_T.担当会社コード,
                    g.JIS.自社名,
                    g.TOK_T.取引区分,
                    g.TOK_T.T締日,
                    g.FIX.確定日,
                    g.TOK_T.取引先コード,
                    g.TOK_T.枝番,
                    g.TOK_T.略称名
                })
                              .ToList()
                              .Select(s => new TKS90010_SearchMember
                {
                    自社名    = s.Key.自社名,
                    自社コード  = s.Key.担当会社コード,
                    確定区分   = (int)CommonConstants.確定区分.請求,
                    区分     = CommonConstants.確定区分_請求,
                    取引区分ID = s.Key.取引区分,
                    取引区分   = s.Key.取引区分 == (int)CommonConstants.取引区分.得意先 ? CommonConstants.取引区分_得意先 :
                             s.Key.取引区分 == (int)CommonConstants.取引区分.仕入先 ? CommonConstants.取引区分_仕入先 :
                             s.Key.取引区分 == (int)CommonConstants.取引区分.加工先 ? CommonConstants.取引区分_加工先 :
                             s.Key.取引区分 == (int)CommonConstants.取引区分.相殺 ? CommonConstants.取引区分_相殺 :
                             string.Empty,
                    ID   = string.Format("{0:D4} - {1:D2}", s.Key.取引先コード, s.Key.枝番),
                    得意先名 = s.Key.略称名,
                    締日   = (int)s.Key.T締日,
                    確定日  = s.Key.確定日
                });

                // 支払確定データ
                var shrData = shiTokData.Where(w => w.S締日 != null)
                              .GroupJoin(context.S11_KAKUTEI.Where(w => w.確定区分 == (int)CommonConstants.確定区分.支払),
                                         x => new { code = x.担当会社コード, tKbn = x.取引区分, day = (int)x.S締日 },
                                         y => new { code = y.自社コード, tKbn = y.取引区分, day = y.締日 },
                                         (x, y) => new { x, y })
                              .SelectMany(z => z.y.DefaultIfEmpty(),
                                          (a, b) => new { TOK_S = a.x, FIX = b })
                              .GroupJoin(context.M70_JIS.Where(w => w.削除日時 == null),
                                         x => new { jis = x.TOK_S.担当会社コード },
                                         y => new { jis = y.自社コード },
                                         (x, y) => new { x, y })
                              .SelectMany(z => z.y.DefaultIfEmpty(),
                                          (c, d) => new { FIX = c.x.FIX, TOK_S = c.x.TOK_S, JIS = d })
                              .GroupBy(g => new
                {
                    g.TOK_S.担当会社コード,
                    g.JIS.自社名,
                    g.TOK_S.取引区分,
                    g.TOK_S.S締日,
                    g.FIX.確定日,
                    g.TOK_S.取引先コード,
                    g.TOK_S.枝番,
                    g.TOK_S.略称名
                })
                              .ToList()
                              .Select(s => new TKS90010_SearchMember
                {
                    自社名    = s.Key.自社名,
                    自社コード  = s.Key.担当会社コード,
                    確定区分   = (int)CommonConstants.確定区分.支払,
                    区分     = CommonConstants.確定区分_支払,
                    取引区分ID = s.Key.取引区分,
                    取引区分   = s.Key.取引区分 == (int)CommonConstants.取引区分.得意先 ? CommonConstants.取引区分_得意先 :
                             s.Key.取引区分 == (int)CommonConstants.取引区分.仕入先 ? CommonConstants.取引区分_仕入先 :
                             s.Key.取引区分 == (int)CommonConstants.取引区分.加工先 ? CommonConstants.取引区分_加工先 :
                             s.Key.取引区分 == (int)CommonConstants.取引区分.相殺 ? CommonConstants.取引区分_相殺 :
                             string.Empty,
                    ID = string.Format("{0:D4} - {1:D2}", s.Key.取引先コード, s.Key.枝番),

                    得意先名 = s.Key.略称名,
                    締日   = (int)s.Key.S締日,
                    確定日  = s.Key.確定日
                });

                // 請求データと支払データを結合
                var result = seiData.Concat(shrData);

                return(result.OrderBy(o => o.自社コード)
                       .ThenBy(o => o.確定区分)
                       .ThenBy(o => o.締日)
                       .ThenBy(o => o.ID)
                       .ToList());
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// T01_TRN+T02_UTRNのリスト取得
        /// </summary>
        /// <param name="p明細番号">明細番号</param>
        /// <param name="p明細行">明細行</param>
        /// <returns>T01_TRN_MemberのList</returns>
        public List <T01_TRN_DATA> GetListDrive(int?p明細番号, int?p明細行)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                // 注意:T02が駆動表(明細行は1件のみ)
                var ret = (from t01 in context.T01_TRN.Where(x => x.入力区分 == 3)
                           from uwk in context.M10_UHK.Where(x => x.得意先KEY == t01.得意先KEY && x.請求内訳ID == t01.請求内訳ID && x.削除日付 == null).DefaultIfEmpty()
                           from drv in context.M04_DRV.Where(x => x.乗務員KEY == t01.乗務員KEY).DefaultIfEmpty()
                           from tok in context.M01_TOK.Where(x => x.得意先KEY == t01.得意先KEY).DefaultIfEmpty()
                           from shr in context.M01_TOK.Where(x => x.得意先KEY == t01.支払先KEY).DefaultIfEmpty()
                           from sya in context.M06_SYA.Where(x => x.車種ID == t01.車種ID).DefaultIfEmpty()
                           from car in context.M05_CAR.Where(x => x.車輌KEY == t01.車輌KEY).DefaultIfEmpty()
                           where t01.明細番号 == p明細番号
                           orderby t01.明細行
                           select new T01_TRN_DATA
                {
                    明細番号 = t01.明細番号,
                    明細行 = (t01.明細行 == null) ? 0 : (int)t01.明細行,
                    行番号SUB = (t01.明細行 == null) ? (int?)null : t01.明細行,
                    登録日時 = t01.登録日時,
                    更新日時 = t01.更新日時,
                    明細区分 = t01.明細区分,
                    入力区分 = t01.入力区分,
                    請求日付 = t01.請求日付,
                    支払日付 = t01.支払日付,
                    配送日付 = t01.配送日付,
                    配送時間 = t01.配送時間,
                    得意先ID = tok.得意先ID,
                    請求内訳ID = (t01.請求内訳ID == null || t01.請求内訳ID == 0) ? null : t01.請求内訳ID,
                    請求内訳管理区分 = tok.請求内訳管理区分,
                    請求内訳名 = uwk.請求内訳名,
                    車輌ID = car.車輌ID,
                    車種ID = t01.車種ID,
                    車種名 = sya.車種名,
                    支払先ID = shr.得意先ID,
                    支払先名 = shr.略称名,
                    乗務員ID = drv.乗務員ID,
                    乗務員名 = drv.乗務員名,
                    担当部門 = (t01.自社部門ID == null || (int)t01.自社部門ID == 0) ? 0 : (int)t01.自社部門ID,
                    自社部門ID = (t01.自社部門ID == null || (int)t01.自社部門ID == 0) ? 0 : (int)t01.自社部門ID,
                    車輌番号 = t01.車輌番号,
                    支払先名2次 = t01.支払先名2次,
                    実運送乗務員 = t01.実運送乗務員,
                    乗務員連絡先 = t01.乗務員連絡先,
                    請求運賃計算区分ID = t01.請求運賃計算区分ID,
                    支払運賃計算区分ID = t01.支払運賃計算区分ID,
                    数量 = t01.数量,
                    単位 = t01.単位,
                    重量 = t01.重量,
                    走行KM = t01.走行KM,
                    実車KM = t01.実車KM,
                    待機時間 = t01.待機時間,
                    売上単価 = t01.売上単価,
                    売上金額 = t01.売上金額,
                    通行料 = t01.通行料,
                    請求割増1 = t01.請求割増1,
                    請求割増2 = t01.請求割増2,
                    請求消費税 = t01.請求消費税,
                    支払単価 = t01.支払単価,
                    支払金額 = t01.支払金額,
                    支払通行料 = t01.支払通行料,
                    支払割増1 = t01.支払割増1,
                    支払割増2 = t01.支払割増2,
                    支払消費税 = t01.支払消費税,
                    水揚金額 = t01.水揚金額,
                    社内区分 = t01.社内区分,
                    請求税区分 = t01.請求税区分,
                    支払税区分 = t01.支払税区分,
                    売上未定区分 = t01.売上未定区分,
                    支払未定区分 = t01.支払未定区分,
                    商品ID = t01.商品ID,
                    商品名 = t01.商品名,
                    発地ID = t01.発地ID,
                    発地名 = t01.発地名,
                    着地ID = t01.着地ID,
                    着地名 = t01.着地名,
                    請求摘要ID = t01.請求摘要ID,
                    請求摘要 = t01.請求摘要,
                    社内備考ID = t01.社内備考ID,
                    社内備考 = t01.社内備考,
                    入力者ID = t01.入力者ID,
                    確認名称区分 = t01.確認名称区分,

                    // -----
                    得意先名 = tok.略称名,
                }).ToList();
                if (p明細行 == null)
                {
                    return(ret.ToList());
                }
                else
                {
                    return(ret.Where(x => x.明細行 == p明細行).ToList());
                }
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// F9(登録ボタン)での登録
        /// </summary>
        public void NINSERT_GetData(List <SERCHE_MST32010> dt, string s作成年月)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                using (var tran = new TransactionScope())
                {
                    try
                    {
                        DateTime d年月   = Convert.ToDateTime(s作成年月.Substring(0, 4) + "/" + s作成年月.Substring(5, 2) + "/01");
                        int      i開始年月 = Convert.ToInt32(s作成年月.Substring(0, 4) + s作成年月.Substring(5, 2));
                        int      i終了年月 = AppCommon.IntParse(d年月.AddMonths(11).Year.ToString() + d年月.AddMonths(11).ToString("MM"));

                        var del = (from m17 in context.M17_CYSN where m17.年月 >= i開始年月 && m17.年月 <= i終了年月 select m17);
                        foreach (var row in del)
                        {
                            context.DeleteObject(row);
                        }
                        ;

                        foreach (var row in dt)
                        {
                            M17_CYSN m17_row = new M17_CYSN();
                            m17_row.車輌KEY = row.車輌KEY;
                            m17_row.年月    = row.年月1;
                            m17_row.売上予算  = row.月1;
                            m17_row.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row);
                            context.SaveChanges();

                            M17_CYSN m17_row2 = new M17_CYSN();
                            m17_row2.車輌KEY = row.車輌KEY;
                            m17_row2.年月    = row.年月2;
                            m17_row2.売上予算  = row.月2;
                            m17_row2.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row2);
                            context.SaveChanges();

                            M17_CYSN m17_row3 = new M17_CYSN();
                            m17_row3.車輌KEY = row.車輌KEY;
                            m17_row3.年月    = row.年月3;
                            m17_row3.売上予算  = row.月3;
                            m17_row3.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row3);
                            context.SaveChanges();

                            M17_CYSN m17_row4 = new M17_CYSN();
                            m17_row4.車輌KEY = row.車輌KEY;
                            m17_row4.年月    = row.年月4;
                            m17_row4.売上予算  = row.月4;
                            m17_row4.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row4);
                            context.SaveChanges();

                            M17_CYSN m17_row5 = new M17_CYSN();
                            m17_row5.車輌KEY = row.車輌KEY;
                            m17_row5.年月    = row.年月5;
                            m17_row5.売上予算  = row.月5;
                            m17_row5.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row5);
                            context.SaveChanges();

                            M17_CYSN m17_row6 = new M17_CYSN();
                            m17_row6.車輌KEY = row.車輌KEY;
                            m17_row6.年月    = row.年月6;
                            m17_row6.売上予算  = row.月6;
                            m17_row6.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row6);
                            context.SaveChanges();

                            M17_CYSN m17_row7 = new M17_CYSN();
                            m17_row7.車輌KEY = row.車輌KEY;
                            m17_row7.年月    = row.年月7;
                            m17_row7.売上予算  = row.月7;
                            m17_row7.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row7);
                            context.SaveChanges();

                            M17_CYSN m17_row8 = new M17_CYSN();
                            m17_row8.車輌KEY = row.車輌KEY;
                            m17_row8.年月    = row.年月8;
                            m17_row8.売上予算  = row.月8;
                            m17_row8.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row8);
                            context.SaveChanges();

                            M17_CYSN m17_row9 = new M17_CYSN();
                            m17_row9.車輌KEY = row.車輌KEY;
                            m17_row9.年月    = row.年月9;
                            m17_row9.売上予算  = row.月9;
                            m17_row9.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row9);
                            context.SaveChanges();

                            M17_CYSN m17_row10 = new M17_CYSN();
                            m17_row10.車輌KEY = row.車輌KEY;
                            m17_row10.年月    = row.年月10;
                            m17_row10.売上予算  = row.月10;
                            m17_row10.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row10);
                            context.SaveChanges();

                            M17_CYSN m17_row11 = new M17_CYSN();
                            m17_row11.車輌KEY = row.車輌KEY;
                            m17_row11.年月    = row.年月11;
                            m17_row11.売上予算  = row.月11;
                            m17_row11.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row11);
                            context.SaveChanges();

                            M17_CYSN m17_row12 = new M17_CYSN();
                            m17_row12.車輌KEY = row.車輌KEY;
                            m17_row12.年月    = row.年月12;
                            m17_row12.売上予算  = row.月12;
                            m17_row12.粗利予算  = 0;
                            // newのエンティティに対してはAcceptChangesで新規追加となる
                            context.M17_CYSN.ApplyChanges(m17_row12);
                            context.SaveChanges();
                        }
                        ;

                        tran.Complete();
                        return;
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }
        }
Ejemplo n.º 17
0
        public int PutAllData(int p明細番号, List <T01_TRN_DATA> t01list, int 担当者ID, int p確認名称区分)
        {
            int count = 0;

            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                using (var tran = new TransactionScope())
                {
                    if (p明細番号 >= 0)
                    {
                        var rect01 = from x in context.T01_TRN
                                     where x.明細番号 == p明細番号
                                     select x;
                        foreach (var rec in rect01)
                        {
                            context.DeleteObject(rec);
                        }
                    }
                    else
                    {
                        // 新番号取得
                        var 明細番号M = (from n in context.M88_SEQ
                                     where n.明細番号ID == 1
                                     select n
                                     ).FirstOrDefault();
                        if (明細番号M == null)
                        {
                            return(-1);
                        }
                        p明細番号        = 明細番号M.現在明細番号 + 1;
                        明細番号M.現在明細番号 = p明細番号;
                        明細番号M.AcceptChanges();
                    }

                    // T01
                    foreach (var t01trn in t01list)
                    {
                        if (t01trn.明細行 == 0)
                        {
                            continue;
                        }

                        if (t01trn.得意先ID == null)
                        {
                            continue;
                        }
                        var t01 = new T01_TRN();

                        var tokkey = (from t in context.M01_TOK where t.得意先ID == t01trn.得意先ID select(int?) t.得意先KEY).FirstOrDefault();
                        var shrkey = (from t in context.M01_TOK where t.得意先ID == t01trn.支払先ID select(int?) t.得意先KEY).FirstOrDefault();
                        var drvkey = (from t in context.M04_DRV where t.乗務員ID == t01trn.乗務員ID select(int?) t.乗務員KEY).FirstOrDefault();
                        var carkey = (from t in context.M05_CAR where t.車輌ID == t01trn.車輌ID select(int?) t.車輌KEY).FirstOrDefault();

                        t01.明細番号       = p明細番号;
                        t01.明細行        = t01trn.明細行;
                        t01.更新日時       = DateTime.Now;
                        t01.登録日時       = t01trn.登録日時 == null ? DateTime.Now : t01trn.登録日時;
                        t01.明細区分       = 1;
                        t01.入力区分       = 3;
                        t01.請求日付       = (DateTime)t01trn.請求日付;
                        t01.支払日付       = t01trn.支払日付;
                        t01.配送日付       = (DateTime)(t01trn.配送日付 == null?t01trn.請求日付:(DateTime)t01trn.配送日付);
                        t01.配送時間       = t01trn.配送時間;
                        t01.得意先KEY     = tokkey;
                        t01.請求内訳ID     = t01trn.請求内訳ID;
                        t01.車輌KEY      = carkey;
                        t01.車種ID       = t01trn.車種ID;
                        t01.支払先KEY     = shrkey;
                        t01.乗務員KEY     = drvkey;
                        t01.自社部門ID     = t01trn.自社部門ID;
                        t01.車輌番号       = t01trn.車輌番号;
                        t01.支払先名2次     = t01trn.支払先名2次;
                        t01.実運送乗務員     = t01trn.実運送乗務員;
                        t01.乗務員連絡先     = t01trn.乗務員連絡先;
                        t01.請求運賃計算区分ID = t01trn.請求運賃計算区分ID == null ? -1 : (int)t01trn.請求運賃計算区分ID;
                        t01.支払運賃計算区分ID = t01trn.支払運賃計算区分ID == null ? -1 : (int)t01trn.支払運賃計算区分ID;
                        t01.数量         = (decimal)(t01trn.数量 == null ? 0 : t01trn.数量);
                        t01.単位         = t01trn.単位;
                        t01.重量         = (decimal)(t01trn.重量 == null ? 0 : t01trn.重量);
                        t01.走行KM       = (int)(t01trn.走行KM == null?0:t01trn.走行KM);
                        t01.実車KM       = (int)(t01trn.実車KM == null?0:t01trn.実車KM);
                        t01.待機時間       = (decimal)(t01trn.待機時間 == null ? 0 : t01trn.待機時間);
                        t01.売上単価       = (decimal)(t01trn.売上単価 == null?0:t01trn.売上単価);
                        t01.売上金額       = (int)(t01trn.売上金額 == null ? 0 : t01trn.売上金額);
                        t01.通行料        = (int)(t01trn.通行料 == null ? 0 : t01trn.通行料);
                        t01.請求割増1      = (int)(t01trn.請求割増1 == null ? 0 : t01trn.請求割増1);
                        t01.請求割増2      = (int)(t01trn.請求割増2 == null?0:t01trn.請求割増2);
                        t01.支払単価       = (decimal)(t01trn.支払単価 == null ? 0 : t01trn.支払単価);
                        t01.支払金額       = (int)(t01trn.支払金額 == null ? 0 : t01trn.支払金額);
                        t01.支払通行料      = (int)(t01trn.支払通行料 == null ? 0 : t01trn.支払通行料);
                        t01.社内区分       = (int)(t01trn.社内区分 == null ? 1 : t01trn.社内区分);
                        t01.請求税区分      = (int)(t01trn.請求税区分 == null ? 0 : t01trn.請求税区分);
                        t01.支払税区分      = (int)(t01trn.支払税区分 == null?0:t01trn.支払税区分);
                        t01.売上未定区分     = (int)(t01trn.売上未定区分 == null?0:t01trn.売上未定区分);
                        t01.支払未定区分     = (int)(t01trn.支払未定区分 == null ? 0 : t01trn.支払未定区分);
                        t01.商品ID       = t01trn.商品ID;
                        t01.商品名        = t01trn.商品名;
                        t01.発地ID       = t01trn.発地ID;
                        t01.発地名        = t01trn.発地名;
                        t01.着地ID       = t01trn.着地ID;
                        t01.着地名        = t01trn.着地名;
                        t01.請求摘要ID     = t01trn.請求摘要ID;
                        t01.請求摘要       = t01trn.請求摘要;
                        t01.請求消費税      = (int)(t01trn.請求消費税 == null ? 0 : t01trn.請求消費税);
                        t01.支払割増1      = (int)(t01trn.支払割増1 == null ? 0 : t01trn.支払割増1);
                        t01.支払割増2      = (int)(t01trn.支払割増2 == null ? 0 : t01trn.支払割増2);
                        t01.支払消費税      = (int)(t01trn.支払消費税 == null ? 0 : t01trn.支払消費税);
                        t01.水揚金額       = (int)(t01trn.水揚金額 == null ? 0 : t01trn.水揚金額);
                        t01.社内備考ID     = t01trn.社内備考ID;
                        t01.社内備考       = t01trn.社内備考;
                        t01.入力者ID      = 担当者ID;
                        t01.確認名称区分     = p確認名称区分;

                        context.T01_TRN.ApplyChanges(t01);
                    }
                    context.SaveChanges();


                    tran.Complete();
                }
            }

            return(p明細番号);
        }
Ejemplo n.º 18
0
        public List <TKS19010_Member2> TKS19010_GetData(string p車輌From, string p車輌To, int?[] p車輌List, string s車輌List, string p作成締日, string p作成年, string p作成月, DateTime p集計期間From, DateTime p集計期間To)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                try
                {
                    DateTime d作成年月;
                    DateTime Wk;
                    d作成年月 = DateTime.TryParse(p作成年 + "/" + p作成月 + "/" + 01, out Wk) ? Wk : DateTime.Today;

                    int p作成年月;

                    if (p作成月.Length == 1)
                    {
                        p作成年月 = AppCommon.IntParse(p作成年 + "0" + p作成月);
                    }
                    else
                    {
                        p作成年月 = AppCommon.IntParse(p作成年 + p作成月);
                    }

                    //日付格納LIST
                    List <TKS19010_Member_day> retList_day = new List <TKS19010_Member_day>();

                    DateTime d日付 = DateTime.TryParse(p集計期間From.ToString(), out Wk) ? Wk :DateTime.Today;
                    //日付、曜日計算処理
                    for (int i = 0; d日付 <= p集計期間To; d日付 = d日付.AddDays(1))
                    {
                        retList_day.Add(new TKS19010_Member_day()
                        {
                            日付 = d日付,
                            曜日 = ("日月火水木金土").Substring(AppCommon.IntParse(d日付.DayOfWeek.ToString("d")), 1) + "曜",
                        });
                    }

                    //                List<TKS19010_Member1> retList = new List<TKS19010_Member1>();

                    context.Connection.Open();

                    //try
                    //{

                    #region 集計


                    var query = (from rday in retList_day
                                 from m05 in context.M05_CAR.Where(q => q.削除日付 == null)
                                 join m17 in context.M17_CYSN.Where(q => q.年月 == p作成年月) on m05.車輌KEY equals m17.車輌KEY into m17Group
                                 join t01 in context.T01_TRN.Where(t01 => ((t01.入力区分 != 3) || (t01.入力区分 == 3 && t01.明細行 == 1))) on new { a = rday.日付, b = m05.車輌KEY } equals new { a = t01.請求日付, b = (int)(t01.車輌KEY == null ? 0 : t01.車輌KEY) } into t01Group
                                 //from t01g in t01Group.DefaultIfEmpty()
                                 orderby m05.車輌ID, rday.日付
                                 select new TKS19010_Member1
                    {
                        日付 = rday.日付,
                        車輌ID = m05.車輌ID,
                        車輌名 = m05.車輌番号,
                        日計 = (t01Group.Sum(q => q.売上金額) == null ? 0 : t01Group.Sum(q => q.売上金額))
                             + (t01Group.Sum(q => q.請求割増1) == null ? 0 : t01Group.Sum(q => q.請求割増1))
                             + (t01Group.Sum(q => q.請求割増2) == null ? 0 : t01Group.Sum(q => q.請求割増2)),
                        予算 = m17Group.Select(q => q.売上予算).FirstOrDefault(),

                        //コードFrom = p車輌From,
                        //コードTo = p車輌To,
                        //ピックアップ指定 = s車輌List,
                        //開始日付 = p集計期間From,
                        //終了日付 = p集計期間To,
                        //年月 = d作成年月,
                    }).AsQueryable();


                    var carlet = (from q in query
                                  group q by q.車輌ID into qGroup
                                  select new TKS19010_Let
                    {
                        車輌ID = qGroup.Key,
                        合計 = qGroup.Sum(q => q.日計),
                    }).AsQueryable();

                    query = (from q in query
                             let bb = from b in carlet where b.合計 != 0 select b.車輌ID
                                      where bb.Contains(q.車輌ID)
                                      select new TKS19010_Member1
                    {
                        日付 = q.日付,
                        車輌ID = q.車輌ID,
                        車輌名 = q.車輌名,
                        日計 = q.日計,
                        予算 = q.予算,
                    }).AsQueryable();


                    var query2 = (from rday in retList_day
                                  join t01 in context.T01_TRN.Where(t01 => ((t01.入力区分 != 3) || (t01.入力区分 == 3 && t01.明細行 == 1))) on new { a = rday.日付 } equals new { a = t01.請求日付 } into t01Group
                                  //from t01g in t01Group.DefaultIfEmpty()
                                  orderby rday.日付
                                  select new TKS19010_Member1
                    {
                        日付 = rday.日付,
                        車輌ID = 0,
                        車輌名 = "全車輌",
                        日計 = (t01Group.Sum(q => q.売上金額) == null ? 0 : t01Group.Sum(q => q.売上金額))
                             + (t01Group.Sum(q => q.請求割増1) == null ? 0 : t01Group.Sum(q => q.請求割増1))
                             + (t01Group.Sum(q => q.請求割増2) == null ? 0 : t01Group.Sum(q => q.請求割増2)),
                        予算 = context.M17_CYSN.Where(q => q.年月 == p作成年月).Any() == false ? 0 : context.M17_CYSN.Where(q => q.年月 == p作成年月).Sum(q => q.売上予算),
                        //コードFrom = p車輌From,
                        //コードTo = p車輌To,
                        //ピックアップ指定 = s車輌List,
                        //開始日付 = p集計期間From,
                        //終了日付 = p集計期間To,
                        //年月 = d作成年月,
                    }).AsQueryable();

                    var query3 = query;

                    //車輌From処理 Min値
                    if (!string.IsNullOrEmpty(p車輌From))
                    {
                        int i車輌From = AppCommon.IntParse(p車輌From);
                        query = query.Where(c => c.車輌ID >= i車輌From);
                    }

                    //車輌To処理 Max値
                    if (!string.IsNullOrEmpty(p車輌To))
                    {
                        int i車輌TO = AppCommon.IntParse(p車輌To);
                        query = query.Where(c => c.車輌ID <= i車輌TO);
                    }

                    if (p車輌List.Length > 0)
                    {
                        if ((string.IsNullOrEmpty(p車輌From)) && (string.IsNullOrEmpty(p車輌To)))
                        {
                            query = query3.Where(q => p車輌List.Contains(q.車輌ID));
                        }
                        else
                        {
                            query = query.Union(query3.Where(q => p車輌List.Contains(q.車輌ID)));
                        }
                    }
                    query = query.Distinct();


                    query3 = query.Union(query2).OrderBy(q => q.車輌ID).ThenBy(q => q.日付);

                    //var query3 = query.OrderBy(q => q.車輌ID).ThenBy(q => q.日付);

                    var query4 = query3.ToList();

                    int     m17code = 0;
                    decimal Ruikei  = 0;
                    foreach (var Lst in query4)
                    {
                        if (m17code != Lst.車輌ID)
                        {
                            Ruikei  = 0;
                            m17code = Lst.車輌ID;
                        }
                        Ruikei += Lst.日計;
                        Lst.累計  = Ruikei;
                        Lst.予算残 = Lst.予算 - Ruikei;
                        Lst.達成率 = Lst.予算 == 0 ? 0 : Math.Round((Ruikei / Lst.予算 * 100), 1, MidpointRounding.AwayFromZero);
                    }
                    ;



                    #endregion

                    //TKS19010_DATASET dset = new TKS19010_DATASET()
                    //{
                    //    売上構成グラフ = query1,
                    //    得意先上位グラフ = query2,
                    //    傭車先上位グラフ = query3,
                    //    損益分岐点グラフ = query4,
                    //};


                    var bumid = (from que in query4
                                 group que by new { que.車輌ID } into queGroup
                                 select new TKS19010_Member1()
                    {
                        車輌ID = queGroup.Key.車輌ID,
                    }).AsQueryable();

                    List <TKS19010_Member2> retList = new List <TKS19010_Member2>();
                    int cnt = 0;
                    int?bumid1 = null, bumid2 = null, bumid3 = null, bumid4 = null;
                    foreach (var id in bumid)
                    {
                        switch (cnt)
                        {
                        case 0:
                            bumid1 = id.車輌ID;
                            break;

                        case 1:
                            bumid2 = id.車輌ID;
                            break;

                        case 2:
                            bumid3 = id.車輌ID;
                            break;
                            //case 3:
                            //    bumid4 = id.車輌ID;
                            //    break;
                        }
                        cnt += 1;

                        if (cnt >= 3)
                        {
                            var q1 = query4.Where(q => q.車輌ID == bumid1);
                            var q2 = query4.Where(q => q.車輌ID == bumid2);
                            var q3 = query4.Where(q => q.車輌ID == bumid3);
                            var q4 = query4.Where(q => q.車輌ID == bumid4);

                            foreach (var row in q1)
                            {
                                TKS19010_Member2 list = new TKS19010_Member2()
                                {
                                    日付    = row.日付,
                                    車輌ID1 = row.車輌ID,
                                    車輌名1  = row.車輌名,
                                    日計1   = row.日計,
                                    累計1   = row.累計,
                                    予算残1  = row.予算残,
                                    達成率1  = row.達成率,
                                    予算1   = row.予算,

                                    車輌ID2 = q2.Where(q => q.日付 == row.日付).Select(q => q.車輌ID).FirstOrDefault(),
                                    車輌名2  = q2.Where(q => q.日付 == row.日付).Select(q => q.車輌名).FirstOrDefault(),
                                    日計2   = q2.Where(q => q.日付 == row.日付).Select(q => q.日計).FirstOrDefault(),
                                    累計2   = q2.Where(q => q.日付 == row.日付).Select(q => q.累計).FirstOrDefault(),
                                    予算残2  = q2.Where(q => q.日付 == row.日付).Select(q => q.予算残).FirstOrDefault(),
                                    達成率2  = q2.Where(q => q.日付 == row.日付).Select(q => q.達成率).FirstOrDefault(),
                                    予算2   = q2.Where(q => q.日付 == row.日付).Select(q => q.予算).FirstOrDefault(),

                                    車輌ID3 = q3.Where(q => q.日付 == row.日付).Select(q => q.車輌ID).FirstOrDefault(),
                                    車輌名3  = q3.Where(q => q.日付 == row.日付).Select(q => q.車輌名).FirstOrDefault(),
                                    日計3   = q3.Where(q => q.日付 == row.日付).Select(q => q.日計).FirstOrDefault(),
                                    累計3   = q3.Where(q => q.日付 == row.日付).Select(q => q.累計).FirstOrDefault(),
                                    予算残3  = q3.Where(q => q.日付 == row.日付).Select(q => q.予算残).FirstOrDefault(),
                                    達成率3  = q3.Where(q => q.日付 == row.日付).Select(q => q.達成率).FirstOrDefault(),
                                    予算3   = q3.Where(q => q.日付 == row.日付).Select(q => q.予算).FirstOrDefault(),

                                    コードFrom  = p車輌From,
                                    コードTo    = p車輌To,
                                    ピックアップ指定 = s車輌List,
                                    開始年月日    = p集計期間From,
                                    終了年月日    = p集計期間To,
                                    年月       = d作成年月,
                                };
                                retList.Add(list);
                            }



                            cnt    = 0;
                            bumid1 = null; bumid2 = null; bumid3 = null; bumid4 = null;
                        }
                    }
                    //余り分があれば
                    if (cnt > 0)
                    {
                        var q1 = query4.Where(q => q.車輌ID == bumid1);
                        var q2 = query4.Where(q => q.車輌ID == bumid2);
                        var q3 = query4.Where(q => q.車輌ID == bumid3);
                        var q4 = query4.Where(q => q.車輌ID == bumid4);

                        foreach (var row in q1)
                        {
                            TKS19010_Member2 list = new TKS19010_Member2()
                            {
                                日付    = row.日付,
                                車輌ID1 = row.車輌ID,
                                車輌名1  = row.車輌名,
                                日計1   = row.日計,
                                累計1   = row.累計,
                                予算残1  = row.予算残,
                                達成率1  = row.達成率,
                                予算1   = row.予算,

                                車輌ID2 = q2.Where(q => q.日付 == row.日付).Select(q => q.車輌ID).FirstOrDefault(),
                                車輌名2  = q2.Where(q => q.日付 == row.日付).Select(q => q.車輌名).FirstOrDefault(),
                                日計2   = q2.Where(q => q.日付 == row.日付).Select(q => q.日計).FirstOrDefault(),
                                累計2   = q2.Where(q => q.日付 == row.日付).Select(q => q.累計).FirstOrDefault(),
                                予算残2  = q2.Where(q => q.日付 == row.日付).Select(q => q.予算残).FirstOrDefault(),
                                達成率2  = q2.Where(q => q.日付 == row.日付).Select(q => q.達成率).FirstOrDefault(),
                                予算2   = q2.Where(q => q.日付 == row.日付).Select(q => q.予算).FirstOrDefault(),

                                車輌ID3 = q3.Where(q => q.日付 == row.日付).Select(q => q.車輌ID).FirstOrDefault(),
                                車輌名3  = q3.Where(q => q.日付 == row.日付).Select(q => q.車輌名).FirstOrDefault(),
                                日計3   = q3.Where(q => q.日付 == row.日付).Select(q => q.日計).FirstOrDefault(),
                                累計3   = q3.Where(q => q.日付 == row.日付).Select(q => q.累計).FirstOrDefault(),
                                予算残3  = q3.Where(q => q.日付 == row.日付).Select(q => q.予算残).FirstOrDefault(),
                                達成率3  = q3.Where(q => q.日付 == row.日付).Select(q => q.達成率).FirstOrDefault(),
                                予算3   = q3.Where(q => q.日付 == row.日付).Select(q => q.予算).FirstOrDefault(),

                                コードFrom  = p車輌From,
                                コードTo    = p車輌To,
                                ピックアップ指定 = s車輌List,
                                開始年月日    = p集計期間From,
                                終了年月日    = p集計期間To,
                                年月       = d作成年月,
                            };
                            retList.Add(list);
                        }
                    }



                    return(retList);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 対象年月日の棚卸更新の実行済み確認、棚卸入力確認を行う
        /// </summary>
        /// <param name="pMyCompany">会社コード</param>
        /// <param name="pStocktakingDate">棚卸日</param>
        /// <param name="pParamDic">パラメータ辞書</param>
        /// <returns></returns>
        public bool IsCheckRegistered(int pMyCompany, string pStocktakingDate, Dictionary <string, string> pParamDic)
        {
            DateTime dteStocktaking = DateTime.Parse(pStocktakingDate);

            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                //  在庫テーブルのデータが棚卸更新済みかチェック

                // ---------------------------
                // 情報取得
                // ---------------------------
                // 更新済棚卸在庫情報(品番マスタ,倉庫マスタ)

                var 更新済棚卸在庫List = GetStockTakingList(context, pMyCompany, pStocktakingDate, pParamDic, 1);

                var 在庫List          = GetStockList(context, pMyCompany, pStocktakingDate, pParamDic);
                var stocktakingList = 更新済棚卸在庫List.Union(在庫List, new ParameterComparer());

                #region 入力項目による絞込

                // 自社品番の条件チェック
                string myProduct = pParamDic["自社品番"];
                if (string.IsNullOrEmpty(myProduct) == false)
                {
                    stocktakingList = stocktakingList.Where(w => w.自社品番 == myProduct);
                }

                // 品名の条件チェック
                string productName = pParamDic["自社品名"];
                if (string.IsNullOrEmpty(productName) == false)
                {
                    stocktakingList = stocktakingList.Where(w => w.自社品名 != null && w.自社品名.Contains(productName));
                }

                // 商品分類の条件チェック
                int itemType;
                if (int.TryParse(pParamDic["商品分類"], out itemType) == true)
                {
                    if (itemType >= CommonConstants.商品分類.食品.GetHashCode())
                    {
                        stocktakingList = stocktakingList.Where(w => w.商品分類 == itemType);
                    }
                }

                // ブランドの条件チェック
                string brand = pParamDic["ブランドコード"];
                if (string.IsNullOrEmpty(brand) == false)
                {
                    stocktakingList = stocktakingList.Where(w => w.ブランド == brand);
                }

                // シリーズの条件チェック
                string series = pParamDic["シリーズコード"];
                if (string.IsNullOrEmpty(series) == false)
                {
                    stocktakingList = stocktakingList.Where(w => w.シリーズ == series);
                }

                #endregion

                // ---------------------------
                // チェック処理
                // ---------------------------

                bool retResult = stocktakingList.Count() > 0 && stocktakingList.All(c => c.更新済みFLG == 1);

                return(retResult);
            }
        }
Ejemplo n.º 20
0
        public List <TKS19010_Member1> TKS19010_GetData_CSV(string p車輌From, string p車輌To, int?[] p車輌List, string s車輌List, string p作成締日, string p作成年, string p作成月, DateTime p集計期間From, DateTime p集計期間To)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                try
                {
                    DateTime d作成年月;
                    DateTime Wk;
                    d作成年月 = DateTime.TryParse(p作成年 + "/" + p作成月 + "/" + 01, out Wk) ? Wk : DateTime.Today;

                    int p作成年月;

                    if (p作成月.Length == 1)
                    {
                        p作成年月 = AppCommon.IntParse(p作成年 + "0" + p作成月);
                    }
                    else
                    {
                        p作成年月 = AppCommon.IntParse(p作成年 + p作成月);
                    }

                    //日付格納LIST
                    List <TKS19010_Member_day> retList_day = new List <TKS19010_Member_day>();

                    DateTime d日付 = DateTime.TryParse(p集計期間From.ToString(), out Wk) ? Wk : DateTime.Today;
                    //日付、曜日計算処理
                    for (int i = 0; d日付 <= p集計期間To; d日付 = d日付.AddDays(1))
                    {
                        retList_day.Add(new TKS19010_Member_day()
                        {
                            日付 = d日付,
                            曜日 = ("日月火水木金土").Substring(AppCommon.IntParse(d日付.DayOfWeek.ToString("d")), 1) + "曜",
                        });
                    }

                    //                List<TKS19010_Member1> retList = new List<TKS19010_Member1>();

                    context.Connection.Open();

                    //try
                    //{

                    #region 集計


                    var query = (from rday in retList_day
                                 from m05 in context.M05_CAR.Where(q => q.削除日付 == null)
                                 join m17 in context.M17_CYSN.Where(q => q.年月 == p作成年月) on m05.車輌KEY equals m17.車輌KEY into m17Group
                                 join t01 in context.T01_TRN.Where(t01 => ((t01.入力区分 != 3) || (t01.入力区分 == 3 && t01.明細行 == 1))) on new { a = rday.日付, b = m05.車輌KEY } equals new { a = t01.請求日付, b = (int)(t01.車輌KEY == null ? 0 : t01.車輌KEY) } into t01Group
                                 //from t01g in t01Group.DefaultIfEmpty()
                                 orderby m05.車輌ID, rday.日付
                                 select new TKS19010_Member1
                    {
                        日付 = rday.日付,
                        車輌ID = m05.車輌ID,
                        車輌名 = m05.車輌番号,
                        日計 = (t01Group.Sum(q => q.売上金額) == null ? 0 : t01Group.Sum(q => q.売上金額))
                             + (t01Group.Sum(q => q.請求割増1) == null ? 0 : t01Group.Sum(q => q.請求割増1))
                             + (t01Group.Sum(q => q.請求割増2) == null ? 0 : t01Group.Sum(q => q.請求割増2)),
                        予算 = m17Group.Select(q => q.売上予算).FirstOrDefault(),

                        //コードFrom = p車輌From,
                        //コードTo = p車輌To,
                        //ピックアップ指定 = s車輌List,
                        //開始日付 = p集計期間From,
                        //終了日付 = p集計期間To,
                        //年月 = d作成年月,
                    }).AsQueryable();


                    var carlet = (from q in query
                                  group q by q.車輌ID into qGroup
                                  select new TKS19010_Let
                    {
                        車輌ID = qGroup.Key,
                        合計 = qGroup.Sum(q => q.日計),
                    }).AsQueryable();

                    query = (from q in query
                             let bb = from b in carlet where b.合計 != 0 select b.車輌ID
                                      where bb.Contains(q.車輌ID)
                                      select new TKS19010_Member1
                    {
                        日付 = q.日付,
                        車輌ID = q.車輌ID,
                        車輌名 = q.車輌名,
                        日計 = q.日計,
                        予算 = q.予算,
                    }).AsQueryable();


                    var query2 = (from rday in retList_day
                                  join t01 in context.T01_TRN.Where(t01 => ((t01.入力区分 != 3) || (t01.入力区分 == 3 && t01.明細行 == 1))) on new { a = rday.日付 } equals new { a = t01.請求日付 } into t01Group
                                  //from t01g in t01Group.DefaultIfEmpty()
                                  orderby rday.日付
                                  select new TKS19010_Member1
                    {
                        日付 = rday.日付,
                        車輌ID = 0,
                        車輌名 = "全車輌",
                        日計 = (t01Group.Sum(q => q.売上金額) == null ? 0 : t01Group.Sum(q => q.売上金額))
                             + (t01Group.Sum(q => q.請求割増1) == null ? 0 : t01Group.Sum(q => q.請求割増1))
                             + (t01Group.Sum(q => q.請求割増2) == null ? 0 : t01Group.Sum(q => q.請求割増2)),
                        予算 = context.M17_CYSN.Where(q => q.年月 == p作成年月).Any() == false ? 0 : context.M17_CYSN.Where(q => q.年月 == p作成年月).Sum(q => q.売上予算),
                        //コードFrom = p車輌From,
                        //コードTo = p車輌To,
                        //ピックアップ指定 = s車輌List,
                        //開始日付 = p集計期間From,
                        //終了日付 = p集計期間To,
                        //年月 = d作成年月,
                    }).AsQueryable();

                    var query3 = query;

                    //車輌From処理 Min値
                    if (!string.IsNullOrEmpty(p車輌From))
                    {
                        int i車輌From = AppCommon.IntParse(p車輌From);
                        query = query.Where(c => c.車輌ID >= i車輌From);
                    }

                    //車輌To処理 Max値
                    if (!string.IsNullOrEmpty(p車輌To))
                    {
                        int i車輌TO = AppCommon.IntParse(p車輌To);
                        query = query.Where(c => c.車輌ID <= i車輌TO);
                    }

                    if (p車輌List.Length > 0)
                    {
                        if ((string.IsNullOrEmpty(p車輌From)) && (string.IsNullOrEmpty(p車輌To)))
                        {
                            query = query3.Where(q => p車輌List.Contains(q.車輌ID));
                        }
                        else
                        {
                            query = query.Union(query3.Where(q => p車輌List.Contains(q.車輌ID)));
                        }
                    }
                    query = query.Distinct();


                    query3 = query.Union(query2).OrderBy(q => q.車輌ID).ThenBy(q => q.日付);

                    //var query3 = query.OrderBy(q => q.車輌ID).ThenBy(q => q.日付);

                    var query4 = query3.ToList();

                    int     m17code = 0;
                    decimal Ruikei  = 0;
                    foreach (var Lst in query4)
                    {
                        if (m17code != Lst.車輌ID)
                        {
                            Ruikei  = 0;
                            m17code = Lst.車輌ID;
                        }
                        Ruikei += Lst.日計;
                        Lst.累計  = Ruikei;
                        Lst.予算残 = Lst.予算 - Ruikei;
                        Lst.達成率 = Lst.予算 == 0 ? 0 : Math.Round((Ruikei / Lst.予算 * 100), 1, MidpointRounding.AwayFromZero);
                    }
                    ;



                    #endregion

                    return(query4);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Ejemplo n.º 21
0
        /// <summary>
        /// S13_DRVSBの更新 変動項目更新
        /// </summary>
        /// <param name="s13SBdrvs">S13_DRVSB_Member</param>
        public void Update_Hendo(S13_DRV_Member s13drv, List <S13_DRVSB_Member> s13SBHen, List <S13_DRVSB_Member> s13SBJin, List <S13_DRVSB_Member> s13SBKotei)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                // トランザクションのインスタンス化(開始)
                using (var tran = new TransactionScope())
                {
                    context.Connection.Open();

                    var ret = (from x in context.S13_DRVSB
                               where x.乗務員KEY == s13drv.乗務員KEY && x.集計年月 == s13drv.集計年月
                               select x).ToList();
                    foreach (var rec1 in ret)
                    {
                        context.DeleteObject(rec1);
                    }

                    foreach (S13_DRVSB_Member ddt in s13SBHen)
                    {
                        var dat = new S13_DRVSB()
                        {
                            乗務員KEY = ddt.乗務員KEY,
                            集計年月   = ddt.集計年月,
                            経費項目ID = ddt.経費項目ID,
                            登録日時   = ddt.登録日時,
                            更新日時   = DateTime.Now,
                            経費項目名  = ddt.経費項目名,
                            固定変動区分 = ddt.固定変動区分,
                            金額     = ddt.金額,
                        };
                        context.S13_DRVSB.ApplyChanges(dat);
                    }

                    foreach (S13_DRVSB_Member ddt in s13SBJin)
                    {
                        var dat = new S13_DRVSB()
                        {
                            乗務員KEY = ddt.乗務員KEY,
                            集計年月   = ddt.集計年月,
                            経費項目ID = ddt.経費項目ID,
                            登録日時   = ddt.登録日時,
                            更新日時   = DateTime.Now,
                            経費項目名  = ddt.経費項目名,
                            固定変動区分 = ddt.固定変動区分,
                            金額     = ddt.金額,
                        };
                        context.S13_DRVSB.ApplyChanges(dat);
                    }

                    foreach (S13_DRVSB_Member ddt in s13SBKotei)
                    {
                        var dat = new S13_DRVSB()
                        {
                            乗務員KEY = ddt.乗務員KEY,
                            集計年月   = ddt.集計年月,
                            経費項目ID = ddt.経費項目ID,
                            登録日時   = ddt.登録日時,
                            更新日時   = DateTime.Now,
                            経費項目名  = ddt.経費項目名,
                            固定変動区分 = ddt.固定変動区分,
                            金額     = ddt.金額,
                        };
                        context.S13_DRVSB.ApplyChanges(dat);
                    }

                    context.SaveChanges();
                    tran.Complete();
                }
            }
        }
Ejemplo n.º 22
0
        public List <SRY10010_Member> SRY10010_GetDataList(string s車輌From, string s車輌To, int?[] i車輌List, string s車輌List, DateTime d集計期間From, DateTime d集計期間To)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                string 車輌指定ピックアップ            = string.Empty;
                int    i集計期間From               = AppCommon.IntParse(d集計期間From.ToString("yyyyMM"));
                int    i集計期間To                 = AppCommon.IntParse(d集計期間To.ToString("yyyyMM"));
                List <SRY10010_Member> retList = new List <SRY10010_Member>();
                context.Connection.Open();

                 try
                {
                    //var 車輌自社締日 = (from m87 in context.M87_CNTL.Where(m87 => m87.管理ID == 1)
                    //             select new {m87.車輌自社締日}).ToList();
                    ////int iSime = AppCommon.IntParse(車輌自社締日[0].車輌自社締日.ToString());
                    //iSime += 1;
                    //if ((iSime) >= 32)
                    //{
                    //    iSime = 1;
                    //}
                    //if (iSime.ToString().Length == 1){
                    //    if (!DateTime.TryParse(d集計期間From.ToString("yyyy/MM/0") + iSime.ToString(), out d集計期間From))
                    //    {
                    //        return retList;
                    //    }
                    //}
                    //else
                    //{
                    //    if (!DateTime.TryParse(d集計期間From.ToString("yyyy/MM/") + iSime.ToString(), out d集計期間From))
                    //    {
                    //        return retList;
                    //    }
                    //}

                    //var time = (from s14 in context.V_S14_CAR.Where(c => c.集計年月 >= i集計期間From && c.集計年月 <= i集計期間To)
                    //			select new SRY10010_jikan
                    //			{
                    //				KEY = s14.車輌KEY,
                    //				コード = (from m05 in context.M05_CAR.Where(c => c.車輌KEY == s14.車輌KEY) select m05.車輌ID).FirstOrDefault(),
                    //				拘束時間 = s14.拘束時間,
                    //			}).ToList();
                    //List<SRY10010_jikan> time2 = new List<SRY10010_jikan>();

                    //foreach (var rec in time)
                    //{
                    //	// 各時間項目の時分を、分に変換する。
                    //	rec.拘束時間 = LinqSub.時間TO分(rec.拘束時間);
                    //	time2.Add(rec);
                    //}

                    var query2 = (from s14sb in context.S14_CARSB
                                  join m07 in context.M07_KEI on s14sb.経費項目ID equals m07.経費項目ID into m07Group
                                  select new { s14sb.金額, s14sb.経費項目ID, s14sb.経費項目名, s14sb.固定変動区分, s14sb.更新日時, s14sb.車輌KEY, s14sb.集計年月, s14sb.登録日時, m07Group.FirstOrDefault().経費区分 }
                                  );

                    var query = (from m05 in context.M05_CAR.Where(m05 => m05.削除日付 == null)
                                 join m04 in context.M04_DRV on m05.乗務員KEY equals m04.乗務員KEY into m04Group
                                 join s14 in context.V_S14_CAR.Where(c => c.集計年月 >= i集計期間From && c.集計年月 <= i集計期間To) on m05.車輌KEY equals s14.車輌KEY into s14Group
                                 join s14sb in query2.Where(c => c.集計年月 >= i集計期間From && c.集計年月 <= i集計期間To) on m05.車輌KEY equals s14sb.車輌KEY into s14sbGroup
                                 select new SRY10010_Member
                    {
                        コード = m05.車輌ID,
                        車輌番号 = m05.車輌番号,
                        廃車日 = m05.廃車日,
                        乗務員名 = m04Group.FirstOrDefault().乗務員名,
                        収入日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round(s14Group.Sum(c => c.運送収入) / s14Group.Sum(c => c.稼動日数), 0),
                        収入時間 = (s14Group.Sum(c => c.拘束時間)) == 0 ? 0 : Math.Round((s14Group.Sum(c => c.運送収入)) / (decimal)((s14Group.Sum(c => c.拘束時間)) / 60), 0),
                        収入KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round(s14Group.Sum(c => c.運送収入) / s14Group.Sum(c => c.走行KM), 0),
                        収入屯数 = s14Group.Sum(c => c.輸送屯数) == 0 ? 0 : Math.Round(s14Group.Sum(c => c.運送収入) / s14Group.Sum(c => c.輸送屯数), 0),
                        固定費日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.固定変動区分 == 0).Sum(c => c.金額) / s14Group.Sum(c => c.稼動日数), 0),
                        動費KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.固定変動区分 == 1).Sum(c => c.金額) / s14Group.Sum(c => c.走行KM), 0),
                        修理日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.経費項目ID == s14sbGroup.Where(d => d.経費区分 == 5).Min(d => d.経費項目ID)).Sum(c => c.金額) / s14Group.Sum(c => c.稼動日数), 0),
                        修理KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.経費項目ID == s14sbGroup.Where(d => d.経費区分 == 5).Min(d => d.経費項目ID)).Sum(c => c.金額) / s14Group.Sum(c => c.走行KM), 0),
                        益日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round((s14Group.Sum(c => c.運送収入) - s14sbGroup.Sum(c => c.金額)) / s14Group.Sum(c => c.稼動日数), 0),
                        益KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round((s14Group.Sum(c => c.運送収入) - s14sbGroup.Sum(c => c.金額)) / s14Group.Sum(c => c.走行KM), 0),
                        稼働率 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round((decimal)(s14Group.Sum(c => c.拘束時間) / (s14Group.Sum(c => c.稼動日数) * 1440)), 2),
                        //稼働率 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : (s14Group.Sum(c => c.稼動日数) * 1440),
                        集計年月From = d集計期間From,
                        集計年月To = d集計期間To,
                        コードFrom = s車輌From,
                        コードTo = s車輌To,
                        車輌List = 車輌指定ピックアップ == "" ? "無" : 車輌指定ピックアップ
                    }).AsQueryable();

                    //foreach (SRY10010_Member row in query)
                    //{
                    //	foreach (SRY10010_jikan row2 in time2)
                    //	{
                    //		if (row.コード == row2.コード)
                    //		{
                    //			row.稼働率 = row.稼働率 == null ? 0 : row.稼働率 == 0 ? 0 : Math.Round((decimal)row2.拘束時間 / (decimal)row.稼働率, MidpointRounding.AwayFromZero);
                    //		}
                    //	}
                    //}

                    query = query.Distinct();
                    int i車輌FROM;
                    int i車輌TO;

                    //部門From処理 Min値
                    if (!string.IsNullOrEmpty(s車輌From))
                    {
                        i車輌FROM = AppCommon.IntParse(s車輌From);
                    }
                    else
                    {
                        i車輌FROM = int.MinValue;
                    }

                    //部門To処理 Max値
                    if (!string.IsNullOrEmpty(s車輌To))
                    {
                        i車輌TO = AppCommon.IntParse(s車輌To);
                    }
                    else
                    {
                        i車輌TO = int.MaxValue;
                    }

                    var intCause = i車輌List;

                    if (string.IsNullOrEmpty(s車輌From + s車輌To))
                    {
                        if (i車輌List.Length > 0)
                        {
                            query = query.Where(q => intCause.Contains(q.コード));
                        }
                    }
                    else
                    {
                        if (i車輌List.Length > 0)
                        {
                            query = query.Where(q => intCause.Contains(q.コード) || (q.コード >= i車輌FROM && q.コード <= i車輌TO));
                        }
                        else
                        {
                            query = query.Where(q => (q.コード >= i車輌FROM && q.コード <= i車輌TO));
                        }
                    }

                    if (i車輌List.Length > 0)
                    {
                        for (int Count = 0; Count < query.Count(); Count++)
                        {
                            車輌指定ピックアップ = 車輌指定ピックアップ + i車輌List[Count].ToString();

                            if (Count < i車輌List.Length)
                            {
                                if (Count == i車輌List.Length - 1)
                                {
                                    break;
                                }

                                車輌指定ピックアップ = 車輌指定ピックアップ + ",";
                            }

                            if (i車輌List.Length == 1)
                            {
                                break;
                            }
                        }
                    }

                    query   = query.Distinct();
                    retList = query.Where(c => c.廃車日 == null || ((((DateTime)c.廃車日).Year * 100 + ((DateTime)c.廃車日).Month) >= i集計期間From)).ToList();
                    //retList = query.ToList();
                    return(retList);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 納品書印刷データ取得
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        //20190919 mod-s CB 軽減税率対応 ccfg.自社区分 が 0の場合は現状のまま 1の場合はT02_URHDの会社名コードとccfg.自社コードが一致す
        //public List<PrintoutMember> GetPrintData(string 売上日From, string 売上日To, string 得意先コード, string 得意先枝番, string 伝票番号From, string 伝票番号To)
        public List <PrintoutMember> GetPrintData(
            string 売上日From, string 売上日To,
            string 得意先コード, string 得意先枝番,
            string 伝票番号From, string 伝票番号To,
            int?自社コード)
        //20190919 mod-e CB 軽減税率対応
        {
            List <PrintoutMember> result = new List <PrintoutMember>();

            // パラメータの型変換
            DateTime dateVal;
            int      iVal;

            if (string.IsNullOrEmpty(売上日From))
            {
                dateVal = DateTime.MinValue;
            }
            else if (!DateTime.TryParse(売上日From, out dateVal))
            {
                throw new Exception("必須パラメータ不足");
            }
            DateTime DateFrom = dateVal;

            if (string.IsNullOrEmpty(売上日To))
            {
                dateVal = DateTime.MaxValue;
            }
            else if (!DateTime.TryParse(売上日To, out dateVal))
            {
                throw new Exception("必須パラメータ不足");
            }
            DateTime DateTo = dateVal;

            int?code    = int.TryParse(得意先コード, out iVal) ? iVal : (int?)null;
            int?eda     = int.TryParse(得意先枝番, out iVal) ? iVal : (int?)null;
            int?denFrom = int.TryParse(伝票番号From, out iVal) ? iVal : (int?)null;
            int?denTo   = int.TryParse(伝票番号To, out iVal) ? iVal : (int?)null;

            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                // ヘッダ情報取得
                var urhdList =
                    context.T02_URHD
                    .Where(w => w.削除日時 == null && w.売上日 >= DateFrom && w.売上日 <= DateTo);

                // 入力パラメータによるデータ絞込み
                if (code != null && eda != null)
                {
                    urhdList = urhdList.Where(w => w.得意先コード == code && w.得意先枝番 == eda);
                }
                else if (code != null)
                {
                    urhdList = urhdList.Where(w => w.得意先コード == code);
                }

                if (denFrom != null)
                {
                    urhdList = urhdList.Where(w => w.伝票番号 >= denFrom);
                }

                if (denTo != null)
                {
                    urhdList = urhdList.Where(w => w.伝票番号 <= denTo);
                }

                //20190919 add-s CB 軽減税率対応
                //ccfg.自社区分 が 0の場合は現状のままccfg.自社区分が1の場合は、
                //T02_URHDの会社名コードとccfg.自社コードが一致する
                if (自社コード != null)
                {
                    urhdList = urhdList.Where(w => w.会社名コード == 自社コード);
                }
                //20190919 add-e CB 軽減税率対応

                foreach (T02_URHD hdRow in urhdList.ToList())
                {
                    PrintoutMember prtMem = new PrintoutMember();

                    var Tok =
                        context.M01_TOK
                        .Where(w => w.削除日時 == null && w.取引先コード == hdRow.得意先コード && w.枝番 == hdRow.得意先枝番)
                        .FirstOrDefault();

                    var jis_nusi =
                        context.M70_JIS
                        .Where(w => w.削除日時 == null && w.自社コード == hdRow.出荷元コード)
                        .FirstOrDefault();

                    var jis_jisya =
                        context.M70_JIS
                        .Where(w => w.削除日時 == null && w.自社コード == hdRow.会社名コード)
                        .FirstOrDefault();

                    var syukS =
                        context.M01_TOK
                        .Where(w => w.削除日時 == null && w.取引先コード == hdRow.出荷先コード && w.枝番 == hdRow.出荷先枝番)
                        .FirstOrDefault();

                    var syukM =
                        context.M01_TOK
                        .Where(w => w.削除日時 == null && w.取引先コード == hdRow.出荷元コード && w.枝番 == hdRow.出荷元枝番)
                        .FirstOrDefault();

                    // ヘッダ情報を設定
                    setPrintHeaderData(prtMem, hdRow, Tok, jis_nusi, jis_jisya, syukS, syukM);

                    // 納品書明細情報データを作成
                    var urdtlList =
                        context.T02_URDTL.Where(w => w.削除日時 == null && w.伝票番号 == hdRow.伝票番号)
                        .GroupJoin(context.M09_HIN.Where(w => w.削除日時 == null),
                                   x => x.品番コード,
                                   y => y.品番コード,
                                   (x, y) => new { x, y })
                        .SelectMany(z => z.y.DefaultIfEmpty(),
                                    (a, b) => new { URDTL = a.x, HIN = b })
                        .GroupJoin(context.M10_TOKHIN.Where(w => w.削除日時 == null),
                                   x => new { 品番 = x.URDTL.品番コード, 得意先 = hdRow.得意先コード, 枝番 = hdRow.得意先枝番 },   // No-174 Mod
                                   y => new { 品番 = y.品番コード, 得意先 = y.取引先コード, 枝番 = y.枝番 },                    // No-174 Mod
                                   (x, y) => new { x, y })
                        .SelectMany(z => z.y.DefaultIfEmpty(),
                                    (c, d) => new { c.x.URDTL, c.x.HIN, TOKHIN = d })
                        .Select(x => new DetailExtension
                    {
                        行番号   = x.URDTL.行番号,                // No-174 Add
                        品番    = x.HIN.自社品番,
                        得意先品番 = x.TOKHIN == null ? string.Empty : x.TOKHIN.得意先品番コード,
                        品名    = !string.IsNullOrEmpty(x.URDTL.自社品名) ? x.URDTL.自社品名 : x.HIN.自社品名,                     // No.389 Mod
                        数量    = x.URDTL.数量,
                        単位    = x.URDTL.単位,
                        単価    = x.URDTL.単価,
                        金額    = x.URDTL.金額,

                        //20190902 CB add & mod-s
                        //摘要 = x.URDTL.摘要
                        摘要    = x.URDTL.摘要,
                        消費税区分 = x.HIN.消費税区分
                                //20190902 CB add & mod-e
                    });

                    //// 得意先品番(自社品番)の数量集計データを作成
                    //var query =
                    //    urdtlList.GroupBy(g => new { g.得意先品番, g.単価 })
                    //        .Select(x => new DetailExtension
                    //        {
                    //            品番 = x.Key.得意先品番,
                    //            得意先品番 = string.Empty,
                    //            品名 = x.FirstOrDefault().品名,
                    //            数量 = x.Sum(s => s.数量),
                    //            単位 = x.FirstOrDefault().単位,
                    //            単価 = x.Sum(s => s.単価),
                    //            金額 = x.Sum(s => s.金額),

                    //            //20190902 add & mod-s CB軽減税率対応
                    //            //摘要 = x.FirstOrDefault().摘要
                    //            摘要 = x.FirstOrDefault().摘要,
                    //            消費税区分 = x.FirstOrDefault().消費税区分
                    //            //20190902 add & mod-e CB軽減税率対応
                    //        });

                    // 納品書(下部)のデータ設定
                    int rowNum = 1;
                    foreach (DetailExtension dtlRow in urdtlList.OrderBy(o => o.行番号))      // No-174 Mod
                    {
                        setPrintNouhinData(prtMem, dtlRow, rowNum);
                        rowNum++;
                    }

                    // 納品書(上部)のデータ設定
                    rowNum = 1;
                    foreach (DetailExtension dtlRow in urdtlList.OrderBy(o => o.行番号))      // No-174 Mod
                    {
                        setPrintDetailData(prtMem, dtlRow, rowNum);
                        rowNum++;
                    }

                    result.Add(prtMem);
                }
            }

            return(result);
        }
Ejemplo n.º 24
0
        public List <SRY10010_Member_CSV> SRY10010_GetData_CSV(string s車輌From, string s車輌To, int?[] i車輌List, string s車輌List, DateTime d集計期間From, DateTime d集計期間To)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                int i集計期間From = AppCommon.IntParse(d集計期間From.ToString("yyyyMM"));
                int i集計期間To   = AppCommon.IntParse(d集計期間To.ToString("yyyyMM"));
                List <SRY10010_Member_CSV> retList = new List <SRY10010_Member_CSV>();
                context.Connection.Open();

                try
                {
                    //var 車輌自社締日 = (from m87 in context.M87_CNTL.Where(m87 => m87.管理ID == 1)
                    //             select new {m87.車輌自社締日}).ToList();
                    ////int iSime = AppCommon.IntParse(車輌自社締日[0].車輌自社締日.ToString());
                    //iSime += 1;
                    //if ((iSime) >= 32)
                    //{
                    //    iSime = 1;
                    //}
                    //if (iSime.ToString().Length == 1){
                    //    if (!DateTime.TryParse(d集計期間From.ToString("yyyy/MM/0") + iSime.ToString(), out d集計期間From))
                    //    {
                    //        return retList;
                    //    }
                    //}
                    //else
                    //{
                    //    if (!DateTime.TryParse(d集計期間From.ToString("yyyy/MM/") + iSime.ToString(), out d集計期間From))
                    //    {
                    //        return retList;
                    //    }
                    //}

                    var query2 = (from s14sb in context.S14_CARSB
                                  join m07 in context.M07_KEI on s14sb.経費項目ID equals m07.経費項目ID into m07Group
                                  select new { s14sb.金額, s14sb.経費項目ID, s14sb.経費項目名, s14sb.固定変動区分, s14sb.更新日時, s14sb.車輌KEY, s14sb.集計年月, s14sb.登録日時, m07Group.FirstOrDefault().経費区分 }
                                  );

                    var query = (from m05 in context.M05_CAR.Where(m05 => m05.削除日付 == null)
                                 join m04 in context.M04_DRV on m05.乗務員KEY equals m04.乗務員KEY into m04Group
                                 join s14 in context.V_S14_CAR.Where(c => c.集計年月 >= i集計期間From && c.集計年月 <= i集計期間To) on m05.車輌KEY equals s14.車輌KEY into s14Group
                                 join s14sb in query2.Where(c => c.集計年月 >= i集計期間From && c.集計年月 <= i集計期間To) on m05.車輌KEY equals s14sb.車輌KEY into s14sbGroup
                                 select new SRY10010_Member_CSV
                    {
                        コード = m05.車輌ID,
                        車輌番号 = m05.車輌番号,
                        廃車日 = m05.廃車日,
                        乗務員名 = m04Group.FirstOrDefault().乗務員名,
                        収入日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round(s14Group.Sum(c => c.運送収入) / s14Group.Sum(c => c.稼動日数), 0),
                        収入時間 = (s14Group.Sum(c => c.拘束時間) * 60) == 0 ? 0 : Math.Round((s14Group.Sum(c => c.運送収入)) / (decimal)((s14Group.Sum(c => c.拘束時間)) / 60), 0),
                        収入KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round(s14Group.Sum(c => c.運送収入) / s14Group.Sum(c => c.走行KM), 0),
                        収入屯数 = s14Group.Sum(c => c.輸送屯数) == 0 ? 0 : Math.Round(s14Group.Sum(c => c.運送収入) / s14Group.Sum(c => c.輸送屯数), 0),
                        固定費日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.固定変動区分 == 0).Sum(c => c.金額) / s14Group.Sum(c => c.稼動日数), 0),
                        動費KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.固定変動区分 == 1).Sum(c => c.金額) / s14Group.Sum(c => c.走行KM), 0),
                        修理日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.経費項目ID == s14sbGroup.Where(d => d.経費区分 == 5).Min(d => d.経費項目ID)).Sum(c => c.金額) / s14Group.Sum(c => c.稼動日数), 0),
                        修理KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round(s14sbGroup.Where(c => c.経費項目ID == s14sbGroup.Where(d => d.経費区分 == 5).Min(d => d.経費項目ID)).Sum(c => c.金額) / s14Group.Sum(c => c.走行KM), 0),
                        益日数 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round((s14Group.Sum(c => c.運送収入) - s14sbGroup.Sum(c => c.金額)) / s14Group.Sum(c => c.稼動日数), 0),
                        益KM = s14Group.Sum(c => c.走行KM) == 0 ? 0 : Math.Round((s14Group.Sum(c => c.運送収入) - s14sbGroup.Sum(c => c.金額)) / s14Group.Sum(c => c.走行KM), 0),
                        稼働率 = s14Group.Sum(c => c.稼動日数) == 0 ? 0 : Math.Round((decimal)(s14Group.Sum(c => c.拘束時間) / (s14Group.Sum(c => c.稼動日数) * 1440)), 2),
                    }).AsQueryable();

                    query = query.Distinct();
                    int i車輌FROM;
                    int i車輌TO;
                    //部門From処理 Min値
                    if (!string.IsNullOrEmpty(s車輌From))
                    {
                        i車輌FROM = AppCommon.IntParse(s車輌From);
                    }
                    else
                    {
                        i車輌FROM = int.MinValue;
                    }

                    //部門To処理 Max値
                    if (!string.IsNullOrEmpty(s車輌To))
                    {
                        i車輌TO = AppCommon.IntParse(s車輌To);
                    }
                    else
                    {
                        i車輌TO = int.MaxValue;
                    }

                    var intCause = i車輌List;
                    if (string.IsNullOrEmpty(s車輌From + s車輌To))
                    {
                        if (i車輌List.Length > 0)
                        {
                            query = query.Where(q => intCause.Contains(q.コード));
                        }
                    }
                    else
                    {
                        if (i車輌List.Length > 0)
                        {
                            query = query.Where(q => intCause.Contains(q.コード) || (q.コード >= i車輌FROM && q.コード <= i車輌TO));
                        }
                        else
                        {
                            query = query.Where(q => (q.コード >= i車輌FROM && q.コード <= i車輌TO));
                        }
                    }

                    query   = query.Distinct();
                    retList = query.Where(c => c.廃車日 == null || ((((DateTime)c.廃車日).Year * 100 + ((DateTime)c.廃車日).Month) >= i集計期間From)).ToList();
                    return(retList);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// JMI02010 印刷
        /// </summary>
        /// <param name="p商品ID">乗務員コード</param>
        /// <returns>T01</returns>
        public List <JMI02010_Member_CSV> GetDataList_CSV(string p乗務員From, string p乗務員To, int?[] i乗務員List, int p作成締日, DateTime d集計期間From, DateTime d集計期間To, int p作成年度)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                DataTable tbl = new DataTable();
                List <JMI02010_Member_CSV> retList = new List <JMI02010_Member_CSV>();

                ////テストリスト型LINQ組込テスト
                //List<JMI> retList2 = new List<JMI>();
                //retList2.Add(new JMI() { 日付 = DateTime.Now, day=1 });


                context.Connection.Open();

                ////テストリスト型LINQ組込テスト
                //var querymtest = (from m07 in context.M07_KEI
                //                from rr2 in retList2
                //                select new JMI02010_M07
                //                {
                //                    経費ID = m07.経費項目ID,
                //                    経費名 = m07.経費項目名,
                //                }).ToList();


                //全件表示
                var querym07 = (from m07 in context.M07_KEI
                                select new JMI02010_M07
                {
                    経費ID = m07.経費項目ID,
                    経費名 = m07.経費項目名,
                }).ToList();

                var    querywhere = querym07.Where(x => x.経費ID == 601).ToList();
                string KEI1       = querywhere[0].経費名.ToString();
                querywhere = querym07.Where(x => x.経費ID == 602).ToList();
                string KEI2 = querywhere[0].経費名.ToString();
                querywhere = querym07.Where(x => x.経費ID == 603).ToList();
                string KEI3 = querywhere[0].経費名.ToString();
                querywhere = querym07.Where(x => x.経費ID == 604).ToList();
                string KEI4 = querywhere[0].経費名.ToString();
                querywhere = querym07.Where(x => x.経費ID == 605).ToList();
                string KEI5 = querywhere[0].経費名.ToString();
                querywhere = querym07.Where(x => x.経費ID == 606).ToList();
                string KEI6 = querywhere[0].経費名.ToString();
                querywhere = querym07.Where(x => x.経費ID == 607).ToList();
                string KEI7 = querywhere[0].経費名.ToString();



                var query = (from t02 in context.T02_UTRN.Where(x => x.勤務開始日 >= d集計期間From && x.勤務開始日 <= d集計期間To)
                             join m04 in context.M04_DRV on t02.乗務員KEY equals m04.乗務員KEY
                             join t01 in context.T01_TRN.Where(t01 => t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 != 1)) on t02.明細番号 equals t01.明細番号 into t01Group
                             join t03 in context.T03_KTRN on t02.明細番号 equals t03.明細番号 into t03Group
                             select new JMI02010_Member_CSV
                {
                    出庫 = t02.勤務開始日,
                    帰庫 = t02.勤務終了日,
                    車番 = t02.車輌番号,
                    社内金額 = t01Group.Where(order => order.支払先KEY == null).Sum(order => order.支払金額) == null ? 0 : t01Group.Where(order => order.支払先KEY == null).Sum(order => order.支払金額),
                    経費1 = t03Group.Where(order2 => order2.経費項目ID == 601 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 601 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    経費2 = t03Group.Where(order2 => order2.経費項目ID == 602 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 602 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    経費3 = t03Group.Where(order2 => order2.経費項目ID == 603 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 603 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    経費4 = t03Group.Where(order2 => order2.経費項目ID == 604 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 604 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    経費5 = t03Group.Where(order2 => order2.経費項目ID == 605 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 605 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    経費6 = t03Group.Where(order2 => order2.経費項目ID == 606 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 606 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    経費7 = t03Group.Where(order2 => order2.経費項目ID == 607 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 607 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    その他経費 = t03Group.Where(order2 => order2.経費項目ID != 601 && order2.経費項目ID != 602 &&
                                           order2.経費項目ID != 603 && order2.経費項目ID != 604 &&
                                           order2.経費項目ID != 605 && order2.経費項目ID != 606 &&
                                           order2.経費項目ID != 607 &&
                                           order2.経費項目ID != 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額)
                            == null ? 0 : t03Group.Where(order2 => order2.経費項目ID != 601 && order2.経費項目ID != 602 &&
                                                         order2.経費項目ID != 603 && order2.経費項目ID != 604 &&
                                                         order2.経費項目ID != 605 && order2.経費項目ID != 606 &&
                                                         order2.経費項目ID != 607 &&
                                                         order2.経費項目ID != 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),

                    燃料L数 = t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.数量) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.数量),
                    燃料代 = t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                    走行KM = t02.走行KM == null ? 0 : t02.走行KM,
                    歩合率 = m04.歩合率 == null ? 0 : m04.歩合率,
                    歩合金額 = 0,

                    コード = m04.乗務員ID,
                    乗務員名 = m04.乗務員名,
                    期間From = d集計期間From,
                    期間To = d集計期間To,
                }).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 t02 in context.T02_UTRN.Where(x => x.勤務開始日 >= d集計期間From && x.勤務開始日 <= d集計期間To)
                                            join m04 in context.M04_DRV on t02.乗務員KEY equals m04.乗務員KEY
                                            join t01 in context.T01_TRN.Where(t01 => t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 != 1)) on t02.明細番号 equals t01.明細番号 into t01Group
                                            join t03 in context.T03_KTRN on t02.明細番号 equals t03.明細番号 into t03Group
                                            where intCause.Contains(m04.乗務員ID)
                                            select new JMI02010_Member_CSV
                        {
                            出庫    = t02.勤務開始日,
                            帰庫    = t02.勤務終了日,
                            車番    = t02.車輌番号,
                            社内金額  = t01Group.Where(order => order.支払先KEY == null).Sum(order => order.支払金額) == null ? 0 : t01Group.Where(order => order.支払先KEY == null).Sum(order => order.支払金額),
                            経費1   = t03Group.Where(order2 => order2.経費項目ID == 601 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 601 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            経費2   = t03Group.Where(order2 => order2.経費項目ID == 602 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 602 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            経費3   = t03Group.Where(order2 => order2.経費項目ID == 603 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 603 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            経費4   = t03Group.Where(order2 => order2.経費項目ID == 604 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 604 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            経費5   = t03Group.Where(order2 => order2.経費項目ID == 605 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 605 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            経費6   = t03Group.Where(order2 => order2.経費項目ID == 606 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 606 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            経費7   = t03Group.Where(order2 => order2.経費項目ID == 607 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 607 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            その他経費 = t03Group.Where(order2 => order2.経費項目ID != 601 && order2.経費項目ID != 602 &&
                                                   order2.経費項目ID != 603 && order2.経費項目ID != 604 &&
                                                   order2.経費項目ID != 605 && order2.経費項目ID != 606 &&
                                                   order2.経費項目ID != 607 &&
                                                   order2.経費項目ID != 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額)
                                    == null ? 0 : t03Group.Where(order2 => order2.経費項目ID != 601 && order2.経費項目ID != 602 &&
                                                                 order2.経費項目ID != 603 && order2.経費項目ID != 604 &&
                                                                 order2.経費項目ID != 605 && order2.経費項目ID != 606 &&
                                                                 order2.経費項目ID != 607 &&
                                                                 order2.経費項目ID != 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),

                            燃料L数 = t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.数量) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.数量),
                            燃料代  = t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額) == null ? 0 : t03Group.Where(order2 => order2.経費項目ID == 401 && order2.乗務員KEY == t02.乗務員KEY).Sum(order2 => order2.金額),
                            走行KM = t02.走行KM == null ? 0 : t02.走行KM,
                            歩合率  = m04.歩合率 == null ? 0 : m04.歩合率,
                            歩合金額 = 0,

                            コード    = m04.乗務員ID,
                            乗務員名   = m04.乗務員名,
                            期間From = d集計期間From,
                            期間To   = d集計期間To,
                        });
                    }
                    else
                    {
                        query = query.Where(c => c.コード > int.MinValue && c.コード < int.MaxValue);
                    }
                }

                query = query.Distinct();

                //結果をリスト化
                retList = query.ToList();
                retList = (retList.OrderBy(a => a.コード).ThenBy(a => a.出庫)).ToList();
                //retList = (from q in retList orderby q.コード, q.出庫 select q);
                return(retList);
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// NNG06010 印刷
        /// </summary>
        /// <param name="p商品ID">部門コード</param>
        /// <returns>T01</returns>
        public List <NNG06010_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, int i表示順)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                List <NNG06010_Member_CSV> retList = new List <NNG06010_Member_CSV>();
                context.Connection.Open();

                int[] lst;
                lst = (from m71 in context.M71_BUM
                       let t01l = from t01 in context.T01_TRN.Where(t01 => (t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) && (t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 == 1))) select t01.自社部門ID
                                  where t01l.Contains(m71.自社部門ID)
                                  select m71.自社部門ID).ToArray();

                var query = (from m71 in context.M71_BUM
                             join t01 in context.T01_TRN.Where(t01 => (t01.請求日付 >= d集計期間From && t01.請求日付 <= d集計期間To) && (t01.入力区分 != 3 || (t01.入力区分 == 3 && t01.明細行 == 1))) on m71.自社部門ID equals t01.自社部門ID into t01Group
                             where t01Group.Where(t01 => t01.自社部門ID == m71.自社部門ID).Any() == true
                             select new NNG06010_Member_CSV
                {
                    コード = m71.自社部門ID,
                    部門名 = m71.自社部門名,
                    売上金額 = t01Group.Sum(t01 => t01.売上金額) == null ? 0 : t01Group.Sum(t01 => t01.売上金額),
                    割増1 = t01Group.Sum(t01 => t01.請求割増1) == null ? 0 : t01Group.Sum(t01 => t01.請求割増1),
                    割増2 = t01Group.Sum(t01 => t01.請求割増2) == null ? 0 : t01Group.Sum(t01 => t01.請求割増2),
                    通行料 = t01Group.Sum(t01 => t01.通行料) == null ? 0 : t01Group.Sum(t01 => t01.通行料),
                    売上合計 = t01Group.Sum(t01 => t01.売上金額 + t01.請求割増1 + t01.請求割増2 + t01.通行料) == null ? 0 : t01Group.Sum(t01 => t01.売上金額 + t01.請求割増1 + t01.請求割増2 + t01.通行料),
                    傭車使用売上 = t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料),
                    支払金額 = t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.支払金額),
                    支払通行料 = t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.支払通行料),
                    差益 = t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料 - t01gr.支払金額 - t01gr.支払通行料),
                    差益率 = t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料) == 0 ? 0 :
                          Math.Round((decimal)t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料 - t01gr.支払金額 - t01gr.支払通行料) / t01Group.Where(t01gr => t01gr.支払先KEY > 0).Sum(t01gr => t01gr.売上金額 + t01gr.請求割増1 + t01gr.請求割増2 + t01gr.通行料), 2),
                    件数 = t01Group.Count(),
                    未定件数 = t01Group.Count(t01gr => t01gr.売上未定区分 == 1),

                    かな読み = m71.かな読み,
                }).AsQueryable();


                int i部門FROM;
                int i部門TO;
                //部門From処理 Min値
                if (!string.IsNullOrEmpty(p部門From))
                {
                    i部門FROM = AppCommon.IntParse(p部門From);
                }
                else
                {
                    i部門FROM = int.MinValue;
                }

                //部門To処理 Max値
                if (!string.IsNullOrEmpty(p部門To))
                {
                    i部門TO = AppCommon.IntParse(p部門To);
                }
                else
                {
                    i部門TO = int.MaxValue;
                }

                var intCause = i部門List;
                if (string.IsNullOrEmpty(p部門From + p部門To))
                {
                    if (i部門List.Length > 0)
                    {
                        query = query.Where(q => intCause.Contains(q.コード));
                    }
                }
                else
                {
                    if (i部門List.Length > 0)
                    {
                        query = query.Where(q => intCause.Contains(q.コード) || (q.コード >= i部門FROM && q.コード <= i部門TO));
                    }
                    else
                    {
                        query = query.Where(q => (q.コード >= i部門FROM && q.コード <= i部門TO));
                    }
                }

                //表示順序処理
                switch (i表示順)
                {
                case 0:
                    query = query.OrderBy(c => c.コード);
                    break;

                case 1:
                    query = query.OrderBy(c => c.かな読み);
                    break;

                case 2:
                    query = query.OrderByDescending(c => c.売上金額);
                    break;
                }

                //結果をリスト化
                query   = query.Distinct();
                retList = query.ToList();
                return(retList);
            }
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 在庫数チェックを行う
        /// </summary>
        /// <param name="strStoreHouseCode">倉庫コード</param>
        /// <param name="ds">データセット</param>
        /// <param name="intUserId">ユーザID</param>
        /// <returns></returns>
        public Dictionary <int, string> CheckStockQty(string strStoreHouseCode, DataSet ds, int intUserId)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                Dictionary <int, string> resultDic = new Dictionary <int, string>();

                DataRow hdRow    = ds.Tables[TABLE_HEADER].Rows[0];
                DataRow outDtRow = ds.Tables[SYUKO_TABLE_DETAIL].Rows[0];
                DataRow inDtRow  = ds.Tables[NYUKO_TABLE_DETAIL].Rows[0];


                // 入荷先から対象の倉庫を取得
                Common com     = new Common();
                int    intSouk = int.Parse(strStoreHouseCode);

                // 出庫在庫チェック
                T05_IDODTL outRow = convertDataRowToT05_IDODTL_Entity(outDtRow);
                T05_IDODTL inRow  = convertDataRowToT05_IDODTL_Entity(inDtRow);

                decimal sNowStockQty   = 0;
                decimal outStockQty    = 0;
                decimal preOutStockQty = 0;

                // 数量のみ変更する場合、前回数量を加味する
                if (CheckSameValue(hdRow, "出荷元倉庫コード") && CheckSameValue(outDtRow, "賞味期限") && CheckSameValue(outDtRow, "品番コード"))
                {
                    preOutStockQty = ParseNumeric <decimal>(outDtRow["数量", DataRowVersion.Original]);
                }

                outStockQty = outRow.数量 - preOutStockQty;

                if (!com.CheckStokItemQty(intSouk, outRow.品番コード, outRow.賞味期限, out sNowStockQty, outStockQty))
                {
                    // キー:行番号、値:エラーメッセージ
                    resultDic.Add(outRow.行番号, string.Format("出庫の在庫数が不足しています。(現在庫数:{0:#,0.##})", sNowStockQty));
                }

                // 在庫を減らす場合,入庫在庫チェック(編集時)
                if (hdRow.RowState == DataRowState.Modified || inDtRow.RowState == DataRowState.Modified)
                {
                    int      org倉庫コード = ParseNumeric <int>(hdRow["出荷先倉庫コード", DataRowVersion.Original]);
                    int      org品番コード = ParseNumeric <int>(inDtRow["品番コード", DataRowVersion.Original]);
                    DateTime?org賞味期限  = inDtRow["賞味期限", DataRowVersion.Original] != null && string.IsNullOrEmpty(inDtRow["賞味期限", DataRowVersion.Original].ToString())
                        ? org賞味期限 = null : org賞味期限 = DateTime.Parse(inDtRow["賞味期限", DataRowVersion.Original].ToString());

                    decimal inStockQty    = 0;
                    decimal preInStockQty = 0;

                    // 数量のみ変更する場合、前回数量を加味する
                    if (CheckSameValue(hdRow, "出荷先倉庫コード") && CheckSameValue(inDtRow, "賞味期限") && CheckSameValue(inDtRow, "品番コード"))
                    {
                        preInStockQty = ParseNumeric <decimal>(outDtRow["数量", DataRowVersion.Original]);
                    }

                    inStockQty = preInStockQty - inRow.数量;

                    decimal nNowStockQty = 0;
                    if (inStockQty > 0 && !com.CheckStokItemQty(org倉庫コード, org品番コード, org賞味期限, out nNowStockQty, inStockQty))
                    {
                        // キー:行番号、値:エラーメッセージ
                        resultDic.Add(inRow.行番号, string.Format("入庫の在庫数が不足しています。(現在庫数:{0:#,0.##})", nNowStockQty));
                    }
                }

                return(resultDic);
            }
        }
Ejemplo n.º 28
0
        /// <summary>
        /// (日別)集計情報を取得する
        /// </summary>
        /// <param name="paramDic"></param>
        /// <returns></returns>
        public List <BSK04010_PrintMember_Day> GetPrintList_Day(Dictionary <string, string> paramDic)
        {
            // 検索パラメータ展開
            int      year, uriageKind, createType;
            int?     company, staffCd, customerCd, customerEd;
            DateTime?startYm, endYm, createYm;

            getFormParams(paramDic, out year, out company, out staffCd, out customerCd, out customerEd, out startYm, out endYm, out createYm, out uriageKind, out createType);

            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                // 対象とする取引区分を設定
                List <int> kbnList = new List <int>();
                if (uriageKind == (int)売上先.得意先)
                {
                    kbnList.Add((int)CommonConstants.取引区分.得意先);
                    kbnList.Add((int)CommonConstants.取引区分.相殺);
                }
                else if (uriageKind == (int)売上先.販社)
                {
                    kbnList.Add((int)CommonConstants.取引区分.販社);
                }
                else
                {
                    kbnList.Add((int)CommonConstants.取引区分.得意先);
                    kbnList.Add((int)CommonConstants.取引区分.相殺);
                    kbnList.Add((int)CommonConstants.取引区分.販社);
                }

                var tokList =
                    context.M01_TOK.Where(w => w.削除日時 == null && kbnList.Contains(w.取引区分));

                #region 条件絞り込み
                // 自社が指定されていれば条件追加
                if (company != null)
                {
                    var jis = context.M70_JIS.Where(w => w.自社コード == company).FirstOrDefault();
                    tokList = tokList.Where(w => w.担当会社コード == jis.自社コード);
                }

                // 担当者が指定されていれば条件追加
                if (staffCd != null)
                {
                    tokList = tokList.Where(w => w.T担当者コード == staffCd);
                }

                // 取引先が指定されていれば条件追加
                if (customerCd != null && customerEd != null)
                {
                    tokList = tokList.Where(w => w.取引先コード == customerCd && w.枝番 == customerEd);
                }
                if (customerCd != null && customerEd == null)
                {
                    tokList = tokList.Where(w => w.取引先コード == customerCd);
                }
                #endregion

                // 集計用得意先情報を作成(速度改善のため)
                List <TOK_INFO> tokInfoList = getTokInfo(context, tokList);

                // 得意先毎に集計を実施
                List <BSK04010_PrintMember_Day> resultList = new List <BSK04010_PrintMember_Day>();

                foreach (TOK_INFO tok in tokInfoList)
                {
                    // 日単位で集計データを取得
                    List <TallyMember> TallyList;

                    // 売上先:得意先
                    if (tok.取引区分 == (int)CommonConstants.取引区分.得意先 || tok.取引区分 == (int)CommonConstants.取引区分.相殺)
                    {
                        TallyList = getDayAggregateData(context, tok, createYm);
                    }
                    // 売上先:販社
                    else
                    {
                        TallyList = getDayAggregateData_HAN(context, tok, createYm);
                    }

                    // 日単位の集計が終わったらプリントクラスに設定
                    // 印字用データ作成
                    BSK04010_PrintMember_Day printData;
                    printData = setPrintListDay(TallyList);

                    // 作成区分(売上ありのみ)が指定されている場合
                    if (createType == (int)作成区分.売上ありのみ)
                    {
                        if (printData.集計合計額 != 0)
                        {
                            resultList.Add(printData);
                        }
                    }
                    else
                    {
                        resultList.Add(printData);
                    }
                }

                // データリストを集計して構成比を作成
                decimal total = Convert.ToDecimal(resultList.Sum(t => t.集計合計額));
                // 合計がゼロとなるデータは出力対象外とする
                //if (total == 0)
                //return new List<BSK04010_PrintMember_Day>();

                // 自社コード・担当者ID毎の合計を算出
                var grpTotal = resultList.AsEnumerable()
                               .GroupBy(g => new { g.自社コード, g.担当者ID })
                               .Select(s => new 担当者別集計合計
                {
                    自社コード     = s.Key.自社コード,
                    担当者コード    = s.Key.担当者ID,
                    担当者別集計合計額 = s.Sum(m => m.集計合計額)
                });

                // 構成比を計算
                resultList =
                    resultList.AsEnumerable()
                    .GroupJoin(grpTotal,
                               x => new { jis = x.自社コード, tnt = x.担当者ID },
                               y => new { jis = y.自社コード, tnt = y.担当者コード },
                               (x, y) => new { x, y })
                    .SelectMany(z => z.y.DefaultIfEmpty(),
                                (a, b) => new { RET = a.x, CALC = b })
                    .GroupBy(g => new { g.RET.自社コード, g.RET.自社名, g.RET.担当者ID, g.RET.担当者名, g.RET.得意先コード, g.RET.得意先名, g.CALC.担当者別集計合計額 })
                    .Select(s => new BSK04010_PrintMember_Day
                {
                    自社コード   = s.Key.自社コード,
                    自社名     = s.Key.自社名,
                    担当者ID   = s.Key.担当者ID,
                    担当者名    = s.Key.担当者名,
                    得意先コード  = s.Key.得意先コード,
                    得意先名    = s.Key.得意先名,
                    集計売上額01 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額01) / 1000),
                    集計売上額02 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額02) / 1000),
                    集計売上額03 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額03) / 1000),
                    集計売上額04 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額04) / 1000),
                    集計売上額05 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額05) / 1000),
                    集計売上額06 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額06) / 1000),
                    集計売上額07 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額07) / 1000),
                    集計売上額08 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額08) / 1000),
                    集計売上額09 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額09) / 1000),
                    集計売上額10 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額10) / 1000),
                    集計売上額11 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額11) / 1000),
                    集計売上額12 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額12) / 1000),
                    集計売上額13 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額13) / 1000),
                    集計売上額14 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額14) / 1000),
                    集計売上額15 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額15) / 1000),
                    集計売上額16 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額16) / 1000),
                    集計売上額17 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額17) / 1000),
                    集計売上額18 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額18) / 1000),
                    集計売上額19 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額19) / 1000),
                    集計売上額20 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額20) / 1000),
                    集計売上額21 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額21) / 1000),
                    集計売上額22 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額22) / 1000),
                    集計売上額23 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額23) / 1000),
                    集計売上額24 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額24) / 1000),
                    集計売上額25 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額25) / 1000),
                    集計売上額26 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額26) / 1000),
                    集計売上額27 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額27) / 1000),
                    集計売上額28 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額28) / 1000),
                    集計売上額29 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額29) / 1000),
                    集計売上額30 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額30) / 1000),
                    集計売上額31 = (long)Math.Floor((double)s.Sum(m => m.RET.集計売上額31) / 1000),
                    集計合計額   = (long)Math.Floor((double)s.Sum(m => m.RET.集計合計額) / 1000),
                    構成比率    = s.Key.担当者別集計合計額 != 0 ?
                              Math.Round(
                        Decimal.Divide(s.Sum(m => m.RET.集計合計額), s.Key.担当者別集計合計額) * 100, 2) : 0
                })
                    .OrderBy(o => o.自社コード).ThenBy(o => o.担当者ID).ThenBy(o => o.得意先コード)
                    .ToList();

                return(resultList);
            }
        }
Ejemplo n.º 29
0
        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;
                }
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// M74_KGRPの新規追加
        /// </summary>
        /// <param name="M74kgrp">M74_KGRP_Member</param>
        //public void Insert(M74_KGRP_Member M74kgrp)
        //{
        //    using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
        //    {
        //        context.Connection.Open();

        //        M74_KGRP m74 = new M74_KGRP();
        //        m74.グループ権限ID = M74kgrp.グループ権限ID;
        //        m74.登録日時 = M74kgrp.登録日時;
        //        m74.更新日時 = M74kgrp.更新日時;

        //        try
        //        {
        //            // newノエンティティニ対シテハAcceptChangesデ新規追加トナル
        //            context.M74_KGRP.ApplyChanges(m74);
        //            context.SaveChanges();
        //        }
        //        catch (UpdateException ex)
        //        {
        //            // PKey違反等
        //            Console.WriteLine(ex);
        //        }
        //    }
        //}

        /// <summary>
        /// M74_KGRPの更新
        /// </summary>
        /// <param name="M74kgrp">M74_KGRP_Member</param>
        //public void Update(M74_KGRP_Member M74kgrp)
        //{
        //    using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
        //    {
        //        context.Connection.Open();

        //        //更新行ヲ特定
        //        var m74 =
        //            context.M74_KGRP
        //                .Where(w => w.グループ権限ID == M74kgrp.グループ権限ID)
        //                .FirstOrDefault();

        //        m74.グループ権限ID = M74kgrp.グループ権限ID;
        //        m74.登録日時 = M74kgrp.登録日時;
        //        m74.更新日時 = DateTime.Now;

        //        m74.AcceptChanges();
        //        context.SaveChanges();
        //    }
        //}

        /// <summary>
        /// M74_KGRPの物理削除
        /// </summary>
        /// <param name="M74kgrp">M74_KGRP_Member</param>
        //public void Delete(M74_KGRP_Member M74kgrp)
        //{
        //    using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
        //    {
        //        context.Connection.Open();

        //        // 削除行を特定
        //        var m74 =
        //            context.M74_KGRP
        //                .Where(w => w.グループ権限ID == M74kgrp.グループ権限ID)
        //                .FirstOrDefault();

        //        context.DeleteObject(m74);
        //        context.SaveChanges();

        //    }

        //}

        /// <summary>
        /// 権限マスタの更新
        /// 削除→追加(Delete→Insert)
        /// </summary>
        /// <param name="M74kgrp"></param>
        public void UPD_Data(List <M74_KGRP_UPD_Menber> pmM74, int pグループ権限ID, string pM74KGRPName)
        {
            using (TRAC3Entities context = new TRAC3Entities(CommonData.TRAC3_GetConnectionString()))
            {
                context.Connection.Open();

                // データ削除
                using (var tran = new TransactionScope())
                {
                    string sql = string.Empty;
                    sql = string.Format("DELETE M74_KGRP WHERE M74_KGRP.グループ権限ID = {0} ", pグループ権限ID);
                    int count = context.ExecuteStoreCommand(sql);
                    tran.Complete();
                }

                #region 権限グループ名マスタ登録・更新
                //var M74Name = (from x in context.M74_KGRP_NAME
                //              where x.グループ権限ID == pグループ権限ID
                //              select x).FirstOrDefault();

                var M74Name =
                    context.M74_KGRP_NAME
                    .Where(w => w.グループ権限ID == pグループ権限ID)
                    .FirstOrDefault();

                if (M74Name != null)
                {
                    //Update
                    M74Name.グループ権限名 = pM74KGRPName;

                    M74Name.AcceptChanges();
                    context.SaveChanges();
                }
                else
                {
                    //Insert

                    M74_KGRP_NAME m74ins = new M74_KGRP_NAME()
                    {
                        グループ権限ID = pグループ権限ID,
                        グループ権限名  = pM74KGRPName,
                    };

                    try
                    {
                        // newのエンティティに対してはAcceptChangesで新規追加となる
                        context.M74_KGRP_NAME.ApplyChanges(m74ins);
                        context.SaveChanges();
                    }
                    catch (UpdateException ex)
                    {
                        // PKey違反等
                        Console.WriteLine(ex);
                    }
                }
                #endregion

                #region 権限マスタ登録・更新
                try
                {
                    // 新規追加
                    foreach (M74_KGRP_UPD_Menber mM74 in pmM74)
                    {
                        M74_KGRP m74ins = new M74_KGRP()
                        {
                            グループ権限ID = mM74.グループ権限ID,
                            プログラムID  = mM74.プログラムID,
                            タブグループ番号 = mM74.TabID,
                            使用可能FLG  = mM74.使用可能FLG == true ? 1 : 0,
                            データ更新FLG = mM74.データ更新FLG == true ? 1 : 0,
                            登録日時     = DateTime.Today,
                            更新日時     = DateTime.Today,
                            削除日付     = null
                        };

                        // newのエンティティに対してはAcceptChangesで新規追加となる
                        context.M74_KGRP.ApplyChanges(m74ins);
                    }
                }
                catch (UpdateException ex)
                {
                    // PKey違反等
                    Console.WriteLine(ex);
                    throw ex;
                }

                context.SaveChanges();


                #endregion
            }
        }