Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_contratista | int | 4 | |
| @p_tipo_vehiculo | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec Imperium_buscar_tipos_vehiculo_AGB 5723
exec Imperium_buscar_tipos_vehiculo_AGB 3617
select * from led_cliente_vehiculo_tipo_contratista
where cliente = 3920694
and tipo_contratista = 232
select tipo_contratista , cliente from led_contratistas where contratista in (5723,3617)
select tipo_contratista , cliente from led_contratistas where contratista in (5723,3617)
select count(*) from (
select led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = 3920694
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = 5723
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad) modalidades
select * from (
select led_tipos_doc.modalidad
from led_cliente_vehiculo inner join led_tipos_doc
on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = 3920694
and led_cliente_vehiculo.activo = 1
group by led_tipos_doc.modalidad) modalidades
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
inner join led_tipos_doc on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = 3920694
and led_cliente_vehiculo.activo = 1
and led_tipos_doc.modalidad = ''
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
*/
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_buscar_tipos_vehiculo
-- Add the parameters for the stored procedure here
@p_contratista int = NULL,
@p_tipo_vehiculo 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
declare @tipo_contratista int, @cliente int, @tipos_hab tinyint = 0
-- OBTENER TIPOS DE vehiculo HABILITADOS PARA UN CONTRATISTA EN PARTICULAR
-- SELECT @p_contratista AS hhhhh,@p_tipo_vehiculo TV
if (@p_contratista is not null AND @p_tipo_vehiculo is null) begin
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
--- chequeo que no haya tipos exclusivos de vehículo para el tipo de contratista
if not exists (select * from led_cliente_vehiculo_tipo_contratista
where cliente = @cliente
and tipo_contratista = @tipo_contratista) begin
-- modalidad de documentación del contratista
declare @mod_count int, @modalidad_doc varchar(1)
select @mod_count = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad) modalidades
-- modalidad de documentación de los vehiculos
declare @mod_count_veh int, @modalidad_doc_veh varchar(1)
select @mod_count_veh = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_vehiculo inner join led_tipos_doc
on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_tipos_doc.modalidad) modalidades
-- SELECT @mod_count AS mod_count,@mod_count_veh AS mod_count_veh,@modalidad_doc AS modalidad_doc,@modalidad_doc_veh AS modalidad_doc_veh
if (@mod_count = 1 AND @mod_count_veh = 1) begin
-- unica modalidad Vencida o adelantada tanto contratista como vehículos
select @modalidad_doc = led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad
select @modalidad_doc_veh = led_tipos_doc.modalidad
from led_cliente_vehiculo inner join led_tipos_doc
on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_tipos_doc.modalidad
if (@modalidad_doc = @modalidad_doc_veh) begin
-- misma modalidad, todos los tipos. Si son diferentes la modalidades no puede haber tipos de vehículo habilitados
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end
end else begin
-- puede haber más de 1 modalidad de documentación en contratista y/o tipo de vehiculo
-- SELECT @modalidad_doc AS hhhhh
-- exec Imperium_buscar_tipos_vehiculo_AGB 5723
-- select 'ASDASDAS'
if (@mod_count = 1) begin
-- si hay única en contratista, sólo vehículos con la misma modalidad
if (@modalidad_doc is null)
begin
set @modalidad_doc = 'V'
end
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
inner join led_tipos_doc on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
and led_tipos_doc.modalidad = @modalidad_doc
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end else begin
-- más de 1 modalidad en contratista, todos los tipos de vehículo
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end
end
end else begin
--- tipos de vehículo exclusivo para tipo de contratista
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
inner join led_cliente_vehiculo_tipo_contratista on (led_cliente_vehiculo.cliente = led_cliente_vehiculo_tipo_contratista.cliente
and led_cliente_vehiculo.tipo_vehiculo = led_cliente_vehiculo_tipo_contratista.tipo_vehiculo
and led_cliente_vehiculo_tipo_contratista.tipo_contratista = @tipo_contratista)
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end
end
-- OBTENER TIPOS DE ALTA HABILITADO PARA UN CONTRATISTA Y TIPO DE vehiculo
if (@p_contratista is not null AND @p_tipo_vehiculo is not null) begin
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
select led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
from led_tipos_alta inner join led_cliente_vehiculo
on led_tipos_alta.tipo_alta = led_cliente_vehiculo.tipo_alta
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.tipo_vehiculo = @p_tipo_vehiculo
and led_cliente_vehiculo.activo = 1
group by led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
order by led_tipos_alta.nombre_tipo_alta
end
END
GO
GO
/*
exec Imperium_buscar_tipos_vehiculo_AGB 5723
exec Imperium_buscar_tipos_vehiculo_AGB 3617
select * from led_cliente_vehiculo_tipo_contratista
where cliente = 3920694
and tipo_contratista = 232
select tipo_contratista , cliente from led_contratistas where contratista in (5723,3617)
select tipo_contratista , cliente from led_contratistas where contratista in (5723,3617)
select count(*) from (
select led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = 3920694
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = 5723
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad) modalidades
select * from (
select led_tipos_doc.modalidad
from led_cliente_vehiculo inner join led_tipos_doc
on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = 3920694
and led_cliente_vehiculo.activo = 1
group by led_tipos_doc.modalidad) modalidades
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
inner join led_tipos_doc on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = 3920694
and led_cliente_vehiculo.activo = 1
and led_tipos_doc.modalidad = ''
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
*/
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_buscar_tipos_vehiculo
-- Add the parameters for the stored procedure here
@p_contratista int = NULL,
@p_tipo_vehiculo 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
declare @tipo_contratista int, @cliente int, @tipos_hab tinyint = 0
-- OBTENER TIPOS DE vehiculo HABILITADOS PARA UN CONTRATISTA EN PARTICULAR
-- SELECT @p_contratista AS hhhhh,@p_tipo_vehiculo TV
if (@p_contratista is not null AND @p_tipo_vehiculo is null) begin
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
--- chequeo que no haya tipos exclusivos de vehículo para el tipo de contratista
if not exists (select * from led_cliente_vehiculo_tipo_contratista
where cliente = @cliente
and tipo_contratista = @tipo_contratista) begin
-- modalidad de documentación del contratista
declare @mod_count int, @modalidad_doc varchar(1)
select @mod_count = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad) modalidades
-- modalidad de documentación de los vehiculos
declare @mod_count_veh int, @modalidad_doc_veh varchar(1)
select @mod_count_veh = count(*) from (
select led_tipos_doc.modalidad
from led_cliente_vehiculo inner join led_tipos_doc
on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_tipos_doc.modalidad) modalidades
-- SELECT @mod_count AS mod_count,@mod_count_veh AS mod_count_veh,@modalidad_doc AS modalidad_doc,@modalidad_doc_veh AS modalidad_doc_veh
if (@mod_count = 1 AND @mod_count_veh = 1) begin
-- unica modalidad Vencida o adelantada tanto contratista como vehículos
select @modalidad_doc = led_tipos_doc.modalidad
from led_cliente_contratista inner join led_tipos_doc
on led_cliente_contratista.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_contratista.cliente = @cliente
and led_cliente_contratista.tipo_contratista IN
(SELECT tipo_contratista
FROM led_contratista_multi
WHERE contratista = @p_contratista
AND activo = 1
GROUP BY tipo_contratista)
and led_cliente_contratista.activo = 1
group by led_tipos_doc.modalidad
select @modalidad_doc_veh = led_tipos_doc.modalidad
from led_cliente_vehiculo inner join led_tipos_doc
on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_tipos_doc.modalidad
if (@modalidad_doc = @modalidad_doc_veh) begin
-- misma modalidad, todos los tipos. Si son diferentes la modalidades no puede haber tipos de vehículo habilitados
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end
end else begin
-- puede haber más de 1 modalidad de documentación en contratista y/o tipo de vehiculo
-- SELECT @modalidad_doc AS hhhhh
-- exec Imperium_buscar_tipos_vehiculo_AGB 5723
-- select 'ASDASDAS'
if (@mod_count = 1) begin
-- si hay única en contratista, sólo vehículos con la misma modalidad
if (@modalidad_doc is null)
begin
set @modalidad_doc = 'V'
end
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
inner join led_tipos_doc on led_cliente_vehiculo.tipo_doc = led_tipos_doc.tipo_doc
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
and led_tipos_doc.modalidad = @modalidad_doc
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end else begin
-- más de 1 modalidad en contratista, todos los tipos de vehículo
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end
end
end else begin
--- tipos de vehículo exclusivo para tipo de contratista
select led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
from led_cliente_vehiculo
inner join clientes on led_cliente_vehiculo.cliente = clientes.cliente
inner join led_tipos_vehiculo on led_cliente_vehiculo.tipo_vehiculo = led_tipos_vehiculo.tipo_vehiculo
inner join led_cliente_vehiculo_tipo_contratista on (led_cliente_vehiculo.cliente = led_cliente_vehiculo_tipo_contratista.cliente
and led_cliente_vehiculo.tipo_vehiculo = led_cliente_vehiculo_tipo_contratista.tipo_vehiculo
and led_cliente_vehiculo_tipo_contratista.tipo_contratista = @tipo_contratista)
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.activo = 1
group by led_cliente_vehiculo.cliente, led_cliente_vehiculo.tipo_vehiculo,
clientes.nombre_cliente, led_tipos_vehiculo.nombre_tipo_vehiculo
order by led_tipos_vehiculo.nombre_tipo_vehiculo
end
end
-- OBTENER TIPOS DE ALTA HABILITADO PARA UN CONTRATISTA Y TIPO DE vehiculo
if (@p_contratista is not null AND @p_tipo_vehiculo is not null) begin
select @tipo_contratista = tipo_contratista , @cliente = cliente
from led_contratistas where contratista = @p_contratista
select led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
from led_tipos_alta inner join led_cliente_vehiculo
on led_tipos_alta.tipo_alta = led_cliente_vehiculo.tipo_alta
where led_cliente_vehiculo.cliente = @cliente
and led_cliente_vehiculo.tipo_vehiculo = @p_tipo_vehiculo
and led_cliente_vehiculo.activo = 1
group by led_tipos_alta.tipo_alta, led_tipos_alta.nombre_tipo_alta
order by led_tipos_alta.nombre_tipo_alta
end
END
GO
Depends On
9Used By
No items found