Пример #1
0
 /// <summary>
 /// ヘッダ情報を印刷データに格納する
 /// </summary>
 /// <param name="prtMem"></param>
 /// <param name="hdRow"></param>
 /// <param name="jis_nusi"></param>
 /// <param name="jis"></param>
 /// <param name="syuk"></param>
 private void setPrintHeaderData(PrintoutMember prtMem, T02_URHD hdRow, M01_TOK Tok, M70_JIS jis_nusi, M70_JIS jis, M01_TOK syukS, M01_TOK syukM)
 {
     prtMem.出荷主  = hdRow.出荷元名;
     prtMem.品先名1 = hdRow.出荷先名;
     if (Tok != null)
     {
         prtMem.得意先名1   = Tok.得意先名1;
         prtMem.得意先名2   = Tok.得意先名2;
         prtMem.得意先郵便番号 = Tok.郵便番号;
         prtMem.得意先住所1  = Tok.住所1;
         prtMem.得意先住所2  = Tok.住所2;
         prtMem.得意先TEL  = Tok.電話番号;
         prtMem.得意先FAX  = Tok.FAX;
     }
     prtMem.品先名1 = hdRow.出荷先名;
     if (syukS != null)
     {
         prtMem.品先名1   = syukS.得意先名1;
         prtMem.品先名2   = syukS.得意先名2;
         prtMem.品先郵便番号 = syukS.郵便番号;
         prtMem.品先住所1  = syukS.住所1;
         prtMem.品先住所2  = syukS.住所2;
         prtMem.品先TEL  = syukS.電話番号;
         prtMem.品先FAX  = syukS.FAX;
     }
     prtMem.出荷日   = hdRow.出荷日.ToString("yyyy/MM/dd");
     prtMem.出荷元名1 = hdRow.出荷元名;
     if (syukM != null)
     {
         prtMem.出荷元名2   = syukM.得意先名2;
         prtMem.出荷元郵便番号 = syukM.郵便番号;
         prtMem.出荷元住所1  = syukM.住所1;
         prtMem.出荷元住所2  = syukM.住所2;
         prtMem.出荷元TEL  = syukM.電話番号;
         prtMem.出荷元FAX  = syukM.FAX;
     }
     prtMem.自社名    = jis.自社名;
     prtMem.自社郵便番号 = jis.郵便番号;
     prtMem.自社住所1  = jis.住所1;
     prtMem.自社住所2  = jis.住所2;
     prtMem.自社TEL  = jis.電話番号;
     prtMem.自社FAX  = jis.FAX;
     prtMem.伝票番号   = hdRow.伝票番号.ToString();
     prtMem.品伝票番号  = hdRow.品伝票番号.ToString();
     prtMem.伝票備考   = hdRow.備考;
 }
