class BrDanfe::DanfeLib::NfeLib::Infadic
Constants
- Y_POSITION
Public Class Methods
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
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 complementary? || address? || difal? || fisco? || dup_content.to_s.present? render_reserved_fisco end
Private Instance Methods
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 63 def address? Helper.address_is_too_big @pdf, Helper.generate_address(@xml, 'enderDest') end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 59 def address_content "Endereço: #{Helper.generate_address @xml, 'enderDest'}" end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 55 def complementary? @xml['infAdic/infCpl'].to_s != '' end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 51 def complementary_content @xml['infAdic/infCpl'].to_s end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 80 def difal? value = @xml['ICMSTot/vICMSUFDest'].presence || '0.0' BigDecimal(value).positive? end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 67 def difal_content I18n.t( 'danfe.infAdic.difal', vICMSUFDest: numerify(@xml['ICMSTot/vICMSUFDest']), vFCPUFDest: numerify(@xml['ICMSTot/vFCPUFDest']), vICMSUFRemet: numerify(@xml['ICMSTot/vICMSUFRemet']) ) end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 98 def dup_content value_dups = [] @xml.collect('xmlns', 'dup') { _1 }[NfeLib::Dup::DUP_MAX_QUANTITY..]&.each_with_index do |det, index| value = "#{det.css('nDup').text} - #{format_dup_date(det, det.css('dVenc').text)} - R$ #{BrDanfe::Helper.numerify(det.css('vDup').text.to_f)}" if index.zero? value_dups.push("Faturas: #{value}") elsif index.positive? value_dups.push(value.to_s) end end value_dups end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 89 def fisco? @xml['infAdic/infAdFisco'].to_s.present? end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 85 def fisco_content @xml['infAdic/infAdFisco'].to_s end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 93 def format_dup_date(_det, dup_date) dtduplicata = dup_date "#{dtduplicata[8, 2]}/#{dtduplicata[5, 2]}/#{dtduplicata[0, 4]}" end
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.push(dup_content) if dup_content.any? additional_data.join(' * ') end
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 114 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
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 76 def numerify(value) BrDanfe::Helper.numerify(value) if value != '' end
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
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 122 def render_reserved_fisco @pdf.ibox 2.65, 7.15, 13.20, @y_position, I18n.t('danfe.infAdic.reserved') end
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
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
Source
# File lib/br_danfe/danfe_lib/nfe_lib/infadic.rb, line 32 def render_volumes InfadicVol.new(@xml, @pdf).render end