Example #1
0
        /// <summary>
        /// 予定情報に応じた<see cref="TableCell"/>を作成します
        /// </summary>
        /// <param name="yotei">勤務予定データ</param>
        /// <param name="cell"><see cref="KNS_D13"/> <paramref name="yotei"/>に応じ作成された<see cref="TableCell"/>が格納されます。</param>
        private void SetTableCellData(KNS_D13 yotei, out TableCell cell)
        {
            try
            {
                logger.Debug(LOG_START);
                cell = new TableCell()
                {
                    CssClass = "notConfirmYotei",
                    Text     = ninsyoCD[yotei.YOTEI_CD]
                };

                // 勤務時間があればテキストを書き換える
                TimeRange tr = yotei.GetWorkTimeRange();
                if (tr != null)
                {
                    cell.Text = tr.ToString(timeFormat);
                }

                // 承認フラグがあればCSSを書き換える
                if (yotei.SHONIN_FLG == "1")
                {
                    cell.CssClass = "confirmYotei";
                }
            }
            catch (KinmuException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new KinmuException(ex.Message, ex);
            }
        }
Example #2
0
        private void CopyPlans()
        {
            logger.Debug(LOG_START);

            // コピー元の勤務データを取得
            KNS_D13 origin = GetLocalKinmuYotei(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, GetOriginDayFromRequest());

            //コピー先の勤務データを取得
            int[]          destDays   = GetCopytoDaysFromRequest();
            List <KNS_D13> copytoList = new List <KNS_D13>();

            foreach (int dest in destDays)
            {
                if (origin == null)
                {
                    // コピー元にデータがない場合は削除用リストの作成を行う。
                    KNS_D13 copyto = GetLocalKinmuYotei(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month, dest);
                    if (copyto != null)
                    {
                        copytoList.Add(copyto);
                    }
                }
                else
                {
                    KNS_D13 copytod13 = origin.Clone();
                    copytod13.DATA_D     = dest.ToString();
                    copytod13.SHONIN_FLG = "0";

                    // 都度DBに更新処理をかけるが、業務ルールのcheckをかけたいのでExecuteUpdateを使っている。
                    KinmuManager.ExecuteUpdate(ref copytod13);
                }
            }

            // 予定の削除はここで一括してやる
            if (origin == null)
            {
                dbManager.DeleteKinmuYotei(copytoList);
            }

            SetInformationPanel(ref InformationPanel, ref InfoIcon, ref InfoText, "勤務予定のコピーが完了しました。", InformationLevel.Highlight);
        }
Example #3
0
        public void SetKinmuYoteiParameterTest1()
        {
            KNS_D13 _d13 = new KNS_D13
            {
                SHAIN_CD   = "9999999",
                DATA_Y     = "2019",
                DATA_M     = "2",
                DATA_D     = "1",
                YOTEI_CD   = "01",
                STR_Y_HR   = "9",
                STR_Y_MIN  = "20",
                END_Y_HR   = "18",
                END_Y_MIN  = "0",
                END_Y_PAR  = "0",
                KAKN_FLG   = "0",
                SHONIN_FLG = "0"
            };
            bool res = KinmuManager.ExecuteUpdate(ref _d13);

            Assert.IsTrue(res);
        }
