Está en la página 1de 45

ANEXO 1 1) Descripcin: Trabajos para la puesta en marcha y configuracin del sistema para la entrega de datos de configuracin y la insercin de las

ventas y reservas realizadas por externos por internet, as como las pruebas con el proveedor externo del Museo Nacional del Prado Incluye procedimientos almacenados especficos. 2) Importe total del servicio: 3) Procedimientos especficos: La descripcin de los procedimientos realizada en el presente documento tiene como finalidad dar a conocer a los posibles licitadores el alcance de los trabajos a realizar. Estn sujetos modificaciones por necesidades del Museo Nacional del Prado tanto en la cantidad de procedimientos como en su contenido. Se realizarn modificaciones conjuntamente con la empresa adjudicataria por sus necesidades de adaptacin. Estas modificaciones no pueden suponer un cambio fundamental en dichos procedimientos, sino una adaptacin para facilitar la puesta en servicio. Los procedimientos son: 8.600,00 (IVA no incluido).

1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.-

pcInternetExControlTotalReservas pcInternetExControlTotalVentas pcInternetExtActualizaAnulaReserva pcInternetExtActualizaConfirmarVenta pcInternetExtActualizaFechaCabeceraVenta_Reserva pcInternetExtActualizaFechaRecintosVenta_Reserva pcInternetExtActualizaReservaVendida pcInternetExtActualizaSesionReservada pcInternetExtActualizaSesionVendida pcInternetExtBorradoVenta_Reserva pcInternetExtDatosActualizarVenta_Reserva pcInternetExtDatosComercio pcInternetExtDatosComprobarVenta PcInternetExtDatosContadorReservas pcInternetExtDatosDivisaPrimariaSistema pcInternetExtDatosEntradasInternet pcInternetExtDatosIdTipoReservaInternet
1

18.19.20.21.22.23.24.25.26.27.28.29.-

PcInternetExtDatosIdTipoReservaNOInternet pcInternetExtDatosRecintosDeUnaEntrada PcInternetExtDatosSesionesReservas pcInternetExtDatosSesionesVentas pcInternetExtInsercionCabeceraReserva pcInternetExtInsercionCabeceraVenta pcInternetExtInsercionContacto pcInternetExtInsercionFilasVenta pcInternetExtInsercionFilasVenta_Reserva pcInternetExtInsercionListasBlancasVenta pcInternetExtInsercionRecintosVenta pcInternetExtInsercionRecintosVenta_Reserva

1.- pcInternetExControlTotalReservas
/****** Objeto: StoredProcedure [dbo].[pcInternetExControlTotalReservas] Fecha de la secuencia de comandos: 04/22/2010 16:48:34 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExControlTotalReservas]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExControlTotalReservas] /****** Objeto: StoredProcedure [dbo].[pcInternetExControlTotalReservas] Fecha de la secuencia de comandos: 04/22/2010 16:48:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve los datos de reservas realizadas entre un periodo de fechas PARAMETROS ENTRADA: @FechaInicio -- Fecha de inicio de consulta @FechaFin -- Fecha de fin de consulta @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error NumTickets NumPlazas PrecioTotal ****/ CREATE PROCEDURE pcInternetExControlTotalReservas ( @FechaInicio as varchar(10), @FechaFin as varchar(10), @Nombre as varchar(50), @Contrasena as varchar(8) ) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN

/*select ISNULL(sum(numtickets),0) as NumTickets, ISNULL(sum(NumPlazas),0) as NumPlazas, ltrim(str(ISNULL(SUM(preciototal),0) ,15,2)) as PrecioTotal from( SELECT DISTINCT COUNT(DISTINCT re.PKId) AS NumTickets, ISNULL(re.siNumEntradas, 0) AS NumPlazas, ISNULL(re.fTotalReserva,0) AS PrecioTotal*/ SELECT DISTINCT COUNT(DISTINCT PKId) AS NumTickets ,ISNULL(sum(NumPlazas),0) as NumPlazas ,ltrim(str(ISNULL(SUM(PrecioTotal),0) ,15,2)) as PrecioTotal FROM( SELECT DISTINCT re.PKId,

ISNULL(re.siNumEntradas, 0) AS NumPlazas, ISNULL(re.fTotalReserva,0) AS PrecioTotal FROM tbReservas re INNER JOIN tbClientes c ON re.iCodigoClienteId = c.pkId INNER JOIN tbClientesInternet ci ON c.iCodigoCliente = ci.iCodigoCliente INNER JOIN tbFilasAlbaranesReserva fr ON re.PKId = fr.iReservaId WHERE (re.dtFechaCreacion BETWEEN @FechaInicio + ' 00:00:00' and @Fechafin +' 23:59:59' and bAnulada=0 and bPagada=0 AND ci.chNombreCliente = @nombre and ci.chContrasena = @Contrasena and re.iTipoReservaId NOT IN (SELECT TipoReservaID FROM tbDatosInicioInternet) ) --GROUP BY re.siNumEntradas, re.fTotalReserva ) as Totales END

2.- pcInternetExControlTotalVentas
/****** Objeto: StoredProcedure [dbo].[pcInternetExControlTotalVentas] Fecha de la secuencia de comandos: 04/22/2010 16:38:55 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExControlTotalVentas]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExControlTotalVentas] /****** Objeto: StoredProcedure [dbo].[pcInternetExControlTotalVentas] Fecha de la secuencia de comandos: 04/22/2010 16:38:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve los datos de ventas realizadas entre un periodo de fechas PARAMETROS ENTRADA: @FechaInicio -- Fecha de inicio de consulta @FechaFin -- Fecha de fin de consulta @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error NumTickets NumPlazas PrecioTotal ****/ CREATE PROCEDURE pcInternetExControlTotalVentas ( @FechaInicio as varchar(10), @FechaFin as varchar(10), @Nombre as varchar(50), @Contrasena as varchar(8) ) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1

SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN /*select ISNULL(sum(numtickets),0) as NumTickets, ISNULL(sum(NumPlazas),0) as NumPlazas, ltrim(str(ISNULL(SUM(preciototal),0) ,15,2)) as PrecioTotal from( SELECT DISTINCT COUNT(DISTINCT re.PKId) AS NumTickets, ISNULL(re.siNumEntradas, 0) AS NumPlazas, ISNULL(re.fTotalReserva,0) AS PrecioTotal*/ SELECT DISTINCT ISNULL(COUNT(DISTINCT PKId),0) AS NumTickets ,ISNULL(sum(SINUMENTRADAS),0) as NumPlazas ,ltrim(str(ISNULL(SUM(FTOTALRESERVA),0) ,15,2)) as PrecioTotal FROM( select DISTINCT RE.PKID,(RE.SINUMENTRADAS),fTotalReserva FROM tbReservas re INNER JOIN tbClientes c ON re.iCodigoClienteId = c.pkId INNER JOIN tbClientesInternet ci ON c.iCodigoCliente = ci.iCodigoCliente INNER JOIN tbFilasAlbaranesReserva fr ON re.PKId = fr.iReservaId INNER JOIN tbDatosInicioInternet dii ON re.iTipoReservaid=dii.TipoReservaID WHERE (re.dtFechaCreacion BETWEEN @FechaInicio + ' 00:00:00' and @Fechafin +' 23:59:59' and bAnulada=0 and bPagada=1 AND ci.chNombreCliente = @nombre and ci.chContrasena = @Contrasena ) --GROUP BY re.siNumEntradas, re.fTotalReserva ) as Totales END

3.- pcInternetExtActualizaAnulaReserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaAnulaReserva] Fecha de la secuencia de comandos: 02/17/2010 15:12:25 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaAnulaReserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtActualizaAnulaReserva] /****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaAnulaReserva] comandos: 02/17/2010 13:18:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Anula una reserva segn el pkid recibido de la reserva PARAMETROS ENTRADA: @pkid -- Identificador de la reserva a anular @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtActualizaAnulaReserva] (@pkid as int, @Nombre as varchar(50), @Contrasena as varchar(8)) AS Fecha de la secuencia de

DECLARE @_error int /* Error producido en la transaccin */ DECLARE @_numeroFilas int /* Numero de filas afectadas */ declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena ) BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN TRAN UPDATE tbreservas SET bAnulada = 1 WHERE pkid = @pkid -- ------------------------------------------------------------------------------------------------------------- Recupero el codigo de error generado y el numero de filas afectadas -- -----------------------------------------------------------------------------------------------------------SELECT @_error = @@error , @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1 ) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN RETURN -1 END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN RETURN 0 END

