2009-06-03 4 views
0

Je veux appeler InvoicingAndDelivery.report_lines, puis me donner un tableau de ces résultats, mais cela ne fonctionne pas. Des idées?Comment initialiser la propre classe dans les rails?

class InvoicingAndDelivery < Report 
    include DateExtentions 
    attr_accessor :report_lines, :tba_line, :sum_line 

    def initialize(part_or_service_ids, start_date, to_date) 

    # @report_lines = [] 

    number_of_months(start_date,to_date).times do |i| 
     start_date = start_date + i.months 
     l = InvoicingAndDeliveryReport.new 
     l.month = start_date.strftime("%m/%Y") 
     l.work_profile = WorkProfileLine.delivery_amount_for_serivces_in(part_or_service_ids, start_date) 
     l.forecast_delivery = LineItem.forecast_delivery_amount_for_services_in(part_or_service_ids, start_date) 
     l.invoicing = InvoiceLine.invoices_total_for_services_in(part_or_service_ids, start_date) 
     l.projected_invoices = InvoiceLine.projected_invoice_total_for_services_in(part_or_service_ids, start_date) 
     l.costs = LineItem.costs_total_for_services_in(part_or_service_ids, start_date) 
     l.gross_profit = l.invoicing - l.costs 
     l.opportunities = LineItem.oportunities_value_for_services_in(part_or_service_ids, start_date) 
     # @report_lines<< l 
    end 

    @tba_line = InvoiceLine.service_type(@part_or_service).tba_lines.sum("invoice_lines.sell_price * invoice_lines.quantity").to_f 
    @sum_line = get_sum_line 
    end 

Répondre

1

Qu'est-ce qu'un rapport?

Il y a des chances que vous écrasiez quelque chose que vous ne deviez pas avoir ... Vous devez appeler super à l'initialisation, ou comme mentionné précédemment, en faire un rappel.

+0

J'ai vraiment besoin de lire un livre sur la façon d'utiliser la classe abstraite ainsi que sur la façon d'utiliser super. Merci pour votre réponse. –

1

Si InvoicingAndDelivery descend de ActiveRecord::Base, vous shouldn't override initialize. Au lieu de cela, mettez ce code dans after_initialize.

+0

Merci, je n'utilise pas cette classe comme ActiveRecord, mais merci pour les conseils de toute façon. –

Questions connexes