private void SetBillableRate() { decimal billingRate = 0; string sBillable = ""; ClockOutPageViewModel.App_Billable appBillable = (ClockOutPageViewModel.App_Billable)_pickerBillable.SelectedItem; sBillable = appBillable.BillableFlag; string sBillingMiscCode = ""; JT_ActivityCode activityCode = (JT_ActivityCode)_pickerActivityCode.SelectedItem; if (activityCode != null) { if (activityCode.BillingMiscCode != null) { sBillingMiscCode = activityCode.BillingMiscCode; } } if (sBillable != "B") { billingRate = 0; } else if ((bool)switchLaborCoveredSvcAgreement.IsToggled && _vm.WorkTicket.ServiceAgreement.BillingType == "F" && _vm.WorkTicket.DtlCoverageExceptionCode == null && sBillingMiscCode == "") { billingRate = 0; } else if (_vm.WorkTicket.ServiceAgreement.IsLaborCovered == true && _vm.WorkTicket.IsCoveredOnContract == true) { billingRate = 0; } else if ((bool)switchLaborCoveredWarranty.IsToggled && _vm.WorkTicket.DtlCoverageExceptionCode == null && _vm.WorkTicket.SE_OverridePricing != "Y") { billingRate = 0; } else { billingRate = Decimal.Parse(_editorRefRate.Text.Replace("$", "")); } // Set the value in the rate box _editorBillableRate.Text = billingRate.ToString("C2"); // Set the value in the Billable Amount Box decimal hours; decimal.TryParse(_editorHoursBilled.Text.Replace("$", ""), out hours); _editorBillableAmount.Text = Math.Round(billingRate * hours, 2, MidpointRounding.AwayFromZero).ToString("C2"); }
protected async void ButtonClockOut_Clicked(object sender, EventArgs e) { if (_pickerTechnicianStatus.SelectedIndex < 0) { await DisplayAlert("Status", "Select a technician status.", "OK"); return; } if (_pickerTicketStatus.SelectedIndex < 0) { await DisplayAlert("Status", "Select a ticket status.", "OK"); return; } if (_pickerEarningsCode.SelectedIndex < 0) { await DisplayAlert("Earnings Code", "Select an earnings code.", "OK"); return; } if (_pickerActivityCode.SelectedIndex < 0) { await DisplayAlert("Activity Code", "Select an activity code.", "OK"); return; } DateTime dtDepart = DateTime.Now; double hoursWorked = 0; if (_captureTimeInTimeTracker == "Y") { DateTime dtArrive; if (_pickerStartDate.Date == null) { await DisplayAlert("Arrive Date", "Enter a valid arrival date.", "OK"); return; } if (_pickerDepartDate.Date == null) { await DisplayAlert("Depart Date", "Enter a valid departure date.", "OK"); return; } // dch rkl 02/03/2017 Capture hours worked, for validation if (_editorHoursWorked.Text != null) { double.TryParse(_editorHoursWorked.Text, out hoursWorked); } } else { // dch rkl 01/23/2017 captureTimeInTimeTracker == "N", hours must be entered if (_editorHoursWorked.Text != null) { double.TryParse(_editorHoursWorked.Text, out hoursWorked); } if (hoursWorked == 0) { await DisplayAlert("Hours Worked", "Enter valid hours worked.", "OK"); return; } } if (hoursWorked > 24) { await DisplayAlert("Hours Worked", "Time entry cannot exceed 24 hours. Please adjust your Depart Date/Time and create a separate Clock In/Clock Out for additional hours.", "OK"); return; } double meterReading = 0; double hoursBilled = 0; JT_TechnicianStatus selectedTechnicianStatus = _pickerTechnicianStatus.SelectedItem as JT_TechnicianStatus; JT_MiscellaneousCodes selectedTicketStatus = _pickerTicketStatus.SelectedItem as JT_MiscellaneousCodes; JT_EarningsCode selectedEarningsCode = _pickerEarningsCode.SelectedItem as JT_EarningsCode; JT_ActivityCode selectedActivityCode = _pickerActivityCode.SelectedItem as JT_ActivityCode; try { if (_vm.IsRepairItemAnEquipmentAsset) { meterReading = double.Parse(_editorMeterReading.Text); } else { meterReading = 0; } } catch { // empty } try { hoursBilled = double.Parse(_editorHoursBilled.Text); } catch { // empty } JT_MiscellaneousCodes deptCode = (JT_MiscellaneousCodes)_pickerDepartment.SelectedItem; ClockOutPageViewModel.App_Billable appBillable = (ClockOutPageViewModel.App_Billable)_pickerBillable.SelectedItem; if (_captureTimeInTimeTracker == "Y") { //_vm.ClockOut(_pickerDepartTime.Time, selectedTechnicianStatus, selectedTicketStatus, selectedActivityCode, string.Empty, // selectedEarningsCode, hoursBilled, meterReading, _editorWorkPerformed.Text, _pickerDepartDate.Date.ToShortDateString()); _vm.ClockOut(_pickerDepartTime.Time, selectedTechnicianStatus, selectedTicketStatus, selectedActivityCode, deptCode.MiscellaneousCode, selectedEarningsCode, hoursBilled, meterReading, _editorWorkPerformed.Text, _pickerDepartDate.Date.ToShortDateString(), _captureTimeInTimeTracker, hoursWorked, _vm.WorkTicket.ServiceAgreement.ServiceAgreementNumber, appBillable.BillableFlag); } else { _vm.ClockOut(new TimeSpan(), selectedTechnicianStatus, selectedTicketStatus, selectedActivityCode, deptCode.MiscellaneousCode, selectedEarningsCode, hoursBilled, meterReading, _editorWorkPerformed.Text, "", _captureTimeInTimeTracker, hoursWorked, _vm.WorkTicket.ServiceAgreement.ServiceAgreementNumber, appBillable.BillableFlag); } await Navigation.PopToRootAsync(); }