Advertisement
RomioSul

add_reviewer_s

May 30th, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- PROCEDURE: public.add_reviewer_sp(integer, integer, character varying, character varying, integer, character varying)
  2.  
  3. -- DROP PROCEDURE public.add_reviewer_sp(integer, integer, character varying, character varying, integer, character varying);
  4.  
  5. CREATE OR REPLACE PROCEDURE public.add_reviewer_sp(
  6.     p_mode integer,
  7.     p_orderid integer,
  8.     p_login character varying,
  9.     p_value character varying,
  10.     p_md integer,
  11.     INOUT p_output character varying)
  12. LANGUAGE 'plpgsql'
  13. AS $BODY$
  14. BEGIN
  15.  
  16.     DECLARE
  17.         l_TID          int = null;
  18.         l_now          TIMESTAMP  WITHOUT TIME ZONE;
  19. begin
  20.     set l_now = now;
  21.  
  22.     declare
  23.         exists bit = null;
  24. begin
  25.     select exists=1 from public.Orders_tb where TID=p_OrderID;
  26.  
  27.     if exists = 1
  28.     then
  29.          p_Value = public.Strip_fn(p_Value);
  30.         --
  31.         -- Check if this is Reviewer line
  32.         --
  33.         set exists = 0;
  34.  
  35.         if public.CHECK_IsEmpty_fn(p_Value) = 0  then
  36.             select exists=1 from public.Reviewers_tb where OrderID=p_OrderID and Login=p_Value;
  37.  
  38.             if exists = 0 then
  39.                 INSERT INTO public.Reviewers_tb VALUES (
  40.                     p_OrderID,
  41.                     p_Value);
  42.                 select l_TID = CAST(scope_identity() AS integer);
  43.                 set p_Output = 'Registered';
  44.             end if;
  45.         end if;
  46.         --
  47.         -- Add to Order Changes log
  48.         --
  49.         INSERT INTO public.OrderChanges_tb (OrderID, Login, Name, Value) VALUES
  50.             (p_OrderID, p_Login, 'Назначен рецензент', p_Value);
  51.  
  52.         if error != 0 then
  53.             raise'ошибка обработки';
  54.         else
  55.             set l_TID = 0;
  56.             p_Output = 'Invalid';
  57.         end if;
  58.  
  59.     p_Output = p_Output || ':' || cast(l_TID as varchar);
  60.  
  61.     if p_Mode = 0 then
  62.         SELECT l_TID, p_Output FROM
  63.             public.sysobjects where id = object_id(N'public.ADD_Reviewer_sp') and OBJECTPROPERTY(id, N'IsProcedure') = 1;
  64.     else
  65.         return;
  66.     end if;
  67.   end if;
  68.   end;
  69.  end;
  70. END;
  71. $BODY$;
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement