dbo.Imperium_Inicio_Periodo_Multi

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

Used By

No items found