Packages
diint_utilites_common_app
1.4.3
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.9
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.101
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
библиотеки для работы с ребитом и протоколы
Current section
Files
Jump to
Current section
Files
src/finance_protocol/protocol_iso_utilites.erl
%%%-------------------------------------------------------------------
%%% @author cheese
%%% @copyright (C) 2014, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 10. Dec 2014 2:21 PM
%%%-------------------------------------------------------------------
-module(protocol_iso_utilites).
-author("cheese").
-include("../../include/types_finance_protocol.hrl").
%% API
-export([get_field/2, set_field/2, prepare_data_string_to_bcd/1]).
%% Internal Functions
-export([internal_set_field/3]).
-spec(get_field([#iso_field{}], integer()) -> #iso_field{}).
get_field([], _Idx) ->
undefined;
get_field([#iso_field{pos = Idx} = F | _Tail], Idx) ->
F;
get_field([_Head | Tail], Idx) ->
get_field(Tail, Idx).
-spec(set_field([#iso_field{}], #iso_field{}) -> #iso_field{}).
set_field(AllFields, Field) ->
internal_set_field(AllFields, [], Field).
%%======================================================================================================================
internal_set_field([], Res, Field) ->
Res ++ [Field];
internal_set_field([#iso_field{pos = Idx} | Res], Head, #iso_field{pos = Idx} = Field) ->
Head ++ [Field] ++ Res;
internal_set_field([#iso_field{pos = IdxBefore} = FBefore | Tail], Res, #iso_field{pos = Idx} = Field) when IdxBefore > Idx ->
Res ++ [Field] ++ [FBefore] ++ Tail;
internal_set_field([Head | Tail], Res, Field) ->
internal_set_field(Tail, Res ++ [Head], Field).
-spec(prepare_data_string_to_bcd(string()) -> binary()).
prepare_data_string_to_bcd(String) ->
bytes_extension:int_to_bcd(list_to_integer(String)).