public MiscellaneousTimePage() { InitializeComponent(); _vm = new MiscellaneousTimePageViewModel(); earningCodePicker.ItemsSource = _vm.EarningsCode; if (App.Database.GetApplicationSettings().TwentyFourHourTime) { startTimeText.Text = DateTime.Now.ToString("HH:mm"); } else { startTimeText.Text = DateTime.Now.ToString("hh:mm tt"); } textTransactionDate.Text = DateTime.Now.ToShortDateString(); labelTechNo.Content = String.Format("{0}-{1}", _vm.AppTechnician.TechnicianDeptNo, _vm.AppTechnician.TechnicianNo); labelTechName.Content = _vm.AppTechnician.FirstName + " " + _vm.AppTechnician.LastName; // dch rkl 11/03/2016 Get Time Tracker Options to Determine what can be entered _captureTimeInTimeTracker = "N"; JT_TimeTrackerOptions timeTrackerOptions = App.Database.GetTimeTrackerOptions(); if (timeTrackerOptions != null && timeTrackerOptions.CaptureTimeInTimeTracker != null) { _captureTimeInTimeTracker = timeTrackerOptions.CaptureTimeInTimeTracker; if (_captureTimeInTimeTracker == "O") { _captureTimeInTimeTracker = "Y"; } // treat "O" as "Y", per Chris M. } // if CaptureTimeInTimeTracker = "Y", they enter start/end time // if CaptureTimeInTimeTracker = "N", they enter hours if (_captureTimeInTimeTracker == "Y") { startTimeText.IsEnabled = true; startTimeText.Text = ""; // dch rkl 01/12/2017 set to blank by default endTimeText.IsEnabled = true; durationTextCell.IsEnabled = false; } else { startTimeText.IsEnabled = false; startTimeText.Text = ""; endTimeText.IsEnabled = false; endTimeText.Text = ""; durationTextCell.IsEnabled = true; } }
// dch rkl 10/26/2016 include schedule detail //public ClockOutPage(App_WorkTicket workTicket) public ClockOutPage(App_WorkTicket workTicket, App_ScheduledAppointment scheduleDetail) { InitializeComponent(); _vm = new ClockOutPageViewModel(workTicket); _ciOptions = App.Database.GetCIOptions(); // dch rkl 10/26/2016 return to ticket details instead of scheduled ticket list on cancel _scheduleDetail = scheduleDetail; // dch rkl 11/30/2016 display coverage checkboxes _workTicket = workTicket; // dch rkl 12/02/2016 Ticket Details // Get Current Technician JT_Technician technician = App.Database.GetCurrentTechnicianFromDb(); // Service Ticket textServiceTicket.Content = _scheduleDetail.ServiceTicketNumber; // Employee Number and Name textEmployeeNumber.Content = technician.FormattedTechnicianNo; textEmployeeName.Content = string.Format("{0} {1}", technician.FirstName, technician.LastName); // Set Coverage Checkboxes // Warranty Repair if (_workTicket.DtlWarrantyRepair == "Y") { switchWarrRepair.IsChecked = true; } // Labor Coverred on Warranty bool bIsChkd = false; if (_workTicket.StatusDate != null && _workTicket.RepairItem.MfgLaborWarrantyPeriod != null) { TimeSpan tsDateDiff = _workTicket.RepairItem.MfgLaborWarrantyPeriod.Subtract(_workTicket.StatusDate); if (tsDateDiff.TotalDays > 0 && _workTicket.DtlWarrantyRepair == "Y") { switchLaborCovWarr.IsChecked = true; bIsChkd = true; } } if (_workTicket.StatusDate != null && _workTicket.RepairItem.IntLaborWarrantyPeriod != null) { TimeSpan tsDateDiff = _workTicket.RepairItem.IntLaborWarrantyPeriod.Subtract(_workTicket.StatusDate); if (tsDateDiff.TotalDays > 0 && _workTicket.DtlWarrantyRepair == "Y") { switchLaborCovWarr.IsChecked = true; bIsChkd = true; } } // Service Agreement Repair if (_workTicket.DtlCoveredOnContract == "Y") { switchSvcAgrRepair.IsChecked = true; } // LLabor Covered on Service Agreement if (_workTicket.IsPreventativeMaintenance && _workTicket.ServiceAgreement.IsPMLaborCovered) { switchLaborCovSvcAgr.IsChecked = true; } else if (_workTicket.IsPreventativeMaintenance == false && _workTicket.IsServiceAgreementRepair && _workTicket.ServiceAgreement.IsLaborCovered) { switchLaborCovSvcAgr.IsChecked = true; } // Billable Picker pickerBillable.ItemsSource = _vm.BillableList; // Start Time DateTime dtStartDateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day) + _vm.StartTime; if (App.Database.GetApplicationSettings().TwentyFourHourTime) { textStartTime.Text = dtStartDateTime.ToString("HH:mm"); } else { textStartTime.Text = dtStartDateTime.ToString("hh:mm tt"); } // Start Date textStartDate.Text = technician.CurrentStartDate.ToShortDateString(); // Depart Time textEndDate.Text = DateTime.Now.ToShortDateString(); if (App.Database.GetApplicationSettings().TwentyFourHourTime) { textDepartTime.Text = DateTime.Now.ToString("HH:mm"); } else { textDepartTime.Text = DateTime.Now.ToString("hh:mm tt"); } // dch rkl 01/23/2017 If Time Tracker Options is "Y", they enter start / end time.If "N", they enter hours. BEGIN // bk rkl 02/01/2017 moving north of sethoursbilled call _captureTimeInTimeTracker = "N"; _MinHourlyCostIncrement = 0; JT_TimeTrackerOptions tto = App.Database.GetTimeTrackerOptions(); if (tto != null && tto.CaptureTimeInTimeTracker != null) { _captureTimeInTimeTracker = tto.CaptureTimeInTimeTracker; _MinHourlyCostIncrement = tto.MinHourlyCostIncrement; if (_captureTimeInTimeTracker == "O") { _captureTimeInTimeTracker = "Y"; } } // Set Hours Billed if (textStartTime.Text != null && textDepartTime.Text != null) { SetHoursBilled(); } // Technician Status // dch rkl 01/16/2017 If there is no value for the Default Depart Status Code, use the technician's current status BEGIN string statusCode = _vm.DefaultDepartStatusCode; if (statusCode == null || statusCode.Trim().Length == 0) { statusCode = technician.CurrentStatus; } // dch rkl 01/16/2017 If there is no value for the Default Depart Status Code, use the technician's current status END pickerTechnicianStatus.ItemsSource = _vm.TechnicianStatusList; for (int i = 0; i < pickerTechnicianStatus.Items.Count; i++) { // dch rkl 01/16/2017 If there is no value for the Default Depart Status Code, use the technician's current status BEGIN //if (((JT_TechnicianStatus)pickerTechnicianStatus.Items[i]).StatusDescription == _vm.DefaultDepartStatusCodeDescription) if (((JT_TechnicianStatus)pickerTechnicianStatus.Items[i]).StatusCode == statusCode) // dch rkl 01/16/2017 If there is no value for the Default Depart Status Code, use the technician's current status END { pickerTechnicianStatus.SelectedIndex = i; break; } } // Ticket Status pickerTicketStatus.ItemsSource = _vm.ServiceTicketStatusList; pickerTicketStatus.SelectedValue = _vm.DefaultServiceTicketStatusCode; // Activity Code pickerActivityCode.ItemsSource = _vm.ActivityCodeList; pickerActivityCode.SelectedValue = _vm.DefaultActivityCode; // Department pickerDepartment.ItemsSource = _vm.DepartmentCodesList; JT_ActivityCode dfltActCode = new JT_ActivityCode(); if (_vm.DefaultActivityCode != null) { dfltActCode = App.Database.GetActivityCodeFromDB(_vm.DefaultActivityCode); } if (dfltActCode != null) { pickerDepartment.SelectedValue = dfltActCode.DeptWorkedIn; } // Earnings Code List <JT_EarningsCode> lsEarnCd = new List <Models.JT_EarningsCode>(); foreach (JT_EarningsCode earncd in _vm.EarningsCodeList) { // Only include types of Regular or Overtime if (earncd.TypeOfEarnings == "O" || earncd.TypeOfEarnings == "R") { earncd.EarningsDeductionDesc = string.Format("{0} - {1}", earncd.EarningsCode, earncd.EarningsDeductionDesc); lsEarnCd.Add(earncd); } } pickerEarningsCode.ItemsSource = lsEarnCd; // dch rkl 11/01/2016 make sure default earning code is not null if (_vm.DefaultEarningCode != null) { pickerEarningsCode.SelectedValue = _vm.DefaultEarningCode; } else { pickerEarningsCode.SelectedIndex = 0; } // Meter Reading // dch rkl 11/1/2016 per Jeanne, hide the meter reading if JT_ServiceAgreementPMDetail.Basis = "M" BEGIN if (_vm.WorkTicket.ServiceAgreement != null && _vm.WorkTicket.ServiceAgreement.PmDetail != null && _vm.WorkTicket.ServiceAgreement.PmDetail.Basis != null && _vm.WorkTicket.ServiceAgreement.PmDetail.Basis == "M") { labelMeterReading.Visibility = Visibility.Visible; editorMeterReading.Visibility = Visibility.Visible; } else { labelMeterReading.Visibility = Visibility.Hidden; editorMeterReading.Visibility = Visibility.Hidden; } // dch rkl 11/1/2016 per Jeanne, hide the meter reading if JT_ServiceAgreementPMDetail.Basis = "M" END // Set Ref Rate SetRefRate(); // Work Performed editorWorkPerformed.MaxHeight = editorWorkPerformed.MinHeight; if (_captureTimeInTimeTracker == "Y") { // Enter start/end time textStartDate.IsEnabled = true; textStartTime.IsEnabled = true; textEndDate.IsEnabled = true; textDepartTime.IsEnabled = true; editorHoursWorked.IsEnabled = false; } else { // Enter hours textStartDate.IsEnabled = false; textStartDate.Text = ""; textStartTime.IsEnabled = false; textStartTime.Text = ""; textEndDate.IsEnabled = false; textEndDate.Text = ""; textDepartTime.IsEnabled = false; textDepartTime.Text = ""; editorHoursWorked.IsEnabled = true; } // dch rkl 01/23/2017 If Time Tracker Options is "Y", they enter start / end time.If "N", they enter hours. END // dch rkl 01/12/2017 Set Tab Indexes textStartDate.TabIndex = 0; textStartTime.TabIndex = 1; textEndDate.TabIndex = 2; textDepartTime.TabIndex = 3; editorHoursWorked.TabIndex = 4; pickerBillable.TabIndex = 5; editorHoursBilled.TabIndex = 6; editorBillableRate.TabIndex = 7; pickerTechnicianStatus.TabIndex = 8; pickerTicketStatus.TabIndex = 9; pickerActivityCode.TabIndex = 10; pickerDepartment.TabIndex = 11; pickerEarningsCode.TabIndex = 12; editorMeterReading.TabIndex = 13; editorWorkPerformed.TabIndex = 14; buttonClockout.TabIndex = 15; buttonCancel.TabIndex = 16; }