Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.36 KB | None | 0 0
  1. USE [ILS]
  2. GO
  3.  
  4. /****** Object:  StoredProcedure [dbo].[KC_EXP]    Script Date: 3/20/2017 6:22:18 PM ******/
  5. SET ANSI_NULLS ON
  6. GO
  7.  
  8. SET QUOTED_IDENTIFIER ON
  9. GO
  10.  
  11. -- =============================================
  12. -- Author: vbelko
  13. -- Create date: 22.12.2016
  14. -- Description:
  15. -- Moderate:
  16. -- EXEC KC_EXP
  17. -- =============================================
  18. ALTER PROCEDURE [dbo].[KC_EXP]
  19.     -- Add the parameters for the stored procedure here
  20. AS
  21.  
  22. BEGIN TRY
  23.     begin transaction t1
  24.         --создание временной таблицы для отображения смены статуса в TRANSACTION_HISTORY
  25.         create table ##tblEXPR (
  26.              id smallint identity(1, 1) primary key
  27.             ,lpn nvarchar(25) null
  28.             ,inventory_sts nvarchar(50) null
  29.             ,inventory_sts_after nvarchar(50) null
  30.         );
  31.        
  32.         --создание временной таблицы для отображения смены склада в TRANSACTION_HISTORY
  33.         create table ##tblEXPR_ERP (
  34.              id smallint identity(1, 1) primary key
  35.             ,lpn nvarchar(25) null
  36.             ,plant_before nvarchar(50) null
  37.             ,plant_after nvarchar(50)
  38.         );
  39.         if exists (
  40.             select logistics_unit
  41.             from location_inventory li
  42.                 join KC_LPN kc on li.logistics_unit=kc.lpn
  43.             where
  44.                 li.on_hand_qty > 0
  45.                 and li.allocated_qty = 0
  46.                 and li.in_transit_qty = 0
  47.         )
  48.             update li
  49.             set INVENTORY_STS = (
  50.                 select top 1 gc.USER3VALUE
  51.                 from LOCATION_INVENTORY li
  52.                     left join location lc on li.location = lc.LOCATION
  53.                     left join KC_LPN kc on li.logistics_unit = kc.lpn
  54.                     left join ITEM i on li.item = i.ITEM
  55.                     left join KC_MOVE_TYPE kcm on li.INVENTORY_STS = kcm.STS_BEFORE and kc.ERP_PLANT = kcm.WHS_BEFORE
  56.                     inner join GENERIC_CONFIG_DETAIL gc on kcm.STS_AFTER = gc.USER3VALUE and i.ITEM_CATEGORY8 = gc.USER1VALUE
  57.                 where
  58.                     gc.RECORD_TYPE = 'KC_EXPIRATION_LIST'
  59.                     and li.USER_DEF1 <= gc.USER2VALUE
  60.                     and lc.LOCATION_CLASS = 'Inventory'
  61.                 order by gc.USER2VALUE asc
  62.             )
  63.             output deleted.logistics_unit, deleted.INVENTORY_STS, inserted.INVENTORY_STS INTO ##tblEXPR
  64.             from LOCATION_INVENTORY li
  65.  
  66.         --Объявление переменных для записи изменений в transaction_history
  67.         declare
  68.              @stBeforeSts nvarchar(50)
  69.             ,@stTransType nvarchar(25)
  70.             ,@stWhs nvarchar (25)
  71.             ,@stAfterSts nvarchar(50)
  72.             ,@stContId nvarchar(50)
  73.             ,@stItem nvarchar(50)
  74.             ,@stLot nvarchar(25)
  75.             ,@stReferenceType nvarchar(50)
  76.             ,@stCompany nvarchar(25)
  77.             ,@stUserDef3 nvarchar(50)
  78.  
  79.         set @stTransType = '50';
  80.         set @stReferenceType = N'Смена статуса';
  81.  
  82.         set @stBeforeSts = (
  83.             select li.INVENTORY_STS
  84.             from LOCATION_INVENTORY as li, ##tblEXPR as temp
  85.             where li.INTERNAL_LOCATION_INV = temp.id
  86.         );     
  87.         set @stWhs = (
  88.             select WAREHOUSE
  89.             from LOCATION_INVENTORY as li
  90.                  join KC_LPN kc on li.logistics_unit = kc.lpn
  91.         );
  92.         set @stAfterSts = (
  93.             select inventory_sts_after
  94.             from LOCATION_INVENTORY AS li, ##tblEXPR AS temp
  95.             where li.INTERNAL_LOCATION_INV = temp.id
  96.         );
  97.         set @stContId = (
  98.             select li.LOGISTICS_UNIT
  99.             from location_inventory as li, ##tblEXPR as temp
  100.             where li.INTERNAL_LOCATION_INV = temp.id
  101.         );
  102.         set @stItem = (
  103.             select li.item
  104.             from LOCATION_INVENTORY as li, ##tblEXPR as temp
  105.             where li.LOGISTICS_UNIT = temp.LPN
  106.         );
  107.         set @stLot = (
  108.             select LOT
  109.             from LOCATION_INVENTORY as li, ##tblEXPR as temp
  110.             where li.logistics_unit = temp.LPN
  111.         );
  112.         set @stCompany = (
  113.             select li.company
  114.             from LOCATION_INVENTORY as li, ##tblEXPR as temp
  115.             where li.logistics_unit = temp.LPN
  116.         );
  117.  
  118.         --переменная из временной таблицы #2 при смене учетных складов
  119.         set @stUserDef3 = (
  120.             select PLANT_BEFORE
  121.             from KC_LPN AS kc, ##tblEXPR_ERP AS temp_erp
  122.             where kc.LPN = temp_erp.LPN
  123.         );
  124.  
  125.         --Обновление учетного склада
  126.         update KC_LPN
  127.         set
  128.              PROCESS_STAMP = 'KC_EXP'
  129.             ,ERP_PLANT = (
  130.                 select distinct gc.USER4VALUE
  131.                 from location_inventory li
  132.                      left join KC_LPN kc on li.logistics_unit=kc.lpn
  133.                      left join KC_MOVE_TYPE kcm on li.INVENTORY_STS=kcm.STS_AFTER
  134.                      inner join GENERIC_CONFIG_DETAIL gc on kcm.STS_AFTER = gc.USER3VALUE
  135.                 where gc.RECORD_TYPE = 'KC_EXPIRATION_LIST' and li.USER_DEF1 <= gc.USER2VALUE
  136.             )
  137.            
  138.         output deleted.LPN, deleted.ERP_PLANT, inserted.ERP_PLANT into ##tblEXPR_ERP
  139.         from KC_LPN kc
  140.        
  141.         select * from ##tblEXPR --? зачем тут селект ?
  142.  
  143.         --переменная из временной таблицы #2 при смене учетных складов
  144.         declare @stUserDef4 nvarchar(50)
  145.         set @stUserDef4 = (
  146.             select PLANT_AFTER
  147.             from KC_LPN AS kc, ##tblEXPR_ERP AS temp_erp
  148.             where kc.LPN = temp_erp.LPN
  149.         );
  150.    
  151.         --Создание записи в transaction_history используя стандартную процедуру SCALE
  152.         EXEC HIST_SaveTransHist
  153.             0.00000, 0.00000, 0.00000, @stAfterSts,
  154.             '0.00000','0.00000', '0.00000','0.00000',@stBeforeSts,'0.00000',@stCompany,@stContId,null,null, null,@stItem,null,@stLot,
  155.             'KC_EXP',null,null,null,null,@stReferenceType,null,null,@stTransType,null,null,@stUserDef3,@stUserDef4,null,null,null,
  156.             null,null,@stWHs,null,null,null,null,null ,null,null,null,'Y', null
  157.  
  158.     commit transaction t1
  159. end try
  160. begin catch
  161.     if @@error != 0
  162.         rollback transaction t1
  163. end catch
  164. go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement