Procediment emmagatzemat que cridat des del SP_PostTransactionNotice permet modificar el camp d’usuari U_INTRX_SII_Concepto creat als documents i als assentaments, i que posteriorment, amb els EFM correctes, permet enviar el SII amb el concepte d’operació personalitzat
CREATE PROC [dbo].[SII_SP_PostTransactionNotice] @object_type nvarchar(30), @transaction_type nchar(1), @num_of_cols_in_key int, @list_of_key_cols_tab_del nvarchar(255), @list_of_cols_val_tab_del nvarchar(255), @error int output, @error_message nvarchar (200) output AS BEGIN declare @concepteSII nvarchar(60) = 'Indefinit' declare @concepte nvarchar(60) = '' declare @sqlCrearCursor nvarchar(4000) declare @sqlUpdate nvarchar(4000) -- Al crear un assentament que no està relacionat amb cap document, posar el concepte del SII segons les comptes que hi intervenen -- Autor: David Martí -- Data: 27/8/2019 if @object_type='30' and (@transaction_type='A' or @transaction_type='U') begin declare @tipus nvarchar(20) select @tipus=TransType,@concepte=COALESCE(U_INTRX_SII_Concepto,'') from OJDT where TransId=@list_of_cols_val_tab_del if @tipus='30' begin if (@concepte='') begin set @sqlCrearCursor = 'declare linies cursor for select C.U_INTRX_SII_Concepto from JDT1 L join OACT C on C.AcctCode=L.Account where (L.Account like ''6%'' or L.Account like ''7%'') and (LEN(C.U_INTRX_SII_Concepto)>0) and (L.TransId='+@list_of_cols_val_tab_del+')' exec sp_executesql @sqlCrearCursor open linies fetch next from linies into @concepte if len(@concepte)>0 set @concepteSII=@concepte while @@FETCH_STATUS=0 begin fetch next from linies into @concepte if len(@concepte)>0 set @concepteSII=@concepte end close linies deallocate linies set @sqlUpdate = 'update OJDT set U_INTRX_SII_Concepto=''' + @concepteSII + ''' where TransId=' + @list_of_cols_val_tab_del exec sp_executesql @sqlUpdate end end -- Assentament no pot estar vinculat amb un document end -- Al crear documents de compres o vendes, omplir el concepte del SII segons: -- 1. Si el document es un document d'articles, amb el concepte genéric -- 2. Si es un document de serveis, revisar la comptes i agafar el concepte del pla de comptes -- Autor: David Marti -- Data: 27/8/2019 if @object_type in ('13','14','18','19') and (@transaction_type='A' or @transaction_type='U') begin declare @taula0 nvarchar(20) declare @taula1 nvarchar(20) if @object_type='13' begin set @concepteSII='Venta de mercancias' set @taula0='OINV' set @taula1='INV1' end if @object_type='14' begin set @concepteSII='Abono de mercancias' set @taula0='ORIN' set @taula1='RIN1' end if @object_type='18' begin set @concepteSII='Compra de mercancias' set @taula0='OPCH' set @taula1='PCH1' end if @object_type='19' begin set @concepteSII='Abono de compra de mercancias' set @taula0='ORPC' set @taula1='RPC1' end if (@transaction_type='U') begin declare @sqlConsultaConcepte nvarchar(4000)= 'select @concepteOUT=COALESCE(U_INTRX_SII_Concepto,'''') from '+@taula0+' where DocEntry='+@list_of_cols_val_tab_del declare @sqlParams nvarchar(100) set @sqlParams= N'@concepteOUT nvarchar(60) OUTPUT' exec sp_executeSql @sqlConsultaConcepte, @sqlParams, @concepteOUT=@concepte OUTPUT end if (@concepte='') begin -- Cercar el concepte segons les comptes que intervenen al document set @sqlCrearCursor= 'declare linies cursor for select C.U_INTRX_SII_Concepto from '+@taula1+' L join OACT C on C.AcctCode=L.AcctCode where (L.AcctCode like ''6%'' or L.AcctCode like ''7%'') and (LEN(C.U_INTRX_SII_Concepto)>0) and (L.DocEntry='+@list_of_cols_val_tab_del+')' exec sp_executesql @sqlCrearCursor open linies fetch next from linies into @concepte if len(@concepte)>0 set @concepteSII=@concepte while @@FETCH_STATUS=0 begin fetch next from linies into @concepte if len(@concepte)>0 set @concepteSII=@concepte end close linies deallocate linies set @sqlUpdate = 'update ' + @taula0 + ' set U_INTRX_SII_Concepto=''' + @concepteSII + ''' where DocEntry=' + @list_of_cols_val_tab_del exec sp_executesql @sqlUpdate end end END
-- Proceso del documentos SII (Concepto) -- Autor: David Marti -- Fecha: 28/8/2019 EXEC SII_SP_PostTransactionNotice @object_type,@transaction_type,@num_of_cols_in_key,@list_of_key_cols_tab_del,@list_of_cols_val_tab_del,@error output, @error_message output