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 */


Modificar la descripción de la operación

--Ventas
UPDATE  SFC    
	SET SFC.DescripcionOperacion = 'Rect. ' +ISNULL(SFC.DescripcionOperacion,'')
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 */

-- Compras
UPDATE  SFP    
  SET SFP.DescripcionOperacion = TS.Descrip
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 Prov_Datos PD
  ON PD.IdProveedor = FPC.IdProveedor
INNER JOIN TiposSuministro TS  
    ON PD.TipoSuministro=TS.TipoSuministro  
INNER JOIN SII_1_1_Facturas_Prov SFP  
  ON FPC.IdFactura = SFP.IdFactura 
/* WHERE PERSONALIZADO */