Module: BrNfe::Product::NfXmlValue
- Included in:
- Operation::Base
- Defined in:
- lib/br_nfe/product/nf_xml_value.rb
Instance Method Summary collapse
- #nf_xml_fixed_code(code, options = {}, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_boolean(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_CEP(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_CEST(cest, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_CFOP(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_chave_nfe(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_CNAE(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_cnpj(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_codigo_enquadramento_IPI(value) ⇒ Object
- #nf_xml_value_codigo_ibge_municipio(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_codigo_nf(value) ⇒ Object
- #nf_xml_value_codigo_pais(value, xml_version = :v3_10) ⇒ Object
-
#nf_xml_value_consumidor_final(value, xml_version = :v3_10) ⇒ Object
Indica operação com Consumidor final 0=Normal; 1=Consumidor final;.
- #nf_xml_value_cpf(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_CRT(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_date(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_date_time(time, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_drawback(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_EAN(ean, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_email(v_email, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_EXTIPI(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_float(value, precision, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_fone(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_id_estrangeiro(value, xml_version = :v3_10) ⇒ Object
-
#nf_xml_value_id_local_destino(v_endereco_destino, xml_version = :v3_10) ⇒ Object
1=Operação interna; 2=Operação interestadual; 3=Operação com exterior.
- #nf_xml_value_IE(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_IM(value, xml_version = :v3_10) ⇒ Object
-
#nf_xml_value_indicador_IE(indicador_ie, nfe, xml_version = :v3_10) ⇒ Object
E16a - Indicador da IE do Destinatário 1 = Contribuinte ICMS (informar a IE do destinatário); 2 = Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS; 9 = Não Contribuinte, que pode ou não possuir Inscrição Estadual no Cadastro de Contribuintes do ICMS.
- #nf_xml_value_indicador_sincrono(value) ⇒ Object
-
#nf_xml_value_inscricao_suframa(v_suframa, xml_version = :v3_10) ⇒ Object
Obrigatório, nas operações que se beneficiam de incentivos fiscais existentes nas áreas sob controle da SUFRAMA.
- #nf_xml_value_ISSQN_incentivo_fiscal(value) ⇒ Object
- #nf_xml_value_monetary(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_NCM(ncm, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_number(value, max_size, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_number_fixed_size(value, size, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_numero_recibo(value) ⇒ Object
- #nf_xml_value_NVE(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_orgao_emissor(evento) ⇒ Object
- #nf_xml_value_percent(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_peso(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_placa(placa, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_quantidade(value, xml_version = :v3_10) ⇒ Object
-
#nf_xml_value_RNTC(rntc, xml_version = :v3_10) ⇒ Object
Registro Nacional de Transportador de Carga (ANTT).
- #nf_xml_value_text(value, max = 60, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_time(time, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_tipo_ambiente(value, xml_version = :v3_10) ⇒ Object
- #nf_xml_value_UF(value, xml_version = :v3_10) ⇒ Object
Instance Method Details
#nf_xml_fixed_code(code, options = {}, xml_version = :v3_10) ⇒ Object
181 182 183 184 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 181 def nf_xml_fixed_code code, ={}, xml_version=:v3_10 = {size: 2}.merge() "#{code.to_i}".rjust([:size], '0') end |
#nf_xml_value_boolean(value, xml_version = :v3_10) ⇒ Object
213 214 215 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 213 def nf_xml_value_boolean value, xml_version=:v3_10 value ? '1' : '0' end |
#nf_xml_value_CEP(value, xml_version = :v3_10) ⇒ Object
40 41 42 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 40 def nf_xml_value_CEP value, xml_version=:v3_10 only_numbers value, {min_size: 8, max_size: 8} end |
#nf_xml_value_CEST(cest, xml_version = :v3_10) ⇒ Object
186 187 188 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 186 def nf_xml_value_CEST cest, xml_version=:v3_10 "#{cest.to_i}".rjust(7, '0') if cest.present? end |
#nf_xml_value_CFOP(value, xml_version = :v3_10) ⇒ Object
167 168 169 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 167 def nf_xml_value_CFOP value, xml_version=:v3_10 only_numbers value, {min_size: 4, max_size: 4} end |
#nf_xml_value_chave_nfe(value, xml_version = :v3_10) ⇒ Object
233 234 235 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 233 def nf_xml_value_chave_nfe value, xml_version=:v3_10 only_numbers value, {min_size: 44, max_size: 44} end |
#nf_xml_value_CNAE(value, xml_version = :v3_10) ⇒ Object
60 61 62 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 60 def nf_xml_value_CNAE value, xml_version=:v3_10 only_numbers value, {min_size: 7, max_size: 7} end |
#nf_xml_value_cnpj(value, xml_version = :v3_10) ⇒ Object
13 14 15 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 13 def nf_xml_value_cnpj value, xml_version=:v3_10 only_numbers value, {min_size: 14, max_size: 14} end |
#nf_xml_value_codigo_enquadramento_IPI(value) ⇒ Object
241 242 243 244 245 246 247 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 241 def nf_xml_value_codigo_enquadramento_IPI value if value.blank? '999' else nf_xml_value_text value, 3 end end |
#nf_xml_value_codigo_ibge_municipio(value, xml_version = :v3_10) ⇒ Object
32 33 34 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 32 def nf_xml_value_codigo_ibge_municipio value, xml_version=:v3_10 only_numbers value, {min_size: 7, max_size: 7} end |
#nf_xml_value_codigo_nf(value) ⇒ Object
4 5 6 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 4 def nf_xml_value_codigo_nf value only_numbers(value, {min_size: 8, max_size: 8}) end |
#nf_xml_value_codigo_pais(value, xml_version = :v3_10) ⇒ Object
44 45 46 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 44 def nf_xml_value_codigo_pais value, xml_version=:v3_10 only_numbers value, {min_size: 4, max_size: 4} end |
#nf_xml_value_consumidor_final(value, xml_version = :v3_10) ⇒ Object
Indica operação com Consumidor final 0=Normal; 1=Consumidor final;
121 122 123 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 121 def nf_xml_value_consumidor_final value, xml_version=:v3_10 value ? '1' : '0' end |
#nf_xml_value_cpf(value, xml_version = :v3_10) ⇒ Object
10 11 12 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 10 def nf_xml_value_cpf value, xml_version=:v3_10 only_numbers value, {min_size: 11, max_size: 11} end |
#nf_xml_value_CRT(value, xml_version = :v3_10) ⇒ Object
64 65 66 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 64 def nf_xml_value_CRT value, xml_version=:v3_10 "#{value}".max_size(1) end |
#nf_xml_value_date(value, xml_version = :v3_10) ⇒ Object
139 140 141 142 143 144 145 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 139 def nf_xml_value_date value, xml_version=:v3_10 if value.is_a?(Date) value.to_s(:iso8601) elsif value.is_a?(Time) || value.is_a?(DateTime) value.to_date.to_s(:iso8601) end end |
#nf_xml_value_date_time(time, xml_version = :v3_10) ⇒ Object
125 126 127 128 129 130 131 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 125 def nf_xml_value_date_time time, xml_version=:v3_10 if time.is_a?(Time) || time.is_a?(DateTime) time.to_s(:iso8601) elsif time.is_a?(Date) time.to_time.to_s(:iso8601) end end |
#nf_xml_value_drawback(value, xml_version = :v3_10) ⇒ Object
225 226 227 228 229 230 231 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 225 def nf_xml_value_drawback value, xml_version=:v3_10 if "#{value}".strip.size <= 9 only_numbers value, min_size: 9, max_size: 9 else only_numbers value, min_size: 11, max_size: 11 end end |
#nf_xml_value_EAN(ean, xml_version = :v3_10) ⇒ Object
190 191 192 193 194 195 196 197 198 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 190 def nf_xml_value_EAN ean, xml_version=:v3_10 if ean.to_i > 0 if "#{ean}".strip.size > 8 "#{ean}".strip.rjust(12, '0') else "#{ean}".strip.rjust(8, '0') end end end |
#nf_xml_value_email(v_email, xml_version = :v3_10) ⇒ Object
101 102 103 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 101 def nf_xml_value_email v_email, xml_version=:v3_10 nf_xml_value_text(v_email, 60) end |
#nf_xml_value_EXTIPI(value, xml_version = :v3_10) ⇒ Object
209 210 211 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 209 def nf_xml_value_EXTIPI value, xml_version=:v3_10 "#{value}".rjust(2, '0') end |
#nf_xml_value_float(value, precision, xml_version = :v3_10) ⇒ Object
163 164 165 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 163 def nf_xml_value_float value, precision, xml_version=:v3_10 "%.#{precision}f" % value.to_f.round(precision) end |
#nf_xml_value_fone(value, xml_version = :v3_10) ⇒ Object
24 25 26 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 24 def nf_xml_value_fone value, xml_version=:v3_10 only_numbers value, {min_size: 6, max_size: 14} end |
#nf_xml_value_id_estrangeiro(value, xml_version = :v3_10) ⇒ Object
20 21 22 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 20 def nf_xml_value_id_estrangeiro value, xml_version=:v3_10 "#{value}".max_size(20) end |
#nf_xml_value_id_local_destino(v_endereco_destino, xml_version = :v3_10) ⇒ Object
1=Operação interna; 2=Operação interestadual; 3=Operação com exterior.
108 109 110 111 112 113 114 115 116 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 108 def nf_xml_value_id_local_destino v_endereco_destino, xml_version=:v3_10 if v_endereco_destino.exterior? 3 elsif emitente.endereco.codigo_ibge_uf == v_endereco_destino.codigo_ibge_uf 1 else 2 end end |
#nf_xml_value_IE(value, xml_version = :v3_10) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 48 def nf_xml_value_IE value, xml_version=:v3_10 if value.blank? 'ISENTO' else "#{value}".gsub(/[^\w]/,'').rjust(2, '0').max_size(14) end end |
#nf_xml_value_IM(value, xml_version = :v3_10) ⇒ Object
56 57 58 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 56 def nf_xml_value_IM value, xml_version=:v3_10 "#{value}".max_size(15) end |
#nf_xml_value_indicador_IE(indicador_ie, nfe, xml_version = :v3_10) ⇒ Object
E16a - Indicador da IE do Destinatário 1 = Contribuinte ICMS (informar a IE do destinatário); 2 = Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS; 9 = Não Contribuinte, que pode ou não possuir Inscrição Estadual no Cadastro de
Contribuintes do ICMS.
Nota 1: No caso de NFC-e informar indIEDest=9 e não informar
a tag IE do destinat
Nota 2: No caso de operação com o Exterior informar indIEDest=9 e
n
Nota 3: No caso de Contribuinte Isento de Inscrição (indIEDest=2),
n
81 82 83 84 85 86 87 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 81 def nf_xml_value_indicador_IE indicador_ie, nfe, xml_version=:v3_10 if nfe.nfce? # 65 NFC-e '9' else indicador_ie end end |
#nf_xml_value_indicador_sincrono(value) ⇒ Object
16 17 18 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 16 def nf_xml_value_indicador_sincrono value value ? '1' : '0' end |
#nf_xml_value_inscricao_suframa(v_suframa, xml_version = :v3_10) ⇒ Object
Obrigatório, nas operações que se beneficiam de incentivos fiscais existentes nas áreas sob controle da SUFRAMA. A omissão desta informação impede o processamento da operação pelo Sistema de Mercadoria Nacional da SUFRAMA e a liberação da Declaração de Ingresso, prejudicando a comprovação do ingresso / internamento da mercadoria nestas áreas. Min: 8 Max: 9
97 98 99 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 97 def nf_xml_value_inscricao_suframa v_suframa, xml_version=:v3_10 only_numbers v_suframa, {min_size: 8, max_size: 9} end |
#nf_xml_value_ISSQN_incentivo_fiscal(value) ⇒ Object
249 250 251 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 249 def nf_xml_value_ISSQN_incentivo_fiscal value value ? 1 : 2 end |
#nf_xml_value_monetary(value, xml_version = :v3_10) ⇒ Object
147 148 149 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 147 def nf_xml_value_monetary value, xml_version=:v3_10 "%.2f" % value.to_f.round(2) end |
#nf_xml_value_NCM(ncm, xml_version = :v3_10) ⇒ Object
200 201 202 203 204 205 206 207 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 200 def nf_xml_value_NCM ncm, xml_version=:v3_10 ncm = ncm.to_i if ncm > 0 "#{ncm}".rjust(8, '0') else "#{ncm}".rjust(2, '0') end end |
#nf_xml_value_number(value, max_size, xml_version = :v3_10) ⇒ Object
221 222 223 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 221 def nf_xml_value_number value, max_size, xml_version=:v3_10 only_numbers value, {max_size: max_size} end |
#nf_xml_value_number_fixed_size(value, size, xml_version = :v3_10) ⇒ Object
237 238 239 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 237 def nf_xml_value_number_fixed_size value, size, xml_version=:v3_10 only_numbers value, {min_size: size, max_size: size} end |
#nf_xml_value_numero_recibo(value) ⇒ Object
253 254 255 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 253 def nf_xml_value_numero_recibo value only_numbers "#{value}".strip, max_size: 15 end |
#nf_xml_value_NVE(value, xml_version = :v3_10) ⇒ Object
217 218 219 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 217 def nf_xml_value_NVE value, xml_version=:v3_10 "#{value}".max_size(6) end |
#nf_xml_value_orgao_emissor(evento) ⇒ Object
257 258 259 260 261 262 263 264 265 266 267 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 257 def nf_xml_value_orgao_emissor evento if evento.codigo_orgao.present? evento.codigo_orgao else if gateway == :svan && evento.is_a?(BrNfe.cancelamento_product_class) 91 else "#{evento.chave_nfe}"[0..1] end end end |
#nf_xml_value_percent(value, xml_version = :v3_10) ⇒ Object
151 152 153 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 151 def nf_xml_value_percent value, xml_version=:v3_10 "%.4f" % value.to_f.round(4) end |
#nf_xml_value_peso(value, xml_version = :v3_10) ⇒ Object
159 160 161 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 159 def nf_xml_value_peso value, xml_version=:v3_10 "%.3f" % value.to_f.round(3) end |
#nf_xml_value_placa(placa, xml_version = :v3_10) ⇒ Object
171 172 173 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 171 def nf_xml_value_placa placa, xml_version=:v3_10 "#{placa}".gsub(/[^\w]/,'').rjust(7, '0').max_size(7) end |
#nf_xml_value_quantidade(value, xml_version = :v3_10) ⇒ Object
155 156 157 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 155 def nf_xml_value_quantidade value, xml_version=:v3_10 "%.4f" % value.to_f.round(4) end |
#nf_xml_value_RNTC(rntc, xml_version = :v3_10) ⇒ Object
Registro Nacional de Transportador de Carga (ANTT)
177 178 179 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 177 def nf_xml_value_RNTC rntc, xml_version=:v3_10 nf_xml_value_text rntc, 20 end |
#nf_xml_value_text(value, max = 60, xml_version = :v3_10) ⇒ Object
28 29 30 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 28 def nf_xml_value_text value, max=60, xml_version=:v3_10 "#{value}".strip.max_size(max).br_nfe_escape_html.remove_accents.gsub(/\r\n/,' ').gsub(/\n/,' ') end |
#nf_xml_value_time(time, xml_version = :v3_10) ⇒ Object
133 134 135 136 137 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 133 def nf_xml_value_time time, xml_version=:v3_10 if time.is_a?(Time) || time.is_a?(DateTime) time.strftime('%H:%M:%S') end end |
#nf_xml_value_tipo_ambiente(value, xml_version = :v3_10) ⇒ Object
7 8 9 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 7 def nf_xml_value_tipo_ambiente value, xml_version=:v3_10 value == :production ? '1' : '2' end |
#nf_xml_value_UF(value, xml_version = :v3_10) ⇒ Object
36 37 38 |
# File 'lib/br_nfe/product/nf_xml_value.rb', line 36 def nf_xml_value_UF value, xml_version=:v3_10 "#{value}".max_size(2) end |