/****** Object: StoredProcedure [dbo].[TITULAR_INFRACTOR] Script Date: 12/11/2012 13:16:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[TITULAR_INFRACTOR] as
declare @cont_exp int
declare @bol varchar (15)
declare @boletin varchar (15)
declare @MAX_exp varchar (15)
declare @MIN_exp varchar (15)
declare @expediente varchar (15)
declare @articulo_multas varchar (10)
declare @fecha datetime2(7)
declare @fecha_grabacion datetime2(7)
declare @fecha_modif datetime2(7)
declare @tipoVehiculo varchar (50)
declare @matriculaVehiculo varchar(50)
declare @marcaVehiculo varchar(50)
declare @modeloVehiculo varchar(50)
declare @colorVehiculo varchar(20)
declare @codigoVia_MIN int
declare @codigoVia_MAX int
declare @codigoVia int
declare @tipoVia varchar (10)
declare @tipoVia_MIN varchar (10)
declare @tipoVia_MAX varchar (10)
declare @nombreVia varchar (150)
declare @nombreVia_MIN varchar (150)
declare @nombreVia_MAX varchar (150)
declare @numerovia varchar(5)
declare @numerovia_MIN varchar(5)
declare @numerovia_MAX varchar(5)
declare @escaleravia varchar (2)
declare @escaleravia_MIN varchar (2)
declare @escaleravia_MAX varchar (2)
declare @bloquevia varchar (4)
declare @bloquevia_MIN varchar (4)
declare @bloquevia_MAX varchar (4)
declare @plantavia varchar (3)
declare @plantavia_MIN varchar (3)
declare @plantavia_MAX varchar (3)
declare @puertavia varchar (4)
declare @puertavia_MIN varchar (4)
declare @puertavia_MAX varchar (4)
declare @bisVia varchar(1)
declare @bisVia_MIN varchar(1)
declare @bisVia_MAX varchar(1)
declare @codigopos varchar(5)
declare @codigopos_MIN varchar(5)
declare @codigopos_MAX varchar(5)
declare @codigopro varchar(2)
declare @codigopro_MIN varchar(2)
declare @codigopro_MAX varchar(2)
declare @provincia varchar(200)
declare @provincia_MAX varchar(200)
declare @provincia_MIN varchar(200)
declare @municipio varchar (5)
declare @municipio_MIN varchar (5)
declare @municipio_MAX varchar (5)
declare @kmVia int
declare @kmVia_MIN int
declare @kmVia_MAX int
declare @tasaAlcoholMedida decimal(3,2)
declare @tasaAlcoholRectificada decimal(3,2)
declare @velocidadLimite decimal (5,2)
declare @velocidadMedida decimal(5,2)
declare @velocidadRectificada decimal(5,2)
declare @importe decimal(6,2)
declare @bonificacion int
declare @importeBonificado decimal (6,2)
declare @puntosADetraer int
declare @refPuntosADetraer varchar(4)
declare @observaciones varchar(255)
declare @ok varchar (1)
declare @exp_expediente varchar (15)
declare @entregado_agente varchar(10)
declare @notificado varchar (1)
declare @nif varchar (9)
declare @nif_MIN varchar (9)
declare @nif_MAX varchar (9)
declare @codigomun varchar(5)
declare @codigomun_MIN varchar(5)
declare @codigomun_MAX varchar(5)
declare @pais varchar (150)
declare @pais_MIN varchar (150)
declare @pais_MAX varchar (150)
declare @puntos int
declare @puntos_MIN int
declare @puntos_MAX int
declare @suspension varchar (1)
declare @suspension_MIN varchar (1)
declare @suspension_MAX varchar (1)
declare @reincidencias int
declare @reincidencias_MIN int
declare @reincidencias_MAX int
DECLARE @tipoDocId_fk VARCHAR (3)
DECLARE @tipoDocId_fk_MIN VARCHAR (3)
DECLARE @tipoDocId_fk_MAX VARCHAR (3)
declare @boletin_id bigint
set @cont_exp =0
DECLARE BOLETINES CURSOR FOR SELECT dbo.multasSQLNombre.boletin_id, dbo.multasSQLNombre.expediente, dbo.multasSQLNombre.boletin, dbo.multasSQLNombre.nif, dbo.multasSQLNombre.codigovia,
dbo.multasSQLNombre.tipovia, dbo.multasSQLNombre.nombrevia, dbo.multasSQLNombre.numerovia, dbo.multasSQLNombre.bisvia, dbo.multasSQLNombre.bloquevia,
dbo.multasSQLNombre.escaleravia, dbo.multasSQLNombre.plantavia, dbo.multasSQLNombre.puertavia,
dbo.multasSQLNombre.codigopos, dbo.multasSQLNombre.codigopro, dbo.multasSQLNombre.provincia, dbo.multasSQLNombre.codigomun,
dbo.multasSQLNombre.municipio, dbo.multasSQLNombre.pais, dbo.multasSQLNombre.puntos, dbo.multasSQLNombre.suspension, dbo.multasSQLNombre.reincidencias, dbo.multasSQLNombre.tipoDocId_fk
FROM dbo.multasSQLNombre WHERE dbo.multasSQLNombre.boletin IN ('000070','000290','00018939')
OPEN BOLETINES;
FETCH NEXT FROM BOLETINES into @boletin_id,@expediente, @boletin, @nif, @codigovia, @tipovia, @nombrevia, @numerovia, @bisvia, @bloquevia,
@escaleravia, @plantavia, @puertavia, @codigopos, @codigopro, @provincia,
@codigomun, @municipio, @pais,@puntos,@suspension,@reincidencias, @tipoDocId_fk
-- Perform the first fetch.
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
-- This is executed as long as the previous fetch succeeds.
if @suspension='S'set @suspension = 1 else set @suspension = 0
Set @cont_exp = (SELECT COUNT (*) FROM dbo.multasSQLNombre WHERE boletin = @boletin)
if @cont_exp = 1
UPDATE [multas].[mul_boletin]
SET [titularNumDoc] = @nif
,titularTipoDocId_fk =@tipoDocId_fk
,[titularCodigoVia] = @codigoVia
,[titularTipoVia] = @tipoVia
,[titularNombreVia] = @nombreVia
,[titularNumVia] = @numerovia
,[titularBisVia] = @bisVia
,[titularBloqueVia] = @bloquevia
,[titularEscaleraVia] = @escaleravia
,[titularPlantaVia] = @plantavia
,[titularPuertaVia] = @puertavia
,[titularCodigoPostal] = @codigopos
,[titularCodProvincia] = @codigopro
,[titularProvincia] = @provincia
,[titularCodMunicipio] = @codigomun
,[titularMunicipio] = @municipio
,[titularLocalidad] = @municipio
,[titularPais] = @pais
where [multas].[mul_boletin].boletin=@boletin
if @cont_exp > 1
BEGIN
set @MAX_exp = (select MAX(expediente) from dbo.multasSQLNombre where boletin = @boletin)
set @MIN_exp = (select MIN(expediente) from dbo.multasSQLNombre where boletin = @boletin)
set @nif_MIN = (select nif from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @nif_MAX = (select nif from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @tipoDocId_fk_MIN = (select tipoDocId_fk from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @tipoDocId_fk_MAX= (select tipoDocId_fk from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigoVia_MIN = (select codigoVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @codigoVia_MAX= (select codigoVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @tipoVia_MIN = (select tipoVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @tipoVia_MAX= (select tipoVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @nombreVia_MIN = (select nombreVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @nombreVia_MAX= (select nombreVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @numerovia_MIN = (select numerovia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @numerovia_MAX= (select numerovia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @bisVia_MAX= (select bisVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @bisVia_MIN = (select bisVia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @bloquevia_MAX= (select bloquevia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @bloquevia_MIN = (select bloquevia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MIN_exp )
set @escaleravia_MAX= (select escaleravia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @escaleravia_MIN= (select escaleravia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @plantavia_MAX= (select plantavia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @plantavia_MIN= (select plantavia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @puertavia_MAX= (select puertavia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @puertavia_MIN= (select puertavia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigopos_MAX= (select codigopos from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigopos_MIN= (select codigopos from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigopro_MAX= (select codigopro from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigopro_MIN= (select codigopro from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @provincia_MAX= (select provincia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @provincia_MIN= (select provincia from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigomun_MAX= (select codigomun from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @codigomun_MIN= (select codigomun from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @municipio_MAX= (select municipio from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @municipio_MIN= (select municipio from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @pais_MAX= (select pais from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @pais_MIN= (select pais from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @reincidencias_MAX= (select reincidencias from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @reincidencias_MIN= (select reincidencias from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @puntos_MAX= (select puntos from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @puntos_MIN= (select puntos from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @suspension_MAX= (select suspension from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
set @suspension_MIN= (select suspension from dbo.multasSQLNombre where boletin =@boletin and expediente=@MAX_exp )
if @suspension='S'set @suspension_MAX = 1 else set @suspension_MAX = 0
if @suspension='S'set @suspension_MIN = 1 else set @suspension_MIN = 0
UPDATE [multas].[mul_boletin]
SET [titularNumDoc] = @nif_MIN
,titularTipoDocId_fk= @tipoDocId_fk_MIN
,[titularCodigoVia] = @codigoVia_MIN
,[titularTipoVia] = @tipoVia_MIN
,[titularNombreVia] = @nombreVia_MIN
,[titularNumVia] = @numerovia_MIN
,[titularBisVia] = @bisVia_MIN
,[titularBloqueVia] = @bloquevia_MIN
,[titularEscaleraVia] = @escaleravia_MIN
,[titularPlantaVia] = @plantavia_MIN
,[titularPuertaVia] = @puertavia_MIN
,[titularCodigoPostal] = @codigopos_MIN
,[titularCodProvincia] = @codigopro_MIN
,[titularProvincia] = @provincia_MIN
,[titularCodMunicipio] = @codigomun_MIN
,[titularMunicipio] = @municipio_MIN
,[titularLocalidad] = @municipio_MIN
,[titularPais] = @pais_MIN
where [multas].[mul_boletin].boletin=@boletin
UPDATE [multas].[mul_boletin]
SET [infractorNumDoc] = @nif_MAX
,infractorTipoDocId_fk=@tipoDocId_fk_MAX
,[infractorCodigoVia] = @codigoVia_MAX
,[infractorTipoVia] = @tipoVia_MAX
,[infractorNombreVia] = @nombreVia_MAX
,[infractorNumVia] = @numerovia_MAX
,[infractorBisVia] = @bisVia_MAX
,[infractorBloqueVia] = @bloquevia_MAX
,[infractorEscaleraVia] = @escaleravia_MAX
,[infractorPlantaVia] = @plantavia_MAX
,[infractorPuertaVia] = @puertavia_MAX
,[infractorCodigoPostal] = @codigopos_MAX
,[infractorCodProvincia] = @codigopro_MAX
,[infractorProvincia] = @provincia_MAX
,[infractorCodMunicipio] = @codigomun_MAX
,[infractorMunicipio] = @municipio_MAX
,[infractorLocalidad] = @municipio_MAX
,[infractorPais] = @pais_MAX
,[infractorReincidencias] = @reincidencias_MAX
,[infractorPuntos] = @puntos_MAX
,[infractorSuspension] = @suspension_MAX
where [multas].[mul_boletin].boletin=@boletin
UPDATE [multas].[mul_expediente]
SET [infractorNumDoc] = @nif_MAX
,TipoDocId_fk=@tipoDocId_fk_MAX
,[infractorCodigoVia] = @codigoVia_MAX
,[infractorTipoVia] = @tipoVia_MAX
,[infractorNombreVia] = @nombreVia_MAX
,[infractorNumVia] = @numerovia_MAX
,[infractorBisVia] = @bisVia_MAX
,[infractorBloqueVia] = @bloquevia_MAX
,[infractorEscaleraVia] = @escaleravia_MAX
,[infractorPlantaVia] = @plantavia_MAX
,[infractorPuertaVia] = @puertavia_MAX
,[infractorCodigoPostal] = @codigopos_MAX
,[infractorCodProvincia] = @codigopro_MAX
,[infractorProvincia] = @provincia_MAX
,[infractorCodMunicipio] = @codigomun_MAX
,[infractorMunicipio] = @municipio_MAX
,[infractorLocalidad] = @municipio_MAX
,[infractorPais] = @pais_MAX
,[infractorReincidencias] = @reincidencias_MAX
,[infractorPuntos] = @puntos_MAX
,[infractorSuspension] = @suspension_MAX
where multas.mul_expediente.boletin_fk= @boletin_id
END
FETCH NEXT FROM BOLETINES into @boletin_id,@expediente, @boletin, @nif, @codigovia, @tipovia, @nombrevia, @numerovia, @bisvia, @bloquevia,
@escaleravia, @plantavia, @puertavia, @codigopos, @codigopro, @provincia,
@codigomun, @municipio, @pais,@puntos,@suspension,@reincidencias, @tipoDocId_fk
END
CLOSE BOLETINES;
DEALLOCATE BOLETINES;