Está en la página 1de 9

BASE DE DATOS Y PROGRAMACIÓN VISUAL

EXAMEN FINAL

CASO AGENTE ADUANERO

La empresa Universe SA es una agencia aduanera que brinda servicios de desaduanaje de


mercancía donde empresas terceras (de otros países) importan al Perú una variedad de mercancías
a través de empresas navieras. Las empresas navieras y sus respectivos barcos deben descargar
las mercancías mencionadas en el puerto del Callao.

Las empresas navieras pueden utilizar los servicios de Agentes Aduaneros (Ej. Universe SA) para:
● Servicio de remolque de barco:
○ Esta actividad consiste en remolcar a través remolcadores los barcos al puerto.
○ El proceso consiste en que el Barco solicita el servicio de remolque.
○ En función al tonelaje del barco pueden asignarse 1 o 2 remolcadores.
○ Es preciso controlar la programación de remolques por día y hora debido a que en
función al tonelaje puede variar el tiempo.
● Servicio de descarga y almacenamiento:
Para este servicio se debe cumplir con las siguientes actividades o procesos:
○ Entrega del manifiesto de carga. Este documento expone los datos de los
conteiner y por cada conteiner el contenido de lo que se descargará en detalle
(mercancía).
○ Proceso de revisión (primera revisión) de contenido en función a lo expuesto en el
manifiesto (Validación).
○ Si es que bajo la revisión de personal de Universe SA hay correspondencia con lo
expuesto en el manifiesto se procede con el proceso de descarga (con grúas) y
traslado de almacén de conteiner. El contrato de almacén indica un cobro de
almacenamiento de tarifa plana por tres días (tiempo en que
Aduanas-SUNAT a lo mucho se demorará en hacer su revisión)
○ Luego del registro en Aduanas-SUNAT, estos programan el proceso de revisión de
mercadería en función a lo expuesto en el manifiesto. (Segunda validación) Si
Aduanas-SUNAT no encuentra objeciones en lo declarado y lo revisado, se brinda
conformidad para que la mercadería salga de almacén y respectivamente fuera del
puerto.
○ Si Aduanas-SUNAT encuentra alguna objeción implicaría días adicionales de
permanencia en almacén de Universe SA. Esto recae bajo responsabilidad de la
empresa solicitante del servicio. Por cada día adicional de almacenaje de conteiner
se hace un cobro de $25.00.
○ Aduanas-SUNAT puede dar luz verde de salida de almacén y puerto a
determinados productos consignados en los manifiestos y solo quedar observados
determinados productos.
● Servicio de transporte a provincia
○ Si es que empresas terceras lo requiere, luego de la revisión y autorización de
salida por parte de Aduanas-SUNAT, pueden adquirir el servicio de transporte a
diferentes lugares del país. Esto se realiza por conteiner.
○ Para el transporte al interior del país (luego de haber recibido el visto bueno de
Aduanas-SUNAT) se debe generar una guía de remisión donde detalla todo lo
transportado en el container. Esto debe ser declarado ante Sunat y la Policía
Nacional. Ambas dependencias brindan un documento de autorización de traslado,
que puede ser constatado en línea dinámicamente.
○ Ocasionalmente se requiere el servicio de transporte de mercancía especial. Esta
mercancía demanda todos los permisos mencionados en el párrafo anterior sino que
se le define escolta (camioneta que va delante del camión) y escolta posterior.
○ Para todos los servicios de transporte que programa la empresa Universe S.A.,
tiene claramente definida las rutas de transporte para los diferentes destinos a los
cuales distribuye. Es preciso controlar a través de un GPS la velocidad y los lugares
por los cuales está circulando el camión para efectos de hacer seguimiento del
transporte.

PARTE I (10 puntos)


• Proponga el diagrama de base de datos (MODELO FÍSICO) (Remitir una
captura de pantalla del diagrama de BD desde el mismo SQL Server)

PARTE II (10 puntos)


