class BrDanfe::DanfeLib::NfeLib::Xprod

Public Class Methods

new(det) click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 5
def initialize(det)
  @det = det
end

Public Instance Methods

render() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 9
def render
  xprod = @det.css('prod/xProd').text.to_s

  xprod += infAdProd if infAdProd?
  xprod += fci if fci?
  xprod += icms_st if icms_st?
  xprod += fcp if fcp?
  xprod += fcp_st if fcp_st?
  xprod += add_icms_st_ret_to_product

  xprod
end

Private Instance Methods

add_icms_st_ret_to_product() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 89
def add_icms_st_ret_to_product
  icms_st_ret? ? icms_st_ret : ''
end
fci() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 32
def fci
  "\n#{I18n.t('danfe.det.prod.xProdFCI',
              nFCI: @det.css('prod/nFCI').text)}"
end
fci?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 37
def fci?
  !@det.css('prod/nFCI').text.empty?
end
fcp() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 57
def fcp
  icms00? ? fcp_for_icms00 : fcp_complete
end
fcp?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 53
def fcp?
  @det.css('ICMS/*/vFCP').text.to_f.positive?
end
fcp_complete() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 71
def fcp_complete
  "\n#{I18n.t('danfe.det.prod.xProdFCP',
              vBCFCP: BrDanfe::Helper.numerify(@det.css('ICMS/*/vBCFCP').text),
              vFCP: BrDanfe::Helper.numerify(@det.css('ICMS/*/vFCP').text),
              pFCP: BrDanfe::Helper.numerify(@det.css('ICMS/*/pFCP').text))}"
end
fcp_for_icms00() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 65
def fcp_for_icms00
  "\n#{I18n.t('danfe.det.prod.xProdFCPICMS00',
              vFCP: BrDanfe::Helper.numerify(@det.css('ICMS00/vFCP').text),
              pFCP: BrDanfe::Helper.numerify(@det.css('ICMS00/pFCP').text))}"
end
fcp_st() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 82
def fcp_st
  "\n#{I18n.t('danfe.det.prod.xProdFCPST',
              vBCFCPST: BrDanfe::Helper.numerify(@det.css('ICMS/*/vBCFCPST').text),
              pFCPST: BrDanfe::Helper.numerify(@det.css('ICMS/*/pFCPST').text),
              vFCPST: BrDanfe::Helper.numerify(@det.css('ICMS/*/vFCPST').text))}"
end
fcp_st?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 78
def fcp_st?
  @det.css('ICMS/*/vFCPST').text.to_f.positive?
end
icms00?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 61
def icms00?
  @det.at_css('ICMS00')
end
icms_st() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 41
def icms_st
  "\n#{I18n.t('danfe.det.prod.xProdST',
              pMVAST: BrDanfe::Helper.numerify(@det.css('ICMS/*/pMVAST').text),
              pICMSST: BrDanfe::Helper.numerify(@det.css('ICMS/*/pICMSST').text),
              vBCST: BrDanfe::Helper.numerify(@det.css('ICMS/*/vBCST').text),
              vICMSST: BrDanfe::Helper.numerify(@det.css('ICMS/*/vICMSST').text))}"
end
icms_st?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 49
def icms_st?
  @det.css('ICMS/*/vBCST').text.to_f.positive?
end
icms_st_ret() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 98
def icms_st_ret
  "\n#{I18n.t(
    'danfe.det.prod.xProdSTRet',
    vBCSTRet: BrDanfe::Helper.numerify(@det.css('ICMS/*/vBCSTRet').text),
    vICMSSTRet: BrDanfe::Helper.numerify(@det.css('ICMS/*/vICMSSTRet').text),
    pST: BrDanfe::Helper.numerify(@det.css('ICMS/*/pST').text)
  )}"
end
icms_st_ret?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 93
def icms_st_ret?
  @det.css('ICMS/*/vBCSTRet').text.to_f.positive? || @det.css('ICMS/*/vICMSSTRet').text.to_f.positive? ||
    @det.css('ICMS/*/pST').text.to_f.positive?
end
infAdProd() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 24
def infAdProd
  "\n#{@det.css('infAdProd').text}"
end
infAdProd?() click to toggle source
# File lib/br_danfe/danfe_lib/nfe_lib/xprod.rb, line 28
def infAdProd?
  !@det.css('infAdProd').text.empty?
end