4.- pcInternetExtActualizaConfirmarVenta
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaConfirmarVenta] Fecha de la secuencia de comandos: 02/17/2010 15:13:01 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaConfirmarVenta]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtActualizaConfirmarVenta] /****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaConfirmarVenta] comandos: 02/17/2010 13:19:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Actualiza una reserva a NO anulada y a SI pagada PARAMETROS ENTRADA: @chNombreReserva -Nombre de la reserva a anular @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtActualizaConfirmarVenta] (@chNombreReserva AS Varchar(20), @Nombre as varchar(50), @Contrasena as varchar(8)) Fecha de la secuencia de

AS DECLARE DECLARE DECLARE DECLARE @CodigoRetorno AS Int -@_error AS Int -@_numeroFilas AS Int -@return_status AS Int -Codigo de retorno a devolver Error producido en la transaccin Numero de filas afectadas Almacena el cdigo de retorno de los procedimientos

SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN UPDATE tbReservas SET bAnulada = 0, bPagada = 1 WHERE chNombreReserva = @chNombreReserva --COMPRUEBO SI HA HABIDO ERRORES -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error =@@error, @_numeroFilas = @@rowcount IF (@_error <> 0) OR (@_numeroFilas <> 1) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno = -1 RETURN @CodigoRetorno SELECT @CodigoRetorno END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN SET @CodigoRetorno=0 RETURN @CodigoRetorno SELECT @CodigoRetorno END

5.- pcInternetExtActualizaFechaCabeceraVenta_Reserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaFechaCabeceraVenta_Reserva] secuencia de comandos: 04/22/2010 14:33:32 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaFechaCabeceraVenta_Reserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtActualizaFechaCabeceraVenta_Reserva] /****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaFechaCabeceraVenta_Reserva] secuencia de comandos: 04/22/2010 14:32:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** Fecha de la

Fecha de la

DESCRIPCION: Actualiza la fecha de una reserva venta segun su clave y la fecha de origen PARAMETROS ENTRADA: @chClaveReserva -Nombre de la reserva a modificar @NuevaFecha -- Fecha que se va a insertar @AntiguaFecha -- Fecha actual de la reserva @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error PKID -- Identificador del registro modificado ****/ CREATE PROCEDURE [dbo].[pcInternetExtActualizaFechaCabeceraVenta_Reserva] (@chClaveReserva as varchar(20), -- clave de la reserva @NuevaFecha as datetime, --fecha nueva de la reserva @AntiguaFecha as datetime, --fecha anterior de la reserva @Nombre as varchar(50), @Contrasena as varchar(8)) AS DECLARE DECLARE DECLARE DECLARE @CodigoRetorno As int -- Codigo de retorno a devolver @_error As int -- Error producido en la transaccin @_numeroFilas As int -- Numero de filas afectadas @iPKId As int --devuelve elpkid de la reserva modificada

SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN UPDATE TbReservas set dtFechaHoraEntrada=@NuevaFecha where chClaveReserva=@chClaveReserva and dtFechaHoraEntrada=@AntiguaFecha -- Recupero el PKId de la reserva modificada

SELECT @iPKId=(select pkid from TbReservas where chClaveReserva=@chClaveReserva and dtFechaHoraEntrada=@NuevaFecha) -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error, @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas<>1) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno --RETURN @CodigoRetorno END

ELSE BEGIN --devuelvo el pkid --RETURN @iPKId -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN SELECT @iPKId AS PKID END

6.- pcInternetExtActualizaFechaRecintosVenta_Reserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaFechaRecintosVenta_Reserva] secuencia de comandos: 04/22/2010 14:43:46 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaFechaRecintosVenta_Reserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtActualizaFechaRecintosVenta_Reserva] Fecha de la

/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaFechaCabeceraVenta_Reserva] Fecha de la secuencia de comandos: 04/22/2010 14:32:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Actualiza la fecha de los recintos de una reserva venta segun el identificador de fila y el recinto PARAMETROS ENTRADA: @FilaReservaId -- id de la fila a modificar @Recintoid --id del recinto as modificar @NuevaFechaRecinto --Fecha y hora nueva a introducir @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error 0 ****/ CREATE PROCEDURE pcInternetExtActualizaFechaRecintosVenta_Reserva ( @FilaReservaId as int, @Recintoid as int, @NuevaFechaRecinto as datetime, @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE @CodigoRetorno DECLARE @_error DECLARE @_numeroFilas

As int

As int -- Codigo de retorno a devolver As int -- Error producido en la transaccin -- Numero de filas afectadas

SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN UPDATE tbFilasAlbaranesReservaRecintos set dtFechaEntrada=@NuevaFechaRecinto where idFilaAlbaranReserva=@FilaReservaId and idRecinto=@Recintoid

10

-- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error, @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas<>1) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN --devuelvo el pkid SET @CodigoRetorno=0 SELECT @CodigoRetorno -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN END GO

7.- pcInternetExtActualizaReservaVendida
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaReservaVendida] Fecha de la secuencia de comandos: 04/22/2010 16:56:43 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaReservaVendida]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtActualizaReservaVendida] /****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaReservaVendida] Fecha de la secuencia de comandos: 04/22/2010 16:56:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Actualiza la reserva como pagada (la convierte en venta) segun su clave PARAMETROS ENTRADA: @chClaveReserva -Clave de la reserva a modificar @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error0 ****/ CREATE PROCEDURE [dbo].[pcInternetExtActualizaReservaVendida] (@chClaveReserva as varchar(20), @Nombre as varchar(50), @Contrasena as varchar(8)) AS DECLARE @CodigoRetorno DECLARE @_error DECLARE @_numeroFilas As int -- Codigo de retorno a devolver As int -- Error producido en la transaccin -- Numero de filas afectadas

As int

DECLARE @TipoReservaID as int --id del tipo de reserva DECLARE @NombreTipoReserva as nvarchar(50) --nombre del tipo de reserva select @TipoReservaID = TipoReservaID from tbDatosInicioInternet

11

select @NombreTipoReserva = (select chNombreTipo from tbDatosInicioInternet inner join tbTiposReserva on tbTiposReserva.pkid = TipoReservaID) SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN UPDATE TbReservas set bPagada=1 ,iTipoReservaId=@TipoReservaID, chNombreTipoReserva=@NombreTipoReserva where chClaveReserva=@chClaveReserva -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error, @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas<>1) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN SET @CodigoRetorno=0 SELECT @CodigoRetorno -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN END GO

8.- pcInternetExtActualizaSesionReservada
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaSesionReservada] Fecha de la secuencia de comandos: 03/10/2010 12:57:43 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaSesionReservada]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtActualizaSesionReservada] /****** Objeto: StoredProcedure [dbo].[pcInternetActualizaSesionVendida] Fecha de la secuencia de comandos: 02/25/2010 11:30:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Actualiza las sesiones reservadas de un recinto para una fecha dada PARAMETROS ENTRADA:

12

@idRecinto -- Identificador del recinto, obtenido en el proc pcInternetExtDatosRecintosDeUnaEntrada.sql @idTipoSesion -- Identificador de la sesin, obtenido en el proc pcInternetExtDatosSesionesReservas.sql @sFechaHora -- Fecha y Hora de la sesin @iCantidad -- Cantidad total de entradas en la fecha y hora @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtActualizaSesionReservada] (@idRecinto as int, @idTipoSesion as int, @sFechaHora as varchar(19), @iCantidad as int, @Nombre as varchar(50), @Contrasena as varchar(8)) AS DECLARE @_error int /* Error producido en la transaccin */ DECLARE @_numeroFilas int /* Numero de filas afectadas */ declare @CodigoRetorno int -- Almacenar cdigo a devolver, ser -1 si hay error set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena ) BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN TRAN Update tbRecintosSesiones SET iReservadas= iReservadas + @iCantidad WHERE idRecinto= @idRecinto and idTiposesion=@idTipoSesion AND @sFechaHora BETWEEN dtFecha + dtHoraInicio AND (dtFecha + dtHorafin - '00:00:01') -- ------------------------------------------------------------------------------------------------------------- Recupero el codigo de error generado y el numero de filas afectadas -- -----------------------------------------------------------------------------------------------------------SELECT @_error = @@error , @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1 ) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN RETURN -1 END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN RETURN 0 END

9.- pcInternetExtActualizaSesionVendida
/****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaSesionVendida] Fecha de la secuencia de comandos: 03/10/2010 12:59:38 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtActualizaSesionVendida]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)

13

DROP PROCEDURE [dbo].[pcInternetExtActualizaSesionVendida] /****** Objeto: StoredProcedure [dbo].[pcInternetExtActualizaAnulaReserva] comandos: 02/25/2010 11:26:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Actualiza las sesiones vendidas de un recinto para una fecha dada

Fecha de la secuencia de

PARAMETROS ENTRADA: @idRecinto -- Identificador del recinto, obtenido en el proc pcInternetExtDatosRecintosDeUnaEntrada.sql @idTipoSesion -- Identificador de la sesin, obtenido en el proc pcInternetExtDatosSesionesVentas.sql @sFechaHora -- Fecha y Hora de la sesin @iCantidad -- Cantidad total de entradas en la fecha y hora @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtActualizaSesionVendida] (@idRecinto as int, @idTipoSesion as int, @sFechaHora as varchar(19), @iCantidad as int, @Nombre as varchar(50), @Contrasena as varchar(8)) AS DECLARE @_error int /* Error producido en la transaccin */ DECLARE @_numeroFilas int /* Numero de filas afectadas */ declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena ) BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN TRAN Update tbRecintosSesiones SET iVendidasInternet= iVendidasInternet + @iCantidad WHERE idRecinto= @idRecinto and idTiposesion=@idTipoSesion AND @sFechaHora BETWEEN dtFecha + dtHoraInicio AND (dtFecha + dtHorafin - '00:00:01') -- ------------------------------------------------------------------------------------------------------------- Recupero el codigo de error generado y el numero de filas afectadas -- -----------------------------------------------------------------------------------------------------------SELECT @_error = @@error , @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1 ) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN RETURN -1 END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores

14

COMMIT TRAN RETURN 0 END

