class BrDanfe::DanfeLib::NfeLib::Infadic

Constants

Y_POSITION

Public Class Methods

new(pdf, xml) click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 7
def initialize(pdf, xml)
  @pdf = pdf
  @xml = xml
  @title_position = Y_POSITION - 0.41
  @y_position = Y_POSITION
end

Public Instance Methods

render(volumes_number) click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 14
def render(volumes_number)
  render_title
  render_subtitle
  render_volumes if volumes_number > 1
  render_additional_data generate_y_position(volumes_number) if additional_data?
  render_reserved_fisco
end

Private Instance Methods

additional_data?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 100
def additional_data?
  complementary? || address? || difal? || fisco?
end
address?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 62
def address?
  Helper.address_is_too_big @pdf, Helper.generate_address(@xml, 'enderDest')
end
address_content() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 58
def address_content
  "Endereço: #{Helper.generate_address @xml, 'enderDest'}"
end
complementary?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 54
def complementary?
  @xml['infAdic/infCpl'].to_s != ''
end
complementary_content() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 50
def complementary_content
  @xml['infAdic/infCpl'].to_s
end
difal?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 79
def difal?
  value = @xml['ICMSTot/vICMSUFDest'].presence || '0.0'
  BigDecimal(value).positive?
end
difal_content() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 66
def difal_content
  I18n.t(
    'danfe.infAdic.difal',
    vICMSUFDest: numerify(@xml['ICMSTot/vICMSUFDest']),
    vFCPUFDest: numerify(@xml['ICMSTot/vFCPUFDest']),
    vICMSUFRemet: numerify(@xml['ICMSTot/vICMSUFRemet'])
  )
end
fisco?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 88
def fisco?
  @xml['infAdic/infAdFisco'].to_s.present?
end
fisco_content() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 84
def fisco_content
  @xml['infAdic/infAdFisco'].to_s
end
generate_additional_data() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 41
def generate_additional_data
  additional_data = []
  additional_data.push(complementary_content) if complementary?
  additional_data.push(address_content) if address?
  additional_data.push(difal_content) if difal?
  additional_data.push(fisco_content) if fisco?
  additional_data.join(' * ')
end
generate_y_position(volumes_number) click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 92
def generate_y_position(volumes_number)
  if volumes_number > 1
    return Y_POSITION + 0.30 + volumes_number * 0.15 + 0.2
  end

  Y_POSITION + 0.30
end
numerify(value) click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 75
def numerify(value)
  BrDanfe::Helper.numerify(value) if value != ''
end
render_additional_data(y_position) click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 36
def render_additional_data(y_position)
  data = generate_additional_data
  @pdf.ibox 2.65, 12.45, 0.75, y_position, '', data, size: 6, valign: :top, border: 0
end
render_reserved_fisco() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 104
def render_reserved_fisco
  @pdf.ibox 2.65, 7.15, 13.20, @y_position, I18n.t('danfe.infAdic.reserved')
end
render_subtitle() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 28
def render_subtitle
  @pdf.ibox 2.65, 12.45, 0.75, @y_position, I18n.t('danfe.infAdic.infCpl'), '', size: 8, valign: :top
end
render_title() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 24
def render_title
  @pdf.ititle 0.42, 10.00, 0.75, @title_position, 'infAdic.title'
end
render_volumes() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 32
def render_volumes
  InfadicVol.new(@xml, @pdf).render
end