private void ShiftDataUpdate(bool overrideRecord)
        {
            bool executionStatus = false;

            ShiftRecord currentRecord = GetShiftRecord(overrideRecord);

            ShiftRecordDA sda = new ShiftRecordDA();

            string shiftDataEntryFound = ShiftDataEntryFound_HiddenField.Value;

            if (shiftDataEntryFound.Equals("true"))
            {
                executionStatus = sda.UpdateShiftRecord(currentRecord);
            }
            else
            {
                executionStatus = sda.AddShiftRecord(currentRecord);
            }

            //Update the staffing data again
            LoadDataForUpdate();

            DisplayMessage(executionStatus);

            ResetConfirmationMessage();
        }
예제 #2
0
        private void LoadData()
        {
            Dictionary <DateTime, ShiftRecord> records = new Dictionary <DateTime, ShiftRecord>();
            List <ShiftRecord> modifiedList            = new List <ShiftRecord>();
            ShiftRecordDA      sda = new ShiftRecordDA();

            DateTime SelectedDateTime = DateTime.Now;

            if (!string.IsNullOrEmpty(PeriodStartDate_TextBox.Text))
            {
                SelectedDateTime = DateTime.Parse(PeriodStartDate_TextBox.Text);
            }

            SelectedDateTime             = Utility.DateTimeHelper.FirstDateInWeek(SelectedDateTime);
            PeriodStartDate_TextBox.Text = SelectedDateTime.ToShortDateString();

            var    shiftRecords = sda.GetShiftRecordsForDate(SelectedDateTime, SelectedDateTime.AddDays(7));
            string selectedWard = WardName_DropDownList.SelectedItem.Text;

            List <DateTime> currentDateTimes = new List <DateTime>();

            currentDateTimes.Clear();

            //shiftRecords.

            foreach (var item in shiftRecords)
            {
                if (item.WardName.Equals(selectedWard))
                {
                    modifiedList.Add(new ShiftRecord
                    {
                        Beds                  = item.Beds,
                        DataEntryBy           = item.DataEntryBy,
                        Date                  = currentDateTimes.Contains(item.Date) ? new DateTime() : item.Date,
                        Day                   = currentDateTimes.Contains(item.Date) ? string.Empty : item.Day,
                        IsDaySummary          = item.IsDaySummary,
                        IsSafe                = item.IsSafe,
                        IsSafeAfterMitigation = item.IsSafeAfterMitigation,
                        IsWeekSummary         = item.IsWeekSummary,
                        OptimumStaffingHCA    = item.OptimumStaffingHCA,
                        OptimumStaffingRN     = item.OptimumStaffingRN,
                        PlannedNumberRN       = item.PlannedNumberRN,
                        PlannedNumberHCA      = item.PlannedNumberHCA,
                        SafeMitigation        = item.SafeMitigation,
                        SafeStaffingHCA       = item.SafeStaffingHCA,
                        SafeStaffingRN        = item.SafeStaffingRN,
                        ShiftID               = item.ShiftID,
                        ShiftRecordExists     = item.ShiftRecordExists,
                        TodayBankHCA          = item.TodayBankHCA,
                        TodayBankRN           = item.TodayBankRN,
                        TodayNonTrustHCA      = item.TodayNonTrustHCA,
                        TodayNonTrustRN       = item.TodayNonTrustRN,
                        TodayTrustHCA         = item.TodayTrustHCA,
                        TodayTrustRN          = item.TodayTrustRN,
                        UnSafeMitigation      = item.UnSafeMitigation,
                        WardCode              = item.WardCode,
                    });

                    currentDateTimes.Add(item.Date);

                    //currentDateTimes.Add(item.Date);

                    //if (records.ContainsKey(item.Date))
                    //{
                    //}
                    //else
                    //{
                    //    records.Add(item.Date, item);

                    //    //if (modifiedList.Count > 1)
                    //    //{
                    //    //    modifiedList.Add(daySummary);
                    //    //    AddData(weekSummary, daySummary);
                    //    //}

                    //    daySummary = new ShiftRecord();
                    //    daySummary.IsDaySummary = true;
                    //}

                    //AddData(daySummary, item);
                    //modifiedList.Add(item);
                }
            }

            //if (modifiedList.Count > 1)
            //{
            //    modifiedList.Add(daySummary);
            //    AddData(weekSummary, daySummary);
            //    modifiedList.Add(weekSummary);
            //}

            this.cdcatalog.DataSource = modifiedList;
            this.cdcatalog.DataBind();
        }
        private void LoadDataForUpdate()
        {
            string        wardCode = WardName_DropDownList.SelectedItem.Value;
            DateTime      currentDate;
            ShiftRecordDA sda;

            //ShiftID
            int shiftID = -1;

            int.TryParse(Shift_DropDownList.SelectedItem.Value, out shiftID);
            DateTime.TryParse(Date_TextBox.Text, out currentDate);

            if (string.IsNullOrWhiteSpace(wardCode) || shiftID < 0 || currentDate == null)
            {
                return;
            }

            sda = new ShiftRecordDA();
            ShiftRecord record = sda.GetShiftRecord(currentDate, wardCode, shiftID);

            if (record.ShiftRecordExists)
            {
                ShiftDataEntryFound_HiddenField.Value = "true";
            }
            else
            {
                ShiftDataEntryFound_HiddenField.Value = "false";
            }

            //Beds
            Beds_TextBox.Text = record.Beds.ToString();
            //OptimumStaffingRN
            RN_OptimumStaffing_TextBox.Text = record.OptimumStaffingRN.ToString();
            //OptimumStaffingHCA
            HCA_OptimumStaffing_TextBox.Text = record.OptimumStaffingHCA.ToString();
            //PlannedNumberRN
            RN_PlannedNumber_TextBox.Text = record.PlannedNumberRN;
            //PlannedNumberHCA
            HCA_PlannedNumber_TextBox.Text = record.PlannedNumberHCA;
            //SafeStaffingRN
            RN_SafeStaffing_TextBox.Text = record.SafeStaffingRN.ToString();
            //SafeStaffingHCA
            HCA_SafeStaffing_TextBox.Text = record.SafeStaffingHCA.ToString();


            //Fix if defualt value is 0, empty string will be displayed.
            //TodayTrustRN
            RN_TodayTrust_TextBox.Text           = record.TodayTrustRN;
            Overrride_RN_TodayTrust_TextBox.Text = record.TodayTrustRN;
            //TodayTrustHCA
            HCA_TodayTrust_TextBox.Text           = record.TodayTrustHCA;
            Overrride_HCA_TodayTrust_TextBox.Text = record.TodayTrustHCA;
            //TodayBankRN
            RN_TodayBank_TextBox.Text           = record.TodayBankRN;
            Overrride_RN_TodayBank_TextBox.Text = record.TodayBankRN;
            //TodayBankHCA
            HCA_TodayBank_TextBox.Text           = record.TodayBankHCA;
            Overrride_HCA_TodayBank_TextBox.Text = record.TodayBankHCA;
            //TodayNonTrustRN
            RN_TodayNonTrust_TextBox.Text           = record.TodayNonTrustRN;
            Overrride_RN_TodayNonTrust_TextBox.Text = record.TodayNonTrustRN;
            //TodayNonTrustHCA
            HCA_TodayNonTrust_TextBox.Text           = record.TodayNonTrustHCA;
            Overrride_HCA_TodayNonTrust_TextBox.Text = record.TodayNonTrustHCA;
            //Comments
            Comments_TextBox.Text = record.Comments;

            if (record.IsSafeAfterMitigation == null)
            {
                //Safe
                if (record.IsSafe)
                {
                    safeDropdown.SelectedIndex = 0;
                    mitigationPanel.Visible    = false;
                }
                else
                {
                    safeDropdown.SelectedIndex = 1;
                    mitigationPanel.Visible    = true;
                }
            }

            //Check if the ward is unsafe and display the staffing adjustment panel
            if (record.IsSafeAfterMitigation == true)
            {
                safeDropdown.SelectedIndex           = 0;
                mitigationPanel.Visible              = false;
                Overrride_safeDropdown.SelectedIndex = 1;
            }
            else if (record.IsSafeAfterMitigation == false)
            {
                safeDropdown.SelectedIndex = 1;
                mitigationPanel.Visible    = true;

                adjustStaffingFiguresPanel.Visible = true;
                adjustStaffingFiguresPanel.Attributes.Add("style", "display: block;");
                fade.Attributes.Add("style", "display: block;");

                Overrride_safeDropdown.SelectedIndex = 0;
            }

            //UnSafeMitigation
            if (UnSafeMitigation_DropDownList.Items.FindByValue(record.UnSafeMitigation) != null)
            {
                UnSafeMitigation_DropDownList.SelectedValue = record.UnSafeMitigation;
            }
            else
            {
                UnSafeMitigation_DropDownList.SelectedIndex = 0;
            }


            string shiftDataEntryFound = ShiftDataEntryFound_HiddenField.Value;

            if (shiftDataEntryFound.Equals("false"))
            {
                //Shift Name
                string shiftName = Shift_DropDownList.SelectedItem.Text;

                //ShiftRecord record = sda.GetShiftRecord(date, wardCode, shiftID);
                StaffingData         staffingDataRecord = new StaffingData();
                IList <StaffingData> allStaffing        = DataRepository.Instance.AllStaffing;

                StaffingDateRangeDA      staffingDateRangeDA = new StaffingDateRangeDA();
                List <StaffingDateRange> staffingDateRange   = new List <StaffingDateRange>();
                staffingDateRange = staffingDateRangeDA.GetAllStaffingDateRanges();

                // This is the logic that loads the optimum/safe staffing values according to the current date

                int        currentDatePeriodIndex  = 0;
                List <int> currentDatePeriodIndexs = new List <int>();

                //foreach (StaffingDateRange item in staffingDateRange)
                //{
                //    if (IsCurrentDateInSpecifiedDatePeriod(currentDate, item.StartDate, item.EndDate))
                //    {
                //        currentDatePeriodIndex = item.Index;
                //        break;
                //    }
                //}

                //Support for multiple periods
                foreach (StaffingDateRange item in staffingDateRange)
                {
                    if (IsCurrentDateInSpecifiedDatePeriod(currentDate, item.StartDate, item.EndDate))
                    {
                        currentDatePeriodIndexs.Add(item.Index);
                    }
                }

                foreach (StaffingData item in allStaffing)
                {
                    foreach (int period in currentDatePeriodIndexs)
                    {
                        if (item.StaffingDateRangeIndex == period && wardCode.Equals(item.WardCode) && shiftName.Equals(item.Shift) && item.StaffingDate == currentDate.ToString("dddd"))
                        {
                            staffingDataRecord = item;
                            break;
                        }
                    }
                }

                //Beds
                Beds_TextBox.Text = staffingDataRecord.Beds.ToString();
                //OptimumStaffingRN
                RN_OptimumStaffing_TextBox.Text = staffingDataRecord.OptimumRN.ToString();
                //OptimumStaffingHCA
                HCA_OptimumStaffing_TextBox.Text = staffingDataRecord.OptimumHCA.ToString();
                //SafeStaffingRN
                RN_SafeStaffing_TextBox.Text = staffingDataRecord.SafeRN.ToString();
                //SafeStaffingHCA
                HCA_SafeStaffing_TextBox.Text = staffingDataRecord.SafeHCA.ToString();
            }

            SetEntryAreaBckground();
        }