class Skr::Handlers::InvoiceFromTimeEntries
Public Class Methods
new(model, authentication, params, data)
click to toggle source
# File lib/skr/handlers/invoice_from_time_entries.rb, line 5 def initialize(model, authentication, params, data) @options = data @entry_ids = data['time_entry_ids'] @project = CustomerProject.find( data['customer_project_id'] ) @location = Location.default # should be set on project maybe? @sku_loc = @project.sku.sku_locs.find_by(location: @location) end
Public Instance Methods
create()
click to toggle source
# File lib/skr/handlers/invoice_from_time_entries.rb, line 13 def create invoice = Invoice.new( notes: @options['notes'], po_num: @options['po_num'] || @project.po_num, customer: @project.customer, customer_project: @project ) @entry_ids.each do | entry_id | entry = TimeEntry.find(entry_id) invoice.lines.build( time_entry: entry, sku_loc: @sku_loc, price: @project.rates['hourly'], description: entry.description, qty: ((entry.end_at - entry.start_at) / 1.hour) ) end std_api_reply :create, { invoice: invoice }, success: invoice.save end