Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
6| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_codigo_actividad | varchar | 20 | |
| @p_cuit | varchar | 20 | |
| @p_descripcion_actividad | varchar | 250 | |
| @p_formulario | varchar | 20 | |
| @p_orden | bit | 1 | |
| @inicio | varchar | 10 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec carga_actividades_afip '251101','20348684869','FABRICACIÓN DE CARPINTERÍA METÁLICA','883','1','202009'
*/
CREATE OR ALTER PROCEDURE dbo.carga_actividades_afip
@p_codigo_actividad varchar(20),
@p_cuit varchar(20),
@p_descripcion_actividad varchar(250),
@p_formulario varchar(20), -- formulario / nomenclatura
@p_orden bit,
@inicio varchar(10) = null
AS
BEGIN
declare @fecha_inicio date = null
if (@inicio is not null) set @fecha_inicio = convert(date,@inicio+'01')
if ((select COUNT(*) from clae
where (cuit = @p_cuit)
and ((cod_clae is null and @p_codigo_actividad is null) or (cod_clae = @p_codigo_actividad))
and ((formulario is null and @p_formulario is null) or (formulario = @p_formulario))
and (visible = 1)) = 0)
begin
begin try
insert into clae
(cuit, cod_clae, descripcion, formulario, principal, created, visible,fecha_inicio_actividad) values
(@p_cuit, @p_codigo_actividad,@p_descripcion_actividad, @p_formulario, @p_orden, GETDATE(), 1,@fecha_inicio)
select 'ok' as ok
end try
begin catch
select ERROR_MESSAGE() as error
end catch
end
else
begin
/*-----------------------------------------------------------------------------------------------
Agregado Junio 2019
Si vino un registro con datos que ya tenía, le modificamos el modified para saber que sigue igual
-------------------------------------------------------------------------------------------------*/
update clae
set modified = GETDATE(), fecha_inicio_actividad = iif(@fecha_inicio is null,fecha_inicio_actividad,@fecha_inicio)
where (cuit = @p_cuit)
and ((cod_clae is null and @p_codigo_actividad is null) or (cod_clae = @p_codigo_actividad))
and ((formulario is null and @p_formulario is null) or (formulario = @p_formulario))
and (visible = 1)
/*-----------------------------------------------------------------------------------------------*/
if ((select COUNT(*) from clae where (cuit = @p_cuit) and (cod_clae = @p_codigo_actividad) and (formulario = @p_formulario) and (fecha_inicio_actividad = @fecha_inicio) and (isnull(principal,0) != @p_orden) and (visible = 1)) = 1)
begin
begin try
if (@p_orden = 1)
begin
update clae set principal = 0, modified = GETDATE()
where (cuit = @p_cuit) and (principal = 1) and (visible = 1)
end
update clae set principal = @p_orden,fecha_inicio_actividad = iif(@fecha_inicio is null,fecha_inicio_actividad,@fecha_inicio), modified = GETDATE()
where (cuit = @p_cuit) and (cod_clae = @p_codigo_actividad) and (formulario = @p_formulario) and (visible = 1)
select 'ok' as ok
end try
begin catch
select ERROR_MESSAGE() as error
end catch
end
end
END
GO
GO
/*
exec carga_actividades_afip '251101','20348684869','FABRICACIÓN DE CARPINTERÍA METÁLICA','883','1','202009'
*/
CREATE OR ALTER PROCEDURE dbo.carga_actividades_afip
@p_codigo_actividad varchar(20),
@p_cuit varchar(20),
@p_descripcion_actividad varchar(250),
@p_formulario varchar(20), -- formulario / nomenclatura
@p_orden bit,
@inicio varchar(10) = null
AS
BEGIN
declare @fecha_inicio date = null
if (@inicio is not null) set @fecha_inicio = convert(date,@inicio+'01')
if ((select COUNT(*) from clae
where (cuit = @p_cuit)
and ((cod_clae is null and @p_codigo_actividad is null) or (cod_clae = @p_codigo_actividad))
and ((formulario is null and @p_formulario is null) or (formulario = @p_formulario))
and (visible = 1)) = 0)
begin
begin try
insert into clae
(cuit, cod_clae, descripcion, formulario, principal, created, visible,fecha_inicio_actividad) values
(@p_cuit, @p_codigo_actividad,@p_descripcion_actividad, @p_formulario, @p_orden, GETDATE(), 1,@fecha_inicio)
select 'ok' as ok
end try
begin catch
select ERROR_MESSAGE() as error
end catch
end
else
begin
/*-----------------------------------------------------------------------------------------------
Agregado Junio 2019
Si vino un registro con datos que ya tenía, le modificamos el modified para saber que sigue igual
-------------------------------------------------------------------------------------------------*/
update clae
set modified = GETDATE(), fecha_inicio_actividad = iif(@fecha_inicio is null,fecha_inicio_actividad,@fecha_inicio)
where (cuit = @p_cuit)
and ((cod_clae is null and @p_codigo_actividad is null) or (cod_clae = @p_codigo_actividad))
and ((formulario is null and @p_formulario is null) or (formulario = @p_formulario))
and (visible = 1)
/*-----------------------------------------------------------------------------------------------*/
if ((select COUNT(*) from clae where (cuit = @p_cuit) and (cod_clae = @p_codigo_actividad) and (formulario = @p_formulario) and (fecha_inicio_actividad = @fecha_inicio) and (isnull(principal,0) != @p_orden) and (visible = 1)) = 1)
begin
begin try
if (@p_orden = 1)
begin
update clae set principal = 0, modified = GETDATE()
where (cuit = @p_cuit) and (principal = 1) and (visible = 1)
end
update clae set principal = @p_orden,fecha_inicio_actividad = iif(@fecha_inicio is null,fecha_inicio_actividad,@fecha_inicio), modified = GETDATE()
where (cuit = @p_cuit) and (cod_clae = @p_codigo_actividad) and (formulario = @p_formulario) and (visible = 1)
select 'ok' as ok
end try
begin catch
select ERROR_MESSAGE() as error
end catch
end
end
END
GO
Depends On
1Used By
No items found