dbo.sp_balances_2007_grupos_actualiza

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@cuit varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- [sp_balances_2007_grupos_actualiza] '30695556531'
CREATE OR ALTER PROCEDURE dbo.sp_balances_2007_grupos_actualiza 
@cuit varchar(20) = null
AS
BEGIN
    SET NOCOUNT ON;
 declare @id int, 
         @fecha_balance date,
   @ventas decimal(20,2),
   @ventas_act decimal(20,2),
   @anio int,
   @anio_por int,  
   @porcentaje decimal(10,2), 
   @hoy int = datepart(year,getdate())
 if (@cuit is null) 
 begin
 DECLARE C_balances CURSOR FOR
  select id, fecha_balance, ventas_netas
    from balances_por_grupo 
    /**/
    where (isnull(sueldos,0) = 0 or isnull(sueldos_ultimo,0) = 0)
    and fecha_balance < '2017-01-01'
    /**/
   order by id
 end 
 else
 begin
  DECLARE C_balances CURSOR FOR
  select id, fecha_balance, ventas_netas
    from balances_por_grupo 
    where cuit = @cuit
   order by id
 end 
 OPEN C_balances
 FETCH NEXT FROM C_balances INTO @id, @fecha_balance, @ventas 
 WHILE @@fetch_status = 0
 BEGIN
  set @anio = DATEPART(year,@fecha_balance) 
  set @anio = @anio + 1
  set @ventas_act = @ventas
  DECLARE c_inflacion CURSOR FOR
    select anio, porcentaje 
      from inflacion_anual
      where anio between @anio and @hoy 
      order by anio
  OPEN C_inflacion
  FETCH NEXT FROM C_inflacion INTO @anio_por, @porcentaje 
  WHILE @@fetch_status = 0
  BEGIN
  --select @anio, @porcentaje
   set @ventas_act = @ventas_act + (@ventas_act * @porcentaje / 100)
   FETCH NEXT FROM C_inflacion INTO @anio_por, @porcentaje
  END 
  CLOSE C_inflacion
  DEALLOCATE C_inflacion
  update balances_por_grupo set ventas_netas_actualizadas = @ventas_act where id = @id
  --select @fecha_balance, @anio
  FETCH NEXT FROM C_balances INTO @id, @fecha_balance, @ventas 
 END  
 CLOSE C_Balances
 DEALLOCATE C_Balances

 if (@cuit is null)
 BEGIN 
  exec [sp_balances_2007_medias]
 END
 else
 BEGIN 
  declare @grupo int = (select grupo from balances_por_grupo where cuit = @cuit)
     exec [sp_balances_2007_medias] @grupo
 END
  
END 
GO

Used By

No items found