У меня есть приложение rails, которое использует FreeagentCentral API для создания новых проектов в FreeagentCentral, когда в моем приложении создается новый случай.
После создания заявки я создаю ссылку на созданный проект в FreeagentCentral, используя следующий код ссылки:
<%= link_to "#{image_tag('/images/icons/freeagent.png')} Freeagent Project", "#{Freeagent::Base.site}#{Freeagent::Project.element_path(@kase.freeagent_id).gsub!(/.xml/,'')}" if @kase.freeagent_id %>
Что я хотел бы сделать, это показать список счетов, которые были созданы в FreeagentCentral в рамках проекта - в моем приложении. Например, если я создаю кейс в своем приложении, он будет создан как проект в FreeagentCentral. Если бы я затем создал 3 счета-фактуры в FreeagentCentral в рамках этого проекта, эти 3 счета-фактуры были бы перечислены в представлении case case моего приложения.
Я использую гем FreeagentCentral API, созданный Аароном Расселом:
http://github.com/aaronrussell/freeagent_api
Я сделал то, что, как я понимаю, необходимо, добавив следующее в мой kases_controller.rb
файл в разделе show:
def show
@kase = Kase.find(params[:id])
@invoice = Invoice.find(params[:freeagent_id])
Я не знаю, правильно ли это, или так должно быть на самом деле:
def show
@kase = Kase.find(params[:id])
@kase = Invoice.find(params[:freeagent_id])
Кроме того, как только вышеприведенное является правильным - как мне перечислить все счета, найденные в этом проекте, в моем представлении показа?
<% for invoice in @kases %>
<li><%= link_to ??, kase %></li>
<% end %>
Если это поможет, это код, который я использую с kase.rb
для отправки дела в FreeagentCentral в качестве проекта:
# FreeAgent API Project Create
# Required attribues
# :contact_id
# :name
# :billing_basis # must be 1, 7, 7.5, or 8
# :budget_units # must be Hours, Days, or Monetary
# :status # must be Active or Completed
def create_freeagent_project(current_user)
contact = Freeagent::Contact.find_by_name(company.companyname)
p = Freeagent::Project.create(
:contact_id => contact.id,
:name => "#{jobno} - #{highrisesubject}",
:billing_basis => 1,
:budget_units => 'Hours',
:status => 'Active'
)
user = Freeagent::User.find_by_email(current_user.email)
Freeagent::Timeslip.create(
:project_id => p.id,
:user_id => user.id,
:hours => 1,
:new_task => 'Setup',
:dated_on => Time.now
)
Freeagent::Task.create(:project_id => p.id, :name => 'Telephone Discussions')
Freeagent::Task.create(:project_id => p.id, :name => 'Investigation')
Freeagent::Task.create(:project_id => p.id, :name => 'Travel')
Freeagent::Task.create(:project_id => p.id, :name => 'Survey')
Freeagent::Task.create(:project_id => p.id, :name => 'Correspondence')
Freeagent::Task.create(:project_id => p.id, :name => 'Report')
Freeagent::Task.create(:project_id => p.id, :name => 'Claim Assessment')
self.freeagent_id = p.id
self.save
end
С благодарностью будет получена любая помощь, которую кто-либо может оказать на это!
Спасибо,
Danny