Esempio n. 1
0
        /// <summary>
        /// 売掛テーブル更新処理
        /// </summary>
        /// <param name="context"></param>
        /// <param name="hdData"></param>
        private void S08_URIKAKE_Update(TRAC3Entities context, S08_URIKAKE_Extension urData, int userId)
        {
            //INSERTで登録する

            S08_URIKAKE data = new S08_URIKAKE();

            data.自社コード   = urData.自社コード;
            data.得意先コード  = urData.得意先コード;
            data.得意先枝番   = urData.得意先枝番;
            data.日付      = urData.日付;
            data.伝票番号    = urData.伝票番号;
            data.行番号     = urData.行番号;
            data.品番コード   = urData.品番コード;
            data.自社品名    = urData.自社品名;
            data.金種コード   = urData.金種コード;
            data.数量      = urData.数量;
            data.単価      = urData.単価;
            data.金額      = urData.金額;
            data.通常税率消費税 = urData.通常税率消費税;
            data.軽減税率消費税 = urData.軽減税率消費税;
            data.入金額     = urData.入金額;
            data.前月繰越    = urData.前月繰越;
            data.残高      = urData.残高;
            data.登録者     = userId;
            data.登録日時    = DateTime.Now;

            context.S08_URIKAKE.ApplyChanges(data);
        }
Esempio n. 2
0
        /// <summary>
        /// 前月情報取得
        /// Accounts Receivable:売掛金
        /// </summary>
        /// <param name="context"></param>
        /// <param name="company">会社名コード</param>
        /// <param name="yearMonth">集計開始年月</param>
        /// <param name="code">得意先コード</param>
        /// <param name="eda">得意先枝番</param>
        /// <param name="cnt">回数</param>
        public S08_URIKAKE_Extension getLastAccountsRec(TRAC3Entities context, int company, DateTime targetStDate, int?code, int?eda)
        {
            // 前月開始日
            DateTime befTargetStDate = targetStDate.AddMonths(-1);

            var befAccountsRec =
                context.S08_URIKAKE
                .Where(w => w.自社コード == company &&
                       w.日付 >= befTargetStDate && w.日付 < targetStDate &&
                       w.得意先コード == code &&
                       w.得意先枝番 == eda)
                .OrderByDescending(o => o.日付)
                .FirstOrDefault();

            // 前月繰越行に整形
            S08_URIKAKE_Extension ret = new S08_URIKAKE_Extension();

            ret.自社コード  = company;
            ret.日付     = new DateTime(targetStDate.Year, targetStDate.Month, 1);
            ret.得意先コード = code ?? 0;
            ret.得意先枝番  = eda ?? 0;
            ret.伝票番号   = 0;
            ret.行番号    = 0;
            ret.前月繰越   = befAccountsRec == null ? 0 : befAccountsRec.残高;
            ret.残高     = befAccountsRec == null ? 0 : befAccountsRec.残高;

            return(ret);
        }
