Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
3| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_doc_id | bigint | 8 | |
| @p_reemplazo | tinyint | 1 | |
| @p_user_id | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_Verificar_Documento
-- Add the parameters for the stored procedure here
@p_doc_id bigint = NULL,
@p_reemplazo tinyint = 0,
@p_user_id int = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
if (@p_doc_id > 0 AND @p_user_id > 0) begin
declare @estado varchar(1), @fecha_vigencia datetime
select @estado = estado_doc, @fecha_vigencia = fecha_vigencia from led_docs where doc_id = @p_doc_id
if (@estado = 'I' or @estado = 'V') begin
if (@p_reemplazo > 0) begin
/* Como está aprobando un doc de reemplazo hay que propagar la fecha de vigencia del reemplazo y no la del original */
select @fecha_vigencia = led_docs_aux.fecha_vigencia from led_docs inner join led_docs_aux
on (led_docs.doc_id = led_docs_aux.doc_id and led_docs.doc_version = led_docs_aux.doc_version)
where led_docs.doc_id = @p_doc_id
end
declare @vcuit tinyint, @vcuil tinyint, @vdom tinyint, @tipo_doc int = null, @contratista int, @periodo int, @cliente int
select @vcuit = led_tipos_doc.validar_cuit,
@vcuil = led_tipos_doc.validar_lista_cuil,
@vdom = led_tipos_doc.validar_lista_dominios,
@tipo_doc = led_tipos_doc.tipo_doc,
@contratista = led_docs.contratista,
@periodo = led_docs.periodo,
@cliente = led_docs.cliente
from led_docs inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
where led_docs.doc_id = @p_doc_id
declare @nya varchar(100)
--select @nya = isnull(first_name, '')+' '+isnull(last_name,'') from users where user_id = @p_user_id
select @nya = isnull(aliasname, '') from users where user_id = @p_user_id
declare @log varchar(200) = convert(varchar(10),getdate(),103)+' '+convert(varchar(5),getdate(),14)+': Documento verificado por el usuario '+@nya
update led_docs set estado_doc = 'V',
status_doc = 'V',
compliance_doc = 'V',
fecha_vigencia = @fecha_vigencia,
verificado = GETDATE(),
verificado_por = @p_user_id,
doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log,
aprobacion_parcial = 0,
parcial_actualizado = 0,
reapertura_por_alta = 0
where doc_id = @p_doc_id
--- Trazabilidad
/*
INSERT INTO trazabilidad
(texto, cliente, accion, id_plataforma, contraparte, user_id, created, doc_id)
VALUES
(@log, @cliente, 'APROBACION_TOTAL_IMPERIUM', 'IMPERIUM', @contratista, @p_user_id, GETDATE(), @p_doc_id)
*/
declare @contraparte int = null
declare @contratista_1 int = null
declare @nombre_doc varchar(500)
declare @nombre_contratista varchar(500)
declare @nombre_contratista_1 varchar(500)
select @tipo_doc = led_tipos_doc.tipo_doc,
@nombre_doc = led_tipos_doc.nombre_tipo_doc,
@contratista = led_docs.contratista,
@periodo = led_docs.periodo
from led_docs inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
where led_docs.doc_id = @p_doc_id
select @contratista = led_contratistas.contratista,
@nombre_contratista = p.nombre_persona,
@contratista_1 = lc.contratista,
@nombre_contratista_1 = p1.nombre_persona
from led_contratistas
inner join padrones p on p.id_padron = led_contratistas.id_padron
inner join led_contratistas lc on lc.contratista = led_contratistas.contratista_1
inner join padrones p1 on p1.id_padron = lc.id_padron
where led_contratistas.contratista = @contratista
select @contraparte = contraparte
from ln_contrapartes where cliente = @cliente and id_imperium = @contratista_1
if (@contraparte is not null)
begin
declare @texto varchar(1000) = 'Aprobacion Total del documento' +
' - Contratista: ' + convert(varchar,@contratista_1) +
' ' + @nombre_contratista_1 +
' - Sub-Contratista: ' + convert(varchar,@contratista) +
' ' + @nombre_contratista /*+
' - Período: ' + convert(varchar,@periodo) +
' - Documento: ' + '(' + convert(varchar,@tipo_doc) + ') ' + @nombre_doc +
' - Doc_id: ' + convert(varchar,@p_doc_id) */
exec insertar_trazabilidad
@texto, @cliente, 'DOCUMENTOS','BACK', @contraparte, @p_user_id, @p_doc_id, '73'
end
/* */
-- Verifico si hay que actualizar documentos hijos
declare @secc varchar(1) = NULL
set @secc = iif(@vcuit = 1, 'C', iif(@vcuil = 1, 'E', (iif(@vdom = 1, 'V', NULL))))
if (@secc is not null) begin
update led_docs set estado_doc = 'V',
status_doc = 'V',
compliance_doc = 'V',
fecha_vigencia = @fecha_vigencia,
verificado = GETDATE(),
verificado_por = @p_user_id,
doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log,
aprobacion_parcial = 0,
parcial_actualizado = 0,
reapertura_por_alta = 0
where led_seccion = @secc
and contratista = @contratista
and periodo = @periodo
and doc_id_lista = @tipo_doc
end
if (@p_reemplazo > 0) begin
/* Actualizo el reemplazo */
update led_docs_aux set estado_doc = 'V',
compliance_doc = 'V',
verificado = GETDATE(),
verificado_por = @p_user_id,
doc_log = convert(varchar(max),led_docs_aux.doc_log)+char(13)+char(10)+@log,
aprobacion_parcial = 0,
parcial_actualizado = 0,
reapertura_por_alta = 0
from led_docs_aux
inner join led_docs on (led_docs.doc_id = led_docs_aux.doc_id and led_docs.doc_version = led_docs_aux.doc_version)
where led_docs.doc_id = @p_doc_id
end
end
end
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_Verificar_Documento
-- Add the parameters for the stored procedure here
@p_doc_id bigint = NULL,
@p_reemplazo tinyint = 0,
@p_user_id int = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
if (@p_doc_id > 0 AND @p_user_id > 0) begin
declare @estado varchar(1), @fecha_vigencia datetime
select @estado = estado_doc, @fecha_vigencia = fecha_vigencia from led_docs where doc_id = @p_doc_id
if (@estado = 'I' or @estado = 'V') begin
if (@p_reemplazo > 0) begin
/* Como está aprobando un doc de reemplazo hay que propagar la fecha de vigencia del reemplazo y no la del original */
select @fecha_vigencia = led_docs_aux.fecha_vigencia from led_docs inner join led_docs_aux
on (led_docs.doc_id = led_docs_aux.doc_id and led_docs.doc_version = led_docs_aux.doc_version)
where led_docs.doc_id = @p_doc_id
end
declare @vcuit tinyint, @vcuil tinyint, @vdom tinyint, @tipo_doc int = null, @contratista int, @periodo int, @cliente int
select @vcuit = led_tipos_doc.validar_cuit,
@vcuil = led_tipos_doc.validar_lista_cuil,
@vdom = led_tipos_doc.validar_lista_dominios,
@tipo_doc = led_tipos_doc.tipo_doc,
@contratista = led_docs.contratista,
@periodo = led_docs.periodo,
@cliente = led_docs.cliente
from led_docs inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
where led_docs.doc_id = @p_doc_id
declare @nya varchar(100)
--select @nya = isnull(first_name, '')+' '+isnull(last_name,'') from users where user_id = @p_user_id
select @nya = isnull(aliasname, '') from users where user_id = @p_user_id
declare @log varchar(200) = convert(varchar(10),getdate(),103)+' '+convert(varchar(5),getdate(),14)+': Documento verificado por el usuario '+@nya
update led_docs set estado_doc = 'V',
status_doc = 'V',
compliance_doc = 'V',
fecha_vigencia = @fecha_vigencia,
verificado = GETDATE(),
verificado_por = @p_user_id,
doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log,
aprobacion_parcial = 0,
parcial_actualizado = 0,
reapertura_por_alta = 0
where doc_id = @p_doc_id
--- Trazabilidad
/*
INSERT INTO trazabilidad
(texto, cliente, accion, id_plataforma, contraparte, user_id, created, doc_id)
VALUES
(@log, @cliente, 'APROBACION_TOTAL_IMPERIUM', 'IMPERIUM', @contratista, @p_user_id, GETDATE(), @p_doc_id)
*/
declare @contraparte int = null
declare @contratista_1 int = null
declare @nombre_doc varchar(500)
declare @nombre_contratista varchar(500)
declare @nombre_contratista_1 varchar(500)
select @tipo_doc = led_tipos_doc.tipo_doc,
@nombre_doc = led_tipos_doc.nombre_tipo_doc,
@contratista = led_docs.contratista,
@periodo = led_docs.periodo
from led_docs inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
where led_docs.doc_id = @p_doc_id
select @contratista = led_contratistas.contratista,
@nombre_contratista = p.nombre_persona,
@contratista_1 = lc.contratista,
@nombre_contratista_1 = p1.nombre_persona
from led_contratistas
inner join padrones p on p.id_padron = led_contratistas.id_padron
inner join led_contratistas lc on lc.contratista = led_contratistas.contratista_1
inner join padrones p1 on p1.id_padron = lc.id_padron
where led_contratistas.contratista = @contratista
select @contraparte = contraparte
from ln_contrapartes where cliente = @cliente and id_imperium = @contratista_1
if (@contraparte is not null)
begin
declare @texto varchar(1000) = 'Aprobacion Total del documento' +
' - Contratista: ' + convert(varchar,@contratista_1) +
' ' + @nombre_contratista_1 +
' - Sub-Contratista: ' + convert(varchar,@contratista) +
' ' + @nombre_contratista /*+
' - Período: ' + convert(varchar,@periodo) +
' - Documento: ' + '(' + convert(varchar,@tipo_doc) + ') ' + @nombre_doc +
' - Doc_id: ' + convert(varchar,@p_doc_id) */
exec insertar_trazabilidad
@texto, @cliente, 'DOCUMENTOS','BACK', @contraparte, @p_user_id, @p_doc_id, '73'
end
/* */
-- Verifico si hay que actualizar documentos hijos
declare @secc varchar(1) = NULL
set @secc = iif(@vcuit = 1, 'C', iif(@vcuil = 1, 'E', (iif(@vdom = 1, 'V', NULL))))
if (@secc is not null) begin
update led_docs set estado_doc = 'V',
status_doc = 'V',
compliance_doc = 'V',
fecha_vigencia = @fecha_vigencia,
verificado = GETDATE(),
verificado_por = @p_user_id,
doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log,
aprobacion_parcial = 0,
parcial_actualizado = 0,
reapertura_por_alta = 0
where led_seccion = @secc
and contratista = @contratista
and periodo = @periodo
and doc_id_lista = @tipo_doc
end
if (@p_reemplazo > 0) begin
/* Actualizo el reemplazo */
update led_docs_aux set estado_doc = 'V',
compliance_doc = 'V',
verificado = GETDATE(),
verificado_por = @p_user_id,
doc_log = convert(varchar(max),led_docs_aux.doc_log)+char(13)+char(10)+@log,
aprobacion_parcial = 0,
parcial_actualizado = 0,
reapertura_por_alta = 0
from led_docs_aux
inner join led_docs on (led_docs.doc_id = led_docs_aux.doc_id and led_docs.doc_version = led_docs_aux.doc_version)
where led_docs.doc_id = @p_doc_id
end
end
end
END
GO
Depends On
8Used By
No items found