• Elabore consultas SQL que permita atender los siguientes requerimientos:
1. Cuantos remolcadores están programados para remolcar los barcos el
día de hoy.
2. Que remolcadores están programados para trasladar el barco “El
navegante” de nacionalidad panameña.
3. Cuantos conteiners está trasladando un barco. Agrupe por empresa.
Se asume que una empresa puede remitir uno o más containers.
4. Posterior al proceso de auditoría que realiza ADUANAS-SUNAT, se
requiere saber, la relación de mercadería que está observada y no
puede salir de almacén. Se asume que la información que revisa
SUNAT debe coincidir con el Manifiesto.
5. Cual es monto diario que deberá pagar en total (no por conteiner) las
empresas por todos los conteiners observados según SUNAT
6. Cuantas ordenes de servicio de traslado marítimo de conteiners se ha
solicitado a Universe por empresa y respectivamente por mes.
7. Elabore un SP en el que se le pase como parámetro el MES y reporte la
relación de los lugares de destino (es decir provincia). El reporte debe
detallar el número de orden, nombre de la empresa que ha solicitado el
transporte, origen y destino.
8. Elabore un reporte que permita determinar la cantidad de servicios de
transporte terrestre de conteiners a provincia por año y
respectivamente por mes.
9. Relación de empresas que no solo han solicitado los servicios de
traslado marítimo y servicio de traslado terrestre.
10. Reporte en orden descendente el número de servicios solicitados por
las empresas para el transporte marítimo. Reporte por año y
respectivamente por empresa

Remitir en un archivo .txt las instrucciones SQL correspondiente a cada pregunta de la


2da parte.
DIAGRAMA FISICO

--elimnar la base de datos:drop database AgenteAduanero2

1)CREACION DE BASE DE DATOS Y


TABLAS Y LLAVE PRIMARA

create database AgenteAduanero4


use AgenteAduanero4
go

create table Empresa


(
idEmpresa nvarchar(255) primary key ,
Nombre nvarchar(255) ,
Nacionalidad nvarchar(255)
)
go

create table ServicioRemolque


(
IdServicioRemolque int primary key ,
Remolque nvarchar(255) ,
fecha date ,
tiempo time ,
idIdBarco int

)
go
create table Remolque
(
IdRemolque int primary key ,
NombreRemolque nvarchar(255)

)
go
create table DetalleRemolque
(
IdServicioRemolque int ,
IdBarco int ,
IdRemolque int
)
go

create table Barco


(
IdBarco int primary key ,
NombreBarco nvarchar(255) ,
idEmpresa nvarchar(255)
)
go

create table ServicioDescargaAlmacenamiento


(
IdServicioDescargaAlmacenamiento int primary key ,
Manifiesto nvarchar(255) ,
Validacion1 bit ,
Grua nvarchar(255) ,
Almacen nvarchar(255) ,
tarifaxdia decimal(3,2) ,
Validacion2 bit ,
tarifaadicionalXdia decimal(3,2) ,
IdManifiesto nvarchar(255),
idBarco int,
dias int ,
diasextra int

)
go
create table DetalleDescargaAlacenamiento
(
IdServicioDescargaAlmacenamiento int ,
IdMercancias int ,
IdConteiner int ,
nombreMercancia nvarchar(255) ,
obervacion bit

)
go
create table Manifiesto
(
IdManifiesto nvarchar(255) primary key ,
fecha date

)
go

create table Conteiner


(
IdConteiner int primary key,
nombre nvarchar(255)

)
go

create table DetalleManifiesto


(
IdManifiesto nvarchar(255) ,
IdMercancias int
)
go

create table Mercancias


(
IdMercancias int primary key ,
nombre nvarchar(255) ,
IdConteiner int ,
cantidad int
)
go

create table BarcoConteiner


(
IdBarco int,
IdConteiner int,
IdManifiesto nvarchar(255)

)
go

create table DetalleServicioTransporteProvincia


(
idServicioTransporteProvincia int,
IdConteiner int,
Idvehiculo int,
Trasporteespecial bit ,
Tipotransporte nvarchar(255),
Destino nvarchar(255) ,
origen nvarchar(255)
)
go

create table ServicioTransporteProvincia


(
idServicioTransporteProvincia int primary key ,
fecha_inicio date ,
DeclaracionSunat bit ,
Declaropolicia bit ,
IdEmpresa nvarchar(255),
diasextra int
)
Go

2)CREACION DE LLAVE FORANEA

ALTER TABLE Barco ADD FOREIGN KEY(idEmpresa)