Example #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                logger.Debug(LOG_START);
                KinmuSystem.SetSessionData(ref loginShainInfo, ref viewShainInfo, ref viewDateTime, Response, Request, Session);

                int workTimeTotal = 0;
                List <KinmuGridViewWorkResultsRow> data = new List <KinmuGridViewWorkResultsRow>();
                KinmuManager kinmuManager = new KinmuManager(viewShainInfo.SHAIN_CD, viewDateTime.Year, viewDateTime.Month);

                DateTimeStringLabel.Text = viewDateTime.ToString("yyyy年MM月");
                CompanyNameLabel.Text    = companyName;
                EmployeeCodeLabel.Text   = viewShainInfo.SHAIN_CD;
                NameLabel.Text           = viewShainInfo.SHAIN_NM;
                Title = "勤務実績整理簿 " + viewShainInfo.SHAIN_NM + " " + viewDateTime.ToString("yyyy年MM月");

                //メインの表をバインド
                for (int i = 1; i <= DateTime.DaysInMonth(kinmuManager.Year, kinmuManager.Month); i++)
                {
                    // 本当はKinmuRecordRowを取得しておきたかったが、処理の関係上こうなってる
                    // なんか良い方法あったら教えてください
                    KNS_D01 KinmuJisseki   = kinmuManager.KinmuJisseki.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D01();
                    KNS_D13 KinmuYotei     = kinmuManager.KinmuYotei.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D13();
                    KNS_M05 CalendarMaster = kinmuManager.CalendarMaster.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_M05();
                    workTimeTotal += KinmuJisseki.DKINM ?? 0;
                    data.Add(
                        new KinmuGridViewWorkResultsRow(
                            new KinmuRecordRow(kinmuManager.EmployeeCD, KinmuJisseki, KinmuYotei, new List <KNS_D02>(), CalendarMaster),
                            workTimeTotal
                            )
                        );
                }
                WorkResultsGridView.DataSource = data;
                WorkResultsGridView.DataBind();

                // 所定日数
                A1Label.Text = kinmuManager.CalcGekkanSyoteiNissu().ToString();
                // 出勤日数
                A2Label.Text = kinmuManager.CalcGekkanSyukkinNissu().ToString();
                // 休労日数
                A3Label.Text = kinmuManager.CalcGekkanKyujitsuRoudouNissu().ToString();
                // -日数
                A4Label.Text = kinmuManager.CalcBarNissu().ToString();
                // 代休日数
                A5Label.Text = kinmuManager.CalcGekkanDaikyuNissu().ToString();
                // 非番日数
                A6Label.Text = kinmuManager.CalcGekkanHibanNissu().ToString();
                // 有給日数
                A7Label.Text = kinmuManager.CalcGekkanYukyuNissu().ToString();
                // 無休日数
                A8Label.Text = kinmuManager.CalcGekkanMukyuNissu().ToString();

                // 組休日数
                B1Label.Text = kinmuManager.CalcGekkanKumikyuNissu().ToString();
                // 公休日労働回数
                B2Label.Text = kinmuManager.CalcGekkanKokyuRoudouNissu().ToString();
                // 所定労働日数
                B3Label.Text = kinmuManager.CalcGekkanSyoteiRoudoNissu().ToString();
                // 労働日数
                B4Label.Text = kinmuManager.CalcGekkanRoudouNissu().ToString();
                // 特休日数 予定
                B5Label.Text = kinmuManager.CalcGekkanTokkyuYoteiNissu().ToString();
                // 特休日数 確定
                B6Label.Text = kinmuManager.CalcGekkanTokkyuKakuteiNissu().ToString();
                // 公休日数 予定
                B7Label.Text = kinmuManager.CalcGekkanKoukyuYoteiNissu().ToString();
                // 公休日数 確定
                B8Label.Text = kinmuManager.CalcGekkanKoukyuKakuteiNissu().ToString();

                // 実総労働時間
                int tmp = kinmuManager.CalcGekkanTotalJitsuRoudoJikan();
                C1Label1.Text = MinutesToStringFormat(tmp);
                C1Label2.Text = tmp.ToString();
                // みなし2
                tmp           = kinmuManager.CalcGekkanYukyuJikan();
                C2Label1.Text = MinutesToStringFormat(tmp);
                C2Label2.Text = tmp.ToString();
                // 超勤A
                tmp           = kinmuManager.CalcGekkanTankaAJikan();
                C3Label1.Text = MinutesToStringFormat(tmp);
                C3Label2.Text = tmp.ToString();
                // 超勤B
                tmp           = kinmuManager.CalcGekkanTankaBJikan();
                C4Label1.Text = MinutesToStringFormat(tmp);
                C4Label2.Text = tmp.ToString();
                // 超勤D(特休)
                tmp           = kinmuManager.CalcGekkanTankaTokkyuDJikan();
                C5Label1.Text = MinutesToStringFormat(tmp);
                C5Label2.Text = tmp.ToString();
                // 超勤D(公休)
                tmp           = kinmuManager.CalcGekkanTankaKoukyuDJikan();
                C6Label1.Text = MinutesToStringFormat(tmp);
                C6Label2.Text = tmp.ToString();
                // 夜勤C
                tmp           = kinmuManager.CalcGekkanTankaCJikan();
                C7Label1.Text = MinutesToStringFormat(tmp);
                C7Label2.Text = tmp.ToString();
                // 控除A
                tmp           = kinmuManager.CalcGekkanKoujyoAJikan();
                C8Label1.Text = MinutesToStringFormat(tmp);
                C8Label2.Text = tmp.ToString();

                // 減額A
                tmp           = kinmuManager.CalcGekkanGengakuAjikan();
                D1Label1.Text = MinutesToStringFormat(tmp);
                D1Label2.Text = tmp.ToString();
                // 時間外労働時間
                tmp           = kinmuManager.CalcGekkanJikangaiRoudoJikan();
                D2Label1.Text = MinutesToStringFormat(tmp);
                D2Label2.Text = tmp.ToString();
                // 経営公休日労働時間
                tmp           = kinmuManager.CalcGekkanKeieiKokyuRoudoJikan();
                D3Label1.Text = MinutesToStringFormat(tmp);
                D3Label2.Text = tmp.ToString();
                // 法定労働時間
                tmp           = kinmuManager.CalcGekkanHouTeiRoudoJikan();
                D4Label1.Text = MinutesToStringFormat(tmp);
                D4Label2.Text = tmp.ToString();
                // 所定労働時間
                tmp           = kinmuManager.CalcGekkanSyoteiRoudoJikan();
                D5Label1.Text = MinutesToStringFormat(tmp);
                D5Label2.Text = tmp.ToString();
                // みなし1
                tmp           = kinmuManager.CalcGekkanMinashi1Jikan();
                D6Label1.Text = MinutesToStringFormat(tmp);
                D6Label2.Text = tmp.ToString();
                // 超勤E
                tmp           = kinmuManager.CalcGekkanTankaEJikan();
                D7Label1.Text = MinutesToStringFormat(tmp);
                D7Label2.Text = tmp.ToString();
                // 祝日C
                tmp           = kinmuManager.CalcGekkanSyukujituRoudoJikan();
                D8Label1.Text = MinutesToStringFormat(tmp);
                D8Label2.Text = tmp.ToString();
            }
            catch (KinmuException ex)
            {
                WorkResultsPanel.Visible = false;
                ErrorPanel.Visible       = true;
                ErrorMessageLabel.Text   = dataErrorMessage + "ErrorMessage:" + ex.Message + "StackTrace:" + ex.StackTrace;
            }
        }
