hecrus

Suggestion Form

Jun 16th, 2021
2,122
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ----------------FORM suggestion--------------
  2. DECLARE @formID INT, @errFRM nvarchar(MAX), @formDatatypeID INT; SET @formID = NULL;
  3. SELECT top 1 @formID = f.id FROM as_forms AS f WHERE f.code = 'suggestion' ORDER BY f.id;
  4. BEGIN try
  5. IF @formID > 0 BEGIN
  6. UPDATE as_forms SET [code] = 'suggestion'
  7. ,[title] = 'Найдена ошибка или есть идея?'
  8. ,[subtitle] = ''
  9. ,[resultMessage] = 'Сохранено'
  10. ,[successURL] = ''
  11. ,[makeup] = '{form-title}
  12. {collabel-type}
  13. {colcontrol-type}
  14. {colexample-type}
  15.  
  16. <label class='as-form-cap '>text</label>
  17. {colcontrol-text}
  18.  
  19. {colcontrol-data}'
  20. ,[hideFormAfterSubmit] = 1,[buttonText] = 'Сохранить'
  21. ,[users] = ''
  22. ,[roles] = 'all'
  23.  WHERE id = @formID;
  24. print N'Форма suggestion обновлена'
  25.  END; ELSE BEGIN
  26.  INSERT INTO as_forms ([code],[title],[subtitle],[resultMessage],[successURL],[makeup]
  27. ,[hideFormAfterSubmit],[buttonText],[users],[roles]) VALUES (
  28. 'suggestion', 'Найдена ошибка или есть идея?'
  29. , '', 'Сохранено', ''
  30. , '{form-title}
  31. {collabel-type}
  32. {colcontrol-type}
  33. {colexample-type}
  34.  
  35. <label class='as-form-cap '>text</label>
  36. {colcontrol-text}
  37.  
  38. {colcontrol-data}', 1, 'Сохранить'
  39. , ''
  40. , 'all'
  41. );
  42. SELECT @formID = scope_identity();
  43. print N'Форма suggestion добавлена'
  44. END;
  45. END try
  46. BEGIN catch
  47. SET @errFRM = N'ERROR При обновленииобавлении формы suggestion возникла ошибка:  '+ error_message()
  48. raiserror( @errFRM  , 11, 0)
  49. END catch
  50.  
  51. BEGIN try
  52. DELETE FROM as_formCols WHERE as_formCols.formID = @formID;
  53. print N'Колонки формы suggestion удалены'
  54. END try
  55. BEGIN catch
  56. SET @errFRM = N'ERROR При удалении колонок формы suggestion возникла ошибка: '+ error_message()
  57. raiserror( @errFRM  , 11, 0)
  58. END catch
  59.  
  60. BEGIN try
  61. SET @formDatatypeID = NULL;
  62. SELECT @formDatatypeID = d.id FROM as_dataTypes AS d WHERE d.code = 'string';
  63.  INSERT INTO as_formCols ([formID],[code],[title],[placeholder],[tooltip],[ord],[datatypeID]
  64. ,[isRequired],[sqlSource],[width],[dependentCols]) VALUES ( @formID,
  65. 'type', 'Тип'
  66. , ''
  67. , ''
  68. , 0, @formDatatypeID, 0, ''
  69. , NULL
  70. , NULL
  71. );
  72. print N'Колонка type формы добавлена'
  73. END try
  74. BEGIN catch
  75. SET @errFRM = N'ERROR При добалении колонки type формы возникла ошибка:  '+error_message()
  76. raiserror( @errFRM  , 11, 0)
  77. END catch
  78.  
  79. BEGIN try
  80. SET @formDatatypeID = NULL;
  81. SELECT @formDatatypeID = d.id FROM as_dataTypes AS d WHERE d.code = 'text';
  82.  INSERT INTO as_formCols ([formID],[code],[title],[placeholder],[tooltip],[ord],[datatypeID]
  83. ,[isRequired],[sqlSource],[width],[dependentCols]) VALUES ( @formID,
  84. 'text', 'Комментарий'
  85. , 'Если возможно - укажите ссылку на скрин'
  86. , ''
  87. , 0, @formDatatypeID, 0, ''
  88. , NULL
  89. , NULL
  90. );
  91. print N'Колонка text формы добавлена'
  92. END try
  93. BEGIN catch
  94. SET @errFRM = N'ERROR При добалении колонки text формы возникла ошибка:  '+error_message()
  95. raiserror( @errFRM  , 11, 0)
  96. END catch
  97.  
  98. BEGIN try
  99. SET @formDatatypeID = NULL;
  100. SELECT @formDatatypeID = d.id FROM as_dataTypes AS d WHERE d.code = 'sessionStorage';
  101.  INSERT INTO as_formCols ([formID],[code],[title],[placeholder],[tooltip],[ord],[datatypeID]
  102. ,[isRequired],[sqlSource],[width],[dependentCols]) VALUES ( @formID,
  103. 'data', 'Данные'
  104. , ''
  105. , ''
  106. , 0, @formDatatypeID, 0, ''
  107. , NULL
  108. , NULL
  109. );
  110. print N'Колонка data формы добавлена'
  111. END try
  112. BEGIN catch
  113. SET @errFRM = N'ERROR При добалении колонки data формы возникла ошибка:  '+error_message()
  114. raiserror( @errFRM  , 11, 0)
  115. END catch
  116.  
  117.  
  118.  
  119. print N'Попытка удаления хранимых процедур'
  120. DECLARE @name nvarchar(256), @sqlExpec nvarchar(MAX);
  121. DECLARE cur CURSOR LOCAL FOR SELECT o.name FROM sys.objects AS o WHERE o.name LIKE 'fm_suggestion[_]%' AND TYPE IN (N'P', N'PC')
  122. OPEN cur fetch NEXT FROM cur INTO @name
  123. while @@FETCH_STATUS = 0 BEGIN
  124. BEGIN try
  125. SET @sqlExpec = 'drop procedure [' + @name+']'
  126. EXEC sp_executesql @sqlExpec
  127. print N'Удалена хранимая процедура ' + @name
  128. END try
  129. BEGIN catch
  130. print N'Ошибка при удалени хранимой процедуры ' + @name + ': '+ error_message()
  131. END catch
  132. fetch NEXT FROM cur INTO @name END
  133. close cur deallocate cur
  134.  
  135. BEGIN try
  136. EXEC sp_executesql N'CREATE PROCEDURE [dbo].[fm_suggestion_checkItem]
  137. @username nvarchar(256),
  138. @itemID int,
  139. @parameters ExtendedDictionaryParameter READONLY
  140. -- либо перечислить все поля в форме (@fieldcode и т.д.)
  141. AS
  142. BEGIN
  143.     select 1 Result, '''' Msg
  144. END
  145.  
  146. --ru 16.06.2021 21:02:56
  147. --ru 16.06.2021 21:03:06
  148. '
  149. print N'Добавлена хранимая процедура fm_suggestion_checkItem'
  150. END try
  151. BEGIN catch
  152. print N'ERROR Ошибка при добавлении хранимой процедуры fm_suggestion_checkItem: '+ error_message()
  153. END catch
  154.  
  155.  
  156. BEGIN try
  157. EXEC sp_executesql N'CREATE PROCEDURE [dbo].[fm_suggestion_getItem]
  158. @itemID int,
  159.     @username nvarchar(256)
  160.  
  161. AS
  162. BEGIN
  163.     -- инициализация формы данными. Названия вывода 1 SELECT должны совпадать с элементами формы
  164.     select ''Баг||Предложение||Неточность в контенте||Неудобно'' example_type, ''falconEnvironment'' data
  165. END
  166.  
  167. --ru 16.06.2021 20:56:29
  168. --ru 16.06.2021 20:57:01
  169. --ru 16.06.2021 21:38:29
  170. '
  171. print N'Добавлена хранимая процедура fm_suggestion_getItem'
  172. END try
  173. BEGIN catch
  174. print N'ERROR Ошибка при добавлении хранимой процедуры fm_suggestion_getItem: '+ error_message()
  175. END catch
  176.  
  177.  
  178. BEGIN try
  179. EXEC sp_executesql N'CREATE PROCEDURE [dbo].[fm_suggestion_saveItem]
  180. @username nvarchar(256),
  181. @itemID int,
  182. @parameters ExtendedDictionaryParameter READONLY
  183. -- либо перечислить все поля в форме (@fieldcode и т.д.)
  184. AS
  185. BEGIN
  186.     declare @ptype nvarchar(max)
  187.     select @ptype = Value2 from @parameters where [key]=''type''
  188.     declare @ptext nvarchar(max)
  189.     select @ptext = Value2 from @parameters where [key]=''text''
  190.     declare @pdata nvarchar(max)
  191.     select @pdata = Value2 from @parameters where [key]=''data''
  192.  
  193.     declare @header nvarchar(max) = isnull(@ptype, '''')
  194.  
  195.     declare @text nvarchar(max) = isnull(@ptext, '''') + ''<br>-----------<br>'' + isnull(@pdata, '''')
  196.     insert into as_trace(header, text, code, created, username)
  197. values (@header, @text, ''suggestion'', getdate(), @username)
  198.  
  199.  
  200.     -- SELECT 1 (Result, Msg, SuccessUrl, HideFormAfterSubmit, RefreshContainer)
  201.     select 1 Result, ''Спасибо, ваше сообщение принято в обработку'' Msg, '''' SuccessUrl, 1 HideFormAfterSubmit, '''' RefreshContainer
  202.  
  203.  
  204.     -- SELECT 2 Вызов внешнего действия
  205.  
  206.     select ''email'' type,  
  207.     ''MY_EMAIL'' [to], ''Новое предложение на сайте - '' + @header subject, @text  body   ---EMAIL
  208.  
  209. END
  210.  
  211. '
  212. print N'Добавлена хранимая процедура fm_suggestion_saveItem'
  213. END try
  214. BEGIN catch
  215. print N'ERROR Ошибка при добавлении хранимой процедуры fm_suggestion_saveItem: '+ error_message()
  216. END catch
  217.  
  218.  
  219. --Конец
  220. GO
  221. --Конец скрипта
  222.  
RAW Paste Data