lib/fina_files/fina_izvadak.rb
def prometi(izvadak)
    [].tap do |result|
      grupa = nil
      counter = nil
      izvadak.lines.map do |line|
        decoded = decode(line.chomp)
        tip = decoded[-1]
        if tip == "900"
          next
        elsif tip == "903"
          grupa = decoded
          counter = 0
        elsif tip == "905"
          counter += 1
          result << [
                      grupa[8].to_i,
                      counter,
                      DateTime.parse(grupa[10]),
                      decoded[0] == "10" ? :na_teret : :u_korist,
                      grupa[2],
                      grupa[3],
                      decoded[1],
                      decoded[2],
                      decoded[3],
                      decoded[4],
                      DateTime.parse(decoded[5]),
                      DateTime.parse(decoded[6]),
                      (BigDecimal.new(decoded[11] + decoded[12])/100.0).round(2),
                      decoded[13],
                      decoded[14],
                      decoded[16],
                      decoded[18]
                    ]
        elsif tip == "907"
          next
        elsif tip == "909"
          next
        elsif tip == "999"
          next
        end
      end
    end
  end
####################
# format prometa
####################
# broj_izvoda
# redni broj
# datum izvoda
# vrsta transakcije
# transakcijski racun
# valuta
# racun stranka
# naziv stranka
# adresa stranka
# mjesto stranka
# datum valute
# datum izvrsenja
# iznos
# poziv na broj platitelja
# poziv na broj primatelja
# opis prometa
# identifikacijski broj prometa
format prometa
broj_izvoda
redni broj
datum izvoda
vrsta transakcije
transakcijski racun
valuta
racun stranka
naziv stranka
adresa stranka
mjesto stranka
datum valute
datum izvrsenja
iznos
poziv na broj platitelja
poziv na broj primatelja
opis prometa
identifikacijski broj prometa
format prometa broj_izvoda redni broj datum izvoda vrsta transakcije transakcijski racun valuta racun stranka naziv stranka adresa stranka mjesto stranka datum valute datum izvrsenja iznos poziv na broj platitelja poziv na broj primatelja opis prometa identifikacijski broj prometa
def prometi(izvadak)
    [].tap do |result|
      grupa = nil
      counter = nil
      izvadak.lines.map do |line|
        decoded = decode(line.chomp)
        tip = decoded[-1]
        if tip == "900"
          next
        elsif tip == "903"
          grupa = decoded
          counter = 0
        elsif tip == "905"
          counter += 1
          result << [
                      grupa[8].to_i,
                      counter,
                      DateTime.parse(grupa[10]),
                      decoded[0] == "10" ? :na_teret : :u_korist,
                      grupa[2],
                      grupa[3],
                      decoded[1],
                      decoded[2],
                      decoded[3],
                      decoded[4],
                      DateTime.parse(decoded[5]),
                      DateTime.parse(decoded[6]),
                      (BigDecimal.new(decoded[11] + decoded[12])/100.0).round(2),
                      decoded[13],
                      decoded[14],
                      decoded[16],
                      decoded[18]
                    ]
        elsif tip == "907"
          next
        elsif tip == "909"
          next
        elsif tip == "999"
          next
        end
      end
    end
  end
def prometi ( izvadak ) [ ] . tap do | result | grupa = nil counter = nil izvadak . lines . map do | line | decoded = decode ( line . chomp ) tip = decoded [ - 1 ] if tip == "900" next elsif tip == "903" grupa = decoded counter = 0 elsif tip == "905" counter += 1 result << [ grupa [ 8 ] . to_i , counter , DateTime . parse ( grupa [ 10 ] ) , decoded [ 0 ] == "10" ? :na_teret : :u_korist , grupa [ 2 ] , grupa [ 3 ] , decoded [ 1 ] , decoded [ 2 ] , decoded [ 3 ] , decoded [ 4 ] , DateTime . parse ( decoded [ 5 ] ) , DateTime . parse ( decoded [ 6 ] ) , ( BigDecimal . new ( decoded [ 11 ] + decoded [ 12 ] ) / 100.0 ) . round ( 2 ) , decoded [ 13 ] , decoded [ 14 ] , decoded [ 16 ] , decoded [ 18 ] ] elsif tip == "907" next elsif tip == "909" next elsif tip == "999" next end end end end
format prometa
broj_izvoda
redni broj
datum izvoda
vrsta transakcije
transakcijski racun
valuta
racun stranka
naziv stranka
adresa stranka
mjesto stranka
datum valute
datum izvrsenja
iznos
poziv na broj platitelja
poziv na broj primatelja
opis prometa
identifikacijski broj prometa
format prometa broj_izvoda redni broj datum izvoda vrsta transakcije transakcijski racun valuta racun stranka naziv stranka adresa stranka mjesto stranka datum valute datum izvrsenja iznos poziv na broj platitelja poziv na broj primatelja opis prometa identifikacijski broj prometa
izvadak