USE GLPLUGINS
GO
SET DATEFORMAT YMD;

-- VER. 1.0.0.18

-- SP_OBTENERCERTIFICADOREGALOMINUTA
	DROP PROCEDURE IF EXISTS [dbo].[SP_OBTENERCERTIFICADOREGALOMINUTA]
	GO

	SET ANSI_NULLS ON
	GO
	SET QUOTED_IDENTIFIER ON
	GO
	-- =============================================
	-- Author:		EChevez
	-- Create date: 2022-08-08
	-- Update date: 2022-08-08
	-- Description:	Obtener certificado de regalo de minuta
	-- =============================================
	CREATE PROCEDURE [dbo].[SP_OBTENERCERTIFICADOREGALOMINUTA] 
		@SALA SMALLINT, 
		@MESA INT,
		@CODCLIENTE INT
	AS
	BEGIN
		SET NOCOUNT ON;

		DECLARE @IDMINUTA BIGINT;
		DECLARE @FECHAINI DATETIME;


		SELECT @IDMINUTA = ISNULL(IDMINUTA, 0),
		@FECHAINI = FECHAINI
		FROM [ICGFRONTREST].[DBO].[MINUTASCAB] 
		WHERE SALA = @SALA 
		AND MESA = @MESA 
		AND CODCLIENTE = @CODCLIENTE;

		IF @IDMINUTA = 0 
		BEGIN
			RAISERROR('No se pudo encontrar la MINUTA asociada al CERTIFICADO DE REGALO.', 16, 217);
			RETURN;
		END
		
		SELECT IDMINUTA, 
		IDCERTIFICADOREGALO, 
		FO, 
		SERIE, 
		NUMERO,
		N,
		IDTIPOTRANSACCION, 
		FECHA, 
		MONTO, 
		PROCESADO, 
		ANULADO,
		SALDO 
		FROM CERTIFICADOSREGALOMINUTAS 
		WHERE IDMINUTA = @IDMINUTA 
		OR FECHA = @FECHAINI;
	END
	GO
-- END SP_OBTENERCERTIFICADOREGALOMINUTA

-- SP_OBTENERMEMBRESIAMINUTA
	DROP PROCEDURE IF EXISTS [dbo].[SP_OBTENERMEMBRESIAMINUTA]
	GO

	SET ANSI_NULLS ON
	GO
	SET QUOTED_IDENTIFIER ON
	GO
	-- =============================================
	-- Author:		EChevez
	-- Create date: 2022-08-08
	-- Update date: 2022-08-08
	-- Description:	Obtener membresía de minuta
	-- =============================================
	-- [dbo].[SP_OBTENERMEMBRESIAMINUTA] 0, 1, 0
	CREATE PROCEDURE [dbo].[SP_OBTENERMEMBRESIAMINUTA] 
		@SALA SMALLINT, 
		@MESA INT,
		@CODCLIENTE INT
	AS
	BEGIN
		SET NOCOUNT ON;

		DECLARE @IDMINUTA BIGINT;
		DECLARE @FECHAINI DATETIME;


		SELECT @IDMINUTA = ISNULL(IDMINUTA, 0),
		@FECHAINI = FECHAINI
		FROM [ICGFRONTREST].[DBO].[MINUTASCAB] 
		WHERE SALA = @SALA 
		AND MESA = @MESA 
		AND CODCLIENTE = @CODCLIENTE;

		IF @IDMINUTA = 0 
		BEGIN
			RAISERROR('No se pudo encontrar la MINUTA asociada a la MEMBRESIA.', 16, 217);
			RETURN;
		END
		
		SELECT IDMINUTA, 
		IDCLIENTE, 
		DOCUMENTO, 
		MEMBRESIA, 
		FO, 
		SERIE, 
		NUMERO,
		N,
		FECHA, 
		TOKENCANJE, 
		SALDOPUNTOS, 
		SALDODINERO,
		MONTOPUNTOS,
		MONTODINERO, 
		PROCESADO, 
		ANULADO
		FROM MEMBRESIASMINUTAS 
		WHERE IDMINUTA = @IDMINUTA
		OR FECHA = @FECHAINI;
	END
	GO
-- END SP_OBTENERMEMBRESIAMINUTA

