ALTER PROCEDURE [dbo].[AXI_UpdateCenaSS] --WITH ENCRYPTION AS BEGIN IF OBJECT_ID (N'tempdb..##TableCena', N'U') IS NULL begin RAISERROR('Параметры обновления цен не указаны (##TableCena)!',16,1) return end set nocount on; DECLARE @_k1 float, -- кол-во 1 @_t1 int, --тип 1 @_k2 float, --кол-во 2 @_t2 int --тип 2 --SELECT @_cuser = EmployeeID FROM _STUsers WHERE Name = suser_sname() /* #Table 21 - контрагенты */ SELECT @_k1 = (SELECT k1 FROM ##TableCena) SELECT @_t1 = (SELECT type1 FROM ##TableCena) SELECT @_k2 = (SELECT k2 FROM ##TableCena) SELECT @_t2 = (SELECT type2 FROM ##TableCena) -- Проверка заполненности таблицы цен IF (SELECT COUNT(*) FROM #Table8) = 0 BEGIN RAISERROR('Цены для изменения не выбраны!',16,1) return 0 END if ((@_t1 <> 0) and (@_k1 <> 0)) begin if @_t1 = 541 --стоимость в % begin update a300 set p4356 = isnull(p4356,0) + (p4356*@_k1/100) from attr300 a300 JOIN #Table8 T8 ON t8.ObjectID = a300.ObjectID end if @_t1 = 542 --стоимость в руб begin update a300 set p4356 = isnull(p4356,0) + @_k1 from attr300 a300 JOIN #Table8 T8 ON t8.ObjectID = a300.ObjectID end end --для себестоимости if ((@_t2 <> 0) and (@_k2 <> 0)) begin if @_t2 = 541 --стоимость в % begin update a300 set p4357 = isnull(p4357,0) + (p4357*@_k2/100) from attr300 a300 JOIN #Table8 T8 ON t8.ObjectID = a300.ObjectID end if @_t2 = 542 --стоимость в руб begin update a300 set p4357 = isnull(p4357,0) + @_k2 from attr300 a300 JOIN #Table8 T8 ON t8.ObjectID = a300.ObjectID end end return 1 drop table ##TableCena END --GRANT EXECUTE ON [dbo].[AXI_UpdateCenaSS] TO public --EXEC AXI_CreateTaskOnKontrs