156 lines
No EOL
4.8 KiB
Transact-SQL
156 lines
No EOL
4.8 KiB
Transact-SQL
use CUENTAS_COBRAR
|
|
|
|
create table [catalogo].[Usuario] (
|
|
IdUsuario varchar(20) primary key,
|
|
Nombre nvarchar(255) not null,
|
|
Apellido1 nvarchar(255) not null,
|
|
Apellido2 nvarchar(255) not null,
|
|
Correo varchar(200) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
|
|
create table [catalogo].[Moneda] (
|
|
IdMoneda int IDENTITY(1,1) primary key,
|
|
Descripcion nvarchar(255) not null,
|
|
Simbolo char(1) null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [catalogo].[TipoDocumento] (
|
|
IdTipoDocumento int IDENTITY(1,1) primary key,
|
|
Descripcion nvarchar(255) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [catalogo].[TipoPago] (
|
|
IdTipoPago int IDENTITY(1,1) primary key,
|
|
Descripcion nvarchar(255) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [catalogo].[Rol] (
|
|
IdRol int IDENTITY(1,1) primary key,
|
|
Descripcion nvarchar(255) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [global].[RolDeUsuario] (
|
|
IdUsuario varchar(20),
|
|
IdRol int,
|
|
DescripcionDeRol nvarchar(255),
|
|
PRIMARY KEY(IdUsuario, IdRol),
|
|
FOREIGN KEY (IdUsuario) REFERENCES [catalogo].[Usuario](IdUsuario) on update cascade,
|
|
FOREIGN KEY (IdRol) REFERENCES [catalogo].[Rol](IdRol) on update cascade,
|
|
);
|
|
|
|
create table [catalogo].[Banco] (
|
|
IdBanco int IDENTITY(1,1) primary key,
|
|
Nombre nvarchar(255) not null,
|
|
Nomenclatura nvarchar(100) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [catalogo].[TipoIdentificacion] (
|
|
IdTipoIdentificacion int IDENTITY(1,1) primary key,
|
|
Descripcion nvarchar(255) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [catalogo].[TipoTelefono] (
|
|
IdTipoTelefono int IDENTITY(1,1) primary key,
|
|
Descripcion nvarchar(255) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [catalogo].[Pais] (
|
|
IdPais int IDENTITY(1,1) primary key,
|
|
Nombre nvarchar(255) not null,
|
|
Nacionalidad nvarchar(100) not null,
|
|
CodigoDeArea varchar(4) not null,
|
|
Habilitado bit not null
|
|
);
|
|
|
|
create table [global].[Cliente] (
|
|
NoIdentificacion nvarchar(30) primary key,
|
|
IdTipoIdentificacion int not null,
|
|
IdPaisNacionalidad int not null,
|
|
Nombre nvarchar(255) not null,
|
|
Apellido1 nvarchar(255),
|
|
Apellido2 nvarchar(255),
|
|
Correo varchar(200) not null,
|
|
Direccion varchar(500),
|
|
Habilitado bit not null,
|
|
FOREIGN KEY (IdTipoIdentificacion) REFERENCES [catalogo].[TipoIdentificacion](IdTipoIdentificacion) on update cascade,
|
|
FOREIGN KEY (IdPaisNacionalidad) REFERENCES [catalogo].[Pais](IdPais) on update cascade,
|
|
);
|
|
|
|
--Preguntar a ronald por el telefono
|
|
create table [global].[Telefono] (
|
|
IdTelefono int IDENTITY(1,1) primary key,
|
|
IdTipoTelefono int not null,
|
|
NoIdentificacionCliente nvarchar(30) not null,
|
|
Numero nvarchar(25) not null,
|
|
Habilitado bit not null,
|
|
FOREIGN KEY (IdTipoTelefono) REFERENCES [catalogo].[TipoTelefono](IdTipoTelefono) on Update Cascade,
|
|
FOREIGN KEY (NoIdentificacionCliente) REFERENCES [global].[Cliente](NoIdentificacion) on Update Cascade,
|
|
);
|
|
|
|
create table [global].[Pago] (
|
|
NoRecibo int IDENTITY(1,1) primary key,
|
|
IdBanco int not null,
|
|
IdMoneda int not null,
|
|
IdTipoPago int not null,
|
|
FechaPago datetime not null,
|
|
FOREIGN KEY (IdBanco) REFERENCES [catalogo].[Banco](IdBanco) on update cascade,
|
|
FOREIGN KEY (IdMoneda) REFERENCES [catalogo].[Moneda](IdMoneda) on update cascade,
|
|
FOREIGN KEY (IdTipoPago) REFERENCES [catalogo].[TipoPago](IdTipoPago) on update cascade,
|
|
);
|
|
|
|
create table [global].[Factura] (
|
|
Consecutivo nvarchar(40) primary key,
|
|
NoIdentificacionCliente nvarchar(30) not null,
|
|
IdMoneda int not null,
|
|
IdTipoDocumento int not null,
|
|
FechaEmision datetime not null,
|
|
FechaVencimiento datetime not null,
|
|
ConsecutivoNotaReferencia nvarchar(40),
|
|
NombreReceptor nvarchar(255) not null,
|
|
SubTotal decimal(18,2) not null,
|
|
TotalImpuestos decimal(18,2) not null,
|
|
TotalFactura decimal(18,2) not null,
|
|
DiasCredito int not null,
|
|
Saldo decimal(18,2) not null,
|
|
Estado nvarchar(10) not null,
|
|
FOREIGN KEY (NoIdentificacionCliente) REFERENCES [global].[Cliente](NoIdentificacion) on update cascade,
|
|
FOREIGN KEY (IdMoneda) REFERENCES [catalogo].[Moneda](IdMoneda) on update cascade,
|
|
FOREIGN KEY (IdTipoDocumento) REFERENCES [catalogo].[TipoDocumento](IdTipoDocumento) on update cascade,
|
|
);
|
|
|
|
create table [global].[PagoContieneFactura] (
|
|
ConsecutivoFactura nvarchar(40),
|
|
NoReciboPago int,
|
|
Primary Key(ConsecutivoFactura, NoReciboPago),
|
|
FOREIGN KEY (ConsecutivoFactura) REFERENCES [global].[Factura](Consecutivo),
|
|
FOREIGN KEY (NoReciboPago) REFERENCES [global].[Pago](NoRecibo),
|
|
);
|
|
go
|
|
|
|
CREATE TRIGGER agregar_descripciones_RolDeUsuario
|
|
ON global.RolDeUsuario
|
|
INSTEAD OF INSERT
|
|
AS
|
|
Begin
|
|
Declare @descripcion nvarchar(255)
|
|
Declare @idRol int
|
|
Declare @idUsuario varchar(20)
|
|
|
|
select @descripcion = descripcion from catalogo.Rol r join
|
|
inserted i on i.IdRol = r.IdRol where i.IdRol = r.IdRol
|
|
select @idRol = IdRol from inserted
|
|
select @idUsuario = IdUsuario from inserted
|
|
|
|
insert into RolDeUsuario ( IdUsuario, IdRol, DescripcionDeRol) values (@idUsuario, @idRol, @descripcion)
|
|
End
|
|
|
|
go |