-
Notifications
You must be signed in to change notification settings - Fork 44
Cómo se estructura la librería
Luis Carrasco edited this page May 12, 2017
·
2 revisions
A partir de la version 2.0 de la librería, la cual se rediseño para manejar extensivamente interfaces y facilitar el mantenimiento y extensibilidad de la librería, la estructura es la siguiente:
-
IComprobanteFiscal : La interfase base que implementa las propiedades y métodos comunes para todos los comprobantes independientemente de su versión.
- IComprobanteFiscalV33 : Implementación específica de CFDI v3.3 importada usando el XML Data Binding de Delphi usando el archivo CFD33.xsd
-
IGeneradorCadenaOriginal : Definición de la interfase que debe seguir cada implementación según su versión.
- IGeneradorCadenaOriginalV33 : Implementación específica para generar la cadena original de CFDI 3.3 usando el archivo XSLT de transformación.
-
IGeneradorSello Definición de la interfase que debe seguir cada implementación del generador de sello según su versión.
- IGeneradorSelloV33 : Clase específica para realizar el sello de la cadena original para CFDI 3.3
- IProveedorAutorizadoCertificacion : Definición de interfase que debe seguir cualquier implementación de un PAC.
Solo debes crear una nueva clase que implemente la interface IProveedorAutorizadoDeCertificacion
e implementar los métodos solicitados por la misma, por ejemplo:
TMiSuperPAC = class(TInterfacedObject, IProveedorAutorizadoCertificacion)
private
fCredencialesPAC : TFacturacionCredencialesPAC;
function ExtraerNodoTimbre(const aComprobanteXML : TEcodexComprobanteXML): TCadenaUTF8;
procedure ProcesarExcepcionDePAC(const aExcepcion: Exception);
public
procedure Configurar(const aDominioWebService: string;
const aCredencialesPAC: TFacturacionCredencialesPAC);
function TimbrarDocumento(var aComprobante: IComprobanteFiscal;
const aTransaccion: Int64): TCadenaUTF8;
end;
Para usarlo solo tienes que solicitar el timbre a la instancia de tu PAC, por ejemplo:
var
miSuperPAC: IProveedorAutorizadoCertificacion;
begin
// ... rutinas de generación de CFDI, sellado, etc.
miSuperPAC := TMiSuperPAC.Create;
xmlTimbre := miSuperPAC.TimbrarDocumento(nuevaFactura, Random(9999));
nuevaFactura.AsignarTimbreFiscal(xmlTimbre);
y listo.
Todos los derechos reservados. Bambu Code SA de CV, patrocinado por eleventa punto de venta