Importante
Recuerda que estas personalizaciones se tienen que revisar con el cliente y una base de datos de pruebas, también se tendrán que adaptar al funcionamiento del cliente en caso de ser necesario modificar el comportamiento del SII.
En este artículo vamos a detallar varios ejemplo de como alterar el funcionamiento estándar del SII para adaptarlo al funcionamiento del cliente, también algunos ejemplos de como personalizar el valor para ciertos campos de valor libre.
Los registros del SII generan en el proceso 'PSII_1_1_Actualiza_Factura', la cual dispone de dos procesos personalizados:
- PSII_1_1_Actualiza_Factura_Pre: Antes de ejecutar el estándar
- PSII_1_1_Actualiza_Factura_Post: Después de ejecutar el estándar
En este artículo los ejemplos están preparados para ser ejecutados en el '_Post'.
Modificar el número de factura
-- Facturas de Venta
UPDATE  SFC    
SET SFC.NumFacturaEmisor = LEFT(SF.Descrip,  CHARINDEX('-', SF.Descrip)) +RIGHT('000000'+CAST(FCC.NumFactCliente AS varchar), 7)
FROM SII_1_1_Temp_Objetos_Actualizar TOA
INNER JOIN Facturas_Cli_Cab FCC
  ON FCC.IdDoc = TOA.IdDocObjeto AND TOA.Objeto = 'SIIFacturaCli' AND TOA.IdDocSesion = @IdDocSesion
INNER JOIN SII_1_1_Facturas_Cli SFC  
  ON FCC.IdFactura = SFC.IdFactura    
INNER JOIN Series_Facturacion SF
  ON SF.SerieFactura = FCC.SerieFactura
/* WHERE PERSONALIZADO */
-- Facturas de Compra
UPDATE  SFP    
SET SFP.NumSerieFacturaEmisor = LEFT(SF.Descrip,  CHARINDEX('-', SF.Descrip)) +RIGHT('000000'+CAST(FPC.NumFactProv AS varchar), 7)
FROM SII_1_1_Temp_Objetos_Actualizar TOA
INNER JOIN Facturas_Prov_Cab FPC
	ON FPC.IdDoc = TOA.IdDocObjeto AND TOA.Objeto = 'SIIFacturaProv' AND TOA.IdDocSesion = @IdDocSesion
INNER JOIN SII_1_1_Facturas_Prov SFP  
	ON FPC.IdFactura = SFP.IdFactura    
INNER JOIN Series_Facturacion SF
	ON SF.SerieFactura = FPC.SerieFactura
/* WHERE PERSONALIZADO */