Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.28 KB | None | 0 0
  1. ** Object:  StoredProcedure [fin].[ExectGO_importIncome]    Script DATE: 03/27/2015 09:35:25 ******/
  2. SET ANSI_NULLS ON
  3. GO
  4. SET QUOTED_IDENTIFIER ON
  5. GO
  6.  
  7. ALTER PROCEDURE [fin].[ExectGO_importIncome]
  8.     @GroupOperationId BIGINT
  9. AS
  10. BEGIN
  11.     SET NOCOUNT ON;
  12.     DECLARE @MONTH DATETIME2
  13.             , @OperationTypeId INT
  14.             , @MonthEnd DATETIME2
  15.    
  16.     SELECT TOP 1 @MONTH = DateStart
  17.     FROM fin.GroupOperation
  18.     WHERE Id = @GroupOperationId
  19.  
  20.     SELECT TOP 1 @OperationTypeId = ot.Id
  21.     FROM fin.OperationType AS ot
  22.     WHERE Code = 'income'
  23.    
  24.     INSERT  fin.AccountChargedRaised
  25.             ( AccountId ,
  26.               MONTH ,
  27.               Charged ,
  28.               Raised,
  29.               GroupOperationId
  30.             )
  31.     SELECT  a.Id ,
  32.             @MONTH,
  33.             SUM(ISNULL(d.Charged, 0) + ISNULL(d.Recalculation,0)),
  34.             SUM(ISNULL(d.Raised, 0)),
  35.             @groupOperationId
  36.     FROM    no.sr$Income_alt d
  37.             JOIN no.sr$Service_alt s ON d.ServiceId = s.Id
  38.             JOIN no.sr$ServiceGroupsHC g ON s.GroupId = g.id
  39.             JOIN fin.vw_Account a ON d.ObjectId = a.ObjectId
  40.                                      AND a.StatusCode IN ('created', 'opened')
  41.                                      AND a.DateStart < @MonthEnd AND (a.DateEnd IS NULL OR  a.DateEnd >= @MonthEnd)
  42.     WHERE   UPPER(g.name) = UPPER('Капитальный ремонт после 271-ФЗ')
  43.             AND d.[MONTH] = @MONTH
  44.     GROUP BY a.Id, d.[MONTH]
  45.  
  46.     IF @@ROWCOUNT > 0 BEGIN
  47.         print 'Удаление мелких операций fin.Operation внутри групповой'
  48.         DELETE o
  49.         FROM fin.Operation o
  50.         JOIN fin.vw_Account a ON a.Id = o.AccountId
  51.         WHERE o.GroupOperationId = @groupOperationId AND a.StatusCode IN ('created', 'opened')
  52.         DBCC CHECKIDENT('fin.Operation', RESEED, 0) WITH NO_INFOMSGS
  53.         DBCC CHECKIDENT('fin.Operation', RESEED) WITH NO_INFOMSGS
  54.  
  55.         INSERT  fin.Operation
  56.         ( Created ,
  57.             AccountId ,
  58.             OperationId ,
  59.             SUM ,
  60.             GroupOperationId ,
  61.             DateTransaction
  62.         )
  63.         SELECT  GETDATE() ,
  64.                 AccountId ,
  65.                 @OperationTypeId ,
  66.                 Raised ,
  67.                 @groupOperationId ,
  68.                 @MONTH
  69.         FROM    fin.AccountChargedRaised
  70.         WHERE   GroupOperationId = @GroupOperationId
  71.     END
  72. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement