From d41d618be506f5d964aa883b864b09e1e7c9fc27 Mon Sep 17 00:00:00 2001 From: Rick Barrette Date: Thu, 1 Sep 2016 02:37:31 -0400 Subject: [PATCH] Update issues_save_hook_listener.rb --- lib/issues_save_hook_listener.rb | 60 +------------------------------- 1 file changed, 1 insertion(+), 59 deletions(-) diff --git a/lib/issues_save_hook_listener.rb b/lib/issues_save_hook_listener.rb index 23289b9..9bcb781 100644 --- a/lib/issues_save_hook_listener.rb +++ b/lib/issues_save_hook_listener.rb @@ -51,64 +51,6 @@ class IssuesSaveHookListener < Redmine::Hook::ViewListener # Called After Issue Saved def controller_issues_edit_after_save(context={}) issue = context[:issue] - - if issue.assigned_to - employee_id = issue.assigned_to.qbo_employee_id - - # Check to see if we have registered with QBO and if the issue is closed. - # If so then we need to create a new billable time activity for the customer - bill_time(issue, employee_id) if Qbo.first && issue.customer && employee_id && issue.status.is_closed? - end - end - - # Create billable time entries - def bill_time(issue, employee_id) - - # Get unbilled time entries - spent_time = issue.time_entries.where(qbo_billed: [false, nil]) - spent_hours ||= spent_time.sum(:hours) || 0 - - if spent_hours > 0 then - - # Prepare to create a new Time Activity - time_service = Qbo.get_base(:time_activity).service - item_service = Qbo.get_base(:item).service - time_entry = Quickbooks::Model::TimeActivity.new - - h = Hash.new(0) - spent_time.each do |entry| - # Lets tottal up each activity - h[entry.activity.name] += entry.hours - # update time entries billed status - entry.qbo_billed = true - entry.save - end - - h.each do |key, val| - - # Convert float spent time to hours and minutes - hours = val.to_i - minutesDecimal = (( val - hours) * 60) - minutes = minutesDecimal.to_i - - item = item_service.query("SELECT * FROM Item WHERE Name = '#{key}' ").first - next if item.nil? - - time_entry.description = "#{issue.tracker} ##{issue.id}: #{issue.subject}" - # TODO entry.user.qbo_employee.id - time_entry.employee_id = employee_id - time_entry.customer_id = issue.customer_id - time_entry.billable_status = "Billable" - time_entry.hours = hours - time_entry.minutes = minutes - time_entry.name_of = "Employee" - time_entry.txn_date = Date.today - time_entry.hourly_rate = item.unit_price - time_entry.item_id = item.id - time_entry.start_time = issue.start_date - time_entry.end_time = Time.now - time_service.create(time_entry) - end - end + issue.bill_time if Qbo.first && issue.customer && issue.status.is_closed? end end