-- SP_OBTENEREMPLEADOMINUTA
	DROP PROCEDURE IF EXISTS [dbo].[SP_OBTENEREMPLEADOMINUTA]
	GO

	SET ANSI_NULLS ON
	GO
	SET QUOTED_IDENTIFIER ON
	GO
	-- =============================================
	-- Author:		EChevez
	-- Create date: 2025-11-26
	-- Update date: 2025-11-26
	-- Description:	Obtener empleado de minuta
	-- =============================================
	-- [dbo].[SP_OBTENEREMPLEADOMINUTA] 0, 1, 0
	CREATE PROCEDURE [dbo].[SP_OBTENEREMPLEADOMINUTA] 
		@SALA SMALLINT, 
		@MESA INT,
		@CODCLIENTE INT
	AS
	BEGIN
		SET NOCOUNT ON;

		DECLARE @IDMINUTA BIGINT;
		DECLARE @FECHAINI DATETIME;


		SELECT @IDMINUTA = ISNULL(IDMINUTA, 0),
		@FECHAINI = FECHAINI
		FROM [ICGFRONTREST].[DBO].[MINUTASCAB] 
		WHERE SALA = @SALA 
		AND MESA = @MESA 
		AND CODCLIENTE = @CODCLIENTE;

		IF @IDMINUTA = 0 
		BEGIN
			RAISERROR('No se pudo encontrar la MINUTA asociada a la MEMBRESIA.', 16, 217);
			RETURN;
		END
		
		SELECT IDMINUTA, 
		IDEMPLEADO, 
		DOCUMENTO, 
		PIN, 
		FO, 
		SERIE, 
		NUMERO,
		N,
		FECHA,
		TOKEN,
		SALDOCREDITO, 
		SALDOCUPON,
		SALDOMENSUAL,
		MONTOCREDITO,
		MONTOCUPON, 
		MONTOMENSUAL, 
		APLICACUPONCUMPLEANERO, 
		PROCESADO, 
		ANULADO
		FROM EMPLEADOSMINUTAS  
		WHERE IDMINUTA = @IDMINUTA 
		OR FECHA = @FECHAINI;
	END
	GO
-- END SP_OBTENEREMPLEADOMINUTA

-- SP_OBTENERCERTIFICADOREGALOMINUTATIQUET
	DROP PROCEDURE IF EXISTS [dbo].[SP_OBTENERCERTIFICADOREGALOMINUTATIQUET]
	GO

	SET ANSI_NULLS ON
	GO
	SET QUOTED_IDENTIFIER ON
	GO
	-- =============================================
	-- Author:		EChevez
	-- Create date: 2022-08-08
	-- Update date: 2022-08-08
	-- Description:	Obtener certificado de regalo de minuta
	-- =============================================
	 -- [dbo].[SP_OBTENERCERTIFICADOREGALOMINUTATIQUET] 34, 'I001', 128, 'B'
	CREATE PROCEDURE [dbo].[SP_OBTENERCERTIFICADOREGALOMINUTATIQUET] 
		@FO INT,
		@SERIE VARCHAR(4), 
		@NUMERO INT,
		@N VARCHAR(1)
	AS
	BEGIN
		SET NOCOUNT ON;

		DECLARE @IDMINUTA BIGINT;
		DECLARE @FECHAINI DATETIME;

		SELECT @IDMINUTA = ISNULL(IDMINUTA, -1000), 
		@FECHAINI = FECHAINI 
		FROM [ICGFRONTREST].[DBO].[TIQUETSCAB] 
		WHERE FO = @FO 
		AND SERIE = @SERIE 
		AND NUMERO = @NUMERO 
		AND N = @N;
		
		SELECT IDMINUTA, 
		IDCERTIFICADOREGALO, 
		FO, 
		SERIE, 
		NUMERO,
		N,
		IDTIPOTRANSACCION, 
		FECHA, 
		MONTO, 
		PROCESADO, 
		ANULADO,
		SALDO
		FROM CERTIFICADOSREGALOMINUTAS 
		WHERE (IDMINUTA = @IDMINUTA
		OR FECHA = @FECHAINI)
		AND PROCESADO = 0
		AND ANULADO = 0;
	END
	GO
-- END SP_OBTENERCERTIFICADOREGALOMINUTATIQUET

