/**
  * @param BeneficiaryAdapterInterface
  * @param String The key to read the config from
  * @return Line a line
  */
 public static function createAdvisingRecordLine(BeneficiaryAdapterInterface $beneficiary, $config_key)
 {
     $line = new Line($config_key);
     $columns = ['record_type' => PresetStringColumnFactory::create('ADV', $label = 'record_type'), 'advice_recepient_id' => EmptyColumnFactory::create($label = 'advice_recepient_id'), 'action_flag' => EmptyColumnFactory::create($label = 'action_flag'), 'recipient_template_desc' => EmptyColumnFactory::create($label = 'recipient_template_desc'), 'user_id' => EmptyColumnFactory::create($label = 'user_id'), 'user_first_name' => EmptyColumnFactory::create($label = 'user_first_name'), 'user_last_name' => EmptyColumnFactory::create($label = 'user_last_name'), 'number_of_recipient' => PresetStringColumnFactory::create('1', $label = 'number_of_recipient'), 'recipient_item_no' => PresetStringColumnFactory::create('1', $label = 'recipient_item_no'), 'recipient_name' => VariableLengthStringColumnFactory::create($beneficiary->getFullname(), $max_length = 600, $label = 'recipient_name'), 'recipient_title' => VariableLengthStringColumnFactory::create($beneficiary->getRecipientTitleFlag(), 1, $label = 'recipient_title'), 'recipient_title_desc' => EmptyColumnFactory::create($beneficiary->getRecipientTitleDescription(), $label = 'recipient_title_desc'), 'action_code' => EmptyColumnFactory::create($label = 'action_code'), 'template_id' => EmptyColumnFactory::create($label = 'template_id'), 'template_status' => EmptyColumnFactory::create($label = 'template_status'), 'template_timetamp' => EmptyColumnFactory::create($label = 'template_timetamp'), 'advice_format' => PresetStringColumnFactory::create('F', $label = 'advice_format'), 'email_channel_select_flag' => PresetStringColumnFactory::create('Y', $label = 'email_channel_select_flag'), 'email_format' => PresetStringColumnFactory::create('1', $label = 'email_format'), 'email_address' => VariableLengthStringColumnFactory::create($beneficiary->getEmail(), $max_length = 70, $label = 'email_address'), 'alternate_email_address' => EmptyColumnFactory::create($label = 'alternate_email_address'), 'domicile_of_email_recipient' => ConfigurableStringColumnFactory::create($config = $line->config, 'domicile_of_email_recipient', $label = 'domicile_of_email_recipient')];
     $line->setColumns($columns);
     return $line;
 }
 /**
  * @param Beneficiary
  * @return BeneficiaryLines
  */
 public function getLine()
 {
     $line = new Line();
     $columns = ['record_type' => PresetStringColumnFactory::create('BATHDR', $label = 'record_type'), 'instruction_type' => PresetStringColumnFactory::create('COS', $label = 'instruction_type'), 'total_instructions' => VariableLengthStringColumnFactory::create($this->getBeneficiaryCount(), $max_length = 7, $label = 'total_instructions'), 'batch_reference' => EmptyColumnFactory::create($label = 'batch_reference'), 'filter_1' => EmptyColumnFactory::create($label = 'filter_1'), 'filter_2' => EmptyColumnFactory::create($label = 'filter_2'), 'filter_3' => EmptyColumnFactory::create($label = 'filter_3'), 'filter_4' => EmptyColumnFactory::create($label = 'filter_4'), 'filter_5' => EmptyColumnFactory::create($label = 'filter_5'), 'constant_eye_catcher' => PresetStringColumnFactory::create('@1ST@', $label = 'constant_eye_catcher'), 'value_date' => EmptyColumnFactory::create($label = 'value_date'), 'first_party_account' => ConfigurableStringColumnFactory::create($this->config, 'first_party_account', $label = 'first_party_account'), 'transaction_currency' => EmptyColumnFactory::create($label = 'transaction_currency'), 'transaction_amount' => EmptyColumnFactory::create($label = 'transaction_amount'), 'template_mode' => EmptyColumnFactory::create($label = 'template_mode'), 'batch_template_id' => EmptyColumnFactory::create($label = 'batch_template_id'), 'first_party_acc_country_code' => ConfigurableStringColumnFactory::create($this->config, 'first_party_account_country_code', $label = 'first_party_acc_country_code'), 'first_party_acc_institution_code' => ConfigurableStringColumnFactory::create($this->config, 'first_party_account_institution_code', $label = 'first_party_acc_institution_code'), 'first_party_acc_currency' => ConfigurableStringColumnFactory::create($this->config, 'first_party_account_currency', $label = 'first_party_acc_currency'), 'payment_amount_debit_acc_currency' => EmptyColumnFactory::create($label = 'payment_amount_debit_acc_currency'), 'first_party_name' => EmptyColumnFactory::create($label = 'first_party_name'), 'first_party_info_1' => EmptyColumnFactory::create($label = 'first_party_info_1'), 'first_party_info_2' => EmptyColumnFactory::create($label = 'first_party_info_2'), 'first_party_info_3' => EmptyColumnFactory::create($label = 'first_party_info_3'), 'first_party_info_4' => EmptyColumnFactory::create($label = 'first_party_info_4'), 'payment_code' => EmptyColumnFactory::create($label = 'payment_code'), 'reference_line_1' => VariableLengthStringColumnFactory::create($this->getFileReference(), $max_length = 35, $label = 'reference_line_1')];
     $line->setColumns($columns);
     return $line;
 }