		BEGIN
			SELECT  GT.IdGestion
				   ,GT.Descripcion
			
			FROM [dbo].[Gestiones] as GT

			WHERE GT.IdGestion = @IdGestion
		END

	IF @Opcion = 3 
		BEGIN
			SELECT  GT.IdGestion
				   ,GT.Descripcion
			
			FROM [dbo].[Gestiones] as GT

			WHERE GT.IdGestion >= 0 and GT.IdGestion <= 3
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetHist_CotArticulos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2024
-- Description:	Buscar Historico Articulos por Cotizaicon
-- =============================================
CREATE PROCEDURE [dbo].[spGetHist_CotArticulos]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdHist_CotArticulo int = null,
	@IdCotizacion int = null,
	@IdArticulo int = null,
	@IdSolicitud Int = null,
	@CodVerificacion 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT AR.IdHist_CotArticulo
				  ,AR.IdCotizacion
				  ,AR.IdArticulo
				  ,AR.Nombre
				  ,AR.Descripcion
				  ,AR.Cantidad
				  ,AR.IdSolicitud
				  ,AR.Ctrl_Empaque
				  ,AR.Material
				  ,AR.CodVerificacion

			FROM [dbo].[Hist_Cotizacion_Articulos] as AR

			WHERE AR.CodVerificacion = @CodVerificacion
	  END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			SELECT AR.IdHist_CotArticulo
					,AR.IdCotizacion
					,AR.IdArticulo
					,AR.Nombre
					,AR.Descripcion
					,AR.Cantidad
					,AR.IdSolicitud
					,AR.Ctrl_Empaque
					,AR.Material
					,AR.CodVerificacion

			FROM [dbo].[Hist_Cotizacion_Articulos] as AR
			
			WHERE AR.IdCotizacion between ISNULL(@IdCotizacion,AR.IdCotizacion) and ISNULL(@IdCotizacion,AR.IdCotizacion) and 
			  	  AR.IdSolicitud  between ISNULL(@IdSolicitud,AR.IdSolicitud) and ISNULL(@IdSolicitud,AR.IdSolicitud) and
			  	  AR.IdArticulo   between ISNULL(@IdArticulo,AR.IdArticulo) and ISNULL(@IdArticulo,AR.IdArticulo) and
				  AR.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 3 -- Consultar articulos para empacar
		BEGIN
			SELECT AR.IdHist_CotArticulo
				  ,AR.IdCotizacion
				  ,AR.IdArticulo
				  ,AR.Nombre
				  ,AR.Descripcion
				  ,AR.Cantidad
				  ,AR.IdSolicitud
				  ,AR.Ctrl_Empaque
				  ,AR.Material
				  ,AR.CodVerificacion

			FROM [dbo].[Hist_Cotizacion_Articulos] as AR
					INNER JOIN [dbo].[Hist_Cotizacion_MaterialesArticulo] as MA ON MA.IdHist_CotArticulo = AR.IdHist_CotArticulo

			WHERE MA.IdCotizacion    = @IdCotizacion and
				  AR.CodVerificacion = @CodVerificacion
			  
		END

	IF @Opcion = 4 -- Consultar por Cotizacion y Articulo
		BEGIN
			SELECT AR.IdHist_CotArticulo
				  ,AR.IdCotizacion
				  ,AR.IdArticulo
				  ,AR.Nombre
				  ,AR.Descripcion
				  ,AR.Cantidad
				  ,AR.IdSolicitud
				  ,AR.Ctrl_Empaque
				  ,AR.Material
				  ,AR.CodVerificacion

			FROM [dbo].[Hist_Cotizacion_Articulos] as AR
			
			WHERE AR.IdCotizacion    = @IdCotizacion and
				  AR.IdArticulo      = @IdArticulo and
				  AR.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 5 -- Consultar por Cotizacion, Articulo y Solicitud
		BEGIN
			SELECT AR.IdHist_CotArticulo
				  ,AR.IdCotizacion
				  ,AR.IdArticulo
				  ,AR.Nombre
				  ,AR.Descripcion
				  ,AR.Cantidad
				  ,AR.IdSolicitud
				  ,AR.Ctrl_Empaque
				  ,AR.Material
				  ,AR.CodVerificacion

			FROM [dbo].[Hist_Cotizacion_Articulos] as AR
			
			WHERE AR.IdCotizacion    = @IdCotizacion and
				  AR.IdArticulo      = @IdArticulo and
				  AR.IdSolicitud     = @IdSolicitud and
				  AR.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 6 -- Consultar articulos para empacar sin repetir
		BEGIN
			SELECT DISTINCT AR.IdArticulo
				  ,AR.IdHist_CotArticulo
				  ,AR.IdCotizacion
				  ,AR.Nombre
				  ,AR.Descripcion
				  ,AR.Cantidad
				  ,AR.IdSolicitud
				  ,AR.Ctrl_Empaque
				  ,AR.Material
				  ,AR.CodVerificacion

			FROM  [dbo].[Hist_Cotizacion_Articulos] as AR
					INNER JOIN [dbo].[Hist_Cotizacion_MaterialesArticulo] as MA ON MA.IdHist_CotArticulo = AR.IdHist_CotArticulo

			WHERE MA.IdCotizacion    = @IdCotizacion and
				  AR.CodVerificacion = @CodVerificacion
			  
		END

	IF @Opcion = 7 -- Consultar por Cotizacion
		BEGIN
			SELECT AR.IdHist_CotArticulo
				  ,AR.IdCotizacion
				  ,AR.IdArticulo
				  ,AR.Nombre
				  ,AR.Descripcion
				  ,AR.Cantidad
				  ,AR.IdSolicitud
				  ,AR.Ctrl_Empaque
				  ,AR.Material
				  ,AR.CodVerificacion

			FROM [dbo].[Hist_Cotizacion_Articulos] as AR
			
			WHERE AR.IdCotizacion    = @IdCotizacion and
				  AR.IdSolicitud     = @IdSolicitud and
				  AR.CodVerificacion = @CodVerificacion and
				  AR.Ctrl_Empaque    = 0 
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetHist_CotBodegas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2024
-- Description:	Buscar Historico Cotizacion Bodegas
-- =============================================
CREATE PROCEDURE [dbo].[spGetHist_CotBodegas] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdHist_CotBodega int = null,
	@IdCotizacion int = null,
	@IdSolicitud int = null,
	@IdBodega int = null,
	@IdSucursal int = null,
	@CodVerificacion int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementB.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
		BEGIN 
			SELECT BDG.IdHist_CotBodega
				   ,BDG.IdCotizacion
				   ,BDG.IdBodega
				   ,BDG.IdSucursal
				   ,BDG.Nombre 
				   ,BDG.Capacidad 
				   ,BDG.Ocupacion
				   ,BDG.Disponible
				   ,BDG.Largo 
				   ,BDG.Ancho 
				   ,BDG.Alto
				   ,BDG.Estado 
				   ,BDG.CodSyscom
				   ,BDG.ValorBodega
				   ,BDG.CodVerificacion
				   ,CASE BDG.Estado
						WHEN '1' THEN 'ACTIVA'
						WHEN '2' THEN 'RESEVADA'
						WHEN '3' THEN 'OCUPADA'
						WHEN '4' THEN 'INACTIVA'
						ELSE '0' 
					END AS EstadoBodega
				   ,SUC.Nombre as NombreSucursal
		
			FROM [dbo].[Hist_Cotizacion_Bodegas] as BDG,
				 [dbo].[Sucursales] as SUC

			WHERE BDG.IdSucursal      = SUC.IdSucursal and
				  BDG.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 2 --Consulta por cotizacion-Bodega
		BEGIN 
			SELECT BDG.IdHist_CotBodega
				   ,BDG.IdCotizacion
				   ,BDG.IdBodega
				   ,BDG.IdSucursal
				   ,BDG.Nombre 
				   ,BDG.Capacidad 
				   ,BDG.Ocupacion
				   ,BDG.Disponible
				   ,BDG.Largo 
				   ,BDG.Ancho 
				   ,BDG.Alto
				   ,BDG.Estado 
				   ,BDG.CodSyscom 
				   ,BDG.ValorBodega
				   ,BDG.CodVerificacion
				   ,CASE BDG.Estado
						WHEN '1' THEN 'ACTIVA'
						WHEN '2' THEN 'RESEVADA'
						WHEN '3' THEN 'OCUPADA'
						WHEN '4' THEN 'INACTIVA'
						ELSE '0' 
					END AS EstadoBodega
				   ,SUC.Nombre as NombreSucursal

			 FROM [dbo].[Hist_Cotizacion_Bodegas] as BDG,
				  [dbo].[Sucursales] as SUC

			 WHERE BDG.IdHist_CotBodega = @IdHist_CotBodega and
				   BDG.IdSucursal       = SUC.IdSucursal and
				   BDG.CodVerificacion  = @CodVerificacion
		END

	IF @Opcion = 3 --Consulta por Cotizacion y Bodega
		BEGIN 
			SELECT BDG.IdHist_CotBodega
				   ,BDG.IdCotizacion
				   ,BDG.IdBodega
				   ,BDG.IdSucursal
				   ,BDG.Nombre 
				   ,BDG.Capacidad 
				   ,BDG.Ocupacion
				   ,BDG.Disponible
				   ,BDG.Largo 
				   ,BDG.Ancho 
				   ,BDG.Alto
				   ,BDG.Estado  
				   ,BDG.CodSyscom
				   ,BDG.ValorBodega
				   ,BDG.CodVerificacion
				   ,CASE BDG.Estado
						WHEN '1' THEN 'ACTIVA'
						WHEN '2' THEN 'RESEVADA'
						WHEN '3' THEN 'OCUPADA'
						WHEN '4' THEN 'INACTIVA'
						ELSE '0' 
					END AS EstadoBodega
				   ,SUC.Nombre as NombreSucursal

			FROM [dbo].[Hist_Cotizacion_Bodegas] as BDG,
				 [dbo].[Sucursales] as SUC

			WHERE BDG.IdCotizacion    = @IdCotizacion AND
				  BDG.IdBodega        = @IdBodega AND
				  BDG.IdSucursal      = SUC.IdSucursal and
				  BDG.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 4 --Consulta por Cotizacion y Solicitud
		BEGIN 
			SELECT BDG.IdHist_CotBodega
				   ,BDG.IdCotizacion
				   ,BDG.IdBodega
				   ,BDG.IdSucursal
				   ,BDG.Nombre 
				   ,BDG.Capacidad 
				   ,BDG.Ocupacion
				   ,BDG.Disponible
				   ,BDG.Largo 
				   ,BDG.Ancho 
				   ,BDG.Alto
				   ,BDG.Estado  
				   ,BDG.CodSyscom
				   ,BDG.ValorBodega
				   ,BDG.CodVerificacion
				   ,CASE BDG.Estado
						WHEN '1' THEN 'ACTIVA'
						WHEN '2' THEN 'RESEVADA'
						WHEN '3' THEN 'OCUPADA'
						WHEN '4' THEN 'INACTIVA'
						ELSE '0' 
					END AS EstadoBodega
				   ,SUC.Nombre as NombreSucursal

			FROM [dbo].[Hist_Cotizacion_Bodegas] as BDG
					INNER JOIN [dbo].[Sucursales] as SUC ON  BDG.IdSucursal   = SUC.IdSucursal

			WHERE BDG.IdCotizacion between ISNULL(@IdCotizacion,BDG.IdCotizacion) and ISNULL(@IdCotizacion,BDG.IdCotizacion) and 
				  BDG.IdSolicitud  between ISNULL(@IdSolicitud,BDG.IdSolicitud) and ISNULL(@IdSolicitud,BDG.IdSolicitud) and
				  BDG.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 5 --Totales por almacenamiento
		BEGIN 
			SELECT BDG.IdCotizacion, sum(BDG.ValorBodega) as ValorTotal,  BDG.IdSolicitud
			FROM [dbo].[Hist_Cotizacion_Bodegas] as BDG
			WHERE BDG.IdCotizacion = @IdCotizacion
			GROUP BY BDG.IdCotizacion, BDG.IdSolicitud
		END

	IF @Opcion = 6 --Recalcular Totales por almacenamiento
		BEGIN 
			DECLARE 
			@ValorTotal numeric(18,0) = null,
			@ValorIva numeric(18,0) = null,
			@IvaTotal numeric(18,0) = null,
			@CttTotal numeric(18,0) = null
			
			SELECT @ValorTotal = sum(BDG.ValorBodega), @ValorIva = ((sum(BDG.ValorBodega))*0.19)
			FROM [dbo].[Hist_Cotizacion_Bodegas] as BDG
			WHERE BDG.IdCotizacion = @IdCotizacion

			SELECT @IvaTotal = ((sum(CTT.ValorContrato + CTT.ValorPoliza))*0.19)
			FROM [dbo].[Bodegas_Contratos] as CTT
			WHERE CTT.IdCotizacion = @IdCotizacion
			
			UPDATE [dbo].[Cotizacion_Conceptos] SET Valor_Negociado = @ValorTotal, Valor_Iva = @ValorIva WHERE IdCotizacion = @IdCotizacion and IdServicio = 17
			UPDATE [dbo].[Bodegas_Contratos] SET ValorContrato   = @ValorTotal WHERE IdCotizacion = @IdCotizacion
			
			SELECT @IvaTotal = ((sum(CTT.ValorContrato + CTT.ValorPoliza))*0.19), @CttTotal =  sum(CTT.ValorContrato + CTT.ValorPoliza + ((CTT.ValorContrato + CTT.ValorPoliza)*0.19))
			FROM [dbo].[Bodegas_Contratos] as CTT
			WHERE CTT.IdCotizacion = @IdCotizacion

			UPDATE [dbo].[Bodegas_Contratos] SET ValorIVA = @IvaTotal, ValorTotal = @CttTotal WHERE IdCotizacion = @IdCotizacion
		END
END


GO
/****** Object:  StoredProcedure [dbo].[spGetHist_CotConceptos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2024
-- Description:	Buscar Historico Conceptos por Cotizaicon
-- =============================================
CREATE PROCEDURE [dbo].[spGetHist_CotConceptos]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdHist_ServicioCot int = null,
	@IdCotizacion int = null,
	@IdServicio int = null,
	@IdSolicitud int = null,
	@CodVerificacion 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT CT.IdHist_ServicioCot
				  ,CT.IdCotizacion
				  ,CT.IdServicio
				  ,CT.CodSyscom
				  ,CT.Nombre
				  ,CT.Descripcion
				  ,CT.Valor_Servicio
				  ,CT.Valor_Negociado
				  ,CT.IdAsesor
				  ,CT.Valor_Iva
				  ,CT.CodVerificacion
				  ,Ase.Identificacion
				  ,CS.IdConceptoPDF
				  ,CS.RubroConcepto
				  ,CT.Valor_Negociado + CT.Valor_Iva as Total

			FROM [dbo].[Hist_Cotizacion_Conceptos] as CT,
				 [dbo].[Usuarios] as Ase,
				 [dbo].[Concepto_Servicios] as CS
			
			WHERE CT.IdAsesor  = Ase.IdUsuario AND
				  CT.CodSyscom = CS.CodSyscom 
	  END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			SELECT CT.IdHist_ServicioCot
				  ,CT.IdCotizacion
				  ,CT.IdServicio
				  ,CT.CodSyscom
				  ,CT.Nombre
				  ,CT.Descripcion
				  ,CT.Valor_Servicio
				  ,CT.Valor_Negociado
				  ,CT.IdAsesor
				  ,CT.Valor_Iva
				  ,CT.CodVerificacion
				  ,Ase.Identificacion
				  ,CS.IdConceptoPDF
				  ,CS.RubroConcepto
				  ,CS.ValorIva as TarifaIva
				  ,CT.Valor_Negociado + CT.Valor_Iva as Total

			FROM [dbo].[Hist_Cotizacion_Conceptos] as CT
					INNER JOIN [dbo].[Usuarios] as Ase ON CT.IdAsesor = Ase.IdUsuario
					INNER JOIN [dbo].[Concepto_Servicios] as CS ON CT.CodSyscom = CS.CodSyscom

			WHERE CT.IdCotizacion  between ISNULL(@IdCotizacion,CT.IdCotizacion) and ISNULL(@IdCotizacion,CT.IdCotizacion) and 
					CT.IdSolicitud between ISNULL(@IdSolicitud,CT.IdSolicitud) and ISNULL(@IdSolicitud,CT.IdSolicitud) and
					CT.CodVerificacion = @CodVerificacion
						 
		END
		
	IF @Opcion = 3  -- Consula todos los Tipo para Contratos Bodega
		BEGIN
			SELECT CT.IdHist_ServicioCot
				  ,CT.IdCotizacion
				  ,CT.IdServicio
				  ,CT.CodSyscom
				  ,CT.Nombre
				  ,CT.Descripcion
				  ,CT.Valor_Servicio
				  ,CT.Valor_Negociado
				  ,CT.IdAsesor
				  ,CT.Valor_Iva
				  ,CT.CodVerificacion
				  ,Ase.Identificacion
				  ,CS.IdConceptoPDF
				  ,CS.RubroConcepto
				  ,CS.ValorIva as TarifaIva

			FROM [dbo].[Hist_Cotizacion_Conceptos] as CT
					INNER JOIN [dbo].[Usuarios] as Ase ON CT.IdAsesor = Ase.IdUsuario
					INNER JOIN [dbo].[Concepto_Servicios] as CS ON CT.CodSyscom = CS.CodSyscom
			
			WHERE CT.IdCotizacion    = @IdCotizacion and
				  CT.CodVerificacion = @CodVerificacion and
				  CT.IdConceptoPDF   = 4 
				 
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetHist_CotEmpaques]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2024
-- Description:	Buscar Historico Empaques por Cotizaicon
-- =============================================
CREATE PROCEDURE [dbo].[spGetHist_CotEmpaques]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdHist_CotEmpaque Int = null,
	@IdCotizacion Int = null,
	@IdMaterial Int = null,
	@IdSolicitud Int null,
	@CodVerificacion 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT EM.IdHist_CotEmpaque
				  ,EM.IdCotizacion
				  ,EM.IdMaterial
				  ,EM.ValorCosto
				  ,EM.Cantidad
				  ,EM.CodVerificacion
				  ,MT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial

			FROM [dbo].[Hist_Cotizacion_Empaques] as EM
					INNER JOIN [dbo].[Materiales] as MT ON EM.IdMaterial = MT.IdMaterial

			WHERE EM.CodVerificacion = @CodVerificacion
	  END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			SELECT EM.IdHist_CotEmpaque
				  ,EM.IdCotizacion
				  ,EM.IdMaterial
				  ,EM.ValorCosto
				  ,EM.Cantidad
				  ,EM.CodVerificacion
				  ,MT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial

			FROM [dbo].[Hist_Cotizacion_Empaques] as EM
					INNER JOIN [dbo].[Materiales] as MT ON EM.IdMaterial = MT.IdMaterial
			
			WHERE EM.IdCotizacion between ISNULL(@IdCotizacion,EM.IdCotizacion) and ISNULL(@IdCotizacion,EM.IdCotizacion) and 
				  EM.IdSolicitud  between ISNULL(@IdSolicitud,EM.IdSolicitud) and ISNULL(@IdSolicitud,EM.IdSolicitud) and
				  EM.CodVerificacion = @CodVerificacion
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetHist_Cotizaciones]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- ALTER date: 11/03/2024
-- Description:	Buscar Historico Cotizaciones
-- ================================================
CREATE PROCEDURE [dbo].[spGetHist_Cotizaciones] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdCotizacion int = null,
	@IdCliente int = null,
    @IdUsuario int = null,
	@NombresCl varchar(125) = null,
	@ApellidosCl varchar(125) = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = null,
	@IdEstadoCot int = null,
	@Manifiesto int = null,
	@Movil varchar(20) = null,
	@TipoServ int = null,
	@CodVerificacion 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 @Opcion = 1  -- Consula todos los clientes
		BEGIN
			SELECT	CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida 
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial 
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
						END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor

			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario

			WHERE CT.IdEstadoCot between ISNULL(@IdEstadoCot,CT.IdEstadoCot) and ISNULL(@IdEstadoCot,CT.IdEstadoCot) and 
				  CT.CodVerificacion = @CodVerificacion 
						  
		END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			SELECT	CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
						END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario

			WHERE CT.IdEstadoCot between ISNULL(@IdEstadoCot,CT.IdEstadoCot) and ISNULL(@IdEstadoCot,CT.IdEstadoCot) and 
				  CT.IdCotizacion between ISNULL(@IdCotizacion,CT.IdCotizacion) and ISNULL(@IdCotizacion,CT.IdCotizacion) and 
				  CT.CodVerificacion = @CodVerificacion 
					
		END

	IF @Opcion = 3 -- Consultar por Parametro
		BEGIN
			SELECT CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
  					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
					END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					 
			WHERE CL.Nombres         like CONCAT('%',ISNULL(@NombresCl,CL.Nombres),'%') and 
				  CL.Apellidos       like CONCAT('%',ISNULL(@ApellidosCl,CL.Apellidos),'%') and 
				  CL.Apellidos       like CONCAT('%',@ApellidosCl,'%') and 
				  CT.FechaCotizacion between ISNULL(@FechaIni, CT.FechaCotizacion) and ISNULL(@FechaFin, CT.FechaCotizacion) and 
				  CT.CodVerificacion = @CodVerificacion  
		END

	IF @Opcion = 4 -- Consultar por asesor
		BEGIN
			SELECT	 CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,DST.Nombre as CiudadDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
						END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario

			WHERE CT.IdEstadoCot between ISNULL(@IdEstadoCot,CT.IdEstadoCot) and ISNULL(@IdEstadoCot,CT.IdEstadoCot) and 
				  CT.IdUsuario between ISNULL(@IdUsuario,CT.IdUsuario) and ISNULL(@IdUsuario,CT.IdUsuario) and 
				  CT.CodVerificacion = @CodVerificacion 
	  END

	IF @Opcion = 5 -- Consultar por Parametro
		BEGIN
			SELECT CT.IdHist_Cotizacion
				   ,CT.IdCotizacion
		  		   ,CT.IdCliente
				   ,CT.IdSolicitud
				   ,CT.IdUsuario
				   ,CT.FechaCotizacion
				   ,CT.Servicios
  				   ,CT.Ciudad_Origen
				   ,CT.Direccion_Origen
				   ,CT.Ciudad_Destino
				   ,CT.Direccion_Destino
				   ,CT.Volumen
				   ,CT.Arte
				   ,CT.Presencial
				   ,CT.FechaPresencial
				   ,CT.HoraPresencial
				   ,CT.Seguro
				   ,CT.Valor_Declarado
				   ,CT.Porc_Liquidacion
				   ,CT.IdFormaPago
				   ,CT.IdMetodoPago
				   ,CT.Almacenamiento
				   ,CT.Fecha_Recogida
				   ,CT.Hora_Recogida
				   ,CT.Fecha_Entrega
				   ,CT.Hora_Entrega
				   ,CT.Autorizado
				   ,CT.Tipo_Ident_Autorizado
				   ,CT.Ident_Autorizado
				   ,CT.Telefono_Autorizado
				   ,CT.Medio_Comunicacion
				   ,CT.Medio_Servicio
				   ,CT.IdEstadoCot
				   ,CT.ValorCotizacion
				   ,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
				   ,CT.IdCotPresencial
				   ,CT.TipoServ
				   ,CT.MotivoPerdida
				   ,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
				   ,CT.CuartoUtil
				   ,CT.Exteriores
				   ,CT.Tapizados
				   ,CT.Sucursal
				   ,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
				   ,CT.Fecha_Empaque
				   ,CT.Hora_Empaque
				   ,CT.Periodicidad
				   ,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
				   ,CT.Ref_Movil
				   ,CT.Ref_Direccion
				   ,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
				   ,CT.IdBodega
				   ,CT.BloqueoCot
				   ,CT.Poliza
				   ,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
				   ,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
				   ,CT.EmpaqueVenta
				   ,CT.Serv_Inter
				   ,CT.Flete_Inter
				   ,CT.Gastos_Inter
				   ,CT.Vaduana_Inter
				   ,CT.Otros_Inter
				   ,CT.Aduana_Inter
				   ,CT.Observa_Inter
				   ,CT.IdCia
				   ,CT.ObservaEmpaque
				   ,CT.ObservaCliente
				   ,CT.IdEmpresa
				   ,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
				   ,CT.NumOrden
				   ,CT.ContactoEmpresa
				   ,CT.CorreoContacto
				   ,CT.FechaIniBod
				   ,CT.FechaFinBod
				   ,CT.ObservaBodega
				   ,CT.Cortesia
				   ,CT.FechaCortIni
				   ,CT.FechaCortFin
				   ,CT.FechaUltima
				   ,CT.Manifiesto
				   ,CT.Remesa
				   ,CT.IdGestion
				   ,CT.FechaProximo
				   ,CT.Ctrl_Cotizacion
				   ,CT.ContadorCorreo
				   ,CT.CodVerificacion
				   ,CT.AutorizaCortesia
				   ,CT.TteSalida
				   ,CT.Ocupacion
				   ,CT.VrSugerido
				   ,CT.VrNegociado
				   ,CT.Valor_Vehiculo
				   ,ORG.Nombre as CiudadOrigen
				   ,ORG.CodDane as LocOrigen
				   ,DST.Nombre as CiudadDestino
				   ,DST.CodDane as LocDestino
				   ,SRV.Nombre as NombreServicio
				   ,TSV.Nombre as NombreTipoServ
				   ,CIA.NombreCia as NombreCia
				   ,CL.Identificacion as IdentCliente
				   ,CL.Movil as MovilCliente
				   ,CL.Email as CorreoCliente
				   ,CONCAT(CL.Nombres   , ' '   , CL.Apellidos) as NombreCliente
				   ,RTA.[1] as Concepto1
				   ,RTA.[2] as Concepto2
				   ,RTA.[3] as Concepto3
				   ,RTA.[4] as Concepto4
				   ,RTA.[5] as Concepto5
				   ,RTA.[6] as Concepto6
				   ,RTA.[7] as Concepto7
				   ,RTA.[8] as Concepto8
				   ,RTA.[9] as Concepto9
				   ,RTA.[10] as Concepto10
				   ,RTA.[11] as Concepto11
				   ,RTA.[12] as Concepto12
				   ,RTA.[13] as Concepto13
				   ,RTA.[14] as Concepto14
				   ,RTA.[15] as Concepto15
				   ,RTA.[16] as Concepto16
				   ,RTA.[17] as Concepto17
				   ,RTA.[18] as Concepto18
				   ,RTA.[19] as Concepto19
				   ,RTA.[20] as Concepto20
				   ,RTA.[21] as Concepto21
				   ,RTA.[22] as Concepto22
				   ,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					END AS NegocioOrigen
				   ,CONCAT(USU.Apellidos   , ' '   , USU.Nombres) as NombreAsesor

			FROM [dbo].[Hist_Cotizacion] as CT 
					JOIN (SELECT * FROM (SELECT [IdConceptoPDF], [IdCotizacion],[ValorServicio] FROM [dbo].[Cotizacion_Servicios]) AS ST 
						PIVOT(AVG([ValorServicio]) FOR [IdConceptoPDF] IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22])) AS PT) as RTA
						ON CT.IdCotizacion = RTA.IdCotizacion
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario

			WHERE CT.IdUsuario       between ISNULL(@IdUsuario,0) and ISNULL(@IdUsuario,9999999) and
				  CT.IdEstadoCot     between ISNULL(@IdEstadoCot,0) and ISNULL(@IdEstadoCot,9) and
				  CT.FechaCotizacion between ISNULL(@FechaIni, CT.FechaCotizacion) and ISNULL(@FechaFin,CT.FechaCotizacion) and 
				  CT.CodVerificacion = @CodVerificacion 
					  
			ORDER BY IdUsuario DESC	

		END

	IF @Opcion = 6 -- Consultar por cotizacion fechas
		BEGIN
			SELECT CT.IdHist_Cotizacion
				  ,CT.IdCotizacion
		  		  ,CT.IdCliente
				  ,CT.IdSolicitud
				  ,CT.IdUsuario
				  ,CT.FechaCotizacion
				  ,CT.Servicios
  				  ,CT.Ciudad_Origen
				  ,CT.Direccion_Origen
				  ,CT.Ciudad_Destino
				  ,CT.Direccion_Destino
				  ,CT.Volumen
				  ,CT.Arte
				  ,CT.Presencial
				  ,CT.FechaPresencial
				  ,CT.HoraPresencial
				  ,CT.Seguro
				  ,CT.Valor_Declarado
				  ,CT.Porc_Liquidacion
				  ,CT.IdFormaPago
				  ,CT.IdMetodoPago
				  ,CT.Almacenamiento
				  ,CT.Fecha_Recogida
				  ,CT.Hora_Recogida
				  ,CT.Fecha_Entrega
				  ,CT.Hora_Entrega
				  ,CT.Autorizado
				  ,CT.Tipo_Ident_Autorizado
				  ,CT.Ident_Autorizado
				  ,CT.Telefono_Autorizado
				  ,CT.Medio_Comunicacion
				  ,CT.Medio_Servicio
				  ,CT.IdEstadoCot
				  ,CT.ValorCotizacion
				  ,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
				  ,CT.IdCotPresencial
				  ,CT.TipoServ
				  ,CT.MotivoPerdida
				  ,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
				  ,CT.CuartoUtil
				  ,CT.Exteriores
				  ,CT.Tapizados
				  ,CT.Sucursal
				  ,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
				  ,CT.Fecha_Empaque
				  ,CT.Hora_Empaque
				  ,CT.Periodicidad
				  ,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
				  ,CT.Ref_Movil
				  ,CT.Ref_Direccion
				  ,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
				  ,CT.IdBodega
				  ,CT.BloqueoCot
				  ,CT.Poliza
				  ,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
				  ,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
				  ,CT.EmpaqueVenta
				  ,CT.Serv_Inter
				  ,CT.Flete_Inter
				  ,CT.Gastos_Inter
				  ,CT.Vaduana_Inter
				  ,CT.Otros_Inter
				  ,CT.Aduana_Inter
				  ,CT.Observa_Inter
				  ,CT.IdCia
				  ,CT.ObservaEmpaque
				  ,CT.ObservaCliente
				  ,CT.IdEmpresa
				  ,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
				  ,CT.NumOrden
				  ,CT.ContactoEmpresa
				  ,CT.CorreoContacto
				  ,CT.FechaIniBod
				  ,CT.FechaFinBod
				  ,CT.ObservaBodega
				  ,CT.Cortesia
				  ,CT.FechaCortIni
				  ,CT.FechaCortFin
				  ,CT.FechaUltima
				  ,CT.Manifiesto
				  ,CT.Remesa
				  ,CT.IdGestion
				  ,CT.FechaProximo
				  ,CT.Ctrl_Cotizacion
				  ,CT.ContadorCorreo
				  ,CT.CodVerificacion
				  ,CT.AutorizaCortesia
				  ,CT.TteSalida
				  ,CT.Ocupacion
				  ,CT.VrSugerido
				  ,CT.VrNegociado
				  ,CT.CtrlEnvio
				  ,CT.Valor_Vehiculo
				  ,ORG.Nombre as CiudadOrigen
				  ,ORG.CodDane as LocOrigen
				  ,DST.Nombre as CiudadDestino
				  ,DST.CodDane as LocDestino
				  ,SRV.Nombre as NombreServicio
				  ,TSV.Nombre as NombreTipoServ
				  ,CIA.NombreCia as NombreCia
				  ,CL.Identificacion as IdentCliente
				  ,CL.Movil as MovilCliente
				  ,CL.Email as CorreoCliente
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
				  ,CASE CT.Medio_Comunicacion
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				   END AS NegocioOrigen
				  ,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			      ,CONCAT(CT.IdCotizacion,'-', CT.CodVerificacion) as Cotizacion
				  ,CASE WHEN CT.CtrlEnvio = 0 THEN 'NO ENVIADO' ELSE 'ENVIADO' END as CorreoEnviado
				  ,(SELECT MAX(CodVerificacion) fROM [dbo].[Hist_Cotizacion] WHERE IdCotizacion = @IdCotizacion) as VerificaCod
					
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					INNER JOIN [dbo].[Solicitudes] as SL ON SL.IdSolicitud = CT.IdSolicitud 
				 
			WHERE SL.Movil           like ISNULL(@Movil,'%') and  
				  CT.IdEstadoCot     between ISNULL(@IdEstadoCot,CT.IdEstadoCot) and ISNULL(@IdEstadoCot,CT.IdEstadoCot) and
				  CT.IdCotizacion    between ISNULL(@IdCotizacion,CT.IdCotizacion) and ISNULL(@IdCotizacion,CT.IdCotizacion) and 
				  CT.IdUsuario       between ISNULL(@IdUsuario,CT.IdUsuario) and ISNULL(@IdUsuario,CT.IdUsuario) and
				  CT.FechaCotizacion between ISNULL(@FechaIni, CT.FechaCotizacion) and ISNULL(@FechaFin,CT.FechaCotizacion) and 
				  CT.CodVerificacion between ISNULL(@CodVerificacion,CT.CodVerificacion) and ISNULL(@CodVerificacion,CT.CodVerificacion) 

			ORDER BY FechaCotizacion DESC

		END

	IF @Opcion = 7 -- Consultar por cotizacion usuario fechas
		BEGIN
			SELECT CT.IdHist_Cotizacion
					,CT.IdCotizacion
		  			,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
  					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
					END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario			 
					 
			WHERE CT.IdCotizacion    between ISNULL(@IdCotizacion,CT.IdCotizacion) and ISNULL(@IdCotizacion,CT.IdCotizacion) and 
				  CT.IdUsuario       between ISNULL(@IdUsuario,CT.IdUsuario) and ISNULL(@IdUsuario,CT.IdUsuario) and
				  CT.FechaCotizacion between ISNULL(@FechaIni, CT.FechaCotizacion) and ISNULL(@FechaFin,CT.FechaCotizacion) and 
				  CT.CodVerificacion = @CodVerificacion

			ORDER BY FechaCotizacion DESC
		END

	IF @Opcion = 8 -- Tablero de Control
		BEGIN
			IF @IdUsuario IS NULL and @FechaIni IS NOT NULL and @FechaFin IS NOT NULL
				BEGIN
					SELECT CT.IdEstadoCot
						   ,COUNT(CT.IdEstadoCot) as Estado 
						   ,SUM(CT.ValorCotizacion) ValorCot
					
					FROM [dbo].[Hist_Cotizacion] as CT
					
					WHERE CT.FechaCotizacion between  @FechaIni and @FechaFin
					
					GROUP BY CT.IdEstadoCot
				END

			IF @IdUsuario IS NOT NULL and @FechaIni IS NOT NULL and @FechaFin IS NOT NULL
				BEGIN
					SELECT CT.IdUsuario
						   ,CT.IdEstadoCot
						   ,COUNT(CT.IdEstadoCot) as Estado 
						   ,SUM(CT.ValorCotizacion) ValorCot

					FROM [dbo].[Hist_Cotizacion] as CT

					WHERE CT.IdUsuario = @IdUsuario and 
						  CT.FechaCotizacion between @FechaIni and @FechaFin

					GROUP BY CT.IdEstadoCot, CT.IdUsuario

				END
		END

	IF @Opcion = 9 -- Consultar por usuario fechas estado
		BEGIN
			SELECT CT.IdHist_Cotizacion
					,CT.IdCotizacion
		  			,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
  					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CL.Identificacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,DST.Nombre as CiudadDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					 END AS NegocioOrigen
					,CONCAT(usu.Nombres,' ',USU.Apellidos) AS NombreUsuario
					,EST.Nombre as NombreEstado
					,DPO.Nombre as DptoOrigen
					,DPD.Nombre as DptoDestino
					  				   
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad
					INNER JOIN [dbo].[Departamentos] as DPO ON ORG.IdDepartamento = DPO.IdDepartamento
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Departamentos] as DPD ON DST.IdDepartamento = DPD.IdDepartamento
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					INNER JOIN [dbo].[Estado_Cotizacion] as EST ON CT.IdEstadoCot = EST.IdEstadoCot
					INNER JOIN [dbo].[Solicitudes] as SL ON CT.IdSolicitud = SL.IdSolicitud

			WHERE SL.Movil        like CONCAT('%',ISNULL(@Movil,SL.Movil),'%')  and 
				  CT.IdCotizacion between ISNULL(@IdCotizacion, CT.IdCotizacion) and ISNULL(@IdCotizacion, CT.IdCotizacion) and
				  CT.IdEstadoCot  between ISNULL(@IdEstadoCot,CT.IdEstadoCot) and ISNULL(@IdEstadoCot,CT.IdEstadoCot) and
				  CT.TipoServ     between ISNULL(@TipoServ,CT.TipoServ ) and ISNULL(@TipoServ,CT.TipoServ ) and
				  CT.IdUsuario    between ISNULL(@IdUsuario,CT.IdUsuario) and ISNULL(@IdUsuario,CT.IdUsuario) and
				  CT.FechaUltima  between ISNULL(@FechaIni,CT.FechaUltima) and ISNULL(@FechaFin,CT.FechaUltima) and 
				  CT.CodVerificacion = @CodVerificacion

			ORDER BY IdEstadoCot DESC
		END

	IF @Opcion = 10 -- Consultar por usuario fechas
		BEGIN
			SELECT CT.IdHist_Cotizacion
					,CT.IdCotizacion
		  			,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
  					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,DST.Nombre as CiudadDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
						END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT 
					LEFT JOIN [dbo].[Solicitudes] as SL on CT.IdSolicitud = SL.IdSolicitud
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario	
						 
					 
			WHERE CT.IdEstadoCot     <> 7 and
				  CT.IdUsuario       between ISNULL(@IdUsuario,CT.IdUsuario) and ISNULL(@IdUsuario,CT.IdUsuario) and
				  SL.Fecha           between ISNULL(@FechaIni, SL.Fecha) and ISNULL(@FechaFin,SL.Fecha) and 
				  CT.CodVerificacion = @CodVerificacion

			ORDER BY FechaCotizacion DESC
		END

	IF @Opcion = 11 -- Consultar por Manifiesto
		BEGIN
			SELECT	CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					 END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario	

			WHERE CT.Manifiesto      = @Manifiesto and
				  CT.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 12 -- Consultar por Cliente
		BEGIN
			SELECT	 CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.CodVerificacion
					,CASE CT.IdEstadoCot
						WHEN '2' THEN 'COTIZACION'
						WHEN '3' THEN 'SEGUIMIENTO'
						WHEN '4' THEN 'PREOPERACIONAL'
						WHEN '5' THEN 'CONFIRMADO'
						ELSE '0' 
					 END AS NombreEstado
					,CONCAT(US.Nombres, ' ',US.Apellidos) as NombreAsesor
					,CONCAT(CL.Nombres, ' ',CL.Apellidos) as NombreCliente
			    
			FROM [dbo].[Hist_Cotizacion] as CT,
				 [dbo].[Usuarios] as US,
				 [dbo].[Clientes] as CL

			WHERE CT.IdCotizacion = (SELECT MAX(IdCotizacion) FROM [dbo].[Hist_Cotizacion] WHERE IdCliente = @IdCliente and IdEstadoCot <= @IdEstadoCot) and
				  CT.IdUsuario    = US.IdUsuario and
				  CT.IdCliente    = CL.IdCliente
				   
		END

	IF @Opcion = 13 -- Consultar por movil
		BEGIN
			SELECT  CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
			 		,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
			   		,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
				    ,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					 END AS NegocioOrigen
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario	

			WHERE CL.Movil          = @Movil and
				  CT.IdEstadoCot    <> 7 and
				  CT.FechaUltima between @FechaIni and @FechaFin and
				  CT.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 14 -- Consultar por Cotizaciones Rechazadas
		BEGIN
			SELECT  CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Ciudad_Destino
					,CT.IdEstadoCot
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.IdCia
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaUltima
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen
					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
						END AS NegocioOrigen
					,SG.Gestion
					,NOV.Descripcion AS Mot_Perdida
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					LEFT  JOIN [dbo].[Seguimientos] as SG ON CT.IdCotizacion = SG.IdCotizacion and SG.IdEstadoCot = 6
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad 
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON  CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario	
					LEFT  JOIN [dbo].[Novedades] as NOV ON CT.MotivoPerdida  = NOV.IdNovedad

			WHERE CT.IdEstadoCot = 6 and
				  CT.IdUsuario   between ISNULL(@IdUsuario,CT.IdUsuario) and ISNULL(@IdUsuario,CT.IdUsuario) and
				  CT.FechaUltima between ISNULL(@FechaIni, CT.FechaUltima) and ISNULL(@FechaFin,CT.FechaUltima) and 
				  CT.CodVerificacion = @CodVerificacion 
		END

	IF @Opcion = 15 -- Consultar por Asesor y Control
		BEGIN
			SELECT  CT.IdHist_Cotizacion
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Ctrl_Cotizacion
				    ,CT.CodVerificacion
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
			    
			FROM [dbo].[Hist_Cotizacion] as CT
					LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente

			WHERE CT.IdUsuario       = @IdUsuario and
				  CT.Ctrl_Cotizacion = 0  
		END

	IF @Opcion = 16 -- Consultar por parametros y Concepto(Transprote Nacional)
		BEGIN
			SELECT CT.IdHist_Cotizacion
					,CT.IdCotizacion
		  			,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
  					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CL.Identificacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
					,CT.Valor_Vehiculo
					,ORG.Nombre as CiudadOrigen
					,DST.Nombre as CiudadDestino
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					,CIA.NombreCia as NombreCia
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					 END AS NegocioOrigen
					,CONCAT(usu.Nombres,' ',USU.Apellidos) AS NombreUsuario
					,EST.Nombre as NombreEstado
					,DPO.Nombre as DptoOrigen
					,DPD.Nombre as DptoDestino
					,CC.Valor_Negociado
					  				   
			FROM [dbo].[Hist_Cotizacion] as CT
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad
					INNER JOIN [dbo].[Departamentos] as DPO ON ORG.IdDepartamento = DPO.IdDepartamento
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Departamentos] as DPD ON DST.IdDepartamento = DPD.IdDepartamento
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					INNER JOIN [dbo].[Estado_Cotizacion] as EST ON CT.IdEstadoCot = EST.IdEstadoCot
					INNER JOIN [dbo].[Solicitudes] as SL ON CT.IdSolicitud = SL.IdSolicitud
					inner join [dbo].[Cotizacion_Conceptos] as CC on CT.IdCotizacion = CC.IdCotizacion and CC.IdServicio = 9

			WHERE SL.Movil        like CONCAT('%',ISNULL(@Movil,SL.Movil),'%')  and 
				  CT.IdCotizacion between ISNULL(@IdCotizacion,0) and ISNULL(@IdCotizacion,999999999) and
				  CT.IdEstadoCot  between ISNULL(@IdEstadoCot,0) and ISNULL(@IdEstadoCot,9) and
				  CT.TipoServ     between ISNULL(@TipoServ,0) and ISNULL(@TipoServ,99) and
				  CT.IdUsuario    between ISNULL(@IdUsuario,0) and ISNULL(@IdUsuario,999999999) and
				  CT.FechaUltima  between ISNULL(@FechaIni,CT.FechaUltima) and ISNULL(@FechaFin,CT.FechaUltima) and
				  CT.CodVerificacion = @CodVerificacion

			ORDER BY IdEstadoCot DESC
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetHist_CotMaterialesArticulo]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2024
-- Description:	Buscar Historico Cotizacion Mat-Art
-- =============================================
CREATE PROCEDURE [dbo].[spGetHist_CotMaterialesArticulo]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdHist_CotMatArt  int = null,
	@IdCotizacion int = null,
	@IdSolicitud int = null,
	@CodVerificacion 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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  MA.IdHist_CotMatArt 
				,MA.IdCotizacion
				,MA.IdHist_CotArticulo
				,MA.IdMaterial
				,MA.NombreMaterial COLLATE Cyrillic_General_CI_AI as NombreMaterial
				,MA.IdArticulo
				,MA.NombreArticulo COLLATE Cyrillic_General_CI_AI as NombreArticulo
				,MA.Valor
				,MA.Cantidad
				,MA.IdSolicitud
				,MA.CodVerificacion

		FROM [dbo].[Hist_Cotizacion_MaterialesArticulo] as MA

	  END

	IF @Opcion = 2 -- Consultar por cotizacion
		BEGIN
			SELECT  MA.IdHist_CotMatArt 
					,MA.IdCotizacion
					,MA.IdHist_CotArticulo
					,MA.IdMaterial
					,MA.NombreMaterial COLLATE Cyrillic_General_CI_AI as NombreMaterial
					,MA.IdArticulo
					,MA.NombreArticulo COLLATE Cyrillic_General_CI_AI as NombreArticulo
					,MA.Valor
					,MA.Cantidad
					,MA.IdSolicitud
					,MA.CodVerificacion

			FROM  [dbo].[Hist_Cotizacion_MaterialesArticulo] as MA

			WHERE MA.IdCotizacion between ISNULL(@IdCotizacion,MA.IdCotizacion) and ISNULL(@IdCotizacion,MA.IdCotizacion) and 
				  MA.IdSolicitud  between ISNULL(@IdSolicitud,MA.IdSolicitud) and ISNULL(@IdSolicitud,MA.IdSolicitud) and
				  MA.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 3 -- Consultar por solicitud y cotizacion
		BEGIN
			SELECT  MA.IdHist_CotMatArt 
					,MA.IdCotizacion
					,MA.IdHist_CotArticulo
					,MA.IdMaterial
					,MA.NombreMaterial COLLATE Cyrillic_General_CI_AI as NombreMaterial
					,MA.IdArticulo
					,MA.NombreArticulo COLLATE Cyrillic_General_CI_AI as NombreArticulo
					,MA.Valor
					,MA.Cantidad
					,MA.IdSolicitud
					,MA.CodVerificacion
					,CA.IdCot_Articulo

			FROM  [dbo].[Hist_Cotizacion_MaterialesArticulo] as MA
					INNER JOIN [dbo].[Cotizacion_Articulos] as CA ON MA.IdCotizacion = CA.IdCotizacion and MA.IdArticulo = CA.IdArticulo

			WHERE MA.IdCotizacion between ISNULL(@IdCotizacion,MA.IdCotizacion) and ISNULL(@IdCotizacion,MA.IdCotizacion) and 
				  MA.IdSolicitud  between ISNULL(@IdSolicitud,MA.IdSolicitud) and ISNULL(@IdSolicitud,MA.IdSolicitud) and
				  MA.CodVerificacion = @CodVerificacion
		END
END


GO
/****** Object:  StoredProcedure [dbo].[spGetHist_CotRequisiciones]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2024
-- Description:	Buscar Historico Requisicion por Cotizaicon
-- =============================================
CREATE PROCEDURE [dbo].[spGetHist_CotRequisiciones] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdHist_Requisicion int = null,
	@IdCotizacion int = null,
	@Clase int = null,
	@IdSolicitud int = null,
	@CodVerificacion 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 @Opcion = 1  -- Consula todos las Requisiciones
		BEGIN
			DELETE [dbo].[Hist_Cotizacion_Requisicion] WHERE Cantidad =  0
			SELECT  REQ.IdHist_Requisicion
					,REQ.IdMaterial
					,REQ.IdCotizacion
					,REQ.Cantidad
					,REQ.ValorRequisicion
					,REQ.Clase
					,REQ.IdSolicitud
					,REQ.CodVerificacion
					,MAT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial
					,MAT.CodSyscom
					,MAT.SubGrupo
					,UND.CodSyscom as SysUnidad
					,MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
  
			FROM [dbo].[Hist_Cotizacion_Requisicion] as REQ,
				 [dbo].[Materiales] as MAT,
				 [dbo].[Unidades] as UND

			WHERE REQ.IdMaterial = MAT.IdMaterial and
				  MAT.IdUnidad = UND.IdUnidad
		END

	IF @Opcion = 2  -- Consula Requisiciones por Cotizacion
		BEGIN
			DELETE [dbo].[Hist_Cotizacion_Requisicion] WHERE Cantidad =  0
			SELECT  REQ.IdHist_Requisicion
					,REQ.IdMaterial
					,REQ.IdCotizacion
					,REQ.Cantidad
					,REQ.ValorRequisicion
					,REQ.Clase
					,REQ.IdSolicitud
					,REQ.CodVerificacion
					,MAT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial
					,MAT.CodSyscom
					,MAT.SubGrupo
					,UND.CodSyscom as SysUnidad
					,MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
							
			FROM [dbo].[Hist_Cotizacion_Requisicion] as REQ
					INNER JOIN [dbo].[Materiales] as MAT ON REQ.IdMaterial= MAT.IdMaterial
					INNER JOIN [dbo].[Unidades] as UND ON MAT.IdUnidad = UND.IdUnidad

			WHERE REQ.IdCotizacion between ISNULL(@IdCotizacion,REQ.IdCotizacion) and ISNULL(@IdCotizacion,REQ.IdCotizacion) and 
				  REQ.IdSolicitud  between ISNULL(@IdSolicitud,REQ.IdSolicitud) and ISNULL(@IdSolicitud,REQ.IdSolicitud) and
				  REQ.Clase        between ISNULL(@Clase,REQ.Clase) and ISNULL(@Clase,REQ.Clase) and
				  REQ.CodVerificacion = @CodVerificacion
		END

	IF @Opcion = 3  -- Consula todos los materiales
		BEGIN
			SELECT CMA.IdMaterial, CMA.IdCotizacion, sum(CMA.Cantidad) as TotalCantidad, sum(CMA.Valor) as TotalValor
			FROM [dbo].[Hist_Cotizacion_MaterialesArticulo] as CMA
			WHERE CMA.IdCotizacion = @IdCotizacion and CMA.IdSolicitud = @IdSolicitud and CMA.CodVerificacion = @CodVerificacion
			GROUP BY CMA.IdMaterial, CMA.IdCotizacion
		END

	IF @Opcion = 4  -- Consula todos los Tipo
		BEGIN
			SELECT EMP.IdMaterial, EMP.IdCotizacion, sum(EMP.Cantidad) as TotalCantidad, sum(EMP.ValorCosto)  as TotalValor
			FROM [dbo].[Hist_Cotizacion_Empaques] as EMP
			WHERE EMP.IdCotizacion = @IdCotizacion and EMP.IdSolicitud = @IdSolicitud and EMP.CodVerificacion = @CodVerificacion
			GROUP BY EMP.IdMaterial, EMP.IdCotizacion
		END

	IF @Opcion = 5  -- Calcular Totales
		BEGIN
			DECLARE 
			@TotalCant numeric(18,2) = null,
			@TotalVals numeric(18,2) = null

			--Generar IVA
			SELECT sum(Cantidad) as TotalCant, sum(ValorRequisicion) as TotalVals FROM [dbo].[Hist_Cotizacion_Requisicion]	WHERE IdCotizacion = @IdCotizacion and CodVerificacion = @CodVerificacion
		END

END






GO
/****** Object:  StoredProcedure [dbo].[spGetHistoricoLogPersonal]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 16/02/2023
-- Description:	Buscar Personal Logistica
-- =============================================
CREATE PROCEDURE [dbo].[spGetHistoricoLogPersonal] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPersonalLog int = null,
	@IdCotizacion int = null,
	@IdPersonal int = null,
	@IdEvento int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT HP.IdHistoricoPersonal 
				  ,HP.IdPersonalLog
				  ,HP.IdCotizacion
				  ,HP.IdPersonal
				  ,HP.IdEvento
				  ,HP.RolPersonal
				  ,HP.FechaHistorico
				  ,HP.AccionPersonal
				  ,HP.ValorRolPer
				  ,HP.Autorizacion
				  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
				  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
				  ,PP.Direccion
				  ,PP.Telefono
				  ,CD.Nombre as NombreCiudad
				  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE Cyrillic_General_CI_AI as NombreCompleto
				  ,CASE HP.AccionPersonal
					 WHEN '1' THEN 'EMPAQUE'
					 WHEN '2' THEN 'RECOGIDA'
					 WHEN '3' THEN 'ENTREGA'
					 ELSE '0' 
				   END AS NombreRol

			FROM [dbo].[Historico_LogPersonal] as HP,
				 [dbo].[Personal] as PP,
				 [dbo].[Ciudades] as CD
			
			WHERE HP.IdPersonal = PP.IdPersonal and
				  PP.IdCiudad   = CD.IdCiudad
	  END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			IF @IdEvento IS NULL
				BEGIN
					SELECT HP.IdHistoricoPersonal 
						  ,HP.IdPersonalLog
						  ,HP.IdCotizacion
						  ,HP.IdPersonal
						  ,HP.IdEvento
						  ,HP.RolPersonal
						  ,HP.FechaHistorico
						  ,HP.AccionPersonal
						  ,HP.ValorRolPer
						  ,HP.Autorizacion
						  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
						  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
						  ,PP.Direccion
						  ,PP.Telefono
						  ,CD.Nombre as NombreCiudad
						  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE Cyrillic_General_CI_AI as NombreCompleto
						  ,CASE HP.AccionPersonal
							 WHEN '1' THEN 'EMPAQUE'
							 WHEN '2' THEN 'RECOGIDA'
							 WHEN '3' THEN 'ENTREGA'
							 ELSE '0' 
						   END AS NombreRol

					FROM [dbo].[Historico_LogPersonal] as HP,
						 [dbo].[Personal] as PP,
						 [dbo].[Ciudades] as CD
			
					WHERE HP.IdCotizacion = @IdCotizacion and
						  HP.IdPersonal   = PP.IdPersonal and
						  PP.IdCiudad     = CD.IdCiudad
				END

			IF @IdEvento IS NOT NULL
				BEGIN
					SELECT HP.IdHistoricoPersonal 
						  ,HP.IdPersonalLog
						  ,HP.IdCotizacion
						  ,HP.IdPersonal
						  ,HP.IdEvento
						  ,HP.RolPersonal
						  ,HP.FechaHistorico
						  ,HP.AccionPersonal
						  ,HP.ValorRolPer
						  ,HP.Autorizacion
						  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
						  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
						  ,PP.Direccion
						  ,PP.Telefono
						  ,CD.Nombre as NombreCiudad
						  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE Cyrillic_General_CI_AI as NombreCompleto
						  ,CASE HP.AccionPersonal
							 WHEN '1' THEN 'EMPAQUE'
							 WHEN '2' THEN 'RECOGIDA'
							 WHEN '3' THEN 'ENTREGA'
							 ELSE '0' 
						   END AS NombreRol

					FROM [dbo].[Historico_LogPersonal] as HP,
						 [dbo].[Personal] as PP,
						 [dbo].[Ciudades] as CD
			
					WHERE HP.IdEvento     = @IdEvento and
						  HP.IdPersonal   = PP.IdPersonal and
						  PP.IdCiudad     = CD.IdCiudad
				END
	  END

	IF @Opcion = 3 -- Consultar por Identificacion y Idpersonal
		BEGIN
			IF @IdEvento IS NOT NULL and @IdCotizacion IS NOT NULL and @IdPersonal IS NULL
				BEGIN
					SELECT HP.IdHistoricoPersonal 
						  ,HP.IdPersonalLog
						  ,HP.IdCotizacion
						  ,HP.IdPersonal
						  ,HP.IdEvento
						  ,HP.RolPersonal
						  ,HP.FechaHistorico
						  ,HP.AccionPersonal
						  ,HP.ValorRolPer
						  ,HP.Autorizacion
						  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
						  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
						  ,PP.Direccion
						  ,PP.Telefono
						  ,CD.Nombre as NombreCiudad
						  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE  Cyrillic_General_CI_AI as NombreCompleto
						  ,CASE HP.AccionPersonal
							 WHEN '1' THEN 'EMPAQUE'
							 WHEN '2' THEN 'RECOGIDA'
							 WHEN '3' THEN 'ENTREGA'
							 ELSE '0' 
						   END AS NombreRol

					FROM [dbo].[Historico_LogPersonal] as HP,
						 [dbo].[Personal] as PP,
						 [dbo].[Ciudades] as CD
			
					WHERE HP.IdCotizacion = @IdCotizacion and
						  HP.IdEvento     = @IdEvento and
						  HP.IdPersonal   = PP.IdPersonal and
						  PP.IdCiudad     = CD.IdCiudad
				END

			IF @IdEvento IS NULL and @IdCotizacion IS NOT NULL and @IdPersonal IS NOT NULL
				BEGIN
					SELECT HP.IdHistoricoPersonal 
						  ,HP.IdPersonalLog
						  ,HP.IdCotizacion
						  ,HP.IdPersonal
						  ,HP.IdEvento
						  ,HP.RolPersonal
						  ,HP.FechaHistorico
						  ,HP.AccionPersonal
						  ,HP.ValorRolPer
						  ,HP.Autorizacion
						  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
						  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
						  ,PP.Direccion
						  ,PP.Telefono
						  ,CD.Nombre as NombreCiudad
						  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE  Cyrillic_General_CI_AI as NombreCompleto
						  ,CASE HP.AccionPersonal
							 WHEN '1' THEN 'EMPAQUE'
							 WHEN '2' THEN 'RECOGIDA'
							 WHEN '3' THEN 'ENTREGA'
							 ELSE '0' 
						   END AS NombreRol

					FROM [dbo].[Historico_LogPersonal] as HP,
						 [dbo].[Personal] as PP,
						 [dbo].[Ciudades] as CD
			
					WHERE HP.IdCotizacion = @IdCotizacion and
						  HP.IdPersonal   = @IdPersonal and
						  HP.IdPersonal   = PP.IdPersonal and
						  PP.IdCiudad     = CD.IdCiudad
				END

			IF @IdEvento IS NOT NULL and @IdCotizacion IS NULL  and @IdPersonal IS NOT NULL
				BEGIN
					SELECT HP.IdHistoricoPersonal 
						  ,HP.IdPersonalLog
						  ,HP.IdCotizacion
						  ,HP.IdPersonal
						  ,HP.IdEvento
						  ,HP.RolPersonal
						  ,HP.FechaHistorico
						  ,HP.AccionPersonal
						  ,HP.ValorRolPer
						  ,HP.Autorizacion
						  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
						  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
						  ,PP.Direccion
						  ,PP.Telefono
						  ,CD.Nombre as NombreCiudad
						  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE Cyrillic_General_CI_AI as NombreCompleto
						  ,CASE HP.AccionPersonal
							 WHEN '1' THEN 'EMPAQUE'
							 WHEN '2' THEN 'RECOGIDA'
							 WHEN '3' THEN 'ENTREGA'
							 ELSE '0' 
						   END AS NombreRol

					FROM [dbo].[Historico_LogPersonal] as HP,
						 [dbo].[Personal] as PP,
						 [dbo].[Ciudades] as CD
			
					WHERE HP.IdEvento     = @IdEvento and
						  HP.IdPersonal   = @IdPersonal and
						  HP.IdPersonal   = PP.IdPersonal and
						  PP.IdCiudad     = CD.IdCiudad
				END

			IF @IdEvento IS NOT NULL and @IdCotizacion IS NOT NULL and @IdPersonal IS NOT NULL
				BEGIN
					SELECT HP.IdHistoricoPersonal 
						  ,HP.IdPersonalLog
						  ,HP.IdCotizacion
						  ,HP.IdPersonal
						  ,HP.IdEvento
						  ,HP.RolPersonal
						  ,HP.FechaHistorico
						  ,HP.AccionPersonal
						  ,HP.ValorRolPer
						  ,HP.Autorizacion
						  ,PP.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
						  ,PP.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
						  ,PP.Direccion
						  ,PP.Telefono
						  ,CD.Nombre as NombreCiudad
						  ,CONCAT(PP.Apellidos, ' ', PP.Nombres) COLLATE Cyrillic_General_CI_AI as NombreCompleto
						  ,CASE HP.AccionPersonal
							 WHEN '1' THEN 'EMPAQUE'
							 WHEN '2' THEN 'RECOGIDA'
							 WHEN '3' THEN 'ENTREGA'
							 ELSE '0' 
						   END AS NombreRol

					FROM [dbo].[Historico_LogPersonal] as HP,
						 [dbo].[Personal] as PP,
						 [dbo].[Ciudades] as CD
			
					WHERE HP.IdCotizacion = @IdCotizacion and
						  HP.IdEvento     = @IdEvento and
						  HP.IdPersonal   = @IdPersonal and
						  HP.IdPersonal   = PP.IdPersonal and
						  PP.IdCiudad     = CD.IdCiudad
				END
		END

	
END
GO
/****** Object:  StoredProcedure [dbo].[spGetHistoricoLogVehiculo]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 16/02/2023
-- Description:	Buscar Historico Vehiculos Log
-- =============================================
CREATE PROCEDURE [dbo].[spGetHistoricoLogVehiculo]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdVehiculosLog int = null,
	@IdCotizacion int = null,
	@IdVehiculo int = null,
	@IdEvento int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT HV.IdHistoricoVehiculo
				  ,HV.IdVehiculosLog
				  ,HV.IdCotizacion
				  ,HV.IdVehiculo
				  ,HV.IdEvento
				  ,HV.FechaHistorico
				  ,HV.AccionVehiculo
				  ,HV.ValorRolVeh
				  ,HV.Autorizacion
				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.TipoVehiculo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,TV.Nombre
				  ,MV.Nombre as NombreMarca
				  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

			FROM [dbo].[Historico_LogVehiculo] as HV,
				 [dbo].[Vehiculos] as VE,
				 [dbo].[Tipos_Vehiculos] as TV,
				 [dbo].[Marcas_Vehiculos] as MV,
				 [dbo].[Conductores] as CD
			
			WHERE HV.IdVehiculo   = VE.IdVehiculo and
				  VE.IdConductor  = CD.IdConductor and
				  VE.TipoVehiculo = TV.IdTipo and
				  VE.Marca        = MV.IdMarca
		END

	IF @Opcion = 2 -- Consultar por evento
		BEGIN
			IF @IdEvento IS NULL
				BEGIN
					SELECT HV.IdHistoricoVehiculo
						  ,HV.IdVehiculosLog
						  ,HV.IdCotizacion
						  ,HV.IdVehiculo
						  ,HV.IdEvento
						  ,HV.FechaHistorico
						  ,HV.AccionVehiculo
						  ,HV.ValorRolVeh
						  ,HV.Autorizacion
						  ,VE.Marca
						  ,VE.Modelo
						  ,VE.Capacidad
						  ,VE.Disponible
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

					FROM [dbo].[Historico_LogVehiculo] as HV,
						 [dbo].[Vehiculos] as VE,
						 [dbo].[Tipos_Vehiculos] as TV,
						 [dbo].[Marcas_Vehiculos] as MV,
						 [dbo].[Conductores] as CD
			
					WHERE HV.IdCotizacion = @IdCotizacion and
						  HV.IdVehiculo   = VE.IdVehiculo and
						  VE.IdConductor  = CD.IdConductor and
						  VE.TipoVehiculo = TV.IdTipo and
						  VE.Marca = MV.IdMarca
				END

			IF @IdEvento IS NOT NULL
				BEGIN
					SELECT HV.IdHistoricoVehiculo
						  ,HV.IdVehiculosLog
						  ,HV.IdCotizacion
						  ,HV.IdVehiculo
						  ,HV.IdEvento
						  ,HV.FechaHistorico
						  ,HV.AccionVehiculo
						  ,HV.ValorRolVeh
						  ,HV.Autorizacion
						  ,VE.Marca
						  ,VE.Modelo
						  ,VE.Capacidad
						  ,VE.Disponible
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

					FROM [dbo].[Historico_LogVehiculo] as HV,
						 [dbo].[Vehiculos] as VE,
						 [dbo].[Tipos_Vehiculos] as TV,
						 [dbo].[Marcas_Vehiculos] as MV,
						 [dbo].[Conductores] as CD
			
					WHERE HV.IdEvento     = @IdEvento and
						  HV.IdVehiculo   = VE.IdVehiculo and
						  VE.IdConductor  = CD.IdConductor and
						  VE.TipoVehiculo = TV.IdTipo and
						  VE.Marca = MV.IdMarca
				END
		END

	IF @Opcion = 3 -- Consultar por Cotizacion
		BEGIN
			IF @IdEvento IS NOT NULL and @IdCotizacion IS NOT NULL
				BEGIN
					SELECT HV.IdHistoricoVehiculo
						  ,HV.IdVehiculosLog
						  ,HV.IdCotizacion
						  ,HV.IdVehiculo
						  ,HV.IdEvento
						  ,HV.FechaHistorico
						  ,HV.AccionVehiculo
						  ,HV.ValorRolVeh
						  ,HV.Autorizacion
						  ,VE.Marca
						  ,VE.Modelo
						  ,VE.Capacidad
						  ,VE.Disponible
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

					FROM [dbo].[Historico_LogVehiculo] as HV,
						 [dbo].[Vehiculos] as VE,
						 [dbo].[Tipos_Vehiculos] as TV,
						 [dbo].[Marcas_Vehiculos] as MV,
						 [dbo].[Conductores] as CD
			
					WHERE HV.IdCotizacion = @IdCotizacion and
						  HV.IdEvento     = @IdEvento and
						  HV.IdVehiculo   = VE.IdVehiculo and
						  VE.IdConductor  = CD.IdConductor and
						  VE.TipoVehiculo = TV.IdTipo and
						  VE.Marca        = MV.IdMarca
				END

			IF @IdEvento IS NULL and @IdCotizacion IS NOT NULL
				BEGIN
					SELECT HV.IdHistoricoVehiculo
						  ,HV.IdVehiculosLog
						  ,HV.IdCotizacion
						  ,HV.IdVehiculo
						  ,HV.IdEvento
						  ,HV.FechaHistorico
						  ,HV.AccionVehiculo
						  ,HV.ValorRolVeh
						  ,HV.Autorizacion
						  ,VE.Marca
						  ,VE.Modelo
						  ,VE.Capacidad
						  ,VE.Disponible
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

					FROM [dbo].[Historico_LogVehiculo] as HV,
						 [dbo].[Vehiculos] as VE,
						 [dbo].[Tipos_Vehiculos] as TV,
						 [dbo].[Marcas_Vehiculos] as MV,
						 [dbo].[Conductores] as CD
			
					WHERE HV.IdCotizacion = @IdCotizacion and
						  HV.IdVehiculo   = @IdVehiculo and
						  HV.IdVehiculo   = VE.IdVehiculo and
						  VE.IdConductor  = CD.IdConductor and
						  VE.TipoVehiculo = TV.IdTipo and
						  VE.Marca        = MV.IdMarca
				END

			IF @IdEvento IS NOT NULL and @IdCotizacion IS NULL
				BEGIN
					SELECT HV.IdHistoricoVehiculo
						  ,HV.IdVehiculosLog
						  ,HV.IdCotizacion
						  ,HV.IdVehiculo
						  ,HV.IdEvento
						  ,HV.FechaHistorico
						  ,HV.AccionVehiculo
						  ,HV.ValorRolVeh
						  ,HV.Autorizacion
						  ,VE.Marca
						  ,VE.Modelo
						  ,VE.Capacidad
						  ,VE.Disponible
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

					FROM [dbo].[Historico_LogVehiculo] as HV,
						 [dbo].[Vehiculos] as VE,
						 [dbo].[Tipos_Vehiculos] as TV,
						 [dbo].[Marcas_Vehiculos] as MV,
						 [dbo].[Conductores] as CD
			
					WHERE HV.IdEvento     = @IdEvento and
						  HV.IdVehiculo   = @IdVehiculo and
						  VE.IdConductor  = CD.IdConductor and
						  HV.IdVehiculo   = VE.IdVehiculo and
						  VE.TipoVehiculo = TV.IdTipo and
						  VE.Marca        = MV.IdMarca
				END

			IF @IdEvento IS NOT NULL and @IdCotizacion IS NOT NULL and @IdVehiculo IS NOT NULL
				BEGIN
					SELECT HV.IdHistoricoVehiculo
						  ,HV.IdVehiculosLog
						  ,HV.IdCotizacion
						  ,HV.IdVehiculo
						  ,HV.IdEvento
						  ,HV.FechaHistorico
						  ,HV.AccionVehiculo
						  ,HV.ValorRolVeh
						  ,HV.Autorizacion
						  ,VE.Marca
						  ,VE.Modelo
						  ,VE.Capacidad
						  ,VE.Disponible
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor

					FROM [dbo].[Historico_LogVehiculo] as HV,
						 [dbo].[Vehiculos] as VE,
						 [dbo].[Tipos_Vehiculos] as TV,
						 [dbo].[Marcas_Vehiculos] as MV,
						 [dbo].[Conductores] as CD
			
					WHERE HV.IdCotizacion = @IdCotizacion and
						  HV.IdEvento     = @IdEvento and
						  HV.IdVehiculo   = @IdVehiculo and
						  HV.IdVehiculo   = VE.IdVehiculo and
						  VE.IdConductor  = CD.IdConductor and
						  VE.TipoVehiculo = TV.IdTipo and
						  VE.Marca        = MV.IdMarca
				END
		END
END


GO
/****** Object:  StoredProcedure [dbo].[spGetInfoCarteraPDF]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Buscara Infor Cartera PDF
-- =============================================
CREATE   PROCEDURE [dbo].[spGetInfoCarteraPDF]
@IdCartera INT
AS
BEGIN TRANSACTION
SET NOCOUNT ON;

	BEGIN TRY
		SELECT 
			TP.Descripcion AS TipDoc,
			CL.Identificacion,
			(CL.Nombres +' '+CL.Apellidos) AS Clientes,
			CO.NumeroContrato,
			CO.FechaContrato,
			CIU.Nombre
		FROM [dbo].[Bodegas_Cartera] AS C
		--LEFT JOIN Bod.Abonos AS A ON A.IdCartera = C.IdCartera
		JOIN [dbo].[Bodegas_Contratos] AS CO ON C.IdContrato = CO.IdContrato
		JOIN Clientes AS CL ON CO.IdCliente = CL.IdCliente
		JOIN TipoDocumentos AS TP ON CL.TipoIdent = TP.IdTipoDoc
		JOIN [dbo].[Bodegas_Periodicidad] AS P ON CO.IdPeriodicidad = P.IdPeriodicidad
		JOIN [dbo].[Bodegas_IPC] AS IPC ON C.IdIPC = IPC.IdIPC
		JOIN Ciudades AS CIU ON CIU.IdCiudad = CO.IdCiudadOrigen 
		WHERE 
			C.IdCartera = @IdCartera

		COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH

GO
/****** Object:  StoredProcedure [dbo].[spGetInformacionBodega]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2023-01-25
-- Description:	Informacion Bodegas
-- =============================================

CREATE   PROCEDURE [dbo].[spGetInformacionBodega]
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	 -- Insert statements for procedure here
		SELECT
			SUC.IdSucursal,
			SUC.Nombre,
			COUNT(BDG.IdBodega) AS CantBodegas,
			(SELECT COUNT(BG.IdBodega) FROM [dbo].[Bodegas] AS BG JOIN [dbo].[Sucursales] AS SC ON SC.IdSucursal = BG.IdSucursal WHERE BG.CapacidadFinal <> '0' AND SC.IdSucursal = SUC.IdSucursal) as CantBodActivas,
			(SELECT COUNT(BG.IdBodega) FROM [dbo].[Bodegas] AS BG JOIN [dbo].[Sucursales] AS SC ON SC.IdSucursal = BG.IdSucursal WHERE BG.Disponible = '0' AND SC.IdSucursal = SUC.IdSucursal) as CantBodInactivas,
			(SELECT sum(CB.ValorBodega) FROM [dbo].[Bodegas_ContratoBodegas] AS CB JOIN [dbo].[Sucursales] AS SC ON SC.IdSucursal = CB.IdSucursal WHERE SC.IdSucursal = SUC.IdSucursal) AS ValorContratos,
			
			--(SELECT COUNT(BG.Disponible) FROM [dbo].[Bodegas] AS BG JOIN [dbo].[Sucursales] AS SC ON SC.IdSucursal = BG.IdSucursal WHERE BG.Disponible = 0 AND SC.IdSucursal = SUC.IdSucursal) AS CantBodActivas,
			--(SELECT COUNT(BG.Disponible) FROM [dbo].[Bodegas] AS BG JOIN [dbo].[Sucursales] AS SC ON SC.IdSucursal = BG.IdSucursal WHERE BG.Disponible = 1 AND SC.IdSucursal = SUC.IdSucursal) AS CantBodInactivas,
			'' AS Porcentaje

		FROM Sucursales AS SUC
			JOIN [dbo].[Bodegas] as BDG ON SUC.IdSucursal = BDG.IdSucursal

		GROUP BY SUC.Nombre, SUC.IdSucursal

		ORDER BY SUC.Nombre 
	
END 
GO
/****** Object:  StoredProcedure [dbo].[spGetLogActividad]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 19/12/2022
-- Description:	Buscar Actividad Logistica
-- =============================================
CREATE   PROCEDURE [dbo].[spGetLogActividad]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdLogActividad 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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdLogActividad]
			   ,[NombreActividad]
		FROM  [dbo].[Logistica_Actividad]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdLogActividad]
			   ,[NombreActividad]
		FROM  [dbo].[Logistica_Actividad] 
		WHERE IdLogActividad = @IdLogActividad
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogBodegas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024-02-21
-- Description:	Buscar Bodegas Logistica
-- =============================================
CREATE PROCEDURE [dbo].[spGetLogBodegas]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdLogBodega int = null,
	@IdCotizacion int = null,
	@IdOrden int = null,
	@IdEvento int = null,
	@ServicioBga int = null,
	@IdCompania int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = null,
	@CtrlCumplido 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 @Opcion = 1  -- Consula todos los seguimientos
		BEGIN
			SELECT LBG.IdLogBodega
				  ,LBG.IdCotizacion
				  ,LBG.IdOrden
				  ,LBG.IdEvento
				  ,LBG.IdCiudadOrigen
				  ,LBG.IdCiudadDestino
				  ,LBG.IdCompania
				  ,LBG.FechaRecogida
				  ,LBG.HoraRecogida
				  ,LBG.FechaEntrega
				  ,LBG.HoraEntrega
				  ,LBG.Volumen
				  ,LBG.ValorTransporte
				  ,LBG.Reexpedicion
				  ,LBG.IdVehiculo
				  ,LBG.Dias
				  ,LBG.ServicioBga
				  ,LBG.FechaDespacho
				  ,LBG.CiaEncargada
				  ,LBG.CtrlCumplido
				  ,CASE LBG.ServicioBga
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					ELSE '0' 
				   END AS BodegaServ
				  ,OS.NumOrden
				  ,OS.Compania
				  ,CONCAT(OS.NumOrden,'-',CIA.CodSyscom) as OrdenNum
				  ,VE.Placa
				  ,ORG.Nombre as CiudadOrigen
				  ,DST.Nombre as CiudadDestino

			FROM [dbo].[Logistica_Bodega] as LBG
					INNER JOIN [dbo].[OrdenServicio] as OS ON LBG.IdOrden = OS.IdOrden
		 			--INNER JOIN [dbo].[Cotizacion] as CT on LBG.IdCotizacion = CT.IdCotizacion 
					LEFT  JOIN [dbo].[Vehiculos] as VE ON LBG.IdVehiculo = VE.IdVehiculo
					LEFT  JOIN [dbo].[Compania] as CIA on OS.Compania = CIA.IdCia 
					INNER JOIN [dbo].[Ciudades] as ORG on LBG.IdCiudadOrigen = ORG.IdCiudad
					INNER JOIN [dbo].[Ciudades] as DST on LBG.IdCiudadDestino = DST.IdCiudad
		END

	IF @Opcion = 2  -- Consula por Parametros
		BEGIN
			DECLARE @NumDias int = 0

			SELECT 
				LBG.IdLogBodega,
				LBG.IdCotizacion,
				LBG.IdOrden,
				LBG.IdEvento,
				LBG.IdCiudadOrigen,
				LBG.IdCiudadDestino,
				LBG.IdCompania,
				LBG.FechaRecogida,
				LBG.HoraRecogida,
				LBG.FechaEntrega,
				LBG.HoraEntrega,
				LBG.Volumen,
				LBG.ValorTransporte,
				LBG.Reexpedicion,
				LBG.IdVehiculo,
				LBG.Dias,
				LBG.ServicioBga,
				LBG.FechaDespacho,
				LBG.CiaEncargada,
				LBG.CtrlCumplido,
				CASE LBG.ServicioBga
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					ELSE '0' 
				END AS BodegaServ,

				--ORDEN SERVICIO
				OS.FechaOrden,
				OS.HoraOrden,
				OS.EstadoOrden,
				OS.NumOrden,
				OS.NumInventario,
				OS.NumRequisicion,

				--COTIZACION
				CT.IdCotizacion,
				CT.IdCliente,
				CT.IdUsuario,
				CT.IdSolicitud,
				CT.FechaCotizacion,
				CT.Servicios,
				CT.Ciudad_Origen,
				CT.Direccion_Origen,
				CT.Ciudad_Destino,
				CT.Direccion_Destino,
				CT.Volumen,
				CT.Arte,
				CT.Presencial,
				CT.FechaPresencial,
				CT.HoraPresencial,
				CT.Seguro,
				CT.Valor_Declarado,
				CT.Porc_Liquidacion,
				CT.IdFormaPago,
				CT.IdMetodoPago,
				CT.Almacenamiento,
				CT.Fecha_Recogida,
				CT.Hora_Recogida,
				CT.Fecha_Entrega,
				CT.Hora_Entrega,
				CT.Autorizado,
				CT.Tipo_Ident_Autorizado,
				CT.Ident_Autorizado,
				CT.Telefono_Autorizado,
				CT.Medio_Comunicacion,
				CT.Medio_Servicio,
				CT.IdEstadoCot,
				CT.ValorCotizacion,
				CT.Observacion,
				CT.IdCotPresencial,
				CT.TipoServ,
				CT.MotivoPerdida,
				CT.ObservaPerdida,
				CT.CuartoUtil,
				CT.Exteriores,
				CT.Tapizados,
				CT.Sucursal,
				CT.ObservaPago,
				CT.Fecha_Empaque,
				CT.Hora_Empaque,
				CT.Periodicidad,
				CT.Ref_Personal,
				CT.Ref_Movil,
				CT.Ref_Direccion,
				CT.Ref_Correo,
				CT.IdBodega,
				CT.BloqueoCot,
				CT.Poliza,
				CT.Barrio_Origen,
				CT.Barrio_Destino,
				CT.IdCia,
				CASE CT.IdCia
					WHEN '8'  THEN '#F5B7B1'
					WHEN '9'  THEN '#D2B4DE'
					WHEN '10' THEN '#AED6F1'
					WHEN '11' THEN '#ABEBC6'
					WHEN '12' THEN '#F9E79F'
					WHEN '13' THEN '#D5DBDB'
					WHEN '14' THEN '#ABB2B9'
					ELSE '0' 
				END AS ColorSuc,
				  
				--VARIOS
				CONCAT(OS.NumOrden,'-',CIA.CodSyscom) as OrdenNum,
				VE.Placa,
				  
				--CIUDADES
				ORG.Nombre as CiudadOrigen,
				DST.Nombre as CiudadDestino,

				--VOLUMEN
				VLM.Descripcion,

				--CALCULAR DIAS
				(
					SELECT 
						(CASE 
							WHEN LB.CtrlCumplido = 0 THEN (DATEDIFF(DAY, (CONVERT(date,LB.FechaRecogida)),GETDATE())) 
							ELSE LB.Dias 
						END)  
					FROM 
						[dbo].[Logistica_Bodega] as LB 
					WHERE 
						LB.IdLogBodega  between ISNULL(@IdLogBodega,LB.IdLogBodega) and ISNULL(@IdLogBodega,LB.IdLogBodega) 
						and LB.IdCotizacion between ISNULL(@IdCotizacion,LB.IdCotizacion) and ISNULL(@IdCotizacion,LB.IdCotizacion) 
						and LB.IdOrden      between ISNULL(@IdOrden,LB.IdOrden) and ISNULL(@IdOrden,LB.IdOrden) 
						and LB.IdEvento     between ISNULL(@IdEvento,LB.IdEvento) and ISNULL(@IdEvento,LB.IdEvento) 
						and LB.CiaEncargada between ISNULL(@IdCompania,LB.CiaEncargada) and ISNULL(@IdCompania,LB.CiaEncargada) 
						and LB.ServicioBga  between ISNULL(@ServicioBga,LB.ServicioBga) and ISNULL(@ServicioBga,LB.ServicioBga)
						and LB.IdCotizacion = LBG.IdCotizacion
				) as NumDias
			FROM 
				[dbo].[Logistica_Bodega] as LBG
			INNER JOIN 
				[dbo].[OrdenServicio] as OS ON LBG.IdOrden = OS.IdOrden
			INNER JOIN 
				[dbo].[Cotizacion] as CT ON LBG.IdCotizacion = CT.IdCotizacion 
			LEFT  JOIN 
				[dbo].[Vehiculos] as VE ON LBG.IdVehiculo = VE.IdVehiculo
			LEFT  JOIN 
				[dbo].[Compania] as CIA ON OS.Compania = CIA.IdCia 
			INNER JOIN 
				[dbo].[Ciudades] as ORG ON LBG.IdCiudadOrigen = ORG.IdCiudad
			INNER JOIN 
				[dbo].[Ciudades] as DST ON LBG.IdCiudadDestino = DST.IdCiudad
			LEFT  JOIN 
				[dbo].[Tipo_Volumen] as VLM ON LBG.Volumen = VLM.IdTipoVolumen
			WHERE 
				LBG.IdLogBodega between ISNULL(@IdLogBodega,LBG.IdLogBodega) and ISNULL(@IdLogBodega,LBG.IdLogBodega) 
				and LBG.IdCotizacion between ISNULL(@IdCotizacion,LBG.IdCotizacion) and ISNULL(@IdCotizacion,LBG.IdCotizacion) 
				and LBG.IdOrden between ISNULL(@IdOrden,LBG.IdOrden) and ISNULL(@IdOrden,LBG.IdOrden) 
				and LBG.IdEvento between ISNULL(@IdEvento,LBG.IdEvento) and ISNULL(@IdEvento,LBG.IdEvento) 
				and LBG.CiaEncargada between ISNULL(@IdCompania,LBG.CiaEncargada) and ISNULL(@IdCompania,LBG.CiaEncargada) 
				and LBG.ServicioBga between ISNULL(@ServicioBga,LBG.ServicioBga) and ISNULL(@ServicioBga,LBG.ServicioBga) 
				and LBG.CtrlCumplido between ISNULL(@CtrlCumplido,LBG.CtrlCumplido) and ISNULL(@CtrlCumplido,LBG.CtrlCumplido)  
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogPersonal]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 14/12/2022
-- Description:	Buscar Personal Logistica
-- =============================================
CREATE   PROCEDURE [dbo].[spGetLogPersonal]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPersonalLog int = null,
	@IdCotizacion int = null,
	@IdPersonal int = null,
	@IdEvento int = null,
	@FechaIni varchar(10) = null,
	@HoraIni varchar(8) = null,
	@HoraFin varchar(8) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT PN.IdPersonalLog
				  ,PN.IdCotizacion
				  ,PN.IdPersonal
				  ,PN.Identificacion
				  ,PN.IdEvento
				  ,PN.FechaIni
				  ,PN.HoraIni
				  ,PN.HoraFin
				  ,PN.Rol
				  ,PN.ValorRolPer
				  ,PN.Autorizacion
				  ,PN.Servicio
				  
				  ,CASE PN.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Nombres ELSE PP.Nombres COLLATE Cyrillic_General_CI_AI END as Nombres
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Apellidos ELSE PP.Apellidos COLLATE Cyrillic_General_CI_AI END as Apellidos
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Direccion ELSE PP.Direccion COLLATE Cyrillic_General_CI_AI END as Direccion
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Telefono ELSE PP.Telefono COLLATE Cyrillic_General_CI_AI END as Telefono
				  ,CASE WHEN Rol >= 6 and Rol <= 10 THEN CONCAT(CT.Apellidos, ' ', CT.Nombres) ELSE CONCAT(PP.Apellidos, ' ',PP.Nombres) END as NombreCompleto

				  ,PN.CtrlPersonal
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CC.Nombre ELSE CP.Nombre END as NombreCiudad
				  ,OP.TipoOperario
				  ,OP.CodSyscom

			FROM [Logistica_Personal] as PN
					LEFT JOIN [dbo].[Personal] as PP ON PN.IdPersonal = PP.IdPersonal
					LEFT JOIN [dbo].[Conductores] as CT ON PN.IdPersonal = CT.IdConductor  and PN.Rol >= 6 and PN.Rol <= 10 
					LEFT JOIN [dbo].[Ciudades] as CP on PP.IdCiudad = CP.IdCiudad
					LEFT JOIN [dbo].[Ciudades] as CC on CT.IdCiudad = CC.IdCiudad
					LEFT JOIN [dbo].[Tipo_Operarios] as OP ON PN.Rol = OP.IdTipoOperario

		END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			SELECT PN.IdPersonalLog
					,PN.IdCotizacion
					,PN.IdPersonal
					,PN.Identificacion
					,PN.IdEvento
					,PN.FechaIni
					,PN.HoraIni
					,PN.HoraFin
					,PN.Rol
					,PN.ValorRolPer
					,PN.Autorizacion
					,PN.Servicio
				  
					,CASE PN.Servicio
						WHEN '1' THEN 'LOCAL'
						WHEN '2' THEN 'CARGUE'
						WHEN '3' THEN 'DESCARGUE'
						WHEN '4' THEN 'RECOGIDA'
						WHEN '5' THEN 'ENTREGA'
						WHEN '6' THEN 'CARGUE BODEGA'
						WHEN '7' THEN 'DESCARGUE BODEGA'
						WHEN '8' THEN 'EMPAQUE'
						WHEN '9' THEN 'INTERNACIONAL'
						WHEN '10' THEN 'ALMACENAMIENTO'
						ELSE '0' 
					 END AS NombreServ

					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Nombres ELSE PP.Nombres COLLATE Cyrillic_General_CI_AI END as Nombres
					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Apellidos ELSE PP.Apellidos COLLATE Cyrillic_General_CI_AI END as Apellidos
					,CASE WHEN Rol >= 6 and Rol <= 10 THEN CT.Direccion ELSE PP.Direccion COLLATE Cyrillic_General_CI_AI END as Direccion
					,CASE WHEN Rol >= 6 and Rol <= 10 THEN CT.Telefono ELSE PP.Telefono COLLATE Cyrillic_General_CI_AI END as Telefono
					,CASE WHEN Rol >= 6 and Rol <= 10 THEN CONCAT(CT.Apellidos, ' ', CT.Nombres) ELSE CONCAT(PP.Apellidos, ' ',PP.Nombres) END as NombreCompleto
					,CASE WHEN Rol >= 6 and Rol <= 10 THEN (CASE CT.TipoConductor 
																WHEN '1' THEN 'EN MISIÓN'
																WHEN '2' THEN 'SANTAMARIA' 
																WHEN '3' THEN 'CONTRATADOS'
																ELSE '0' 
															END ) 
													  ELSE (CASE PP.TipoContrato 
																WHEN '1' THEN 'SANTAMARIA'
																WHEN '2' THEN 'EN MISIÓN' 
																WHEN '3' THEN 'CONTRATADOS'
																ELSE '0' 
															END ) 
													  END as NomContrato
					,PN.CtrlPersonal
					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CC.Nombre ELSE CP.Nombre END as NombreCiudad
					,OP.TipoOperario
					,OP.CodSyscom

					,CONCAT('OPRR','-',PN.Autorizacion) as CodigoAuto

			FROM [Logistica_Personal] as PN
					LEFT JOIN [dbo].[Personal] as PP ON PN.IdPersonal = PP.IdPersonal
					LEFT JOIN [dbo].[Conductores] as CT ON PN.IdPersonal = CT.IdConductor and PN.Rol >= 6 and PN.Rol <= 10 
					LEFT JOIN [dbo].[Ciudades] as CP on PP.IdCiudad = CP.IdCiudad
					LEFT JOIN [dbo].[Ciudades] as CC on CT.IdCiudad = CC.IdCiudad
					LEFT JOIN [dbo].[Tipo_Operarios] as OP ON PN.Rol = OP.IdTipoOperario

			WHERE PN.IdCotizacion between ISNULL(@IdCotizacion,PN.IdCotizacion) and ISNULL(@IdCotizacion,PN.IdCotizacion) and  
				  PN.IdEvento     between ISNULL(@IdEvento,PN.IdEvento) and ISNULL(@IdEvento,PN.IdEvento)
	  END

	IF @Opcion = 3 -- Consultar por Identificacion y Idpersonal
		BEGIN
			SELECT PN.IdPersonalLog
					,PN.IdCotizacion
					,PN.IdPersonal
					,PN.Identificacion
					,PN.IdEvento
					,PN.FechaIni
					,PN.HoraIni
					,PN.HoraFin
					,PN.Rol
					,PN.ValorRolPer
					,PN.Autorizacion
					,PN.Servicio
				  
					,CASE PN.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
					END AS NombreServ

					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Nombres ELSE PP.Nombres COLLATE Cyrillic_General_CI_AI END as Nombres
					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Apellidos ELSE PP.Apellidos COLLATE Cyrillic_General_CI_AI END as Apellidos
					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Direccion ELSE PP.Direccion COLLATE Cyrillic_General_CI_AI END as Direccion
					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Telefono ELSE PP.Telefono COLLATE Cyrillic_General_CI_AI END as Telefono
					,CASE WHEN Rol >= 6 and Rol <= 10 THEN CONCAT(CT.Apellidos, ' ', CT.Nombres) ELSE CONCAT(PP.Apellidos, ' ',PP.Nombres) END as NombreCompleto
				    ,PN.CtrlPersonal
					,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CC.Nombre ELSE CP.Nombre END as NombreCiudad
					,OP.TipoOperario
					,OP.CodSyscom

			FROM [Logistica_Personal] as PN
					LEFT JOIN [dbo].[Personal] as PP ON PN.IdPersonal = PP.IdPersonal 
					LEFT JOIN [dbo].[Conductores] as CT ON PN.IdPersonal = CT.IdConductor and  PN.Rol >= 6 and PN.Rol <= 10 
					LEFT JOIN [dbo].[Ciudades] as CP on PP.IdCiudad = CP.IdCiudad
					LEFT JOIN [dbo].[Ciudades] as CC on CT.IdCiudad = CC.IdCiudad
					LEFT JOIN [dbo].[Tipo_Operarios] as OP ON PN.Rol = OP.IdTipoOperario
						  
			WHERE PN.IdCotizacion between ISNULL(@IdCotizacion,PN.IdCotizacion) and ISNULL(@IdCotizacion,PN.IdCotizacion) and  
					PN.IdPersonal between ISNULL(@IdPersonal,PN.IdPersonal) and ISNULL(@IdPersonal,PN.IdPersonal) and
					PN.IdEvento   between ISNULL(@IdEvento,PN.IdEvento) and ISNULL(@IdEvento,PN.IdEvento)
		END

	IF @Opcion = 4 -- Consultar por Personal, Fecha y Hora
		BEGIN
			DECLARE @HoraInicial varchar(8);
			DECLARE @HoraFinal varchar(8);
			SET @HoraInicial = '';
			SET @HoraFinal = '';
			
			--Sacar hora inicial y final
			SELECT @HoraInicial = MIN(HoraIni) FROM [dbo].[Logistica_Personal] WHERE FechaIni = @FechaIni and IdPersonal = @IdPersonal;
			SELECT @HoraFinal   = MAX(HoraFin) FROM [dbo].[Logistica_Personal] WHERE FechaIni = @FechaIni and IdPersonal = @IdPersonal;

			--Consultar Tabla
			SELECT PN.IdPersonalLog
				  ,PN.IdCotizacion
				  ,PN.IdPersonal
				  ,PN.Identificacion
				  ,PN.IdEvento
				  ,PN.FechaIni
				  ,PN.HoraIni
				  ,PN.HoraFin
				  ,PN.Rol
				  ,PN.ValorRolPer
				  ,PN.Autorizacion
				  ,PN.Servicio

				  ,CASE PN.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Nombres ELSE PP.Nombres COLLATE Cyrillic_General_CI_AI END as Nombres
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Apellidos ELSE PP.Apellidos COLLATE Cyrillic_General_CI_AI END as Apellidos
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Direccion ELSE PP.Direccion COLLATE Cyrillic_General_CI_AI END as Direccion
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Telefono ELSE PP.Telefono COLLATE Cyrillic_General_CI_AI END as Telefono
				  ,CASE WHEN Rol >= 6 and Rol <= 10 THEN CONCAT(CT.Apellidos, ' ', CT.Nombres) ELSE CONCAT(PP.Apellidos, ' ',PP.Nombres) END as NombreCompleto
				  ,PN.CtrlPersonal
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CC.Nombre ELSE CP.Nombre END as NombreCiudad
				  ,OP.TipoOperario
				  ,OP.CodSyscom
				  ,@HoraInicial as Inicial
				  ,@HoraFinal as Final

			FROM [Logistica_Personal] as PN
					LEFT JOIN [dbo].[Personal] as PP ON PN.IdPersonal = PP.IdPersonal 
					LEFT JOIN [dbo].[Conductores] as CT ON PN.IdPersonal = CT.IdConductor and  PN.Rol >= 6 and PN.Rol <= 10 
					LEFT JOIN [dbo].[Ciudades] as CP on PP.IdCiudad = CP.IdCiudad
					LEFT JOIN [dbo].[Ciudades] as CC on CT.IdCiudad = CC.IdCiudad
					LEFT JOIN [dbo].[Tipo_Operarios] as OP ON PN.Rol = OP.IdTipoOperario
			
			WHERE PN.IdPersonal = @IdPersonal and
				  PN.FechaIni   = @FechaIni and
				  PN.HoraIni    between @HoraInicial and @HoraFinal 
		END
	  
	IF @Opcion = 5  -- Consula todos los Tipo
		BEGIN
			SELECT PN.IdPersonalLog
				  ,PN.IdCotizacion
				  ,PN.IdPersonal
				  ,PN.Identificacion
				  ,PN.IdEvento
				  ,PN.FechaIni
				  ,PN.HoraIni
				  ,PN.HoraFin
				  ,PN.Rol
				  ,PN.ValorRolPer
				  ,PN.Autorizacion
				  ,PN.Servicio

				  ,CASE PN.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Nombres ELSE PP.Nombres COLLATE Cyrillic_General_CI_AI END as Nombres
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Apellidos ELSE PP.Apellidos COLLATE Cyrillic_General_CI_AI END as Apellidos
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Direccion ELSE PP.Direccion COLLATE Cyrillic_General_CI_AI END as Direccion
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CT.Telefono ELSE PP.Telefono COLLATE Cyrillic_General_CI_AI END as Telefono
				  ,CASE WHEN Rol >= 6 and Rol <= 10 THEN CONCAT(CT.Apellidos, ' ', CT.Nombres) ELSE CONCAT(PP.Apellidos, ' ',PP.Nombres) END as NombreCompleto
				  ,PN.CtrlPersonal
				  ,CASE WHEN Rol >= 6 AND Rol <= 10 THEN CC.Nombre ELSE CP.Nombre END as NombreCiudad
				  ,OP.TipoOperario
				  ,OP.CodSyscom

			FROM [Logistica_Personal] as PN
					LEFT JOIN [dbo].[Personal] as PP ON PN.IdPersonal = PP.IdPersonal 
					LEFT JOIN [dbo].[Conductores] as CT ON PN.IdPersonal = CT.IdConductor and  PN.Rol >= 6 and PN.Rol <= 10 
					LEFT JOIN [dbo].[Ciudades] as CP on PP.IdCiudad = CP.IdCiudad
					LEFT JOIN [dbo].[Ciudades] as CC on CT.IdCiudad = CC.IdCiudad
					LEFT JOIN [dbo].[Tipo_Operarios] as OP ON PN.Rol = OP.IdTipoOperario
			
			WHERE PN.IdPersonalLog = @IdPersonalLog
	  END

	IF @Opcion = 6  -- Consula todos los Tipo
		BEGIN
			SELECT MAX(PN.CtrlPersonal) as ControlPer FROM [dbo].[Logistica_Personal] as PN WHERE PN.IdCotizacion = @IdCotizacion and PN.IdEvento = @IdEvento
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogPersonalAutorizacion]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:	     Sergio Rendón Gómez
-- Create date:  06-07-2024
-- Description:	 Buscar Codigo de autorizacion
-- ===========================================
CREATE PROCEDURE [dbo].[spGetLogPersonalAutorizacion]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdAutorizar int = null,
	@IdCotizacion int = null,
	@FechaAutorizar varchar(10) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT LPA.IdAutorizar
				  ,LPA.Codigo
				  ,LPA.NomAutorizar
				  ,LPA.FechaAutorizar
				  ,LPA.IdEvento
				  ,LPA.IdCotizacion

			FROM [dbo].[LogPersonal_Autorizacion] as LPA

		END

	IF @Opcion = 2 --Consulta por parametros
		BEGIN 
			SELECT LPA.IdAutorizar
				  ,LPA.Codigo
				  ,LPA.NomAutorizar
				  ,LPA.FechaAutorizar
				  ,LPA.IdEvento
				  ,LPA.IdCotizacion

			FROM [dbo].[LogPersonal_Autorizacion] as LPA

			WHERE LPA.IdAutorizar  between ISNULL(@IdAutorizar,LPA.IdAutorizar) and ISNULL(@IdAutorizar,LPA.IdAutorizar) and 
				  LPA.IdCotizacion between ISNULL(@IdCotizacion,LPA.IdCotizacion) and ISNULL(@IdCotizacion,LPA.IdCotizacion)

		END

	IF @Opcion = 3 --Consulta por Codigo Maximo
		BEGIN 
			SELECT MAX(Codigo) as CodigoMax, NomAutorizar FROM [dbo].[LogPersonal_Autorizacion] GROUP BY NomAutorizar
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogSeguimientos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 19/12/2022
-- Description:	Buscar Seguimientos Logistica
-- =============================================
CREATE   PROCEDURE [dbo].[spGetLogSeguimientos]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdLogSeguimiento int = null,
	@IdVehiculo int = null,
	@IdOrdenServicio int = null,
	@IdEvento int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = 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 @Opcion = 1  -- Consula todos los seguimientos
		BEGIN
			SELECT LS.IdLogSeguimiento
				  ,LS.IdCotizacion
				  ,LS.IdOrdenServicio
				  ,LS.IdEvento
				  ,LS.IdVehiculo
				  ,LS.IdCompania
				  ,LS.IdActividad
				  ,LS.IdCiudadDestino
				  ,LS.FechaServicio
				  ,LS.Reporte1
				  ,LS.Reporte2
				  ,LS.Reporte3
				  ,LS.Reporte4
				  ,VE.Placa
				  ,CA.NombreCia
				  ,CD.Nombre as NombreCiudad
				  ,OS.NumOrden
				  ,LA.NombreActividad
  
			FROM [dbo].[Logistica_Seguimientos] as LS
				  INNER JOIN [dbo].[Vehiculos] as VE ON LS.IdVehiculo = VE.IdVehiculo
				  INNER JOIN [dbo].[Compania] as CA ON LS.IdCompania = CA.IdCia
				  INNER JOIN [dbo].[Ciudades] as CD ON LS.IdCiudadDestino = CD.IdCiudad
				  INNER JOIN [dbo].[OrdenServicio] as OS ON LS.IdOrdenServicio = OS.IdOrden
				  INNER JOIN [dbo].[Logistica_Actividad] as LA ON LS.IdActividad = LA.IdLogActividad
		END

	IF @Opcion = 2  -- Consula por seguimiento
		BEGIN
			SELECT LS.IdLogSeguimiento
				  ,LS.IdCotizacion
				  ,LS.IdOrdenServicio
				  ,LS.IdEvento
				  ,LS.IdVehiculo
				  ,LS.IdCompania
				  ,LS.IdActividad
				  ,LS.IdCiudadDestino
				  ,LS.FechaServicio
				  ,LS.Reporte1
				  ,LS.Reporte2
				  ,LS.Reporte3
				  ,LS.Reporte4
				  ,VE.Placa
				  ,CA.NombreCia
				  ,CD.Nombre as NombreCiudad
				  ,OS.NumOrden
				  ,LA.NombreActividad
  
			FROM [dbo].[Logistica_Seguimientos] as LS
				  INNER JOIN [dbo].[Vehiculos] as VE ON LS.IdVehiculo = VE.IdVehiculo
				  INNER JOIN [dbo].[Compania] as CA ON LS.IdCompania = CA.IdCia
				  INNER JOIN [dbo].[Ciudades] as CD ON LS.IdCiudadDestino = CD.IdCiudad
				  INNER JOIN [dbo].[OrdenServicio] as OS ON LS.IdOrdenServicio = OS.IdOrden
				  INNER JOIN [dbo].[Logistica_Actividad] as LA ON LS.IdActividad = LA.IdLogActividad

			WHERE LS.IdLogSeguimiento = @IdLogSeguimiento
		END

	IF @Opcion = 3 -- Consultar por Cotizacion
		BEGIN
			SELECT LS.IdLogSeguimiento
				  ,LS.IdCotizacion
				  ,LS.IdOrdenServicio
				  ,LS.IdEvento
				  ,LS.IdVehiculo
				  ,LS.IdCompania
				  ,LS.IdActividad
				  ,LS.IdCiudadDestino
				  ,LS.FechaServicio
				  ,LS.Reporte1
				  ,LS.Reporte2
				  ,LS.Reporte3
				  ,LS.Reporte4
				  ,VE.Placa
				  ,CA.NombreCia
				  ,CD.Nombre as NombreCiudad
				  ,OS.NumOrden
				  ,LA.NombreActividad
  
			FROM [dbo].[Logistica_Seguimientos] as LS
				  INNER JOIN [dbo].[Vehiculos] as VE ON LS.IdVehiculo = VE.IdVehiculo
				  INNER JOIN [dbo].[Compania] as CA ON LS.IdCompania = CA.IdCia
				  INNER JOIN [dbo].[Ciudades] as CD ON LS.IdCiudadDestino = CD.IdCiudad
				  INNER JOIN [dbo].[OrdenServicio] as OS ON LS.IdOrdenServicio = OS.IdOrden
				  INNER JOIN [dbo].[Logistica_Actividad] as LA ON LS.IdActividad = LA.IdLogActividad
				 
			WHERE LS.IdVehiculo      between ISNULL(@IdVehiculo,0) and ISNULL(@IdVehiculo,999999) and 
				  LS.IdEvento        between ISNULL(@IdEvento,0) and ISNULL(@IdEvento,999999) and 
				  LS.IdOrdenServicio between ISNULL(@IdOrdenServicio,0) and ISNULL(@IdOrdenServicio,999999)
		END

	IF @Opcion = 4  -- Consula por fechas
		BEGIN
			SELECT LS.IdLogSeguimiento
				  ,LS.IdCotizacion
				  ,LS.IdOrdenServicio
				  ,LS.IdEvento
				  ,LS.IdVehiculo
				  ,LS.IdCompania
				  ,LS.IdActividad
				  ,LS.IdCiudadDestino
				  ,LS.FechaServicio
				  ,LS.Reporte1
				  ,LS.Reporte2
				  ,LS.Reporte3
				  ,LS.Reporte4
				  ,VE.Placa
				  ,CA.NombreCia
				  ,CD.Nombre as NombreCiudad
				  ,OS.NumOrden
				  ,LA.NombreActividad
  
			FROM [dbo].[Logistica_Seguimientos] as LS
				  INNER JOIN [dbo].[Vehiculos] as VE ON LS.IdVehiculo = VE.IdVehiculo
				  INNER JOIN [dbo].[Compania] as CA ON LS.IdCompania = CA.IdCia
				  INNER JOIN [dbo].[Ciudades] as CD ON LS.IdCiudadDestino = CD.IdCiudad
				  INNER JOIN [dbo].[OrdenServicio] as OS ON LS.IdOrdenServicio = OS.IdOrden
				  INNER JOIN [dbo].[Logistica_Actividad] as LA ON LS.IdActividad = LA.IdLogActividad

			WHERE LS.FechaServicio between @FechaIni and @FechaFin 
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogTrafico]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 30/03/2023
-- Description:	Buscar Control Trafico
-- ================================================
CREATE PROCEDURE [dbo].[spGetLogTrafico]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdTrafico int = null,
    @Manifiesto int = null,
	@IdVehiculo int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = 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 @Opcion = 1  -- Consula todos los Controles
		BEGIN
			SELECT LT.IdTrafico
				  ,LT.IdVehiculo
				  ,LT.IdCiudad
				  ,LT.Fecha
				  ,LT.Manifiesto
				  ,LT.IdCia
				  ,LT.IdRuta
				  ,LT.ValorFlete
				  ,LT.Flete_Conductor
				  ,LT.Flete_Socio
				  ,LT.Descuento_Socio
				  ,LT.Estado_Trafico
				  ,LT.Flete_Locales
				  ,LT.Dcto_Oficina
				  ,LT.Descargue
				  ,LT.Papeleria
				  ,LT.Reexpedir
				  ,CASE LT.Estado_Trafico
					WHEN '1' THEN 'ABIERTO'
					WHEN '2' THEN 'CERRADO'
					ELSE '0' 
				   END AS EstadoTraf
				  ,VH.Placa
				  ,VH.Afiliacion
				  ,CD.Nombre as Ciudad
				  ,CA.NombreCia
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom

			FROM [dbo].[Logistica_Trafico] as LT
				   INNER JOIN [dbo].[Vehiculos] as VH ON LT.IdVehiculo = VH.IdVehiculo
				   INNER JOIN [dbo].[Ciudades] as CD ON LT.IdCiudad = CD.IdCiudad
				   INNER JOIN [dbo].[Compania] as CA ON LT.IdCia = CA.IdCia
				   INNER JOIN [dbo].[Rutas] as RT ON LT.IdRuta = RT.IdRutas

			WHERE LT.Estado_Trafico = 1  
		 END

	IF @Opcion = 2 -- Consultar por Id Trafico
		BEGIN
			SELECT LT.IdTrafico
				  ,LT.IdVehiculo
				  ,LT.IdCiudad
				  ,LT.Fecha
				  ,LT.Manifiesto
				  ,LT.IdCia
				  ,LT.IdRuta
				  ,LT.ValorFlete
				  ,LT.Flete_Conductor
				  ,LT.Flete_Socio
				  ,LT.Descuento_Socio
				  ,LT.Estado_Trafico
				  ,LT.Flete_Locales
				  ,LT.Dcto_Oficina
				  ,LT.Descargue
				  ,LT.Papeleria
				  ,LT.Reexpedir
				  ,CASE LT.Estado_Trafico
					WHEN '1' THEN 'ABIERTO'
					WHEN '2' THEN 'CERRADO'
					ELSE '0' 
				   END AS EstadoTraf
				  ,VH.Placa
				  ,VH.Afiliacion
				  ,CD.Nombre as Ciudad
				  ,CA.NombreCia
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom

			FROM [dbo].[Logistica_Trafico] as LT
				   INNER JOIN [dbo].[Vehiculos] as VH ON LT.IdVehiculo = VH.IdVehiculo
				   INNER JOIN [dbo].[Ciudades] as CD ON LT.IdCiudad = CD.IdCiudad
				   INNER JOIN [dbo].[Compania] as CA ON LT.IdCia = CA.IdCia
				   INNER JOIN [dbo].[Rutas] as RT ON LT.IdRuta = RT.IdRutas

			WHERE LT.IdTrafico  = @IdTrafico 
				   
		END

	IF @Opcion = 3 -- Consultar por Manifiesto 
		BEGIN
			SELECT LT.IdTrafico
				  ,LT.IdVehiculo
				  ,LT.IdCiudad
				  ,LT.Fecha
				  ,LT.Manifiesto
				  ,LT.IdCia
				  ,LT.IdRuta
				  ,LT.ValorFlete
				  ,LT.Flete_Conductor
				  ,LT.Flete_Socio
				  ,LT.Descuento_Socio
				  ,LT.Estado_Trafico
				  ,LT.Flete_Locales
				  ,LT.Dcto_Oficina
				  ,LT.Descargue
				  ,LT.Papeleria
				  ,LT.Reexpedir
				  ,CASE LT.Estado_Trafico
					WHEN '1' THEN 'ABIERTO'
					WHEN '2' THEN 'CERRADO'
					ELSE '0' 
				   END AS EstadoTraf
				  ,VH.Placa
				  ,VH.Afiliacion
				  ,CD.Nombre as Ciudad
				  ,CA.NombreCia
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom

			FROM [dbo].[Logistica_Trafico] as LT
				   INNER JOIN [dbo].[Vehiculos] as VH ON LT.IdVehiculo = VH.IdVehiculo
				   INNER JOIN [dbo].[Ciudades] as CD ON LT.IdCiudad = CD.IdCiudad
				   INNER JOIN [dbo].[Compania] as CA ON LT.IdCia = CA.IdCia
				   INNER JOIN [dbo].[Rutas] as RT ON LT.IdRuta = RT.IdRutas

			WHERE LT.Manifiesto = @Manifiesto 
		END

	IF @Opcion = 4 -- Consultar por Manifiesto y vehiculo entre la primero y la ultima fecha del mes
		BEGIN
			SELECT LT.IdTrafico
				  ,LT.IdVehiculo
				  ,LT.IdCiudad
				  ,LT.Fecha
				  ,LT.Manifiesto
				  ,LT.IdCia
				  ,LT.IdRuta
				  ,LT.ValorFlete
				  ,LT.Flete_Conductor
				  ,LT.Flete_Socio
				  ,LT.Descuento_Socio
				  ,LT.Estado_Trafico
				  ,LT.Flete_Locales
				  ,LT.Dcto_Oficina
				  ,LT.Descargue
				  ,LT.Papeleria
				  ,LT.Reexpedir
				  ,CASE LT.Estado_Trafico
					WHEN '1' THEN 'ABIERTO'
					WHEN '2' THEN 'CERRADO'
					ELSE '0' 
				   END AS EstadoTraf
				  ,VH.Placa
				  ,VH.Afiliacion
				  ,CD.Nombre as Ciudad
				  ,CA.NombreCia
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom

			FROM [dbo].[Logistica_Trafico] as LT
				   INNER JOIN [dbo].[Vehiculos] as VH ON LT.IdVehiculo = VH.IdVehiculo
				   INNER JOIN [dbo].[Ciudades] as CD ON LT.IdCiudad = CD.IdCiudad
				   INNER JOIN [dbo].[Compania] as CA ON LT.IdCia = CA.IdCia
				   INNER JOIN [dbo].[Rutas] as RT ON LT.IdRuta = RT.IdRutas

			WHERE LT.Manifiesto = @Manifiesto and
				  LT.IdVehiculo = @IdVehiculo and
				  LT.Fecha between DATEADD(DAY,1,EOMONTH(GETDATE(), -1)) and EOMONTH(GETDATE())
		END

	IF @Opcion = 5 -- Consultar por placa y fechas
		BEGIN
			IF @IdVehiculo IS NOT NULL and @FechaIni IS NOT NULL and @FechaFin IS NOT NULL
				BEGIN
					SELECT LT.IdTrafico
						  ,LT.IdVehiculo
						  ,LT.IdCiudad
						  ,LT.Fecha
						  ,LT.Manifiesto
						  ,LT.IdCia
						  ,LT.IdRuta
						  ,LT.ValorFlete
						  ,LT.Flete_Conductor
						  ,LT.Flete_Socio
						  ,LT.Descuento_Socio
						  ,LT.Estado_Trafico
						  ,LT.Flete_Locales
						  ,LT.Dcto_Oficina
						  ,LT.Descargue
						  ,LT.Papeleria
						  ,LT.Reexpedir
						  ,CASE LT.Estado_Trafico
							WHEN '1' THEN 'ABIERTO'
							WHEN '2' THEN 'CERRADO'
							ELSE '0' 
						   END AS EstadoTraf
						  ,VH.Placa
						  ,VH.Afiliacion
						  ,CD.Nombre as Ciudad
						  ,CA.NombreCia
						  ,RT.Nombre_Ruta
						  ,RT.CodSyscom

					FROM [dbo].[Logistica_Trafico] as LT,
						 [dbo].[Vehiculos] as VH,
						 [dbo].[Ciudades] as CD,
						 [dbo].[Compania] as CA,
						 [dbo].[Rutas] as RT

					WHERE LT.IdVehiculo = @IdVehiculo and
						  LT.IdVehiculo = VH.IdVehiculo and
						  LT.IdCiudad   = CD.IdCiudad and
						  LT.IdCia      = CA.IdCia and
						  LT.IdRuta     = RT.IdRutas  and
						  LT.Fecha between @FechaIni and @FechaFin
				END

			IF @IdVehiculo IS NULL and @FechaIni IS NOT NULL and @FechaFin IS NOT NULL
				BEGIN
					SELECT LT.IdTrafico
						  ,LT.IdVehiculo
						  ,LT.IdCiudad
						  ,LT.Fecha
						  ,LT.Manifiesto
						  ,LT.IdCia
						  ,LT.IdRuta
						  ,LT.ValorFlete
						  ,LT.Flete_Conductor
						  ,LT.Flete_Socio
						  ,LT.Descuento_Socio
						  ,LT.Estado_Trafico
						  ,LT.Flete_Locales
						  ,LT.Dcto_Oficina
						  ,LT.Descargue
						  ,LT.Papeleria
						  ,LT.Reexpedir
						  ,CASE LT.Estado_Trafico
							WHEN '1' THEN 'ABIERTO'
							WHEN '2' THEN 'CERRADO'
							ELSE '0' 
						   END AS EstadoTraf
						  ,VH.Placa
						  ,VH.Afiliacion
						  ,CD.Nombre as Ciudad
						  ,CA.NombreCia
						  ,RT.Nombre_Ruta
						  ,RT.CodSyscom

					FROM [dbo].[Logistica_Trafico] as LT,
						 [dbo].[Vehiculos] as VH,
						 [dbo].[Ciudades] as CD,
						 [dbo].[Compania] as CA,
						 [dbo].[Rutas] as RT

					WHERE LT.IdVehiculo = VH.IdVehiculo and
						  LT.IdCiudad   = CD.IdCiudad and
						  LT.IdCia      = CA.IdCia and
						  LT.IdRuta     = RT.IdRutas  and
						  LT.Fecha between @FechaIni and @FechaFin
				END

			IF @IdVehiculo IS NOT NULL and @FechaIni IS NULL and @FechaFin IS NULL
				BEGIN
					SELECT LT.IdTrafico
						  ,LT.IdVehiculo
						  ,LT.IdCiudad
						  ,LT.Fecha
						  ,LT.Manifiesto
						  ,LT.IdCia
						  ,LT.IdRuta
						  ,LT.ValorFlete
						  ,LT.Flete_Conductor
						  ,LT.Flete_Socio
						  ,LT.Descuento_Socio
						  ,LT.Estado_Trafico
						  ,LT.Flete_Locales
						  ,LT.Dcto_Oficina
						  ,LT.Descargue
						  ,LT.Papeleria
						  ,LT.Reexpedir
						  ,CASE LT.Estado_Trafico
							WHEN '1' THEN 'ABIERTO'
							WHEN '2' THEN 'CERRADO'
							ELSE '0' 
						   END AS EstadoTraf
						  ,VH.Placa
						  ,VH.Afiliacion
						  ,CD.Nombre as Ciudad
						  ,CA.NombreCia
						  ,RT.Nombre_Ruta
						  ,RT.CodSyscom

					FROM [dbo].[Logistica_Trafico] as LT,
						 [dbo].[Vehiculos] as VH,
						 [dbo].[Ciudades] as CD,
						 [dbo].[Compania] as CA,
						 [dbo].[Rutas] as RT

					WHERE LT.IdVehiculo = @IdVehiculo and
						  LT.IdVehiculo = VH.IdVehiculo and
						  LT.IdCiudad   = CD.IdCiudad and
						  LT.IdCia      = CA.IdCia and
						  LT.IdRuta     = RT.IdRutas
				END

			
			IF @IdVehiculo IS NULL and @FechaIni IS NULL and @FechaFin IS NULL
				BEGIN
					SELECT LT.IdTrafico
						  ,LT.IdVehiculo
						  ,LT.IdCiudad
						  ,LT.Fecha
						  ,LT.Manifiesto
						  ,LT.IdCia
						  ,LT.IdRuta
						  ,LT.ValorFlete
						  ,LT.Flete_Conductor
						  ,LT.Flete_Socio
						  ,LT.Descuento_Socio
						  ,LT.Estado_Trafico
						  ,LT.Flete_Locales
						  ,LT.Dcto_Oficina
						  ,LT.Descargue
						  ,LT.Papeleria
						  ,LT.Reexpedir
						  ,CASE LT.Estado_Trafico
							WHEN '1' THEN 'ABIERTO'
							WHEN '2' THEN 'CERRADO'
							ELSE '0' 
						   END AS EstadoTraf
						  ,VH.Placa
						  ,VH.Afiliacion
						  ,CD.Nombre as Ciudad
						  ,CA.NombreCia
						  ,RT.Nombre_Ruta
						  ,RT.CodSyscom

					FROM [dbo].[Logistica_Trafico] as LT,
						 [dbo].[Vehiculos] as VH,
						 [dbo].[Ciudades] as CD,
						 [dbo].[Compania] as CA,
						 [dbo].[Rutas] as RT

					WHERE LT.IdVehiculo = VH.IdVehiculo and
						  LT.IdCiudad   = CD.IdCiudad and
						  LT.IdCia      = CA.IdCia and
						  LT.IdRuta     = RT.IdRutas
				END
		END

	IF @Opcion = 6  -- Registrar Totales
		BEGIN
			DECLARE 
			@VrFactura numeric(18,0) = null,
			@FleteNal  numeric(18,0) = null,
			@FleteLoc  numeric(18,0) = null,
			@DtOficina numeric(18,0) = null,
			@Descargue numeric(18,0) = null,
			@Papeleria numeric(18,0) = null,
			@Reexpedir numeric(18,0) = null,
			@FleteSoc  numeric(18,0) = null

			--Generar IVA
			SELECT @VrFactura = sum(ValorFactura),
				   @FleteNal  = sum(Subtotal_Conductor),
				   @DtOficina = sum(Oficina), 
				   @Descargue = sum(Cargue_Descargue), 
				   @Papeleria = sum(Papeleria_Socio), 
				   @Reexpedir = sum(Reexpedicion),
				   @FleteSoc  = sum(Subtotal_Socio)
			
			FROM [dbo].[Logistica_TraficoDetalles] 
			
			WHERE IdTrafico = @IdTrafico 
			
			--Registrar Totales
			UPDATE [dbo].[Logistica_Trafico] 
			
			SET ValorFlete      = @VrFactura,
				Flete_Conductor = @FleteNal,
				Dcto_Oficina    = @DtOficina,
				Descargue       = @Descargue,
				Papeleria       = @Papeleria,
				Reexpedir       = @Reexpedir,
				Flete_Socio     = @FleteSoc,
				Flete_Locales   = 0
			
			WHERE IdTrafico = @IdTrafico
		END

END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogTraficoDetalles]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 04/04/2023
-- Description:	Buscar Control Trafico Detalles
-- ================================================
CREATE PROCEDURE [dbo].[spGetLogTraficoDetalles]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdDetalle_Trafico int = null,
	@IdTrafico int = null,
	@IdCotizacion int = null,
    @Manifiesto int = null,
	@CtrlManifiesto 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 @Opcion = 1  -- Consultar por Id TraficoDetalle
		BEGIN
			SELECT TD.IdDetalle_Trafico
				  ,TD.IdTrafico
				  ,TD.IdCotizacion
				  ,TD.IdCliente
				  ,TD.IdRuta_Detalle
				  ,TD.KmRuta_Detalle
				  ,TD.Manifiesto
				  ,TD.Direccion_Destino
				  ,TD.Movil
				  ,TD.Remesa
				  ,TD.IdOrden
				  ,TD.ValorFactura
				  ,TD.Abono
				  ,TD.Saldo
				  ,TD.Seguro
				  ,TD.Bodega
				  ,TD.Iva
				  ,TD.Empaque
				  ,TD.Montacargas
				  ,TD.Otros
				  ,TD.Servicio_Planta
				  ,TD.Recogida_Entrega
				  ,TD.Recogida_Supern
				  ,TD.Oficina
				  ,TD.Reexpedicion
				  ,TD.Veh_Reexpedicion
				  ,TD.Subtotal_Conductor
				  ,TD.Cargue_Descargue
				  ,TD.Papeleria_Socio
				  ,TD.OficinaPrincipal
				  ,TD.Subtotal_Socio
				  ,TD.IdEvento
				  ,TD.CtrlManifiesto
				  ,CASE TD.Servicio_Planta
					WHEN '1' THEN 'SI'
					WHEN '2' THEN 'NO'
					WHEN '3' THEN 'VH CARRETERA'
					ELSE '0' 
				   END AS ServicioPlanta
				  ,CL.Identificacion
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCompleto
				  ,OS.NumOrden
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom as Ruta_Cod

			FROM [dbo].[Logistica_TraficoDetalles] as TD
					INNER JOIN [dbo].[Clientes] as CL ON TD.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[OrdenServicio] as OS ON TD.IdOrden = OS.IdOrden
					INNER JOIN [dbo].[Rutas] as RT ON TD.IdRuta_Detalle = RT.IdRutas

			WHERE TD.IdDetalle_Trafico between ISNULL(@IdDetalle_Trafico,TD.IdDetalle_Trafico) and ISNULL(@IdDetalle_Trafico,TD.IdDetalle_Trafico)
				   

			ORDER BY TD.KmRuta_Detalle Desc
		END

	IF @Opcion = 2 -- Consultar por Id Trafico
		BEGIN
			SELECT TD.IdDetalle_Trafico
				  ,TD.IdTrafico
				  ,TD.IdCotizacion
				  ,TD.IdCliente
				  ,TD.IdRuta_Detalle
				  ,TD.KmRuta_Detalle
				  ,TD.Manifiesto
				  ,TD.Direccion_Destino
				  ,TD.Movil
				  ,TD.Remesa
				  ,TD.IdOrden
				  ,TD.ValorFactura
				  ,TD.Abono
				  ,TD.Saldo
				  ,TD.Seguro
				  ,TD.Bodega
				  ,TD.Iva
				  ,TD.Empaque
				  ,TD.Montacargas
				  ,TD.Otros
				  ,TD.Servicio_Planta
				  ,TD.Recogida_Entrega
				  ,TD.Recogida_Supern
				  ,TD.Oficina
				  ,TD.Reexpedicion
				  ,TD.Veh_Reexpedicion
				  ,TD.Subtotal_Conductor
				  ,TD.Cargue_Descargue
				  ,TD.Papeleria_Socio
				  ,TD.OficinaPrincipal
				  ,TD.Subtotal_Socio
				  ,TD.IdEvento
				  ,TD.CtrlManifiesto
				  ,CASE TD.Servicio_Planta
					WHEN '1' THEN 'SI'
					WHEN '2' THEN 'NO'
					WHEN '3' THEN 'VH CARRETERA'
					ELSE '0' 
				   END AS ServicioPlanta
				  ,CL.Identificacion
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCompleto
				  ,OS.NumOrden
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom as Ruta_Cod

			FROM [dbo].[Logistica_TraficoDetalles] as TD
					INNER JOIN [dbo].[Clientes] as CL ON TD.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[OrdenServicio] as OS ON TD.IdOrden = OS.IdOrden
					INNER JOIN [dbo].[Rutas] as RT ON TD.IdRuta_Detalle = RT.IdRutas

			WHERE TD.IdTrafico between ISNULL(@IdTrafico,TD.IdTrafico) and ISNULL(@IdTrafico,TD.IdTrafico)

			ORDER BY TD.KmRuta_Detalle Desc
		END

	IF @Opcion = 3 -- Consultar por Manifiesto
		BEGIN
			SELECT TD.IdDetalle_Trafico
				  ,TD.IdTrafico
				  ,TD.IdCotizacion
				  ,TD.IdCliente
				  ,TD.IdRuta_Detalle
				  ,TD.KmRuta_Detalle
				  ,TD.Manifiesto
				  ,TD.Direccion_Destino
				  ,TD.Movil
				  ,TD.Remesa
				  ,TD.IdOrden
				  ,TD.ValorFactura
				  ,TD.Abono
				  ,TD.Saldo
				  ,TD.Seguro
				  ,TD.Bodega
				  ,TD.Iva
				  ,TD.Empaque
				  ,TD.Montacargas
				  ,TD.Otros
				  ,TD.Servicio_Planta
				  ,TD.Recogida_Entrega
				  ,TD.Recogida_Supern
				  ,TD.Oficina
				  ,TD.Reexpedicion
				  ,TD.Veh_Reexpedicion
				  ,TD.Subtotal_Conductor
				  ,TD.Cargue_Descargue
				  ,TD.Papeleria_Socio
				  ,TD.OficinaPrincipal
				  ,TD.Subtotal_Socio
				  ,TD.IdEvento
				  ,TD.CtrlManifiesto
				  ,CASE TD.Servicio_Planta
					WHEN '1' THEN 'SI'
					WHEN '2' THEN 'NO'
					WHEN '3' THEN 'VH CARRETERA'
					ELSE '0' 
				   END AS ServicioPlanta
				  ,CL.Identificacion
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCompleto
				  ,OS.NumOrden
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom as Ruta_Cod

			FROM [dbo].[Logistica_TraficoDetalles] as TD
					INNER JOIN [dbo].[Clientes] as CL ON TD.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[OrdenServicio] as OS ON TD.IdOrden = OS.IdOrden
					INNER JOIN [dbo].[Rutas] as RT ON TD.IdRuta_Detalle = RT.IdRutas

			WHERE TD.Manifiesto between ISNULL(@Manifiesto,TD.Manifiesto) and ISNULL(@Manifiesto,TD.Manifiesto)

			ORDER BY TD.KmRuta_Detalle Desc
		END

	IF @Opcion = 4 -- Consultar por IdTarifa la ruta mayor
		BEGIN
			SELECT TD.IdDetalle_Trafico
				  ,TD.IdTrafico
				  ,TD.IdCotizacion
				  ,TD.IdCliente
				  ,TD.IdRuta_Detalle
				  ,TD.KmRuta_Detalle
				  ,TD.Manifiesto
				  ,TD.Direccion_Destino
				  ,TD.Movil
				  ,TD.Remesa
				  ,TD.IdOrden
				  ,TD.ValorFactura
				  ,TD.Abono
				  ,TD.Saldo
				  ,TD.Seguro
				  ,TD.Bodega
				  ,TD.Iva
				  ,TD.Empaque
				  ,TD.Montacargas
				  ,TD.Otros
				  ,TD.Servicio_Planta
				  ,TD.Recogida_Entrega
				  ,TD.Recogida_Supern
				  ,TD.Oficina
				  ,TD.Reexpedicion
				  ,TD.Veh_Reexpedicion
				  ,TD.Subtotal_Conductor
				  ,TD.Cargue_Descargue
				  ,TD.Papeleria_Socio
				  ,TD.OficinaPrincipal
				  ,TD.Subtotal_Socio
				  ,TD.IdEvento
				  ,TD.CtrlManifiesto
				  ,CASE TD.Servicio_Planta
					WHEN '1' THEN 'SI'
					WHEN '2' THEN 'NO'
					WHEN '3' THEN 'VH CARRETERA'
					ELSE '0' 
				   END AS ServicioPlanta
				  ,CL.Identificacion
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCompleto
				  ,OS.NumOrden
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom as Ruta_Cod

			FROM [dbo].[Logistica_TraficoDetalles] as TD
					INNER JOIN [dbo].[Clientes] as CL ON TD.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[OrdenServicio] as OS ON TD.IdOrden = OS.IdOrden
					INNER JOIN [dbo].[Rutas] as RT ON TD.IdRuta_Detalle = RT.IdRutas

			WHERE TD.KmRuta_Detalle = (SELECT MAX(KmRuta_Detalle) FROM [dbo].[Logistica_TraficoDetalles] WHERE IdTrafico = @IdTrafico) 

			ORDER BY TD.KmRuta_Detalle Desc
		END

	IF @Opcion = 5 -- Consultar por Cotizacion, Trafico, manifiesto
		BEGIN
			SELECT TD.IdDetalle_Trafico
				  ,TD.IdTrafico
				  ,TD.IdCotizacion
				  ,TD.IdCliente
				  ,TD.IdRuta_Detalle
				  ,TD.KmRuta_Detalle
				  ,TD.Manifiesto
				  ,TD.Direccion_Destino
				  ,TD.Movil
				  ,TD.Remesa
				  ,TD.IdOrden
				  ,TD.ValorFactura
				  ,TD.Abono
				  ,TD.Saldo
				  ,TD.Seguro
				  ,TD.Bodega
				  ,TD.Iva
				  ,TD.Empaque
				  ,TD.Montacargas
				  ,TD.Otros
				  ,TD.Servicio_Planta
				  ,TD.Recogida_Entrega
				  ,TD.Recogida_Supern
				  ,TD.Oficina
				  ,TD.Reexpedicion
				  ,TD.Veh_Reexpedicion
				  ,TD.Subtotal_Conductor
				  ,TD.Cargue_Descargue
				  ,TD.Papeleria_Socio
				  ,TD.OficinaPrincipal
				  ,TD.Subtotal_Socio
				  ,TD.IdEvento
				  ,TD.CtrlManifiesto
				  ,CASE TD.Servicio_Planta
					WHEN '1' THEN 'SI'
					WHEN '2' THEN 'NO'
					WHEN '3' THEN 'VH CARRETERA'
					ELSE '0' 
				   END AS ServicioPlanta
				  ,CL.Identificacion
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCompleto
				  ,OS.NumOrden
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom as Ruta_Cod

			FROM [dbo].[Logistica_TraficoDetalles] as TD
					INNER JOIN [dbo].[Clientes] as CL ON TD.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[OrdenServicio] as OS ON TD.IdOrden = OS.IdOrden
					INNER JOIN [dbo].[Rutas] as RT ON TD.IdRuta_Detalle = RT.IdRutas

			WHERE TD.IdTrafico    between ISNULL(@IdTrafico,TD.IdTrafico) and ISNULL(@IdTrafico,TD.IdTrafico) and
				  TD.IdCotizacion between ISNULL(@IdCotizacion,TD.IdCotizacion) and ISNULL(@IdCotizacion,TD.IdCotizacion)

			ORDER BY TD.KmRuta_Detalle Desc
		END

	IF @Opcion = 6  -- Consultar por Id TraficoDetalle
		BEGIN
			SELECT TD.IdDetalle_Trafico
				  ,TD.IdTrafico
				  ,TD.IdCotizacion
				  ,TD.IdCliente
				  ,TD.IdRuta_Detalle
				  ,TD.KmRuta_Detalle
				  ,TD.Manifiesto
				  ,TD.Direccion_Destino
				  ,TD.Movil
				  ,TD.Remesa
				  ,TD.IdOrden
				  ,TD.ValorFactura
				  ,TD.Abono
				  ,TD.Saldo
				  ,TD.Seguro
				  ,TD.Bodega
				  ,TD.Iva
				  ,TD.Empaque
				  ,TD.Montacargas
				  ,TD.Otros
				  ,TD.Servicio_Planta
				  ,TD.Recogida_Entrega
				  ,TD.Recogida_Supern
				  ,TD.Oficina
				  ,TD.Reexpedicion
				  ,TD.Veh_Reexpedicion
				  ,TD.Subtotal_Conductor
				  ,TD.Cargue_Descargue
				  ,TD.Papeleria_Socio
				  ,TD.OficinaPrincipal
				  ,TD.Subtotal_Socio
				  ,TD.IdEvento
				  ,TD.CtrlManifiesto
				  ,CASE TD.Servicio_Planta
					WHEN '1' THEN 'SI'
					WHEN '2' THEN 'NO'
					WHEN '3' THEN 'VH CARRETERA'
					ELSE '0' 
				   END AS ServicioPlanta
				  ,CL.Identificacion
				  ,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCompleto
				  ,OS.NumOrden
				  ,RT.Nombre_Ruta
				  ,RT.CodSyscom as Ruta_Cod

			FROM [dbo].[Logistica_TraficoDetalles] as TD
					INNER JOIN [dbo].[Clientes] as CL ON TD.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[OrdenServicio] as OS ON TD.IdOrden = OS.IdOrden
					INNER JOIN [dbo].[Rutas] as RT ON TD.IdRuta_Detalle = RT.IdRutas

			WHERE TD.IdDetalle_Trafico between ISNULL(@IdDetalle_Trafico,TD.IdDetalle_Trafico) and ISNULL(@IdDetalle_Trafico,TD.IdDetalle_Trafico) and
				  TD.IdTrafico    between ISNULL(@IdTrafico,TD.IdTrafico) and ISNULL(@IdTrafico,TD.IdTrafico)

			ORDER BY TD.KmRuta_Detalle Desc
		END

	IF @Opcion = 10 -- Consultar por Manifiesto
		BEGIN
			SELECT CASE WHEN count(TD.Remesa) = 0
					THEN 0
					ELSE count(TD.Remesa)
				   END as RemesaTotal
	  
			FROM [dbo].[Logistica_TraficoDetalles] as TD 

			WHERE TD.IdTrafico = 1 and 
				  Remesa = 0 and Manifiesto = 0 and CtrlManifiesto = 1
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetLogVehiculos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 14/12/2022
-- Description:	Buscar Vehiculos Logistica
-- =============================================
CREATE   PROCEDURE [dbo].[spGetLogVehiculos]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdVehiculosLog int = null,
	@IdCotizacion int = null,
	@IdVehiculo int = null,
	@IdEvento int = null,
	@FechaIni varchar(10) = null,
	@HoraIni varchar(8) = null,
	@HoraFin varchar(8) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT VH.IdVehiculosLog
				  ,VH.IdCotizacion
				  ,VH.IdVehiculo
				  ,VH.Placa
				  ,VH.IdEvento
				  ,VH.FechaIni
				  ,VH.HoraIni
				  ,VH.HoraFin
				  ,VH.Rol
				  ,VH.ValorRolVeh
				  ,VH.Autorizacion
				  ,VH.Servicio

				  ,CASE VH.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.TipoVehiculo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,CASE VE.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				   END AS NomAfiliacion

				  ,TV.Nombre
				  ,MV.Nombre as NombreMarca
				  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor
				  
				  ,TP.TipoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom

			FROM [dbo].[Logistica_Vehiculos] as VH
					LEFT JOIN [dbo].[Vehiculos] as VE ON VH.IdVehiculo = VE.IdVehiculo
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VE.TipoVehiculo = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VE.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as CD ON VE.IdConductor = CD.IdConductor
					LEFT JOIN [dbo].[Tipo_Operacion] as TP ON  VH.Rol = TP.IdTipoOperacion
		END

	IF @Opcion = 2 -- Consultar por evento
		BEGIN
			SELECT VH.IdVehiculosLog
				  ,VH.IdCotizacion
				  ,VH.IdVehiculo
				  ,VH.Placa
				  ,VH.IdEvento
				  ,VH.FechaIni
				  ,VH.HoraIni
				  ,VH.HoraFin
				  ,VH.Rol
				  ,VH.ValorRolVeh
				  ,VH.Autorizacion
				  ,VH.Servicio

				  ,CASE VH.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,CASE VE.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				   END AS NomAfiliacion

				  ,TV.Nombre
				  ,MV.Nombre as NombreMarca
				  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor
				  ,TP.TipoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom

			FROM [dbo].[Logistica_Vehiculos] as VH
					LEFT JOIN [dbo].[Vehiculos] as VE ON VH.IdVehiculo = VE.IdVehiculo
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VE.TipoVehiculo = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VE.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as CD ON VE.IdConductor = CD.IdConductor
					LEFT JOIN [dbo].[Tipo_Operacion] as TP ON  VH.Rol = TP.IdTipoOperacion
			
			WHERE VH.IdCotizacion between ISNULL(@IdCotizacion,VH.IdCotizacion) and ISNULL(@IdCotizacion,VH.IdCotizacion) and  
				  VH.IdEvento     between ISNULL(@IdEvento,VH.IdEvento) and ISNULL(@IdEvento,VH.IdEvento)
		END

	IF @Opcion = 3 -- Consultar por Cotizacion y evento y vehiculo
		BEGIN
			SELECT VH.IdVehiculosLog
				  ,VH.IdCotizacion
				  ,VH.IdVehiculo
				  ,VH.Placa
				  ,VH.IdEvento
				  ,VH.FechaIni
				  ,VH.HoraIni
				  ,VH.HoraFin
				  ,VH.Rol
				  ,VH.ValorRolVeh
				  ,VH.Autorizacion
				  ,VH.Servicio

				  ,CASE VH.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,CASE VE.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				   END AS NomAfiliacion
						  ,TV.Nombre
						  ,MV.Nombre as NombreMarca
						  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor
						  ,TP.TipoOperacion
						  ,TP.TipoIngreso
						  ,TP.TarifaIngreso
						  ,TP.CodSyscom

			FROM [dbo].[Logistica_Vehiculos] as VH
					LEFT JOIN [dbo].[Vehiculos] as VE ON VH.IdVehiculo = VE.IdVehiculo
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VE.TipoVehiculo = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VE.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as CD ON VE.IdConductor = CD.IdConductor
					LEFT JOIN [dbo].[Tipo_Operacion] as TP ON  VH.Rol = TP.IdTipoOperacion
			
			WHERE VH.IdVehiculo between ISNULL(@IdVehiculo,VH.IdVehiculo) and ISNULL(@IdVehiculo,VH.IdVehiculo) and 
				  VH.IdCotizacion between ISNULL(@IdCotizacion,VH.IdCotizacion) and ISNULL(@IdCotizacion,VH.IdCotizacion) and  
				  VH.IdEvento     between ISNULL(@IdEvento,VH.IdEvento) and ISNULL(@IdEvento,VH.IdEvento)
		END

	IF @Opcion = 4 -- Consultar por Vehiculo, Fecha y Hora
		BEGIN
			DECLARE @HoraInicial varchar(8);
			DECLARE @HoraFinal varchar(8);
			SET @HoraInicial = '';
			SET @HoraFinal = '';
			
			--Sacar hora inicial y final
			SELECT @HoraInicial = MIN(HoraIni) FROM [dbo].[Logistica_Vehiculos] WHERE FechaIni = @FechaIni and IdVehiculo = @IdVehiculo;
			SELECT @HoraFinal   = MAX(HoraFin) FROM [dbo].[Logistica_Vehiculos] WHERE FechaIni = @FechaIni and IdVehiculo = @IdVehiculo;

			--Consultar Tabla
			SELECT VH.IdVehiculosLog
				  ,VH.IdCotizacion
				  ,VH.IdVehiculo
				  ,VH.Placa
				  ,VH.IdEvento
				  ,VH.FechaIni
				  ,VH.HoraIni
				  ,VH.HoraFin
				  ,VH.Rol
				  ,VH.ValorRolVeh
				  ,VH.Autorizacion
				  ,VH.Servicio

				  ,CASE VH.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,CASE VE.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				   END AS NomAfiliacion

				  ,TV.Nombre
				  ,MV.Nombre as NombreMarca
				  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor
				  ,TP.TipoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
			      ,TP.CodSyscom
				  ,@HoraInicial as Inicial
				  ,@HoraFinal as Final

			FROM [dbo].[Logistica_Vehiculos] as VH
					LEFT JOIN [dbo].[Vehiculos] as VE ON VH.IdVehiculo = VE.IdVehiculo
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VE.TipoVehiculo = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VE.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as CD ON VE.IdConductor = CD.IdConductor
					LEFT JOIN [dbo].[Tipo_Operacion] as TP ON  VH.Rol = TP.IdTipoOperacion
			
			WHERE VH.IdVehiculo   = @IdVehiculo and
				  VH.FechaIni     = @FechaIni and
				  VH.HoraIni      between @HoraInicial and @HoraFinal
		END

	IF @Opcion = 5  -- Consula por Id VehiculoLog
		BEGIN
			SELECT VH.IdVehiculosLog
				  ,VH.IdCotizacion
				  ,VH.IdVehiculo
				  ,VH.Placa
				  ,VH.IdEvento
				  ,VH.FechaIni
				  ,VH.HoraIni
				  ,VH.HoraFin
				  ,VH.Rol
				  ,VH.ValorRolVeh
				  ,VH.Autorizacion
				  ,VH.Servicio

				  ,CASE VH.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ

				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.TipoVehiculo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,CASE VE.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				   END AS NomAfiliacion

				  ,TV.Nombre
				  ,MV.Nombre as NombreMarca
				  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor
				  ,TP.TipoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom

			FROM [dbo].[Logistica_Vehiculos] as VH
					LEFT JOIN [dbo].[Vehiculos] as VE ON VH.IdVehiculo = VE.IdVehiculo
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VE.TipoVehiculo = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VE.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as CD ON VE.IdConductor = CD.IdConductor
					LEFT JOIN [dbo].[Tipo_Operacion] as TP ON  VH.Rol = TP.IdTipoOperacion
			
			WHERE VH.IdVehiculosLog = @IdVehiculosLog 
		END

	IF @Opcion = 6 -- Consultar por Vehiculo, Fecha y Hora
		BEGIN
			SELECT VH.IdVehiculosLog
				  ,VH.IdCotizacion
				  ,VH.IdVehiculo
				  ,VH.Placa
				  ,VH.IdEvento
				  ,VH.FechaIni
				  ,VH.HoraIni
				  ,VH.HoraFin
				  ,VH.Rol
				  ,VH.ValorRolVeh
				  ,VH.Autorizacion
				  ,VH.Servicio

				  ,CASE VH.Servicio
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'CARGUE'
					WHEN '3' THEN 'DESCARGUE'
					WHEN '4' THEN 'RECOGIDA'
					WHEN '5' THEN 'ENTREGA'
					WHEN '6' THEN 'CARGUE BODEGA'
					WHEN '7' THEN 'DESCARGUE BODEGA'
					WHEN '8' THEN 'EMPAQUE'
					WHEN '9' THEN 'INTERNACIONAL'
					WHEN '10' THEN 'ALMACENAMIENTO'
					ELSE '0' 
				   END AS NombreServ
 
				  ,VE.Marca
				  ,VE.Modelo
				  ,VE.Capacidad
				  ,VE.Disponible
				  ,CASE VE.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				   END AS NomAfiliacion

				  ,TV.Nombre
				  ,MV.Nombre as NombreMarca
				  ,CONCAT(CD.Apellidos, ' ', CD.Nombres) as Conductor
				  ,TP.TipoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom

			FROM [dbo].[Logistica_Vehiculos] as VH
					LEFT JOIN [dbo].[Vehiculos] as VE ON VH.IdVehiculo = VE.IdVehiculo
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VE.TipoVehiculo = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VE.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as CD ON VE.IdConductor = CD.IdConductor
					LEFT JOIN [dbo].[Tipo_Operacion] as TP ON  VH.Rol = TP.IdTipoOperacion
			
			
			WHERE VH.IdVehiculo = @IdVehiculo and
				  VH.FechaIni   = @FechaIni
				  --VH.HoraIni      between @HoraIni and @HoraFin and
				  
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetMarcas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 12/10/2021
-- Description:	Buscar Marca Vehiculos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetMarcas] 
	-- Add the parameters for the stored procedure here
		@Opcion Int,
	@IdMarca Int = null,
	@Nombre varchar(125) = null,
	@CodSyscom varchar(4) =  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 @Opcion = 1  -- Consula todos los Departametno
	  BEGIN
		SELECT  [IdMarca]
			   ,[Nombre]
			   ,[Tipo]
			   ,[CodSyscom]
		FROM [dbo].[Marcas_Vehiculos]
	  END

	IF @Opcion = 2 -- Consultar por Marca
	  BEGIN
		SELECT  [IdMarca]
			   ,[Nombre]
			   ,[Tipo]
			   ,[CodSyscom]
		FROM  [dbo].[Marcas_Vehiculos]
		WHERE IdMarca = @IdMarca
	  END

	IF @Opcion = 3 -- Consultar por CodSyscom
	  BEGIN
		SELECT  [IdMarca]
			   ,[Nombre]
			   ,[Tipo]
			   ,[CodSyscom]
		FROM  [dbo].[Marcas_Vehiculos]
		WHERE CodSyscom = @CodSyscom
	  END
  
END
GO
/****** Object:  StoredProcedure [dbo].[spGetMateriales]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 06/09/2021
-- Description:	Buscar Materiales
-- =============================================
CREATE   PROCEDURE [dbo].[spGetMateriales] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdMaterial int = null,
	@Nombre varchar(125) = null,
	@EstadoMat varchar(1) = null,
	@Inactivos BIT = 0,
	@IncluirInactivos BIT = 0
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 @Opcion = 1  -- Consulta Materiales Activos
		BEGIN
			SELECT MAT.IdMaterial
				  ,MAT.Nombre COLLATE Cyrillic_General_CI_AI as Nombre
				  ,MAT.Referencia
				  ,MAT.IdUnidad
				  ,MAT.ValorCosto
				  ,MAT.Proveedor
				  ,MAT.EstadoMat
				  ,MAT.CodSyscom
				  ,MAT.SubGrupo
				  ,MAT.Linea
				  ,MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				  ,UND.Nombre as NombreUnidad
				  ,CONCAT(PRV.Nombres, ' ', PRV.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto
				  ,SUB.IdSubgrupo
			
			FROM [dbo].[Materiales] as MAT, 
				 [dbo].[Unidades] as UND,
				 [dbo].[Proveedores] as PRV,
				 [dbo].[Subgrupos] as SUB

			WHERE MAT.IdUnidad  = UND.IdUnidad and
				  MAT.Proveedor = PRV.IdProveedor and
				  MAT.SubGrupo  = SUB.CodSyscom and
				  MAT.EstadoMat = 'A'

			ORDER BY MAT.Nombre ASC
		END

	IF @Opcion = 2 -- Consultar por Tipo
	BEGIN
		SELECT 
			MAT.IdMaterial,
			MAT.Nombre COLLATE Cyrillic_General_CI_AI as Nombre,
			MAT.Referencia,
			MAT.IdUnidad,
			MAT.ValorCosto,
			MAT.Proveedor,
			MAT.EstadoMat,
			MAT.CodSyscom,
			MAT.SubGrupo,
			MAT.Linea,
			MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion,
			CONCAT(PRV.Nombres, ' ', PRV.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto,
			UND.Nombre as NombreUnidad,
			SUB.IdSubgrupo
		FROM 
			[dbo].[Materiales] as MAT
		LEFT JOIN 
			[dbo].[Unidades] as UND 
			ON MAT.IdUnidad = UND.IdUnidad
		LEFT JOIN 
			[dbo].[Proveedores] as PRV 
			ON MAT.Proveedor = PRV.IdProveedor
		LEFT JOIN 
			[dbo].[Subgrupos] as SUB 
			ON MAT.SubGrupo = SUB.CodSyscom
		WHERE 
			MAT.Nombre LIKE CONCAT('%',ISNULL(@Nombre,MAT.Nombre),'%')  
			-- AND MAT.EstadoMat  BETWEEN ISNULL(@EstadoMat,MAT.EstadoMat) AND ISNULL(@EstadoMat,MAT.EstadoMat) 
			AND MAT.IdMaterial BETWEEN ISNULL(@IdMaterial,MAT.IdMaterial) AND ISNULL(@IdMaterial,MAT.IdMaterial)
			AND (
				(@Inactivos = @IncluirInactivos AND MAT.EstadoMat = 'A')
				OR(@Inactivos = 1 AND MAT.EstadoMat = 'I')
				OR (@IncluirInactivos = 1 AND MAT.EstadoMat IN ('A', 'I'))
			)
	END

	IF @Opcion = 3 -- Consultar por Parametro
		BEGIN
			SELECT MAT.IdMaterial
				  ,MAT.Nombre COLLATE Cyrillic_General_CI_AI as Nombre
				  ,MAT.Referencia
				  ,MAT.IdUnidad
				  ,MAT.ValorCosto
				  ,MAT.Proveedor
				  ,MAT.EstadoMat
				  ,MAT.CodSyscom
				  ,MAT.SubGrupo
				  ,MAT.Linea
				  ,MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				  ,CONCAT(PRV.Nombres, ' ', PRV.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto
				  ,UND.Nombre as NombreUnidad
				  ,SUB.IdSubgrupo
			
			FROM [dbo].[Materiales] as MAT
					LEFT JOIN [dbo].[Unidades] as UND ON MAT.IdUnidad = UND.IdUnidad
					LEFT JOIN [dbo].[Proveedores] as PRV ON MAT.Proveedor = PRV.IdProveedor
					LEFT JOIN [dbo].[Subgrupos] as SUB ON MAT.SubGrupo = SUB.CodSyscom
				
			WHERE MAT.Nombre    like CONCAT('%',ISNULL(@Nombre,MAT.Nombre),'%')  and 
				  MAT.EstadoMat between ISNULL(@EstadoMat,MAT.EstadoMat) and ISNULL(@EstadoMat,MAT.EstadoMat)
		END

	IF @Opcion = 4  -- Consula todos los materiales
		BEGIN
			SELECT MAT.IdMaterial
				   ,MAT.Nombre COLLATE Cyrillic_General_CI_AI as Nombre
				   ,MAT.Referencia
				   ,MAT.IdUnidad
				   ,MAT.ValorCosto
				   ,MAT.Proveedor
				   ,MAT.EstadoMat
				   ,MAT.CodSyscom
				   ,MAT.SubGrupo
				   ,MAT.Linea
				   ,MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				   ,UND.Nombre as NombreUnidad
				   ,CONCAT(PRV.Nombres, ' ', PRV.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto
				   ,SUB.IdSubgrupo

			FROM  [dbo].[Materiales] as MAT, 
				  [dbo].[Unidades] as UND,
				  [dbo].[Proveedores] as PRV,
				  [dbo].[Subgrupos] as SUB

			WHERE MAT.IdUnidad  = UND.IdUnidad and
				  MAT.Proveedor = PRV.IdProveedor and
			      MAT.SubGrupo  = SUB.CodSyscom 
		END

	IF @Opcion = 5 -- Material por su Id 
	BEGIN 
		SELECT 
			MAT.IdMaterial,
			MAT.Nombre COLLATE Cyrillic_General_CI_AI as Nombre,
			MAT.Referencia,
			MAT.IdUnidad,
			MAT.ValorCosto,
			MAT.Proveedor,
			MAT.EstadoMat,
			MAT.CodSyscom,
			MAT.SubGrupo,
			MAT.Linea,
			MAT.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion,
			CONCAT(PRV.Nombres, ' ', PRV.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto,
			UND.Nombre as NombreUnidad,
			SUB.IdSubgrupo
		FROM 
			[dbo].[Materiales] as MAT
		LEFT JOIN 
			[dbo].[Unidades] as UND 
			ON MAT.IdUnidad = UND.IdUnidad
		LEFT JOIN 
			[dbo].[Proveedores] as PRV 
			ON MAT.Proveedor = PRV.IdProveedor
		LEFT JOIN 
			[dbo].[Subgrupos] as SUB 
			ON MAT.SubGrupo = SUB.CodSyscom
		WHERE 
			MAT.IdMaterial BETWEEN ISNULL(@IdMaterial,MAT.IdMaterial) AND ISNULL(@IdMaterial,MAT.IdMaterial)

	END
END


GO
/****** Object:  StoredProcedure [dbo].[spGetMaterialesArticulos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 06/09/2021
-- Description:	Buscar Materiales-Articulos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetMaterialesArticulos]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdMaterial int = null,
	@IdArticulo int = null,
	@IdMatArticulo  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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT MA.IdMatArticulo
				  ,MA.IdMaterial
				  ,MA.IdArticulo
				  ,MA.Valor
				  ,MA.Cantidad
				  ,MT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial
				  ,AR.Nombre COLLATE Cyrillic_General_CI_AI as NombreArticulo
				  ,CONCAT(PV.Nombres, ' ', PV.Apellidos) as Proveedor

			FROM [dbo].[Materiales_Articulo] as MA
					LEFT JOIN [dbo].[Articulos] as AR ON MA.IdArticulo = AR.IdArticulo
					LEFT JOIN [dbo].[Materiales] as MT ON MA.IdMaterial = MT.IdMaterial
					LEFT JOIN [dbo].[Proveedores] as PV ON MT.Proveedor  = PV.IdProveedor
		END

	IF @Opcion = 2 -- Consultar por Articulo
		BEGIN
			SELECT MA.IdMatArticulo
				  ,MA.IdMaterial
				  ,MA.IdArticulo
				  ,MA.Valor
				  ,MA.Cantidad
				  ,MT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial
				  ,AR.Nombre COLLATE Cyrillic_General_CI_AI as NombreArticulo
				  ,CONCAT(PV.Nombres, ' ', PV.Apellidos) as Proveedor

			FROM [dbo].[Materiales_Articulo] as MA
					LEFT JOIN [dbo].[Articulos] as AR ON MA.IdArticulo = AR.IdArticulo
					LEFT JOIN [dbo].[Materiales] as MT ON MA.IdMaterial = MT.IdMaterial
					LEFT JOIN [dbo].[Proveedores] as PV ON MT.Proveedor  = PV.IdProveedor

			WHERE MA.IdMaterial    between ISNULL(@IdMaterial,MA.IdMaterial) and ISNULL(@IdMaterial,MA.IdMaterial) and
				  MA.IdArticulo    between ISNULL(@IdArticulo,MA.IdArticulo) and ISNULL(@IdArticulo,MA.IdArticulo) and
				  MA.IdMatArticulo between ISNULL(@IdMatArticulo,MA.IdMatArticulo) and ISNULL(@IdMatArticulo,MA.IdMatArticulo)
		END

	IF @Opcion = 3  -- Consula todos los Tipo
		BEGIN
			SELECT ROW_NUMBER() OVER(ORDER BY MA.IdMaterial DESC) IdDcto
					,MA.IdMaterial
					,MA.IdArticulo
					,MA.Valor
					,MA.Cantidad
					,MT.Nombre COLLATE Cyrillic_General_CI_AI as NombreMaterial
					,AR.Nombre COLLATE Cyrillic_General_CI_AI as NombreArticulo
					,CONCAT(PV.Nombres, ' ', PV.Apellidos) as Proveedor

			FROM [dbo].[Materiales_Articulo] as MA, 
				 [dbo].[Articulos] as AR,
				 [dbo].[Materiales] as MT,
				 [dbo].[Proveedores] as PV

			WHERE MA.IdArticulo = AR.IdArticulo and 
				  MA.IdMaterial = MT.IdMaterial and
				  MT.Proveedor  = PV.IdProveedor
		END
END


GO
/****** Object:  StoredProcedure [dbo].[spGetMetodosPago]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 20/10/2021
-- Description:	Buscar Metodos de Pago
-- =============================================
CREATE   PROCEDURE [dbo].[spGetMetodosPago] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdMetodosPago Int=null,
	@Nombre varchar(125)=null,
	@Descripcion varchar(255)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdMetodosPago]
			   ,[Nombre]
			   ,[Descripcion]
		FROM  [dbo].[Metodos_Pago]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdMetodosPago]
			   ,[Nombre]
			   ,[Descripcion]
		FROM  [dbo].[Metodos_Pago] 
		WHERE IdMetodosPago = @IdMetodosPago
	  END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetModulos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/08/2021
-- Description:	Actualizar Modulos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetModulos] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdModulo Int=null,
	@Nombre varchar(120)=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 @Opcion=1  -- Consula todos los Modulos
	  BEGIN
		SELECT  [IdModulo]
			   ,[Nombre]				
		FROM [dbo].[Modulos]
	  END

	IF @Opcion = 2 -- Consultar por Modulo
	  BEGIN
		SELECT  [IdModulo]
			   ,[Nombre]				
		FROM [dbo].[Modulos] 
		WHERE IdModulo = @IdModulo
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetMotivoAtencion]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024/05/23
-- Description:	Consultar Motivo Atencion
-- =============================================
CREATE PROCEDURE [dbo].[spGetMotivoAtencion]
	-- Add the parameters for the stored procedure here
	@Opcion as int
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 @Opcion=1 
		BEGIN
			SELECT IdMotivo
				   ,Nombre 
			
			FROM [dbo].[Motivos_Atencion]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetNovedades]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 17-07-2023
-- Description:	Procedimiento para la consulta de Novedades o no concreciones.
-- =============================================
CREATE PROCEDURE [dbo].[spGetNovedades]
	
	@Opcion INT,
	@IdNovedad INT = NULL,
	@Descripcion VARCHAR(255) = NULL,
	@Inactivos BIT = 0,
	@IncluirInactivos BIT = 0
			
AS
BEGIN
	
	SET NOCOUNT ON;
	
	IF @Opcion = 1  -- Consulta todos las novedades
	BEGIN
		 SELECT 
			[IdNovedad], [Descripcion],
			CASE [Estado] 
				WHEN 'A' THEN 'Activo' 
				ELSE 'Inactivo' 
			END AS Estado  
		FROM 
			[dbo].[Novedades]
		WHERE 
			IdNovedad = ISNULL(@IdNovedad, IdNovedad) 
			AND Descripcion LIKE CONCAT('%',ISNULL(@Descripcion,Descripcion),'%')
			AND (
				(@Inactivos = 0) OR (@Inactivos = 1 AND Estado = 'I')
			)
			AND (
				(@IncluirInactivos = 0) OR (@IncluirInactivos = 1 AND Estado IN ('A', 'I')) 
			)
			AND (
				(@Inactivos <> @IncluirInactivos) OR (@Inactivos = @IncluirInactivos AND Estado = 'A')
			)
	END

	IF @Opcion = 2  -- Consulta todos las novedades por descripcion
	BEGIN
		 SELECT 
			[IdNovedad],[Descripcion],
			case [Estado] 
				when 'A' then 'Activo' 
				else 'Inactivo' 
			end as Estado  
		 FROM 
			[dbo].[Novedades]
		WHERE 
			IdNovedad=ISNULL(@IdNovedad,IdNovedad) 
			and Descripcion=ISNULL(@Descripcion,Descripcion)		   
	END

	IF @Opcion = 3  -- Consulta todos las novedades por sdescrop
	BEGIN
		SELECT 
			[IdNovedad],[Descripcion],
			case [Estado] 
				when 'A' then 'Activo' 
				else 'Inactivo' 
			end as Estado  
		FROM 
			[dbo].[Novedades]
		WHERE 
			IdNovedad<>ISNULL(@IdNovedad,IdNovedad) 
			and Descripcion=ISNULL(@Descripcion,Descripcion)		   
	END

	IF @Opcion = 4  -- Consulta todos las novedades
	BEGIN
		SELECT 
			[IdNovedad],[Descripcion],
			case [Estado] 
				when 'A' then 'Activo' 
				else 'Inactivo' 
			end as Estado  
		FROM 
			[dbo].[Novedades]
		WHERE 
			IdNovedad=ISNULL(@IdNovedad,IdNovedad) 
			and Descripcion  like CONCAT('%',ISNULL(@Descripcion,Descripcion),'%') and Estado='A'   
	END
END




GO
/****** Object:  StoredProcedure [dbo].[spGetOrdenServicio]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 14/03/2022
-- Description:	Buscar Orden Servicio
-- =============================================
CREATE   PROCEDURE [dbo].[spGetOrdenServicio] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@NumOrden int = null,
	@IdCotizacion int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = null,
	@IdUsuario int = null,
	@IdOrden int = null,
	@Estado int = null,
	@Compania 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT ORS.IdOrden
				   ,ORS.NumOrden
				   ,ORS.FechaOrden
				   ,ORS.HoraOrden
				   ,ORS.EstadoOrden
				   ,ORS.IdCotizacion
				   ,ORS.Clase
				   ,ORS.Compania
				   ,ORS.NumInventario
				   ,ORS.NumManifiesto
				   ,ORS.IdUsuario
				   ,ORS.NumRequisicion
				   ,ORS.CtrlPostVenta
				   ,CONCAT(CTZ.Fecha_Recogida, ' - ', CTZ.Hora_Recogida) as Recogida
				   ,CONCAT(CLI.Nombres, ' ', CLI.Apellidos) as NombreCompleto
				   ,CIA.NombreCia
				   ,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
				   ,TSV.Nombre as NombreServicio
				   ,CIA.CodSyscom as CodCompania
		
			FROM [dbo].[OrdenServicio] as ORS
					 INNER JOIN [dbo].[Cotizacion] as CTZ ON ORS.IdCotizacion = CTZ.IdCotizacion
					 INNER JOIN [dbo].[Clientes] as CLI ON CTZ.IdCliente = CLI.IdCliente
					 INNER JOIN [dbo].[Compania] as CIA ON ORS.Compania = CIA.IdCia
					 INNER JOIN [dbo].[Usuarios] as USU ON CTZ.IdUsuario = USU.IdUsuario
					 INNER JOIN [dbo].[TipoServicio] as TSV ON CTZ.TipoServ = TSV.IdTipo

			WHERE ORS.EstadoOrden = 0
		END

	IF @Opcion = 2 -- Consultar por Cotizacion
		BEGIN
			SELECT ORS.IdOrden
				   ,ORS.NumOrden
				   ,ORS.FechaOrden
				   ,ORS.HoraOrden
				   ,ORS.EstadoOrden
				   ,ORS.IdCotizacion
				   ,ORS.Clase
				   ,ORS.Compania
				   ,ORS.NumInventario
				   ,ORS.NumManifiesto
				   ,ORS.IdUsuario
				   ,ORS.NumRequisicion
				   ,ORS.CtrlPostVenta
				   ,CONCAT(CTZ.Fecha_Recogida, ' - ', CTZ.Hora_Recogida) as Recogida
				   ,CONCAT(CLI.Nombres, ' ', CLI.Apellidos) as NombreCompleto
				   ,CIA.NombreCia
				   ,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
				   ,TSV.Nombre as NombreServicio
				   ,CIA.CodSyscom as CodCompania

			FROM [dbo].[OrdenServicio] as ORS
					 INNER JOIN [dbo].[Cotizacion] as CTZ ON ORS.IdCotizacion = CTZ.IdCotizacion
					 INNER JOIN [dbo].[Clientes] as CLI ON CTZ.IdCliente = CLI.IdCliente
					 INNER JOIN [dbo].[Compania] as CIA ON ORS.Compania = CIA.IdCia
					 INNER JOIN [dbo].[Usuarios] as USU ON CTZ.IdUsuario = USU.IdUsuario
					 INNER JOIN [dbo].[TipoServicio] as TSV ON CTZ.TipoServ = TSV.IdTipo

			WHERE ORS.IdCotizacion = @IdCotizacion
				 
		END

	IF @Opcion = 3 -- Consultar por Parametro
		BEGIN
			SELECT ORS.IdOrden
				  ,ORS.NumOrden
				  ,ORS.FechaOrden
				  ,ORS.HoraOrden
				  ,ORS.EstadoOrden
				  ,ORS.IdCotizacion
				  ,ORS.Clase
				  ,ORS.Compania
				  ,ORS.NumInventario
				  ,ORS.NumManifiesto
				  ,ORS.IdUsuario
				  ,ORS.NumRequisicion
				  ,ORS.CtrlPostVenta
				  ,CONCAT(CTZ.Fecha_Recogida, ' - ', CTZ.Hora_Recogida) as Recogida
				  ,CONCAT(CLI.Nombres, ' ', CLI.Apellidos) as NombreCompleto
				  ,CIA.NombreCia
				  ,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
				  ,TSV.Nombre as NombreServicio
				  ,CIA.CodSyscom as CodCompania

			FROM [dbo].[OrdenServicio] as ORS
					 INNER JOIN [dbo].[Cotizacion] as CTZ ON ORS.IdCotizacion = CTZ.IdCotizacion
					 INNER JOIN [dbo].[Clientes] as CLI ON CTZ.IdCliente = CLI.IdCliente
					 INNER JOIN [dbo].[Compania] as CIA ON ORS.Compania = CIA.IdCia
					 INNER JOIN [dbo].[Usuarios] as USU ON CTZ.IdUsuario = USU.IdUsuario
					 INNER JOIN [dbo].[TipoServicio] as TSV ON CTZ.TipoServ = TSV.IdTipo

			WHERE ORS.EstadoOrden  between ISNULL(@Estado,0) and ISNULL(@Estado,9) and
				  ORS.NumOrden     between ISNULL(@NumOrden,ORS.NumOrden) and ISNULL(@NumOrden,ORS.NumOrden) and
				  CTZ.IdCotizacion between ISNULL(@IdCotizacion,CTZ.IdCotizacion) and ISNULL(@IdCotizacion,CTZ.IdCotizacion) and 
				  ORS.IdUsuario    between ISNULL(@IdUsuario,ORS.IdUsuario) and ISNULL(@IdUsuario,ORS.IdUsuario) and
				  ORS.Compania     between ISNULL(@Compania,ORS.Compania) and ISNULL(@Compania,ORS.Compania) and
				  ORS.FechaOrden   between ISNULL(@FechaIni,'19000101') and ISNULL(@FechaFin,GETDATE())
		END

	IF @Opcion = 4 -- Consultar por Usuario
		BEGIN
			SELECT ORS.IdOrden
				   ,ORS.NumOrden
				   ,ORS.FechaOrden
				   ,ORS.HoraOrden
				   ,ORS.EstadoOrden
				   ,ORS.IdCotizacion
				   ,ORS.Clase
				   ,ORS.Compania
				   ,ORS.NumInventario
				   ,ORS.NumManifiesto
				   ,ORS.IdUsuario
				   ,ORS.NumRequisicion
				   ,ORS.CtrlPostVenta
				   ,CONCAT(CTZ.Fecha_Recogida, ' - ', CTZ.Hora_Recogida) as Recogida
				   ,CONCAT(CLI.Nombres, ' ', CLI.Apellidos) as NombreCompleto
				   ,CIA.NombreCia
				   ,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor
				   ,TSV.Nombre as NombreServicio
				   ,CIA.CodSyscom as CodCompania

			FROM [dbo].[OrdenServicio] as ORS
					 INNER JOIN [dbo].[Cotizacion] as CTZ ON ORS.IdCotizacion = CTZ.IdCotizacion
					 INNER JOIN [dbo].[Clientes] as CLI ON CTZ.IdCliente = CLI.IdCliente
					 INNER JOIN [dbo].[Compania] as CIA ON ORS.Compania = CIA.IdCia
					 INNER JOIN [dbo].[Usuarios] as USU ON CTZ.IdUsuario = USU.IdUsuario
					 INNER JOIN [dbo].[TipoServicio] as TSV ON CTZ.TipoServ = TSV.IdTipo

			WHERE ORS.IdUsuario    = @IdUsuario 
		END

	IF @Opcion = 5 -- Consultar por Id Orden
		BEGIN
			SELECT ORS.IdOrden
				   ,ORS.NumOrden
				   ,ORS.FechaOrden
				   ,ORS.HoraOrden
				   ,ORS.EstadoOrden
				   ,ORS.IdCotizacion
				   ,ORS.Clase
				   ,ORS.Compania
				   ,ORS.NumInventario
				   ,ORS.NumManifiesto
				   ,ORS.IdUsuario
				   ,ORS.NumRequisicion
				   ,ORS.CtrlPostVenta
				   ,CONCAT(CTZ.Fecha_Recogida, ' - ', CTZ.Hora_Recogida) as Recogida

				   ,CLI.IdCliente
				   ,CONCAT(CLI.Nombres, ' ', CLI.Apellidos) as NombreCompleto
				   ,CLI.Movil
				   
				   ,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor

				   ,TSV.Nombre as NombreServicio

				   ,CIA.NombreCia
				   ,CIA.CodSyscom as CodCompania

			FROM [dbo].[OrdenServicio] as ORS
					 INNER JOIN [dbo].[Cotizacion] as CTZ ON ORS.IdCotizacion = CTZ.IdCotizacion
					 INNER JOIN [dbo].[Clientes] as CLI ON CTZ.IdCliente = CLI.IdCliente
					 INNER JOIN [dbo].[Compania] as CIA ON ORS.Compania = CIA.IdCia
					 INNER JOIN [dbo].[Usuarios] as USU ON CTZ.IdUsuario = USU.IdUsuario
					 INNER JOIN [dbo].[TipoServicio] as TSV ON CTZ.TipoServ = TSV.IdTipo

			WHERE ORS.IdOrden = @IdOrden 
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetPaises]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 20/09/2021
-- Description:	Buscar Paises
-- =============================================
CREATE   PROCEDURE [dbo].[spGetPaises]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdPais Int=null,
	@CodPais varchar(125)=null,
	@Nombre varchar(255)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdPais]
			   ,[CodPais]
			   ,[Nombre]
		FROM  [dbo].[Paises]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdPais]
			   ,[CodPais]
			   ,[Nombre]
		FROM  [dbo].[Paises]
		WHERE IdPais = @IdPais
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetParametros]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/05/2023
-- Description:	Buscar Parametros Básicos
-- =============================================
CREATE PROCEDURE [dbo].[spGetParametros]
	@Opcion int,
	@IdParametro 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 @Opcion = 1 --Consulta General
		BEGIN 
			SELECT PM.IdParametro
				  ,PM.Nombre_Paramt
				  ,PM.Valor_Paramt
				  ,PM.Codigo_Paramt
				  ,PM.Descripcion
				  ,PM.Clase
  
			FROM [dbo].[Parametros] as PM
						
		END

	IF @Opcion = 2 --Consulta por Ruta
		BEGIN 
			SELECT PM.IdParametro
				  ,PM.Nombre_Paramt
				  ,PM.Valor_Paramt
				  ,PM.Codigo_Paramt
				  ,PM.Descripcion
				  ,PM.Clase
  
			FROM [dbo].[Parametros] as PM

			WHERE PM.IdParametro   = @IdParametro 

		END

	IF @Opcion = 3 --Consulta parametros
		BEGIN 
			
			SELECT PM.IdParametro
				  ,PM.Nombre_Paramt
				  ,PM.Valor_Paramt
				  ,PM.Codigo_Paramt
				  ,PM.Descripcion
				  ,PM.Clase
				  
			FROM [dbo].[Parametros] as PM

			WHERE PM.IdParametro >= 6 and PM.IdParametro <= 13

		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetPerfiles]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/08/2021
-- Description:	Procedimiento para obtener perfiles
-- =============================================
CREATE   PROCEDURE [dbo].[spGetPerfiles] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPerfil int = null,
	@Nombre varchar(120) = null,
	@Estado varchar(1) = null,
	@Inactivos BIT = 0,
	@IncluirInactivos BIT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
   
	IF @Opcion = 1 --Consulta General
	BEGIN 
		SELECT 
			IdPerfil,
			Nombre COLLATE Cyrillic_General_CI_AI as Nombre,
			Estado,
			Descripcion,
			Clase 	
		FROM 
			[dbo].[Perfiles] 
		WHERE  
			Estado = 'A'
	END

	IF @Opcion = 2 --Consulta por IdPerfil
	BEGIN 
		SELECT  
			IdPerfil,
			Nombre COLLATE Cyrillic_General_CI_AI as Nombre,
			Estado,
			Descripcion,
			Clase	
		FROM 
			[dbo].[Perfiles]
		WHERE 
			(@IdPerfil IS NULL OR IdPerfil = @IdPerfil)
			AND (
				(@Inactivos = 0 AND @IncluirInactivos = 0 AND Estado = 'A') 
				OR (@Inactivos = 1 AND Estado = 'I')
				OR (@IncluirInactivos = 1 AND Estado IN ('A', 'I'))
			)
	END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetPermisos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/08/2021
-- Description:	Buscar Permisos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetPermisos] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdPermiso Int=null,
	@IdPerfil Int=null,
	@IdModulo Int=null,
	@Registrar nchar(1)=null,
	@Actualizar nchar(1)=null,
	@Listar nchar(1)=null,
	@Eliminar nchar(1)=null,
	@NombrePerfil varchar(120)=null,
	@NombreModulo varchar(120)=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 @Opcion = 1  -- Consula todos los Permisos
		BEGIN
			SELECT  P.IdPermiso
				   ,P.IdPerfil				
				   ,P.IdModulo
				   ,P.Registrar
				   ,P.Actualizar
				   ,P.Listar
				   ,P.Eliminar
				   ,P.Clase
			
			FROM [dbo].[Permisos] AS P
		END

	IF @Opcion = 2 -- Consultar por Permiso
		BEGIN
			SELECT  P.IdPermiso
				   ,P.IdPerfil				
				   ,P.IdModulo
				   ,P.Registrar
				   ,P.Actualizar
				   ,P.Listar
				   ,P.Eliminar
				   ,P.Clase
			
			FROM [dbo].[Permisos] AS P
			
			WHERE IdPermiso = @IdPermiso
		END
	
	IF @Opcion = 3 -- Consultar por Parametro
		BEGIN
			IF @NombrePerfil IS NOT NULL and  @NombreModulo IS NOT NULL 
				BEGIN
					SELECT   P.IdPermiso
							,P.IdPerfil				
							,P.IdModulo
							,P.Registrar
							,P.Actualizar
							,P.Listar
							,P.Eliminar
							,P.Clase
							,F.Nombre AS Perfil
							,M.Nombre AS Modulo
					
					FROM [dbo].[Permisos] AS P, 
					     [dbo].[Perfiles] AS F, 
						 [dbo].[Modulos] AS M
					
					WHERE P.IdPerfil = F.IdPerfil AND 
					      F.Nombre like CONCAT('%',@NombrePerfil,'%') AND 
					      P.IdModulo = M.IdModulo AND 
						  M.Nombre like CONCAT('%',@NombreModulo,'%')
				END

			IF @NombrePerfil IS NOT NULL and  @NombreModulo IS NULL
				BEGIN
				   SELECT    P.IdPermiso
							,P.IdPerfil				
							,P.IdModulo
							,P.Registrar
							,P.Actualizar
							,P.Listar
							,P.Eliminar
							,P.Clase
							,F.Nombre AS Perfil
							,M.Nombre AS Modulo
					
					FROM [dbo].[Permisos] AS P,
					     [dbo].[Perfiles] AS F, 
						 [dbo].[Modulos] AS M
					
					WHERE P.IdPerfil = F.IdPerfil AND 
					      F.Nombre like CONCAT('%',@NombrePerfil,'%') AND 
					      P.IdModulo = M.IdModulo 
			  END

			IF @NombrePerfil IS NULL and  @NombreModulo IS NOT NULL
				BEGIN
				   SELECT    P.IdPermiso
							,P.IdPerfil				
							,P.IdModulo
							,P.Registrar
							,P.Actualizar
							,P.Listar
							,P.Eliminar
							,P.Clase
							,F.Nombre AS Perfil
							,M.Nombre AS Modulo
					
					FROM [dbo].[Permisos] AS P,
					     [dbo].[Perfiles] AS F, 
						 [dbo].[Modulos] AS M
					
					WHERE P.IdPerfil = F.IdPerfil AND  
					      M.Nombre like CONCAT('%',@NombreModulo,'%') AND
						  P.IdModulo = M.IdModulo 
				END

			IF @NombrePerfil IS NULL and  @NombreModulo IS NULL
				BEGIN
				   SELECT    P.IdPermiso
							,P.IdPerfil				
							,P.IdModulo
							,P.Registrar
							,P.Actualizar
							,P.Listar
							,P.Eliminar
							,P.Clase
							,F.Nombre AS Perfil
							,M.Nombre AS Modulo
					
					FROM [dbo].[Permisos] AS P,
					     [dbo].[Perfiles] AS F, 
						 [dbo].[Modulos] AS M
					
					WHERE P.IdPerfil = F.IdPerfil AND 
					      P.IdModulo = M.IdModulo 
				END
	  END
	  
	IF @Opcion = 4 -- Consultar por Permiso, Perfil y Modulo
		BEGIN
		   SELECT   P.IdPermiso
				   ,P.IdPerfil				
				   ,P.IdModulo
				   ,P.Registrar
				   ,P.Actualizar
				   ,P.Listar
				   ,P.Eliminar
				   ,P.Clase
		
			FROM [dbo].[Permisos] AS P
		
			WHERE IdPermiso = @IdPermiso AND 
			      IdPerfil = @IdPerfil AND 
				  IdModulo = @IdModulo
		END

	IF @Opcion = 5 -- Consultar por Perfil y Modulo
		BEGIN
		   SELECT   P.IdPermiso
				   ,P.IdPerfil				
				   ,P.IdModulo
				   ,P.Registrar
				   ,P.Actualizar
				   ,P.Listar
				   ,P.Eliminar
		
			FROM [dbo].[Permisos] AS P

			WHERE IdPerfil = @IdPerfil AND 
			      IdModulo = @IdModulo
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetPermisosSecurity]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2021-05-14 
-- Description:	Procedimiento para la consulta de los permisos de los usuarios 
-- =============================================
CREATE   PROCEDURE [dbo].[spGetPermisosSecurity] 
	-- Add the parameters for the stored procedure here
	@Opcion as int,
	@IdPerfil as int=null,
	@Modulo as varchar(125)=null

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


	IF @Opcion = 1  -- Consula todos los clientes
	 BEGIN
	    select * from permisos, Modulos where
			permisos.IdModulo=Modulos.IdModulo and
			permisos.IdPerfil=@IdPerfil 

	 END
   
END

GO
/****** Object:  StoredProcedure [dbo].[spGetPersonal]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 04/02/2022
-- Description:	Personal
-- =============================================

CREATE   PROCEDURE [dbo].[spGetPersonal]
	-- Add the parameters for the stored procedure here
	@Opcion           INT,
	@IdPersonal       INT = NULL,
	@Nombres          VARCHAR(250) = NULL,
	@Apellidos        VARCHAR(250) = NULL,
	@Identificacion   VARCHAR(20) = NULL,
	@Estado           VARCHAR(1) = NULL,
	@TipoContrato     INT = NULL,
	@Compania         INT = NULL,
	@Inactivos        BIT = 0,
	@IncluirInactivos BIT = 0
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	IF @Opcion = 1 --Consulta General
	BEGIN 
		SELECT PER.IdPersonal
				,PER.TipoIdent
				,PER.Identificacion
				,PER.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
				,PER.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
				,PER.IdCiudad
				,PER.Direccion COLLATE Cyrillic_General_CI_AI as Direccion
				,PER.Telefono
				,PER.Movil
				,PER.Email COLLATE Cyrillic_General_CI_AI as Email
				,PER.Estado
				,PER.IdCia
				,PER.Cargo
				,PER.IdCargo
				,PER.TipoContrato
				,TDC.Nombre AS TipDoc
				,CIU.Nombre COLLATE Cyrillic_General_CI_AI AS Ciudad
				,DEP.IdDepartamento
				,DEP.IdPais
				,CIA.NombreCia
				,CASE PER.TipoContrato 
				WHEN '1' THEN 'SANTAMARIA'
				WHEN '2' THEN 'EN MISIÓN' 
				WHEN '3' THEN 'CONTRATADOS'
				ELSE '0' 
				END AS NomContrato

		FROM [dbo].[Personal] AS PER 
				INNER JOIN [dbo].[TipoDocumentos] AS TDC ON PER.TipoIdent = TDC.IdTipoDoc
				INNER JOIN [dbo].[Ciudades] AS CIU ON PER.IdCiudad = CIU.IdCiudad
				INNER JOIN [dbo].[Departamentos] as DEP ON DEP.IdDepartamento = CIU.IdDepartamento
				INNER JOIN [dbo].[Compania] as CIA ON PER.IdCia = CIA.IdCia

		WHERE PER.IdCia  between ISNULL(@Compania,PER.IdCia) and ISNULL(@Compania,PER.IdCia) and
				PER.Estado between ISNULL(@Estado,PER.Estado) and ISNULL(@Estado,PER.Estado) 

		ORDER BY Apellidos ASC
	END

	IF @Opcion = 2 --Consulta por IdPersonal
	BEGIN 
		SELECT PER.IdPersonal
				,PER.TipoIdent
				,PER.Identificacion
				,PER.Nombres COLLATE Cyrillic_General_CI_AI as Nombres
				,PER.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos
				,PER.IdCiudad
				,PER.Direccion COLLATE Cyrillic_General_CI_AI as Direccion
				,PER.Telefono
				,PER.Movil
				,PER.Email COLLATE Cyrillic_General_CI_AI as Email
				,PER.Estado
				,PER.IdCia
				,PER.Cargo
				,PER.IdCargo
				,PER.TipoContrato
				,TDC.Nombre AS TipDoc
				,CIU.Nombre COLLATE Cyrillic_General_CI_AI AS Ciudad
				,DEP.IdDepartamento
				,DEP.IdPais
				,CIA.NombreCia
				,CASE PER.TipoContrato 
				WHEN '1' THEN 'SANTAMARIA'
				WHEN '2' THEN 'EN MISIÓN' 
				WHEN '3' THEN 'CONTRATADOS'
				ELSE '0' 
				END AS NomContrato

			FROM [dbo].[Personal] AS PER 
				INNER JOIN [dbo].[TipoDocumentos] AS TDC ON PER.TipoIdent = TDC.IdTipoDoc
				INNER JOIN [dbo].[Ciudades] AS CIU ON PER.IdCiudad = CIU.IdCiudad
				INNER JOIN [dbo].[Departamentos] as DEP ON DEP.IdDepartamento = CIU.IdDepartamento
				INNER JOIN [dbo].[Compania] as CIA ON PER.IdCia = CIA.IdCia

		WHERE PER.IdPersonal between ISNULL(@IdPersonal,PER.IdPersonal) and ISNULL(@IdPersonal,PER.IdPersonal) and
				PER.IdCia      between ISNULL(@Compania,PER.IdCia) and ISNULL(@Compania,PER.IdCia) and
				PER.Estado     between ISNULL(@Estado,PER.Estado) and ISNULL(@Estado,PER.Estado)  

		ORDER BY Apellidos ASC
	END

	IF @Opcion = 3 -- Consultar por Parametro
	BEGIN
		SELECT 
			PER.IdPersonal,
			PER.TipoIdent,
			PER.Identificacion,
			PER.Nombres COLLATE Cyrillic_General_CI_AI as Nombres,
			PER.Apellidos COLLATE Cyrillic_General_CI_AI as Apellidos,
			PER.IdCiudad,
			PER.Direccion COLLATE Cyrillic_General_CI_AI as Direccion,
			PER.Telefono,
			PER.Movil,
			PER.Email COLLATE Cyrillic_General_CI_AI as Email,
			PER.Estado,
			PER.IdCia,
			PER.Cargo,
			PER.IdCargo,
			PER.TipoContrato,
			TDC.Nombre AS TipDoc,
			CIU.Nombre COLLATE Cyrillic_General_CI_AI AS Ciudad,
			DEP.IdDepartamento,
			DEP.IdPais,
			CIA.NombreCia,
			CASE PER.TipoContrato 
				WHEN '1' THEN 'SANTAMARIA'
				WHEN '2' THEN 'EN MISIÓN' 
				WHEN '3' THEN 'CONTRATADOS'
				ELSE '0' 
			END AS NomContrato
		FROM 
			[dbo].[Personal] AS PER 
		INNER JOIN 
			[dbo].[TipoDocumentos] AS TDC 
			ON PER.TipoIdent = TDC.IdTipoDoc
		INNER JOIN 
			[dbo].[Ciudades] AS CIU 
			ON PER.IdCiudad = CIU.IdCiudad
		INNER JOIN 
			[dbo].[Departamentos] as DEP 
			ON DEP.IdDepartamento = CIU.IdDepartamento
		INNER JOIN 
			[dbo].[Compania] as CIA 
			ON PER.IdCia = CIA.IdCia
		WHERE 
			--PER.Identificacion between ISNULL(@Identificacion,PER.Identificacion) 
			(@Identificacion IS NULL OR PER.Identificacion LIKE CONCAT(@Identificacion, '%'))
			--and PER.TipoContrato between ISNULL(@TipoContrato,PER.TipoContrato) and ISNULL(@TipoContrato,PER.TipoContrato) 
			AND (@TipoContrato IS NULL OR PER.TipoContrato = @TipoContrato )
			--and PER.Nombres like CONCAT('%',ISNULL(@Nombres,PER.Nombres),'%') 
			AND (@Nombres IS NULL OR PER.Nombres LIKE CONCAT(@Nombres, '%')) 
			--and PER.Apellidos like CONCAT('%',ISNULL(@Apellidos,PER.Apellidos),'%') 
			AND (@Apellidos IS NULL OR PER.Apellidos LIKE CONCAT(@Apellidos, '%'))
			--and PER.IdCia between ISNULL(@Compania,PER.IdCia) and ISNULL(@Compania,PER.IdCia) 
			AND (@Compania IS NULL OR PER.IdCia = @Compania)
			--and PER.Estado between ISNULL(@Estado,PER.Estado) and ISNULL(@Estado,PER.Estado)
			AND (
				(@Inactivos = 0 AND @IncluirInactivos = 0 AND PER.Estado = 'A') 
				OR (@Inactivos = 1 AND PER.Estado = 'I')
				OR (@IncluirInactivos = 1 AND PER.Estado IN ('A', 'I'))
			)
		ORDER BY 
			Apellidos ASC 
	END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetPostVenta]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024-07-09
-- Description:	Buscar Postventa - Evaluación
-- =============================================
CREATE PROCEDURE [dbo].[spGetPostVenta]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPostVenta int = null,
	@IdOrdenServicio int = null,
	@IdCotizacion int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT PSV.IdPostVenta
				  ,PSV.IdOrdenServicio
				  ,PSV.IdCotizacion
				  ,PSV.IdCliente
				  ,PSV.FechaPostVenta
				  ,PSV.HoraPostVenta
				  ,PSV.Oficina1
				  ,PSV.Oficina2
				  ,PSV.ObservaOficina
				  ,PSV.Operativo1
				  ,PSV.Operativo2
				  ,PSV.Operativo3
				  ,PSV.Operativo4
				  ,PSV.Operativo5
				  ,PSV.Operativo6
				  ,PSV.ObservaOperativo

			FROM [dbo].[PostVenta] as PSV
		END

	IF @Opcion = 2 -- Consultar por Estado
		BEGIN
			SELECT PSV.IdPostVenta
				  ,PSV.IdOrdenServicio
				  ,PSV.IdCotizacion
				  ,PSV.IdCliente
				  ,PSV.FechaPostVenta
				  ,PSV.HoraPostVenta
				  ,PSV.Oficina1
				  ,PSV.Oficina2
				  ,PSV.ObservaOficina
				  ,PSV.Operativo1
				  ,PSV.Operativo2
				  ,PSV.Operativo3
				  ,PSV.Operativo4
				  ,PSV.Operativo5
				  ,PSV.Operativo6
				  ,PSV.ObservaOperativo

			FROM [dbo].[PostVenta] as PSV
					INNER JOIN [dbo].[Cotizacion] as CTZ ON PSV.IdCotizacion = CTZ.IdCotizacion
				 	INNER JOIN [dbo].[OrdenServicio] as OSM ON PSV.IdOrdenServicio = OSM.IdOrden
				 	INNER JOIN [dbo].[Clientes] as CLI ON PSV.IdCliente = CLI.IdCliente

			WHERE PSV.IdPostVenta     between ISNULL(@IdPostVenta,PSV.IdPostVenta) and ISNULL(@IdPostVenta,PSV.IdPostVenta) and 
				  PSV.IdCotizacion    between ISNULL(@IdCotizacion, PSV.IdCotizacion) and ISNULL(@IdCotizacion, PSV.IdCotizacion) and 
				  PSV.IdOrdenServicio between ISNULL(@IdOrdenServicio, PSV.IdOrdenServicio) and ISNULL(@IdOrdenServicio, PSV.IdOrdenServicio) and 
				  PSV.FechaPostVenta  between ISNULL(@FechaIni, PSV.FechaPostVenta) and ISNULL(@FechaFin,PSV.FechaPostVenta) 
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetPreoperacional]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 10/11/2021
-- Description:	Buscar Preventa
-- =============================================
CREATE   PROCEDURE [dbo].[spGetPreoperacional] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPreventa int=null,
	@IdCotizacion int=null,
	@IdSolicitud int=null,
	@Fecha_Preventa varchar(10)=null,
	@Hora_Preventa varchar(8)=null,
	@IdAsesor int=null,
	@IdEstadoCot int=null,
	@Observaciones varchar(255)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementB.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT PV.IdPreventa
			    ,PV.IdCotizacion
			    ,PV.IdSolicitud
			    ,PV.Fecha_Preventa
			    ,PV.Hora_Preventa
			    ,PV.IdAsesor
			    ,PV.IdEstadoCot
			    ,PV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
				,PV.Gestor
		 
		 FROM [dbo].[Preoperacional] as PV

	  END

	IF @Opcion = 2 --Consulta por Preventa
	  BEGIN 
		 SELECT PV.IdPreventa
			    ,PV.IdCotizacion
			    ,PV.IdSolicitud
			    ,PV.Fecha_Preventa
			    ,PV.Hora_Preventa
			    ,PV.IdAsesor
			    ,PV.IdEstadoCot
			    ,PV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
				,PV.Gestor
		 
		 FROM [dbo].[Preoperacional] as PV

		 WHERE PV.IdPreventa = @IdPreventa

	  END

	IF @Opcion = 3 --Consulta por cotizacion
	  BEGIN 
		 SELECT PV.IdPreventa
			    ,PV.IdCotizacion
			    ,PV.IdSolicitud
			    ,PV.Fecha_Preventa
			    ,PV.Hora_Preventa
			    ,PV.IdAsesor
			    ,PV.IdEstadoCot
			    ,PV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
				,PV.Gestor
		 
		 FROM [dbo].[Preoperacional] as PV

		 WHERE PV.IdCotizacion = @IdCotizacion

	  END

	IF @Opcion = 4 --Consulta por cotizacion
	  BEGIN 
		 SELECT PV.IdPreventa
			    ,PV.IdCotizacion
			    ,PV.IdSolicitud
			    ,PV.Fecha_Preventa
			    ,PV.Hora_Preventa
			    ,PV.IdAsesor
			    ,PV.IdEstadoCot
			    ,PV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
				,PV.Gestor
		 
		 FROM [dbo].[Preoperacional] as PV

		 WHERE  PV.IdPreventa = (SELECT MAX(IdPreventa) from Preoperacional where IdCotizacion = @IdCotizacion)

	  END

END

GO
/****** Object:  StoredProcedure [dbo].[spGetPropietarios]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 04/04/2022
-- Description:	Buscar Propietarios
-- ===============================================
CREATE   PROCEDURE [dbo].[spGetPropietarios] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPropietario int=null,
	@Identificacion varchar(20)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

   IF @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT  Ppt.IdPropietario,
				 Ppt.TipoIdent,
				 Ppt.Identificacion,
				 Ppt.Nombres,
				 Ppt.Apellidos,
				 Ppt.IdCiudad,
				 Ppt.Direccion,
				 Ppt.Telefono,
				 Ppt.Movil,
				 Ppt.Email,
				 Ppt.Estado,
				 CONCAT(Ppt.Nombres, ' ', Ppt.Apellidos) as NombreCompleto,
				 TDoc.Nombre AS TipDoc,
				 Ciu.Nombre AS Ciudad

		 FROM [dbo].[Propietarios] AS Ppt, 
			  [dbo].[TipoDocumentos] AS TDoc, 
			  [dbo].[Ciudades] AS Ciu

		 WHERE Ppt.TipoIdent = TDoc.IdTipoDoc AND 
			   Ppt.IdCiudad = Ciu.IdCiudad and
			   Ppt.IdPropietario <> '1'
	  END

	  IF @Opcion = 2 --Consulta por IdPersonal
	  BEGIN 
		 SELECT  Ppt.IdPropietario,
				 Ppt.TipoIdent,
				 Ppt.Identificacion,
				 Ppt.Nombres,
				 Ppt.Apellidos,
				 Ppt.IdCiudad,
				 Ppt.Direccion,
				 Ppt.Telefono,
				 Ppt.Movil,
				 Ppt.Email,
				 Ppt.Estado,
				 CONCAT(Ppt.Nombres, ' ', Ppt.Apellidos) as NombreCompleto,
				 TDoc.Nombre AS TipDoc,
				 Ciu.Nombre AS Ciudad

		 FROM [dbo].[Propietarios] AS Ppt, 
			  [dbo].[TipoDocumentos] AS TDoc, 
			  [dbo].[Ciudades] AS Ciu

		 WHERE Ppt.TipoIdent = TDoc.IdTipoDoc AND 
			   Ppt.IdCiudad = Ciu.IdCiudad AND
			   Ppt.IdPropietario = @IdPropietario
	  END

END
GO
/****** Object:  StoredProcedure [dbo].[spGetProveedores]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 04/04/2022
-- Description:	Buscar Proveedores
-- ===============================================
CREATE   PROCEDURE [dbo].[spGetProveedores] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdProveedor int=null,
	@Identificacion varchar(20)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

   IF @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT  Ppt.IdProveedor,
				 Ppt.TipoIdent,
				 Ppt.Identificacion,
				 Ppt.Nombres,
				 Ppt.Apellidos,
				 Ppt.IdCiudad,
				 Ppt.Direccion,
				 Ppt.Telefono,
				 Ppt.Movil,
				 Ppt.Email,
				 Ppt.Estado,
				 CONCAT(Ppt.Nombres, ' ', Ppt.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto,
				 TDoc.Nombre AS TipDoc,
				 Ciu.Nombre AS Ciudad

		 FROM [dbo].[Proveedores] AS Ppt, 
			  [dbo].[TipoDocumentos] AS TDoc, 
			  [dbo].[Ciudades] AS Ciu

		 WHERE Ppt.TipoIdent = TDoc.IdTipoDoc AND 
			   Ppt.IdCiudad = Ciu.IdCiudad
	  END

	  IF @Opcion = 2 --Consulta por IdPersonal
	  BEGIN 
		 SELECT  Ppt.IdProveedor,
				 Ppt.TipoIdent,
				 Ppt.Identificacion,
				 Ppt.Nombres,
				 Ppt.Apellidos,
				 Ppt.IdCiudad,
				 Ppt.Direccion,
				 Ppt.Telefono,
				 Ppt.Movil,
				 Ppt.Email,
				 Ppt.Estado,
				 CONCAT(Ppt.Nombres, ' ', Ppt.Apellidos) COLLATE Cyrillic_General_CI_AI as NombreCompleto,
				 TDoc.Nombre AS TipDoc,
				 Ciu.Nombre AS Ciudad

		 FROM [dbo].[Proveedores] AS Ppt, 
			  [dbo].[TipoDocumentos] AS TDoc, 
			  [dbo].[Ciudades] AS Ciu

		 WHERE Ppt.TipoIdent = TDoc.IdTipoDoc AND 
			   Ppt.IdCiudad = Ciu.IdCiudad AND
			   Ppt.IdProveedor = @IdProveedor
	  END

END
GO
/****** Object:  StoredProcedure [dbo].[spGetRangos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 28/04/2023
-- Description:	Buscar Rangos
-- =============================================
CREATE PROCEDURE [dbo].[spGetRangos]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdRango 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 @Opcion = 1  -- Consula todos los Departametno
		BEGIN
			SELECT  RG.IdRango
				   ,RG.Limite_Inf
				   ,RG.Limite_Sup
			       ,RG.Vr_Recogida
			       ,RG.Vr_Supern
			       ,RG.Descripcion

			FROM [dbo].[Rangos] as RG
			
		END

	IF @Opcion = 2 -- Consultar por Rango
		BEGIN
			SELECT  RG.IdRango
				   ,RG.Limite_Inf
				   ,RG.Limite_Sup
			       ,RG.Vr_Recogida
			       ,RG.Vr_Supern
				   ,RG.Descripcion

			FROM [dbo].[Rangos] as RG

			WHERE IdRango = @IdRango
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetRegLLamadas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 19/05/2023
-- Description:	Buscar Registro Llamadas
-- =============================================
CREATE PROCEDURE [dbo].[spGetRegLLamadas] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdReg_Llamada int = null,
	@Movil_Reg numeric(18,0) = null,
	@Motivo_Reg int = null,
	@IdUsuario int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = 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 @Opcion = 1 --Consulta todos
		BEGIN 
			SELECT RL.IdReg_Llamada
				  ,RL.Fecha_Reg
				  ,RL.Nombres_Reg
				  ,RL.Apellidos_Reg
				  ,RL.Movil_Reg
				  ,RL.Motivo_Reg
				  ,RL.IdUsuario
				  ,RL.IdSolicitud
				  ,RL.IdCotizacion
				  ,CASE RL.Motivo_Reg
					WHEN '1' THEN 'COTIZACION'
					WHEN '2' THEN 'SERVICIO AL CLIENTE o PQRS'
					WHEN '3' THEN 'SEGUIMIENTO DE SOLICITUD'
					WHEN '4' THEN 'TRANSFERENCIA ASESOR'
					WHEN '5' THEN 'TRANSFERENCIA OTRA AREA'
					ELSE '0' 
				   END AS RegMotivo
				  ,CONCAT(US.Apellidos, ' ', US.Nombres) as NomUsuario
			
			FROM [dbo].[Reg_Llamadas] as RL,
				 [dbo].[Usuarios] as US

			WHERE RL.IdUsuario = US.IdUsuario

			ORDER BY RL.Fecha_Reg ASC
		END

	IF @Opcion = 2 --Consulta por Usuario
		BEGIN 
			SELECT RL.IdReg_Llamada
				  ,RL.Fecha_Reg
				  ,RL.Nombres_Reg
				  ,RL.Apellidos_Reg
				  ,RL.Movil_Reg
				  ,RL.Motivo_Reg
				  ,RL.IdUsuario
				  ,RL.IdSolicitud
				  ,RL.IdCotizacion
				  ,CASE RL.Motivo_Reg
					WHEN '1' THEN 'COTIZACION'
					WHEN '2' THEN 'SERVICIO AL CLIENTE o PQRS'
					WHEN '3' THEN 'SEGUIMIENTO DE SOLICITUD'
					WHEN '4' THEN 'TRANSFERENCIA ASESOR'
					WHEN '5' THEN 'TRANSFERENCIA OTRA AREA'
					ELSE '0' 
				   END AS RegMotivo
				  ,CONCAT(US.Apellidos, ' ', US.Nombres) as NomUsuario
			
			FROM [dbo].[Reg_Llamadas] as RL,
				 [dbo].[Usuarios] as US

			WHERE RL.IdUsuario = @IdUsuario and
				  RL.IdUsuario = US.IdUsuario

			ORDER BY RL.Fecha_Reg ASC
						
		END

	IF @Opcion = 3 --Consulta por Movil
		BEGIN 
			SELECT RL.IdReg_Llamada
				  ,RL.Fecha_Reg
				  ,RL.Nombres_Reg
				  ,RL.Apellidos_Reg
				  ,RL.Movil_Reg
				  ,RL.Motivo_Reg
				  ,RL.IdUsuario
				  ,RL.IdSolicitud
				  ,RL.IdCotizacion
				  ,CASE RL.Motivo_Reg
					WHEN '1' THEN 'COTIZACION'
					WHEN '2' THEN 'SERVICIO AL CLIENTE o PQRS'
					WHEN '3' THEN 'SEGUIMIENTO DE SOLICITUD'
					WHEN '4' THEN 'TRANSFERENCIA ASESOR'
					WHEN '5' THEN 'TRANSFERENCIA OTRA AREA'
					ELSE '0' 
				   END AS RegMotivo
				  ,CONCAT(US.Apellidos, ' ', US.Nombres) as NomUsuario
			
			FROM [dbo].[Reg_Llamadas] as RL,
				 [dbo].[Usuarios] as US

			WHERE RL.Movil_Reg = @Movil_Reg and
				  RL.IdUsuario = US.IdUsuario

			ORDER BY RL.Fecha_Reg ASC
						
		END

	IF @Opcion = 4 --Consulta por id
		BEGIN 
			SELECT RL.IdReg_Llamada
				  ,RL.Fecha_Reg
				  ,RL.Nombres_Reg
				  ,RL.Apellidos_Reg
				  ,RL.Movil_Reg
				  ,RL.Motivo_Reg
				  ,RL.IdUsuario
				  ,RL.IdSolicitud
				  ,RL.IdCotizacion
				  ,CASE RL.Motivo_Reg
					WHEN '1' THEN 'COTIZACION'
					WHEN '2' THEN 'SERVICIO AL CLIENTE o PQRS'
					WHEN '3' THEN 'SEGUIMIENTO DE SOLICITUD'
					WHEN '4' THEN 'TRANSFERENCIA ASESOR'
					WHEN '5' THEN 'TRANSFERENCIA OTRA AREA'
					ELSE '0' 
				   END AS RegMotivo
				  ,CONCAT(US.Apellidos, ' ', US.Nombres) as NomUsuario
			
			FROM [dbo].[Reg_Llamadas] as RL,
				 [dbo].[Usuarios] as US

			WHERE RL.IdReg_Llamada = @IdReg_Llamada and
				  RL.IdUsuario     = US.IdUsuario

			ORDER BY RL.Fecha_Reg ASC
						
		END

	IF @Opcion = 5 --Consulta por id
		BEGIN 
			SELECT RL.IdReg_Llamada
					,RL.Fecha_Reg
					,RL.Nombres_Reg
					,RL.Apellidos_Reg
					,RL.Movil_Reg
					,RL.Motivo_Reg
					,RL.IdUsuario
					,RL.IdSolicitud
					,RL.IdCotizacion
					,CASE RL.Motivo_Reg
					WHEN '1' THEN 'COTIZACION'
					WHEN '2' THEN 'SERVICIO AL CLIENTE o PQRS'
					WHEN '3' THEN 'SEGUIMIENTO DE SOLICITUD'
					WHEN '4' THEN 'TRANSFERENCIA ASESOR'
					WHEN '5' THEN 'TRANSFERENCIA OTRA AREA'
					ELSE '0' 
					END AS RegMotivo
					,CONCAT(US.Apellidos, ' ', US.Nombres) as NomUsuario
			
			FROM [dbo].[Reg_Llamadas] as RL,
					[dbo].[Usuarios] as US

			WHERE RL.Motivo_Reg = ISNULL(@Motivo_Reg,RL.Motivo_Reg) and
					RL.IdUsuario  = US.IdUsuario and
					RL.IdUsuario  = ISNULL(@IdUsuario,RL.IdUsuario) and
					RL.Fecha_Reg between ISNULL(@FechaIni,RL.Fecha_Reg) and ISNULL(@FechaFin,RL.Fecha_Reg)

			ORDER BY RL.Fecha_Reg ASC
						 
		END
		

END

GO
/****** Object:  StoredProcedure [dbo].[spGetRestricciones]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 01/10/2021
-- Description:	Buscar Restricciones
-- ==============================================
CREATE   PROCEDURE [dbo].[spGetRestricciones]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdRestriccion Int=null,
	@IdCiudad Int=null,
	@Zona varchar(125)=null,
	@Fecha_Ini varchar(10)=null,
    @Fecha_Fin varchar(10)=null,
	@Hora_Ini varchar(8)=null,
    @Hora_Fin varchar(8)=null,
	@IdVehiculo 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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdRestriccion]
				,[IdCiudad]
				,[IdVehiculo]
				,[Fecha_Ini]
				,[Fecha_Fin]
				,[Hora_Ini]
				,[Hora_Fin]
				,[IdVehiculo]
				
		FROM [dbo].[Restricciones_Vehiculos]
	  END

	IF @Opcion = 2 -- Consultar por Material
	  BEGIN
		SELECT  RT.IdRestriccion
				,RT.IdCiudad
				,RT.Zona
				,RT.Fecha_Ini
				,RT.Fecha_Fin
				,RT.Hora_Ini
				,RT.Hora_Fin
				,RT.IdVehiculo
				,CI.Nombre as NombreCiudad

		FROM  [dbo].[Restricciones_Vehiculos] as RT, [dbo].[Vehiculos] as VH, [dbo].[Ciudades] as CI
		WHERE CI.IdCiudad = RT.IdCiudad and VH.IdVehiculo = RT.IdVehiculo and RT.IdVehiculo = @IdVehiculo
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetRol]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 14/01/2022
-- Description:	Procedimiento almacenado para obtener roles
-- =============================================
CREATE   PROCEDURE [dbo].[spGetRol]
	-- Add the parameters for the stored procedure here
	@Opcion as int,
	@IdPerfil as int=null,
    @IdUsuario as int=null, 
    @FechaIni as varchar(10)=null, 
    @FechaFin as varchar(10)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    if @Opcion=1 
	    SELECT * FROM Roles;
END
GO
/****** Object:  StoredProcedure [dbo].[spGetRoles]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 23/09/2021
-- Description:	Procedimiento almacenado para obtener roles
-- =============================================
CREATE   PROCEDURE [dbo].[spGetRoles] 
	-- Add the parameters for the stored procedure here
	@Opcion as int,
	@IdPerfil as int=null,
    @IdUsuario as int=null, 
    @FechaIni as varchar(10)=null, 
    @FechaFin as varchar(10)=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 @Opcion=1 
	    SELECT * FROM Roles;	 
END
GO
/****** Object:  StoredProcedure [dbo].[spGetRolesUsuario]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 14/01/2022
-- Description:	Procedimiento almacenado para obtener roles
-- =============================================
CREATE   PROCEDURE [dbo].[spGetRolesUsuario]
	-- Add the parameters for the stored procedure here
	@Opcion as int,
	@IdPerfil as int=null,
    @IdUsuario as int=null, 
    @FechaIni as varchar(10)=null, 
    @FechaFin as varchar(10)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

   if @Opcion=1 
	    SELECT * FROM Roles;
END
GO
/****** Object:  StoredProcedure [dbo].[spGetRutaPrecinto]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 16/05/2023
-- Description:	Buscar Rutas Precinto
-- =============================================
CREATE PROCEDURE [dbo].[spGetRutaPrecinto]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdPrecinto int = null,
	@IdCia int = null,
	@IdTrafico 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 @Opcion = 1 --Consulta todos
		BEGIN 
			SELECT PC.IdPrecinto
				  ,PC.Precinto
				  ,PC.IdCia
				  ,PC.IdTrafico
				  ,PC.Item
				  
			FROM [dbo].[Ruta_Precintos] as PC
						
		END

	IF @Opcion = 2 --Consulta por precinto y compañia
		BEGIN 
			SELECT PC.IdPrecinto
				  ,PC.Precinto
				  ,PC.IdCia
				  ,PC.IdTrafico
				  ,PC.Item
				  
			FROM [dbo].[Ruta_Precintos] as PC

			WHERE PC.IdPrecinto = @IdPrecinto and
				  PC.IdCia      = @IdCia
						
		END

	IF @Opcion = 3 --Consulta por trafico y compañia
		BEGIN 
			SELECT PC.IdPrecinto
				  ,PC.Precinto
				  ,PC.IdCia
				  ,PC.IdTrafico
				  ,PC.Item
				  
			FROM [dbo].[Ruta_Precintos] as PC

			WHERE PC.IdTrafico = @IdTrafico and
				  PC.IdCia     = @IdCia
						
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetRutas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 13/04/2023
-- Description:	Buscar Rutas
-- =============================================
CREATE PROCEDURE [dbo].[spGetRutas] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdRutas int = null,
	@IdCiudadOrigen int = null,
	@IdCiudadDestino 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 @Opcion = 1 --Consulta General
		BEGIN 
			SELECT RT.IdRutas
				  ,RT.Nombre_Ruta
				  ,RT.IdCiudadOrigen
				  ,RT.IdCiudadDestino
				  ,RT.Km_Ruta
				  ,RT.IdLocOri
				  ,RT.IdLocDes
				  ,RT.CodSyscom
				  ,CO.Nombre as C_Origen
				  ,CD.Nombre as C_Destino
  
			FROM [dbo].[Rutas] as RT,
				 [dbo].[Ciudades] as CO,
				 [dbo].[Ciudades] as CD

			WHERE RT.IdCiudadOrigen  = CO.IdCiudad and
				  RT.IdCiudadDestino = CD.IdCiudad
		END

	IF @Opcion = 2 --Consulta por Ruta
		BEGIN 
			SELECT RT.IdRutas
				  ,RT.Nombre_Ruta
				  ,RT.IdCiudadOrigen
				  ,RT.IdCiudadDestino
				  ,RT.Km_Ruta
				  ,RT.IdLocOri
				  ,RT.IdLocDes
				  ,RT.CodSyscom
				  ,CO.Nombre as C_Origen
				  ,CD.Nombre as C_Destino
  
			FROM [dbo].[Rutas] as RT,
				 [dbo].[Ciudades] as CO,
				 [dbo].[Ciudades] as CD

			WHERE RT.IdRutas         = @IdRutas and
				  RT.IdCiudadOrigen  = CO.IdCiudad and
				  RT.IdCiudadDestino = CD.IdCiudad
		END

	IF @Opcion = 3 --Consulta por ciudad Origen y Destino
		BEGIN 
			SELECT RT.IdRutas
				  ,RT.Nombre_Ruta
				  ,RT.IdCiudadOrigen
				  ,RT.IdCiudadDestino
				  ,RT.Km_Ruta
				  ,RT.IdLocOri
				  ,RT.IdLocDes
				  ,RT.CodSyscom
  
			FROM [dbo].[Rutas] as RT

			WHERE RT.IdCiudadOrigen  = @IdCiudadOrigen and
				  RT.IdCiudadDestino = @IdCiudadDestino
		END


---------------------------RUTA CONTADOR----------------------------------------------

	IF @Opcion = 6 --Consulta por Ruta Contador
		BEGIN 
			SELECT RC.IdContadorRuta
				  ,RC.IdRutas
				  ,RC.Caracter
				  
			FROM [dbo].[Ruta_Contador] as RC
						
		END

	IF @Opcion = 7 --Consulta por Ruta Contador
		BEGIN 
			SELECT MAX(IdContadorRuta) as IdContadorRuta, 
				   Caracter
				  
			FROM [dbo].[Ruta_Contador]

			GROUP BY IdContadorRuta, Caracter
						
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetSeguimientoCartera]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Buscar Seguimiento Cartera
-- =============================================
CREATE   PROCEDURE [dbo].[spGetSeguimientoCartera] --
@IdContrato INT
AS
BEGIN TRANSACTION
SET NOCOUNT ON;
	BEGIN TRY
	
		--SELECT 
		--	CS.DiasMora,
		--	CS.MesesMora,
		--	CS.TotalMora,
		--	CS.FechaSeguimiento,
		--	CS.Observacion,
		--	CS.Formato
		--FROM Bod.Cartera_Seguimiento AS CS
		--WHERE CS.IdContrato = @IdContrato
	COMMIT TRANSACTION
	END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH
GO
/****** Object:  StoredProcedure [dbo].[spGetSeguimientos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 10/11/2021
-- Description:	Buscar Seguimiento
-- =============================================
CREATE   PROCEDURE [dbo].[spGetSeguimientos] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdSeguimiento int = null,
	@IdCotizacion int = null,
    @IdSolicitud int=  null,
	@AsesorId int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementB.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	
	IF @Opcion = 1 --Consulta General
		BEGIN 
			SELECT SG.IdSeguimiento
				   ,SG.IdCotizacion
				   ,SG.IdSolicitud
				   ,SG.FechaSeguimiento
				   ,SG.HoraSeguimiento
				   ,SG.Asesor
				   ,SG.IdEstadoCot
				   ,SG.FechaProximo
				   ,SG.Gestion
				   ,SG.HoraProximo
				   ,SG.IdGestion
				   ,CONCAT(FechaSeguimiento, ' ', HoraSeguimiento) as Seguimiento
				   ,CONCAT(FechaProximo, ' ', HoraProximo) as Proximo
				   ,GT.Descripcion
		 
			FROM [dbo].[Seguimientos] as SG,
				 [dbo].[Gestiones] as GT

			WHERE SG.IdGestion = GT.IdGestion

		END

	IF @Opcion = 2 --Consulta por Preventa
		BEGIN 
			SELECT SG.IdSeguimiento
				   ,SG.IdCotizacion
				   ,SG.IdSolicitud
				   ,SG.FechaSeguimiento
				   ,SG.HoraSeguimiento
				   ,SG.Asesor
				   ,SG.IdEstadoCot
				   ,SG.FechaProximo
				   ,SG.Gestion
				   ,SG.HoraProximo
				   ,CONCAT(FechaSeguimiento, ' ', HoraSeguimiento) as Seguimiento
				   ,CONCAT(FechaProximo, ' ', HoraProximo) as Proximo
				   ,GT.Descripcion
		 
			 FROM [dbo].[Seguimientos] as SG,
				  [dbo].[Gestiones] as GT

			 WHERE SG.IdSeguimiento = @IdSeguimiento and
				   SG.IdGestion = GT.IdGestion

		END

	IF @Opcion = 3 --Consulta por Cotizacion
		BEGIN 
			SELECT SG.IdSeguimiento
				   ,SG.IdCotizacion
				   ,SG.IdSolicitud
				   ,SG.FechaSeguimiento
				   ,SG.HoraSeguimiento
				   ,SG.Asesor
				   ,SG.IdEstadoCot
				   ,SG.FechaProximo
				   ,SG.Gestion
				   ,SG.HoraProximo
				   ,SG.IdGestion
				   ,CONCAT(FechaSeguimiento, ' ', HoraSeguimiento) as Seguimiento
				   ,CONCAT(FechaProximo, ' ', HoraProximo) as Proximo
				   ,GT.Descripcion
		 
			FROM [dbo].[Seguimientos] as SG,
				  [dbo].[Gestiones] as GT

			WHERE SG.IdCotizacion = @IdCotizacion and
				   SG.IdGestion    = GT.IdGestion

			ORDER BY SG.FechaProximo DESC

		END

	IF @Opcion = 4 --Consulta por Seguimientos
		BEGIN
			DECLARE @Existingdate as varchar(10)
			SET @Existingdate = CONVERT(varchar,GETDATE(),23);

			IF @AsesorId IS NOT NULL
				BEGIN
					SELECT MAX(SG.IdCotizacion) as IdCotizacion
							,SG.Asesor
							,SG.IdGestion
							,SG.Gestion 
							,SG.FechaProximo
							,GT.Descripcion
							,US.Apellidos as ApellidoAsesor
							,US.Nombres as NombreAsesor 
							,CT.IdCliente
							,CL.Nombres as NombreCliente
							,CL.Apellidos as ApellidoCliente

					FROM [dbo].[Seguimientos] as SG
							LEFT JOIN [dbo].[Cotizacion] as CT ON SG.IdCotizacion = CT.IdCotizacion and CT.IdEstadoCot = 3,
						 [dbo].[Gestiones] as GT,
						 [dbo].[Usuarios] as US,
						 [dbo].[Clientes] as CL

					WHERE SG.Asesor       = @AsesorId and
						  SG.IdGestion    = GT.IdGestion and
						  SG.Asesor       = US.IdUsuario and
						  CT.IdCliente    = CL.IdCliente and
						  SG.IdGestion    >= 2 and 
						  SG.CtrlRegistro = 0 and
						  SG.FechaProximo between @Existingdate and @Existingdate

					GROUP BY SG.IdCotizacion
							 ,SG.FechaProximo
							 ,SG.Gestion
							 ,SG.IdGestion
							 ,SG.Asesor
							 ,GT.Descripcion
							 ,US.Apellidos
							 ,US.Nombres
							 ,CT.IdCliente
							 ,CL.Nombres
							 ,CL.Apellidos

					ORDER BY IdCotizacion desc
				END

			IF @AsesorId IS NULL
				BEGIN
					SELECT MAX(SG.IdCotizacion) as IdCotizacion
							,SG.Asesor
							,SG.IdGestion
							,SG.Gestion 
							,SG.FechaProximo
							,GT.Descripcion
							,US.Apellidos as ApellidoAsesor
							,US.Nombres as NombreAsesor 
							,CT.IdCliente
							,CL.Nombres as NombreCliente
							,CL.Apellidos as ApellidoCliente

					FROM [dbo].[Seguimientos] as SG
							LEFT JOIN [dbo].[Cotizacion] as CT ON SG.IdCotizacion = CT.IdCotizacion and CT.IdEstadoCot = 3,
						 [dbo].[Gestiones] as GT,
						 [dbo].[Usuarios] as US,
						 [dbo].[Clientes] as CL

					WHERE SG.IdGestion    = GT.IdGestion and
						  SG.Asesor       = US.IdUsuario and
						  CT.IdCliente    = CL.IdCliente and
						  SG.IdGestion    >= 2 and
						  SG.CtrlRegistro = 0 and
						  SG.FechaProximo between @Existingdate and @Existingdate

					GROUP BY SG.IdCotizacion
							 ,SG.FechaProximo
							 ,SG.Gestion
							 ,SG.IdGestion
							 ,SG.Asesor
							 ,GT.Descripcion
							 ,US.Apellidos
							 ,US.Nombres
							 ,CT.IdCliente
							 ,CL.Nombres
							 ,CL.Apellidos

					ORDER BY IdCotizacion desc
				END
		END

	IF @Opcion = 5 --Consulta por Cotizacion
		BEGIN 
			SELECT SG.IdSeguimiento
				   ,SG.IdCotizacion
				   ,SG.IdSolicitud
				   ,SG.FechaSeguimiento
				   ,SG.HoraSeguimiento
				   ,SG.Asesor
				   ,SG.IdEstadoCot
				   ,SG.FechaProximo
				   ,SG.Gestion
				   ,SG.HoraProximo
				   ,SG.IdGestion
				   ,CONCAT(SG.FechaSeguimiento, ' ', SG.HoraSeguimiento) as Seguimiento
				   ,CONCAT(SG.FechaProximo, ' ', SG.HoraProximo) as Proximo
				   ,GT.Descripcion
		 
			FROM [dbo].[Seguimientos] as SG left join [dbo].[Seguimientos] m2 ON (SG.IdCotizacion =  m2.IdCotizacion and SG.IdSeguimiento < m2.IdSeguimiento),
				 [dbo].[Gestiones] as GT

			WHERE m2.IdSeguimiento IS NULL and
				  SG.IdEstadoCot <> 4 and SG.IdEstadoCot <> 6 and
				   SG.IdGestion = GT.IdGestion

			ORDER BY IdCotizacion desc

		END

	IF @Opcion = 6 -- Registro de Seguimiento 
	BEGIN
		SELECT 
			IdSeguimiento, 
			IdCotizacion,
			IdSolicitud,
			FechaSeguimiento,
			HoraSeguimiento,
			Asesor, 
			IdEstadoCot,
			FechaProximo,
			Gestion,
			HoraProximo,
			IdGestion,
			Seguimiento,
			Proximo,
			Descripcion
		FROM (
			SELECT
				SG.IdSeguimiento,
				SG.IdCotizacion,
				SG.IdSolicitud,
				SG.FechaSeguimiento,
				SG.HoraSeguimiento,
				(SELECT CONCAT(Nombres, ' ', Apellidos) FROM Usuarios WHERE IdUsuario = SG.Asesor)AS Asesor,
				SG.IdEstadoCot,
				SG.FechaProximo,
				SG.Gestion,
				SG.HoraProximo,
				GT.Descripcion AS IdGestion,
				CONCAT(FechaSeguimiento, ' ', HoraSeguimiento) as Seguimiento,
				CONCAT(FechaProximo, ' ', HoraProximo) as Proximo,
				GT.Descripcion
			FROM 
				[dbo].[Seguimientos] as SG
			LEFT JOIN 
				[dbo].[Gestiones] as GT
				ON GT.IdGestion = SG.IdGestion
			WHERE 
				SG.IdCotizacion = @IdCotizacion 
			--ORDER BY 
			--	SG.FechaProximo DESC

			UNION ALL

			SELECT 
				IdSegAgenda AS IdSeguimiento, 
				IdCotizacion,
				0 AS IdSolicitud,
				FechaSeg AS FechaSeguimiento,
				HoraSeg AS HoraSeguimiento,
				ISNULL((SELECT CONCAT(Nombres, ' ', Apellidos) FROM Usuarios WHERE IdUsuario = AG.IdUsuario), '') AS Asesor, 
				0 AS IdEstadoCot,
				'' AS FechaProximo,
				UPPER(ObservaSeg) AS Gestion,
				'' AS HoraProximo,
				'' AS IdGestion,
				'' AS Seguimiento,
				'' AS Proximo,
				'' AS Descipcion
			FROM 
				Agenda_Seguimiento AS AG
			WHERE 
				IdCotizacion = @IdCotizacion

		) AS Seguimiento
		ORDER BY 
			FechaSeguimiento
	END

END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_CausasOrigen]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 27/05/2024
-- Description:	Buscar Serv_CausasOrigen 
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_CausasOrigen]
	-- Add the parameters for the stored procedure here
	@Opcion as int
	
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 @Opcion=1 
		BEGIN
			SELECT IdCausasOrigen
				   ,NombreCausas
			
			FROM [dbo].[Serv_CausasOrigen]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_ClasePqrs]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 27/05/2024
-- Description:	Buscar Serv_Clases
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_ClasePqrs]
	-- Add the parameters for the stored procedure here
	@Opcion as int
	
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 @Opcion=1 
		BEGIN
			SELECT IdClasePqrs
				   ,NombreClasePqrs
			
			FROM [dbo].[Serv_ClasePqrs]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_Clases]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/09/2021
-- Description:	Buscar Serv_Clases
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_Clases]
	-- Add the parameters for the stored procedure here
	@Opcion as int
	
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 @Opcion=1 
		BEGIN
			SELECT IdClase
				   ,NombreClase
			
			FROM [dbo].[Serv_Clases]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_EstadoPqrs]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 27/05/2024
-- Description:	Buscar Serv_EstadoPqrs
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_EstadoPqrs]
	-- Add the parameters for the stored procedure here
	@Opcion as int
	
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 @Opcion=1 
		BEGIN
			SELECT IdEstadoPqrs
				   ,NombreEstado
			
			FROM [dbo].[Serv_EstadosPqrs]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_Radicado]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 27/05/2024
-- Description:	Buscar Serv_Radicados
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_Radicado]
	-- Add the parameters for the stored procedure here
	@Opcion as int,
	@IdCia int = null,
	@AnoRad numeric(2,0) = null,
	@EstadoRad varchar(1) = 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 @Opcion = 1 --Cargar todos los Radicados
		BEGIN
			SELECT IdRadicado
				  ,IdCia
				  ,Compania
				  ,Contador
				  ,AnoRad
				  ,EstadoRad
			
			FROM [dbo].[Serv_Radicado]
		END

	IF @Opcion = 2 --Cargar Radicados por Parametro
		BEGIN
			SELECT IdRadicado
				  ,IdCia
				  ,Compania
				  ,Contador
				  ,AnoRad
				  ,EstadoRad
			
			FROM [dbo].[Serv_Radicado]

			WHERE IdCia = @IdCia and AnoRad = @AnoRad
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_Recepcion]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 27/05/2024
-- Description:	Buscar Serv_Recepcion
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_Recepcion]
	-- Add the parameters for the stored procedure here
	@Opcion as int
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 @Opcion=1 
		BEGIN
			SELECT IdRecepcion
				  ,NombreRecepcion
			
			FROM [dbo].[Serv_Recepcion]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServ_Responsable]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 27/05/2024
-- Description:	Buscar Serv_Responsable
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServ_Responsable]
	-- Add the parameters for the stored procedure here
	@Opcion as int
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 @Opcion=1 
		BEGIN
			SELECT IdResponsable
				  ,NombreResponsable
			
			FROM [dbo].[Serv_Responsable]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServicioCliente]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024/05/22
-- Description:	Buscar Servicio Cliente
-- =============================================
CREATE PROCEDURE [dbo].[spGetServicioCliente]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdServicioCliente int = null,
	@Identificacion varchar(20) = null,
	@Movil varchar(20) = null,
	@IdCotizacion int = null,
	@EstadoServicio varchar(1) = null,
	@Nombres VARCHAR(100) = NULL,
	@Apellidos VARCHAR(100) = 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 @Opcion = 1 --Consulta General
	BEGIN 
		SELECT 
			SCL.IdServicioCliente,
			SCL.FechaServicio,
			SCL.HoraServicio,
			SCL.EstadoServicio,
			SCL.Movil,
			SCL.Telefono,
			SCL.TipoIdentidad,
			SCL.Identificacion,
			SCL.Nombres,
			SCL.Apellidos,
			SCL.Email,
			SCL.IdCliente,
			SCL.IdCotizacion,
			SCL.IdOrden,
			SCL.Compania,
			SCL.Motivo,
			SCL.ObservaServicio,
			CASE SCL.EstadoServicio
				WHEN '1' THEN 'ACTIVO'
				WHEN '2' THEN 'SEGUIMIENTO'
				WHEN '3' THEN 'CERRADO'
				ELSE '0' 
			END AS EstadoServ,
			--ORDEN SERVICIO
			OSM.NumOrden,
			CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio,
			--MOTIVOS DE ATENCION
			MAT.Nombre as NomMotivo
		FROM 
			[dbo].[ServicioCliente] as SCL
			LEFT JOIN [dbo].[OrdenServicio] as OSM ON SCL.IdOrden = OSM.IdOrden
			LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
			LEFT JOIN [dbo].[Motivos_Atencion] as MAT ON SCL.Motivo = MAT.IdMotivo
		WHERE 
			(@Nombres IS NULL OR SCL.Nombres LIKE CONCAT(@Nombres, '%'))
			AND (@Apellidos IS NULL OR SCL.Apellidos LIKE CONCAT(@Apellidos, '%'))
			AND (@Identificacion IS NULL OR SCL.Identificacion LIKE CONCAT(@Identificacion, '%'))
			AND (@Movil IS NULL OR SCL.Movil LIKE CONCAT(@Movil, '%'))
	END

	IF @Opcion = 2 --Consulta por IdPersonal
		BEGIN 
			SELECT SCL.IdServicioCliente
				  ,SCL.FechaServicio
				  ,SCL.HoraServicio
				  ,SCL.EstadoServicio
				  ,SCL.Movil
				  ,SCL.Telefono
				  ,SCL.TipoIdentidad
				  ,SCL.Identificacion
				  ,SCL.Nombres
				  ,SCL.Apellidos
				  ,SCL.Email
				  ,SCL.IdCliente
				  ,SCL.IdCotizacion
				  ,SCL.IdOrden
				  ,SCL.Compania
				  ,SCL.Motivo
				  ,SCL.ObservaServicio
				  ,CASE SCL.EstadoServicio
					WHEN '1' THEN 'ACTIVO'
					WHEN '2' THEN 'SEGUIMIENTO'
					WHEN '3' THEN 'CERRADO'
					ELSE '0' 
				   END AS EstadoServ

				  --COTIZAICON
				  ,CT.IdUsuario

				  --ORDEN SERVICIO
				  ,OSM.NumOrden
				  ,OSM.NumInventario
				  ,CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio
				  ,CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario

				  --MOTIVOS DE ATENCION
				  ,MAT.Nombre as NomMotivo

			 FROM [dbo].[ServicioCliente] as SCL
					LEFT JOIN [dbo].[Cotizacion] as CT ON SCL.IdCotizacion = CT.IdCotizacion
					LEFT JOIN [dbo].[OrdenServicio] as OSM ON SCL.IdOrden = OSM.IdOrden
					LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
					LEFT JOIN [dbo].[Motivos_Atencion] as MAT ON SCL.Motivo = MAT.IdMotivo

			WHERE SCL.IdServicioCliente between ISNULL(@IdServicioCliente,SCL.IdServicioCliente) and ISNULL(@IdServicioCliente,SCL.IdServicioCliente) and 
				  SCL.Identificacion    between ISNULL(@Identificacion,SCL.Identificacion) and ISNULL(@Identificacion,SCL.Identificacion) and 
				  SCL.IdCotizacion      between ISNULL(@IdCotizacion,SCL.IdCotizacion) and ISNULL(@IdCotizacion,SCL.IdCotizacion) and 
				  SCL.EstadoServicio    like CONCAT('%',ISNULL(@EstadoServicio,SCL.EstadoServicio),'%') and
				  SCL.Movil             like ISNULL(@Movil,'%')   
				  
		END

	IF @Opcion = 3 --Consulta por Servici al cliente
	BEGIN 
		SELECT	
			SCL.IdServicioCliente,
			SCL.FechaServicio,
			SCL.HoraServicio,
			SCL.EstadoServicio,
			SCL.Movil,
			SCL.Telefono,
			SCL.TipoIdentidad,
			SCL.Identificacion,
			SCL.Nombres,
			SCL.Apellidos,
			SCL.Email,
			SCL.IdCliente,
			SCL.IdCotizacion,
			SCL.IdOrden,
			SCL.Compania,
			SCL.Motivo,
			SCL.ObservaServicio,
			CASE SCL.EstadoServicio
				WHEN '1' THEN 'ACTIVO'
				WHEN '2' THEN 'SEGUIMIENTO'
				WHEN '3' THEN 'CERRADO'
				ELSE '0' 
			END AS EstadoServ,
			--COTIZACION
			CT.IdCotizacion,
			CT.IdCliente,
			CT.IdSolicitud,
			--ORDEN SERVICIO
			OSM.IdOrden as IdOrdenServ,
			OSM.NumOrden,
			OSM.NumInventario,
			OSM.NumRequisicion,
			CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio,
			--CLIENTE
			CL.TipoIdent as TipoIdentCl,
			CL.Identificacion as IdentCl,
			CL.Nombres as NombreCl,
			CL.Apellidos as ApellidoCl,
			CL.Email as EmailCl,
			CL.Telefono as TelefonoCl,
			--COMPAÑIA/TIPO SERVICIO
			DST.Compania as CiaDestino,
			TSV.Nombre as NombreTipoServ
		FROM 
			[dbo].[Cotizacion] as CT
			LEFT JOIN [dbo].[OrdenServicio] as OSM ON CT.IdCotizacion = OSM.IdCotizacion
			LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
			LEFT JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
			LEFT JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
			LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
			LEFT JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
			LEFT JOIN [dbo].[ServicioCliente] as SCL ON CT.IdCotizacion = SCL.IdCotizacion
		WHERE 
			CT.IdCliente    = (select MAX(IdCliente) from [dbo].[Clientes] where Movil = @Movil)  and
			CT.IdCotizacion = (select MAX(IdCotizacion) from [dbo].[Cotizacion] where IdCliente = CT.IdCliente)  	  
	END

	IF @Opcion = 5 --Consulta por Servicio al cliente
		BEGIN 
			SELECT   CT.IdCotizacion as CotizacionId
					,CT.IdCliente as ClienteId
					,CT.IdSolicitud as SolicitudId
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Valor_Declarado
				  
					--ORDEN SERVICIO
					,OSM.IdOrden as OrdenId
					,OSM.NumOrden
					,OSM.NumInventario
					,OSM.NumRequisicion
					,CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio
					,CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario

					--CLIENTE
					,CL.TipoIdent as TipoIdentCl
					,CL.Identificacion as IdentCl
					,CL.Nombres as NombreCl
					,CL.Apellidos as ApellidoCl
					,CL.Email as EmailCl
					,CL.Telefono as TelefonoCl
				  
					--COMPAÑIA/TIPO SERVICIO
					,DST.Compania as CiaDestino
					,TSV.Nombre as NombreTipoServ

			FROM [dbo].[Cotizacion] as CT
					LEFT JOIN [dbo].[OrdenServicio] as OSM ON CT.IdCotizacion = OSM.IdCotizacion
					LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					LEFT JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					LEFT JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
					LEFT JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario

			WHERE CT.IdCliente  = ISNULL((select MAX(IdCliente) from [dbo].[Clientes] where Movil = @Movil),'0') 

			ORDER BY CT.IdCotizacion DESC
				
		END

	IF (@Opcion = 6)
	BEGIN
		SELECT	
			SCL.IdServicioCliente, SCL.FechaServicio, SCL.HoraServicio,
			SCL.EstadoServicio, SCL.Movil, SCL.Telefono,
			SCL.TipoIdentidad, SCL.Identificacion, SCL.Nombres,
			SCL.Apellidos, SCL.Email, SCL.IdCliente,
			SCL.IdCotizacion, SCL.IdOrden, SCL.Compania,
			SCL.Motivo, SCL.ObservaServicio,
			CASE SCL.EstadoServicio
				WHEN '1' THEN 'ACTIVO'
				WHEN '2' THEN 'SEGUIMIENTO'
				WHEN '3' THEN 'CERRADO'
				ELSE '0' 
			END AS EstadoServ,
			--COTIZACION
			CT.IdCotizacion, CT.IdCliente, CT.IdSolicitud,
			--ORDEN SERVICIO
			OSM.IdOrden as IdOrdenServ, OSM.NumOrden, 
			OSM.NumInventario, OSM.NumRequisicion,
			CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio,
			CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario,
			--CLIENTE
			CL.TipoIdent as TipoIdentCl, CL.Identificacion as IdentCl,
			CL.Nombres as NombreCl, CL.Apellidos as ApellidoCl,
			CL.Email as EmailCl, CL.Telefono as TelefonoCl,
			CL.Movil AS MovilCl,
			--COMPAÑIA/TIPO SERVICIO
			DST.Compania as CiaDestino, TSV.Nombre as NombreTipoServ
		FROM 
			[dbo].[Cotizacion] as CT
			LEFT JOIN [dbo].[OrdenServicio] as OSM ON CT.IdCotizacion = OSM.IdCotizacion
			LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
			LEFT JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
			LEFT JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
			LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
			LEFT JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
			LEFT JOIN [dbo].[ServicioCliente] as SCL ON CT.IdCotizacion = SCL.IdCotizacion
		WHERE 
			(
				(@Identificacion IS NOT NULL AND CT.IdCliente = (SELECT IdCliente FROM Clientes WHERE Identificacion = @Identificacion))
				OR (@Movil IS NOT NULL AND CT.IdCliente = (SELECT MAX(IdCliente) FROM Clientes WHERE Movil = @Movil))
			)
			 AND SCL.IdServicioCliente IS NULL
		ORDER BY 
			CT.IdCotizacion
	END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServicioClienteSeguimiento]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 30/05/2024
-- Description:	Buscar Seguimiento Servicio Cliente
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServicioClienteSeguimiento] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdServicioSeg int = null,
	@IdServicioCliente int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementB.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT  SCS.IdServicioSeg
				,SCS.IdServicioCliente
			    ,SCS.FechaServ
			    ,SCS.HoraServ
				,SCS.GestorServ
			    ,SCS.EstadoServ
			    ,SCS.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones

				--DATOS GESTOR
				,CONCAT(GTR.Apellidos, ' ', GTR.Nombres) as NombreGestor

				--ESTADO
				,CASE SCS.EstadoServ
					WHEN '1' THEN 'ACTIVO'
					WHEN '2' THEN 'SEGUIMIENTO'
					WHEN '3' THEN 'CERRADO'
					ELSE '0' 
				   END AS NombreEstado

		 
		 FROM [dbo].[ServicioClienteSeguimiento] as SCS
				INNER JOIN [dbo].[Usuarios] as GTR ON SCS.GestorServ = GTR.IdUsuario
	  END

	IF @Opcion = 2 --Consulta por Preventa
	  BEGIN 
		SELECT  
			SCS.IdServicioSeg,
			SCS.IdServicioCliente,
			SCS.FechaServ,
			SCS.HoraServ,
			SCS.GestorServ,
			SCS.EstadoServ,
			SCS.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones,
			--DATOS GESTOR
			CONCAT(GTR.Apellidos, ' ', GTR.Nombres) as NombreGestor,
			--ESTADO
			CASE SCS.EstadoServ
				WHEN '1' THEN 'ACTIVO'
				WHEN '2' THEN 'SEGUIMIENTO'
				WHEN '3' THEN 'CERRADO'
				ELSE '0' 
			END AS NombreEstado	 
		FROM 
			[dbo].[ServicioClienteSeguimiento] as SCS
		INNER JOIN 
			[dbo].[Usuarios] as GTR ON SCS.GestorServ = GTR.IdUsuario
		WHERE 
			(SCS.IdServicioSeg = @IdServicioSeg OR SCS.IdServicioCliente = @IdServicioCliente)
	  END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetServicioPqrs]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024/05/22
-- Description:	Buscar Servicio Pqrs
-- =============================================
CREATE PROCEDURE [dbo].[spGetServicioPqrs]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdServicioPqrs int = null,
	@FechaReclamo varchar(10) = null,
	@Movil varchar(20) = null,
	@IdCotizacion int = null,
	@EstadoPqrs int = null,
	@Identificacion VARCHAR(20) = NULL,
	@OrdenServicio INT = NULL,
	@Radicado VARCHAR(20) = NULL,
	@IdCia 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 @Opcion = 1 --Consulta General
		BEGIN 
			SELECT   PQ.IdServicioPqrs
					,PQ.FechaRadicado
					,PQ.HoraRadicado
					,PQ.Radicado
					,PQ.CiaRadicado
					,PQ.AnoRadicado
					,PQ.Recepcion
					,PQ.Clase
					,PQ.FechaReclamo
					,PQ.HoraReclamo
					,PQ.EstadoPqrs
					,PQ.FechaCierre
					,PQ.Tiempo
					,PQ.Descripcion
					,PQ.ClasePqrs
					,PQ.CausasOrigen
					,PQ.Responsable
					,PQ.IdSolicitud
					,PQ.IdCotizacion
					,PQ.IdOrden
					,PQ.IdCliente
					,PQ.CtrlCorreo

					--CALCULAR DIAS
					,(DATEDIFF(DAY, (CONVERT(date,PQ.FechaReclamo)),GETDATE())) as TiempoDias

					--COTIZACION
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida 
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial 
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
				    ,CT.ObservaInterna
					,CT.ObservaInterna
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					 END AS NegocioOrigen

					 --ORDEN SERVICIO
					,OSM.NumOrden
					,OSM.NumInventario
					,CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio
					,CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario

					--CIUDAD
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen

					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino

					--SERVICIOS
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					
					--COMPANIA
					,CIA.NombreCia as NombreCia

					--CLIENTE
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					
					--ASESOR
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor

					--PQRS DETALLADA
					,(SELECT SUM(ValorArt) FROM [dbo].[ServicioPqrsDetalle] as SPD WHERE SPD.IdServicioPqrs = PQ.IdServicioPqrs) as ValorMercancia

					--TABLAS ANEXAS
					,RP.NombreRecepcion 
					,EP.NombreEstado
					,CP.NombreClasePqrs
					,CO.NombreCausas
					,RB.NombreResponsable
					,RD.Compania
					,RD.AnoRad

			FROM [dbo].[ServicioPqrs] as PQ
					INNER JOIN [dbo].[Cotizacion] as CT ON PQ.IdCotizacion = CT.IdCotizacion
					INNER JOIN [dbo].[OrdenServicio] as OSM ON PQ.IdOrden = OSM.IdOrden
					INNER JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					INNER JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad
					INNER JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					INNER JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					INNER JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					INNER JOIN [dbo].[Compania] as CIA ON CT.IdCia = CIA.IdCia
					INNER JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					LEFT  JOIN [dbo].[Serv_Recepcion] as RP ON PQ.Recepcion = RP.IdRecepcion
					LEFT  JOIN [dbo].[Serv_EstadosPqrs] as EP ON PQ.EstadoPqrs = EP.IdEstadoPqrs
					LEFT  JOIN [dbo].[Serv_ClasePqrs] as CP ON PQ.ClasePqrs = CP.IdClasePqrs
					LEFT  JOIN [dbo].[Serv_CausasOrigen] as CO ON PQ.CausasOrigen = CO.IdCausasOrigen
					LEFT  JOIN [dbo].[Serv_Responsable] as RB ON PQ.Responsable = RB.IdResponsable
					LEFT  JOIN [dbo].[Serv_Radicado] as RD ON PQ.CiaRadicado = RD.IdCia 

		END

	IF @Opcion = 2 --Consulta por IdPersonal
		BEGIN 
			UPDATE [dbo].[ServicioPqrs] SET Tiempo = (DATEDIFF(DAY, (CONVERT(date,FechaReclamo)),GETDATE())) WHERE IdServicioPqrs = @IdServicioPqrs

			SELECT	 PQ.IdServicioPqrs
					,PQ.FechaRadicado
					,PQ.HoraRadicado
					,PQ.Radicado
					,PQ.CiaRadicado
					,PQ.AnoRadicado
					,PQ.Recepcion
					,PQ.Clase
					,PQ.FechaReclamo
					,PQ.HoraReclamo
					,PQ.EstadoPqrs
					,PQ.FechaCierre
					,PQ.Tiempo
					,PQ.Descripcion
					,PQ.ClasePqrs
					,PQ.CausasOrigen
					,PQ.Responsable
				    ,PQ.IdSolicitud
					,PQ.IdCotizacion
					,PQ.IdOrden
					,PQ.IdCliente
					,PQ.CtrlCorreo

					--COTIZACION
					,CT.IdCotizacion
					,CT.IdCliente
					,CT.IdSolicitud
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Servicios
					,CT.Ciudad_Origen
					,CT.Direccion_Origen
					,CT.Ciudad_Destino
					,CT.Direccion_Destino
					,CT.Volumen
					,CT.Arte
					,CT.Presencial
					,CT.FechaPresencial
					,CT.HoraPresencial
					,CT.Seguro
					,CT.Valor_Declarado
					,CT.Porc_Liquidacion
					,CT.IdFormaPago
					,CT.IdMetodoPago
					,CT.Almacenamiento
					,CT.Fecha_Recogida
					,CT.Hora_Recogida
					,CT.Fecha_Entrega
					,CT.Hora_Entrega
					,CT.Autorizado
					,CT.Tipo_Ident_Autorizado
					,CT.Ident_Autorizado
					,CT.Telefono_Autorizado
					,CT.Medio_Comunicacion
					,CT.Medio_Servicio
					,CT.IdEstadoCot
					,CT.ValorCotizacion
					,CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion
					,CT.IdCotPresencial
					,CT.TipoServ
					,CT.MotivoPerdida
					,CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida 
					,CT.CuartoUtil
					,CT.Exteriores
					,CT.Tapizados
					,CT.Sucursal
					,CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago
					,CT.Fecha_Empaque
					,CT.Hora_Empaque
					,CT.Periodicidad
					,CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal
					,CT.Ref_Movil
					,CT.Ref_Direccion
					,CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo
					,CT.IdBodega
					,CT.BloqueoCot
					,CT.Poliza
					,CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen
					,CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino
					,CT.EmpaqueVenta
					,CT.Serv_Inter
					,CT.Flete_Inter
					,CT.Gastos_Inter
					,CT.Vaduana_Inter
					,CT.Otros_Inter
					,CT.Aduana_Inter
					,CT.Observa_Inter
					,CT.IdCia
					,CT.ObservaEmpaque
					,CT.ObservaCliente
					,CT.IdEmpresa
					,CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial 
					,CT.NumOrden
					,CT.ContactoEmpresa
					,CT.CorreoContacto
					,CT.FechaIniBod
					,CT.FechaFinBod
					,CT.ObservaBodega
					,CT.Cortesia
					,CT.FechaCortIni
					,CT.FechaCortFin
					,CT.FechaUltima
					,CT.Manifiesto
					,CT.Remesa
					,CT.IdGestion
					,CT.FechaProximo
					,CT.Ctrl_Cotizacion
					,CT.ContadorCorreo
					,CT.CodVerificacion
					,CT.AutorizaCortesia
					,CT.TteSalida
					,CT.Ocupacion
					,CT.VrSugerido
					,CT.VrNegociado
				    ,CT.ObservaInterna
					,CT.ObservaInterna
					,CASE CT.Medio_Comunicacion
						WHEN '1' THEN 'LLAMADA'
						WHEN '2' THEN 'CORREO ELECTRONICO'
						WHEN '3' THEN 'PAGINA WEB'
						WHEN '4' THEN 'LLAMADA PBX'
						WHEN '5' THEN 'WHATSAPP NACIONAL'
						WHEN '6' THEN 'WHATSAPP'
						ELSE '0' 
					 END AS NegocioOrigen

					 --ORDEN SERVICIO
					,OSM.NumOrden
					,OSM.NumInventario
					,CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio
					,CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario
					,OSM.FechaOrden

					--CIUDAD
					,ORG.Nombre as CiudadOrigen
					,ORG.CodDane as LocOrigen

					,DST.Nombre as CiudadDestino
					,DST.CodDane as LocDestino

					--SERVICIOS
					,SRV.Nombre as NombreServicio
					,TSV.Nombre as NombreTipoServ
					
					--COMPANIA
					,CIA.NombreCia as NombreCia

					--CLIENTE
					,CL.Identificacion as IdentCliente
					,CL.Movil as MovilCliente
					,CL.Email as CorreoCliente
					,CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente
					
					--ASESOR
					,CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesor

					--PQRS DETALLADA
					,(SELECT SUM(ValorArt) FROM [dbo].[ServicioPqrsDetalle] WHERE IdCotizacion = @IdCotizacion) as ValorMercancia

					--TABLAS ANEXAS
					,RP.NombreRecepcion 
					,EP.NombreEstado
					,CP.NombreClasePqrs
					,CO.NombreCausas
					,RB.NombreResponsable
					,RD.Compania
					,RD.AnoRad

			FROM [dbo].[ServicioPqrs] as PQ
					LEFT JOIN [dbo].[Cotizacion] as CT ON PQ.IdCotizacion = CT.IdCotizacion
					LEFT JOIN [dbo].[OrdenServicio] as OSM ON PQ.IdOrden = OSM.IdOrden
					LEFT JOIN [dbo].[Clientes] as CL ON PQ.IdCliente = CL.IdCliente
					LEFT JOIN [dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad
					LEFT JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					LEFT JOIN [dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
					LEFT JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					LEFT JOIN [dbo].[Compania] as CIA ON CT.IdCia = CIA.IdCia
					LEFT JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					LEFT JOIN [dbo].[Serv_Recepcion] as RP ON PQ.Recepcion = RP.IdRecepcion
					LEFT JOIN [dbo].[Serv_EstadosPqrs] as EP ON PQ.EstadoPqrs = EP.IdEstadoPqrs
					LEFT JOIN [dbo].[Serv_ClasePqrs] as CP ON PQ.ClasePqrs = CP.IdClasePqrs
					LEFT JOIN [dbo].[Serv_CausasOrigen] as CO ON PQ.CausasOrigen = CO.IdCausasOrigen
					LEFT JOIN [dbo].[Serv_Responsable] as RB ON PQ.Responsable = RB.IdResponsable
					LEFT JOIN [dbo].[Serv_Radicado] as RD ON PQ.CiaRadicado = RD.IdCia 

			WHERE 
				(@IdServicioPqrs IS NULL OR PQ.IdServicioPqrs = @IdServicioPqrs)
				AND (@IdCotizacion IS NULL OR PQ.IdCotizacion = @IdCotizacion)
				AND (@EstadoPqrs IS NULL OR PQ.EstadoPqrs = @EstadoPqrs)
				AND (@Movil IS NULL OR CL.Movil LIKE CONCAT(@Movil, '%'))
				--PQ.IdServicioPqrs between ISNULL(@IdServicioPqrs,PQ.IdServicioPqrs) and ISNULL(@IdServicioPqrs,PQ.IdServicioPqrs) and 
				--PQ.IdCotizacion   between ISNULL(@IdCotizacion,PQ.IdCotizacion) and ISNULL(@IdCotizacion,PQ.IdCotizacion) and 
				--PQ.EstadoPqrs     Like CONCAT('%',ISNULL(@EstadoPqrs,PQ.EstadoPqrs),'%') and
				--CL.Movil          like ISNULL(@Movil,'%')   

			
		END

	IF @Opcion = 3 --Consulta por Servicio al PQRS
		BEGIN 
			SELECT   PQ.IdServicioPqrs
					,PQ.FechaRadicado
					,PQ.HoraRadicado
					,PQ.Radicado
					,PQ.CiaRadicado
					,PQ.AnoRadicado
					,PQ.Recepcion
					,PQ.Clase
					,PQ.FechaReclamo
					,PQ.HoraReclamo
					,PQ.EstadoPqrs
					,PQ.FechaCierre
					,PQ.Tiempo
					,PQ.Descripcion
					,PQ.ClasePqrs
					,PQ.CausasOrigen
					,PQ.Responsable
					,PQ.IdSolicitud
					,PQ.IdCotizacion
					,PQ.IdOrden
					,PQ.IdCliente
					,PQ.CtrlCorreo

					--COTIZACION
					,CT.IdCotizacion as CotizacionId
					,CT.IdCliente as ClienteId
					,CT.IdSolicitud as SolicitudId
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Valor_Declarado
					,CT.ValorCotizacion
					,CT.Ciudad_Origen
				  
					--ORDEN SERVICIO
					,OSM.IdOrden as OrdenId
					,OSM.NumOrden
					,OSM.NumInventario
					,OSM.NumRequisicion
					,CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio
					,CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario
					,OSM.FechaOrden

					--CLIENTE
					,CL.TipoIdent as TipoIdentCl
					,CL.Identificacion as IdentCl
					,CL.Nombres as NombreCl
					,CL.Apellidos as ApellidoCl
					,CL.Email as EmailCl
					,CL.Telefono as TelefonoCl
				  
					--COMPAÑIA/TIPO SERVICIO
					,DST.Compania as CiaDestino
					,TSV.Nombre as NombreTipoServ
					
					-- AGENDA
					,AG.FechaEntrega
			FROM [dbo].[Cotizacion] as CT
					LEFT JOIN [dbo].[OrdenServicio] as OSM ON CT.IdCotizacion = OSM.IdCotizacion
					LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					LEFT JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					LEFT JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
					LEFT JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
					LEFT JOIN [dbo].[ServicioPqrs] as PQ ON CT.IdCotizacion = PQ.IdCotizacion
					LEFT JOIN Agenda AS AG ON AG.IdCotizacion = CT.IdCotizacion
			WHERE CT.IdCliente  = ISNULL((select MAX(IdCliente) from [dbo].[Clientes] where Movil = @Movil),'0') 

			ORDER BY CT.IdCotizacion DESC
				
		END

	IF @Opcion = 5 --Consulta por Servicio al PQRS
		BEGIN 
			SELECT   CT.IdCotizacion as CotizacionId
					,CT.IdCliente as ClienteId
					,CT.IdSolicitud as SolicitudId
					,CT.IdUsuario
					,CT.FechaCotizacion
					,CT.Valor_Declarado
				  
					--ORDEN SERVICIO
					,OSM.IdOrden as OrdenId
					,OSM.NumOrden
					,OSM.NumInventario
					,OSM.NumRequisicion
					,CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio
					,CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario

					--CLIENTE
					,CL.TipoIdent as TipoIdentCl
					,CL.Identificacion as IdentCl
					,CL.Nombres as NombreCl
					,CL.Apellidos as ApellidoCl
					,CL.Email as EmailCl
					,CL.Telefono as TelefonoCl
				  
					--COMPAÑIA/TIPO SERVICIO
					,DST.Compania as CiaDestino
					,TSV.Nombre as NombreTipoServ

			FROM [dbo].[Cotizacion] as CT
					INNER JOIN [dbo].[OrdenServicio] as OSM ON CT.IdCotizacion = OSM.IdCotizacion
					LEFT JOIN [dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
					LEFT JOIN [dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
					LEFT JOIN [dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
					LEFT JOIN [dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
					LEFT JOIN [dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario

			WHERE CT.IdCliente  = ISNULL((select MAX(IdCliente) from [dbo].[Clientes] where Movil = @Movil),'0') 

			ORDER BY CT.IdCotizacion DESC
				
		END

	IF(@Opcion = 6) -- Refactorizacion de la Opcion 5
	BEGIN 
		SELECT   
			PQ.IdServicioPqrs, PQ.FechaRadicado,
			PQ.HoraRadicado, PQ.Radicado,
			PQ.CiaRadicado, PQ.AnoRadicado,
			PQ.Recepcion, PQ.Clase,
			PQ.FechaReclamo, PQ.HoraReclamo,
			PQ.EstadoPqrs, PQ.FechaCierre,
			PQ.Tiempo, PQ.Descripcion,
			PQ.ClasePqrs, PQ.CausasOrigen,
			PQ.Responsable, PQ.IdSolicitud,
			PQ.IdCotizacion, PQ.IdOrden,
			PQ.IdCliente, PQ.CtrlCorreo,

			--COTIZACION
			CT.IdCotizacion as CotizacionId, CT.IdCliente as ClienteId,
			CT.IdSolicitud as SolicitudId, CT.IdUsuario,
			CT.FechaCotizacion, CT.Valor_Declarado,
				  
			--ORDEN SERVICIO
			OSM.IdOrden as OrdenId, OSM.NumOrden,
			OSM.NumInventario, OSM.NumRequisicion,
			CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio,
			CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario,

			--CLIENTE
			CL.TipoIdent as TipoIdentCl, CL.Identificacion as IdentCl,
			CL.Nombres as NombreCl, CL.Apellidos as ApellidoCl,
			CL.Email as EmailCl, CL.Telefono as TelefonoCl,
			CL.Movil as MovilCl,
				  
			--COMPAÑIA/TIPO SERVICIO
			DST.Compania as CiaDestino
		FROM 
			[dbo].[Cotizacion] as CT
		INNER JOIN 
			[dbo].[OrdenServicio] as OSM ON CT.IdCotizacion = OSM.IdCotizacion
		LEFT JOIN 
			[dbo].[Clientes] as CL ON CT.IdCliente = CL.IdCliente
		LEFT JOIN 
			[dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
		LEFT JOIN 
			[dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
		LEFT JOIN 
			[dbo].[Compania] as CIA ON OSM.Compania = CIA.IdCia
		LEFT JOIN 
			[dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
		LEFT JOIN 
			[dbo].[ServicioPqrs] as PQ ON CT.IdCotizacion = PQ.IdCotizacion
		WHERE	
			(
				(@Identificacion IS NOT NULL AND CT.IdCliente = (SELECT IdCliente FROM Clientes WHERE Identificacion = @Identificacion))
				OR (@Movil IS NOT NULL AND CT.IdCliente = (SELECT MAX(IdCliente) FROM Clientes WHERE Movil = @Movil))
			)
			AND IdServicioPqrs IS NULL
		ORDER BY 
			CT.IdCotizacion DESC
	END

	IF(@Opcion = 7) -- Refactorizacion de la Opcion 1 y 2
	BEGIN 
		SELECT   
			PQ.IdServicioPqrs, PQ.FechaRadicado, PQ.HoraRadicado,
			PQ.Radicado, PQ.CiaRadicado, PQ.AnoRadicado,
			PQ.Recepcion, PQ.Clase, PQ.FechaReclamo,
			PQ.HoraReclamo, PQ.EstadoPqrs, PQ.FechaCierre,
			PQ.Tiempo, PQ.Descripcion, PQ.ClasePqrs,
			PQ.CausasOrigen, PQ.Responsable, PQ.IdSolicitud,
			PQ.IdCotizacion, PQ.IdOrden, PQ.IdCliente,
			PQ.CtrlCorreo, CONCAT(RD.Compania, '-', FORMAT(PQ.Radicado, '000'), '-', PQ.AnoRadicado) AS RadicadoConcat,

			--CALCULAR DIAS
			(DATEDIFF(DAY, (CONVERT(date,PQ.FechaReclamo)),GETDATE())) as TiempoDias,

			--COTIZACION
			CT.IdCotizacion, CT.IdCliente, CT.IdSolicitud,
			CT.IdUsuario, CT.FechaCotizacion, CT.Servicios,
			CT.Ciudad_Origen, CT.Direccion_Origen, CT.Ciudad_Destino,
			CT.Direccion_Destino, CT.Volumen, CT.Arte,
			CT.Presencial, CT.FechaPresencial, CT.HoraPresencial,
			CT.Seguro, CT.Valor_Declarado, CT.Porc_Liquidacion,
			CT.IdFormaPago, CT.IdMetodoPago, CT.Almacenamiento,
			CT.Fecha_Recogida, CT.Hora_Recogida, CT.Fecha_Entrega,
			CT.Hora_Entrega, CT.Autorizado, CT.Tipo_Ident_Autorizado,
			CT.Ident_Autorizado, CT.Telefono_Autorizado, CT.Medio_Comunicacion,
			CT.Medio_Servicio, CT.IdEstadoCot, CT.ValorCotizacion,
			CT.Observacion COLLATE Cyrillic_General_CI_AI as Observacion,
			CT.IdCotPresencial, CT.TipoServ, CT.MotivoPerdida,
			CT.ObservaPerdida COLLATE Cyrillic_General_CI_AI as ObservaPerdida,
			CT.CuartoUtil, CT.Exteriores, CT.Tapizados,
			CT.Sucursal, CT.ObservaPago COLLATE Cyrillic_General_CI_AI as ObservaPago, CT.Fecha_Empaque,
			CT.Hora_Empaque, CT.Periodicidad, CT.Ref_Personal COLLATE Cyrillic_General_CI_AI as Ref_Personal,
			CT.Ref_Movil, CT.Ref_Direccion, CT.Ref_Correo COLLATE Cyrillic_General_CI_AI as Ref_Correo,
			CT.IdBodega, CT.BloqueoCot, CT.Poliza,
			CT.Barrio_Origen COLLATE Cyrillic_General_CI_AI as Barrio_Origen,
			CT.Barrio_Destino COLLATE Cyrillic_General_CI_AI as Barrio_Destino,
			CT.EmpaqueVenta, CT.Serv_Inter, CT.Flete_Inter,
			CT.Gastos_Inter, CT.Vaduana_Inter, CT.Otros_Inter,
			CT.Aduana_Inter, CT.Observa_Inter, CT.IdCia,
			CT.ObservaEmpaque, CT.ObservaCliente, CT.IdEmpresa,
			CT.RazonSocial COLLATE Cyrillic_General_CI_AI as RazonSocial ,
			CT.NumOrden, CT.ContactoEmpresa, CT.CorreoContacto,
			CT.FechaIniBod, CT.FechaFinBod, CT.ObservaBodega,
			CT.Cortesia, CT.FechaCortIni, CT.FechaCortFin,
			CT.FechaUltima, CT.Manifiesto, CT.Remesa,
			CT.IdGestion, CT.FechaProximo, CT.Ctrl_Cotizacion,
			CT.ContadorCorreo, CT.CodVerificacion, CT.AutorizaCortesia,
			CT.TteSalida, CT.Ocupacion, CT.VrSugerido,
			CT.VrNegociado, CT.ObservaInterna, CT.ObservaInterna,
			CASE CT.Medio_Comunicacion
				WHEN '1' THEN 'LLAMADA'
				WHEN '2' THEN 'CORREO ELECTRONICO'
				WHEN '3' THEN 'PAGINA WEB'
				WHEN '4' THEN 'LLAMADA PBX'
				WHEN '5' THEN 'WHATSAPP NACIONAL'
				WHEN '6' THEN 'WHATSAPP'
				ELSE '0' 
			END AS NegocioOrigen,
			--ORDEN SERVICIO
			OSM.NumOrden, OSM.NumInventario,
			CONCAT(OSM.NumOrden,'-',CIA.CodSyscom) as OrdenServicio,
			CONCAT(OSM.NumInventario,'-',CIA.CodSyscom) as Inventario,
			OSM.FechaOrden,

			--CIUDAD
			ORG.Nombre as CiudadOrigen, ORG.CodDane as LocOrigen, 
			DST.Nombre as CiudadDestino, DST.CodDane as LocDestino,
			DST.Compania AS CiaDestino,
			--SERVICIOS
			SRV.Nombre as NombreServicio, TSV.Nombre as NombreTipoServ,			
			--COMPANIA
			CIA.NombreCia as NombreCia,
			--CLIENTE
			CL.Identificacion as IdentCliente, CL.Movil as MovilCliente,
			CL.Email as CorreoCliente, CONCAT(CL.Nombres, ' ', CL.Apellidos) as NombreCliente,
			CL.IdCliente AS ClienteId, CL.TipoIdent AS TipoIdentCl, CL.TipoCliente,
			CL.Nombres AS NombreCl, CL.Apellidos AS ApellidoCl, CL.Telefono AS TelefonoCl,
			--ASESOR
			CONCAT(USU.Apellidos, ' ', USU.Nombres) as NombreAsesorn,
			--PQRS DETALLADA
			(SELECT SUM(ValorArt) FROM [dbo].[ServicioPqrsDetalle] as SPD WHERE SPD.IdServicioPqrs = PQ.IdServicioPqrs) as ValorMercancia,
			--TABLAS ANEXAS
			RP.NombreRecepcion, EP.NombreEstado, CP.NombreClasePqrs,
			CO.NombreCausas, RB.NombreResponsable, RD.Compania,
			RD.AnoRad,
			-- AGENDA
			AG.FechaEntrega
		FROM 
			[dbo].[ServicioPqrs] as PQ
		LEFT JOIN 
			[dbo].[Cotizacion] as CT ON PQ.IdCotizacion = CT.IdCotizacion
		LEFT JOIN 
			[dbo].[OrdenServicio] as OSM ON PQ.IdOrden = OSM.IdOrden
		LEFT JOIN 
			[dbo].[Clientes] as CL ON PQ.IdCliente = CL.IdCliente
		LEFT JOIN 
			[dbo].[Ciudades] as ORG ON CT.Ciudad_Origen = ORG.IdCiudad
		LEFT JOIN 
			[dbo].[Ciudades] as DST ON CT.Ciudad_Destino = DST.IdCiudad
		LEFT JOIN 
			[dbo].[Servicios] as SRV ON CT.Servicios = SRV.IdServicio
		LEFT JOIN 
			[dbo].[TipoServicio] as TSV ON CT.TipoServ = TSV.IdTipo
		LEFT JOIN 
			[dbo].[Compania] as CIA ON CT.IdCia = CIA.IdCia
		LEFT JOIN 
			[dbo].[Usuarios] as USU ON CT.IdUsuario = USU.IdUsuario
		LEFT  JOIN 
			[dbo].[Serv_Recepcion] as RP ON PQ.Recepcion = RP.IdRecepcion
		LEFT  JOIN 
			[dbo].[Serv_EstadosPqrs] as EP ON PQ.EstadoPqrs = EP.IdEstadoPqrs
		LEFT  JOIN 
			[dbo].[Serv_ClasePqrs] as CP ON PQ.ClasePqrs = CP.IdClasePqrs
		LEFT  JOIN 
			[dbo].[Serv_CausasOrigen] as CO ON PQ.CausasOrigen = CO.IdCausasOrigen
		LEFT  JOIN 
			[dbo].[Serv_Responsable] as RB ON PQ.Responsable = RB.IdResponsable
		LEFT  JOIN 
			[dbo].[Serv_Radicado] as RD ON PQ.CiaRadicado = RD.IdCia 
		LEFT JOIN 
			Agenda AS AG ON AG.IdCotizacion = CT.IdCotizacion
		WHERE 
			(@IdServicioPqrs IS NULL OR PQ.IdServicioPqrs = @IdServicioPqrs)
			AND (@IdCotizacion IS NULL OR PQ.IdCotizacion = @IdCotizacion)
			AND (@EstadoPqrs IS NULL OR PQ.EstadoPqrs = @EstadoPqrs)
			AND (@Movil IS NULL OR CL.Movil LIKE CONCAT(@Movil, '%'))
			AND (@Identificacion IS NULL OR CL.Identificacion LIKE CONCAT(@Identificacion, '%'))
			AND (@OrdenServicio IS NULL OR OSM.NumOrden LIKE CONCAT(@OrdenServicio, '%'))
			AND (@Radicado IS NULL OR CONCAT(RD.Compania, '-', FORMAT(PQ.Radicado, '000'), '-', PQ.AnoRadicado) LIKE CONCAT(@Radicado, '%'))
			AND (@IdCia IS NULL OR PQ.CiaRadicado = @IdCia)
	END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServicioPqrsDetalle]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024/05/22
-- Description:	Buscar Servicio Pqrs Detalle
-- =============================================
CREATE PROCEDURE [dbo].[spGetServicioPqrsDetalle]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdServicioPqrs int = null,
	@IdSolicitud int = null,
	@IdCotizacion int = null,
	@IdArticulo 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 @Opcion = 1 --Consulta General
	BEGIN 
		SELECT SPD.IdServicioDetalle
				,SPD.IdServicioPqrs
				,SPD.IdSolicitud
				,SPD.IdCotizacion
				,SPD.IdArticulo
				,SPD.NombreArt
				,SPD.ValorArt

		FROM [dbo].[ServicioPqrsDetalle] as SPD
	END

	IF @Opcion = 2 --Consulta por Parametros
	BEGIN 
		SELECT 
			SPD.IdServicioDetalle,
			SPD.IdServicioPqrs,
			SPD.IdSolicitud,
			SPD.IdCotizacion,
			SPD.IdArticulo,
			SPD.NombreArt,
			SPD.ValorArt,
			SPD.Cantidad
		FROM 
			[dbo].[ServicioPqrsDetalle] as SPD
		WHERE 
			SPD.IdServicioPqrs between ISNULL(@IdServicioPqrs,SPD.IdServicioPqrs) and ISNULL(@IdServicioPqrs,SPD.IdServicioPqrs) 
			AND SPD.IdCotizacion between ISNULL(@IdCotizacion,SPD.IdCotizacion) and ISNULL(@IdCotizacion,SPD.IdCotizacion) 
			AND SPD.IdSolicitud between ISNULL(@IdSolicitud,SPD.IdSolicitud) and ISNULL(@IdSolicitud,SPD.IdSolicitud) 
			AND SPD.IdArticulo between ISNULL(@IdArticulo,SPD.IdArticulo) and ISNULL(@IdArticulo,SPD.IdArticulo) 
			AND SPD.Inactivo = 0
	END
	
	IF @Opcion = 3 --Consulta por Parametros
	BEGIN 
		SELECT 
			SPD.IdServicioDetalle,
			SPD.IdServicioPqrs,
			SPD.IdSolicitud,
			SPD.IdCotizacion,
			SPD.IdArticulo,
			SPD.NombreArt,
			SPD.ValorArt,
			SPD.Cantidad
		FROM 
			[dbo].[ServicioPqrsDetalle] as SPD
		WHERE 
			SPD.IdServicioPqrs = @IdServicioPqrs
			AND (@IdArticulo IS NULL OR SPD.IdArticulo = @IdArticulo)
			AND SPD.Inactivo = 0
	END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetServicioPqrsSeguimiento]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 29/05/2024
-- Description:	Buscar Seguimiento Postventa
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServicioPqrsSeguimiento] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdServSeguimiento int = null,
	@IdServicioPqrs int null,
	@IdCotizacion int = null,
	@IdSolicitud int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementB.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT SPV.IdServSeguimiento
				,SPV.IdServicioPqrs
			    ,SPV.IdCotizacion
			    ,SPV.IdSolicitud
			    ,SPV.Fecha_Postventa
			    ,SPV.Hora_Postventa
			    ,SPV.IdAsesor
				,SPV.GestorPqrs
			    ,SPV.IdEstadoPqrs
			    ,SPV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones

				--DATOS ASESOR
				,CONCAT(ASE.Apellidos, ' ', ASE.Nombres) as NombreAsesor

				--DATOS GESTOR
				,CONCAT(GTR.Apellidos, ' ', GTR.Nombres) as NombreGestor

				--ESTADO
				,SEP.NombreEstado

		 
		 FROM [dbo].[ServicioPqrsSeguimiento] as SPV
				INNER JOIN [dbo].[Usuarios] as ASE ON SPV.IdAsesor = ASE.IdUsuario
				INNER JOIN [dbo].[Usuarios] as GTR ON SPV.GestorPqrs = GTR.IdUsuario
				INNER JOIN [dbo].[Serv_EstadosPqrs] as SEP ON SPV.IdEstadoPqrs = SEP.IdEstadoPqrs
	  END

	IF @Opcion = 2 --Consulta por Preventa
	  BEGIN 
		 SELECT SPV.IdServSeguimiento
				,SPV.IdServicioPqrs
			    ,SPV.IdCotizacion
			    ,SPV.IdSolicitud
			    ,SPV.Fecha_Postventa
			    ,SPV.Hora_Postventa
			    ,SPV.IdAsesor
				,SPV.GestorPqrs
			    ,SPV.IdEstadoPqrs
			    ,SPV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
		 
				--DATOS ASESOR
				,CONCAT(ASE.Apellidos, ' ', ASE.Nombres) as NombreAsesor

				--DATOS GESTOR
				,CONCAT(GTR.Apellidos, ' ', GTR.Nombres) as NombreGestor

				--ESTADO
				,SEP.NombreEstado
		 
		 FROM [dbo].[ServicioPqrsSeguimiento] as SPV
				LEFT JOIN [dbo].[Usuarios] as ASE ON SPV.IdAsesor = ASE.IdUsuario
				LEFT JOIN [dbo].[Usuarios] as GTR ON SPV.GestorPqrs = GTR.IdUsuario
				LEFT JOIN [dbo].[Serv_EstadosPqrs] as SEP ON SPV.IdEstadoPqrs = SEP.IdEstadoPqrs

		 WHERE SPV.IdServSeguimiento between ISNULL(@IdServSeguimiento,SPV.IdServSeguimiento) and ISNULL(@IdServSeguimiento,SPV.IdServSeguimiento) and 
			   SPV.IdServicioPqrs    between ISNULL(@IdServicioPqrs,SPV.IdServicioPqrs) and ISNULL(@IdServicioPqrs,SPV.IdServicioPqrs) and 
			   SPV.IdCotizacion      between ISNULL(@IdCotizacion,SPV.IdCotizacion) and ISNULL(@IdCotizacion,SPV.IdCotizacion) and
			   SPV.IdSolicitud       between ISNULL(@IdSolicitud,SPV.IdSolicitud) and ISNULL(@IdSolicitud,SPV.IdSolicitud)

	  END

	IF @Opcion = 4 --Consulta por cotizacion
	  BEGIN 
		 SELECT SPV.IdServSeguimiento
			    ,SPV.IdCotizacion
			    ,SPV.IdSolicitud
			    ,SPV.Fecha_Postventa
			    ,SPV.Hora_Postventa
			    ,SPV.IdAsesor
				,SPV.GestorPqrs
			    ,SPV.IdEstadoPqrs
			    ,SPV.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
		 
		 FROM [dbo].[ServicioPqrsSeguimiento] as SPV

		 WHERE  SPV.IdServSeguimiento = (SELECT MAX(IdServSeguimiento) from [dbo].[ServicioPqrsSeguimiento] where IdCotizacion = @IdCotizacion)

	  END

END

GO
/****** Object:  StoredProcedure [dbo].[spGetServicios]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/09/2021
-- Description:	Buscar Servicios
-- =============================================
CREATE   PROCEDURE [dbo].[spGetServicios] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdServicio Int=null,
	@Nombre varchar(125)=null,
    @Descripcion varchar(255)=null,
    @IdTipo int=null,
    @CodSyscom varchar(5)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT SV.IdServicio
			   ,SV.Nombre
			   ,SV.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
			   ,SV.IdTipo
			   ,SV.CodSyscom
			   ,TS.Nombre COLLATE Cyrillic_General_CI_AI as NombreTipoSer 

		FROM  [dbo].[Servicios] as SV, 
			  [dbo].[TipoServicio] as TS

		WHERE SV.IdTipo = TS.IdTipo
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT SV.IdServicio
			   ,SV.Nombre
			   ,SV.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
			   ,SV.IdTipo
			   ,SV.CodSyscom
			   ,TS.Nombre COLLATE Cyrillic_General_CI_AI as NombreTipoSer 

		FROM  [dbo].[Servicios] as SV, 
			  [dbo].[TipoServicio] as TS

		WHERE SV.IdServicio = @IdServicio and
			  SV.IdTipo = TS.IdTipo

	  END

	IF @Opcion = 3 -- Consultar por Parametro
	  BEGIN
		IF @Nombre IS NOT NULL 
		  BEGIN
			SELECT SV.IdServicio
				   ,SV.Nombre
				   ,SV.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				   ,SV.IdTipo
				   ,SV.CodSyscom
				   ,TS.Nombre COLLATE Cyrillic_General_CI_AI as NombreTipoSer 

			FROM [dbo].[Servicios] as SV, 
				 [dbo].[TipoServicio] as TS

			WHERE SV.Nombre like CONCAT('%',@Nombre,'%') and 
				  SV.IdTipo = TS.IdTipo 
		  END

		IF @Nombre IS NULL 
		  BEGIN
			SELECT  SV.IdServicio
					,SV.Nombre
					,SV.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
					,SV.IdTipo
					,SV.CodSyscom
					,TS.Nombre COLLATE Cyrillic_General_CI_AI as NombreTipoSer 
			
			FROM  [dbo].[Servicios] as SV, 
				  [dbo].[TipoServicio] as TS
			
			WHERE SV.IdTipo = TS.IdTipo 
		  END
	  END
	
	IF @Opcion = 4 -- Contar servicios
	  BEGIN
		SELECT COUNT(*) FROM  [dbo].[Servicios]
	  END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetSolicitudAsesor]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 19/10/2021
-- Description:	Procedimiento almacenado para obtener los datos de las solicitudes asesor
-- =============================================
CREATE   PROCEDURE [dbo].[spGetSolicitudAsesor]
 
	-- Add the parameters for the stored procedure here
	 @Opcion int,
	 @IdAsesor int=null,
	 @IdSolicitud int=null,
	 @Estado varchar(1)=null,
	 @Observacion varchar(max)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	IF @Opcion = 1  -- Consultar asignaciones de solicitudes por asesor de menor a mayor
	  BEGIN
		
			SELECT IdAsesor, usu.nombres, usu.Email, Count(*) as total
			 FROM [dbo].[Solicitud_Asesor] as sa, [dbo].[Usuarios] as usu
			 WHERE sa.IdAsesor=usu.IdUsuario and usu.Estado='A' and usu.idArea=3 and sa.Estado =  '0'
			 GROUP BY IdAsesor,usu.nombres,usu.Email
			 ORDER BY total ASC
	
	  END

   
END
GO
/****** Object:  StoredProcedure [dbo].[spGetSolicitudes]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- ALTER date: 2021/10/12
-- Description:	Procedimiento para buscar Solicitudes
-- =============================================
CREATE PROCEDURE [dbo].[spGetSolicitudes] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdSolicitud Int = null,
	@FechaIni varchar(12) = null,
    @FechaFin varchar(12) = null,
    @IdServicio int = null,
    @Nombre varchar(125) = null,
	@IdAsesor int = null,
	@Estado int = null,
	@Movil varchar(20) = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementSL.
	SET NOCOUNT ON;

	-- Insert statements for procedure here
	IF @Opcion = 1  -- Consulta todos las solicitudes
		BEGIN
			SELECT SL.IdSolicitud
				  ,SL.Fecha
				  ,SL.Hora
				  ,SL.FechaServicio
				  ,SL.Telefono
				  ,SL.Movil
				  ,SL.Email
				  ,SL.IdCiudadOrigen
				  ,SL.IdCiudadDestino
				  ,SL.Observaciones 
				  ,SL.Estado
				  ,SL.IdServicio
				  ,SL.Identificacion
				  ,SL.Nombre
				  ,SL.Apellido
				  ,SL.IdCliente
				  ,SL.OrigenNegocio
				  ,CASE SL.OrigenNegocio
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				   END AS NegocioOrigen
				  ,SL.Ctrl_Solicitud
				  ,SER.Nombre as NombreServicio
				  ,CONCAT(USU.Apellidos,' ',USU.Nombres) as NombreAsesor
				  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
				  ,USU.Email as CorreoAsesor
				  ,USU.Contrasena
				  ,USU.IdUsuario

			  FROM  [dbo].[Solicitudes] as SL, 
					[dbo].[Servicios] as SER, 
					[dbo].[Usuarios] as USU,			
					[dbo].[Solicitud_Asesor] as SA

			  WHERE SER.IdServicio = SL.IdServicio and 
					SL.IdSolicitud = SA.IdSolicitud and 
					USU.IdUsuario  = SA.IdAsesor and
					SL.Estado      = '1'
		END

	IF @Opcion = 2 -- Consultar solicitudes por asesor 
		BEGIN
			SELECT SL.IdSolicitud
				  ,SL.Fecha
				  ,SL.Hora
				  ,SL.FechaServicio
				  ,SL.Telefono
				  ,SL.Movil
				  ,SL.Email
				  ,SL.IdCiudadOrigen
				  ,SL.IdCiudadDestino
				  ,SL.Observaciones 
				  ,SL.Estado
				  ,SL.IdServicio
				  ,SL.Identificacion
				  ,SL.Nombre
				  ,SL.Apellido
				  ,SL.IdCliente
				  ,SL.OrigenNegocio
				  ,CASE SL.OrigenNegocio
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				   END AS NegocioOrigen
				  ,SL.Ctrl_Solicitud
				  ,SER.Nombre as NombreServicio
				  ,CONCAT(USU.Apellidos,' ',USU.Nombres) as NombreAsesor
				  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
				  ,USU.Email as CorreoAsesor
				  ,USU.Contrasena
				  ,USU.IdUsuario
			 
			 FROM [dbo].[Solicitudes] as SL, 
				  [dbo].[Solicitud_Asesor] as SA, 
				  [dbo].[Servicios] as SER,
				  [dbo].[Usuarios] as USU
			 
			 WHERE SL.IdSolicitud = SA.IdSolicitud and 
				   SA.IdAsesor    = @IdAsesor and 
				   SER.IdServicio = SL.IdServicio and 
				   USU.IdUsuario  = SA.IdAsesor and
				   SL.Estado      = '1'
		END

	IF @Opcion = 3 -- Consultar por Parametros para administrador
		BEGIN


			SELECT SL.IdSolicitud
				  ,SL.Fecha
				  ,SL.Hora
				  ,SL.FechaServicio
				  ,SL.Telefono
				  ,SL.Movil
				  ,SL.Email
				  ,SL.IdCiudadOrigen
				  ,SL.IdCiudadDestino
				  ,SL.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
				  ,SL.Estado
				  ,SL.IdServicio
				  ,SL.Identificacion
				  ,SL.Nombre
				  ,SL.Apellido
				  ,SL.IdCliente
				  ,SL.OrigenNegocio
				  ,CASE SL.OrigenNegocio
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				  END AS NegocioOrigen
				  ,SL.Ctrl_Solicitud
				  ,SER.Nombre as NombreServicio
				  ,CONCAT(USU.Apellidos,' ',USU.Nombres) as NombreAsesor
				  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
				  ,USU.Email as CorreoAsesor
				  ,USU.Contrasena
				  ,USU.IdUsuario
		   
			FROM [dbo].[Solicitudes] as SL, 
				 [dbo].[Solicitud_Asesor] as SA, 
				 [dbo].[Servicios] as SER,
				 [dbo].[Usuarios] as USU
		   
			WHERE SL.IdSolicitud = SA.IdSolicitud and 
				  SER.IdServicio = SL.IdServicio and 
				  USU.IdUsuario  = SA.IdAsesor and
				  SA.IdAsesor    = ISNULL(@IdAsesor,SL.IdAsesor) and
				  SL.Fecha       between ISNULL(@FechaIni,SL.Fecha) and ISNULL(@FechaFin,SL.Fecha) and
				  SL.IdServicio  =  ISNULL(@IdServicio,SL.IdServicio) and 
				  SL.Nombre      like CONCAT('%',ISNULL(@Nombre,SL.Nombre),'%')  and 
				  SL.Movil       like CONCAT('%',ISNULL(@Movil,SL.Movil),'%')  and 
				  SL.Estado      = '1' 

		END	 
		  
	IF @Opcion = 4 -- Consultar por Parametros para asesor
		BEGIN
			SELECT SL.IdSolicitud
				  ,SL.Fecha
				  ,SL.Hora
				  ,SL.FechaServicio
				  ,SL.Telefono
				  ,SL.Movil
				  ,SL.Email
				  ,SL.IdCiudadOrigen
				  ,SL.IdCiudadDestino
				  ,SL.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
				  ,SL.Estado
				  ,SL.IdServicio
				  ,SL.Identificacion
				  ,SL.Nombre
				  ,SL.Apellido
				  ,SL.IdCliente
				  ,SL.OrigenNegocio
				  ,CASE SL.OrigenNegocio
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				  END AS NegocioOrigen
				  ,SL.Ctrl_Solicitud
				  ,SER.Nombre as NombreServicio
				  ,CONCAT(USU.Apellidos,' ',USU.Nombres) as NombreAsesor
				  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
				  ,USU.Email as CorreoAsesor
				  ,USU.Contrasena
				  ,USU.IdUsuario
		   
			FROM [dbo].[Solicitudes] as SL, 
				 [dbo].[Solicitud_Asesor] as SA, 
				 [dbo].[Servicios] as SER,
				 [dbo].[Usuarios] as USU
		   
			WHERE SL.IdSolicitud = SA.IdSolicitud and 
				  SER.IdServicio = SL.IdServicio and 
				  USU.IdUsuario  = SA.IdAsesor and
				  SA.IdAsesor    = ISNULL(@IdAsesor,SA.IdAsesor) and
				  SL.Fecha       between ISNULL(@FechaIni,SL.Fecha) and ISNULL(@FechaFin,SL.Fecha) and
				  SL.IdServicio  =  ISNULL(@IdServicio,SL.IdServicio) and 
				  SL.Nombre      like CONCAT('%',ISNULL(@Nombre,SL.Nombre),'%')  and 
				  SL.Movil       like CONCAT('%',ISNULL(@Movil,SL.Movil),'%')  and 
				  SL.Estado       = '1' 
						  
		END

	IF @Opcion = 5 -- Consultar por solicitud
		BEGIN				  
			SELECT SL.IdSolicitud
				  ,SL.Fecha
				  ,SL.Hora
				  ,SL.FechaServicio
				  ,SL.Telefono
				  ,SL.Movil
				  ,SL.Email
				  ,SL.IdCiudadOrigen
				  ,SL.IdCiudadDestino
				  ,SL.Observaciones --COLLATE Cyrillic_General_CI_AI as Observaciones
				  ,SL.Estado
				  ,SL.IdServicio
				  ,SL.Identificacion
				  ,SL.Nombre
				  ,SL.Apellido
				  ,SL.IdCliente
				  ,SL.OrigenNegocio
				  ,CASE SL.OrigenNegocio
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				   END AS NegocioOrigen
				  ,SL.Ctrl_Solicitud
				  ,SV.Nombre as NombreServicio
				  ,SA.IdAsesor
				  ,CONCAT(US.Nombres,' ',US.Apellidos) as NombreAsesor
				  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
				  ,US.Email as CorreoAsesor
				  ,US.Contrasena
				  ,US.IdUsuario
			  	 
			 FROM [dbo].[Solicitudes] as SL
					INNER JOIN [dbo].[Solicitud_Asesor] as SA ON SL.IdSolicitud = SA.IdSolicitud
					INNER JOIN [dbo].[Usuarios] as US ON US.IdUsuario = SA.IdAsesor
					INNER JOIN [dbo].[Servicios] as SV ON SL.IdServicio  = SV.IdServicio
			   

			 WHERE SL.IdSolicitud = @IdSolicitud and 
				   SL.Estado = '1' 
		END

	IF @Opcion = 6 -- Contar solicitudes
		BEGIN				  
			SELECT COUNT(SL.IdSolicitud) 
			  	 
			FROM [dbo].[Solicitudes] as SL
		END

	IF @Opcion = 7 -- Consultar por solicitud
		BEGIN
			IF @IdSolicitud IS NOT NULL
				BEGIN
					SELECT SL.IdSolicitud
						  ,SL.Fecha
						  ,SL.Hora
						  ,SL.FechaServicio
						  ,SL.Telefono
						  ,SL.Movil
						  ,SL.Email
						  ,SL.IdCiudadOrigen
						  ,SL.IdCiudadDestino
						  ,SL.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
						  ,SL.Estado
						  ,SL.IdServicio
						  ,SL.Identificacion
						  ,SL.Nombre
						  ,SL.Apellido
						  ,SL.IdCliente
						  ,SL.OrigenNegocio
						  ,CASE SL.OrigenNegocio
							WHEN '1' THEN 'LLAMADA'
							WHEN '2' THEN 'CORREO ELECTRONICO'
							WHEN '3' THEN 'PAGINA WEB'
							WHEN '4' THEN 'LLAMADA PBX'
							WHEN '5' THEN 'WHATSAPP NACIONAL'
							WHEN '6' THEN 'WHATSAPP'
							ELSE '0' 
						   END AS NegocioOrigen
						  ,SL.Ctrl_Solicitud
						  ,SV.Nombre as NombreServicio
						  ,SA.IdAsesor
						  ,CONCAT(US.Nombres,' ',US.Apellidos) as NombreAsesor
						  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
						  ,US.Email as CorreoAsesor
						  ,US.Contrasena
						  ,US.IdUsuario
			  	 
					 FROM [dbo].[Solicitudes] as SL, 
						  [dbo].[Solicitud_Asesor] as SA, 
						  [dbo].[Servicios] as SV,
						  [dbo].[Usuarios] as US
			   
					 WHERE SL.IdSolicitud = @IdSolicitud and 
						   SL.IdServicio = SV.IdServicio and 
						   US.IdUsuario = SA.IdAsesor and
						   SL.IdSolicitud = SA.IdSolicitud 
				END

			IF @IdSolicitud IS NULL
				BEGIN
					SELECT SL.IdSolicitud
						  ,SL.Fecha
						  ,SL.Hora
						  ,SL.FechaServicio
						  ,SL.Telefono
						  ,SL.Movil
						  ,SL.Email
						  ,SL.IdCiudadOrigen
						  ,SL.IdCiudadDestino
						  ,SL.Observaciones COLLATE Cyrillic_General_CI_AI as Observaciones
						  ,SL.Estado
						  ,SL.IdServicio
						  ,SL.Identificacion
						  ,SL.Nombre
						  ,SL.Apellido
						  ,SL.IdCliente
						  ,SL.OrigenNegocio
						  ,CASE SL.OrigenNegocio
							WHEN '1' THEN 'LLAMADA'
							WHEN '2' THEN 'CORREO ELECTRONICO'
							WHEN '3' THEN 'PAGINA WEB'
							WHEN '4' THEN 'LLAMADA PBX'
							WHEN '5' THEN 'WHATSAPP NACIONAL'
							WHEN '6' THEN 'WHATSAPP'
							ELSE '0' 
						   END AS NegocioOrigen
						  ,SL.Ctrl_Solicitud
						  ,SV.Nombre as NombreServicio
						  ,SA.IdAsesor
						  ,CONCAT(US.Nombres,' ',US.Apellidos) as NombreAsesor
						  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
						  ,US.Email as CorreoAsesor
						  ,US.Contrasena
						  ,US.IdUsuario
			  	 
					 FROM [dbo].[Solicitudes] as SL, 
						  [dbo].[Solicitud_Asesor] as SA, 
						  [dbo].[Servicios] as SV,
						  [dbo].[Usuarios] as US
			   

					 WHERE SL.IdServicio  = SV.IdServicio and 
						   US.IdUsuario   = SA.IdAsesor and
						   SL.IdSolicitud = SA.IdSolicitud and
						   SL.Estado      = '0' and 
						   SL.Fecha       between @FechaIni and @FechaFin
				END
		END
 
	IF @Opcion = 8 -- Tablero de Control
		BEGIN
			DECLARE @TotalEstado int = 0;
			SET @TotalEstado = 0;

			IF @IdAsesor IS NULL and @FechaIni IS NOT NULL and @FechaFin IS NOT NULL
				BEGIN
					SELECT @TotalEstado = COUNT(SL.Estado) 
					
					FROM [dbo].[Solicitudes] as SL
					
					WHERE Fecha between @FechaIni and @FechaFin and
						  Estado = '1'
					
					GROUP BY SL.Estado

					UPDATE [dbo].[TotalFases] SET EstadoTotal = @TotalEstado WHERE IdFase = 0 
				END

			IF @IdAsesor IS NOT NULL and @FechaIni IS NOT NULL and @FechaFin IS NOT NULL
				BEGIN
					SELECT @TotalEstado = COUNT(SL.Estado) 

					FROM [dbo].[Solicitudes] as SL

					WHERE SL.IdAsesor = @IdAsesor and
						  SL.Estado = '1'and 
						  SL.Fecha between @FechaIni and @FechaFin

					GROUP BY SL.Estado, SL.IdAsesor

					UPDATE [dbo].[TotalFases] SET EstadoTotal = @TotalEstado, IdUsuario = @IdAsesor WHERE IdFase = 0
				END
		END
 
	IF @Opcion = 9 -- Consultar por movil
		BEGIN
			SELECT SL.IdSolicitud
					,SL.Movil
					,SL.Identificacion
					,SL.Nombre
					,SL.Apellido
					,SL.IdCliente
					,SL.Ctrl_Solicitud
					,SA.IdAsesor
					,CONCAT(US.Nombres,' ',US.Apellidos) as NombreAsesor
					,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
					,US.Email as CorreoAsesor
					,US.Contrasena
					,US.IdUsuario
			  	 
			FROM [dbo].[Solicitudes] as SL, 
			 	 [dbo].[Solicitud_Asesor] as SA, 
				
				 [dbo].[Usuarios] as US
			   
			WHERE SL.IdSolicitud = (SELECT MAX(IdSolicitud) FROM [dbo].[Solicitudes] WHERE Movil = @Movil and Estado = @Estado) and
				  US.IdUsuario   = SA.IdAsesor and
				  SL.IdSolicitud = SA.IdSolicitud 
		END

	IF @Opcion = 10  -- Consulta todos las solicitudes
		BEGIN
			SELECT SL.IdSolicitud
				  ,SL.Fecha
				  ,SL.Hora
				  ,SL.FechaServicio
				  ,SL.Telefono
				  ,SL.Movil
				  ,SL.Email
				  ,SL.IdCiudadOrigen
				  ,SL.IdCiudadDestino
				  ,SL.Observaciones 
				  ,SL.Estado
				  ,SL.IdServicio
				  ,SL.Identificacion
				  ,SL.Nombre
				  ,SL.Apellido
				  ,SL.IdCliente
				  ,SL.OrigenNegocio
				  ,CASE SL.OrigenNegocio
					WHEN '1' THEN 'LLAMADA'
					WHEN '2' THEN 'CORREO ELECTRONICO'
					WHEN '3' THEN 'PAGINA WEB'
					WHEN '4' THEN 'LLAMADA PBX'
					WHEN '5' THEN 'WHATSAPP NACIONAL'
					WHEN '6' THEN 'WHATSAPP'
					ELSE '0' 
				   END AS NegocioOrigen
				  ,SL.Ctrl_Solicitud
				  ,SER.Nombre as NombreServicio
				  ,CONCAT(USU.Apellidos,' ',USU.Nombres) as NombreAsesor
				  ,CONCAT(SL.Nombre,' ',SL.Apellido) as NombreCliente
				  ,USU.Email as CorreoAsesor
				  ,USU.Contrasena
				  ,USU.IdUsuario

			  FROM  [dbo].[Solicitudes] as SL, 
					[dbo].[Servicios] as SER, 
					[dbo].[Usuarios] as USU,			
					[dbo].[Solicitud_Asesor] as SA

			  WHERE SER.IdServicio = SL.IdServicio and 
					SL.IdSolicitud = SA.IdSolicitud and 
					USU.IdUsuario  = SA.IdAsesor and
					SL.Estado      = '1' and
					SA.IdAsesor    = @IdAsesor and
					SL.Ctrl_Solicitud = 0
		END
 
 END
GO
/****** Object:  StoredProcedure [dbo].[spGetSoportePago]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/06/2022
-- Description:	Buscar Soporte Pago
-- =============================================
CREATE   PROCEDURE [dbo].[spGetSoportePago]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdCotizacion 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 @Opcion = 1 --Consulta General
		BEGIN 
			SELECT STP.IdSoportePago
				   ,STP.IdCotizacion
				   ,STP.IdSolicitud
				   ,STP.NumOrden
				   ,STP.Soporte1
				   ,STP.Soporte2
				   ,STP.Soporte3
				   ,STP.Soporte4
				   ,STP.FecSoporte1
				   ,STP.HorSoporte1
				   ,STP.FecSoporte2
				   ,STP.HorSoporte2
				   ,STP.FecSoporte3
				   ,STP.HorSoporte3
				   ,STP.FecSoporte4
				   ,STP.HorSoporte4
				
			FROM [dbo].[SoportePago] as STP
		END

	IF @Opcion = 2 --Consulta General
		BEGIN 
			SELECT STP.IdSoportePago
				   ,STP.IdCotizacion
				   ,STP.IdSolicitud
				   ,STP.NumOrden
				   ,STP.Soporte1
				   ,STP.Soporte2
				   ,STP.Soporte3
				   ,STP.Soporte4
				   ,STP.FecSoporte1
				   ,STP.HorSoporte1
				   ,STP.FecSoporte2
				   ,STP.HorSoporte2
				   ,STP.FecSoporte3
				   ,STP.HorSoporte3
				   ,STP.FecSoporte4
				   ,STP.HorSoporte4
				
			FROM [dbo].[SoportePago] as STP

			WHERE IdCotizacion = @IdCotizacion
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetSubgrupos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 19/05/2022
-- Description:	Buscar clases doc
-- =============================================
CREATE   PROCEDURE [dbo].[spGetSubgrupos]
	-- Add the parameters for the stored procedure here
	@Opcion int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	-- Add the parameters for the stored procedure here
	IF @Opcion = 1 --Consulta General
		BEGIN 
			SELECT IdSubgrupo, Nombre, CodSyscom 
				
			FROM [dbo].[Subgrupos]
		
		END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetSucursales]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 20/09/2021
-- Description:	Buscar Sucursales
-- ================================================
CREATE   PROCEDURE [dbo].[spGetSucursales] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdSucursal Int=null,
	@Nombre nvarchar(125)=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 @Opcion = 1  -- Consula todos las Sucursales
	  BEGIN
		SELECT  [IdSucursal]
			   ,[Nombre]
			   ,[Direccion]
			   ,[Telefono]
			   ,[Movil]
			   ,[IdResponsable]
			   ,[IdCiudad]
		FROM  [dbo].[Sucursales]
	  END

	IF @Opcion = 2 -- Consultar por Sucursal
	  BEGIN
		SELECT  S.IdSucursal
			   ,S.Nombre
			   ,S.Direccion
			   ,S.Telefono
			   ,S.Movil
			   ,S.IdResponsable
			   ,S.IdCiudad
			   ,C.Nombre as NombreCiudad
			   ,D.IdDepartamento
			   ,D.Nombre as NombreDpto
			   ,P.IdPais
			   ,P.Nombre as NombrePais
			   ,CONCAT(U.Nombres, ' ', U.Apellidos) as NombreCompleto

			FROM  [dbo].[Sucursales] as S, 
				  [dbo].[Usuarios] as U, 
				  [dbo].[Ciudades] as C,
				  [dbo].[Departamentos] as D, 
				  [dbo].[Paises] as P

			WHERE S.IdSucursal = @IdSucursal and 
				  U.IdUsuario = S.IdResponsable and
				  S.IdCiudad = C.IdCiudad and
				  D.IdDepartamento = C.IdDepartamento and
				  P.IdPais = D.IdPais
	  END

	IF @Opcion = 3 -- Consultar por Parametro
	  BEGIN
		IF @Nombre IS NOT NULL 
		  BEGIN
			SELECT  S.IdSucursal
					,S.Nombre
					,S.Direccion
					,S.Telefono
					,S.Movil
					,S.IdResponsable
					,S.IdCiudad
					,C.Nombre as NombreCiudad
					,D.Nombre as NombreDpto
					,P.Nombre as NombrePais
					,CONCAT(U.Nombres, ' ', U.Apellidos) as NombreCompleto
			FROM  [dbo].[Sucursales] as S, [dbo].[Usuarios] as U, [dbo].[Ciudades] as C,
				  [dbo].[Departamentos] as D, [dbo].[Paises] as P
			WHERE S.Nombre like CONCAT('%',@Nombre,'%') and 
				  S.IdResponsable = U.IdUsuario and 
				  S.IdCiudad = C.IdCiudad and
				  D.IdDepartamento = C.IdDepartamento and
				  P.IdPais = D.IdPais
		  END

		IF @Nombre IS NULL 
		  BEGIN
			SELECT  S.IdSucursal
					,S.Nombre
					,S.Direccion
					,S.Telefono
					,S.Movil
					,S.IdResponsable
					,S.IdCiudad
					,C.Nombre as NombreCiudad
					,D.Nombre as NombreDpto
					,P.Nombre as NombrePais
					,CONCAT(U.Nombres, ' ', U.Apellidos) as NombreCompleto
			FROM  [dbo].[Sucursales] as S, [dbo].[Usuarios] as U, [dbo].[Ciudades] as C,
				  [dbo].[Departamentos] as D, [dbo].[Paises] as P
			WHERE S.Nombre like CONCAT('%',@Nombre,'%') and 
				  S.IdResponsable = U.IdUsuario and 
				  S.IdCiudad = C.IdCiudad and
				  D.IdDepartamento = C.IdDepartamento and
				  P.IdPais = D.IdPais 
		  END
	  END

	IF @Opcion = 4 -- Consultar por Sucursal
	  BEGIN
		SELECT  [IdSucursal]
			   ,[Nombre]
			   ,[Direccion]
			   ,[Telefono]
			   ,[Movil]
			   ,[IdResponsable]
			   ,[IdCiudad]
		FROM  [dbo].[Sucursales] 
		WHERE LOWER(Nombre) = LOWER(@Nombre)
	  END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetTarifaRutas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 25/05/2023
-- Description:	Buscar Rutas Tarifa
-- =============================================
CREATE PROCEDURE [dbo].[spGetTarifaRutas] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdTarifa int = null,
	@Origen_Ruta int = null,
	@Destino_Ruta 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 @Opcion = 1 --Consulta General
		BEGIN 
			SELECT RT.IdTarifa
				  ,RT.Origen_Ruta
				  ,RT.Destino_Ruta
				  ,RT.Descripcion
				  ,RT.Ubicacion
				  ,RT.KmReal
				  ,RT.KmAjustado
				  ,RT.Tolerancia
				  ,RT.KmTotales
				  ,RT.Completo
				  ,RT.UnMedio
				  ,RT.UnTercio
				  ,RT.UnCuarto
				  ,RT.UnSeptimo
				  ,CO.Nombre as C_Origen
				  ,CD.Nombre as C_Destino
				  ,CASE RT.Ubicacion
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'NACIONAL'
					ELSE '0' 
				   END as NomUbica	
				  ,DO.IdDepartamento as D_Origen
				  ,DD.IdDepartamento as D_Destino
  
			FROM [dbo].[Tarifa_Rutas] as RT
					INNER JOIN [dbo].[Ciudades] as CO ON RT.Origen_Ruta = CO.IdCiudad
					INNER JOIN [dbo].[Ciudades] as CD ON RT.Destino_Ruta = CD.IdCiudad
					INNER JOIN [dbo].[Departamentos] AS DO ON CO.IdDepartamento = DO.IdDepartamento
					INNER JOIN [dbo].[Departamentos] AS DD ON CD.IdDepartamento = DD.IdDepartamento
				  
		END

	IF @Opcion = 2 --Consulta por tarifa
		BEGIN 
			SELECT RT.IdTarifa
				  ,RT.Origen_Ruta
				  ,RT.Destino_Ruta
				  ,RT.Descripcion
				  ,RT.Ubicacion
				  ,RT.KmReal
				  ,RT.KmAjustado
				  ,RT.Tolerancia
				  ,RT.KmTotales
				  ,RT.Completo
				  ,RT.UnMedio
				  ,RT.UnTercio
				  ,RT.UnCuarto
				  ,RT.UnSeptimo
				  ,CO.Nombre as C_Origen
				  ,CD.Nombre as C_Destino
				  ,CASE RT.Ubicacion
					WHEN '1' THEN 'LOCAL'
					WHEN '2' THEN 'NACIONAL'
					ELSE '0' 
				   END as NomUbica	
				  ,DO.IdDepartamento as D_Origen
				  ,DD.IdDepartamento as D_Destino
  
			FROM [dbo].[Tarifa_Rutas] as RT
					INNER JOIN [dbo].[Ciudades] as CO ON RT.Origen_Ruta = CO.IdCiudad
					INNER JOIN [dbo].[Ciudades] as CD ON RT.Destino_Ruta = CD.IdCiudad
					INNER JOIN [dbo].[Departamentos] AS DO ON CO.IdDepartamento = DO.IdDepartamento
					INNER JOIN [dbo].[Departamentos] AS DD ON CD.IdDepartamento = DD.IdDepartamento

			WHERE RT.IdTarifa = @IdTarifa 
		END

	IF @Opcion = 3 --Consulta por ciudad Origen 
		BEGIN 
			IF @Origen_Ruta IS NOT NULL
				BEGIN
					SELECT RT.IdTarifa
						  ,RT.Origen_Ruta
						  ,RT.Destino_Ruta
						  ,RT.Descripcion
						  ,RT.Ubicacion
						  ,RT.KmReal
						  ,RT.KmAjustado
						  ,RT.Tolerancia
						  ,RT.KmTotales
						  ,RT.Completo
						  ,RT.UnMedio
						  ,RT.UnTercio
						  ,RT.UnCuarto
						  ,RT.UnSeptimo
						  ,CO.Nombre as C_Origen
						  ,CD.Nombre as C_Destino
						  ,CASE RT.Ubicacion
							WHEN '1' THEN 'LOCAL'
							WHEN '2' THEN 'NACIONAL'
							ELSE '0' 
						   END as NomUbica	
						  ,DO.IdDepartamento as D_Origen
						  ,DD.IdDepartamento as D_Destino
  
					FROM [dbo].[Tarifa_Rutas] as RT
							INNER JOIN [dbo].[Ciudades] as CO ON RT.Origen_Ruta = CO.IdCiudad
							INNER JOIN [dbo].[Ciudades] as CD ON RT.Destino_Ruta = CD.IdCiudad
							INNER JOIN [dbo].[Departamentos] AS DO ON CO.IdDepartamento = DO.IdDepartamento
							INNER JOIN [dbo].[Departamentos] AS DD ON CD.IdDepartamento = DD.IdDepartamento

					WHERE RT.Origen_Ruta  = @Origen_Ruta 
				END

			IF @Origen_Ruta IS NULL
				BEGIN
					SELECT RT.IdTarifa
						  ,RT.Origen_Ruta
						  ,RT.Destino_Ruta
						  ,RT.Descripcion
				          ,RT.Ubicacion
						  ,RT.KmReal
						  ,RT.KmAjustado
						  ,RT.Tolerancia
						  ,RT.KmTotales
						  ,RT.Completo
						  ,RT.UnMedio
						  ,RT.UnTercio
						  ,RT.UnCuarto
						  ,RT.UnSeptimo
						  ,CO.Nombre as C_Origen
						  ,CD.Nombre as C_Destino
						  ,CASE RT.Ubicacion
							WHEN '1' THEN 'LOCAL'
							WHEN '2' THEN 'NACIONAL'
							ELSE '0' 
						   END as NomUbica	
						  ,DO.IdDepartamento as D_Origen
						  ,DD.IdDepartamento as D_Destino
  
					FROM [dbo].[Tarifa_Rutas] as RT
							INNER JOIN [dbo].[Ciudades] as CO ON RT.Origen_Ruta = CO.IdCiudad
							INNER JOIN [dbo].[Ciudades] as CD ON RT.Destino_Ruta = CD.IdCiudad
							INNER JOIN [dbo].[Departamentos] AS DO ON CO.IdDepartamento = DO.IdDepartamento
							INNER JOIN [dbo].[Departamentos] AS DD ON CD.IdDepartamento = DD.IdDepartamento

				END
		END


	-- CONSULTAR PARAMETROS BASICOS --
	IF @Opcion = 6 --Consulta parametros
		BEGIN 
			SELECT PT.IdParametro
				  ,PT.Nombre_Paramt
				  ,PT.Valor_Paramt
				  ,PT.Codigo_Paramt
				  ,PT.Descripcion
				  
			FROM [dbo].[Parametros] as PT

			WHERE PT.IdParametro >= 6 and PT.IdParametro <= 11

		END

END

GO
/****** Object:  StoredProcedure [dbo].[spGetTarifasBodegas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/03/2023
-- Description:	Buscar Tarifas Bodegas
-- =============================================
CREATE PROCEDURE [dbo].[spGetTarifasBodegas]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdTarifaBodega 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 @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT  TBG.IdTarifaBodega
			    ,TBG.Area
				,TBG.ValorMetro 
				,TBG.ValorTotal
				,TBG.Clase

		 FROM [dbo].[Tarifas_Bodegas] as TBG
			  
	  END

	IF @Opcion = 2 --Consulta por tarifas
	  BEGIN 
		 SELECT  TBG.IdTarifaBodega
			    ,TBG.Area
				,TBG.ValorMetro 
				,TBG.ValorTotal
				,TBG.Clase

		 FROM [dbo].[Tarifas_Bodegas] as TBG

		 WHERE TBG.IdTarifaBodega = @IdTarifaBodega 
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTextos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 25/01/2022
-- Description:	Buscar Textos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTextos] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdTexto int=null,
	@IdClaseDoc 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 @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT  Tex.IdTexto
			    ,Tex.IdClaseDoc
				,Tex.Text1 COLLATE Cyrillic_General_CI_AI as Text1
				,Tex.Text2 COLLATE Cyrillic_General_CI_AI as Text2
				,Tex.Text3 COLLATE Cyrillic_General_CI_AI as Text3
				,Tex.Text4 COLLATE Cyrillic_General_CI_AI as Text4
				,Cla.Nombre 
				,Cla.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				
		 FROM [dbo].[Textos] AS Tex, 
			  [dbo].[Clase_Doc] AS Cla

		 WHERE Tex.IdClaseDoc = Cla.IdClaseDoc
	  END

	  IF @Opcion = 2 --Consulta por IdTexto
	  BEGIN 
		 SELECT  Tex.IdTexto
			    ,Tex.IdClaseDoc
				,Tex.Text1 COLLATE Cyrillic_General_CI_AI as Text1
				,Tex.Text2 COLLATE Cyrillic_General_CI_AI as Text2
				,Tex.Text3 COLLATE Cyrillic_General_CI_AI as Text3
				,Tex.Text4 COLLATE Cyrillic_General_CI_AI as Text4
				,Cla.Nombre 
				,Cla.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				
		 FROM [dbo].[Textos] AS Tex, [dbo].[Clase_Doc] AS Cla

		 WHERE Tex.IdClaseDoc = Cla.IdClaseDoc AND 
			   IdTexto = @IdTexto
	  END
	  
	  IF @Opcion = 3 --Consulta por IdClaseDoc
	  BEGIN 
		 SELECT  Tex.IdTexto
			    ,Tex.IdClaseDoc
				,Tex.Text1 COLLATE Cyrillic_General_CI_AI as Text1
				,Tex.Text2 COLLATE Cyrillic_General_CI_AI as Text2
				,Tex.Text3 COLLATE Cyrillic_General_CI_AI as Text3
				,Tex.Text4 COLLATE Cyrillic_General_CI_AI as Text4
				,Cla.Nombre 
				,Cla.Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				
		 FROM [dbo].[Textos] AS Tex, [dbo].[Clase_Doc] AS Cla

		 WHERE Tex.IdClaseDoc = Cla.IdClaseDoc AND 
			   Cla.IdClaseDoc = @IdClaseDoc
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoArticulos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024/06/21
-- Description:	Buscar Tipo Articulos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTipoArticulos]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdTipoArticulo Int = null,
	@Descripcion varchar(50) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT IdTipoArticulo
				  ,Descripcion
				  ,CodSyscom
				  ,PesoTipo

			FROM  [dbo].[Tipo_Articulos]
		END

	IF @Opcion = 2 -- Consultar por Tipo
		BEGIN
			SELECT IdTipoArticulo
				  ,Descripcion
				  ,CodSyscom
				  ,PesoTipo

			FROM  [dbo].[Tipo_Articulos]

			WHERE IdTipoArticulo = @IdTipoArticulo
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoDocumentos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 25/09/2021
-- Description:	Buscar Docuemntos
-- ==============================================
CREATE   PROCEDURE [dbo].[spGetTipoDocumentos]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdTipoDoc Int=null,
	@Nombre varchar(125)=null,
	@Descripcion varchar(125)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdTipoDoc]
			   ,[Nombre]
			   ,[Descripcion]
		FROM  [dbo].[TipoDocumentos]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdTipoDoc]
			   ,[Nombre]
			   ,[Descripcion]
		FROM  [dbo].[TipoDocumentos]
		WHERE IdTipoDoc = @IdTipoDoc
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoIdent]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 13/09/2021
-- Description:	Procedimiento almacenado para la obtencion del tipo de identificacion
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTipoIdent] 
	-- Add the parameters for the stored procedure here
	@Opcion as int
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 @Opcion=1 
	SELECT * from TipoDocumentos
	
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoOperacion]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 13/05/2023
-- Description:	Buscar Tipo Operacion
-- =============================================
CREATE PROCEDURE [dbo].[spGetTipoOperacion]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdTipoOperacion int = null,
	@Grupo 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT TP.IdTipoOperacion
				  ,TP.TipoOperacion
				  ,TP.EstadoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom
				  ,TP.GrupoPro

			FROM [dbo].[Tipo_Operacion] as TP

			WHERE TP.EstadoOperacion = 1

			ORDER BY TP.GrupoPro ASC
		END

	IF @Opcion = 2  -- Consula Id tipo Operacion
		BEGIN
			SELECT TP.IdTipoOperacion
				  ,TP.TipoOperacion
				  ,TP.EstadoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom
				  ,TP.GrupoPro

			FROM [dbo].[Tipo_Operacion] as TP

			WHERE TP.IdTipoOperacion = @IdTipoOperacion and
				  TP.EstadoOperacion = 1
		END

	IF @Opcion = 3  -- Consula grupo de tipo Operacion
		BEGIN
			SELECT TP.IdTipoOperacion
				  ,TP.TipoOperacion
				  ,TP.EstadoOperacion
				  ,TP.TipoIngreso
				  ,TP.TarifaIngreso
				  ,TP.CodSyscom
				  ,TP.GrupoPro

			FROM [dbo].[Tipo_Operacion] as TP

			WHERE TP.GrupoPro = @Grupo and
				  TP.EstadoOperacion = 1

			ORDER BY TP.GrupoPro ASC
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoOperarios]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 13/05/2023
-- Description:	Buscar Tipo Operarios
-- =============================================
CREATE PROCEDURE [dbo].[spGetTipoOperarios]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdTipoOperario 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT OP.IdTipoOperario
				  ,OP.TipoOperario
				  ,OP.EstadoOperario
				  ,OP.GrupoOperaciones
				  ,OP.CodSyscom

			FROM [dbo].[Tipo_Operarios] as OP

			WHERE OP.EstadoOperario = 1

			ORDER BY OP.TipoOperario ASC
		END

	IF @Opcion = 2  -- Consula todos los Tipo
		BEGIN
			SELECT OP.IdTipoOperario
				  ,OP.TipoOperario
				  ,OP.EstadoOperario
				  ,OP.GrupoOperaciones
				  ,OP.CodSyscom

			FROM [dbo].[Tipo_Operarios] as OP

			WHERE OP.IdTipoOperario = @IdTipoOperario and
				  OP.EstadoOperario = 1

			ORDER BY OP.TipoOperario ASC
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 01/09/2021
-- Description:	Buscar Tipo Servicio
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTipos]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdTipo Int=null,
	@Nombre varchar(125)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdTipo]
			   ,[Nombre]
			   ,[CodSyscom]
		FROM  [dbo].[TipoServicio]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdTipo]
			   ,[Nombre]
			   ,[CodSyscom]
		FROM  [dbo].[TipoServicio] 
		WHERE IdTipo = @IdTipo
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTiposDanio]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Fabian Esteban Becerra G.
-- Create date: 27/11/2024
-- Description:	Obtiene los tipos de daño activos.
-- =============================================

CREATE PROCEDURE [dbo].[spGetTiposDanio]
	
AS
BEGIN
	SELECT	
		IdTipoDanioPqrs, 
		Nombre, 
		Descripcion, 
		Inactivo
	FROM 
		Serv_TipoDanioPqrs
	WHERE 
		Inactivo = 0
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoServicioVehiculo]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 01/10/2021
-- Description:	Buscar Tipo Servicio Vehiculo
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTipoServicioVehiculo] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdTipo Int=null,
	@Nombre varchar(125)=null,
	@Descripcion varchar(255)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdTipo]
			   ,[Nombre]
			   ,[Descripcion]
		FROM  [dbo].[Tipo_Servicio_Vehiculo]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdTipo]
			   ,[Nombre]
			   ,[Descripcion]
		FROM  [dbo].[Tipo_Servicio_Vehiculo] 
		WHERE IdTipo = @IdTipo
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoVehiculos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 01/10/2021
-- Description:	Buscar Tipos Vehiculos
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTipoVehiculos] 
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdTipo Int=null,
	@Nombre varchar(125)=null,
	@Descripcion varchar(255)=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 @Opcion = 1  -- Consula todos los Tipo
	  BEGIN
		SELECT  [IdTipo]
			   ,[Nombre]
			   ,[Descripcion]
			   ,[CodSyscom]
		FROM  [dbo].[Tipos_Vehiculos]
	  END

	IF @Opcion = 2 -- Consultar por Tipo
	  BEGIN
		SELECT  [IdTipo]
			   ,[Nombre]
			   ,[Descripcion]
			   ,[CodSyscom]
		FROM  [dbo].[Tipos_Vehiculos]
		WHERE IdTipo = @IdTipo
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTipoVolumen]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2024/06/21
-- Description:	Buscar Tipo Volumen
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTipoVolumen]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdTipoVolumen Int = null,
	@Descripcion varchar(50) = 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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT  IdTipoVolumen
					,Descripcion
					,Peso
			FROM [dbo].[Tipo_Volumen]
		END

	IF @Opcion = 2 -- Consultar por Tipo
		BEGIN
			SELECT  IdTipoVolumen
					,Descripcion
					,Peso
			FROM [dbo].[Tipo_Volumen]
			WHERE IdTipoVolumen = @IdTipoVolumen
	  END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTotalCotizacion]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 12/05/2022
-- Description: Sacar Totales Cotizacion
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTotalCotizacion]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdCotizacion 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 @Opcion = 1  -- Todos los totales
		BEGIN
			SELECT TT.IdTotal
				  ,TT.IdCotizacion
				  ,TT.IdSolicitud
				  ,TT.Concepto1
				  ,TT.Concepto2
				  ,TT.Concepto3
				  ,TT.Concepto4
				  ,TT.Concepto5
				  ,TT.Concepto6
				  ,TT.Concepto7
				  ,TT.Concepto8
				  ,TT.Concepto9
				  ,TT.Concepto10
				  ,TT.Concepto11
				  ,TT.Concepto12
				  ,TT.Concepto13
				  ,TT.Concepto14
				  ,TT.Concepto15
				  ,TT.Concepto16
				  ,TT.Concepto17
				  ,TT.Concepto18
				  ,TT.Concepto19
				  ,TT.Concepto20
				  ,TT.Concepto21
				  ,TT.Concepto22

			FROM [dbo].[TotalCotizacion] as TT
		END

	IF @Opcion = 2  --  Consultar por Cotizacion
		BEGIN
			SELECT TT.IdTotal
				  ,TT.IdCotizacion
				  ,TT.IdSolicitud
				  ,TT.Concepto1
				  ,TT.Concepto2
				  ,TT.Concepto3
				  ,TT.Concepto4
				  ,TT.Concepto5
				  ,TT.Concepto6
				  ,TT.Concepto7
				  ,TT.Concepto8
				  ,TT.Concepto9
				  ,TT.Concepto10
				  ,TT.Concepto11
				  ,TT.Concepto12
				  ,TT.Concepto13
				  ,TT.Concepto14
				  ,TT.Concepto15
				  ,TT.Concepto16
				  ,TT.Concepto17
				  ,TT.Concepto18
				  ,TT.Concepto19
				  ,TT.Concepto20
				  ,TT.Concepto21
				  ,TT.Concepto22

			FROM [dbo].[TotalCotizacion] as TT

			WHERE TT.IdCotizacion = @IdCotizacion
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTotalFases]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 20/06/2022
-- Description:	Buscar Total fases
-- =============================================
CREATE PROCEDURE [dbo].[spGetTotalFases]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdAsesor int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	DECLARE @i int;
	DECLARE @est int;
	DECLARE @EstadoCot int = null;
	DECLARE @ValorTotal Decimal(18,2) = null;
	DECLARE @TotalEstado int = 0;
	SET @i = 1;
	SET @est = 2;
	SET @ValorTotal    = 0;
	SET @EstadoCot = 0;
	SET @TotalEstado = 0;

	-- Insert statements for procedure here
	IF @Opcion = 1 --Consultar Cotizaciones
		BEGIN 
			-- TOTALES COTIZACION
			WHILE @i <= 5
				BEGIN
					SET @ValorTotal = 0;
					SET @EstadoCot = 0;
					
					SELECT @EstadoCot = COUNT(CT.IdEstadoCot), @ValorTotal = SUM(CT.ValorCotizacion) 
					
					FROM [dbo].[Cotizacion] as CT
					
					WHERE CT.FechaCotizacion between  @FechaIni and @FechaFin and IdEstadoCot = @est
					
					GROUP BY CT.IdEstadoCot
					
					UPDATE [dbo].[TotalFases] SET EstadoTotal = @EstadoCot, ValorCot = @ValorTotal WHERE IdFase = @i 
					SET @i = @i + 1;
					SET @est = @est + 1;
			END;

			-- TOTALES SOLICITUD
			SELECT @TotalEstado = COUNT(SL.Estado) 
			FROM [dbo].[Solicitudes] as SL
			WHERE Fecha between @FechaIni and @FechaFin and Estado = '1'
			
			UPDATE [dbo].[TotalFases] SET EstadoTotal = @TotalEstado WHERE IdFase = 0 

			--Seleccionar Tabla
			SELECT * FROM [dbo].[TotalFases]

		END

	IF @Opcion = 2 --Consulta General
		BEGIN
			IF @IdAsesor IS NULL
				BEGIN
					-- TOTALES COTIZACION
					WHILE @i <= 5
						BEGIN
							SET @ValorTotal = 0;
							SET @EstadoCot = 0;
					
							SELECT @EstadoCot = COUNT(CT.IdEstadoCot), @ValorTotal = SUM(CT.ValorCotizacion) 

							FROM [dbo].[Cotizacion] as CT

							WHERE CT.FechaCotizacion between @FechaIni and @FechaFin and IdEstadoCot = @est

							GROUP BY CT.IdEstadoCot
					
							UPDATE [dbo].[TotalFases] SET EstadoTotal = @EstadoCot, ValorCot = @ValorTotal WHERE IdFase = @i
					
							SET @i = @i + 1;
							SET @est = @est + 1;
					END;

					--TOTALES SOLICITUD
					SELECT @TotalEstado = COUNT(SL.Estado) 
					FROM [dbo].[Solicitudes] as SL
					WHERE SL.Estado = '1'and SL.Fecha between @FechaIni and @FechaFin
					
					UPDATE [dbo].[TotalFases] SET EstadoTotal = @TotalEstado, IdUsuario = @IdAsesor WHERE IdFase = 0
			
				END

			IF @IdAsesor IS NOT NULL
				BEGIN
					
					-- TOTALES COTIZACION
					WHILE @i <= 5
						BEGIN
							SET @ValorTotal = 0;
							SET @EstadoCot = 0;
					
							SELECT @EstadoCot = COUNT(CT.IdEstadoCot), @ValorTotal = SUM(CT.ValorCotizacion) 

							FROM [dbo].[Cotizacion] as CT

							WHERE CT.IdUsuario = @IdAsesor and 
								  CT.FechaCotizacion between @FechaIni and @FechaFin and 
								  IdEstadoCot = @est

							GROUP BY CT.IdEstadoCot, CT.IdUsuario
					
							UPDATE [dbo].[TotalFases] SET EstadoTotal = @EstadoCot, IdUsuario = @IdAsesor, ValorCot = @ValorTotal WHERE IdFase = @i
					
							SET @i = @i + 1;
							SET @est = @est + 1;
					END;

					--TOTALES SOLICITUD
					SELECT @TotalEstado = COUNT(SL.Estado) 
					FROM [dbo].[Solicitudes] as SL
					WHERE SL.IdAsesor = @IdAsesor and SL.Estado = '1'and SL.Fecha between @FechaIni and @FechaFin
					
					UPDATE [dbo].[TotalFases] SET EstadoTotal = @TotalEstado, IdUsuario = @IdAsesor WHERE IdFase = 0
			
				END

			--Seleccionar Tabla
			SELECT * FROM [dbo].[TotalFases]

		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTotalMeses]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 17/06/2022
-- Description:	Buscar Total Meses
-- =============================================
CREATE PROCEDURE [dbo].[spGetTotalMeses]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdAsesor int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = null
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	DECLARE @i int;
	DECLARE @x int;
	DECLARE @ValorCotizacion Decimal(18,2) = null;
	DECLARE @Meses varchar(10) = null;
	SET @i = 1;
	SET @x = 1;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
		BEGIN 
			-- TOTALES AÑO ANTERIOR
			WHILE @x <= 12
				BEGIN
					SET @ValorCotizacion = 0;
					
					SELECT  @ValorCotizacion = sum(CT.ValorCotizacion)
		
					FROM [dbo].[Cotizacion] as CT 
					
					WHERE CT.IdEstadoCot = '5' AND
						  YEAR(CT.FechaCotizacion) = YEAR(GETDATE())-1 AND 
						  MONTH(CT.FechaCotizacion) = @x
					
					GROUP BY MONTH(CT.FechaCotizacion)
					
					UPDATE [dbo].[TotalMesesAnt] SET TotalMes = @ValorCotizacion, ano = YEAR(GETDATE())-1  where IdMes = @x
					SET @x = @x + 1;
			END;

			-- TOTALES AÑO ACTUAL
			WHILE @i <= 12
				BEGIN
					SET @ValorCotizacion = 0;
					
					SELECT  @ValorCotizacion = sum(CT.ValorCotizacion)
		
					FROM [dbo].[Cotizacion] as CT 
					
					WHERE CT.IdEstadoCot = '5' AND
						  YEAR(CT.FechaCotizacion) = YEAR(GETDATE()) AND 
						  MONTH(CT.FechaCotizacion) = @i
					
					GROUP BY MONTH(CT.FechaCotizacion)
					
					UPDATE [dbo].[TotalMeses] SET TotalMes = @ValorCotizacion, ano = YEAR(GETDATE())  where IdMes = @i
					SET @i = @i + 1;
			END;

			--Seleccionar Tabla
			--SELECT IdMes, Mes, TotalMes, ano  FROM [dbo].[TotalMeses]
			SELECT ANT.IdMes, ANT.Mes, ANT.TotalMes AS Anterior, ANT.Ano AS A_Ant, ACT.TotalMes AS Actual, ACT.Ano AS A_Act
			FROM [dbo].[TotalMeses] AS ACT INNER JOIN [dbo].[TotalMesesAnt] AS ANT ON ACT.IdMes = ANT.IdMes
		END

	IF @Opcion = 2 --Consulta General por asesor
		BEGIN 
			IF @IdAsesor IS NULL
				BEGIN 
					-- TOTALES AÑO ANTERIOR
					WHILE @x <= 12
						BEGIN
							SET @ValorCotizacion = 0;
					
							SELECT  @ValorCotizacion = sum(CT.ValorCotizacion)
		
							FROM [dbo].[Cotizacion] as CT 
					
							WHERE CT.IdEstadoCot = '5' AND
								  YEAR(CT.FechaCotizacion) = YEAR(GETDATE())-1 AND 
								  MONTH(CT.FechaCotizacion) = @x
					
							GROUP BY MONTH(CT.FechaCotizacion)
					
							UPDATE [dbo].[TotalMesesAnt] SET TotalMes = @ValorCotizacion, ano = YEAR(GETDATE())-1  where IdMes = @x
							SET @x = @x + 1;
					END;

					-- TOTALES AÑO ACTUAL
					WHILE @i <= 12
						BEGIN
							SET @ValorCotizacion = 0;
					
							SELECT  @ValorCotizacion = sum(CT.ValorCotizacion)
		
							FROM [dbo].[Cotizacion] as CT 
					
							WHERE CT.IdEstadoCot = '5' AND
								  YEAR(CT.FechaCotizacion) = YEAR(GETDATE()) AND 
								  MONTH(CT.FechaCotizacion) = @i
					
							GROUP BY MONTH(CT.FechaCotizacion)
					
							UPDATE [dbo].[TotalMeses] SET TotalMes = @ValorCotizacion, ano = YEAR(GETDATE())  where IdMes = @i
							SET @i = @i + 1;
					END;

					--Seleccionar Tabla
					--SELECT IdMes, Mes, TotalMes, ano  FROM [dbo].[TotalMeses]
					SELECT ANT.IdMes, ANT.Mes, ANT.TotalMes AS Anterior, ANT.Ano AS A_Ant, ACT.TotalMes AS Actual, ACT.Ano AS A_Act
					FROM [dbo].[TotalMeses] AS ACT INNER JOIN [dbo].[TotalMesesAnt] AS ANT ON ACT.IdMes = ANT.IdMes
				END

			IF @IdAsesor IS NOT NULL
				BEGIN 
					-- TOTALES AÑO ANTERIOR
					WHILE @x <= 12
						BEGIN
							SET @ValorCotizacion = 0;
					
							SELECT  @ValorCotizacion = sum(CT.ValorCotizacion)
		
							FROM [dbo].[Cotizacion] as CT 
					
							WHERE CT.IdEstadoCot = '5' AND
								  CT.IdUsuario =  @IdAsesor AND
								  YEAR(CT.FechaCotizacion) = YEAR(GETDATE())-1 AND 
								  MONTH(CT.FechaCotizacion) = @x
					
							GROUP BY MONTH(CT.FechaCotizacion)
					
							UPDATE [dbo].[TotalMesesAnt] SET TotalMes = @ValorCotizacion, ano = YEAR(GETDATE())-1  where IdMes = @x
							SET @x = @x + 1;
					END;

					-- TOTALES AÑO ACTUAL
					WHILE @i <= 12
						BEGIN
							SET @ValorCotizacion = 0;
					
							SELECT  @ValorCotizacion = sum(CT.ValorCotizacion)
		
							FROM [dbo].[Cotizacion] as CT 
					
							WHERE CT.IdEstadoCot = '5' AND
								  CT.IdUsuario =  @IdAsesor AND
								  YEAR(CT.FechaCotizacion) = YEAR(GETDATE()) AND 
								  MONTH(CT.FechaCotizacion) = @i
					
							GROUP BY MONTH(CT.FechaCotizacion)
					
							UPDATE [dbo].[TotalMeses] SET TotalMes = @ValorCotizacion, ano = YEAR(GETDATE())  where IdMes = @i
							SET @i = @i + 1;
					END;

					--Seleccionar Tabla
					--SELECT IdMes, Mes, TotalMes, ano  FROM [dbo].[TotalMeses]
					SELECT ANT.IdMes, ANT.Mes, ANT.TotalMes AS Anterior, ANT.Ano AS A_Ant, ACT.TotalMes AS Actual, ACT.Ano AS A_Act
					FROM [dbo].[TotalMeses] AS ACT INNER JOIN [dbo].[TotalMesesAnt] AS ANT ON ACT.IdMes = ANT.IdMes
				END
		END

	IF @Opcion = 3 --Consulta General
		BEGIN
			SELECT ACT.IdMes 
				  ,ACT.Cerrado
			FROM [dbo].[TotalMeses] AS ACT
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetTotalRechazo]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 17/06/2022
-- Description:	Buscar Total Rechazo
-- =============================================
CREATE   PROCEDURE [dbo].[spGetTotalRechazo]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdAsesor int = null,
	@FechaIni varchar(10) = null,
	@FechaFin varchar(10) = null
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @i int;
	DECLARE @MotivoPerdida Decimal(18,2) = null;
	SET @i = 0;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
		BEGIN 
			-- TOTALES
			WHILE @i <= 10
				BEGIN
					SET @MotivoPerdida = 0;
					SELECT @MotivoPerdida = COUNT(CT.MotivoPerdida)
					FROM [dbo].[Cotizacion] as CT 
					WHERE CT.FechaCotizacion between @FechaIni and @FechaFin AND CT.IdEstadoCot = '6' AND CT.MotivoPerdida = @i 
					GROUP BY CT.MotivoPerdida
					UPDATE [dbo].[TotalRechazo] SET TotalMotivo = @MotivoPerdida where IdMotivo = @i
					SET @i = @i + 1;
			END;

			--Seleccionar Tabla
			SELECT IdMotivo, Nombre, TotalMotivo  FROM [dbo].[TotalRechazo]

		END

	IF @Opcion = 2 --Consulta General
		BEGIN 
			IF @IdAsesor IS NULL
				BEGIN
					-- TOTALES
					WHILE @i <= 10
						BEGIN
							SET @MotivoPerdida = 0;
							SELECT @MotivoPerdida = COUNT(CT.MotivoPerdida)
							FROM [dbo].[Cotizacion] as CT 
							WHERE CT.IdEstadoCot = '6' AND
								  CT.FechaCotizacion between @FechaIni and @FechaFin AND
								  CT.MotivoPerdida = @i 
							GROUP BY CT.MotivoPerdida

							UPDATE [dbo].[TotalRechazo] SET TotalMotivo = @MotivoPerdida where IdMotivo = @i
							SET @i = @i + 1;
					END;

					--Seleccionar Tabla
					SELECT IdMotivo, Nombre, TotalMotivo  FROM [dbo].[TotalRechazo]
				END

			IF @IdAsesor IS NOT NULL
				BEGIN
					-- TOTALES
					WHILE @i <= 10
						BEGIN
							SET @MotivoPerdida = 0;
							SELECT @MotivoPerdida = COUNT(CT.MotivoPerdida)
							FROM [dbo].[Cotizacion] as CT 
							WHERE CT.IdEstadoCot = '6' AND
								  CT.IdUsuario =  @IdAsesor AND
								  CT.FechaCotizacion between @FechaIni and @FechaFin AND
								  CT.MotivoPerdida = @i 

							GROUP BY CT.MotivoPerdida

							UPDATE [dbo].[TotalRechazo] SET TotalMotivo = @MotivoPerdida where IdMotivo = @i
							SET @i = @i + 1;
					END;

					--Seleccionar Tabla
					SELECT IdMotivo, Nombre, TotalMotivo  FROM [dbo].[TotalRechazo]
				END

			

		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetUnidades]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 06/09/2021
-- Description:	Buscar Unidades
-- =============================================
CREATE   PROCEDURE [dbo].[spGetUnidades]
	-- Add the parameters for the stored procedure here
	@Opcion Int,
	@IdUnidad Int=null,
	@Nombre varchar(50)=null,
	@Descripcion varchar(125)=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 @Opcion = 1  -- Consula todos los Tipo
		BEGIN
			SELECT [IdUnidad]
				   ,[Nombre]
				   ,[Descripcion]
				   ,[Medida]
				   ,[Capacidad]
				   ,[Simbolo]
				   ,[Estado]
				   ,[CodSyscom]
			
			FROM [dbo].[Unidades]
		END

	IF @Opcion = 2 -- Consultar por Tipo
		BEGIN
			SELECT [IdUnidad]
				   ,[Nombre]
				   ,[Descripcion]
				   ,[Medida]
				   ,[Capacidad]
				   ,[Simbolo]
				   ,[Estado]
				   ,[CodSyscom]
			
			FROM [dbo].[Unidades]

			WHERE IdUnidad = @IdUnidad
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetUsuarios]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 09/08/2021
-- Description:	listar Y Buscar Usuarios
-- =============================================
CREATE   PROCEDURE [dbo].[spGetUsuarios] 
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdUsuario int = null,
	@Nombres varchar(120) = null,
	@Estado varchar(1) = null,
	@Identificacion varchar(20) = null,
	@Login varchar(20) = null,
	@Clave varchar(20) = null,
	@IdPerfil int = null,
	@Inactivos BIT = 0,
	@IncluirInactivos BIT = 0
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	IF @Opcion=1  -- Seleccionar todos los usuarios activos
		BEGIN
		  SELECT US.IdUsuario
				 ,US.Nombres
				 ,US.Apellidos
				 ,US.TipoIdent
				 ,US.Identificacion
				 ,US.Email
				 ,US.Movil
				 ,US.IdArea
				 ,US.Estado
				 ,US.[Login]
				 ,US.Clave
				 ,US.Contrasena
				 ,US.IdCia
				 ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				 ,RL.Nombre as NombreRol
				 ,PF.IdPerfil
				 ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US 
					INNER JOIN [dbo].[Roles] as RL ON US.IdUsuario = RL.IdUsuario
					INNER JOIN [dbo].[Perfiles] as PF ON RL.IdPerfil = PF.IdPerfil
					INNER JOIN [dbo].[Compania] as CP ON  US.IdCia = CP.IdCia 

			WHERE PF.IdPerfil = ISNULL(@IdPerfil,PF.IdPerfil) and
				  US.Estado   between ISNULL(@Estado,US.Estado) and ISNULL(@Estado,US.Estado)
				 

			ORDER BY NombreCompleto ASC
		END

    IF @Opcion=2  -- Seleccionar el usario por IdUsuario
		BEGIN
			SELECT US.IdUsuario
				  ,US.Nombres
				  ,US.Apellidos
				  ,US.TipoIdent
				  ,US.Identificacion
				  ,US.Email
				  ,US.Movil
				  ,US.IdArea
				  ,US.Estado
				  ,US.[Login]
				  ,US.Clave
				  ,US.Contrasena
				  ,US.IdCia
				  ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				  ,CONCAT(US.Nombres, ' ', US.Apellidos) as NombrePdf
				  ,RL.Nombre as NombreRol
				  ,PF.IdPerfil
				  ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US 
					INNER JOIN [dbo].[Roles] as RL ON US.IdUsuario = RL.IdUsuario
					INNER JOIN [dbo].[Perfiles] as PF ON RL.IdPerfil = PF.IdPerfil
					INNER JOIN [dbo].[Compania] as CP ON  US.IdCia = CP.IdCia 
				 
			WHERE US.IdUsuario between ISNULL(@IdUsuario,US.IdUsuario) and ISNULL(@IdUsuario,US.IdUsuario)
				 

			ORDER BY NombreCompleto ASC
		END
		  		   	   		 	   
	IF @Opcion=3  -- Seleccionar los usuarios por parametros de busqueda
	BEGIN
		SELECT 
			US.IdUsuario,
			US.Nombres,
			US.Apellidos,
			US.TipoIdent,
			US.Identificacion,
			US.Email,
			US.Movil,
			US.IdArea,
			US.Estado ,
			US.[Login],
			US.Clave,
			US.Contrasena,
			US.IdCia,
			CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto,
			RL.Nombre as NombreRol,
			RL.IdPerfil,
			CP.NombreCia		
		FROM 
			[dbo].[Usuarios] as US 
		INNER JOIN 
			[dbo].[Roles] as RL 
			ON US.IdUsuario = RL.IdUsuario
		INNER JOIN 
			[dbo].[Compania] as CP 
			ON  US.IdCia = CP.IdCia 		
		WHERE 
			US.Estado between ISNULL(@Estado,US.Estado) and ISNULL(@Estado,US.Estado) 
			AND (US.Identificacion IS NULL OR US.Identificacion LIKE CONCAT(@Identificacion, '%'))
			--and US.Identificacion between ISNULL(@Identificacion, US.Identificacion) 
			--and ISNULL(@Identificacion, US.Identificacion) 
			AND CONCAT(US.Nombres, ' ', US.Apellidos) like ISNULL(CONCAT('%', @Nombres, '%'), 0) 
			AND (
				(@Inactivos = 0 AND @IncluirInactivos = 0 AND US.Estado = 'A') 
				OR (@Inactivos = 1 AND US.Estado = 'I')
				OR (@IncluirInactivos = 1 AND US.Estado IN ('A', 'I'))
			)
		ORDER BY 
			NombreCompleto ASC
	END

	IF @Opcion=4  -- Validar el login y el password del usuario
		BEGIN
			SELECT US.IdUsuario
				   ,US.Nombres
				   ,US.Apellidos
				   ,US.TipoIdent
				   ,US.Identificacion
				   ,US.Email
				   ,US.Movil
				   ,US.IdArea
				   ,US.Estado
				   ,US.[Login]
				   ,US.Clave 
				   ,US.Contrasena
				   ,US.IdCia
				   ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				   ,RL.IdPerfil
				   ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US, 
				 [dbo].[Roles] as RL,
				 [dbo].[Compania] as CP
					  
			WHERE US.[Login]   = @Login and 
			 	  US.Clave     = @Clave and 
				  RL.IdUsuario = US.IdUsuario and
				  US.IdCia     = CP.IdCia
					
			ORDER BY NombreCompleto ASC
		END

	IF @Opcion=5  -- Validar si el login ya existe
		BEGIN
			SELECT US.IdUsuario
				   ,US.Nombres
				   ,US.Apellidos
				   ,US.TipoIdent
				   ,US.Identificacion
				   ,US.Email
				   ,US.Movil
				   ,US.IdArea
				   ,US.Estado
				   ,US.[Login]
				   ,US.Clave
				   ,US.Contrasena
				   ,US.IdCia
				   ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				   ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US,
				 [dbo].[Compania] as CP

			WHERE US.[Login] = @Login and
				  US.IdCia     = CP.IdCia
					
			ORDER BY NombreCompleto ASC
		END

	IF @Opcion=6  -- Validar si el login ya existe diferente del usuario a actualizar
		BEGIN
			SELECT US.IdUsuario
				   ,US.Nombres
				   ,US.Apellidos
				   ,US.TipoIdent
				   ,US.Identificacion
				   ,US.Email
				   ,US.Movil
				   ,US.IdArea
				   ,US.Estado
				   ,US.[Login]
				   ,US.Clave
				   ,US.Contrasena
				   ,US.IdCia
				   ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				   ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US,
				 [dbo].[Compania] as CP

			WHERE US.[Login]   = @Login and
				  US.IdUsuario <> @IdUsuario and
				  US.IdCia     = CP.IdCia
					
			ORDER BY NombreCompleto ASC
		END

	IF @Opcion=7  -- Validar si el login ya existe diferente del usuario a actualizar
		BEGIN
			SELECT US.IdUsuario
				   ,US.Nombres
				   ,US.Apellidos
				   ,US.TipoIdent
				   ,US.Identificacion
				   ,US.Email
				   ,US.Movil
				   ,US.IdArea
				   ,US.Estado
				   ,US.[Login]
				   ,US.Clave
				   ,US.Contrasena
				   ,US.IdCia
				   ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				   ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US,
				 [dbo].[Compania] as CP

			WHERE US.Identificacion = @Identificacion and 
				  US.IdUsuario <> @IdUsuario and
				  US.IdCia     = CP.IdCia
					
			ORDER BY NombreCompleto ASC
		END

	IF @Opcion=8  -- Seleccionar todos los usuarios activos e inactivos
		BEGIN
		  SELECT US.IdUsuario
				 ,US.Nombres
				 ,US.Apellidos
				 ,US.TipoIdent
				 ,US.Identificacion
				 ,US.Email
				 ,US.Movil
				 ,US.IdArea
				 ,US.Estado
				 ,US.[Login]
				 ,US.Clave
				 ,US.Contrasena
				 ,US.IdCia
				 ,CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto
				 ,RL.Nombre as NombreRol
				 ,PF.IdPerfil
				 ,CP.NombreCia
								  
			FROM [dbo].[Usuarios] as US, 
				 [dbo].[Roles] as RL,
				 [dbo].[Perfiles] as PF,
				 [dbo].[Compania] as CP

			WHERE US.IdUsuario = RL.IdUsuario and
				  RL.IdPerfil  = PF.IdPerfil and
				  PF.IdPerfil  = ISNULL(@IdPerfil,PF.IdPerfil) and
				  US.IdCia     = CP.IdCia

			ORDER BY NombreCompleto ASC
		END

	IF @Opcion=10  -- Seleccionar todos los usuarios activos e inactivos
	BEGIN
		SELECT  
			US.IdUsuario,
			US.Nombres,
			US.Apellidos,
			US.TipoIdent,
			US.Identificacion,
			US.Email,
			US.Movil,
			US.IdArea,
			US.Estado,
			US.[Login],
			US.Clave,
			US.Contrasena,
			US.IdCia,
			CONCAT(US.Apellidos, ' ', US.Nombres) as NombreCompleto,
			CP.NombreCia,
			AR.Nombre as NomArea,
			MD.Nombre as NomModulo,
			PM.IdPermiso,
			CASE PM.Registrar
				WHEN 'A' THEN 'ACTIVO'
				WHEN 'I' THEN 'INACTIVO'
			END as Registrar,
			CASE PM.Actualizar
				WHEN 'A' THEN 'ACTIVO'
				WHEN 'I' THEN 'INACTIVO'
			END as Actualizar, 
			CASE PM.Listar
				WHEN 'A' THEN 'ACTIVO'
				WHEN 'I' THEN 'INACTIVO'
			END as Listar,
			CASE PM.Eliminar
				WHEN 'A' THEN 'ACTIVO'
				WHEN 'I' THEN 'INACTIVO'
			END as Eliminar,
			PF.Nombre as NomPerfil					  
		FROM 
			[dbo].[Usuarios] as US 
		INNER JOIN 
			[dbo].[Roles] as RL 
			ON US.IdUsuario = RL.IdUsuario
		INNER JOIN 
			[dbo].[Area] as AR 
			ON US.IdArea = AR.IdArea
		INNER JOIN 
			[dbo].[Permisos] as PM 
			ON RL.IdPerfil = PM.IdPerfil
		INNER JOIN 
			[dbo].[Perfiles] as PF 
			ON RL.IdPerfil = PF.IdPerfil
		INNER JOIN 
			[dbo].[Modulos] as MD 
			ON PM.IdModulo = MD.IdModulo
		INNER JOIN 
			[dbo].[Compania] as CP 
			ON US.IdCia = CP.IdCia
		WHERE 
			US.IdUsuario = @IdUsuario
	END
END
GO
/****** Object:  StoredProcedure [dbo].[spGetVehiculos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 29/09/2021
-- Description:	Buscar Vehiculos
-- =============================================
CREATE PROCEDURE [dbo].[spGetVehiculos]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdVehiculo int = null,
    @Marca varchar(20) = null,
    @Modelo int = null,
    @Estado varchar(1) = null,
    @Placa varchar(10) = null,
	@Afiliacion int = null,
	@Inactivos BIT = 0,
	@IncluirInactivos BIT = 0
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 @Opcion = 1  -- Consula todos los Vehiculos
	  BEGIN
		SELECT	VH.IdVehiculo
				,VH.Placa
				,VH.TipoVehiculo
				,VH.Modelo
				,VH.Asignacion
				,VH.IdCia
				,VH.Afiliacion
				,VH.IdPropietario
				,VH.IdConductor
				,VH.Largo
				,VH.Ancho
				,VH.Alto
				,VH.Volumen
				,VH.PesoVacio
				,VH.PesoMaximo
				,VH.Capacidad
				,VH.CtrlCombustible
				,VH.Odometro
				,VH.Estado
				,VH.Disponible
				,VH.Marca
				,VH.GrupoPro
				,VH.IdGrupoPro
				,VH.Km_Gl
				,VH.Reserva
				,VH.Tpp
				,VH.Taux1
				,VH.Taux2
				,VH.Lleno
				,CASE VH.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				 END AS NomAfiliacion
				,CASE VH.Asignacion 
					WHEN '1' THEN 'PLANTA' 
					WHEN '2' THEN 'CARRETERA'
					ELSE '0' 
				 END AS NombreTipo
				
				,TV.Nombre as NombreTipoVehiculo
				,MV.Nombre as NombreMarca
				,CONCAT(U1.Nombres, ' ', U1.Apellidos) COLLATE Cyrillic_General_CI_AI as NomConductor
				,U1.Identificacion as CedulaConductor
				,CONCAT(U2.Nombres, ' ', U2.Apellidos) COLLATE Cyrillic_General_CI_AI as NomPropietario
				,U2.Identificacion as CedulaPropietario
				,CP.NombreCia
				,EV.Nombre as EstadoVeh
		
		FROM [dbo].[Vehiculos] as VH 
				LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VH.TipoVehiculo  = TV.IdTipo
				LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VH.Marca = MV.IdMarca
				LEFT JOIN [dbo].[Conductores] as U1 ON VH.IdConductor = U1.IdConductor
				LEFT JOIN [dbo].[Propietarios] as U2 ON VH.IdPropietario = U2.IdPropietario 
				LEFT JOIN [dbo].[Compania] as CP ON VH.IdCia = CP.IdCia
				LEFT JOIN [dbo].[Estado_Vehiculo] as EV ON VH.Estado = EV.IdEstadoVeh

		WHERE VH.Estado like CONCAT('%',ISNULL(@Estado,VH.Estado),'%')

		ORDER BY VH.Placa ASC
	 
	 END

	IF @Opcion = 2 -- Consultar por Vehiculo
	  BEGIN
		SELECT	VH.IdVehiculo
				,VH.Placa
				,VH.TipoVehiculo
				,VH.Modelo
				,VH.Asignacion
				,VH.IdCia
				,VH.Afiliacion
				,VH.IdPropietario
				,VH.IdConductor
				,VH.Largo
				,VH.Ancho
				,VH.Alto
				,VH.Volumen
				,VH.PesoVacio
				,VH.PesoMaximo
				,VH.Capacidad
				,VH.CtrlCombustible
				,VH.Odometro
				,VH.Estado
				,VH.Disponible
				,VH.Marca
				,VH.GrupoPro
				,VH.IdGrupoPro
				,VH.Km_Gl
				,VH.Reserva
				,VH.Tpp
				,VH.Taux1
				,VH.Taux2
				,VH.Lleno
				,CASE VH.Afiliacion 
					WHEN '1' THEN 'AFILIADO' 
					WHEN '2' THEN 'SANTAMARIA'
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				 END AS NomAfiliacion
				,CASE VH.Asignacion 
					WHEN '1' THEN 'PLANTA' 
					WHEN '2' THEN 'CARRETERA'
					ELSE '0' 
				 END AS NombreTipo
				
				,TV.Nombre as NombreTipoVehiculo
				,MV.Nombre as NombreMarca
				,CONCAT(U1.Nombres, ' ', U1.Apellidos) COLLATE Cyrillic_General_CI_AI as NomConductor
				,U1.Identificacion as CedulaConductor
				,CONCAT(U2.Nombres, ' ', U2.Apellidos) COLLATE Cyrillic_General_CI_AI as NomPropietario
				,U2.Identificacion as CedulaPropietario
				,CP.NombreCia
				,EV.Nombre as EstadoVeh
		
		FROM  [dbo].[Vehiculos] as VH 
				LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VH.TipoVehiculo  = TV.IdTipo
				LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VH.Marca = MV.IdMarca
				LEFT JOIN [dbo].[Conductores] as U1 ON VH.IdConductor = U1.IdConductor
				LEFT JOIN [dbo].[Propietarios] as U2 ON VH.IdPropietario = U2.IdPropietario 
				LEFT JOIN [dbo].[Compania] as CP ON VH.IdCia = CP.IdCia
				LEFT JOIN [dbo].[Estado_Vehiculo] as EV ON VH.Estado = EV.IdEstadoVeh

		WHERE VH.IdVehiculo = @IdVehiculo and 
			  VH.Estado     like CONCAT('%',ISNULL(@Estado,VH.Estado),'%') 
			  
		ORDER BY VH.Placa ASC
	  END

	IF @Opcion = 3 -- Consultar por Parametro
	BEGIN
		SELECT	
			VH.IdVehiculo,
			VH.Placa,
			VH.TipoVehiculo,
			VH.Modelo,
			VH.Asignacion,
			VH.IdCia,
			VH.Afiliacion,
			VH.IdPropietario,
			VH.IdConductor,
			VH.Largo,
			VH.Ancho,
			VH.Alto,
			VH.Volumen,
			VH.PesoVacio,
			VH.PesoMaximo,
			VH.Capacidad,
			VH.CtrlCombustible,
			VH.Odometro,
			VH.Estado,
			VH.Disponible,
			VH.Marca,
			VH.GrupoPro,
			VH.IdGrupoPro,
			VH.Km_Gl,
			VH.Reserva,
			VH.Tpp,
			VH.Taux1,
			VH.Taux2,
			VH.Lleno,
			CASE VH.Afiliacion
				WHEN '1' THEN 'AFILIADO'
				WHEN '2' THEN 'SANTAMARIA' 
				WHEN '3' THEN 'TERCEROS'
				ELSE '0' 
			END AS NomAfiliacion,
			CASE VH.Asignacion 
				WHEN '1' THEN 'PLANTA' 
				WHEN '2' THEN 'CARRETERA'
				ELSE '0' 
			END AS NombreTipo,	
			TV.Nombre as NombreTipoVehiculo,
			MV.Nombre as NombreMarca,
			CONCAT(U1.Nombres, ' ', U1.Apellidos) COLLATE Cyrillic_General_CI_AI as NomConductor,
			U1.Identificacion as CedulaConductor,
			CONCAT(U2.Nombres, ' ', U2.Apellidos) COLLATE Cyrillic_General_CI_AI as NomPropietario,
			U2.Identificacion as CedulaPropietario,
			CP.NombreCia,
			EV.Nombre as EstadoVeh,
			CASE VH.Disponible 
				WHEN 0 THEN 'SI'
				ELSE 'NO'
			END AS Activo
		FROM 
			[dbo].[Vehiculos] as VH 
		LEFT JOIN 
			[dbo].[Tipos_Vehiculos] as TV ON VH.TipoVehiculo  = TV.IdTipo
		LEFT JOIN 
			[dbo].[Marcas_Vehiculos] as MV ON VH.Marca = MV.IdMarca
		LEFT JOIN 
			[dbo].[Conductores] as U1 ON VH.IdConductor = U1.IdConductor
		LEFT JOIN 
			[dbo].[Propietarios] as U2 ON VH.IdPropietario = U2.IdPropietario 
		LEFT JOIN 
			[dbo].[Compania] as CP ON VH.IdCia = CP.IdCia
		LEFT JOIN 
			[dbo].[Estado_Vehiculo] as EV ON VH.Estado = EV.IdEstadoVeh
		WHERE 
			--(VH.Modelo between ISNULL(@Modelo,VH.Modelo) and ISNULL(@Modelo,VH.Modelo)) 
			(@Modelo IS NULL OR VH.Modelo LIKE CONCAT(@Modelo, '%'))
			--and VH.Placa like CONCAT('%',ISNULL(@Placa,VH.Placa),'%') 
			AND (@Placa IS NULL OR VH.Placa LIKE CONCAT(@Placa, '%'))
			--and MV.Nombre like CONCAT('%',ISNULL(@Marca,MV.Nombre),'%') 
			AND (@Marca IS NULL OR MV.Nombre LIKE CONCAT(@Marca, '%'))
			--and VH.Afiliacion between ISNULL(@Afiliacion,VH.Afiliacion) and ISNULL(@Afiliacion,VH.Afiliacion) 
			AND (@Afiliacion IS NULL OR VH.Afiliacion = @Afiliacion)
			-- and VH.Estado < @Estado	 
			AND (
				-- (@Inactivos = 0 AND @IncluirInactivos = 0 AND VH.Estado <> 9) 
				(@Inactivos = 0 AND @IncluirInactivos = 0 AND VH.Disponible = 0) 
				OR (@Inactivos = 1 AND VH.Disponible = 1)
				OR (@IncluirInactivos = 1 AND VH.Estado IN (SELECT IdEstadoVeh FROM Estado_Vehiculo WHERE Estado = 'A'))
			)
		ORDER BY 
			VH.Placa ASC
	END

	IF @Opcion = 4  -- Consula todos los Vehiculos
	  BEGIN
		SELECT	VH.IdVehiculo
					,VH.Placa
					,VH.TipoVehiculo
					,VH.Modelo
					,VH.Asignacion
					,VH.IdCia
					,VH.Afiliacion
					,VH.IdPropietario
					,VH.IdConductor
					,VH.Largo
					,VH.Ancho
					,VH.Alto
					,VH.Volumen
					,VH.PesoVacio
					,VH.PesoMaximo
					,VH.Capacidad
					,VH.CtrlCombustible
					,VH.Odometro
					,VH.Estado
					,VH.Disponible
					,VH.Marca
					,VH.GrupoPro
					,VH.IdGrupoPro
					,VH.Km_Gl
					,VH.Reserva
					,VH.Tpp
					,VH.Taux1
					,VH.Taux2
					,VH.Lleno
					,CASE VH.Afiliacion
						WHEN '1' THEN 'AFILIADO'
						WHEN '2' THEN 'SANTAMARIA' 
						WHEN '3' THEN 'TERCEROS'
						ELSE '0' 
					 END AS NomAfiliacion
					,CASE VH.Asignacion 
						WHEN '1' THEN 'PLANTA' 
						WHEN '2' THEN 'CARRETERA'
						ELSE '0' 
					 END AS NombreTipo
				
					,TV.Nombre as NombreTipoVehiculo
					,MV.Nombre as NombreMarca
					,CONCAT(U1.Nombres, ' ', U1.Apellidos) COLLATE Cyrillic_General_CI_AI as NomConductor
					,U1.Identificacion as CedulaConductor
					,CONCAT(U2.Nombres, ' ', U2.Apellidos) COLLATE Cyrillic_General_CI_AI as NomPropietario
					,U2.Identificacion as CedulaPropietario
					,CP.NombreCia
					,EV.Nombre as EstadoVeh
		
			FROM [dbo].[Vehiculos] as VH 
					LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VH.TipoVehiculo  = TV.IdTipo
					LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VH.Marca = MV.IdMarca
					LEFT JOIN [dbo].[Conductores] as U1 ON VH.IdConductor = U1.IdConductor
					LEFT JOIN [dbo].[Propietarios] as U2 ON VH.IdPropietario = U2.IdPropietario 
					LEFT JOIN [dbo].[Compania] as CP ON VH.IdCia = CP.IdCia
					LEFT JOIN [dbo].[Estado_Vehiculo] as EV ON VH.Estado = EV.IdEstadoVeh

		WHERE VH.IdVehiculo between ISNULL(@IdVehiculo,VH.IdVehiculo) and ISNULL(@IdVehiculo,VH.IdVehiculo) and 
			  VH.Afiliacion between ISNULL(@Afiliacion,VH.Afiliacion) and ISNULL(@Afiliacion,VH.Afiliacion) and
			  VH.Estado     like ISNULL(@Estado,VH.Estado) 
			  
		ORDER BY VH.Placa ASC
	 
	  END

	IF @Opcion = 5  -- Consula por placa
	  BEGIN
		SELECT	VH.IdVehiculo
				,VH.Placa
				,VH.TipoVehiculo
				,VH.Modelo
				,VH.Asignacion
				,VH.IdCia
				,VH.Afiliacion
				,VH.IdPropietario
				,VH.IdConductor
				,VH.Largo
				,VH.Ancho
				,VH.Alto
				,VH.Volumen
				,VH.PesoVacio
				,VH.PesoMaximo
				,VH.Capacidad
				,VH.CtrlCombustible
				,VH.Odometro
				,VH.Estado
				,VH.Disponible
				,VH.Marca
				,VH.GrupoPro
				,VH.IdGrupoPro
				,VH.Km_Gl
				,VH.Reserva
				,VH.Tpp
				,VH.Taux1
				,VH.Taux2
				,VH.Lleno
				,CASE VH.Afiliacion 
					WHEN '1' THEN 'AFILIADO'
					WHEN '2' THEN 'SANTAMARIA' 
					WHEN '3' THEN 'TERCEROS'
					ELSE '0' 
				 END AS NomAfiliacion
				,CASE VH.Asignacion 
					WHEN '1' THEN 'PLANTA' 
					WHEN '2' THEN 'CARRETERA'
					ELSE '0' 
				 END AS NombreTipo
				
				,TV.Nombre as NombreTipoVehiculo
				,MV.Nombre as NombreMarca
				,CONCAT(U1.Nombres, ' ', U1.Apellidos) COLLATE Cyrillic_General_CI_AI as NomConductor
				,U1.Identificacion as CedulaConductor
				,CONCAT(U2.Nombres, ' ', U2.Apellidos) COLLATE Cyrillic_General_CI_AI as NomPropietario
				,U2.Identificacion as CedulaPropietario
				,CP.NombreCia
				,EV.Nombre as EstadoVeh
		
		FROM [dbo].[Vehiculos] as VH 
				LEFT JOIN [dbo].[Tipos_Vehiculos] as TV ON VH.TipoVehiculo  = TV.IdTipo
				LEFT JOIN [dbo].[Marcas_Vehiculos] as MV ON VH.Marca = MV.IdMarca
				LEFT JOIN [dbo].[Conductores] as U1 ON VH.IdConductor = U1.IdConductor
				LEFT JOIN [dbo].[Propietarios] as U2 ON VH.IdPropietario = U2.IdPropietario 
				LEFT JOIN [dbo].[Compania] as CP ON VH.IdCia = CP.IdCia
				LEFT JOIN [dbo].[Estado_Vehiculo] as EV ON VH.Estado = EV.IdEstadoVeh

		WHERE VH.Placa = @Placa
			  
		ORDER BY VH.Placa ASC

	  END
END

GO
/****** Object:  StoredProcedure [dbo].[spGetVisitas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 11/11/2021
-- Description:	Buscar Visita Presencial
-- =============================================
CREATE   PROCEDURE [dbo].[spGetVisitas]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdCotPresencial int=null,
	@IdCotizacion int=null, 
    @IdSolicitud int=null, 
    @FechaVisita varchar(10)=null, 
    @HoraVisita varchar(8)=null, 
    @AsesorVisita int=null, 
    @EstadoVisita int=null, 
    @Observacion varchar(255)=null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statementB.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	IF @Opcion = 1 --Consulta General
	  BEGIN 
		 SELECT [IdCotPresencial]
				,[IdCotizacion]
			    ,[IdSolicitud]
			    ,[FechaVisita]
			    ,[HoraVisita]
			    ,[AsesorVisita]
			    ,[EstadoVisita]
			    ,[Observacion]
		 
		 FROM [dbo].[Cotizacion_Presencial]

	  END

	IF @Opcion = 2 --Consulta por Preventa
	  BEGIN 
		 SELECT [IdCotPresencial]
				,[IdCotizacion]
			    ,[IdSolicitud]
			    ,[FechaVisita]
			    ,[HoraVisita]
			    ,[AsesorVisita]
			    ,[EstadoVisita]
			    ,[Observacion]
		 
		 FROM [dbo].[Cotizacion_Presencial]

		 WHERE IdCotPresencial = @IdCotPresencial

	  END

	IF @Opcion = 3 --Consulta por Preventa
	  BEGIN 
		 SELECT [IdCotPresencial]
				,[IdCotizacion]
			    ,[IdSolicitud]
			    ,[FechaVisita]
			    ,[HoraVisita]
			    ,[AsesorVisita]
			    ,[EstadoVisita]
			    ,[Observacion]
		 
		 FROM [dbo].[Cotizacion_Presencial]

		 WHERE IdCotizacion = @IdCotizacion

	  END

END
GO
/****** Object:  StoredProcedure [dbo].[spGetWebServices]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 23/08/2023
-- Description:	Buscar WebServices
-- =============================================
CREATE PROCEDURE [dbo].[spGetWebServices]
	-- Add the parameters for the stored procedure here
	@Opcion as int
	
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 @Opcion=1 
		BEGIN
			SELECT IdWebService
				   ,Nombre COLLATE Cyrillic_General_CI_AI as Nombre 
				   ,Descripcion COLLATE Cyrillic_General_CI_AI as Descripcion
				   ,Link_Crear
				   ,Link_Actualizar
			
			FROM [dbo].[WebServices]
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertAgendas]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 05/05/2022
-- Description:	Insertar Agendas
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertAgendas]
	-- Add the parameters for the stored procedure here
	@title varchar(50) = null,
    @descripcion varchar(255) = null,
    @start varchar(30) = null,
    @color varchar(10) = null,
    @textColor varchar(10) = null,
    @end varchar(30) = null,
    @IdOrden int = null,
    @IdCotizacion int = null,
    @Vehiculo int = null,
    @Personal int = null,
	@Inventario int = null,
	@IdUsuario int = null,
	@Compania int = null,
	@FechaIni varchar(10) = null,
	@EstadoEvento int = null,
	@Servicio int = null,
	@FechaRecogida varchar(10) = null,
	@HoraRecogida varchar(8) = null,
	@FechaEntrega varchar(10) = null,
	@HoraEntrega varchar(8) = null,
	@CiudadOrigen int = null,
	@CiudadDestino int = null,
	@CiaEncargada int = null,
	@Requisicion int = null,
	@CtrlAgenda int = null,
	@CtrlConfirmacion int = null,
	@TipoServicioCot 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
	INSERT INTO [dbo].[Agenda]
           ([title]
           ,[descripcion]
           ,[start]
           ,[color]
           ,[textColor]
           ,[end]
           ,[IdOrden]
           ,[IdCotizacion]
		   ,[Vehiculo]
		   ,[Personal]
		   ,[IdUsuario]
		   ,[IdCia]
		   ,[FechaIni]
		   ,[EstadoEvento]
		   ,[Servicio]
		   ,[FechaRecogida]
		   ,[HoraRecogida]
		   ,[FechaEntrega]
		   ,[HoraEntrega]
		   ,[IdCiudadOrigen]
		   ,[IdCiudadDestino]
		   ,[CiaEncargada]
		   ,[CtrlAgenda]
		   ,[CtrlConfirmacion]
		   ,[TipoServicioCot]
		   ,[NumRemesa]
		   ,[NumManifiesto])

     VALUES
           (@title
			,@descripcion
			,@start
			,@color
			,@textColor
			,@end
			,@IdOrden
			,@IdCotizacion
			,@Vehiculo
			,@Personal
			,@IdUsuario
			,@Compania
			,@FechaIni
			,@EstadoEvento
			,@Servicio
			,@FechaRecogida
			,@HoraRecogida
			,@FechaEntrega
			,@HoraEntrega
			,@CiudadOrigen
			,@CiudadDestino
			,@CiaEncargada
			,@CtrlAgenda
			,@CtrlConfirmacion
			,@TipoServicioCot
			,0
			,0)

	-- Actualizar Cotizacion 
	UPDATE [dbo].[OrdenServicio] 
		SET NumInventario  = @Inventario, 
			NumRequisicion = @Requisicion 
		WHERE IdOrden = @IdOrden
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertAgendasSeguimientos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 12/02/2024
-- Description:	Insertar AgendasSeguimientos
-- ==============================================
CREATE PROCEDURE [dbo].[spInsertAgendasSeguimientos]
	-- Add the parameters for the stored procedure here
	@IdEvento int = null,
    @IdCotizacion int = null,
    @FechaSeg varchar(10) = null,
    @HoraSeg varchar(8) = null,
    @ObservaSeg varchar(255) = null,
	@IdUsuario 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
	INSERT INTO [dbo].[Agenda_Seguimiento](
		[IdEvento],
        [IdCotizacion],
        [FechaSeg],
        [HoraSeg],
        [ObservaSeg],
		IdUsuario
	) VALUES (
		@IdEvento,
		@IdCotizacion,
		@FechaSeg,
		@HoraSeg,
		@ObservaSeg,
		@IdUsuario
	)
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertarAbonos]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Abonos
-- =============================================

CREATE   PROCEDURE [dbo].[spInsertarAbonos]
@idCartera INT,
@Fecha_Abono VARCHAR(10),
@Hora_Abono VARCHAR(10),
@Valor VARCHAR(30),
@Descripcion VARCHAR(10),
--@Numero_Factura VARCHAR(10),
--@Archivo VARCHAR(MAX),
@Recibo_Pago VARCHAR(MAX)
AS
BEGIN TRANSACTION
SET NOCOUNT ON;
		BEGIN TRY

		DECLARE @IdAbono INT
		--INSERT INTO Bod.Abonos VALUES(@idCartera,@Fecha_Abono,@Hora_Abono,@Valor,@Descripcion,0,@Recibo_Pago)
		SET @IdAbono = SCOPE_IDENTITY()

		SELECT @IdAbono

		COMMIT TRANSACTION
		END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH
GO
/****** Object:  StoredProcedure [dbo].[spInsertarAbonosDetalle]    Script Date: 04/02/2025 11:05:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Abonos Detalle
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertarAbonosDetalle]
@idAbonos INT,
@idFormaPago INT,
@idMedioPago INT,
@Valor VARCHAR(30)
AS
BEGIN TRANSACTION
		BEGIN TRY

		--INSERT INTO Bod.Abono_Detalle VALUES(@idAbonos,@idFormaPago,@idMedioPago,@Valor)

		COMMIT TRANSACTION
		END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH
GO
/****** Object:  StoredProcedure [dbo].[spInsertarAnticipos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Anticipos
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertarAnticipos]
@idCartera INT NULL,
@idContrato INT,
@Fecha_Anticipo VARCHAR(10),
@Hora_Anticipo VARCHAR(10),
@Valor VARCHAR(30),
@Recibo_Pago VARCHAR(MAX)
AS
BEGIN TRANSACTION
SET NOCOUNT ON;

		BEGIN TRY

		DECLARE @idAnticipo INT
		--INSERT INTO Bod.Anticipos VALUES(@idCartera,@idContrato,@Fecha_Anticipo,@Hora_Anticipo,@Valor,0,0,@Recibo_Pago)
		SET @idAnticipo = SCOPE_IDENTITY()

		SELECT @idAnticipo

		COMMIT TRANSACTION
		END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH
GO
/****** Object:  StoredProcedure [dbo].[spInsertarAnticiposDetalle]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Anticipos Detalle
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertarAnticiposDetalle]
@idAnticipo INT,
@idFormaPago INT,
@idMedioPago INT,
@Valor VARCHAR(30)
AS
BEGIN TRANSACTION
		BEGIN TRY

		--INSERT INTO Bod.Anticipo_Detalle VALUES(@idAnticipo,@idFormaPago,@idMedioPago,@Valor)

		COMMIT TRANSACTION
		END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH

GO
/****** Object:  StoredProcedure [dbo].[spInsertarRecaudos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Recaudos
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertarRecaudos]
@Fecha_Recaudo VARCHAR(10),
@Hora_Recaudo VARCHAR(10),
@Valor VARCHAR(30)
AS
BEGIN TRANSACTION
SET NOCOUNT ON;

		BEGIN TRY

		DECLARE @IdRecaudo INT
		--INSERT INTO Bod.Recaudos VALUES(@Fecha_Recaudo,@Hora_Recaudo,@Valor,0)
		SET @IdRecaudo = SCOPE_IDENTITY()

		SELECT @IdRecaudo

		COMMIT TRANSACTION
		END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH
GO
/****** Object:  StoredProcedure [dbo].[spInsertarRecaudosDetalle]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Recaudos Detalles
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertarRecaudosDetalle]
@idRecaudo INT,
@Valor VARCHAR(30),
@idAbono INT NULL
AS
BEGIN TRANSACTION
		BEGIN TRY

		--INSERT INTO Bod.Recaudo_Detalle VALUES(@idRecaudo,@Valor,@idAbono,NULL,0)

		COMMIT TRANSACTION
		END TRY
BEGIN CATCH
ROLLBACK TRAN
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
	SELECT 
	@ErrorMessage = ERROR_MESSAGE(),
	@ErrorSeverity = ERROR_SEVERITY(),
	@ErrorState = ERROR_STATE();
	RAISERROR(
	@ErrorMessage, -- Message text.
	@ErrorSeverity, -- Severity.
	@ErrorState -- State.
	);
END CATCH

GO
/****** Object:  StoredProcedure [dbo].[spInsertArticulos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 05/09/2021
-- Description:	Insertar Articulos
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertArticulos] 
	-- Add the parameters for the stored procedure here
	@IdArticulo Int = null,
	@Nombre varchar(125) = null,
	@Descripcion varchar(255) = null,
	@Material int = null,
	@IdTipoArt 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
	INSERT INTO [dbo].[Articulos]
           ([Nombre]
           ,[Descripcion]
		   ,[Material]
		   ,[IdTipoArticulo])
     VALUES
           (@Nombre
		   ,@Descripcion
		   ,@Material
		   ,@IdTipoArt)
	
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBitacora]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 02/08/2021
-- Description:	Procedimiento para registrar bitacora
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertBitacora]
	-- Add the parameters for the stored procedure here
	@IdEvento int,
	@IdUsuario int,
	@Documento int,
	@Descripcion varchar(125)

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 @Existingdate as varchar(10)
	set @Existingdate=CONVERT(varchar,GETDATE(),23)
	
	declare @Existingtime as varchar(8)
	Set @Existingtime=CONVERT(varchar,GETDATE(),108)
	
	INSERT INTO [dbo].[Bitacora]
           ([IdEvento]
           ,[Fecha]
           ,[Hora]
           ,[IdUsuario]
		   ,[Documento]
		   ,[Descripcion])

     VALUES( @IdEvento
			,@Existingdate
			,@Existingtime
			,@IdUsuario
			,@Documento
			,@Descripcion);

END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodAbonos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 28/09/2023
-- Description:	Insertar Abonos-Cartera
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodAbonos] 
	-- Add the parameters for the stored procedure here
	@IdCartera int = null,
    @IdContrato int = null,
    @FechaAbono varchar(10) = null,
    @HoraAbono varchar(8) = null,
    @ValorAbono varchar(30) = null,
    @SaldoCartera varchar(30) = null,
	@Descripcion varchar(max) = null,
	@EstadoAbono int = null,
	@IdFormaPago int = null,
	@IdMedioPago int = null,
	@ReciboPago varchar(max) = 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
	--INSERT INTO [Bod].[Abonos]
 --          ([IdCartera]
 --          ,[IdContrato]
 --          ,[FechaAbono]
 --          ,[HoraAbono]
 --          ,[ValorAbono]
 --          ,[SaldoCartera]
 --          ,[Descripcion]
 --          ,[EstadoAbono]
 --          ,[IdFormaPago]
 --          ,[IdMedioPago]
 --          ,[ReciboPago])
 --    VALUES
 --          (@IdCartera 
 --          ,@IdContrato
 --          ,@FechaAbono
 --          ,@HoraAbono 
 --          ,@ValorAbono
 --          ,@SaldoCartera
 --          ,@Descripcion
 --          ,@EstadoAbono
 --          ,@IdFormaPago
 --          ,@IdMedioPago
 --          ,@ReciboPago)
END


GO
/****** Object:  StoredProcedure [dbo].[spInsertBodCarSeguimiento]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Seguimiento Cartera Bodega
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertBodCarSeguimiento] 
	-- Add the parameters for the stored procedure here
	@IdUsuario int = null,
	@IdContrato int = null,
	@IdCartera int = null,
	@IdCliente int = null,
	@DiasMora varchar(10) = null,
	@MesMora varchar(10) = null,
	@TotalMora numeric(18,0) = null,
	@FechaSeguimiento varchar(10) = null,
	@Observacion varchar(max) = null,
	@Formato int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @IdSeguimiento INT
    -- Insert statements for procedure here
	INSERT INTO [dbo].[Bodegas_CarteraSeguimiento]
           ([IdUsuario]
           ,[IdContrato]
           ,[IdCartera]
           ,[IdCliente]
           ,[DiasMora]
           ,[MesesMora]
           ,[TotalMora]
           ,[FechaSeguimiento]
           ,[Observacion]
           ,[Formato])
     VALUES
           (@IdUsuario
           ,@IdContrato
           ,@IdCartera
           ,@IdCliente
           ,@DiasMora
           ,@MesMora
           ,@TotalMora
           ,@FechaSeguimiento
           ,@Observacion
           ,@Formato)
	
	SET @IdSeguimiento = SCOPE_IDENTITY()

	SELECT  @IdSeguimiento AS IdSeguimiento
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodCartera]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 07/10/2023
-- Description:	Insertar Cartera
-- =============================================
CREATE  PROCEDURE [dbo].[spInsertBodCartera]
	@IdContrato int = null,
    @IdIPC int = null,
    @FechaPago varchar(10) = null,
    @HoraPago varchar(8) = null,
    @ValorBodega numeric(18,0) = null,
    @ValorSeguro numeric(18,0) = null,
    @ValorIva numeric(18,0) = null,
    @ValorCuota numeric(18,0) = null,
    @Saldo numeric(18,0) = null,
    @Intereses numeric(18,0) = null,
    @Descuentos numeric(18,0) = null,
    @PagoTotal numeric(18,0) = null,
    @Estado int = null
AS

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Declarar Variables
	DECLARE @IdCartera as int;

    -- Insert statements for procedure here 
	INSERT INTO [dbo].[Bodegas_Cartera]
           ([IdContrato]
           ,[IdIPC]
           ,[FechaPago]
           ,[HoraPago]
           ,[ValorBodega]
           ,[ValorSeguro]
           ,[ValorIva]
           ,[ValorCuota]
           ,[Saldo]
           ,[Intereses]
           ,[Descuentos]
           ,[PagoTotal]
           ,[Estado])
     VALUES
           (@IdContrato
           ,@IdIPC
           ,@FechaPago
           ,@HoraPago
           ,@ValorBodega
           ,@ValorSeguro
           ,@ValorIva
           ,@ValorCuota
           ,@Saldo
           ,@Intereses
           ,@Descuentos
           ,@PagoTotal
           ,@Estado)

	SET @IdCartera = (SELECT MAX(IdCartera) FROM [dbo].[Bodegas_Cartera]);
	
	-- Actualizar ID Cartera en Contratos
	UPDATE[dbo].[Bodegas_Contratos] SET IdCartera = @IdCartera WHERE IdContrato = @IdContrato

END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodCodigoEntrada]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 30-01-2024
-- Description:	Insertar CodigoEntrada
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodCodigoEntrada] 
	-- Add the parameters for the stored procedure here
	@CodEntrada int = null,
	@NomEntrada varchar(50) = null,
    @FechaEntrada varchar(10) = null,
    @IdContrato int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Declarar Variables
	declare @IdEntrada as int;

    -- Insert statements for procedure here
	INSERT INTO [dbo].[Bodegas_CodigoEntrada]
           ([CodEntrada]
		   ,[NomEntrada]
		   ,[FechaEntrada]
           ,[IdContrato])
     VALUES
           (@CodEntrada
		   ,@NomEntrada
		   ,@FechaEntrada
           ,@IdContrato)

	SET @IdEntrada = (SELECT MAX(IdEntrada) FROM [dbo].[Bodegas_CodigoEntrada]);

	-- Actualizar Solicitud en Registro Llamadas
	UPDATE [dbo].[Bodegas_Contratos] SET CodigoEntrada = @IdEntrada WHERE IdContrato = @IdContrato
END

GO
/****** Object:  StoredProcedure [dbo].[spInsertBodCodigoSalida]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 30-01-2024
-- Description:	Insertar Codigo Entrada
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodCodigoSalida] 
	-- Add the parameters for the stored procedure here
	@CodSalida int = null,
	@NomSalida varchar(50) = null,
    @FechaSalida varchar(10) = null,
    @IdContrato int = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Declarar Variables
	declare @IdSalida as int;

    -- Insert statements for procedure here
	INSERT INTO [dbo].[Bodegas_CodigoSalida]
           ([CodSalida]
		   ,[NomSalida]
		   ,[FechaSalida]
           ,[IdContrato])
    VALUES
           (@CodSalida
		   ,@NomSalida
		   ,@FechaSalida
           ,@IdContrato)

	SET @IdSalida = (SELECT MAX(IdSalida) FROM [dbo].[Bodegas_CodigoSalida]);

	-- Actualizar Solicitud en Registro Llamadas
	UPDATE [dbo].[Bodegas_Contratos] SET CodigoSalida = @IdSalida WHERE IdContrato = @IdContrato
END

GO
/****** Object:  StoredProcedure [dbo].[spInsertBodContArticulos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 18/10/2022
-- Description:	Insertar Contratos - Articulos
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertBodContArticulos]
	-- Add the parameters for the stored procedure here
	@IdArticulo Int = null,
	@IdContrato int = null,
	@IdCotizacion Int = null,
	@Nombre varchar(125) = null,
    @Descripcion varchar(255) = null,
    @Cantidad varchar(10) = null,
	@EstadoArticulo varchar(2) = null,
	@Memorando varchar(50) = 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
	INSERT INTO [dbo].[Bodegas_ContratoArticulos]
           ([IdContrato]
		   ,[IdCotizacion]
		   ,[IdArticulo]
           ,[Nombre]
           ,[Descripcion]
		   ,[Cantidad]
		   ,[EstadoArticulo]
		   ,[Memorando])
     
	 VALUES
           (@IdContrato, 
		    @IdCotizacion, 
		    @IdArticulo, 
			@Nombre, 
			@Descripcion, 
			@Cantidad,
			@EstadoArticulo,
			@Memorando)
END






GO
/****** Object:  StoredProcedure [dbo].[spInsertBodContBodegas]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 18/01/2023
-- Description:	Insertar Contratos bodegas
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertBodContBodegas]
	-- Add the parameters for the stored procedure here
	@IdContrato int = null,
    @IdBodega int = null,
    @IdCotizacion int = null,
    @IdSucursal int = null,
    @Nombre varchar(125) = null,
    @Capacidad NUMERIC(18, 2) = null,
    @Ocupacion NUMERIC(18, 2) = null,
    @Disponible NUMERIC(18, 2) = null,
    @Largo varchar(20) = null,
    @Ancho varchar(20) = null,
    @Alto varchar(20) = null,
    @Estado varchar(20) = null,
	@CodSyscom varchar(4) = null,
	@ValorBodega decimal(18,2) = null
AS
BEGIN

    -- Insert statements for procedure here
	INSERT INTO [dbo].[Bodegas_ContratoBodegas] (
		[IdContrato], [IdBodega]
		,[IdCotizacion], [IdSucursal]
        ,[Nombre], [Capacidad]
		,[Ocupacion], [Disponible]
        ,[Largo], [Ancho]
        ,[Alto], [Estado]
		,[CodSyscom], [ValorBodega]
	) VALUES (
		@IdContrato, @IdBodega
		,@IdCotizacion, @IdSucursal 
        ,@Nombre, @Capacidad
		,@Ocupacion, @Disponible
        ,@Largo, @Ancho 
        ,@Alto, @Estado
		,@CodSyscom, @ValorBodega
	)

	DECLARE 
		@OcupacionBodega NUMERIC,
		@DisponibleBodega NUMERIC

	SELECT 
		@OcupacionBodega = Ocupacion,
		@DisponibleBodega = Disponible
	FROM 
		Bodegas 
	WHERE 
		IdBodega = @IdBodega

	--Actualizar Bodegas 
	UPDATE 
		[dbo].[Bodegas]   
	SET 
		Ocupacion  = @OcupacionBodega + @Ocupacion, 
		Disponible = @Disponible, 
		CapacidadFinal = @Disponible,
		Estado     = @Estado 
	WHERE 
		IdBodega = @IdBodega
	
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodContratoIPC]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 18/10/2022
-- Description:	Insertar Contratos Ipc
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodContratoIPC]
	-- Add the parameters for the stored procedure here
	@IdContrato int = null,
    @IdCartera int = null,
    @AjusteNumero int = null,
    @ValorBodega numeric(18,0) = null,
    @Ipc decimal(18,2) = null,
    @ValorAsegurado numeric(18,0) = null,
    @ValorIpc numeric(18,0) = null,
    @ValorSeguro numeric(18,0) = null,
    @ValorMensual numeric(18,0) = null,
    @Iva numeric(18,0) = null,
    @ValorTotal numeric(18,0) = null,
    @AplicaHasta varchar(10) = null,
	@CartaAviso varchar(10) = null,
	@DctoCarta varchar(max) = null,
	@CtrlCarta 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
	INSERT INTO [dbo].[Bodegas_ContratoIPC]
           ([IdContrato]
           ,[IdCartera]
           ,[AjusteNumero]
           ,[ValorBodega]
           ,[Ipc]
           ,[ValorAsegurado]
           ,[ValorIpc]
           ,[ValorSeguro]
           ,[ValorMensual]
           ,[Iva]
           ,[ValorTotal]
           ,[AplicaHasta]
		   ,[CartaAviso]
		   ,[DctoCarta]
		   ,[CtrlCarta])
     VALUES
           (@IdContrato 
           ,@IdCartera 
           ,@AjusteNumero 
           ,@ValorBodega 
           ,@Ipc 
           ,@ValorAsegurado 
           ,@ValorIpc 
           ,@ValorSeguro 
           ,@ValorMensual 
           ,@Iva 
           ,@ValorTotal 
           ,@AplicaHasta
		   ,@CartaAviso
		   ,@DctoCarta
		   ,@CtrlCarta)
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodContratos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 05/10/2022
-- Description:	Guardar Contrato
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertBodContratos]
	-- Add the parameters for the stored procedure here
	 @NumeroContrato varchar(30) = null
    ,@FechaContrato varchar(10) = null
    ,@HoraContrato varchar(8) = null
    ,@FechaInicio varchar(10) = null
    ,@HoraInicio varchar(8) = null
    ,@FechaFin varchar(10) = null
    ,@HoraFin varchar(8) = null
    ,@IdCiudadOrigen int = null
    ,@IdSucursal int = null
    ,@IdCliente int = null
    ,@IdCotizacion int = null
    ,@IdOrdenServicio int = null
    ,@ValorContrato decimal(18, 0) = null
    ,@PorcentajeIVA decimal(18,2) = null
    ,@ValorIVA decimal(18, 0) = null
    ,@ValorDeclarado decimal(18, 0) = null
    ,@ValorPoliza decimal(18, 0) = null
    ,@IdPeriodicidad int = null
    ,@MesesPeriodo int = null
    ,@ValorTotal decimal(18, 0) = null
    ,@EstadoContrato varchar(1) = null
    ,@Novedades varchar(10) = null
	,@PagoInicial varchar(1) = null
	,@CodigoEntrada varchar(50) = null
	,@CodigoSalida varchar(50) = null
	,@Bloqueo varchar(1) = null
	,@Movimientos int = null
	,@ControlContrato int = null
	,@IdCartera int = null
	,@IdCia 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
	INSERT INTO [dbo].[Bodegas_Contratos]
           ([NumeroContrato]
           ,[FechaContrato]
           ,[HoraContrato]
           ,[FechaInicio]
           ,[HoraInicio]
           ,[FechaFin]
           ,[HoraFin]
           ,[IdCiudadOrigen]
           ,[IdSucursal]
           ,[IdCliente]
           ,[IdCotizacion]
           ,[IdOrdenServicio]
           ,[ValorContrato]
           ,[PorcentajeIVA]
           ,[ValorIVA]
           ,[ValorDeclarado]
		   ,[ValorPoliza]
           ,[IdPeriodicidad]
           ,[MesesPeriodo]
           ,[ValorTotal]
           ,[EstadoContrato]
           ,[Novedades]
           ,[PagoInicial]
           ,[CodigoEntrada]
           ,[CodigoSalida]
		   ,[Bloqueo]
		   ,[Movimientos]
		   ,[ControlContrato]
		   ,[IdCartera]
		   ,[IdCia])
     VALUES
           (@NumeroContrato 
           ,@FechaContrato 
           ,@HoraContrato
           ,@FechaInicio 
           ,@HoraInicio
           ,@FechaFin 
           ,@HoraFin
           ,@IdCiudadOrigen
           ,@IdSucursal
           ,@IdCliente
           ,@IdCotizacion 
           ,@IdOrdenServicio 
           ,@ValorContrato
           ,@PorcentajeIVA
           ,@ValorIVA
           ,@ValorDeclarado
		   ,@ValorPoliza
           ,@IdPeriodicidad
		   ,@MesesPeriodo
           ,@ValorTotal
           ,@EstadoContrato
           ,@Novedades
           ,@PagoInicial
           ,@CodigoEntrada
           ,@CodigoSalida
		   ,@Bloqueo
		   ,@Movimientos
		   ,@ControlContrato
		   ,@IdCartera
		   ,@IdCia)

END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodegas]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 06/10/2021
-- Description:	Guardar Bodega
-- =============================================
CREATE   PROCEDURE [dbo].[spInsertBodegas]
	-- Add the parameters for the stored procedure here
	@IdSucursal int = null,
	@Nombre varchar(125) = null,
	@Capacidad numeric(18,2) = null,
	@IdUnidad int = null,
	@Largo numeric(18,2) = null,
	@Ancho numeric(18,2) = null,
	@Alto numeric(18,2) = null,
	@Estado varchar(2) = null,
	@Disponible numeric(18,2) = null,
	@CodSyscom varchar(4) = null,
	@ValorBodega decimal(18,2) = null,
	@Ocupacion numeric(18,2) = null,
	@CapacidadFinal numeric(18,2) = null,
	@IdTarifaBodega 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
	INSERT INTO [dbo].[Bodegas]
		([IdSucursal]
		,[Nombre]
		,[Capacidad]
		,[IdUnidad]
		,[Largo]
		,[Ancho]
		,[Alto] 
		,[Estado]
		,[Disponible]
		,[CodSyscom]
		,[ValorBodega]
		,[Ocupacion]
		,[CapacidadFinal]
		,[IdTarifaBodega])
		 
	VALUES(@IdSucursal
		  ,@Nombre
		  ,@Capacidad
		  ,@IdUnidad
		  ,@Largo
		  ,@Ancho
		  ,@Alto
		  ,@Estado
		  ,@Disponible
		  ,@CodSyscom
		  ,@ValorBodega
		  ,@Ocupacion
		  ,@CapacidadFinal
		  ,@IdTarifaBodega)
	
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodEstadoCuentas]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 15/01/2023
-- Description:	Insertar Estado de Cuentas
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodEstadoCuentas] 
	-- Add the parameters for the stored procedure here
	@IdContrato int = null,
    @IdCartera int = null,
    @IdCliente int = null,
    @Desde varchar(10) = null,
    @Hasta varchar(10) = null,
    @ValorBodega numeric(18,0) = null,
    @ValorSeguro numeric(18,0) = null,
    @ValorIva numeric(18,0) = null,
    @ValorBaseCuenta numeric(18,0) = null,
    @ValorIpcCuenta numeric(18,0) = null,
    @ValorIvaCuenta numeric(18,0) = null,
    @MesesMora int = null,
    @VrSancionCuenta numeric(18,0) = null,
    @VrDeudaMes numeric(18,0) = null,
    @VrAbonoDeuda numeric(18,0) = null,
    @VrSaldoDeuda numeric(18,0) = null,
    @VrDeudaAcumulada numeric(18,0) = null,
    @CtrlPago int = null,
    @CtrlCuota int = null,
	@PorcentajeIpc numeric(18, 2) = 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
	INSERT INTO [dbo].[Bodegas_EstadoCuentas]
           ([IdContrato]
           ,[IdCartera]
           ,[IdCliente]
           ,[Desde]
           ,[Hasta]
           ,[ValorBodega]
           ,[ValorSeguro]
           ,[ValorIva]
           ,[ValorBaseCuenta]
           ,[ValorIpcCuenta]
           ,[ValorIvaCuenta]
           ,[MesesMora]
           ,[VrSancionCuenta]
           ,[VrDeudaMes]
           ,[VrAbonoDeuda]
           ,[VrSaldoDeuda]
           ,[VrDeudaAcumulada]
           ,[CtrlPago]
           ,[CtrlCuota]
		   ,[PorcentajeIpc])
     VALUES
           (@IdContrato
           ,@IdCartera
           ,@IdCliente
           ,@Desde
           ,@Hasta
           ,@ValorBodega
           ,@ValorSeguro
           ,@ValorIva
           ,@ValorBaseCuenta
           ,@ValorIpcCuenta
           ,@ValorIvaCuenta
           ,@MesesMora
           ,@VrSancionCuenta
           ,@VrDeudaMes
           ,@VrAbonoDeuda
           ,@VrSaldoDeuda
           ,@VrDeudaAcumulada
           ,@CtrlPago
           ,@CtrlCuota
		   ,@PorcentajeIpc)
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodIPC]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 2023-12-20
-- Description:	Guardar Bodega IPC
-- ===============================================
CREATE PROCEDURE [dbo].[spInsertBodIPC] 
	-- Add the parameters for the stored procedure here
	@Valor decimal(18,2) = null,
    @Ano int = null,
    @Puntos decimal(18,2) = null,
    @EstadoIPC 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
	INSERT INTO [dbo].[Bodegas_IPC]
           ([Valor]
           ,[Ano]
           ,[Puntos]
           ,[EstadoIPC]
		   ,[Clase])
     VALUES
           (@Valor
           ,@Ano
           ,@Puntos
           ,@EstadoIPC
		   ,0)
END



GO
/****** Object:  StoredProcedure [dbo].[spInsertBodKardex]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 26/03/2023
-- Description:	Insertar Kardex
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodKardex]
	-- Add the parameters for the stored procedure here
	@Opcion int,
	@IdCont_Articulo int = null,
	@IdContrato int = null,
	@IdCotizacion Int = null,
	@IdArticulo int = null,
	@Nombre varchar(125) = null,
    @Descripcion varchar(255) = null,
    @Cantidad varchar(10) = null,
	@EstadoArticulo varchar(2) = null,
	@Memorando varchar(50) = null,
	@Cant_Total varchar(10) = null,
	@Revisado 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 @Opcion = 1  -- Crea los Articulo en el Kardex -proceso se hace una sola vez
		BEGIN
			INSERT INTO [dbo].[Bodegas_KardexArticulos]
				   ([IdCont_Articulo]
				   ,[IdContrato]
				   ,[IdCotizacion]
				   ,[IdArticulo]
				   ,[Nombre]
				   ,[Descripcion]
				   ,[Cantidad]
				   ,[EstadoArticulo]
				   ,[Memorando]
				   ,[Revisado])
     
			 VALUES
				   (@IdCont_Articulo,
					@IdContrato, 
					@IdCotizacion, 
					@IdArticulo, 
					@Nombre, 
					@Descripcion, 
					@Cantidad,
					@EstadoArticulo,
					@Memorando,
					@Revisado)

			--Actulizar Movimiento en Contratos
			UPDATE [dbo].[Bodegas_Contratos] SET Movimientos = 1 WHERE IdContrato   = @IdContrato
		END

	IF @Opcion = 2  -- Crea el articulo en contratos y en kardex
		BEGIN
			--Crear el articulo en Contratos-Articulos
			INSERT INTO [dbo].[Bodegas_ContratoArticulos]
				   ([IdContrato]
				   ,[IdCotizacion]
				   ,[IdArticulo]
				   ,[Nombre]
				   ,[Descripcion]
				   ,[Cantidad]
				   ,[EstadoArticulo]
				   ,[Memorando])
     
			 VALUES
				   (@IdContrato, 
					@IdCotizacion, 
					@IdArticulo, 
					@Nombre, 
					@Descripcion, 
					@Cantidad,
					@EstadoArticulo,
					@Memorando)

			--Extraer el ultimo registro.
			SET @IdCont_Articulo = (SELECT MAX(IdCont_Articulo) FROM [dbo].[Bodegas_ContratoArticulos]);

			--Crear el articulo en el Kardex
			INSERT INTO [dbo].[Bodegas_KardexArticulos]
				   ([IdCont_Articulo]
				   ,[IdContrato]
				   ,[IdCotizacion]
				   ,[IdArticulo]
				   ,[Nombre]
				   ,[Descripcion]
				   ,[Cantidad]
				   ,[EstadoArticulo]
				   ,[Memorando]
				   ,[Revisado])
     
			 VALUES
				   (@IdCont_Articulo,
					@IdContrato, 
					@IdCotizacion, 
					@IdArticulo, 
					@Nombre, 
					@Descripcion, 
					@Cantidad,
					@EstadoArticulo,
					@Memorando,
					@Revisado)
		END

	IF @Opcion = 3  -- Creo el articulo en el Kardex y Actualizo Inventario
		BEGIN
			INSERT INTO [dbo].[Bodegas_KardexArticulos]
				   ([IdCont_Articulo]
				   ,[IdContrato]
				   ,[IdCotizacion]
				   ,[IdArticulo]
				   ,[Nombre]
				   ,[Descripcion]
				   ,[Cantidad]
				   ,[EstadoArticulo]
				   ,[Memorando]
				   ,[Revisado])
     
			 VALUES
				   (@IdCont_Articulo,
					@IdContrato, 
					@IdCotizacion, 
					@IdArticulo, 
					@Nombre, 
					@Descripcion, 
					@Cantidad,
					@EstadoArticulo,
					@Memorando,
					@Revisado)

			--Actulizar Movimiento en Contratos
			UPDATE [dbo].[Bodegas_ContratoArticulos] SET Cantidad = @Cant_Total WHERE IdArticulo   = @IdArticulo
		END
END
GO
/****** Object:  StoredProcedure [dbo].[spInsertBodPagos]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Sergio Rendón Gómez
-- Create date: 05/12/2022
-- Description:	Guardar Pagos Cartera
-- =============================================
CREATE PROCEDURE [dbo].[spInsertBodPagos] 
	-- Add the parameters for the stored procedure here
	 @IdContrato int = null 
    ,@IdCartera int = null 
    ,@IdCotizacion int = null 
    ,@IdCliente int = null 
    ,@Compania int = null 
    ,@FechaFactura varchar(10) = null 
    ,@HoraFactura varchar(8) = null 
    ,@FacturaNum int = null 
	,@CiaFactura int = null
    ,@ReciboNum int = null 
	,@CiaRecibo int = null
    ,@ValorBodega numeric(18,0) = null 
    ,@ValorSeguro numeric(18,0) = null 
    ,@ValorIva numeric(18,0) = null 
    ,@VrTotalBodega numeric(18,0) = null 
    ,@VrEmpaque numeric(18,0) = null 
    ,@VrServLocal numeric(18,0) = null 
    ,@VrServNacional numeric(18,0) = null 
    ,@VrSeguroTrans numeric(18,0) = null 
    ,@ValorTotal numeric(18,0) = null 
    ,@VrDescuento numeric(18,0) = null 
    ,@ValorSaldo numeric(18,0) = null 
    ,@PeriodoIni varchar(10) = null 
    ,@PeriodoFin varchar(10) = null 
    ,@IdFormaPago int = null 
    ,@IdMedioPago int = null 
    ,@EstadoPago int = null 
	,@ObservaPago varchar(max) = null
    ,@FacturaPago varchar(max) = null
    ,@ReciboPago varchar(max) = null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Declarar Variables
	DECLARE  @IdPago int
			,@MesesPago int 
			,@DiasPago int 
    
	-- Insert statements for procedure here
	SELECT @MesesPago = DATEDIFF(MONTH, @PeriodoIni, @PeriodoFin)
		  ,@DiasPago  = DATEDIFF(DAY, @PeriodoIni, @PeriodoFin)

	INSERT INTO [dbo].[Bodegas_Pagos]
           ([IdContrato]
           ,[IdCartera]
           ,[IdCotizacion]
           ,[IdCliente]
           ,[Compania]
           ,[FechaFactura]
           ,[HoraFactura]
           ,[FacturaNum]
		   ,[CiaFactura]
           ,[ReciboNum]
		   ,[CiaRecibo]
           ,[ValorBodega]
           ,[ValorSeguro]
           ,[ValorIva]
           ,[VrTotalBodega]
           ,[VrEmpaque]
           ,[VrServLocal]
           ,[VrServNacional]
           ,[VrSeguroTrans]
           ,[ValorTotal]
           ,[VrDescuento]
           ,[ValorSaldo]
           ,[PeriodoIni]
           ,[PeriodoFin]
           ,[DiasPago]
           ,[MesesPago]
           ,[IdFormaPago]
           ,[IdMedioPago]
           ,[EstadoPago])
     VALUES
           (@IdContrato
           ,@IdCartera
           ,@IdCotizacion
           ,@IdCliente
           ,@Compania
           ,@FechaFactura
           ,@HoraFactura
           ,@FacturaNum
		   ,@CiaFactura
           ,@ReciboNum
		   ,@CiaRecibo
           ,@ValorBodega
           ,@ValorSeguro
           ,@ValorIva
           ,@VrTotalBodega
           ,@VrEmpaque
           ,@VrServLocal
           ,@VrServNacional
           ,@VrSeguroTrans
           ,@ValorTotal
           ,@VrDescuento
           ,@ValorSaldo
           ,@PeriodoIni
           ,@PeriodoFin
           ,@DiasPago
           ,@MesesPago
           ,@IdFormaPago
           ,@IdMedioPago
           ,@EstadoPago)

	SET @IdPago = (SELECT MAX(IdPago) FROM [dbo].[Bodegas_Pagos]);

	INSERT INTO [dbo].[Bodegas_PagosAnexos]
           ([IdPago]
		   ,[IdContrato]
           ,[IdCartera]
           ,[ObservaPago]
           ,[FacturaPago]
           ,[ReciboPago])
     VALUES
           (@IdPago
		   ,@IdContrato
           ,@IdCartera
           ,@ObservaPago
           ,@FacturaPago
           ,@ReciboPago)
END


GO
/****** Object:  StoredProcedure [dbo].[spInsertCartera]    Script Date: 04/02/2025 11:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		JUAN ANDRES MARTINEZ
-- Create date: ENERO 2023
-- Description:	Insertar Cartera
-- =============================================