10.- pcInternetExtBorradoVenta_Reserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtBorradoVenta_Reserva] Fecha de la secuencia de comandos: 06/02/2010 11:34:53 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtBorradoVenta_Reserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtBorradoVenta_Reserva] /****** Objeto: StoredProcedure [dbo].[pcInternetExtBorradoVenta_Reserva] comandos: 06/02/2010 11:34:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /***** DESCRIPCION: elimina completamente la Reserva/Venta cuya clave es el recibido como parametro. Ello implica que son actualizadas la cantidad de sersiones, eliminadas las filas de los recintos, eliminadas las filas del Albaran de reserva/venta, eliminada la cabecera de la reserva/venta y actualizado el contador de reservas/ventas. Para eliminar una reserva/venta, NO debe haber sido anulada, NO debe haber sido vendida y no debe haber pasado por el Control de Accesos PARAMETROS ENTRADA: @chClaveReserva -- Clave de la reserva/venta a eliminar @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno 0 si NO hay error -1 -2 -3 -4 -5 -6 -7 -8 -9 */ CREATE PROCEDURE [dbo].[pcInternetExtBorradoVenta_Reserva] (@chClaveReserva as varchar(20), @Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @iReservaId As int DECLARE @CodigoRetorno int /* Cdigo a devolver a la salida del procedimiento */ DECLARE @_error int /* Cdigo del error generado, si existe alguno */ DECLARE @_iNumFilasBorrar int -- Nmero de registros a borrar DECLARE @_numeroFilas int /* Nmero de filas afectadas */ -- Inicializo las variables SELECT @CodigoRetorno = 0 SELECT @iReservaId = (SELECT PKID FROM TbReservas where chClaveReserva= @chClaveReserva) SELECT @_iNumFilasBorrar = (SELECT Count(PKId) FROM tbFilasAlbaranesReserva WHERE iReservaId=@iReservaId) error: cliente incorrecto error: reserva vendida error: reserva anulada error: existe la clave en tbFichajes (ha pasado ya) error borrando la cantidad de sesiones de los recintos error borrando las filas de los recintos de la resrva error borrando las filas de la reserva error borrando la cabecera de la reserva error actualizando el contador de reservas Fecha de la secuencia de

15

--Relleno los cursores -- su cantidad de entradas, tipo de sesion y su fecha/hora de inicio de una reserva DECLARE @idRecinto as int DECLARE @dtFechaEntrada as varchar(19) DECLARE @idTipoSesion as int declare @iUnidades as int DECLARE CantidadRecintosSesines CURSOR FOR SELECT idRecinto, dtFechaEntrada,fr.idTipoSesion, sum(siunidades) as Unidades FROM tbReservas re inner join tbFilasAlbaranesReserva ar on (ar.iReservaId = re.pkId) INNER JOIN tbfilasalbaranesReservaRecintos fr ON (fr.idfilaAlbaranreserva=ar.pkid) WHERE re.pkid = @iReservaId group by idRecinto, dtFechaEntrada ,fr.idTipoSesion order by idrecinto ----los ids de las filas de la reserva -- y poder borrar las filas de los recintso tbFilasAlbaranesReservaRecintos DECLARE @idFilaAlbaranReserva as int DECLARE FilasAlbaranesReserva CURSOR FOR SELECT pkid from tbfilasAlbaranesReserva WHERE iReservaId=@iReservaId --Comprobaciones: exista el cte. que no haya sido anulada, --que no este vendida y que no haya pasado IF NOT EXISTS -- Compruebo que exista el cliente ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena ) BEGIN set @CodigoRetorno = -1 --SELECT @CodigoRetorno --RETURN @CodigoRetorno END ELSE -- compruebo que no este vendida BEGIN IF ( SELECT r.bVendida FROM tbReservas As r WHERE r.PKId = @iReservaId ) = 1 BEGIN SET @CodigoRetorno = - 2 -- reserva vendida --RETURN @CodigoRetorno END ELSE -- compruebo que no este anulada BEGIN IF ( SELECT r.bAnulada FROM tbReservas As r WHERE r.PKId = @iReservaId ) = 1 BEGIN SET @CodigoRetorno = - 3 -- reserva anulada --RETURN @CodigoRetorno END ELSE -- compruebo que no haya pasado BEGIN IF ( SELECT NTarjetaCiudad FROM tbFichajes WHERE NTarjetaCiudad = @chClaveReserva ) = @chClaveReserva BEGIN SET @CodigoRetorno = - 4 -- existe la clave en fichajes (ha pasado ya) --RETURN @CodigoRetorno END END END END -- Si hay errorees, en las comprobaciones, devuelvo el cdigo de retorno -- sino se empieza con la transaccion IF @CodigoRetorno<>0 BEGIN DEALLOCATE CantidadRecintosSesines DEALLOCATE FilasAlbaranesReserva SELECT @CodigoRetorno -- EXISTEN errores en las comprobacciones --RETURN @CodigoRetorno END ELSE -- NO hay error en las comprobaciones BEGIN -- Inicio la transaccion

16

BEGIN TRAN ----ACTUALIZAR cantidad en sesiones SELECT @_error = 0 OPEN CantidadRecintosSesines FETCH NEXT FROM CantidadRecintosSesines INTO @idRecinto, @dtFechaEntrada, @idTipoSesion, @iUnidades WHILE @@FETCH_STATUS = 0 AND @_error = 0 BEGIN IF @idTipoSesion=0 BEGIN UPDATE tbRecintosSesiones SET iReservadas= iReservadas - @iUnidades WHERE idRecinto= @idRecinto AND @dtFechaEntrada BETWEEN dtFecha + dtHoraInicio AND (dtFecha + (convert(varchar(8),DATEADD(n, -DATEDIFF(n, dtFecha + dtHoraInicio, dtFecha + dtHorafin ), dtHorafin),108))) END ELSE BEGIN UPDATE tbRecintosSesiones SET iReservadas= iReservadas - @iUnidades WHERE idTipoSesion= @idTipoSesion AND @dtFechaEntrada BETWEEN dtFecha + dtHoraInicio AND (dtFecha + (convert(varchar(8),DATEADD(n, -DATEDIFF(n, dtFecha + dtHoraInicio, dtFecha + dtHorafin ), dtHorafin),108))) END -- Se recupera el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error FETCH NEXT FROM CantidadRecintosSesines INTO @idRecinto, @dtFechaEntrada, @idTipoSesion, @iUnidades END --END de empezar a actualizar cantidades CLOSE CantidadRecintosSesines DEALLOCATE CantidadRecintosSesines -- si hay error en actualizar sesiones IF @_error <> 0 BEGIN ROLLBACK TRAN DEALLOCATE FilasAlbaranesReserva SET @CodigoRetorno = -5 --Error actualizar la cantidad de sesiones reservadas SELECT @CodigoRetorno --RETURN @CodigoRetorno END ELSE --NO hay error al actualizar las cantidades BEGIN SELECT @_error = 0 OPEN FilasAlbaranesReserva FETCH NEXT FROM FilasAlbaranesReserva INTO @idFilaAlbaranReserva WHILE @@FETCH_STATUS = 0 AND @_error = 0 BEGIN -- BEGIN borrar filas de recintos DELETE tbFilasAlbaranesReservaRecintos WHERE idFilaAlbaranReserva=@idFilaAlbaranReserva -- Se recupera el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error FETCH NEXT FROM FilasAlbaranesReserva INTO @idFilaAlbaranReserva END --END borrar filas de recintos CLOSE FilasAlbaranesReserva DEALLOCATE FilasAlbaranesReserva IF @_error <> 0 BEGIN ROLLBACK TRAN SET @CodigoRetorno = -6 --Error al borrar las filas de recintos SELECT @CodigoRetorno --RETURN @CodigoRetorno END ELSE -- NO hay error al borrar las filas de los recintos BEGIN -- Borro las Filas del Albarn de Reserva --------------------------------------------------------------DELETE FROM tbFilasAlbaranesReserva

17

WHERE tbFilasAlbaranesReserva.iReservaId = @iReservaId SELECT @_numeroFilas = @@rowcount SELECT @_error = @@error IF ( @_numeroFilas <> @_iNumFilasBorrar ) OR ( @_error <> 0 ) BEGIN ROLLBACK TRAN SET @CodigoRetorno = -7 --Error al elimnar las filas de la reserva SELECT @CodigoRetorno --RETURN @CodigoRetorno END ELSE -- NO hay error al borrar las filas de la reserva -- Borro la Reserva -------------------------------------------------------------------------------------------------IF @CodigoRetorno = 0 -- Si no se ha producido ningn error anteriormente BEGIN DELETE FROM tbReservas WHERE tbReservas.PKId = @iReservaId SELECT @_numeroFilas = @@rowcount SELECT @_error = @@error IF ( @_numeroFilas <> 1 ) OR ( @_error <> 0 ) BEGIN ROLLBACK TRAN SET @CodigoRetorno = -8 -- Error al eliminar la cabecera de reserva SELECT @CodigoRetorno --RETURN @CodigoRetorno END ELSE -- NO hay error al borrar la resrva BEGIN -- Actualizo el Contador de Reservas UPDATE tbContadorReservas SET iContadorReservas = (select max (inumreserva) from tbReservas) WHERE PKID=1 SELECT @_error = @@error ,@_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1) BEGIN ROLLBACK TRAN SET @CodigoRetorno = -9 SELECT @CodigoRetorno --RETURN @CodigoRetorno END ELSE -- NO hay error al actualizar el contador BEGIN COMMIT TRAN SELECT @CodigoRetorno --RETURN @CodigoRetorno END-- fin de actualizar el contador END -- fin de borrar la cabecera de resva END -- fin de borrar las filas de la reserva END -- fin de borrar las filas de los recintos END -- fin de actualizar las cantidades de las sesiones END -- fin de error en las comprobaciones

