Sha256: d66dfb9128910896e4cb72424f288b8da58bb0b623002a1bb2ac19779ba75fa8

Contents?: true

Size: 1.58 KB

Versions: 16

Compression:

Stored size: 1.58 KB

Contents

module BrDanfe
  module MdfeLib
    class MdfeIdentification
      def initialize(pdf, xml)
        @pdf = pdf
        @xml = xml
      end

      def generate(page)
        model
        series
        number
        number_of_pages(page)
        emitted_at
        origin_uf
        destination_uf
      end

      private

      def model
        generate_box('Modelo', @xml['ide/mod'], 0)
      end

      def generate_box(title, text, x_position, width = 40)
        @pdf.move_cursor_to 655

        @pdf.stroke do
          @pdf.fill_color LIGHT_GRAY_COLOR
          @pdf.fill_rectangle([x_position, @pdf.cursor], width, 35)
          @pdf.fill_color BLACK_COLOR
        end

        @pdf.bounding_box([x_position, @pdf.cursor], width: width, height: 35) do
          @pdf.move_down 5
          @pdf.text_box(title, size: 10, at: [3, @pdf.cursor])
          @pdf.move_down 15
          @pdf.text_box(text, size: 12, at: [3, @pdf.cursor])
        end
      end

      def series
        generate_box('Série', @xml['ide/serie'], 40)
      end

      def number
        generate_box('Número', @xml['ide/nMDF'], 80)
      end

      def number_of_pages(page)
        text = "#{page}/#{@pdf.page_count}"
        generate_box('FL', text, 125)
      end

      def emitted_at
        date = Helper.format_datetime(@xml['dhEmi'])
        generate_box('Data e hora de Emissão', date, 170, 110)
      end

      def origin_uf
        generate_box('UF Carreg.', @xml['ide/UFIni'], 285, 70)
      end

      def destination_uf
        generate_box('UF Descarreg.', @xml['ide/UFFim'], 345, 70)
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
br_danfe-1.2.2 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-1.2.1 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-1.2.0 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-1.1.0 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-1.0.0 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.20.0 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.19.0 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.18.0 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.8 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.7 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.6 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.5 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.4 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.3 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.2 lib/br_danfe/mdfe_lib/mdfe_identification.rb
br_danfe-0.17.1 lib/br_danfe/mdfe_lib/mdfe_identification.rb