ministryofjustice/Claim-for-Crown-Court-Defence

View on GitHub
app/views/external_users/claims/_summary_fees.html.haml

Summary

Maintainability
Test Coverage
%h2.govuk-heading-l
  = local_assigns.has_key?(:header) ? header : t('common.fees')

- if local_assigns.has_key?(:unclaimed_fees)
  = render partial: 'unclaimed_fees_notice_brief', locals: { unclaimed_fees:, notice_form: :long }

- if local_assigns[:editable]
  = govuk_link_to t('common.change_html', context: t('common.fees')), edit_polymorphic_path(claim, step: step, referrer: :summary), class: 'link-change'

-# TODO: Avoid use of these checks and just display info
-# based on configuration
- if claim.agfs? && %i[basic_fees fixed_fees].include?(step)
  = render partial: 'external_users/claims/advocate_category_summary', locals: { claim: claim }

  - if claim.discontinuance?
    = render partial: 'external_users/claims/prosecution_evidence_summary', locals: { claim: claim }

- if local_assigns.has_key?(:fee)
  - if fee
    = govuk_table do
      = govuk_table_caption(class: 'govuk-visually-hidden') do
        = t('.caption')
      = govuk_table_tbody do
        = render partial: 'external_users/claims/summary_fee', locals: { fee: present(fee) }
  - else
    - if local_assigns.has_key?(:editable) && !local_assigns[:editable]
      = render partial: 'external_users/claims/summary/section_status', locals: { claim: claim, section: section, step: step }
    - else
      %p
        = t("shared.summary.no_values.#{section}")
- else
  - collection = local_assigns.has_key?(:collection) ? collection : claim.fees.select(&:present?)
  - section = local_assigns.has_key?(:section) ? section : :fees

  - if collection.empty? || collection.all?(&:blank?)
    - if local_assigns.has_key?(:editable) && !local_assigns[:editable]
      = render partial: 'external_users/claims/summary/section_status', locals: { claim: claim, section: section, step: step }
    - else
      %p
        = t("shared.summary.no_values.#{section}")
  - else
    - if section.to_s.eql?('basic_fees')
      %h3.govuk-heading-m
        = t('shared.summary.basic_fees')

    = govuk_table do
      = govuk_table_caption(class: 'govuk-visually-hidden') do
        = t('.caption')

      = govuk_table_thead do
        = govuk_table_row do
          = govuk_table_th do
            = t('shared.summary.fee_type')
          - unless claim.lgfs? && collection.any?(&:is_misc?)
            = govuk_table_th do
              = t('shared.summary.dates')
            = govuk_table_th_numeric do
              = t('shared.summary.quantity')
            = govuk_table_th_numeric do
              = t('shared.summary.rate')
          = govuk_table_th_numeric do
            = t('shared.summary.amount')
          = govuk_table_th_numeric do
            = t('shared.summary.vat_amount')
          = govuk_table_th_numeric do
            = t('shared.summary.total_amount')

      = govuk_table_tbody do
        - present_collection(collection.sort_by(&:position)).each.with_index(1) do |fee, index|
          = render partial: 'external_users/claims/summary_fee', locals: { fee: fee }

      = govuk_table_tfoot do
        = govuk_table_row do
          = govuk_table_th(scope: 'row') do
            = t('shared.summary.total')
          - unless claim.lgfs? && collection.any?(&:is_misc?)
            = govuk_table_td(colspan: '3') { nil }

          = govuk_table_td_numeric('data-label': t('shared.summary.amount')) do
            = claim.send("#{section}_total")
          = govuk_table_td_numeric('data-label': t('shared.summary.vat_amount')) do
            = claim.send("#{section}_vat")
          = govuk_table_td_numeric('data-label': t('shared.summary.total_amount')) do
            = claim.send("#{section}_gross")