Пример #2
0
        /// <summary>
        /// 納品書明細情報を印刷データに格納する
        /// </summary>
        /// <param name="prtMem"></param>
        /// <param name="dtlRow"></param>
        /// <param name="rowNum"></param>
        private void setPrintNouhinData(PrintoutMember prtMem, DetailExtension dtlRow, int rowNum)
        {
            //20190902 add-s CB軽減税率対応
            string 消費税区分wk = "";

            if (dtlRow.消費税区分 == (int)CommonConstants.商品消費税区分.軽減税率)
            {
                消費税区分wk = "軽 ";
            }
            else if (dtlRow.消費税区分 == (int)CommonConstants.商品消費税区分.非課税)
            {
                消費税区分wk = "非 ";
            }
            //20190902 add-e CB軽減税率対応

            switch (rowNum)
            {
            case 1:
                prtMem.行番号1   = rowNum;
                prtMem.品番1    = dtlRow.品番;
                prtMem.得意先品番1 = dtlRow.得意先品番;
                prtMem.品名1    = dtlRow.品名;
                prtMem.数量1    = dtlRow.数量;
                prtMem.単位1    = dtlRow.単位;
                prtMem.単価1    = dtlRow.単価;
                prtMem.金額1    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要1 = dtlRow.摘要;
                prtMem.摘要1 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 2:
                prtMem.行番号2   = rowNum;
                prtMem.品番2    = dtlRow.品番;
                prtMem.得意先品番2 = dtlRow.得意先品番;
                prtMem.品名2    = dtlRow.品名;
                prtMem.数量2    = dtlRow.数量;
                prtMem.単位2    = dtlRow.単位;
                prtMem.単価2    = dtlRow.単価;
                prtMem.金額2    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要2 = dtlRow.摘要;
                prtMem.摘要2 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 3:
                prtMem.行番号3   = rowNum;
                prtMem.品番3    = dtlRow.品番;
                prtMem.得意先品番3 = dtlRow.得意先品番;
                prtMem.品名3    = dtlRow.品名;
                prtMem.数量3    = dtlRow.数量;
                prtMem.単位3    = dtlRow.単位;
                prtMem.単価3    = dtlRow.単価;
                prtMem.金額3    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要3 = dtlRow.摘要;
                prtMem.摘要3 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 4:
                prtMem.行番号4   = rowNum;
                prtMem.品番4    = dtlRow.品番;
                prtMem.得意先品番4 = dtlRow.得意先品番;
                prtMem.品名4    = dtlRow.品名;
                prtMem.数量4    = dtlRow.数量;
                prtMem.単位4    = dtlRow.単位;
                prtMem.単価4    = dtlRow.単価;
                prtMem.金額4    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要4 = dtlRow.摘要;
                prtMem.摘要4 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 5:
                prtMem.行番号5   = rowNum;
                prtMem.品番5    = dtlRow.品番;
                prtMem.得意先品番5 = dtlRow.得意先品番;
                prtMem.品名5    = dtlRow.品名;
                prtMem.数量5    = dtlRow.数量;
                prtMem.単位5    = dtlRow.単位;
                prtMem.単価5    = dtlRow.単価;
                prtMem.金額5    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要5 = dtlRow.摘要;
                prtMem.摘要5 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 6:
                prtMem.行番号6   = rowNum;
                prtMem.品番6    = dtlRow.品番;
                prtMem.得意先品番6 = dtlRow.得意先品番;
                prtMem.品名6    = dtlRow.品名;
                prtMem.数量6    = dtlRow.数量;
                prtMem.単位6    = dtlRow.単位;
                prtMem.単価6    = dtlRow.単価;
                prtMem.金額6    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要6 = dtlRow.摘要;
                prtMem.摘要6 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 7:
                prtMem.行番号7   = rowNum;
                prtMem.品番7    = dtlRow.品番;
                prtMem.得意先品番7 = dtlRow.得意先品番;
                prtMem.品名7    = dtlRow.品名;
                prtMem.数量7    = dtlRow.数量;
                prtMem.単位7    = dtlRow.単位;
                prtMem.単価7    = dtlRow.単価;
                prtMem.金額7    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要7 = dtlRow.摘要;
                prtMem.摘要7 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 8:
                prtMem.行番号8   = rowNum;
                prtMem.品番8    = dtlRow.品番;
                prtMem.得意先品番8 = dtlRow.得意先品番;
                prtMem.品名8    = dtlRow.品名;
                prtMem.数量8    = dtlRow.数量;
                prtMem.単位8    = dtlRow.単位;
                prtMem.単価8    = dtlRow.単価;
                prtMem.金額8    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要8 = dtlRow.摘要;
                prtMem.摘要8 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 9:
                prtMem.行番号9   = rowNum;
                prtMem.得意先品番9 = dtlRow.得意先品番;
                prtMem.品番9    = dtlRow.品番;
                prtMem.品名9    = dtlRow.品名;
                prtMem.数量9    = dtlRow.数量;
                prtMem.単位9    = dtlRow.単位;
                prtMem.単価9    = dtlRow.単価;
                prtMem.金額9    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要9 = dtlRow.摘要;
                prtMem.摘要9 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;

            case 10:
                prtMem.行番号10   = rowNum;
                prtMem.得意先品番10 = dtlRow.得意先品番;
                prtMem.品番10    = dtlRow.品番;
                prtMem.品名10    = dtlRow.品名;
                prtMem.数量10    = dtlRow.数量;
                prtMem.単位10    = dtlRow.単位;
                prtMem.単価10    = dtlRow.単価;
                prtMem.金額10    = dtlRow.金額;
                //20190902 mod-s CB軽減税率対応
                //prtMem.摘要10 = dtlRow.摘要;
                prtMem.摘要10 = 消費税区分wk + dtlRow.摘要;
                //20190902 CB mod-s
                break;
            }
        }