REFERENCES Empresa
ALTER TABLE DetalleRemolque ADD FOREIGN KEY(IdServicioRemolque)
REFERENCES ServicioRemolque
ALTER TABLE DetalleRemolque ADD FOREIGN KEY(IdBarco)
REFERENCES Barco
ALTER TABLE DetalleRemolque ADD FOREIGN KEY(IdRemolque)
REFERENCES Remolque
ALTER TABLE ServicioDescargaAlmacenamiento ADD FOREIGN KEY(IdManifiesto)
REFERENCES Manifiesto
ALTER TABLE ServicioDescargaAlmacenamiento ADD FOREIGN KEY(IdBarco)
REFERENCES Barco
ALTER TABLE DetalleManifiesto ADD FOREIGN KEY(IdManifiesto)
REFERENCES Manifiesto
ALTER TABLE DetalleManifiesto ADD FOREIGN KEY(IdMercancias)
REFERENCES Mercancias
ALTER TABLE BarcoConteiner ADD FOREIGN KEY(IdBarco)
REFERENCES Barco
ALTER TABLE BarcoConteiner ADD FOREIGN KEY(IdManifiesto)
REFERENCES Manifiesto
ALTER TABLE BarcoConteiner ADD FOREIGN KEY(IdConteiner)
REFERENCES Conteiner
ALTER TABLE DetalleServicioTransporteProvincia ADD FOREIGN
KEY(idServicioTransporteProvincia) REFERENCES ServicioTransporteProvincia
ALTER TABLE DetalleServicioTransporteProvincia ADD FOREIGN KEY(IdConteiner)
REFERENCES Conteiner

ALTER TABLE ServicioTransporteProvincia ADD FOREIGN KEY(IdEmpresa)


REFERENCES Empresa
ALTER TABLE DetalleDescargaAlacenamiento ADD FOREIGN
KEY(IdServicioDescargaAlmacenamiento) REFERENCES
ServicioDescargaAlmacenamiento
ALTER TABLE DetalleDescargaAlacenamiento ADD FOREIGN KEY(IdMercancias)
REFERENCES Mercancias
ALTER TABLE DetalleDescargaAlacenamiento ADD FOREIGN KEY(IdConteiner)
REFERENCES Conteiner
2)CONSULTAS O REQUERIMIENTOS

--1. Cuantos remolcadores están programados para remolcar los barcos el día de hoy
select count(idremolque) from DetalleRemolque N,ServicioRemolque M where
day(fecha)=day(getdate()) and N.IdServicioRemolque=M.IdServicioRemolque

--2. Que remolcadores están programados para trasladar el barco “El navegante” de
nacionalidad panameña.

select NombreRemolque from Remolque R


inner join DetalleRemolque D on R.IdRemolque=D.IdRemolque
inner join Barco B on B.IdBarco=D.IdBarco
inner join Empresa E on E.IdEmpresa=B.IdEmpresa
where B.NombreBarco='El navegante' and E.nacionalidad='panama'

--3. Cuantos conteiners está trasladando un barco. Agrupe por empresa. Se asume que una
empresa puede remitir uno o más containers.

select E.Nombre, count(DDA.IdConteiner )Cantidad,B.NombreBarco from


ServicioDescargaAlmacenamiento SDA
inner join Barco B on B.IdBarco=SDA.IdBarco
inner join DetalleDescargaAlacenamiento DDA on
SDA.IdServicioDescargaAlmacenamiento=DDA.IdServicioDescargaAlmacenamiento
inner join Empresa E on E.idEmpresa=B.idEmpresa
group by E.Nombre,B.NombreBarco

--4. Posterior al proceso de auditoría que realiza ADUANAS-SUNAT, se requiere saber, la


relación de mercadería que está observada y no puede salir de almacén. Se asume que la
información que revisa SUNAT debe coincidir con el Manifiesto.

select M.IdMercancias,M.nombre from Mercancias M inner join DetalleDescargaAlacenamiento


DDA on M.IdMercancias=DDA.IdMercancias
inner join ServicioDescargaAlmacenamiento SDD on
SDD.IdServicioDescargaAlmacenamiento=DDA.IdServicioDescargaAlmacenamiento
where DDA.obervacion=0 AND SDD.Validacion2=1 AND SDD.Validacion1=1

