- Introduced a new module for managing user groups (`usrgrp`) in the administration interface. - Implemented CRUD operations for user groups: list, create, rename, and delete. - Added authorization checks to ensure only users with appropriate permissions can manage groups. - Created corresponding frontend JavaScript and SCSS files for the new module. - Updated documentation to reflect the new group management functionality and its authorization model. - Added SQL stored procedures for group management operations. - Established a new login script for database access, ensuring proper security practices.
98 lines
2.8 KiB
Transact-SQL
98 lines
2.8 KiB
Transact-SQL
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
CREATE PROCEDURE [dbo].[mfr__updt__invoices]
|
|
@tblname as nvarchar(50)
|
|
, @referencetable nvarchar(50)
|
|
, @tgtid bigint
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
BEGIN TRY
|
|
|
|
DECLARE @tmp [dbo].[mfr__tt__invoices];
|
|
|
|
DECLARE @tmp_cmd nvarchar(1000) = N'SELECT DISTINCT * FROM ' + @tblname
|
|
INSERT INTO @tmp EXECUTE [sp_executesql] @tmp_cmd;
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
MERGE [dbo].[mfr__invoices] as TARGET
|
|
USING @tmp as SOURCE ON TARGET.[Id] = SOURCE.[Id]
|
|
WHEN MATCHED AND (TARGET.[Version] <= SOURCE.[Version] OR TARGET.[DateOfCreation] <= SOURCE.[DateOfCreation] ) THEN
|
|
UPDATE
|
|
SET [Id] = SOURCE.[Id]
|
|
,[Version] = SOURCE.[Version]
|
|
,[DateOfCreation] = SOURCE.[DateOfCreation]
|
|
,[URI] = SOURCE.[URI]
|
|
,[DocumentName] = SOURCE.[DocumentName]
|
|
,[ReportDefinitionCode] = SOURCE.[ReportDefinitionCode]
|
|
,[FileType] = SOURCE.[FileType]
|
|
,[InvoiceBalance] = SOURCE.[InvoiceBalance]
|
|
,[InvoiceBalanceNetto] = SOURCE.[InvoiceBalanceNetto]
|
|
,[WageBalanceNet] = SOURCE.[WageBalanceNet]
|
|
,[DatePayed] = SOURCE.[DatePayed]
|
|
,[InvoiceId] = SOURCE.[InvoiceId]
|
|
,[DueDate] = SOURCE.[DueDate]
|
|
,[WithoutVAT] = SOURCE.[WithoutVAT]
|
|
,[Skonto] = SOURCE.[Skonto]
|
|
,[PartialPayment] = SOURCE.[PartialPayment]
|
|
,[InvoiceState] = SOURCE.[InvoiceState]
|
|
,[Note] = SOURCE.[Note]
|
|
WHEN NOT MATCHED BY TARGET THEN
|
|
INSERT
|
|
([Id]
|
|
,[Version]
|
|
,[DateOfCreation]
|
|
,[URI]
|
|
,[DocumentName]
|
|
,[ReportDefinitionCode]
|
|
,[FileType]
|
|
,[InvoiceBalance]
|
|
,[InvoiceBalanceNetto]
|
|
,[WageBalanceNet]
|
|
,[DatePayed]
|
|
,[InvoiceId]
|
|
,[DueDate]
|
|
,[WithoutVAT]
|
|
,[Skonto]
|
|
,[PartialPayment]
|
|
,[InvoiceState]
|
|
,[Note]
|
|
,[file_guid])
|
|
VALUES
|
|
( SOURCE.[Id]
|
|
,SOURCE.[Version]
|
|
,SOURCE.[DateOfCreation]
|
|
,SOURCE.[URI]
|
|
,SOURCE.[DocumentName]
|
|
,SOURCE.[ReportDefinitionCode]
|
|
,SOURCE.[FileType]
|
|
,SOURCE.[InvoiceBalance]
|
|
,SOURCE.[InvoiceBalanceNetto]
|
|
,SOURCE.[WageBalanceNet]
|
|
,SOURCE.[DatePayed]
|
|
,SOURCE.[InvoiceId]
|
|
,SOURCE.[DueDate]
|
|
,SOURCE.[WithoutVAT]
|
|
,SOURCE.[Skonto]
|
|
,SOURCE.[PartialPayment]
|
|
,SOURCE.[InvoiceState]
|
|
,SOURCE.[Note]
|
|
,newid());
|
|
|
|
COMMIT TRANSACTION;
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
|
|
|
|
INSERT INTO dbo.[fds__admin_dberrors] ([UserName], [ErrorNumber], [ErrorState], [ErrorSeverity], [ErrorLine], [ErrorProcedure], [ErrorMessage], [ErrorDateTime])
|
|
VALUES (SUSER_SNAME(), ERROR_NUMBER(), ERROR_STATE(), ERROR_SEVERITY(), ERROR_LINE(), ERROR_PROCEDURE(), ERROR_MESSAGE(), GETDATE());
|
|
|
|
THROW;
|
|
END CATCH;
|
|
END |