From 0bd844a22fa4e05dbb2614a166c5ca7cddddd404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Alves?= Date: Thu, 20 Apr 2023 20:21:11 -0300 Subject: [PATCH] hotfix: remove chunk footer types --- CHANGELOG | 1 + README.md | 2 +- app/cnabex/cnab240/services/build_details.ex | 9 +--- app/cnabex/cnab240/services/encode_details.ex | 4 +- app/cnabex/cnab240/templates/chunk_footer.ex | 54 ++----------------- mix.exs | 2 +- 6 files changed, 8 insertions(+), 64 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 4115314..b1a65f0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ All notable changes to this project will be documented in this file. ## Version History +- 1.1.2 (2023-20-04) - 1.1.1 (2023-20-04) - 1.1.0 (2023-18-04) - 1.0.1 (2023-14-04) diff --git a/README.md b/README.md index d4276a1..922288f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ In `mix.exs`, add the ExMachina dependency: ```elixir def deps do [ - {:ex_cnab, "~> 1.1.1"}, + {:ex_cnab, "~> 1.1.2"}, ] end ``` diff --git a/app/cnabex/cnab240/services/build_details.ex b/app/cnabex/cnab240/services/build_details.ex index 0611ab3..4b23481 100644 --- a/app/cnabex/cnab240/services/build_details.ex +++ b/app/cnabex/cnab240/services/build_details.ex @@ -3,8 +3,6 @@ defmodule ExCnab.Cnab240.Services.BuildDetails do Service to generate a details """ - import Helpers.ConvertPosition - alias ExCnab.Cnab240.Templates.{ChunkFooter, ChunkHeader, Details} @payment_mapper %{ @@ -83,14 +81,9 @@ defmodule ExCnab.Cnab240.Services.BuildDetails do %{header: header, detail: details, footer: footer} = detail[detail_key_id] - detail_type = - details - |> hd() - |> convert_position(14, 14) - {:ok, builded_header} = ChunkHeader.generate(header) {:ok, builded_details} = Details.generate(details) - {:ok, builded_footer} = ChunkFooter.generate(detail_type, footer) + {:ok, builded_footer} = ChunkFooter.generate(footer) amount = get_chunk_infos(builded_header, builded_footer) diff --git a/app/cnabex/cnab240/services/encode_details.ex b/app/cnabex/cnab240/services/encode_details.ex index fe69a4d..b0d754f 100644 --- a/app/cnabex/cnab240/services/encode_details.ex +++ b/app/cnabex/cnab240/services/encode_details.ex @@ -11,11 +11,9 @@ defmodule ExCnab.Cnab240.Services.EncodeDetails do Enum.map(details, fn detail -> %{header_lote: header, lotes: details, trailer_lote: footer} = detail - %{servico: %{segmento: segmento}} = hd(details) - encoded_header = ChunkHeader.encode(header) encoded_detail = Details.encode(details) - encoded_footer = ChunkFooter.encode(segmento, footer) + encoded_footer = ChunkFooter.encode(footer) [encoded_header, encoded_detail, encoded_footer] |> Enum.join("\r\n") end) diff --git a/app/cnabex/cnab240/templates/chunk_footer.ex b/app/cnabex/cnab240/templates/chunk_footer.ex index 54c64cf..a2fc23c 100644 --- a/app/cnabex/cnab240/templates/chunk_footer.ex +++ b/app/cnabex/cnab240/templates/chunk_footer.ex @@ -32,8 +32,8 @@ defmodule ExCnab.Cnab240.Templates.ChunkFooter do └── Ocorrências (231..240) ``` """ - @spec generate(String.t(), String.t()) :: {:ok, Map.t()} | {:error, String.t()} - def generate("J52", raw_string) do + @spec generate(String.t()) :: {:ok, Map.t()} | {:error, String.t()} + def generate(raw_string) do control_field = control_fields(raw_string) total = total_fields(raw_string) @@ -48,21 +48,6 @@ defmodule ExCnab.Cnab240.Templates.ChunkFooter do }} end - def generate(_, raw_string) do - control_field = control_fields(raw_string) - total = total_fields(raw_string) - - {:ok, - %{ - controle: control_field, - uso_febraban_1: convert_position(raw_string, 9, 17), - total: total, - numero_aviso_previo: convert_position(raw_string, 60, 65), - uso_febraban_2: convert_position(raw_string, 66, 230), - ocorrencias: convert_position(raw_string, 231, 240) - }} - end - defp control_fields(raw_string) do %{ codigo_do_banco: convert_position(raw_string, 1, 3), @@ -79,7 +64,7 @@ defmodule ExCnab.Cnab240.Templates.ChunkFooter do } end - def encode("J52", footer) do + def encode(footer) do %{ controle: %{ codigo_do_banco: codigo_do_banco, @@ -111,37 +96,4 @@ defmodule ExCnab.Cnab240.Templates.ChunkFooter do ] |> Enum.join() end - - def encode(_type, footer) do - %{ - controle: %{ - codigo_do_banco: codigo_do_banco, - lote: lote, - registro: registro - }, - uso_febraban_1: uso_febraban_1, - total: %{ - qnt_registros: qnt_registros, - valor: valor, - qnt_moeda: qnt_moeda - }, - numero_aviso_previo: numero_aviso_previo, - uso_febraban_2: uso_febraban_2, - ocorrencias: ocorrencias - } = footer - - [ - codigo_do_banco, - lote, - registro, - uso_febraban_1, - qnt_registros, - valor, - qnt_moeda, - numero_aviso_previo, - uso_febraban_2, - ocorrencias - ] - |> Enum.join() - end end diff --git a/mix.exs b/mix.exs index f1d23ad..9a41f48 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule ExCnab.MixProject do def project do [ app: :ex_cnab, - version: "1.1.1", + version: "1.1.2", elixir: "~> 1.14", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod,