lib/br_danfe/dup.rb in br_danfe-0.0.1 vs lib/br_danfe/dup.rb in br_danfe-0.0.2

- old
+ new

@@ -1,25 +1,46 @@ module BrDanfe class Dup - def self.render(pdf, xml) - pdf.ititle 0.42, 10.00, 0.25, 11.12, "dup.title" - pdf.ibox 0.85, 20.57, 0.25, 11.51 + def initialize(pdf, xml) + @pdf = pdf + @xml = xml + end + def render + @pdf.ititle 0.42, 10.00, 0.25, 11.12, "dup.title" + @pdf.ibox 0.85, 20.57, 0.25, 11.51 + x = 0.25 y = 11.51 - xml.collect("xmlns", "dup") do |det| - normal = { size: 6, border: 0 } - italic = normal.merge({ style: :italic }) - - pdf.ibox 0.85, 2.12, x, y, "", I18n.t("danfe.dup.nDup"), italic - pdf.ibox 0.85, 2.12, x + 0.70, y, "", det.css("nDup").text, normal - pdf.ibox 0.85, 2.12, x, y + 0.20, "", I18n.t("danfe.dup.dVenc"), italic - dtduplicata = det.css("dVenc").text - dtduplicata = dtduplicata[8,2] + "/" + dtduplicata[5, 2] + "/" + dtduplicata[0, 4] - pdf.ibox 0.85, 2.12, x + 0.70, y + 0.20, "", dtduplicata, normal - pdf.ibox 0.85, 2.12, x, y + 0.40, "", I18n.t("danfe.dup.vDup"), italic - pdf.inumeric 0.85, 1.25, x + 0.70, y + 0.40, "", det.css("vDup").text, normal - x = x + 2.30 + @xml.collect("xmlns", "dup") do |det| + render_dup(det, x, y) + x += 2.30 end + end + + private + def render_dup(det, x, y) + @pdf.ibox 0.85, 2.12, x, y, "", I18n.t("danfe.dup.nDup"), italic + @pdf.ibox 0.85, 2.12, x + 0.70, y, "", det.css("nDup").text, normal + @pdf.ibox 0.85, 2.12, x, y + 0.20, "", I18n.t("danfe.dup.dVenc"), italic + + @pdf.ibox 0.85, 2.12, x + 0.70, y + 0.20, "", dtduplicata(det), normal + + @pdf.ibox 0.85, 2.12, x, y + 0.40, "", I18n.t("danfe.dup.vDup"), italic + @pdf.inumeric 0.85, 1.25, x + 0.70, y + 0.40, "", det.css("vDup").text, normal + end + + def dtduplicata(det) + dtduplicata = det.css("dVenc").text + dtduplicata = dtduplicata[8,2] + "/" + dtduplicata[5, 2] + "/" + dtduplicata[0, 4] + dtduplicata + end + + def normal + { size: 6, border: 0 } + end + + def italic + normal.merge({ style: :italic }) end end end