private void SetRefRate() { decimal billingRate = 0; decimal billingRateMultiplier = 1; JT_ActivityCode activityCode = (JT_ActivityCode)_pickerActivityCode.SelectedItem; if (activityCode != null) { billingRateMultiplier = activityCode.BillingRateMultiplier; if (billingRateMultiplier == 0) { billingRateMultiplier = 1; } } if (_vm.WorkTicket.DtlCoverageExceptionCode != null && _vm.WorkTicket.DtlCoverageExceptionCode.Trim().Length > 0) { billingRate = _vm.WorkTicket.DtlCoverageExceptionFixedRate; } if (_vm.WorkTicket.IsPreventativeMaintenance) { billingRate = Math.Round(_vm.WorkTicket.ServiceAgreement.PmDetail.Rate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } else { if (_vm.WorkTicket.ServiceAgreement.DetailRate != 0) { billingRate = Math.Round(_vm.WorkTicket.ServiceAgreement.DetailRate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } else { billingRate = Math.Round(_vm.WorkTicket.ServiceAgreement.StandardLaborRate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } } if (activityCode != null) { App_Customer customer = App.Database.GetAppCustomer(_vm.WorkTicket); JT_CustomerBillingRates custBillRate = App.Database.GetJT_CustomerBillingRate(customer.ARDivisionNo, customer.CustomerNo, activityCode.ActivityCode); if (custBillRate != null) { billingRate = Math.Round(custBillRate.BillRatePerHour * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } } if (billingRate == 0) { JT_Technician technician = App.Database.GetCurrentTechnicianFromDb(); billingRate = Math.Round(technician.StandardBillingRate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } _editorRefRate.Text = billingRate.ToString("C2"); SetBillableRate(); }
public JT_CustomerBillingRates GetJT_CustomerBillingRate(string divisionNo, string customerNo, string activityCode) { JT_CustomerBillingRates custBillRate = null; lock (_locker) { custBillRate = _database.Table <JT_CustomerBillingRates>().Where( ac => (ac.ARDivisionNo == divisionNo && ac.CustomerNo == customerNo && ac.ActivityCode == activityCode) ).FirstOrDefault(); } return(custBillRate); }
// dch rkl 12/02/2016 Set Ref Rate private void SetRefRate() { decimal billingRate = 0; string sActivityCode = ""; decimal billingRateMultiplier = 1; if (pickerActivityCode.SelectedIndex > -1 && pickerActivityCode.SelectedValue != null) { sActivityCode = pickerActivityCode.SelectedValue.ToString(); } if (sActivityCode.Length > 0) { JT_ActivityCode activityCode = App.Database.GetActivityCodeFromDB(sActivityCode); billingRateMultiplier = activityCode.BillingRateMultiplier; if (billingRateMultiplier == 0) { billingRateMultiplier = 1; } } if (_workTicket.DtlCoverageExceptionCode != null && _workTicket.DtlCoverageExceptionCode.Trim().Length > 0) { billingRate = _workTicket.DtlCoverageExceptionFixedRate; } if (_workTicket.IsPreventativeMaintenance) { billingRate = Math.Round(_workTicket.ServiceAgreement.PmDetail.Rate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } else { if (_workTicket.ServiceAgreement.DetailRate != 0) { billingRate = Math.Round(_workTicket.ServiceAgreement.DetailRate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } else { billingRate = Math.Round(_workTicket.ServiceAgreement.StandardLaborRate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } } // Look for customer billing rates if (sActivityCode.Trim().Length > 0) { App_Customer customer = App.Database.GetAppCustomer(_workTicket); JT_CustomerBillingRates custBillRate = App.Database.GetJT_CustomerBillingRate(customer.ARDivisionNo, customer.CustomerNo, sActivityCode); if (custBillRate != null) { billingRate = Math.Round(custBillRate.BillRatePerHour * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } } // Set Rate based on Technician if (billingRate == 0) { JT_Technician technician = App.Database.GetCurrentTechnicianFromDb(); billingRate = Math.Round(technician.StandardBillingRate * billingRateMultiplier, 2, MidpointRounding.AwayFromZero); } // Set the value in the rate box editorRefRate.Text = billingRate.ToString("C2"); // Billable Rate SetBillableRate(); }