huaman la torre

5
UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE INGENIERÍA DE SISTEMAS PRÁCTICA CALIFICADA N° 01 BASE DE DATOS AVANZADAS DOCENTE: Dr. Luis Boy Chavil EN UN SISTEMA DE VENTAS DE PRODUCTOS FARMACÉUTICOS SE REQUIERE: AL REGISTRAR UNA VENTA DE PRODUCTOS FARMACÉUTICOS; SE ACTUALIZARÁ EL STOCK DEL PRODUCTO; ASI COMO SU RESPECTIVO KÁRDEX DONDE SE REGISTRARÁ EL TIPO DE DOCUMENTO DE LA VENTA (FACTURA O BOLETA), EL N° DE DICHO DOCUMENTO, EL TIPO DE OPERACIÓN (EN ESTE CASO ES DE SALIDA), EL STOCK ANTERIOR, LA CANTIDAD VENDIDA Y EL STOCK ACTUAL. TAMBIEN SE ACTUALIZARÁ LA COMISIÓN DEL VENDEDOR QUE SERÁ ACUMULADO EN BASE AL 1% DEL IMPORTE DE LA VENTA TOTAL; ASIMISMO, SE HARÁ LAS SIGUIENTES VERIFICACIONES: EL ESTADO DEL CLIENTE DEBE ESTAR ACTIVO Y SU SALDO DE CRÉDITO DEBE SER MAYOR AL IMPORTE TOTAL DE VENTA, EN CASO CONTRARIO SE RECHAZA LA OPERACIÓN; SI NO HAY STOCK SUFICIENTE, SE MOSTRARÁ UN MENSAJE DE RECHAZO Y SE ANULA LA OPERACIÓN. IMPLEMENTE EL SCRIPT EN T-SQL PARA RESOLVER EL PROBLEMA PLANTEADO. NOTA: PUEDE PROCEDIMIENTOS ALMACENADOS, ETC. create database FARMACEUTICA use FARMACEUTICA go --tabla clientes create table Clientes ( ClienteID int identity(1, 1) not null, Nombre varchar(50) not null, Apellido varchar(50) not null, Direccion varchar(50) not null, Email varchar(30) not null, Estado varchar(10) not null, SaldodeCredito money

Upload: desde

Post on 27-Sep-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

UNIVERSIDAD NACIONAL DE TRUJILLOESCUELA DE INGENIERA DE SISTEMAS

PRCTICA CALIFICADA N 01BASE DE DATOS AVANZADAS

DOCENTE: Dr. Luis Boy Chavil

EN UN SISTEMA DE VENTAS DE PRODUCTOS FARMACUTICOS SE REQUIERE:AL REGISTRAR UNA VENTA DE PRODUCTOS FARMACUTICOS; SE ACTUALIZAR EL STOCK DEL PRODUCTO; ASI COMO SU RESPECTIVO KRDEX DONDE SE REGISTRAR EL TIPO DE DOCUMENTO DE LA VENTA (FACTURA O BOLETA), EL N DE DICHO DOCUMENTO, EL TIPO DE OPERACIN (EN ESTE CASO ES DE SALIDA), EL STOCK ANTERIOR, LA CANTIDAD VENDIDA Y EL STOCK ACTUAL. TAMBIEN SE ACTUALIZAR LA COMISIN DEL VENDEDOR QUE SER ACUMULADO EN BASE AL 1% DEL IMPORTE DE LA VENTA TOTAL; ASIMISMO, SE HAR LAS SIGUIENTES VERIFICACIONES: EL ESTADO DEL CLIENTE DEBE ESTAR ACTIVO Y SU SALDO DE CRDITO DEBE SER MAYOR AL IMPORTE TOTAL DE VENTA, EN CASO CONTRARIO SE RECHAZA LA OPERACIN; SI NO HAY STOCK SUFICIENTE, SE MOSTRAR UN MENSAJE DE RECHAZO Y SE ANULA LA OPERACIN.IMPLEMENTE EL SCRIPT EN T-SQL PARA RESOLVER EL PROBLEMA PLANTEADO.NOTA: PUEDE PROCEDIMIENTOS ALMACENADOS, ETC.

create database FARMACEUTICA

use FARMACEUTICAgo--tabla clientescreate table Clientes ( ClienteID int identity(1, 1) not null, Nombre varchar(50) not null, Apellido varchar(50) not null, Direccion varchar(50) not null, Email varchar(30) not null, Estado varchar(10) not null, SaldodeCredito money ) on [Primary]alter table Clienteswith nocheck ADDCONSTRAINT [PK_Clientes]primary key clustered(ClienteID) on [Primary]Go

--tabla Vendedorescreate table Vendedores(VendedorID int identity(1, 1) not null,Nombre varchar(50)not null,Comision decimal(6, 2)not null)on [primary]goalter table VendedoresWith nocheck ADDconstraint [PK_Vendedores]primary key clustered(VendedorID)on [Primary]go

--tabla Productoscreate table Productos(ProductoID int identity(1, 1) not null,Descripcion varchar(50),Medida varchar(30),PrecioUnitario money not null,Stock int)on [primary]goalter table ProductosWith nocheck ADDconstraint [PK_Productos]primary key clustered(ProductoID)on [Primary]go

--tabla Pedidoscreate table Pedidos(PedidoID int identity(1, 1) not null,ClienteID int not null,VendedorID int not null,Fecha datetime)on [primary]goalter table PedidosWith nocheck ADDconstraint [PK_Pedidos]primary key clustered(PedidoID)on [primary]go

--tabla Detalle Pedidoscreate table [Detalle Pedidos](PedidoID int not null,ProductoID int not null,Cantidad int not null,PrecioUnitario money)on [primary]goalter table [Detalle Pedidos]With nocheck ADDconstraint [PK_DetallePedidos]primary key clustered(PedidoID,ProductoID)on [primary]

use FARMACEUTICAgocreate trigger CalculaComisioneson [Detalle Pedidos]for insertASBegin

--cantidad a insertardeclare @Cantidad intselect @Cantidad=cantidadfrom inserted

--stock del productodeclare @Stock intselect @Stock=stockfrom Productos Pjoin inserted ion P.ProductoID=i.ProductoIDif @Cantidad0alter table Clientes add constraint SaldodeCredito check (SaldodeCredito>0)go