Module: FmTimbradoCfdi

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

Defined Under Namespace

Classes: FmCfdi, FmCfdiParser, FmCliente, FmInformacionCfdi, FmRespuesta, FmRespuestaCancelacion, FmTimbre

Constant Summary collapse

VERSION =
"0.0.4"

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



63
64
65
# File 'lib/fm_adapter.rb', line 63

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

#cancelar(rfc, uuid, opciones) ⇒ 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

en opciones se debe enviar: { ‘Motivo’ => op1,

'FolioSustitucion' => Folio Fiscal del comprobante que lo sustituye (solo si Motivo es 01) }

Motivo puede ser: 01 - Comprobantes emitidos con errores con relación 02 - Comprobantes emitidos con errores sin relación 03 - No se llevó a cabo la operación 04 - Operación nominativa relacionada en una factura global



84
85
86
# File 'lib/fm_adapter.rb', line 84

def cancelar(rfc, uuid, opciones)
  cliente.cancelar(rfc, uuid, opciones)
end

#clienteObject



15
16
17
# File 'lib/fm_adapter.rb', line 15

def cliente
  @cliente ||= FmCliente.new
end

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

Yields:



11
12
13
# File 'lib/fm_adapter.rb', line 11

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



40
41
42
# File 'lib/fm_adapter.rb', line 40

def timbra_cfdi_layout (rfc, layout, generar_cbb = false)
  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



25
26
27
28
29
30
31
# File 'lib/fm_adapter.rb', line 25

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']
  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



51
52
53
# File 'lib/fm_adapter.rb', line 51

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