11.- pcInternetExtDatosActualizarVenta_Reserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosActualizarVenta_Reserva] Fecha de la secuencia de comandos: 04/22/2010 15:11:32 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosActualizarVenta_Reserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosActualizarVenta_Reserva]

18

/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosActualizarVenta_Reserva] secuencia de comandos: 04/22/2010 15:11:18 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /****

Fecha de la

DESCRIPCION: Devuelve los datos de las filas de una venta o reserva modificada segn el identificador de la venta o reserva PARAMETROS ENTRADA: @iAlbaranReservaId --id de la reserva modificada en tbReservas @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error FilaReservaId idRecinto ****/ CREATE PROCEDURE pcInternetExtDatosActualizarVenta_Reserva ( @iAlbaranReservaId AS int , @Nombre as varchar(50), @Contrasena as varchar(8) ) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN SELECT fr.pkid FilaReservaId, idRecinto from tbFilasAlbaranesReserva fr INNER JOIN tbRecintosTiposEntrada rte ON FR.iTipoEntradaId = rte.idTipoEntrada WHERE ireservaid=@iAlbaranReservaId END

12.- pcInternetExtDatosComercio
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosComercio] Fecha de la secuencia de comandos: 02/17/2010 15:13:32 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosComercio]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosComercio] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosComercio] comandos: 02/17/2010 12:19:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON Fecha de la secuencia de

19

GO /**** DESCRIPCION: Selecciona los datos del comercio y la validez de las entradas de internet PARAMETROS ENTRADA: @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error chNumeroComercio chClaveComercio iDiasValidezEntradas ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosComercio] (@Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN SELECT chNumeroComercio, chClaveComercio,iDiasValidezEntradas FROM tbDatosInicioInternet END

13.- pcInternetExtDatosComprobarVenta
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosComprobarVenta] Fecha de la secuencia de comandos: 02/17/2010 15:13:49 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosComprobarVenta]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosComprobarVenta] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosComprobarVenta] comandos: 02/17/2010 12:20:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO /**** DESCRIPCION: Selecciona la clave de la reserva PARAMETROS ENTRADA: @Localizador -- Clave de la reserva @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo Fecha de la secuencia de

20

PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error chclavereserva ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosComprobarVenta] (@Localizador as varchar(20), @Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN select distinct re.chclavereserva from tbreservas re inner join tbfilasalbaranesreserva fl on re.pkid = fl.ireservaid INNER JOIN tbFilasAlbaranesReservaRecintos far on fl.pkid=far.idfilaalbaranreserva INNER JOIN tbClientes c ON re.iCodigoClienteId = c.pkId INNER JOIN tbClientesInternet ci ON c.iCodigoCliente = ci.iCodigoCliente --INNER JOIN tbDatosInicioInternet di ON c.iCodigoCliente = di.ClienteID where chClaveReserva=@Localizador order by re.chclavereserva END

14.- PcInternetExtDatosContadorReservas
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosContadorReservas] Fecha de la secuencia de comandos: 02/17/2010 15:15:05 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosContadorReservas]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosContadorReservas] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosContadorReservas] comandos: 02/17/2010 12:01:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve el contardor actual de reservas PARAMETROS ENTRADA: @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error iContadorReservas ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosContadorReservas] (@Nombre as varchar(50), @Contrasena as varchar(8)) Fecha de la secuencia de

21

AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 begin SELECT iContadorReservas FROM tbContadorReservas end

15.- pcInternetExtDatosDivisaPrimariaSistema
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosDivisaPrimariaSistema] Fecha de la secuencia de comandos: 02/17/2010 15:15:23 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosDivisaPrimariaSistema]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosDivisaPrimariaSistema] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosDivisaPrimariaSistema] de comandos: 02/17/2010 12:34:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve el simbolo de la divisa primaria del sistema Fecha de la secuencia

PARAMETROS ENTRADA: @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error chsimbolo ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosDivisaPrimariaSistema] (@Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente

22

IF @CodigoRetorno=0 SELECT dv.chsimbolo FROM tbDatosInicio di INNER JOIN tbDivisas dv on di.siDivisaRefId=dv.pkid

16.- pcInternetExtDatosEntradasInternet
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosEntradasInternet] Fecha de la secuencia de comandos: 02/17/2010 15:15:41 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosEntradasInternet]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosEntradasInternet] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosEntradasInternet] comandos: 02/17/2010 12:36:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve las entradas vigentes a la venta por internet PARAMETROS ENTRADA: @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error pkid chNombreTipo chDescripcion precioSinIva precio inivelentrada dtFechaFin siCodigoTipoControl ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosEntradasInternet] (@Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 SELECT DISTINCT TE.pkid, TE.chNombreTipo, TE.chDescripcion, LTRIM(STR(TI.fPrecio / (1 + (TE.rIva/100)), 15, 2)) AS precioSinIva, LTRIM(STR(TI.fPrecio, 15, 2)) AS precio, TC.inivelentrada, TI.dtFechaFin, TC.siCodigoTipoControl Fecha de la secuencia de

23

FROM tbRecintosTiposEntrada RTE INNER JOIN tbRecintos RE ON RTE.idRecinto = RE.pkid INNER JOIN tbTiposEntrada TE INNER JOIN tbTarifasInternet TI ON TE.pkId = TI.iTipoEntradaId ON RTE.idTipoEntrada = TE.pkId INNER JOIN tbTiposControl TC ON TE.siCodigoTipoControl = TC.siCodigoTipoControl WHERE TI.dtFechaInicio <= GETDATE() AND TI.dtFechaFin >= GETDATE()

17.- pcInternetExtDatosIdTipoReservaInternet
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosIdTipoReservaInternet] Fecha de la secuencia de comandos: 03/11/2010 08:56:37 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosIdTipoReservaInternet]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosIdTipoReservaInternet] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosIdTipoReservaInternet] de comandos: 03/11/2010 08:56:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Selecciona el id del tipo de reserva para internet PARAMETROS ENTRADA: @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error TipoReservaID ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosIdTipoReservaInternet] (@Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN SELECT isnull(TipoReservaID,0) as TipoReservaID FROM tbDatosInicioInternet END Fecha de la secuencia

18.- PcInternetExtDatosIdTipoReservaNOInternet
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosIdTipoReservaNOInternet] secuencia de comandos: 03/11/2010 09:32:19 ******/ Fecha de la

24

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosIdTipoReservaNOInternet]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosIdTipoReservaNOInternet] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosIdTipoReservaNOInternet] Fecha de la secuencia de comandos: 03/11/2010 09:32:38 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Selecciona los id de los tipos de reserva que NO son de internet, para realizar reservas en la web PARAMETROS ENTRADA: @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error TipoReservaID ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosIdTipoReservaNOInternet] (@Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 BEGIN SELECT tbTiposReserva.PKId as TipoReservaID FROM tbTiposReserva WHERE PKID NOT IN (SELECT TipoReservaID FROM tbDatosInicioInternet) END

19.- pcInternetExtDatosRecintosDeUnaEntrada
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosRecintosDeUnaEntrada] Fecha de la secuencia de comandos: 02/17/2010 15:16:02 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosRecintosDeUnaEntrada]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosRecintosDeUnaEntrada] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosRecintosDeUnaEntrada] de comandos: 02/17/2010 12:53:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** Fecha de la secuencia

25

DESCRIPCION: Devuelve los ids de los recintos de una entrada PARAMETROS ENTRADA: @pkid -- Identificador de la entrada @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error idRecinto ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosRecintosDeUnaEntrada] --Devuelve los recintos de una entrada (@iTipoEntradaId as int, --pkid de la entrada que ha comprado el cliente @Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 SELECT distinct rte.idRecinto, case when isnull(idtiposesion,0) = 0 then 0 else 1 end as Disponibilidad FROM tbTiposEntrada te INNER JOIN tbRecintosTiposEntrada rte ON te.pkId = rte.idTipoEntrada left outer join tbrecintosSesiones on tbRecintosSesiones.idRecinto= rte.idRecinto WHERE te.pkid=@iTipoEntradaId /*SELECT idRecinto FROM tbTiposEntrada te INNER JOIN tbRecintosTiposEntrada rte ON te.pkId = rte.idTipoEntrada WHERE te.pkid=@iTipoEntradaId*/

20.- PcInternetExtDatosSesionesReservas
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosSesionesReservas] Fecha de la secuencia de comandos: 02/24/2010 15:57:22 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosSesionesReservas]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosSesionesReservas] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosSesionesReservas] comandos: 02/24/2010 15:57:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve los horarios y entradas disponibles de un recinto y fechas para reservar Fecha de la secuencia de

26

PARAMETROS ENTRADA: @IdRecinto -- Identificador del recinto a devolver @FechaInicio -- Fecha de inicio a consultar @FechaFin -- Fecha de fin a consultar @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error Hora Disponibles idTipoSesion ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosSesionesReservas] (@IdRecinto as int, @FechaInicio as varchar(10), @FechaFin as varchar(10), @Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 SELECT convert(varchar(5),dtHoraInicio,108) as Hora, isnull((iMaximoAforo - (iReservadas + iVendidas)),0) as Disponibles, idTipoSesion FROM tbRecintosSesiones WHERE idRecinto = @IdRecinto and dtFecha >= @FechaInicio and dtFecha <= @Fechafin order by idtiposesion,hora

21.- pcInternetExtDatosSesionesVentas
/****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosSesionesVentas] Fecha de la secuencia de comandos: 02/24/2010 15:58:11 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtDatosSesionesVentas]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtDatosSesionesVentas] /****** Objeto: StoredProcedure [dbo].[pcInternetExtDatosSesionesVentas] Fecha de la secuencia de comandos: 02/24/2010 15:58:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Devuelve los horarios y disponibles de un recinto y fechas para vender PARAMETROS ENTRADA: @IdRecinto -- Identificador del recinto a devolver @FechaInicio -- Fecha de inicio a consultar @FechaFin -- Fecha de fin a consultar

27

@Nombre Museo @Contrasena

-- Nombre del proveedor externo que realiza la venta por internet, facilitado por el -- Contrasea del proveedor externo, facilitado por el Museo

PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error Hora Disponibles idTipoSesion ****/ CREATE PROCEDURE [dbo].[pcInternetExtDatosSesionesVentas] (@IdRecinto as int, @FechaInicio as varchar(10), @FechaFin as varchar(10), @Nombre as varchar(50), @Contrasena as varchar(8)) AS declare @CodigoRetorno int -- Almacenar cdigo a devolver set @CodigoRetorno = 0 -- Iniciamos sin error -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 SELECT convert(varchar(5),dtHoraInicio,108) as Hora, isnull((iMaximoInternet - iVendidasInternet),0) as Disponibles, idTipoSesion FROM tbRecintosSesiones WHERE idRecinto = @IdRecinto and dtFecha >= @FechaInicio and dtFecha <= @Fechafin order by hora

22.- pcInternetExtInsercionCabeceraReserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionCabeceraReserva] Fecha de la secuencia de comandos: 03/11/2010 08:40:17 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionCabeceraReserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionCabeceraReserva] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta la cabecera de una reserva en la 'tbReservas' PARAMETROS ENTRADA: @TipoReservaID as int --id del tipo de reserva @NumEntradasTotal -- Nmero de entradas total que el cliente quiere comprar -- total entradas de la web @fecha --fecha de validez de las entradas (31/12/ao en curso 23:59:59) @bEntradasGratuitas --si el usuario ha seleccionado entradas gratuitas estar a 1 sino a 0 @fImporteInicial -- precio del total de la reserva sin iva

28

-- sumatorio (preciosbrutosentradas * cantidadFila) -- el preciosbrutosentradas sale de la consulta pcInternetExtDatosEntradasInternet.sql -- del campo precioSinIva, esto con cada entrada @fTotalReserva -- Importe total de la reserva @chClaveReserva -- clave de la reserva @chNombreReserva -- Nombre de reserva @chPersonaPago --nombre en la web + 1 apellido + 2 apellido @chTelefonoContacto -- Telfono de la web @chDomicilioContacto -- Direccin del cliente de la web @chLocalidadContacto -- Localidad del cliente de la web @chProvinciaContacto --Provincia del cliente de la web @chCPContacto -- Cdigo postal del cliente de la web @chPaisContacto -- Pas del cliente de la web @chEmail -- Correo del cliente de la web @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error PKID -- Identificador del registro creado ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionCabeceraReserva] ( @TipoReservaID as int, @NumEntradasTotal int , @fecha as datetime, @bEntradasGratuitas as int, @fImporteInicial as float, @fTotalReserva as float, @chClaveReserva as varchar(20), @chNombreReserva as varchar(20), @chPersonaPago as varchar(50), @chTelefonoContacto as varchar(30), @chDomicilioContacto as varchar(50), @chLocalidadContacto as varchar(50), @chProvinciaContacto as varchar(20), @chCPContacto as varchar(10), @chPaisContacto as varchar(50), @chEmail as varchar(50), @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE @ClienteInternet as int --id del cliente de internet (tbClientesInternet) DECLARE @chNombreContacto as varchar(50) -- nombre cte de la tabla clientes DECLARE @rDescuento as float--@rDescuento es el tanto por ciento de descuento del cliente --(suele ser 0 porque es un usuario no registrado) viene de la consulta ClientesInternet.sql DECLARE @bDescuento as int DECLARE @fTotalDescuento as float -- total del descuento de la reserva se hace sobre @fImporteInicial DECLARE @_NReserva as int --Guarda el contador de reservas+1 DECLARE @NombreTipoReserva as nvarchar(50) --nombre del tipo de reserva DECLARE @iReservaId as int --id de la reserva DECLARE @FormaPago as int --id de la forma de pago del cliente internet (tbClientesInternet) DECLARE @iPKId As int --devuelve elpkid de la reserva creada DECLARE @CodigoRetorno As int -- Codigo de retorno a devolver DECLARE @_error As int -- Error producido en la transaccin DECLARE @_numeroFilas As int -- Numero de filas afectadas DECLARE @return_status As int -- Almacena el cdigo de retorno de los procedimientos --*************** COMIENZO LOS INSERT ***************--------BEGIN -- 1 COMPROBACION -- Inicio el codigo de retorno a cero SELECT @CodigoRetorno = 0

29

-- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena ) BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN --Seleccionamos los datos del cliente de internet SELECT @ClienteInternet =c.pkid , @chNombreContacto =c.chNombreCliente, @rDescuento = rDescuento, @bDescuento = bDescuento,@FormaPago = c.iTipoPagoID FROM tbClientesInternet ci INNER JOIN tbClientes c ON ci.iCodigoCliente = c.iCodigoCliente WHERE ci.chNombreCliente = @nombre and chContrasena = @Contrasena select @fTotalDescuento =@fImporteInicial * (@rDescuento/100) --Selecciono el numero de reserva de la tbContadorReservas SELECT @_NReserva =(Select max(iContadorReservas)+1 from tbContadorReservas TABLOCKX where pkid=1) -- INSERCIN EN LA TABLA tbReservas select @NombreTipoReserva = (select chNombreTipo from tbTiposReserva where tbTiposReserva.pkid = @TipoReservaID) SELECT @iReservaId=(Select max(pkid) from tbReservas) select @fTotalDescuento =ltrim(str(@fTotalDescuento,15,2)) INSERT tbReservas (iNumReserva,chClaveReserva,chNombreReserva, iTipoReservaId, chNombreTipoReserva, siNumEntradas,dtFechaCreacion, bAnulada,bVendida, bPagada,bGenerarFactura, bEntradasGratuitas, bEntradasSinFecha,fImporteInicial,fTotalDescuento,fTotalReserva, iCodigoClienteId,rDescuento,bDescuento,iFormaPagoId,chNombreContacto,chPersonaPago, chTelefonoContacto,chDomicilioContacto,chLocalidadContacto, chProvinciaContacto,chCPContacto,chPaisContacto,chEmail, dtFechaHoraEntrada,dtHoraLlegada) VALUES (@_NReserva,@chClaveReserva,@chNombreReserva, @TipoReservaID,@NombreTipoReserva, @NumEntradasTotal,getdate(), '0','0', '0','0',@bEntradasGratuitas, '0',CONVERT(MONEY,@fImporteInicial,0),CONVERT(MONEY,@fTotalDescuento,0),CONVERT(MONEY,@fTotalRe serva,2), @ClienteInternet, @rDescuento, @bDescuento, @FormaPago,@chNombreContacto,@chPersonaPago, @chTelefonoContacto,@chDomicilioContacto,@chLocalidadContacto, @chProvinciaContacto,@chCPContacto,@chPaisContacto,@chEmail, @fecha,CONVERT(char(8), @fecha,108)) --COMPRUEBO SI HA HABIDO ERRORES -- Recupero el nmero de filas afectadas SELECT @_numeroFilas = @@rowcount -- Recupero el ID de la reserva introducida SELECT @iPKId = SCOPE_IDENTITY() IF @_numeroFilas=1 -- Si no ha habido errores ... BEGIN -- Actualizo el Contador de Reservas --EXECUTE @return_status = pcUpdContadorReservas --IF NOT @return_status = 0 SELECT @CodigoRetorno =-1---@return_status -- actualizo el cdigo de retorno para que se entere y deshaga la transaccin UPDATE tbContadorReservas SET iContadorReservas = @_NReserva WHERE PKId=1 -- Siempre va a ser el primer registro de la tabla SELECT @_numeroFilas = @@rowcount END -- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Recupero el codigo de error generado SELECT @_error = @@error IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1 ) OR ( @CodigoRetorno <> 0 )

30

BEGIN -- Deshago la transaccin, pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN --devuelvo el pkid SELECT @iPKId AS PKID -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN END END --1 COMPROBACION