Пример #3
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);
        }
Пример #4
0
        /// <summary>
        /// 出荷明細情報を印刷データに格納する
        /// </summary>
        /// <param name="prtMem"></param>
        /// <param name="dtlRow"></param>
        /// <param name="rowNum"></param>
        private void setPrintDetailData(PrintoutMember prtMem, DetailExtension dtlRow, int rowNum)
        {
            switch (rowNum)
            {
            case 1:
                prtMem.明細品番1 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名1 = dtlRow.品名;
                prtMem.明細数量1 = dtlRow.数量;
                prtMem.明細単位1 = dtlRow.単位;
                prtMem.明細摘要1 = dtlRow.摘要;
                break;

            case 2:
                prtMem.明細品番2 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名2 = dtlRow.品名;
                prtMem.明細数量2 = dtlRow.数量;
                prtMem.明細単位2 = dtlRow.単位;
                prtMem.明細摘要2 = dtlRow.摘要;
                break;

            case 3:
                prtMem.明細品番3 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名3 = dtlRow.品名;
                prtMem.明細数量3 = dtlRow.数量;
                prtMem.明細単位3 = dtlRow.単位;
                prtMem.明細摘要3 = dtlRow.摘要;
                break;

            case 4:
                prtMem.明細品番4 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名4 = dtlRow.品名;
                prtMem.明細数量4 = dtlRow.数量;
                prtMem.明細単位4 = dtlRow.単位;
                prtMem.明細摘要4 = dtlRow.摘要;
                break;

            case 5:
                prtMem.明細品番5 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名5 = dtlRow.品名;
                prtMem.明細数量5 = dtlRow.数量;
                prtMem.明細単位5 = dtlRow.単位;
                prtMem.明細摘要5 = dtlRow.摘要;
                break;

            case 6:
                prtMem.明細品番6 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名6 = dtlRow.品名;
                prtMem.明細数量6 = dtlRow.数量;
                prtMem.明細単位6 = dtlRow.単位;
                prtMem.明細摘要6 = dtlRow.摘要;
                break;

            case 7:
                prtMem.明細品番7 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名7 = dtlRow.品名;
                prtMem.明細数量7 = dtlRow.数量;
                prtMem.明細単位7 = dtlRow.単位;
                prtMem.明細摘要7 = dtlRow.摘要;
                break;

            case 8:
                prtMem.明細品番8 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名8 = dtlRow.品名;
                prtMem.明細数量8 = dtlRow.数量;
                prtMem.明細単位8 = dtlRow.単位;
                prtMem.明細摘要8 = dtlRow.摘要;
                break;

            case 9:
                prtMem.明細品番9 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名9 = dtlRow.品名;
                prtMem.明細数量9 = dtlRow.数量;
                prtMem.明細単位9 = dtlRow.単位;
                prtMem.明細摘要9 = dtlRow.摘要;
                break;

            case 10:
                prtMem.明細品番10 = string.IsNullOrEmpty(dtlRow.得意先品番) ? dtlRow.品番 : dtlRow.得意先品番;
                prtMem.明細品名10 = dtlRow.品名;
                prtMem.明細数量10 = dtlRow.数量;
                prtMem.明細単位10 = dtlRow.単位;
                prtMem.明細摘要10 = dtlRow.摘要;
                break;
            }
        }