Files
Fuchs_Intranet/Fuchs_Database/dbo/Stored Procedures/mfr__updt__stockmovements.sql
T
Stefan 8bcec409c5 feat: Add Admin Groups Management Module
- 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.
2026-09-16 09:35:31 +02:00

90 lines
2.6 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[mfr__updt__stockmovements]
@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__stockmovements];
DECLARE @tmp_cmd nvarchar(1000) = N'SELECT DISTINCT * FROM ' + @tblname
INSERT INTO @tmp EXECUTE [sp_executesql] @tmp_cmd;
BEGIN TRANSACTION;
MERGE [dbo].[mfr__stockmovements] as TARGET
USING @tmp as SOURCE ON TARGET.[Id] = SOURCE.[Id]
WHEN MATCHED AND (TARGET.[Version] <= SOURCE.[Version] OR TARGET.[DateModified] <= SOURCE.[DateModified] OR TARGET.[DateOfCreation] <= SOURCE.[DateOfCreation] ) THEN
UPDATE
SET [Id] = SOURCE.[Id]
,[Version] = SOURCE.[Version]
,[Amount] = SOURCE.[Amount]
,[AmountReceived] = SOURCE.[AmountReceived]
,[ExternalId] = SOURCE.[ExternalId]
,[ItemId] = SOURCE.[ItemId]
,[ItemTypeId] = SOURCE.[ItemTypeId]
,[StockMovementType] = SOURCE.[StockMovementType]
,[State] = SOURCE.[State]
,[ServiceRequestId] = SOURCE.[ServiceRequestId]
,[WarehouseId] = SOURCE.[WarehouseId]
,[DateOfCreation] = SOURCE.[DateOfCreation]
,[DateModified] = SOURCE.[DateModified]
,[TargetDate] = SOURCE.[TargetDate]
,[CreatedById] = SOURCE.[CreatedById]
,[ConfirmedById] = SOURCE.[ConfirmedById]
WHEN NOT MATCHED BY TARGET THEN
INSERT
([Id]
,[Version]
,[Amount]
,[AmountReceived]
,[ExternalId]
,[ItemId]
,[ItemTypeId]
,[StockMovementType]
,[State]
,[ServiceRequestId]
,[WarehouseId]
,[DateOfCreation]
,[DateModified]
,[TargetDate]
,[CreatedById]
,[ConfirmedById])
VALUES
(SOURCE.[Id]
,SOURCE.[Version]
,SOURCE.[Amount]
,SOURCE.[AmountReceived]
,SOURCE.[ExternalId]
,SOURCE.[ItemId]
,SOURCE.[ItemTypeId]
,SOURCE.[StockMovementType]
,SOURCE.[State]
,SOURCE.[ServiceRequestId]
,SOURCE.[WarehouseId]
,SOURCE.[DateOfCreation]
,SOURCE.[DateModified]
,SOURCE.[TargetDate]
,SOURCE.[CreatedById]
,SOURCE.[ConfirmedById]);
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