Example #5
0
        /// <summary>
        /// 社員コード、年、月をもとにDBから勤務予定を取得し、帳票にバインドできる形に変換して返します。
        /// </summary>
        /// <returns>バインドできる形に成形した勤務予定に記入するデータ</returns>
        private void RenderWorkPlansTableBody()
        {
            logger.Debug(LOG_START);
            for (int i = 1; i <= DateTime.DaysInMonth(kinmuManager.Year, kinmuManager.Month); i++)
            {
                // 本当はKinmuRecordRowを取得しておきたかったが、処理の関係上こうなってる
                // なんか良い方法あったら教えてください
                KNS_D01 KinmuJisseki   = kinmuManager.KinmuJisseki.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D01();
                KNS_D13 KinmuYotei     = kinmuManager.KinmuYotei.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_D13();
                KNS_M05 CalendarMaster = kinmuManager.CalendarMaster.SingleOrDefault(_ => _.DATA_D == i.ToString(PADDING_ZERO_2)) ?? new KNS_M05();

                workTimeTotal    += KinmuJisseki.DKINM ?? 0;
                minashiTimeTotal += KinmuJisseki.DMINA1 ?? 0;
                minashiTimeTotal += KinmuJisseki.DMINA2 ?? 0;
                restTimeTotal    += KinmuJisseki.GetTotalRestTime();

                KinmuGridViewWorkPlansRow a = new KinmuGridViewWorkPlansRow(new KinmuRecordRow(kinmuManager.EmployeeCD, KinmuJisseki, KinmuYotei, new List <KNS_D02>(), CalendarMaster), workTimeTotal);

                TableRow row = new TableRow();
                row.Cells.AddRange(new TableCell[] {
                    new TableCell()
                    {
                        Text = a.Date, CssClass = "Date"
                    },
                    new TableCell()
                    {
                        Text = a.Day, CssClass = "Day"
                    },
                    new TableCell()
                    {
                        Text = a.NinsyoSchedule, CssClass = "Plan"
                    },
                    new TableCell()
                    {
                        Text = a.NinsyoResult, CssClass = "Result"
                    },
                    new TableCell()
                    {
                        Text = a.OpeningTimeToClosingTimeSchedule, CssClass = "OpeningTimeToClosingTimeSchedule"
                    },
                    new TableCell()
                    {
                        Text = a.OpeningTimeToClosingTimeResult, CssClass = "OpeningTimeToClosingTimeResult"
                    },
                    new TableCell()
                    {
                        Text = a.NextDayFlag, CssClass = "NextDay"
                    },
                    new TableCell()
                    {
                        Text = a.RestTime, CssClass = "BreakTime"
                    },
                    new TableCell()
                    {
                        Text = a.WorkTime, CssClass = "WorkTime"
                    },
                    new TableCell()
                    {
                        Text = a.Minashi, CssClass = "Minashi"
                    },
                    new TableCell()
                    {
                        Text = a.WorkTimeTotal, CssClass = "WorkTimeTotal"
                    },
                    new TableCell()
                    {
                        Text = a.Article, CssClass = "Article"
                    }
                });

                WorkPlansTable.Rows.Add(row);
            }
        }