-- SP_OBTENERMEMBRESIAMINUTATIQUET
	DROP PROCEDURE IF EXISTS [dbo].[SP_OBTENERMEMBRESIAMINUTATIQUET]
	GO

	SET ANSI_NULLS ON
	GO
	SET QUOTED_IDENTIFIER ON
	GO
	-- =============================================
	-- Author:		EChevez
	-- Create date: 2022-08-08
	-- Update date: 2022-08-08
	-- Description:	Obtener membresía de minuta
	-- =============================================
	-- [dbo].[SP_OBTENERMEMBRESIAMINUTATIQUET] 34, 'F001', 33873, 'B'
	CREATE PROCEDURE [dbo].[SP_OBTENERMEMBRESIAMINUTATIQUET] 
		@FO INT,
		@SERIE VARCHAR(4), 
		@NUMERO INT,
		@N VARCHAR(1)
	AS
	BEGIN
		SET NOCOUNT ON;

		DECLARE @IDMINUTA BIGINT;
		DECLARE @FECHAINI DATETIME;

		SELECT @IDMINUTA = ISNULL(IDMINUTA, -1000), 
		@FECHAINI = FECHAINI 
		FROM [ICGFRONTREST].[DBO].[TIQUETSCAB] 
		WHERE FO = @FO 
		AND SERIE = @SERIE 
		AND NUMERO = @NUMERO 
		AND N = @N;
		
		SELECT IDMINUTA, 
		IDCLIENTE, 
		DOCUMENTO, 
		MEMBRESIA, 
		FO, 
		SERIE, 
		NUMERO,
		N,
		FECHA, 
		TOKENCANJE,
		SALDOPUNTOS, 
		SALDODINERO,
		MONTOPUNTOS,
		MONTODINERO, 
		PROCESADO, 
		ANULADO
		FROM MEMBRESIASMINUTAS 
		WHERE (IDMINUTA = @IDMINUTA
		OR FECHA = @FECHAINI)
		AND PROCESADO = 0
		AND ANULADO = 0;
	END
	GO
-- END SP_OBTENERMEMBRESIAMINUTATIQUET

-- SP_OBTENEREMPLEADOMINUTATIQUET
	DROP PROCEDURE IF EXISTS [dbo].[SP_OBTENEREMPLEADOMINUTATIQUET]
	GO

	SET ANSI_NULLS ON
	GO
	SET QUOTED_IDENTIFIER ON
	GO
	-- =============================================
	-- Author:		EChevez
	-- Create date: 2022-08-08
	-- Update date: 2022-08-08
	-- Description:	Obtener certificado de regalo de minuta
	-- =============================================
	 -- [dbo].[SP_OBTENEREMPLEADOMINUTATIQUET] 34, 'I001', 130, 'B'
	CREATE PROCEDURE [dbo].[SP_OBTENEREMPLEADOMINUTATIQUET] 
		@FO INT,
		@SERIE VARCHAR(4), 
		@NUMERO INT,
		@N VARCHAR(1)
	AS
	BEGIN
		SET NOCOUNT ON;

		DECLARE @IDMINUTA BIGINT;
		DECLARE @FECHAINI DATETIME;

		SELECT @IDMINUTA = ISNULL(IDMINUTA, -1000), 
		@FECHAINI = FECHAINI 
		FROM [ICGFRONTREST].[DBO].[TIQUETSCAB] 
		WHERE FO = @FO 
		AND SERIE = @SERIE 
		AND NUMERO = @NUMERO 
		AND N = @N;
		
		SELECT IDMINUTA, 
		IDEMPLEADO,
		DOCUMENTO,
		PIN,
		FO, 
		SERIE, 
		NUMERO,
		N,
		FECHA, 
		TOKEN,
		SALDOCREDITO,
		SALDOCUPON, 
		SALDOMENSUAL, 
		MONTOCREDITO,
		MONTOCUPON, 
		MONTOMENSUAL,
		APLICACUPONCUMPLEANERO,
		PROCESADO, 
		ANULADO
		FROM EMPLEADOSMINUTAS 
		WHERE (IDMINUTA = @IDMINUTA
		OR FECHA = @FECHAINI)
		AND PROCESADO = 0
		AND ANULADO = 0;
	END
	GO
-- END SP_OBTENEREMPLEADOMINUTATIQUET