Creador del post: Javier Gómez Madrigal.
Inicio: 14:00 Fin: 18:00
Horas trabajadas: 4
Se crearon los procedures de Búsqueda por patrón, Consulta de saldo, Compra de Canción, Consulta de cantidad de bajadas y Consulta de movimientos canción por miembro.
GO
CREATE PROCEDURE BUSQUEDA_PATRON_CANCION
(@PATRON VARCHAR(50))
AS
BEGIN
DECLARE @POSICION TABLE(POSICION INT IDENTITY(1,1), FK_CANCION INT)
INSERT INTO @POSICION
SELECT C.ID
FROM MC_CANCION AS C
WHERE (C.ACTIVO = 1)
ORDER BY C.CANTIDADVENDIDA DESC
BEGIN TRY
SELECT N.ID, I.ID, N.NOMBRE, N.FECHAINGRESO, N.CANTIDADVENDIDA, I.NOMBRE, P.POSICION
FROM MC_CANCION AS N
INNER JOIN MC_INTERPRETE AS I ON I.ID = N.FK_INTERPRETE
INNER JOIN @POSICION AS P ON P.FK_CANCION = N.ID
WHERE ((N.NOMBRE LIKE '%'+@PATRON+'%') AND (N.ACTIVO = 1))
ORDER BY N.NOMBRE DESC
RETURN 1
END TRY
BEGIN CATCH
RETURN @@ERROR*-1
END CATCH;
END
GO
--------------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE CONSULTA_SALDO
(@ID INT)
AS
BEGIN
BEGIN TRY
SELECT M.SALDO
FROM MC_MIEMBRO AS M
WHERE M.ID = @ID
RETURN 1
END TRY
BEGIN CATCH
RETURN @@ERROR*-1
END CATCH;
END
GO
EXEC dbo.COMPRA_CANCION 3, 1001, '1234567812345678', 1, '1237DKFLJSAKDHFKJSA', 'JDKSLFJKASDHFJSAHDF', 1000
--------------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE COMPRA_CANCION
(@ID_CANCION INT,
@ID_MIEMBRO INT,
@NUM_TARJETA VARCHAR(20),
@ID_TIPOMOV INT,
@POST_IN VARCHAR(20),
@POST_BY VARCHAR(20),
@MONTO MONEY)
AS
BEGIN
DECLARE @ID_MEDIOPAGO INT
DECLARE @LASTID INT
SET @ID_MEDIOPAGO = (SELECT TOP 1 P.ID
FROM MC_MEDIOPAGO AS P
WHERE P.NUMTARJETA = @NUM_TARJETA)
BEGIN TRY
INSERT INTO MC_MOVIMIENTOMIEMBRO (FK_MEDIOPAGO, FK_MIEMBRO, FK_TIPOMOVIMIENTO, FECHA,MONTO, POST_BY, POST_IN, POST_DATE)
VALUES (@ID_MEDIOPAGO, @ID_MIEMBRO, 1, CAST(getdate() as DATE), @MONTO, @POST_BY, @POST_IN, CAST(getdate() as DATE))
SET @LASTID = @@IDENTITY
INSERT INTO MC_MOVIMIENTOCANCION (FK_MOVIMIENTOMIEMBRO, FK_CANCION, FECHA, CANTIDADBAJADAS, POST_BY, POST_IN, POST_DATE)
VALUES (@LASTID, @ID_CANCION, CAST(getdate() as DATE), 0, @POST_BY, @POST_IN, CAST(getdate() as DATE))
UPDATE MC_CANCION
SET CANTIDADVENDIDA = CANTIDADVENDIDA + 1
WHERE ID = @ID_CANCION
UPDATE MC_MIEMBRO
SET SALDO = SALDO - @MONTO, CANTIDADCOMPRAS = CANTIDADCOMPRAS + 1
WHERE ID = @ID_MIEMBRO
RETURN 1;
END TRY
BEGIN CATCH
RETURN @@ERROR*-1;
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE CONSULTA_CANTIDADBAJADAS
(@ID INT)
AS
BEGIN
BEGIN TRY
SELECT M.CANTIDADBAJADAS
FROM MC_MOVIMIENTOCANCION AS M
WHERE M.ID = @ID
RETURN 1
END TRY
BEGIN CATCH
RETURN @@ERROR*-1
END CATCH;
END
GO
-----------------------------------------------------------------------------------------------------------------------
GO
CREATE PROCEDURE CONSULTA_MOVCANCXMIEMBRO
(@MIEMBRO VARCHAR(50))
AS
BEGIN
DECLARE @ID_MIEMBRO INT
SET @ID_MIEMBRO = (SELECT D.ID FROM MC_MIEMBRO AS D WHERE D.CUENTA = @MIEMBRO)
BEGIN TRY
SELECT C.ID, U.NOMBRE, C.FECHA, F.NOMBRE, M.MONTO, C.CANTIDADBAJADAS
FROM MC_MIEMBRO AS U
INNER JOIN MC_MOVIMIENTOMIEMBRO AS M ON M.FK_MIEMBRO = @ID_MIEMBRO
INNER JOIN MC_MOVIMIENTOCANCION AS C ON C.FK_MOVIMIENTOMIEMBRO = M.ID
INNER JOIN MC_CANCION AS F ON F.ID = C.FK_CANCION
WHERE U.ID = @ID_MIEMBRO
RETURN 1
END TRY
BEGIN CATCH
RETURN @@ERROR*-1
END CATCH;
END
GO
No hay comentarios.:
Publicar un comentario