Пример #1
0
        /// <summary>
        /// 仕入入力検索情報を取得する
        /// </summary>
        /// <param name="companyCode">自社コード</param>
        /// <param name="slipNumber">伝票番号</param>
        /// <returns></returns>
        public DataSet GetData(string companyCode, string slipNumber, int userId)
        {
            DataSet t03ds = new DataSet();

            M73 taxService = new M73();

            List <T03.T03_SRHD_Extension>  hdList  = getM03_SRHD_Extension(companyCode, slipNumber);
            List <T03.T03_SRDTL_Extension> dtlList = getT03_SRDTL_Extension(slipNumber);
            List <M73_ZEI> taxList = taxService.GetDataList();
            List <DLY03010.S11_KAKUTEI_INFO> fixList = getS11_KAKUTEI_Extension(hdList);

            if (hdList.Count == 0)
            {
                if (string.IsNullOrEmpty(slipNumber))
                {
                    // 伝票番号未入力の場合は新規伝票扱いとする
                    M88 svc  = new M88();
                    int code = int.Parse(companyCode);

                    T03.T03_SRHD_Extension hd = new T03.T03_SRHD_Extension();
                    hd.伝票番号   = svc.getNextNumber(CommonConstants.明細番号ID.ID01_売上_仕入_移動, userId);
                    hd.会社名コード = code.ToString();
                    hd.仕入日    = com.GetDbDateTime();

                    hdList.Add(hd);
                }
                else
                {
                    // 指定伝票が見つからない場合
                    return(null);
                }
            }

            int rowCnt = 1;

            foreach (T03_SRDTL row in dtlList)
            {
                row.行番号 = rowCnt++;
            }

            // Datatable変換
            DataTable dthd  = KESSVCEntry.ConvertListToDataTable(hdList);
            DataTable dtdtl = KESSVCEntry.ConvertListToDataTable(dtlList);
            DataTable dttax = KESSVCEntry.ConvertListToDataTable(taxList);
            DataTable dtfix = KESSVCEntry.ConvertListToDataTable(fixList);

            dthd.TableName = T03_HEADER_TABLE_NAME;
            t03ds.Tables.Add(dthd);

            dtdtl.TableName = T03_DETAIL_TABLE_NAME;
            t03ds.Tables.Add(dtdtl);

            dttax.TableName = M73_TABLE_NAME;
            t03ds.Tables.Add(dttax);

            dtfix.TableName = S11_TABLE_NAME;
            t03ds.Tables.Add(dtfix);

            return(t03ds);
        }
Пример #2
0
        /// <summary>
        /// 入金入力 検索情報を取得する
        /// </summary>
        /// <param name="companyCode">会社名コード(入金先自社コード)</param>
        /// <param name="slipNumber">伝票番号</param>
        /// <param name="userId">ログインユーザID</param>
        /// <returns></returns>
        public DataSet GetData(string companyCode, string slipNumber, int userId)
        {
            DataSet t11ds = new DataSet();

            List <T11_NYKNHD_Extension>  hdList  = getM11_NYKNHD_Extension(companyCode, slipNumber);
            List <T11_NYKNDTL_Extension> dtlList = getT11_NYKNDTL_Extension(slipNumber);

            if (hdList.Count == 0)
            {
                if (string.IsNullOrEmpty(slipNumber))
                {
                    // 伝票番号未入力の場合は新規伝票扱いとしてデータを作成
                    M88 svc  = new M88();
                    int code = int.Parse(companyCode);

                    // 新規伝票番号を取得して設定
                    T11_NYKNHD_Extension hd = new T11_NYKNHD_Extension();
                    hd.伝票番号     = svc.getNextNumber(Const.明細番号ID.ID05_入金, userId);
                    hd.入金先自社コード = companyCode;
                    hd.入金日      = DateTime.Now;

                    hdList.Add(hd);
                }
                else
                {
                    // 伝票番号誤りの場合は検索を終了する
                    return(null);
                }
            }

            int rowCnt = 1;

            foreach (T11_NYKNDTL_Extension row in dtlList)
            {
                row.行番号 = rowCnt++;
            }

            // Datatable変換
            DataTable dthd  = KESSVCEntry.ConvertListToDataTable(hdList);
            DataTable dtdtl = KESSVCEntry.ConvertListToDataTable(dtlList);

            dthd.TableName = TABLE_HEADER;
            t11ds.Tables.Add(dthd);

            dtdtl.TableName = TABLE_DETAIL;
            t11ds.Tables.Add(dtdtl);

            return(t11ds);
        }
