J'ai une application rails qui utilise l'API FreeagentCentral pour créer de nouveaux projets dans FreeagentCentral lorsqu'un nouveau cas est créé dans mon application.Utilisation de l'API Rails & FreeagentCentral
Une fois que le cas a été créé, je lie au projet créé en FreeagentCentral utilisant le code de lien suivant:
<%= 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 %>
Ce que je voudrais faire, est afficher une liste des factures qui ont été créés dans FreeagentCentral dans le cadre du projet - dans ma demande. Ainsi, par exemple, si je crée un cas dans mon application, il sera alors créé en tant que projet dans FreeagentCentral. Si j'ai ensuite créé 3 factures dans FreeagentCentral dans le cadre de ce projet, les 3 factures seraient listées dans la vue de présentation de mon application.
J'utilise un petit bijou de l'API FreeagentCentral faite par Aaron Russell:
http://github.com/aaronrussell/freeagent_api
Je l'ai fait ce que je crois être nécessaire, ce qui est ajouté ce qui suit à mon dossier kases_controller.rb
dans la section show:
def show
@kase = Kase.find(params[:id])
@invoice = Invoice.find(params[:freeagent_id])
Je ne sais pas si c'est exact, ou si elle en fait:
def show
@kase = Kase.find(params[:id])
@kase = Invoice.find(params[:freeagent_id])
Aussi, une fois que ce qui précède est correct - comment puis-je lister toutes les factures trouvées dans ce projet dans ma vue de spectacle?
<% for invoice in @kases %>
<li><%= link_to ??, kase %></li>
<% end %>
Si elle aide, c'est le code que j'utilise de kase.rb
pour envoyer le cas FreeagentCentral comme projet:
# 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
Toute aide quelqu'un pouvait jeter sur ce serait reçue avec reconnaissance!
Merci,
Danny