app/views/external_users/claims/expenses/_expense_fields.html.haml
- @expense_count += 1
.expense-group.nested-fields.js-block.fx-do-init.fx-numberedList-item{ data: { 'type': 'expenses', autovat: @claim.agfs? && @claim.apply_vat? ? 'true' : 'false', 'block-type': 'ExpenseBlock' } }
.form-section-compound
= f.govuk_text_field :location_type,
class: 'fx-location-type',
form_group: { class: 'hidden' },
label: { hidden: true },
type: 'hidden'
= f.govuk_text_field :calculated_distance,
class: 'fx-travel-calculated-distance',
form_group: { class: 'govuk-visually-hidden' },
label: { hidden: true },
type: 'hidden'
= f.govuk_fieldset legend: { text: t('.expense_html')} do
= link_to_remove_association f, wrapper_class: 'expense-group', class: 'govuk-link govuk-!-display-none fx-numberedList-action' do
= t('common.remove_html', context: t('.expense'))
.govuk-grid-row
.govuk-grid-column-full
- expense_types_collection = present_collection(ExpenseType.for_claim_type(@claim))
= f.govuk_collection_select :expense_type_id,
expense_types_collection.map { |et| [et.name, et.id, { data: et.data_attributes }] },
:second,
:first,
form_group: { class: 'fx-travel-expense-type' },
label: { text: t('.type_of_expense_html') },
options: { include_blank: t('.select_expense_type_option') }
- reasons_collection = present_collection(reasonset_for_expense_type(f.object.expense_type).values, TravelReasonPresenter)
= f.govuk_collection_select :reason_id,
reasons_collection.map { |et| [et.reason, et.id, { data: et.data_attributes }] },
:second,
:first,
form_group: { class: 'fx-travel-reason', style: 'display: none' },
label: { text: t('.travel_reason_html') },
options: { include_blank: t('.select_travel_reason_option') }
- present(f.object) do |expense|
= f.govuk_text_field :reason_text,
form_group: { class: 'fx-travel-reason-other', style: f.object.reason_id.eql?(5) ? 'display: block' : 'display: none' },
label: { text: t('.reason_text_html') },
width: 'one-half'
.fx-travel-location{ style: 'display: none' }
- if @claim.lgfs?
= f.govuk_collection_select :location,
{},
{},
{},
form_group: { class: 'fx-establishment-select has-select', style: 'display: none' },
label: { text: nil }
= f.govuk_text_field :location,
class: 'fx-location-model',
form_group: { class: 'location_wrapper' },
label: { text: t('.location_html') },
width: 'one-half'
= f.govuk_number_field :hours,
form_group: { class: 'fx-travel-hours', style: 'display: none' },
label: { text: t('.hours_html') },
min: 0,
width: 'one-quarter'
= f.govuk_number_field :distance,
form_group: { class: 'fx-travel-distance', style: 'display: none' },
hint: { text: t('.distance_hint_html') },
label: { text: t('.distance_html') },
min: 0,
value: number_with_precision(f.object.distance, precision: 0),
width: 'one-quarter'
- if @claim.lgfs?
= govuk_detail t('.summary_heading') do
= t('.summary_content')
= f.govuk_radio_buttons_fieldset :mileage_rate_id,
form_group: { class: 'fx-travel-mileage fx-travel-mileage-bike', style: 'display: none' },
legend: { text: t('.cost_html') } do
- Expense::BIKE_MILEAGE_RATES.values.map do | bike_mileage_rate |
= f.govuk_radio_button :mileage_rate_id, bike_mileage_rate.id, label: { text: bike_mileage_rate.description }
= f.govuk_radio_buttons_fieldset :mileage_rate_id,
form_group: { class: 'fx-travel-mileage fx-travel-mileage-car', style: 'display: none' },
legend: { text: t('.cost_html') } do
- Expense::CAR_MILEAGE_RATES.values.map do | car_mileage_rate |
= f.govuk_radio_button :mileage_rate_id, car_mileage_rate.id, label: { text: car_mileage_rate.description }
= f.govuk_date_field :date,
form_group: { class: 'fx-travel-date', style: 'display: none' },
legend: { text: t('.date_html') },
hint: { text: t('.date_hint') }
= f.govuk_number_field :amount,
class: 'rate',
form_group: { class: 'fx-travel-net-amount', style: 'display: none' },
label: { text: t('.net_amount_html') },
min: 0,
prefix_text: '£',
value: number_with_precision(f.object.amount || 0, precision: 2),
width: 'one-half'
- if @claim.lgfs?
= f.govuk_number_field :vat_amount,
class: 'vat',
form_group: {class: 'fx-travel-vat-amount', style: 'display: none' },
label: { text: t('.vat_amount_html') },
min: 0,
prefix_text: '£',
value: number_with_precision(f.object.vat_amount || 0, precision: 2),
width: 'one-half'
%hr.govuk-section-break.govuk-section-break--l.govuk-section-break--visible