23.- pcInternetExtInsercionCabeceraVenta
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionCabeceraVenta] Fecha de la secuencia de comandos: 03/11/2010 08:36:48 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionCabeceraVenta]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionCabeceraVenta] /****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionCabeceraVenta] comandos: 02/17/2010 14:52:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta la cabecera de una venta en la 'tbReservas' PARAMETROS ENTRADA: @NumEntradasTotal -- Nmero de entradas total que el cliente quiere comprar -- total entradas de la web @fecha -- fecha de las entradas @bEntradasGratuitas -- si el usuario ha seleccionado entradas gratuitas estar a 1 sino a 0 @fImporteInicial -- precio del total de la reserva sin iva -- sumatorio (preciosbrutosentradas * cantidadFila) -- el preciosbrutosentradas sale de la consulta pcInternetExtDatosEntradasInternet.sql -- del campo precioSinIva, esto con cada entrada @fTotalReserva -- Importe total de la venta @chClaveReserva -- clave de la venta @chNombreReserva -- Nombre de la venta @chPersonaPago -- nombre en la web + 1 apellido + 2 apellido @chTelefonoContacto -- Telfono de la web @chDomicilioContacto -- Direccin del cliente de la web @chLocalidadContacto -- Localidad del cliente de la web @chProvinciaContacto -- Provincia del cliente de la web @chCPContacto -- Cdigo postal del cliente de la web @chPaisContacto -- Pas del cliente de la web @chEmail -- Correo del cliente de la web @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETROS DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error PKID -- Identificador del registro creado ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionCabeceraVenta] Fecha de la secuencia de

31

( @NumEntradasTotal int , @fecha as datetime, @bEntradasGratuitas as int, @fImporteInicial as float, @fTotalReserva as float, @chClaveReserva as varchar(20), @chNombreReserva as varchar(20), @chPersonaPago as varchar(50), @chTelefonoContacto as varchar(30), @chDomicilioContacto as varchar(50), @chLocalidadContacto as varchar(50), @chProvinciaContacto as varchar(20), @chCPContacto as varchar(10), @chPaisContacto as varchar(50), @chEmail as varchar(50), @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE @ClienteInternet as int --id del cliente de internet (tbClientesInternet) DECLARE @chNombreContacto as varchar(50) -- nombre cte de la tabla clientes DECLARE @rDescuento as float--@rDescuento es el tanto por ciento de descuento del cliente --(suele ser 0 porque es un usuario no registrado) viene de la consulta ClientesInternet.sql DECLARE @bDescuento as int DECLARE @fTotalDescuento as float -- total del descuento de la reserva se hace sobre @fImporteInicial DECLARE @_NReserva as int --Guarda el contador de reservas+1 DECLARE @TipoReservaID as int --id del tipo de reserva DECLARE @NombreTipoReserva as nvarchar(50) --nombre del tipo de reserva DECLARE @iReservaId as int --id de la reserva DECLARE @FormaPago as int --id de la forma de pago del cliente internet (tbClientesInternet) DECLARE @iPKId As int --devuelve elpkid de la reserva creada DECLARE @CodigoRetorno As int -- Codigo de retorno a devolver DECLARE @_error As int -- Error producido en la transaccin DECLARE @_numeroFilas As int -- Numero de filas afectadas --DECLARE @return_status As int -- Almacena el cdigo de retorno de los procedimientos --*************** COMIENZO LOS INSERT ***************--------BEGIN -- 1 COMPROBACION -- Inicio el codigo de retorno a cero SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena ) BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN --Seleccionamos los datos del cliente de internet SELECT @ClienteInternet =c.pkid , @chNombreContacto =c.chNombreCliente, @rDescuento = rDescuento, @bDescuento = bDescuento,@FormaPago = c.iTipoPagoID FROM tbClientesInternet ci INNER JOIN tbClientes c ON ci.iCodigoCliente = c.iCodigoCliente WHERE ci.chNombreCliente = @nombre and chContrasena = @Contrasena select @fTotalDescuento =@fImporteInicial * (@rDescuento/100) --Selecciono el numero de reserva de la tbContadorReservas SELECT @_NReserva =(Select max(iContadorReservas)+1 from tbContadorReservas TABLOCKX where pkid=1) -- INSERCIN EN LA TABLA tbReservas select @TipoReservaID = TipoReservaID from tbDatosInicioInternet select @NombreTipoReserva = (select chNombreTipo from tbDatosInicioInternet inner join tbTiposReserva on tbTiposReserva.pkid = TipoReservaID)

32

SELECT @iReservaId=(Select max(pkid) from tbReservas) select @fTotalDescuento =ltrim(str(@fTotalDescuento,15,2)) INSERT tbReservas (iNumReserva,chClaveReserva,chNombreReserva, iTipoReservaId, chNombreTipoReserva, siNumEntradas,dtFechaCreacion, bAnulada,bVendida, bPagada,bGenerarFactura, bEntradasGratuitas, bEntradasSinFecha,fImporteInicial,fTotalDescuento,fTotalReserva, iCodigoClienteId,rDescuento,bDescuento,iFormaPagoId,chNombreContacto,chPersonaPago, chTelefonoContacto,chDomicilioContacto,chLocalidadContacto, chProvinciaContacto,chCPContacto,chPaisContacto,chEmail, dtFechaHoraEntrada,dtHoraLlegada) VALUES (@_NReserva,@chClaveReserva,@chNombreReserva, @TipoReservaID,@NombreTipoReserva, @NumEntradasTotal,getdate(), '0','0', '1','0',@bEntradasGratuitas, '0',CONVERT(MONEY,@fImporteInicial,0),CONVERT(MONEY,@fTotalDescuento,0),CONVERT(MONEY,@fTotalRe serva,2), @ClienteInternet, @rDescuento, @bDescuento, @FormaPago,@chNombreContacto,@chPersonaPago, @chTelefonoContacto,@chDomicilioContacto,@chLocalidadContacto, @chProvinciaContacto,@chCPContacto,@chPaisContacto,@chEmail, @fecha,CONVERT(char(8), @fecha,108)) --COMPRUEBO SI HA HABIDO ERRORES -- Recupero el nmero de filas afectadas SELECT @_numeroFilas = @@rowcount -- Recupero el ID de la reserva introducida SELECT @iPKId = SCOPE_IDENTITY() IF @_numeroFilas=1 -- Si no ha habido errores ... BEGIN -- Actualizo el Contador de Reservas --EXECUTE @return_status = pcUpdContadorReservas --IF NOT @return_status = 0 SELECT @CodigoRetorno =-1---@return_status -- actualizo el cdigo de retorno para que se entere y deshaga la transaccin UPDATE tbContadorReservas SET iContadorReservas = @_NReserva WHERE PKId=1 -- Siempre va a ser el primer registro de la tabla SELECT @_numeroFilas = @@rowcount END -- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Recupero el codigo de error generado SELECT @_error = @@error IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1 ) OR ( @CodigoRetorno <> 0 ) BEGIN -- Deshago la transaccin, pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN --devuelvo el pkid SELECT @iPKId AS PKID -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN END END --1 COMPROBACION

24.- pcInternetExtInsercionContacto
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionContacto] Fecha de la secuencia de comandos: 02/17/2010 15:19:34 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionContacto]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionContacto]

33

/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionContacto] comandos: 02/17/2010 14:57:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta los datos de un contacto en 'tbContactos'

Fecha de la secuencia de

PARAMETROS ENTRADA: @chContacto --nombre en la web @chApellido1 --1 apellido @chApellido2 --2 apellido @chEmail -- Correo del cliente de la web @chTelefono -- Telfono de la web @chDomicilio -- Direccin del cliente de la web @chLocalidad -- Localidad del cliente de la web @chProvincia --Provincia del cliente de la web @chCP -- Cdigo postal del cliente de la web @chPais -- Pas del cliente de la web @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error PKID -- Identificador del registro creado ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionContacto] ( @chContacto as varchar(50), @chApellido1 as varchar(50), @chApellido2 as varchar(50), @chEmail as varchar(50), @chTelefono as varchar(30), @chDomicilio as varchar(50), @chLocalidad as varchar(50), @chProvincia as varchar(20), @chCP as varchar(10), @chPais as varchar(50), @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE @chNombreCliente as varchar(50) -- nombre cte de la tabla clientes @iPKId As int --devuelve el pkid de la fila creada @CodigoRetorno As int -- Codigo de retorno a devolver @_error As int -- Error producido en la transaccin @_numeroFilas As int -- Numero de filas afectadas @return_status As int -- Almacena el cdigo de retorno de los procedimientos

--Seleccionamos los datos del cliente de internet SELECT @chNombreCliente =c.chNombreCliente FROM tbDatosInicioInternet di INNER JOIN tbClientes c ON di.ClienteID = c.iCodigoCliente --*************** COMIENZO LOS INSERT ***************--------BEGIN -- 1 COMPROBACION

34

-- Inicio el codigo de retorno a cero SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN -- INSERCIN EN LA TABLA tbContactos

INSERT tbContactos (chNombre, chContacto, chApellido1, chApellido2, chCIF, chEmail, chTelefono, chDomicilio, chLocalidad,chProvincia,chCP,chPais) VALUES (@chNombreCliente,@chContacto,@chApellido1,@chApellido2,'0', @chEmail, @chTelefono,@chDomicilio,@chLocalidad,@chProvincia,@chCP,@chPais) --COMPRUEBO SI HA HABIDO ERRORES -- Recupero el nmero de filas afectadas SELECT @_numeroFilas = @@rowcount -- Recupero el ID de la fila introducida SELECT @iPKId = SCOPE_IDENTITY() -- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Recupero el codigo de error generado SELECT @_error = @@error IF ( @_error <> 0 ) OR ( @_numeroFilas <> 1 ) OR ( @CodigoRetorno <> 0 ) BEGIN -- Deshago la transaccin, pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN --devuelvo el pkid SELECT @iPKId AS PKID -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN END END --1 COMPROBACION

35

25.- pcInternetExtInsercionFilasVenta
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionFilasVenta] Fecha de la secuencia de comandos: 02/17/2010 15:19:56 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionFilasVenta]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionFilasVenta] /****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionFilasVenta] Fecha de la secuencia de comandos: 02/17/2010 15:00:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta en la tbFilasAlbaranesREserva, los datos de cada una de las filas de la venta/reserva. Se realizar cada vez que se haga una fila en la venta/reserva PARAMETROS ENTRADA: @NumEntradasFila --Numero de entradas de cada tipo de entrada @pvpEntrada -- pvp es el precio de la entrada que aparece por pantalla @iTipoEntradaId --pkid de la entrada que ha comprado el cliente @iAlbaranReservaId --id de la reserva introducida en tbReservas @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error PKID -- Identificador del registro creado ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionFilasVenta] ( @NumEntradasFila as int, @pvpEntrada as float, @iTipoEntradaId as int, @iAlbaranReservaId AS int, @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE @rIVA AS float -- % iva de la entrada DECLARE @fImporteEntradaSinIva as float -- importe de cada entrada sin iva DECLARE @NumOrdenFila as int -- posicion de la fila DECLARE @TipoAbreviado as varchar(5) DECLARE @fDescuentoUnidad as float -- para el descuento de cada unidad DECLARE @fDescuentoFila as float -- para el descuento de cada fila DECLARE @fPrecioFinalUnidad as float -- para el precio final de cada unida DECLARE @fPrecioInicialFila as float -- para el precio inicial de cada fila DECLARE @fPrecioFinalFila as float -- para el precio final de cada fila declare @rDescuento as float--@rDescuento es el tanto por ciento de descuento del cliente DECLARE @chNombreTipo as nvarchar(50) --nombre de la entrada que ha comprado el cliente DECLARE @PKId As int --devuelve elpkid de la fila creada DECLARE @CodigoRetorno As int -- Codigo de retorno a devolver DECLARE @_error As int -- Error producido en la transaccin DECLARE @_numeroFilas As int -- Numero de filas afectadas -- Inicio el codigo de retorno a cero SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN

36

set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN -- el iva se aplica por fila (cada entrada puede tener un iva diferente) -- Hay que seleccionar el iva para cada entrada SELECT @rIVA = (SELECT rIVA FROM tbTiposEntrada where tbTiposEntrada.pkid=@iTipoEntradaId) SELECT @chNombreTipo = (select chNombreTipo FROM tbTiposEntrada where pkid=@iTipoEntradaId) select @fImporteEntradaSinIva = CASE @rIVA when 0 THEN @pvpEntrada ELSE ltrim(str((@pvpEntrada/(1+@rIVA/100)),15,2)) end SELECT @rDescuento = rDescuento FROM tbDatosInicioInternet di INNER JOIN tbClientes c ON di.ClienteID = c.iCodigoCliente -- Seleccionamos el orden de la fila SELECT @numOrdenFila = ISNULL(MAX(siNumOrdenFila),0)+1 FROM tbFilasAlbaranesReserva WHERE iReservaID = @iAlbaranReservaId -- Seleccionamos el chTipoAbreviado de la tabla tbTiposEntrada select @TipoAbreviado =(select chTipoAbreviado FROM tbTiposEntrada where pkid=@iTipoEntradaId) --Calculamos precios de la filas de la reserva select @fDescuentoUnidad = (@fImporteEntradaSinIva * @rDescuento) / 100 select @fDescuentoFila = @fDescuentoUnidad * @NumEntradasFila select @fPrecioFinalUnidad=@pvpEntrada-((@pvpEntrada * @rDescuento) / 100) select @fPrecioInicialFila= @fImporteEntradaSinIva * @NumEntradasFila select @fPrecioFinalFila = @fPrecioFinalUnidad* @NumEntradasFila -- insertamos en la tbFilasAlbaranesReserva INSERT tbFilasAlbaranesReserva (iReservaId,siNumOrdenFila,chNombreTipo,iTipoEntradaId, siUnidades ,fPrecioInicialUnidad,fDescuentoUnidad, fPrecioFinalUnidad,fPrecioInicialFila, fDescuentofila,fPrecioFinalFila,rIVA ,rDescuento,chTipoAbreviado) VALUES (@iAlbaranReservaId,@numOrdenFila,@chNombreTipo,@iTipoEntradaId, @NumEntradasFila,CONVERT(MONEY,@fImporteEntradaSinIva,0),CONVERT(MONEY,@fDescuentoUnidad,0), CONVERT(MONEY,@fPrecioFinalUnidad,0),CONVERT(MONEY,@fPrecioInicialFila,0), CONVERT(MONEY,@fDescuentoFila,0), CONVERT(MONEY,@fPrecioFinalFila,0) ,@rIVA,@rDescuento,@TipoAbreviado) -- Recupero el PKId SELECT @PKId = SCOPE_IDENTITY() -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error, @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas<>1) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno RETURN @CodigoRetorno END ELSE BEGIN --devuelvo el pkid SELECT @PKId AS PKID -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN RETURN @PKId END

37

26.- pcInternetExtInsercionFilasVenta_Reserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionFilasVenta_Reserva] Fecha de la secuencia de comandos: 04/22/2010 15:13:20 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionFilasVenta_Reserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionFilasVenta_Reserva] /****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionFilasVenta] Fecha de la secuencia de comandos: 02/17/2010 15:00:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta en la tbFilasAlbaranesREserva, los datos de cada una de las entradas de la venta/reserva. Se ejecutar tantas veces como tipos de entradas tenga la venta/reserva PARAMETROS ENTRADA: @NumEntradasFila --Numero de entradas de cada tipo de entrada @pvpEntrada -- pvp es el precio de la entrada que aparece por pantalla @iTipoEntradaId --pkid de la entrada que ha comprado el cliente @iAlbaranReservaId --id de la reserva introducida en tbReservas @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Si hay error Error -1 -- Si no hay error PKID -- Identificador del registro creado ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionFilasVenta_Reserva] ( @NumEntradasFila as int, @pvpEntrada as float, @iTipoEntradaId as int, @iAlbaranReservaId AS int, @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE @rIVA AS float -- % iva de la entrada DECLARE @fImporteEntradaSinIva as float -- importe de cada entrada sin iva DECLARE @NumOrdenFila as int -- posicion de la fila DECLARE @TipoAbreviado as varchar(5) DECLARE @fDescuentoUnidad as float -- para el descuento de cada unidad DECLARE @fDescuentoFila as float -- para el descuento de cada fila DECLARE @fPrecioFinalUnidad as float -- para el precio final de cada unida DECLARE @fPrecioInicialFila as float -- para el precio inicial de cada fila DECLARE @fPrecioFinalFila as float -- para el precio final de cada fila declare @rDescuento as float--@rDescuento es el tanto por ciento de descuento del cliente DECLARE @chNombreTipo as nvarchar(50) --nombre de la entrada que ha comprado el cliente DECLARE @PKId As int --devuelve elpkid de la fila creada DECLARE @CodigoRetorno As int -- Codigo de retorno a devolver DECLARE @_error As int -- Error producido en la transaccin DECLARE @_numeroFilas As int -- Numero de filas afectadas -- Inicio el codigo de retorno a cero SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena

38

BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN -- el iva se aplica por fila (cada entrada puede tener un iva diferente) -- Hay que seleccionar el iva para cada entrada SELECT @rIVA = (SELECT rIVA FROM tbTiposEntrada where tbTiposEntrada.pkid=@iTipoEntradaId) SELECT @chNombreTipo = (select chNombreTipo FROM tbTiposEntrada where pkid=@iTipoEntradaId) select @fImporteEntradaSinIva = CASE @rIVA when 0 THEN @pvpEntrada ELSE ltrim(str((@pvpEntrada/(1+@rIVA/100)),15,2)) end SELECT @rDescuento = rDescuento FROM tbDatosInicioInternet di INNER JOIN tbClientes c ON di.ClienteID = c.iCodigoCliente -- Seleccionamos el orden de la fila SELECT @numOrdenFila = ISNULL(MAX(siNumOrdenFila),0)+1 FROM tbFilasAlbaranesReserva WHERE iReservaID = @iAlbaranReservaId -- Seleccionamos el chTipoAbreviado de la tabla tbTiposEntrada select @TipoAbreviado =(select chTipoAbreviado FROM tbTiposEntrada where pkid=@iTipoEntradaId) --Calculamos precios de la filas de la reserva select @fDescuentoUnidad = (@fImporteEntradaSinIva * @rDescuento) / 100 select @fDescuentoFila = @fDescuentoUnidad * @NumEntradasFila select @fPrecioFinalUnidad=@pvpEntrada-((@pvpEntrada * @rDescuento) / 100) select @fPrecioInicialFila= @fImporteEntradaSinIva * @NumEntradasFila select @fPrecioFinalFila = @fPrecioFinalUnidad* @NumEntradasFila -- insertamos en la tbFilasAlbaranesReserva INSERT tbFilasAlbaranesReserva (iReservaId,siNumOrdenFila,chNombreTipo,iTipoEntradaId, siUnidades ,fPrecioInicialUnidad,fDescuentoUnidad, fPrecioFinalUnidad,fPrecioInicialFila, fDescuentofila,fPrecioFinalFila,rIVA ,rDescuento,chTipoAbreviado) VALUES (@iAlbaranReservaId,@numOrdenFila,@chNombreTipo,@iTipoEntradaId, @NumEntradasFila,CONVERT(MONEY,@fImporteEntradaSinIva,0),CONVERT(MONEY,@fDescuentoUnidad,0), CONVERT(MONEY,@fPrecioFinalUnidad,0),CONVERT(MONEY,@fPrecioInicialFila,0), CONVERT(MONEY,@fDescuentoFila,0), CONVERT(MONEY,@fPrecioFinalFila,0) ,@rIVA,@rDescuento,@TipoAbreviado) -- Recupero el PKId SELECT @PKId = SCOPE_IDENTITY() -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error, @_numeroFilas = @@rowcount IF ( @_error <> 0 ) OR ( @_numeroFilas<>1) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN --devuelvo el pkid SELECT @PKId AS PKID -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN END

39

27.- pcInternetExtInsercionListasBlancasVenta
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionListasBlancasVenta] Fecha de la secuencia de comandos: 02/17/2010 15:20:17 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionListasBlancasVenta]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionListasBlancasVenta] /****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionListasBlancasVenta] de comandos: 02/17/2010 15:03:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta en 'tbListasBlancas' los datos de las entradas de la venta/reserva. PARAMETROS ENTRADA: @chClaveReserva @dtFechaValidez @iNumEntradas @iTipoEntradaId @iNivelEntrada @dtFechaInicio @iParqueId @Nombre facilitado por el Museo @Contrasena -- clave de la reserva fecha de validez orden de la entrada dentro de la venta (1,2,3,...) pkid del tipo de entrada, sale del pcInternetExtDatosEntradasInternet codigo del tipo de control, sale de pcInternetExtDatosEntradasInternet Fecha de Inicio -- Id del parque generador -- Nombre del proveedor externo que realiza la venta por internet, -- Contrasea del proveedor externo, facilitado por el Museo Fecha de la secuencia

------

PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionListasBlancasVenta] ( @chClaveReserva AS VarChar(20), -- clave de la reserva @dtFechaValidez AS DateTime, @iNumEntradas AS SmallInt, -- orden de la entrada dentro de la venta (1,2,3,...) @iTipoEntradaId AS Int, -- pkid del tipo de entrada, sale del pcInternetParquesEntradasInternet @iNivelEntrada AS SmallInt, -- codigo del tipo de control, sale de pcInternetParquesEntradasInternet @dtFechaInicio AS DateTime, -- Fecha de Inicio @iParqueId AS Int, -- Id del parque generador @Nombre as varchar(50), @Contrasena as varchar(8) ) AS DECLARE @CodigoRetorno AS Int -- Codigo de retorno a devolver DECLARE @_error AS Int -- Error producido en la transaccin SELECT @CodigoRetorno = 0 -- Inicio el codigo de retorno a cero

-- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente

40

IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN INSERT tbListasBlancas ( chLocalizador, dtFechaValidez, iNumEntradas, iTipoEntradaId, iNivelEntrada, dtFechaInicio, iParqueId ) VALUES ( @chClaveReserva, @dtFechaValidez, @iNumEntradas, @iTipoEntradaId, @iNivelEntrada, @dtFechaInicio, @iParqueId ) --*************** COMPRUEBO SI HA HABIDO ERRORES ***************--- Recupero el codigo de error generado SELECT @_error = @@error IF ( @_error <> 0 ) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno = -1 SELECT @CodigoRetorno END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN SET @CodigoRetorno = 0 SELECT @CodigoRetorno END

28.- pcInternetExtInsercionRecintosVenta
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionRecintosVenta] Fecha de la secuencia de comandos: 02/17/2010 15:20:47 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionRecintosVenta]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionRecintosVenta] /****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionRecintosVenta] comandos: 02/17/2010 15:09:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta en tbFilasAlbaranesReservaRecintos los horarios de los recintos seleccionados Fecha de la secuencia de

41

un registro para cada fila de la reserva. PARAMETROS ENTRADA: @recinto -- recinto seleccionado por el usuario PKID de la tbRecintos @FechaRecinto --fecha y hora de la seleccion del recinto @FilaReservaId --id de la fila de la reserva creada @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionRecintosVenta] ( @recinto as int, -- recinto seleccionado por el usuario PKID de la tbRecintos @FechaRecinto as datetime, --fecha y hora de la seleccion del recinto @FilaReservaId as int, --id de la fila de la reserva creada @Nombre as varchar(50), @Contrasena as varchar(8) ) AS declare @TipoSesionId as int -- si las sesiones son regulares siempre sera 0 -- sino (irregulares) el idTipoSesion de la sesion declare @TipoSesion as varchar(50) -- tipo de sesion (SF,SI) DECLARE @CodigoRetorno int /* Codigo de retorno a devolver */ DECLARE @_error int /* Error producido en la transaccin */ DECLARE @_numeroFilas int /* Numero de filas afectadas */ SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN

-- seleccionamos el tipo de sesion segun el recinto y su fecha/hora seleccionados --Inicializo @TipoSesion por si no tiene sesiones set @TipoSesion='SF' select @TipoSesionId =ts.pkid ,@TipoSesion = ts.chTipoSesion FROM tbTiposSesiones ts INNER JOIN tbRecintosSesiones rs ON ts.pkId = rs.idTipoSesion WHERE ts.idRecinto = @recinto and CONVERT(char(10), rs.dtFecha,103) = CONVERT(char(10), @FechaRecinto,103) AND rs.dtFecha + rs.dtHoraInicio= @FechaRecinto if @TipoSesion = 'SF' BEGIN SET @TipoSesionID=0 END INSERT INTO tbFilasAlbaranesReservaRecintos (idFilaAlbaranReserva,idRecinto,idTipoSesion,dtFechaEntrada) VALUES(@FilaReservaId,@recinto, @TipoSesionId,@FechaRecinto) -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error IF ( @_error <> 0 ) BEGIN -- deshago la transaccin pues ha habido algn fallo

42

ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN SET @CodigoRetorno=0 SELECT @CodigoRetorno END

43

29.- pcInternetExtInsercionRecintosVenta_Reserva
/****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionRecintosVenta_Reserva] secuencia de comandos: 04/22/2010 15:21:13 ******/ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[pcInternetExtInsercionRecintosVenta_Reserva]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [dbo].[pcInternetExtInsercionRecintosVenta_Reserva] /****** Objeto: StoredProcedure [dbo].[pcInternetExtInsercionRecintosVenta] comandos: 02/17/2010 15:09:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /**** DESCRIPCION: Inserta en tbFilasAlbaranesReservaRecintos los horarios de los recintos de cada entrada. Se ejecutar tantas veces como recintos tenga una entrada de las filas de la venta/reserva. Inserta en tbFilasAlbaranesReservaRecintos los recintos y los horarios asociados a cada registro de tbFilasAlbaranesReserva, en la venta o reserva. PARAMETROS ENTRADA: @recinto -- recinto seleccionado por el usuario PKID de la tbRecintos @FechaRecinto --fecha y hora de la seleccion del recinto @FilaReservaId --id de la fila de la reserva creada @Nombre -- Nombre del proveedor externo que realiza la venta por internet, facilitado por el Museo @Contrasena -- Contrasea del proveedor externo, facilitado por el Museo PARAMETRO DE SALIDA: @CodigoRetorno -- Sin error 0. Error -1 ****/ CREATE PROCEDURE [dbo].[pcInternetExtInsercionRecintosVenta_Reserva] ( @recinto as int, -- recinto seleccionado por el usuario PKID de la tbRecintos @FechaRecinto as datetime, --fecha y hora de la seleccion del recinto @FilaReservaId as int, --id de la fila de la reserva creada @Nombre as varchar(50), @Contrasena as varchar(8) ) AS declare @TipoSesionId as int -- si las sesiones son regulares siempre sera 0 -- sino (irregulares) el idTipoSesion de la sesion declare @TipoSesion as varchar(50) -- tipo de sesion (SF,SI) DECLARE @CodigoRetorno int /* Codigo de retorno a devolver */ DECLARE @_error int /* Error producido en la transaccin */ DECLARE @_numeroFilas int /* Numero de filas afectadas */ SELECT @CodigoRetorno = 0 -- Compruebo que exista el cliente IF NOT EXISTS ( SELECT PKId FROM tbClientesInternet WHERE chNombreCliente = @nombre and chContrasena = @Contrasena BEGIN set @CodigoRetorno = -1 SELECT @CodigoRetorno RETURN @CodigoRetorno END -- si existe el cliente IF @CodigoRetorno=0 -- Comienzo la transaccin BEGIN TRAN Fecha de la

Fecha de la secuencia de

44

-- seleccionamos el tipo de sesion segun el recinto y su fecha/hora seleccionados --Inicializo @TipoSesion por si no tiene sesiones set @TipoSesion='SF' select @TipoSesionId =ts.pkid ,@TipoSesion = ts.chTipoSesion FROM tbTiposSesiones ts INNER JOIN tbRecintosSesiones rs ON ts.pkId = rs.idTipoSesion WHERE ts.idRecinto = @recinto and CONVERT(char(10), rs.dtFecha,103) = CONVERT(char(10), @FechaRecinto,103) AND rs.dtFecha + rs.dtHoraInicio= @FechaRecinto if @TipoSesion = 'SF' BEGIN SET @TipoSesionID=0 END INSERT INTO tbFilasAlbaranesReservaRecintos (idFilaAlbaranReserva,idRecinto,idTipoSesion,dtFechaEntrada) VALUES(@FilaReservaId,@recinto, @TipoSesionId,@FechaRecinto) -- Recupero el codigo de error generado y el numero de filas afectadas SELECT @_error = @@error IF ( @_error <> 0 ) BEGIN -- deshago la transaccin pues ha habido algn fallo ROLLBACK TRAN SET @CodigoRetorno=-1 SELECT @CodigoRetorno END ELSE BEGIN -- Ejecuto la transaccin si no ha habido errores COMMIT TRAN SET @CodigoRetorno=0 SELECT @CodigoRetorno END

45

También podría gustarte