dbo.Imperium_Inicio_Periodo_Docs

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE OR ALTER PROCEDURE  dbo.Imperium_Inicio_Periodo_Docs
/*
@periodo int,
@IDCliente int,
@led_seccion varchar(1)
*/

AS

BEGIN
 SET NOCOUNT ON;

DECLARE @ERRORNUMBER SMALLINT 

/*
BEGIN
EXEC Carga_Led_Inicio_Periodo
END
*/


DECLARE @StartOfMonth DATE
DECLARE @ActualDate DATE
DECLARE @periodoV INT = NULL
DECLARE @periodoVAnt INT = NULL
DECLARE @periodoA INT = NULL
DECLARE @IDCliente int = NULL
DECLARE @Modalidad varchar(1)
DECLARE @NombreCliente varchar(200)
DECLARE @periodoYear INT = NULL
DECLARE @periodoMonth INT = NULL

SET @periodoYear = convert(varchar(4),datepart(year,getdate()))
SET @periodoMonth = convert(varchar(2),datepart(month,getdate()))

SET @periodoYear = datepart(year,getdate())
SET @periodoMonth = datepart(month,getdate())

SET @periodoA = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())),2)


SeT @StartOfMonth = convert(date,DATEADD(month, DATEDIFF(month, 0, getdate()), 0)) 
set @ActualDate = getdate()
/*
set @periodoV = 201612
set @periodoVAnt = 201611
*/


select @StartOfMonth,@ActualDate,@periodoV,@periodoA,@periodoVAnt,@periodoYear as periodoYear,@periodoMonth as periodoMonth
/*
set @periodoMonth = 1
*/

if (@periodoMonth = 1)
 begin
  set @periodoV = convert(varchar(4),@periodoYear-1) + RIGHT('00' +convert(varchar(2),12),2)
  set @periodoVAnt = convert(varchar(4),@periodoYear-1) + RIGHT('00' +convert(varchar(2),11),2)
 end

if (@periodoMonth > 1)
 begin
  set @periodoV = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-1),2)
  set @periodoVAnt = convert(varchar(4),datepart(year,getdate())) + RIGHT('00' +convert(varchar(2),datepart(month,getdate())-2),2)
 end


set @periodoVAnt = dbo.PeriodoMenosDos()
set @periodoV = dbo.PeriodoVencido()
set @periodoA = dbo.PeriodoAdelantado()



/*
select @StartOfMonth as startofmonth,@ActualDate as actualdate,@periodoV as periodoV,@periodoA as periodoA,@periodoVAnt as periodoVANT,@periodoYear as periodoYear,@periodoMonth as periodoMonth
*/


select @StartOfMonth,@ActualDate,@periodoV,@periodoA
if @ActualDate = @ActualDate
 begin
  /*Averiguamos la lista de clientes a procesar */
  DECLARE LedClientesActivos Cursor
  FOR
  
  SELECT  Led_contratos.cliente as IDCliente,IIF(clientes.acceso_ci = 1,'A','V') as modalidad,
  clientes.nombre_cliente
  FROM  clientes INNER JOIN
  led_contratos ON clientes.cliente = led_contratos.cliente
  WHERE clientes.estado_cliente = 'A' and 
  (clientes.acceso_led = 1 or clientes.acceso_ci = 1) 
  and getdate() between led_contratos.vigencia_desde 
  and led_contratos.vigencia_hasta
  /*
   and led_contratos.cliente  in (9936068,1564570,1875643264,3915936) 
   */

  Open LedClientesActivos


  Fetch NEXT FROM LedClientesActivos INTO @IDCliente,@Modalidad,@NombreCliente

  While (@@FETCH_STATUS = 0)
  BEGIN

  BEGIN TRY
  select @IDCliente,@Modalidad,@NombreCliente,@periodoV as periodoV,@periodoA as periodoA
  if (@Modalidad = 'V')
   begin
    exec Imperium_Carga_Docs_Contratista @periodoV,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Empleados @periodoV,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Sub_Contratista @periodoV,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Vehiculos @periodoV,@IDCliente
   end
  if (@Modalidad = 'A')
  
   begin
    exec Imperium_Carga_Docs_Contratista @periodoV,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Empleados @periodoV,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Sub_Contratista @periodoV,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Vehiculos @periodoV,@IDCliente
   end
    /* AGREGO EL PERIODO ADELANTADO*/
   begin
    exec Imperium_Carga_Docs_Contratista @periodoA,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Empleados @periodoA,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Sub_Contratista @periodoA,@IDCliente
   END
   BEGIN
    exec Imperium_Carga_Docs_Vehiculos @periodoA,@IDCliente
   end
  END TRY
  BEGIN CATCH

  SET @ERRORNUMBER = 1

  END CATCH

  Fetch NEXT FROM LedClientesActivos INTO @IDCliente,@Modalidad,@NombreCliente

  END

  CLOSE LedClientesActivos
  DEALLOCATE LedClientesActivos
end

END

GO