Module: FmTimbradoCfdi

Extended by:
FmTimbradoCfdi
Included in:
FmTimbradoCfdi
Defined in:
lib/fm_timbrado_cfdi.rb,
lib/fm_timbrado_cfdi/version.rb,
lib/fm_timbrado_cfdi/fm_timbre.rb,
lib/fm_timbrado_cfdi/fm_cliente.rb,
lib/fm_timbrado_cfdi/fm_respuesta.rb,
lib/fm_timbrado_cfdi/fm_informacion_cfdi.rb,
lib/fm_timbrado_cfdi/fm_respuesta_cancelacion.rb

Defined Under Namespace

Classes: FmCliente, FmInformacionCfdi, FmRespuesta, FmRespuestaCancelacion, FmTimbre

Constant Summary collapse

VERSION =
"0.0.5"

Instance Method Summary collapse

Instance Method Details

#activar_cancelacion(rfc, certificado, llave, password) ⇒ Object Also known as: subir_certificado

Public: Envía CSD para que lo almacene el PAC

rfc - Es el RFC del emisor certificado - El contenido del archivo de certificado llave - La llave privada del certificado password - Contraseña de la llave privada

Regresa un objeto de tipo FmRespuestaCancelacion



62
63
64
# File 'lib/fm_timbrado_cfdi.rb', line 62

def activar_cancelacion(rfc, certificado, llave, password)
  respuesta = cliente.subir_certificado rfc, certificado, llave, password
end

#cancelar(rfc, uuid) ⇒ Object

Public: Envía una petición de cancelación de factura

rfc - Es el RFC del emisor uuid - Es el identificador de la factura a cancelar

Regresa una respuesta SOAP



73
74
75
# File 'lib/fm_timbrado_cfdi.rb', line 73

def cancelar(rfc, uuid)
  respuesta = cliente.cancelar(rfc, uuid)
end

#clienteObject



14
15
16
# File 'lib/fm_timbrado_cfdi.rb', line 14

def cliente
  @cliente ||= FmCliente.new
end

#configurar {|cliente| ... } ⇒ Object

Yields:



10
11
12
# File 'lib/fm_timbrado_cfdi.rb', line 10

def configurar
  yield cliente
end

#timbra_cfdi_layout(rfc, layout, generar_cbb = false) ⇒ Object

Public: Envía un archivo al PAC para ser timbrado en formato layout

rfc - Es el RFC del emisor layout - Es el archivo layout a ser timbrado como un string generar_cbb - Es una bandera que indica si debe generarse el código cbb, por default es false

Regresa un objeto tipo FMRespuesta que contiene el xml certificado, el timbre y la representación en pdf o el cbb en png



39
40
41
# File 'lib/fm_timbrado_cfdi.rb', line 39

def timbra_cfdi_layout (rfc, layout, generar_cbb = false)
  respuesta = cliente.timbrar rfc, layout, 'generarCBB' => generar_cbb
end

#timbra_cfdi_xml(xml, generar_cbb = false) ⇒ Object

Public: Envía un archivo al PAC para ser timbrado en formato xml

xml - Es el archivo XML sellado como un string generar_cbb - Es una bandera que indica si debe generarse el código cbb, por default es false

Regresa un objeto tipo FMRespuesta que contiene el xml certificado, el timbre y la representación en pdf o el cbb en png



24
25
26
27
28
29
30
# File 'lib/fm_timbrado_cfdi.rb', line 24

def timbra_cfdi_xml (xml, generar_cbb = false)
  factura_xml = Nokogiri::XML(xml)
  #procesar rfc del emisor
  emisor = factura_xml.xpath("//cfdi:Emisor")
  rfc = emisor[0]['rfc']
  respuesta = cliente.timbrar rfc, factura_xml.to_s, 'generarCBB' => generar_cbb
end

#timbrar(rfc, archivo, opciones = {}) ⇒ Object

Public: Envía un archivo al PAC para ser timbrado tanto en formato layout como en formato XML

rfc - Es el RFC del emisor archivo - Es el archivo a ser timbrado como un string opciones - Es un hash de opciones que deben coincidir con los parámetros recibidos por Facturación Moderna para el timbrado

Regresa un objeto tipo FMRespuesta que contiene el xml certificado, el timbre y la representación en pdf o el cbb en png



50
51
52
# File 'lib/fm_timbrado_cfdi.rb', line 50

def timbrar (rfc, archivo, opciones= {})
  respuesta = cliente.timbrar rfc, archivo, opciones
end