/**
  * Parse the given string containing 21 into a Transaction21-object
  *
  * @param string $coda21_line
  * @return Transaction21
  */
 public function parse($coda21_line)
 {
     $coda21 = new Transaction21();
     $coda21->sequence_number = codaStr2Data($coda21_line, 2, 4);
     $coda21->sequence_number_detail = codaStr2Data($coda21_line, 6, 4);
     $coda21->bank_reference = codaStr2Data($coda21_line, 10, 21);
     $negative = substr($coda21_line, 31, 1) == "1" ? -1 : 1;
     $coda21->amount = codaStr2Data($coda21_line, 32, 15) * $negative / 1000;
     $coda21->valuta_date = coda2Date(codaStr2Data($coda21_line, 47, 6));
     $coda21->transaction_code = codaStr2Data($coda21_line, 53, 8);
     $coda21->transaction_code_type = codaStr2Data($coda21->transaction_code, 0, 1);
     $coda21->transaction_code_family = codaStr2Data($coda21->transaction_code, 1, 2);
     $coda21->transaction_code_operation = codaStr2Data($coda21->transaction_code, 3, 2);
     $coda21->transaction_code_category = codaStr2Data($coda21->transaction_code, 5, 3);
     $coda21->has_structured_message = codaStr2Data($coda21_line, 61, 1) == "1" ? TRUE : FALSE;
     if ($coda21->has_structured_message) {
         $coda21->structured_message_type = substr($coda21_line, 62, 3);
         $coda21->structured_message_full = substr($coda21_line, 65, 50);
         $coda21->structured_message = $this->parse_structured_message($coda21->structured_message_full, $coda21->structured_message_type);
     } else {
         $coda21->message = trim_space(substr($coda21_line, 62, 53));
     }
     $coda21->transaction_date = coda2Date(codaStr2Data($coda21_line, 115, 6));
     $coda21->statement_sequence_number = codaStr2Data($coda21_line, 121, 3);
     $coda21->globalization_code = codaStr2Data($coda21_line, 124, 1);
     return $coda21;
 }
 /**
  * Parse the given string containing 33 into a Transaction33-object
  *
  * @param string $coda33_line
  * @return object
  */
 public function parse($coda33_line)
 {
     $coda33 = new \Codelicious\Coda\Data\Raw\Transaction33();
     $coda33->sequence_number = trim(substr($coda33_line, 2, 4));
     $coda33->sequence_number_detail = trim(substr($coda33_line, 6, 4));
     $coda33->message = trim_space(substr($coda33_line, 10, 90));
     return $coda33;
 }
 /**
  * Parse the given string containing 23 into a Transaction23-object
  *
  * @param string $coda23_line
  * @return object
  */
 public function parse($coda23_line)
 {
     $coda23 = new \Codelicious\Coda\Data\Raw\Transaction23();
     $coda23->sequence_number = trim(substr($coda23_line, 2, 4));
     $coda23->sequence_number_detail = trim(substr($coda23_line, 6, 4));
     $coda23->other_account_number_and_currency = trim(substr($coda23_line, 10, 37));
     $coda23->other_account_name = trim(substr($coda23_line, 47, 35));
     $coda23->message = trim_space(substr($coda23_line, 82, 43));
     return $coda23;
 }
 /**
  * Parse the given string containing 22 into a Transaction22-object
  *
  * @param string $coda22_line
  * @return object
  */
 public function parse($coda22_line)
 {
     $coda22 = new Transaction22();
     $coda22->sequence_number = trim(substr($coda22_line, 2, 4));
     $coda22->sequence_number_detail = trim(substr($coda22_line, 6, 4));
     $coda22->message = trim_space(substr($coda22_line, 10, 53));
     $coda22->client_reference = trim(substr($coda22_line, 63, 35));
     $coda22->other_account_bic = trim(substr($coda22_line, 98, 11));
     $coda22->transaction_type = trim(substr($coda22_line, 112, 1));
     $coda22->iso_reason_return_code = trim(substr($coda22_line, 113, 4));
     $coda22->category_purpose = trim(substr($coda22_line, 117, 4));
     $coda22->purpose = trim(substr($coda22_line, 121, 4));
     return $coda22;
 }
 /**
  * Parse the given string containing 31 into a Transaction31-object
  *
  * @param string $coda31_line
  * @return object
  */
 public function parse($coda31_line)
 {
     $coda31 = new \Codelicious\Coda\Data\Raw\Transaction31();
     $coda31->sequence_number = trim(substr($coda31_line, 2, 4));
     $coda31->sequence_number_detail = trim(substr($coda31_line, 6, 4));
     $coda31->bank_reference = trim(substr($coda31_line, 10, 21));
     $coda31->transaction_code = trim(substr($coda31_line, 31, 8));
     $coda31->has_structured_message = substr($coda31_line, 39, 1) == "1" ? TRUE : FALSE;
     if ($coda31->has_structured_message) {
         $coda31->structured_message_type = substr($coda31_line, 40, 3);
         $coda31->structured_message_full = substr($coda31_line, 43, 70);
         $coda31->structured_message = $this->parse_structured_message($coda31->structured_message_full, $coda31->structured_message_type);
     } else {
         $coda31->message = trim_space(substr($coda31_line, 40, 73));
     }
     return $coda31;
 }