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_Multi
/*
@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
declare @Contratista int = null
declare @Contratista_1 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()
/*
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
if @ActualDate = @StartOfMonth and 1=2
begin
delete led_docs where periodo = @periodoA and estado_doc NOT IN ('N','I','R','V')
select @periodoV as periodoV,@periodoA as periodoA
/*Averiguamos la lista de clientes a procesar */
DECLARE LedClientesActivos Cursor
FOR
/*
EXEC Imperium_Multi_Carga_Docs_Contratista @IDCliente ,@pContratista ,@periodo ,@Modalidad
*/
SELECT distinct Led_contratos.cliente as IDCliente,IIF(clientes.acceso_ci = 1,'A','V') as modalidad,
clientes.nombre_cliente,contratista,contratista_1
FROM clientes INNER JOIN
led_contratos ON clientes.cliente = led_contratos.cliente
inner join led_contratistas on clientes.cliente = led_contratistas.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 not in (9700868,9335603)
and led_contratistas.estado_contratista='A'
Open LedClientesActivos
Fetch NEXT FROM LedClientesActivos INTO @IDCliente,@Modalidad,@NombreCliente,@Contratista,@Contratista_1
While @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
if (@Contratista = @Contratista_1)
BEGIN
EXEC Imperium_Multi_Carga_Docs_Contratista @IDCliente ,@Contratista ,@periodoA ,'A'
EXEC Imperium_Multi_Carga_Docs_Contratista @IDCliente ,@Contratista ,@periodoV ,'V'
END
if (@Contratista <> @Contratista_1)
BEGIN
exec Imperium_Carga_Docs_Sub_Contratista @periodoV,@IDCliente
exec Imperium_Carga_Docs_Sub_Contratista @periodoA,@IDCliente
END
BEGIN
/* exec Imperium_Carga_Docs_Empleados @periodoA,@IDCliente */
exec Imperium_Multi_Carga_Docs_Empleados @IDCliente,0, @periodoA,'A'
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,@Contratista,@Contratista_1
END
CLOSE LedClientesActivos
DEALLOCATE LedClientesActivos
end
END
GO
GO
CREATE OR ALTER PROCEDURE dbo.Imperium_Inicio_Periodo_Multi
/*
@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
declare @Contratista int = null
declare @Contratista_1 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()
/*
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
if @ActualDate = @StartOfMonth and 1=2
begin
delete led_docs where periodo = @periodoA and estado_doc NOT IN ('N','I','R','V')
select @periodoV as periodoV,@periodoA as periodoA
/*Averiguamos la lista de clientes a procesar */
DECLARE LedClientesActivos Cursor
FOR
/*
EXEC Imperium_Multi_Carga_Docs_Contratista @IDCliente ,@pContratista ,@periodo ,@Modalidad
*/
SELECT distinct Led_contratos.cliente as IDCliente,IIF(clientes.acceso_ci = 1,'A','V') as modalidad,
clientes.nombre_cliente,contratista,contratista_1
FROM clientes INNER JOIN
led_contratos ON clientes.cliente = led_contratos.cliente
inner join led_contratistas on clientes.cliente = led_contratistas.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 not in (9700868,9335603)
and led_contratistas.estado_contratista='A'
Open LedClientesActivos
Fetch NEXT FROM LedClientesActivos INTO @IDCliente,@Modalidad,@NombreCliente,@Contratista,@Contratista_1
While @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
if (@Contratista = @Contratista_1)
BEGIN
EXEC Imperium_Multi_Carga_Docs_Contratista @IDCliente ,@Contratista ,@periodoA ,'A'
EXEC Imperium_Multi_Carga_Docs_Contratista @IDCliente ,@Contratista ,@periodoV ,'V'
END
if (@Contratista <> @Contratista_1)
BEGIN
exec Imperium_Carga_Docs_Sub_Contratista @periodoV,@IDCliente
exec Imperium_Carga_Docs_Sub_Contratista @periodoA,@IDCliente
END
BEGIN
/* exec Imperium_Carga_Docs_Empleados @periodoA,@IDCliente */
exec Imperium_Multi_Carga_Docs_Empleados @IDCliente,0, @periodoA,'A'
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,@Contratista,@Contratista_1
END
CLOSE LedClientesActivos
DEALLOCATE LedClientesActivos
end
END
GO
Depends On
10Used By
No items found