Пример #3
0
        /// <summary>
        /// 移動検索情報を取得する
        /// </summary>
        /// <param name="companyCode">自社コード(会社名コード)</param>
        /// <param name="slipNumber">伝票番号</param>
        /// <param name="userId">ログインユーザID</param>
        /// <returns></returns>
        public DataSet GetData(string companyCode, string slipNumber, int userId)
        {
            DataSet t05ds = new DataSet();

            List <T05_IDOHD_Extension>  hdList  = getT05_IDOHD_Extension(companyCode, slipNumber);
            List <T05_IDODTL_Extension> dtlList = getT05_IDODTL_Extension(companyCode, slipNumber);

            if (hdList.Count == 0)
            {
                if (string.IsNullOrEmpty(slipNumber))
                {
                    // 未入力の場合は新規伝票として作成
                    M88 svc  = new M88();
                    int code = int.Parse(companyCode);

                    // 新規伝票番号を取得して設定
                    T05_IDOHD_Extension hd = new T05_IDOHD_Extension();
                    hd.伝票番号   = svc.getNextNumber(CommonConstants.明細番号ID.ID01_売上_仕入_移動, userId);
                    hd.会社名コード = code;
                    hd.日付     = DateTime.Now;
                    hd.移動区分   = CommonConstants.移動区分.振替移動.GetHashCode();

                    hdList.Add(hd);
                }
                else
                {
                    // 入力アリの場合は番号誤りなので検索を終了する
                    return(null);
                }
            }

            // Datatableに変換
            DataTable dthd     = KESSVCEntry.ConvertListToDataTable(hdList);
            DataTable dtInDtl  = KESSVCEntry.ConvertListToDataTable(dtlList.Where(c => c.行番号 == 1).ToList());
            DataTable dtOutDtl = KESSVCEntry.ConvertListToDataTable(dtlList.Where(c => c.行番号 == 2).ToList());

            // テーブル名を設定
            dthd.TableName     = TABLE_HEADER;
            dtInDtl.TableName  = NYUKO_TABLE_DETAIL;
            dtOutDtl.TableName = SYUKO_TABLE_DETAIL;

            // データセットに追加
            t05ds.Tables.Add(dthd);
            t05ds.Tables.Add(dtInDtl);
            t05ds.Tables.Add(dtOutDtl);

            return(t05ds);
        }
Пример #4
0
        /// <summary>
        /// 移動検索情報を取得する
        /// </summary>
        /// <param name="companyCode">自社コード(会社名コード)</param>
        /// <param name="slipNumber">伝票番号</param>
        /// <param name="userId">ログインユーザID</param>
        /// <returns></returns>
        public DataSet GetData(string companyCode, string slipNumber, int userId)
        {
            DataSet t05ds = new DataSet();

            List <T05_IDOHD_Extension>  hdList  = getM05_IDOHD_Extension(companyCode, slipNumber);
            List <T05_IDODTL_Extension> dtlList = getT05_IDODTL_Extension(slipNumber);

            if (hdList.Count == 0)
            {
                if (string.IsNullOrEmpty(slipNumber))
                {
                    // 未入力の場合は新規伝票として作成
                    M88 svc  = new M88();
                    int code = int.Parse(companyCode);

                    // 新規伝票番号を取得して設定
                    T05_IDOHD_Extension hd = new T05_IDOHD_Extension();
                    hd.伝票番号   = svc.getNextNumber(CommonConstants.明細番号ID.ID01_売上_仕入_移動, userId);
                    hd.会社名コード = code;
                    hd.日付     = DateTime.Now;
                    hd.移動区分   = CommonConstants.移動区分.通常移動.GetHashCode();

                    hdList.Add(hd);
                }
                else
                {
                    // 入力アリの場合は番号誤りなので検索を終了する
                    return(null);
                }
            }

            int rowCnt = 1;

            foreach (T05_IDODTL_Extension row in dtlList)
            {
                row.行番号 = rowCnt++;
            }

            // Datatable変換
            DataTable dthd  = KESSVCEntry.ConvertListToDataTable(hdList);
            DataTable dtdtl = KESSVCEntry.ConvertListToDataTable(dtlList);

            //// 不足レコードの補充
            //T05_IDOHD idohd = convertDataRowToT05_IDOHD_Entity(dthd.Rows[0]);
            //for (int i = 10 - dtdtl.Rows.Count; i >= 0; i--)
            //{
            //    DataRow row = dtdtl.NewRow();
            //    row["伝票番号"] = idohd.伝票番号;
            //    row["行番号"] = 10 - i;

            //    dtdtl.Rows.Add(row);

            //}

            dthd.TableName = TABLE_HEADER;
            t05ds.Tables.Add(dthd);

            dtdtl.TableName = TABLE_DETAIL;
            t05ds.Tables.Add(dtdtl);

            return(t05ds);
        }
Пример #5
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>());
                }
            }
        }