--5. Cual es monto diario que deberá pagar en total (no por conteiner) las empresas por
todos los conteiners observados según SUNAT

select sum(tarifaxdia*dias+tarifaadicionalXdia*diasextra)Suma,E.Nombre from Mercancias M


inner join DetalleDescargaAlacenamiento DDA on M.IdMercancias=DDA.IdMercancias
inner join ServicioDescargaAlmacenamiento SDD on
SDD.IdServicioDescargaAlmacenamiento=DDA.IdServicioDescargaAlmacenamiento
inner join Barco B on B.IdBarco=SDD.idBarco
inner join Empresa E on E.IdEmpresa=B.IdEmpresa
where DDA.obervacion =0
group by E.Nombre

--6. Cuantas ordenes de servicio de traslado marítimo de conteiners se ha solicitado a


Universe por empresa y respectivamente por mes.
select count (STP.idServicioTransporteProvincia) Cantidad
,E.Nombre,datename(MONTH,fecha_inicio) MES from ServicioTransporteProvincia STP
inner join Empresa E on E.IdEmpresa=STP.IdEmpresa
inner join DetalleServicioTransporteProvincia DTP on
DTP.idServicioTransporteProvincia=STP.idServicioTransporteProvincia
where DTP.Tipotransporte='maritimo'
group by E.Nombre ,datename(MONTH,fecha_inicio)

--7. Elabore un SP en el que se le pase como parámetro el MES y reporte la relación de


los lugares de destino (es decir provincia). El reporte debe detallar el número de orden,
nombre de la empresa que ha solicitado el transporte, origen y destino.

create procedure SPreporte

@mes int

as

select STP.idServicioTransporteProvincia, E.nombre ,DTP.Destino, DTP.Origen from


ServicioTransporteProvincia STP
inner join Empresa E on E.IdEmpresa=STP.IdEmpresa
inner join DetalleServicioTransporteProvincia DTP on
DTP.idServicioTransporteProvincia=STP.idServicioTransporteProvincia
where datename(MONTH,fecha_inicio)=@mes
go

EXEC SPreporte 2

drop procedure SPreporte

--8. Elabore un reporte que permita determinar la cantidad de servicios de transporte


terrestre de conteiners a provincia por año y respectivamente por mes.

select count (STP.idServicioTransporteProvincia) Cantidad


,E.Nombre,datename(YEAR,fecha_inicio) ANIO,datename(MONTH,fecha_inicio) MES from
ServicioTransporteProvincia STP
inner join Empresa E on E.IdEmpresa=STP.IdEmpresa
inner join DetalleServicioTransporteProvincia DTP on
DTP.idServicioTransporteProvincia=STP.idServicioTransporteProvincia
where DTP.Tipotransporte='terrestre'
group by E.Nombre,datename(YEAR,fecha_inicio),datename(MONTH,fecha_inicio)

--9. Relación de empresas que no solo han solicitado los servicios de traslado marítimo y
servicio de traslado terrestre.
select STP.idServicioTransporteProvincia,Tipotransporte,E.Nombre from
ServicioTransporteProvincia STP
inner join Empresa E on E.IdEmpresa=STP.IdEmpresa
inner join DetalleServicioTransporteProvincia DTP on
DTP.idServicioTransporteProvincia=STP.idServicioTransporteProvincia
where DTP.Tipotransporte='maritimo' and DTP.Tipotransporte='terrestre' and
DTP.Trasporteespecial=1
--10. Reporte en orden descendente el número de servicios solicitados por las empresas
para el transporte marítimo. Reporte por año y respectivamente por empresa

select count (STP.idServicioTransporteProvincia) Cantidad


,E.Nombre,datename(YEAR,fecha_inicio) ANIO from ServicioTransporteProvincia STP
inner join Empresa E on E.IdEmpresa=STP.IdEmpresa
inner join DetalleServicioTransporteProvincia DTP on
DTP.idServicioTransporteProvincia=STP.idServicioTransporteProvincia
where DTP.Tipotransporte='maritimo'
group by E.Nombre ,datename(YEAR,fecha_inicio)
order by E.Nombre desc,datename(YEAR,fecha_inicio) desc

También podría gustarte