Esempio n. 3
0
        /// <summary>
        /// 売掛データ登録処理(販社)
        /// </summary>
        /// <param name="context"></param>
        /// <param name="myCompanyCode">自社コード</param>
        /// /// <param name="salesCompanyCode">販社コード(M70_JIS)</param>
        /// <param name="targetStDate">集計開始日</param>
        /// <param name="targetEdDate">集計終了日</param>
        /// /// <param name="code">得意先コード</param>
        /// <param name="eda">得意先枝番</param>
        /// <param name="userId">ログインユーザID</param>
        private void setAccountsRecHan(TRAC3Entities context, int myCompanyCode, int salesCompanyCode, DateTime targetStDate, DateTime targetEdDate, int?code, int?eda, int userId)
        {
            // 自社マスタ(販社情報)
            var targetJis =
                context.M70_JIS
                .Where(w => w.削除日時 == null && w.自社コード == salesCompanyCode)
                .First();

            // 売上情報取得(販社)
            List <S08_URIKAKE_Extension> uriHanList = getHanUriInfo(context, myCompanyCode, salesCompanyCode, targetStDate, targetEdDate, userId);

            // 入金情報取得
            List <S08_URIKAKE_Extension> nyukinHanList = getPaymentInfo(context, myCompanyCode, targetJis.取引先コード, targetJis.枝番, targetStDate, targetEdDate);

            // 売掛情報整形
            var accountsRecHanList = uriHanList.Concat(nyukinHanList).OrderBy(c => c.日付).ThenBy(c => c.伝票番号).ThenBy(c => c.行番号).ToList();

            // データがなくても繰越残高を作成する
            if (accountsRecHanList == null)
            {
                accountsRecHanList = new List <S08_URIKAKE_Extension>();
            }

            // 前回売掛情報取得し結合
            S08_URIKAKE_Extension befData = getLastAccountsRec(context, myCompanyCode, targetStDate, code, eda);

            accountsRecHanList.Insert(0, befData);

            int 残高 = befData.前月繰越;

            // 既に登録されている売掛情報を削除
            S08_URIKAKE_Delete(context, myCompanyCode, code, eda, targetStDate, targetEdDate);

            // 売掛情報を登録
            foreach (S08_URIKAKE_Extension row in accountsRecHanList)
            {
                // 最初の行のみ消費税を設定
                if (accountsRecHanList.Where(c => c.伝票番号 == row.伝票番号).First().行番号 != row.行番号)
                {
                    row.通常税率消費税 = 0;
                    row.軽減税率消費税 = 0;
                }

                // 残高の再計算
                if (row.前月繰越 == 0)
                {
                    残高     = 残高 + (row.金額 + row.通常税率消費税 + row.軽減税率消費税) - row.入金額;
                    row.残高 = 残高;
                }

                S08_URIKAKE_Update(context, row, userId);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 売掛データ登録処理
        /// </summary>
        /// <param name="context"></param>
        /// <param name="company">自社コード</param>
        /// <param name="code">得意先コード</param>
        /// <param name="eda">得意先枝番</param>
        /// <param name="targetStDate">集計開始日</param>
        /// <param name="targetEdDate">集計終了日</param>
        /// <param name="userId">ログインユーザID</param>
        private void setAccountsRec(TRAC3Entities context, int company, int code, int eda, DateTime targetStDate, DateTime?targetEdDate, int userId)
        {
            // 売上情報取得
            List <S08_URIKAKE_Extension> uriList = getUriInfo(context, company, code, eda, targetStDate, targetEdDate, userId);

            // 入金情報取得
            List <S08_URIKAKE_Extension> nyukinList = getPaymentInfo(context, company, code, eda, targetStDate, targetEdDate);

            // 売掛情報整形
            var accountsRecList = uriList.Concat(nyukinList).OrderBy(c => c.日付).ThenBy(c => c.伝票番号).ThenBy(c => c.行番号).ToList();

            // データがなくても繰越残高を作成する
            if (accountsRecList == null)
            {
                accountsRecList = new List <S08_URIKAKE_Extension>();
            }

            // 前月残高の再設定
            S08_URIKAKE_Extension befData = getLastAccountsRec(context, company, targetStDate, code, eda);

            accountsRecList.Insert(0, befData);

            int 残高 = befData.前月繰越;

            // 既に登録されている売掛情報を削除
            S08_URIKAKE_Delete(context, company, code, eda, targetStDate, targetEdDate);

            // 売掛情報を登録
            foreach (S08_URIKAKE_Extension row in accountsRecList)
            {
                // 最初の行のみ消費税を設定
                if (accountsRecList.Where(c => c.伝票番号 == row.伝票番号).First().行番号 != row.行番号)
                {
                    row.通常税率消費税 = 0;
                    row.軽減税率消費税 = 0;
                }

                // 残高の再計算
                残高     = 残高 + (row.金額 + row.通常税率消費税 + row.軽減税率消費税) - row.入金額;
                row.残高 = 残高;

                S08_URIKAKE_Update(context, row, userId);
            }
        }