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
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