Exemplo n.º 1
0
        private void RenderWorkCalendarItem(WorkCalendarItem workCalendarItem)
        {
            var item = new ListViewItem(workCalendarItem.ID.ToString());

            item.SubItems.Add(workCalendarItem.OffDate.ToString("dd/MM/yyyy"));
            item.SubItems.Add(workCalendarItem.Notes);

            lvwData.Items.Add(item);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Возвращает дату окончания срока по заявке в зависимости от системных настроек
        /// </summary>
        /// <param name="currentDateTime">Текущая дата</param>
        /// <param name="countHour">Количество часов на выполнение работ</param>
        /// <returns>Дата окончания срока по заявке</returns>
        public DateTime GetRequestDateEnd(DateTime currentDateTime, int countHour)
        {
            Settings settings = settingsService.Get();

            if (!settings.StartWorkDay.HasValue || !settings.EndWorkDay.HasValue ||
                settings.StartWorkDay.HasValue && settings.EndWorkDay.HasValue && settings.StartWorkDay >= settings.EndWorkDay)
            {
                return(currentDateTime.AddHours(countHour));
            }

            bool hasLunch           = settings.StartLunchBreak.HasValue && settings.EndLunchBreak.HasValue && settings.EndLunchBreak > settings.StartLunchBreak;
            int  countDailyWorkHour = settings.EndWorkDay.Value - settings.StartWorkDay.Value
                                      - (hasLunch? settings.EndLunchBreak.Value - settings.StartLunchBreak.Value : 0);
            int modHour  = countHour % countDailyWorkHour;
            int countDay = countHour / countDailyWorkHour;

            DateTime requestDateEnd = currentDateTime;

            IEnumerable <WorkCalendarItem> workCalendarItems =
                workCalendarItemRepository
                .GetList(t => t.Date.Year == requestDateEnd.Year)
                .OrderBy(t => t.Date)
                .ToList();
            WorkCalendarItem item      = null;
            DayOfWeek        dayOfWeek = requestDateEnd.DayOfWeek;

            while (true)
            {
                item = workCalendarItems
                       .FirstOrDefault(t => t.Date.Date == requestDateEnd.Date && t.TypeItem == TypeWorkCalendarItem.Holiday);
                dayOfWeek = requestDateEnd.DayOfWeek;
                if (item != null)
                {
                    requestDateEnd = item.Date.AddHours(requestDateEnd.Hour).AddMinutes(requestDateEnd.Minute);
                }
                else if (dayOfWeek == DayOfWeek.Saturday || dayOfWeek == DayOfWeek.Sunday)
                {
                    requestDateEnd = requestDateEnd.AddDays(1);
                }
                else
                {
                    break;
                }
            }


            requestDateEnd = requestDateEnd.AddDays(countDay);


            if (requestDateEnd.Hour < settings.StartWorkDay) //до начала рабочего дня
            {
                requestDateEnd = requestDateEnd.Date.AddHours(settings.StartWorkDay.Value + modHour);
                if (hasLunch && requestDateEnd.Hour > settings.StartLunchBreak)
                {
                    requestDateEnd = requestDateEnd.AddHours(settings.EndLunchBreak.Value - settings.StartLunchBreak.Value);/**/
        public WorkCalendarItem GetById(Guid id)
        {
            WorkCalendarItem workCalendarItem = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                var sql = "SELECT wci.*, wc.MonthPeriod, wc.YearPeriod, wc.OffDay "
                          + "FROM WorkCalendarItem wci INNER JOIN WorkCalendar wc ON wci.WorkCalendarId = wc.ID "
                          + "WHERE wci.ID ='{" + id + "}'";

                workCalendarItem = em.ExecuteObject <WorkCalendarItem>(sql, new WorkCalendarItemMapper());
            }

            return(workCalendarItem);
        }
        public WorkCalendarItem GetLast(Guid workCalendarId)
        {
            WorkCalendarItem workCalendarItem = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                var sql = "SELECT TOP 1 wci.*, wc.MonthPeriod, wc.YearPeriod, wc.OffDay "
                          + "FROM WorkCalendar wc INNER JOIN WorkCalendarItem wci ON wci.WorkCalendarId = wc.ID "
                          + "WHERE wci.WorkCalendarId = '{" + workCalendarId + "}' "
                          + "ORDER BY wci.OffDate DESC";

                workCalendarItem = em.ExecuteObject <WorkCalendarItem>(sql, new WorkCalendarItemMapper());
            }

            return(workCalendarItem);
        }
Exemplo n.º 5
0
        private void SaveWorkCalendarItem()
        {
            if (dtpDate.Value.Month != Convert.ToInt32(txtMonth.Text) || dtpDate.Value.Year != Convert.ToInt32(txtYear.Text))
            {
                MessageBox.Show("Tanggal diluar periode", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (txtNotes.Text == "")
            {
                MessageBox.Show("Keterangan harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtNotes.Focus();
            }
            else if (formMode == FormMode.Add && workCalendarItemRepository.IsItemExisted(dtpDate.Value))
            {
                MessageBox.Show("Tanggal : " + dtpDate.Value.ToString("dd/MM/yyyy") + " sudah ada ", "Perhatian",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                var workCalendarItem = new WorkCalendarItem();

                workCalendarItem.OffDate        = dtpDate.Value;
                workCalendarItem.WorkCalendarId = new Guid(txtWorkCalendarId.Text);
                workCalendarItem.Notes          = txtNotes.Text;

                if (formMode == FormMode.Add)
                {
                    workCalendarItemRepository.Save(workCalendarItem);
                    GetLastWorkCalendarItem(new Guid(txtWorkCalendarId.Text));
                }
                else if (formMode == FormMode.Edit)
                {
                    workCalendarItem.ID = new Guid(txtID.Text);
                    workCalendarItemRepository.Update(workCalendarItem);
                }

                LoadWorkCalendarItem();
                DisableForm();

                formMode  = FormMode.View;
                this.Text = "Hari Libur " + Store.GetMonthName(Convert.ToInt32(txtMonth.Text)) + " " + txtYear.Text;
            }
        }
        public void Save(WorkCalendarItem workCalendarItem)
        {
            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    string[] columns = { "ID", "WorkCalendarId", "OffDate",
                                         "Notes" };

                    object[] values = { Guid.NewGuid(),                               workCalendarItem.WorkCalendarId,
                                        workCalendarItem.OffDate.ToShortDateString(),
                                        workCalendarItem.Notes };

                    var q = new Query().Select(columns).From(tableName).Insert(values);

                    em.ExecuteNonQuery(q.ToSql());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void Update(WorkCalendarItem workCalendarItem)
        {
            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    string[] columns = { "WorkCalendarId", "OffDate",
                                         "Notes" };

                    object[] values = { workCalendarItem.WorkCalendarId,
                                        workCalendarItem.OffDate.ToShortDateString(),
                                        workCalendarItem.Notes };

                    var q = new Query().Select(columns).From(tableName).Update(values).Where("ID").Equal("{" + workCalendarItem.ID + "}");

                    em.ExecuteNonQuery(q.ToSql());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 8
0
 private void ViewWorkCalendarItemDetail(WorkCalendarItem workCalendarItem)
 {
     txtID.Text    = workCalendarItem.ID.ToString();
     dtpDate.Text  = workCalendarItem.OffDate.ToShortDateString();
     txtNotes.Text = workCalendarItem.Notes;
 }