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();
        }
Пример #2
0
        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();
        }