class Pdf::Accounting::PaymentReceiptService < Pdf::NewApplicationService
  include ActionView::Helpers::NumberHelper

  def initialize(payment)
    @payment = payment
    @payment_detail = payment.payment_detail
    @family = payment.family
    @school = @family.school
  end

  private
    def header
      content = ActionController::Base.new.render_to_string(
        partial: 'pdf/headers/school_info.html.haml',
        locals: {
          school: @school,
          side_content_partial: 'pdf/accounting/receipt_header',
          side_content: { date: @payment.decorate.posted_date }
        }
      )
      { content: content, spacing: 25 }
    end

    def body
      ActionController::Base.new.render_to_string(
        partial: 'pdf/accounting/payment_receipt.html.haml',
        locals: {
          family: @family.decorate,
          distribution: distribution,
          payment: @payment.decorate
        }
      )
    end

    def distribution
      JSON.parse(@payment_detail.details)['distribution']
    end
end
