4266 lines
187 KiB
Transact-SQL
4266 lines
187 KiB
Transact-SQL
/*
|
|
Esquema consolidado - Plataforma de Desarrolladores Agua Hillo
|
|
Generado a partir de las definiciones proporcionadas.
|
|
|
|
Decisiones aplicadas:
|
|
- Usuarios -> Sis_Usuarios.
|
|
- Monedas -> Gral_Monedas.
|
|
- GPS_ZonasHorarias -> ZonasHorarias.
|
|
- Nom_Sat_Bancos -> Sat_Bancos.
|
|
- Se omite todo lo relacionado con CveEmpresa/CveEmpresaCRM.
|
|
- Se eliminan Comp_Proveedores, Banc_Creditos y Vta_Cortes junto con sus campos dependientes acordados.
|
|
- Las FK se crean después de todas las tablas para evitar fallas por orden y ciclos.
|
|
*/
|
|
|
|
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
SET XACT_ABORT ON;
|
|
GO
|
|
|
|
/* ==================== TABLAS ==================== */
|
|
|
|
CREATE TABLE [dbo].[Sis_Roles] (
|
|
[CveRol] int IDENTITY(1,1) NOT NULL,
|
|
[NombreRol] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_Roles_Activo] DEFAULT ((1)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Roles_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_Roles]
|
|
PRIMARY KEY CLUSTERED ([CveRol]),
|
|
CONSTRAINT [UQ_Sis_Roles_NombreRol]
|
|
UNIQUE NONCLUSTERED ([NombreRol])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_Plataformas] (
|
|
[CvePlataforma] int IDENTITY(1,1) NOT NULL,
|
|
[NombrePlataforma] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_Plataformas_Activo] DEFAULT ((1)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Plataformas_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_Plataformas]
|
|
PRIMARY KEY CLUSTERED ([CvePlataforma]),
|
|
CONSTRAINT [UQ_Sis_Plataformas_NombrePlataforma]
|
|
UNIQUE NONCLUSTERED ([NombrePlataforma])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_Permisos] (
|
|
[CvePermiso] int IDENTITY(1,1) NOT NULL,
|
|
[CodigoPermiso] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NombrePermiso] varchar(150) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_Permisos_Activo] DEFAULT ((1)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Permisos_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_Permisos]
|
|
PRIMARY KEY CLUSTERED ([CvePermiso]),
|
|
CONSTRAINT [UQ_Sis_Permisos_CodigoPermiso]
|
|
UNIQUE NONCLUSTERED ([CodigoPermiso])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_Usuarios] (
|
|
[CveUsuario] int IDENTITY(1,1) NOT NULL,
|
|
[NombreUsuario] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[HashContrasena] varchar(500) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CorreoElectronico] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveRol] int NOT NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_Usuarios_Activo] DEFAULT ((1)) NOT NULL,
|
|
[FechaUltimaConexion] datetime NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Usuarios_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
[DebeCambiarContrasena] bit CONSTRAINT [DF_Sis_Usuarios_DebeCambiarContrasena] DEFAULT ((0)) NOT NULL,
|
|
[IntentosFallidosInicioSesion] int CONSTRAINT [DF_Sis_Usuarios_IntentosFallidos] DEFAULT ((0)) NOT NULL,
|
|
[BloqueadoHasta] datetime NULL,
|
|
[FechaUltimoInicioSesion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_Usuarios]
|
|
PRIMARY KEY CLUSTERED ([CveUsuario]),
|
|
CONSTRAINT [UQ_Sis_Usuarios_NombreUsuario]
|
|
UNIQUE NONCLUSTERED ([NombreUsuario])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_Modulos] (
|
|
[CveModulo] int IDENTITY(1,1) NOT NULL,
|
|
[CveModuloPadre] int NULL,
|
|
[CvePlataforma] int NOT NULL,
|
|
[NombreModulo] varchar(150) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Url] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaseCssIcono] varchar(150) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaseCssEstilo] varchar(150) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[OrdenVisualizacion] int CONSTRAINT [DF_Sis_Modulos_OrdenVisualizacion] DEFAULT ((0)) NOT NULL,
|
|
[Visible] bit CONSTRAINT [DF_Sis_Modulos_Visible] DEFAULT ((1)) NOT NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_Modulos_Activo] DEFAULT ((1)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Modulos_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_Modulos]
|
|
PRIMARY KEY CLUSTERED ([CveModulo])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_RolesPermisos] (
|
|
[CveRolPermiso] int IDENTITY(1,1) NOT NULL,
|
|
[CveRol] int NOT NULL,
|
|
[CvePermiso] int NOT NULL,
|
|
[Permitido] bit CONSTRAINT [DF_Sis_RolesPermisos_Permitido] DEFAULT ((1)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_RolesPermisos_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Sis_RolesPermisos]
|
|
PRIMARY KEY CLUSTERED ([CveRolPermiso]),
|
|
CONSTRAINT [UQ_Sis_RolesPermisos]
|
|
UNIQUE NONCLUSTERED ([CveRol], [CvePermiso])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_RolesModulos] (
|
|
[CveRolModulo] int IDENTITY(1,1) NOT NULL,
|
|
[CveRol] int NOT NULL,
|
|
[CveModulo] int NOT NULL,
|
|
[PuedeVer] bit CONSTRAINT [DF_Sis_RolesModulos_PuedeVer] DEFAULT ((1)) NOT NULL,
|
|
[PuedeCrear] bit CONSTRAINT [DF_Sis_RolesModulos_PuedeCrear] DEFAULT ((0)) NOT NULL,
|
|
[PuedeModificar] bit CONSTRAINT [DF_Sis_RolesModulos_PuedeModificar] DEFAULT ((0)) NOT NULL,
|
|
[PuedeEliminar] bit CONSTRAINT [DF_Sis_RolesModulos_PuedeEliminar] DEFAULT ((0)) NOT NULL,
|
|
[PuedeImprimir] bit CONSTRAINT [DF_Sis_RolesModulos_PuedeImprimir] DEFAULT ((0)) NOT NULL,
|
|
[PuedeExportar] bit CONSTRAINT [DF_Sis_RolesModulos_PuedeExportar] DEFAULT ((0)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_RolesModulos_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Sis_RolesModulos]
|
|
PRIMARY KEY CLUSTERED ([CveRolModulo]),
|
|
CONSTRAINT [UQ_Sis_RolesModulos]
|
|
UNIQUE NONCLUSTERED ([CveRol], [CveModulo])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_UsuariosPermisos] (
|
|
[CveUsuarioPermiso] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CvePermiso] int NOT NULL,
|
|
[Permitido] bit CONSTRAINT [DF_Sis_UsuariosPermisos_Permitido] DEFAULT ((1)) NOT NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_UsuariosPermisos_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Sis_UsuariosPermisos]
|
|
PRIMARY KEY CLUSTERED ([CveUsuarioPermiso]),
|
|
CONSTRAINT [UQ_Sis_UsuariosPermisos]
|
|
UNIQUE NONCLUSTERED ([CveUsuario], [CvePermiso])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_UsuariosSesiones] (
|
|
[CveUsuarioSesion] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[TokenSesion] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[DireccionIP] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[AgenteUsuario] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreDominio] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaInicio] datetime CONSTRAINT [DF_Sis_UsuariosSesiones_FechaInicio] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaUltimaActividad] datetime NULL,
|
|
[FechaFin] datetime NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_UsuariosSesiones_Activo] DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Sis_UsuariosSesiones]
|
|
PRIMARY KEY CLUSTERED ([CveUsuarioSesion]),
|
|
CONSTRAINT [UQ_Sis_UsuariosSesiones_TokenSesion]
|
|
UNIQUE NONCLUSTERED ([TokenSesion])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_UsuariosAutorizaciones] (
|
|
[CveUsuarioAutorizacion] int IDENTITY(1,1) NOT NULL,
|
|
[CvePermiso] int NOT NULL,
|
|
[CveUsuarioSolicitante] int NOT NULL,
|
|
[CveUsuarioAutorizador] int NULL,
|
|
[EstadoAutorizacion] varchar(30) COLLATE Modern_Spanish_CS_AI
|
|
CONSTRAINT [DF_Sis_UsuariosAutorizaciones_Estado]
|
|
DEFAULT ('Pendiente') NOT NULL,
|
|
[ComentarioSolicitud] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComentarioAutorizacion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaSolicitud] datetime
|
|
CONSTRAINT [DF_Sis_UsuariosAutorizaciones_FechaSolicitud]
|
|
DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaAutorizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_UsuariosAutorizaciones]
|
|
PRIMARY KEY CLUSTERED ([CveUsuarioAutorizacion]),
|
|
CONSTRAINT [CK_Sis_UsuariosAutorizaciones_Estado]
|
|
CHECK
|
|
(
|
|
[EstadoAutorizacion] IN
|
|
(
|
|
'Pendiente',
|
|
'Aprobada',
|
|
'Rechazada',
|
|
'Cancelada'
|
|
)
|
|
)
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_UsuariosSuscripcionesPush] (
|
|
[CveSuscripcionPush] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[Endpoint] varchar(1000) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[P256DH] varchar(500) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ClaveAutenticacion] varchar(500) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Activo] bit CONSTRAINT [DF_Sis_UsuariosSuscripcionesPush_Activo] DEFAULT ((1)) NOT NULL,
|
|
[AgenteUsuario] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Plataforma] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Navegador] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreDominio] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaUltimaConexion] datetime NULL,
|
|
[FechaCreacion] datetime
|
|
CONSTRAINT [DF_Sis_UsuariosSuscripcionesPush_FechaCreacion]
|
|
DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_UsuariosSuscripcionesPush]
|
|
PRIMARY KEY CLUSTERED ([CveSuscripcionPush])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_Notificaciones] (
|
|
[CveNotificacion] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[TipoNotificacion] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[EstadoNotificacion] varchar(30) COLLATE Modern_Spanish_CS_AI
|
|
CONSTRAINT [DF_Sis_Notificaciones_Estado]
|
|
DEFAULT ('Pendiente') NOT NULL,
|
|
[Titulo] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Mensaje] varchar(max) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Url] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Leida] bit CONSTRAINT [DF_Sis_Notificaciones_Leida] DEFAULT ((0)) NOT NULL,
|
|
[MostradaEnCampana] bit CONSTRAINT [DF_Sis_Notificaciones_MostradaEnCampana] DEFAULT ((0)) NOT NULL,
|
|
[FechaEnvio] datetime NULL,
|
|
[FechaLectura] datetime NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Notificaciones_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaActualizacion] datetime NULL,
|
|
CONSTRAINT [PK_Sis_Notificaciones]
|
|
PRIMARY KEY CLUSTERED ([CveNotificacion]),
|
|
CONSTRAINT [CK_Sis_Notificaciones_Estado]
|
|
CHECK
|
|
(
|
|
[EstadoNotificacion] IN
|
|
(
|
|
'Pendiente',
|
|
'Enviada',
|
|
'Fallida',
|
|
'Cancelada'
|
|
)
|
|
),
|
|
CONSTRAINT [CK_Sis_Notificaciones_Tipo]
|
|
CHECK
|
|
(
|
|
[TipoNotificacion] IN
|
|
(
|
|
'Local',
|
|
'WhatsApp',
|
|
'SignalR',
|
|
'Correo',
|
|
'Push',
|
|
'Campana'
|
|
)
|
|
)
|
|
)
|
|
ON [PRIMARY]
|
|
TEXTIMAGE_ON [PRIMARY];
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_NotificacionesEnvios] (
|
|
[CveEnvioNotificacion] int IDENTITY(1,1) NOT NULL,
|
|
[CveNotificacion] int NOT NULL,
|
|
[CanalEnvio] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[EstadoEnvio] varchar(30) COLLATE Modern_Spanish_CS_AI
|
|
CONSTRAINT [DF_Sis_NotificacionesEnvios_Estado]
|
|
DEFAULT ('Pendiente') NOT NULL,
|
|
[RespuestaProveedor] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[MensajeError] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaEnvio] datetime NULL,
|
|
[FechaCreacion] datetime
|
|
CONSTRAINT [DF_Sis_NotificacionesEnvios_FechaCreacion]
|
|
DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Sis_NotificacionesEnvios]
|
|
PRIMARY KEY CLUSTERED ([CveEnvioNotificacion]),
|
|
CONSTRAINT [CK_Sis_NotificacionesEnvios_Estado]
|
|
CHECK
|
|
(
|
|
[EstadoEnvio] IN
|
|
(
|
|
'Pendiente',
|
|
'Enviado',
|
|
'Fallido',
|
|
'Cancelado'
|
|
)
|
|
),
|
|
CONSTRAINT [CK_Sis_NotificacionesEnvios_Canal]
|
|
CHECK
|
|
(
|
|
[CanalEnvio] IN
|
|
(
|
|
'Local',
|
|
'WhatsApp',
|
|
'SignalR',
|
|
'Correo',
|
|
'Push',
|
|
'Campana'
|
|
)
|
|
)
|
|
)
|
|
ON [PRIMARY]
|
|
TEXTIMAGE_ON [PRIMARY];
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_IntentosInicioSesion] (
|
|
[CveIntentoInicioSesion] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NULL,
|
|
[NombreUsuario] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Exitoso] bit NOT NULL,
|
|
[MotivoFallo] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DireccionIP] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[AgenteUsuario] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreDominio] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaCreacion] datetime
|
|
CONSTRAINT [DF_Sis_IntentosInicioSesion_FechaCreacion]
|
|
DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Sis_IntentosInicioSesion]
|
|
PRIMARY KEY CLUSTERED ([CveIntentoInicioSesion])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_Auditorias] (
|
|
[CveAuditoria] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NULL,
|
|
[TipoEvento] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NombreEntidad] varchar(150) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[LlaveEntidad] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Descripcion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DireccionIP] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[AgenteUsuario] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreDominio] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaCreacion] datetime CONSTRAINT [DF_Sis_Auditorias_FechaCreacion] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Sis_Auditorias]
|
|
PRIMARY KEY CLUSTERED ([CveAuditoria])
|
|
)
|
|
;
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_AuditoriasDetalles] (
|
|
[CveAuditoriaDetalle] int IDENTITY(1,1) NOT NULL,
|
|
[CveAuditoria] int NOT NULL,
|
|
[NombreCampo] varchar(150) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ValorAnterior] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ValorNuevo] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Sis_AuditoriasDetalles]
|
|
PRIMARY KEY CLUSTERED ([CveAuditoriaDetalle])
|
|
)
|
|
ON [PRIMARY]
|
|
TEXTIMAGE_ON [PRIMARY];
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_ProductosServicios] (
|
|
[CveSATPS] int IDENTITY(1,1) NOT NULL,
|
|
[SATClavePS] nvarchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Descripcion] nvarchar(600) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[IncluirIVAtrasladado] nvarchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[IncluirIEPStrasladado] nvarchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComplementoIncluir] nvarchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[IncluirIVATrasladado2] bit DEFAULT ((0)) NOT NULL,
|
|
[IncluirIESTrasladado2] bit DEFAULT ((0)) NOT NULL,
|
|
[FechaInicioVigencia] date NULL,
|
|
[FechaFinVigencia] date NULL,
|
|
[EstimuloFranjaFronteriza] bit NULL,
|
|
[PalabrasSimilares] varchar(600) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[AplicaCartaPorte] bit NULL,
|
|
[MaterialPeligroso] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Gral_SAT_ProductosServicios_1] PRIMARY KEY CLUSTERED ([CveSATPS])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_Categorias] (
|
|
[CveCategoria] int IDENTITY(1,1) NOT NULL,
|
|
[Categoria] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[Tipo] tinyint DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Categorias] PRIMARY KEY CLUSTERED ([CveCategoria])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UK_Gral_Categorias] UNIQUE NONCLUSTERED ([Categoria] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Clasificaciones] (
|
|
[CveClasificacion] int IDENTITY(1,1) NOT NULL,
|
|
[Codigo] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Clasificacion] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estado] bit DEFAULT ((1)) NOT NULL,
|
|
[Afectable] bit DEFAULT ((1)) NOT NULL,
|
|
[CveCategoria] int NULL,
|
|
[UsoClasificacion] int DEFAULT ((1)) NULL,
|
|
[Fecha] date NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[RequiereSerieLote] bit NULL,
|
|
[CveSATPS] int NULL,
|
|
[RequiereAFCompra] bit DEFAULT ((0)) NULL,
|
|
[RequiereAFInsumo] bit DEFAULT ((0)) NULL,
|
|
[RequierePersonal] bit DEFAULT ((0)) NULL,
|
|
[EsAcumulador] bit DEFAULT ((0)) NULL,
|
|
[TopVentas] bit NULL,
|
|
[TopCompras] bit NULL,
|
|
[PrecioBaseCosto] money NULL,
|
|
[PorMaximoDescuento] smallmoney NULL,
|
|
[AplicaDepositoCaja] bit DEFAULT ((0)) NULL,
|
|
CONSTRAINT [PK_Clasificaciones] PRIMARY KEY CLUSTERED ([CveClasificacion])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_Clasificacion] UNIQUE NONCLUSTERED ([Clasificacion] ASC, [Codigo] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Banc_BancosCuentas] (
|
|
[CveBancoCuenta] int IDENTITY(1,1) NOT NULL,
|
|
[CveBanco] int NOT NULL,
|
|
[CveTipoCuenta] int NOT NULL,
|
|
[NumCuenta] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveMoneda] int DEFAULT ((1)) NOT NULL,
|
|
[CLABE] varchar(18) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DiaCorte] int DEFAULT ((0)) NULL,
|
|
[FInicial] int NOT NULL,
|
|
[FActual] int NOT NULL,
|
|
[FFinal] int NOT NULL,
|
|
[LimiteCredito] money DEFAULT ((0)) NOT NULL,
|
|
[UsaLayout] bit DEFAULT ((0)) NOT NULL,
|
|
[FormatoCheque] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ConvenioPagoElectronico] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[PrefijoConta] varchar(2) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[UsaTarjeta] bit NULL,
|
|
[SaldoInicial] money NULL,
|
|
[ConvenioPagoElectronicoGrupos] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[UsaLayoutGrupos] bit NULL,
|
|
[TieneTerminal] bit DEFAULT ((0)) NOT NULL,
|
|
[CveBancoCuentaPadre] int NULL,
|
|
[CveSubProyecto] int NULL,
|
|
[NumeroSucursal] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsCajas] bit DEFAULT ((0)) NOT NULL,
|
|
[ConvenioPagoElectronicoNomina] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_BancosCuentas] PRIMARY KEY CLUSTERED ([CveBancoCuenta])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_Banc_BancosCuentas] UNIQUE NONCLUSTERED ([CveBanco] ASC, [NumCuenta] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_CodigosAgrupadoresSAT] (
|
|
[CveAgrupadorSAT] int IDENTITY(1,1) NOT NULL,
|
|
[Codigo] nvarchar(20) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Nombre] nvarchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Tipo] nvarchar(1) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CtaMayor] int NULL,
|
|
[IdRubro] int NULL,
|
|
[CveAgrupadorPadre] int NULL,
|
|
[Nivel] smallint NULL,
|
|
CONSTRAINT [PK__Conta_Co__53FE69089E7C3639] PRIMARY KEY CLUSTERED ([CveAgrupadorSAT])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_Cuentas] (
|
|
[CveCuenta] int IDENTITY(1,1) NOT NULL,
|
|
[CveClasificacionCuenta] int NOT NULL,
|
|
[Codigo] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Nombre] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Afectable] bit NOT NULL,
|
|
[TipoCuenta] int NOT NULL,
|
|
[Estatus] bit NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveCuentaPadre] int NULL,
|
|
[CveMoneda] int NULL,
|
|
[CveAgrupadorSAT] int NULL,
|
|
[DigAgrup] int NULL,
|
|
[NomIdioma] varchar(250) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveConceptoAdmin] int NULL,
|
|
[CveCliente] int NULL,
|
|
[PorcentajeImpuesto] money NULL,
|
|
[CveBancoCuenta] int NULL,
|
|
[CodigoVinculacion] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CodigoAgrupacion] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Conta_Cuentas] PRIMARY KEY CLUSTERED ([CveCuenta])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [CK_Conta_Cuentas_Padre] CHECK ([CveCuentaPadre]<>[CveCuenta]),
|
|
CONSTRAINT [CK_Conta_Cuentas_Padre_Requerido] CHECK ([CveCuentaPadre] IS NOT NULL OR ([Codigo]='_ORDEN' OR [Codigo]='_ESTADISTICAS' OR [Codigo]='_GLOBAL'))
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Clientes] (
|
|
[CveCliente] int IDENTITY(1,1) NOT NULL,
|
|
[Nombre] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Codigo] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreCorto] varchar(30) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreComercial] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ApellidoPaterno] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ApellidoMaterno] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Nombres] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Sucursal] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Direccion] varchar(90) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NoExt] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NoInt] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Colonia] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Localidad] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Ciudad] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estado] varchar(35) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveSATEstado] int NOT NULL,
|
|
[Pais] varchar(50) COLLATE Modern_Spanish_CS_AI DEFAULT ('México') NOT NULL,
|
|
[RFC] varchar(15) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CP] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Telefono] varchar(25) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TelefonoExtension] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TelefonoOtros] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Contacto] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Mail] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Pagina] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Giro] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EnviarFactura] bit DEFAULT ((1)) NOT NULL,
|
|
[NotificarA] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSucursal] int NULL,
|
|
[RetIVA] float(53) DEFAULT ((0)) NOT NULL,
|
|
[RetISR] float(53) DEFAULT ((0)) NOT NULL,
|
|
[RetIVAFletes] bit DEFAULT ((0)) NOT NULL,
|
|
[ConvenioCIE] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[LimiteCredito] float(53) DEFAULT ((0)) NOT NULL,
|
|
[PlazoCobranza] int DEFAULT ((0)) NOT NULL,
|
|
[PlazoCobranzaRemision] smallint DEFAULT ((0)) NOT NULL,
|
|
[RecepcionPagos] varchar(15) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoPago] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Vendedor] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveVendedor] int NULL,
|
|
[Tipo] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FormaFacturacion] varchar(13) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] date NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[NumCtaPago] varchar(30) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[BKEliminarCveMetodoPago] int NULL,
|
|
[AplicaFEMSA] bit DEFAULT ((0)) NOT NULL,
|
|
[FEMSA_NumSociedad] varchar(4) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FEMSA_NumProveedor] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FEMSA_Mail] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[AplicaDetallista] bit DEFAULT ((0)) NOT NULL,
|
|
[Detallista_GLNComprador] varchar(18) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Detallista_Departamento] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Detallista_GLNVendedor] varchar(18) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Detallista_NumProveedor] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[SevenEleven_NumProveedor] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[AplicaFord] bit DEFAULT ((0)) NOT NULL,
|
|
[Ford_GSDB] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CvePrecioLista] int NULL,
|
|
[CveCondicionEntrega] int NULL,
|
|
[PermiteCredito] bit NULL,
|
|
[MailCotizacion] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveClienteClasificacion] int NULL,
|
|
[CveUsuarioResponsable] int NULL,
|
|
[CveUsuarioModifico] int NULL,
|
|
[ImprimeNombreSucursal] bit DEFAULT ((0)) NULL,
|
|
[TipoCliente] int DEFAULT ((1)) NULL,
|
|
[CveZonaHoraria] int NULL,
|
|
[CobranzaContacto] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CobranzaTelefono] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CobranzaExt] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CobranzaCorreo] varchar(2000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSubProyecto] int NULL,
|
|
[Horario] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Documentacion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[PortalFacturacion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSucursal2] int NULL,
|
|
[DiasPago] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[UsuarioPortal] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[PasswordPortal] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DiasRevision] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ObservacionRevision] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ReferenciaFiscal] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Celular] varchar(15) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ExtOtros] varchar(15) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveUsoCFDI] tinyint NULL,
|
|
[CveFormaPago] tinyint NULL,
|
|
[CveMetodoPago] tinyint NULL,
|
|
[CveClienteCorporativo] int NULL,
|
|
[DesglosaIEPS] bit DEFAULT ((1)) NOT NULL,
|
|
[AplicaComercioExterior] bit DEFAULT ((0)) NULL,
|
|
[CveTipoOperacion] int NULL,
|
|
[CvePedimento] int NULL,
|
|
[CveIncoterm] int NULL,
|
|
[CvePais] int NULL,
|
|
[CveEstado] int NULL,
|
|
[CveMunicipio] int NULL,
|
|
[CveColonia] int NULL,
|
|
[NumRegIdTrib] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveMotivoTraslado] tinyint NULL,
|
|
[ComExtEstado] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComExtMunicipio] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComExtColonia] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[RequiereOC] bit DEFAULT ((0)) NOT NULL,
|
|
[EsDistribuidor] bit DEFAULT ((0)) NOT NULL,
|
|
[BonificacionUsado] bit DEFAULT ((0)) NOT NULL,
|
|
[CargoUsado] bit DEFAULT ((0)) NOT NULL,
|
|
[CveTipoRetencion] tinyint NULL,
|
|
[CorreoEntregaCompras] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CorreoEntregaAlmacen] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Punto] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveAdminTrayecto] tinyint NULL,
|
|
[NoDesglosaIVA] bit DEFAULT ((0)) NULL,
|
|
[CorreoCumplimiento] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveRegimenFiscal] tinyint NULL,
|
|
[RegimenSociedad] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoPersona] bit NULL,
|
|
[RepresentanteLegal] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaLimiteCredito] date NULL,
|
|
[ComExtCalle] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComExtNumExt] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComExtCP] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Genero] bit NULL,
|
|
[CveAlmacenAsignado] int NULL,
|
|
[CveAlmacenAlterno] int NULL,
|
|
[CveAlmacenConsignacion] int NULL,
|
|
[UsaProductoAlterno] bit DEFAULT ((0)) NULL,
|
|
[EnDemanda] bit DEFAULT ((0)) NULL,
|
|
[EnQuebranto] bit DEFAULT ((0)) NOT NULL,
|
|
[CreditoRegistroFirmas] varchar(250) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[GastosEnvio] smallmoney NULL,
|
|
[EsFilial] bit DEFAULT ((0)) NOT NULL,
|
|
[Aseguradora] bit DEFAULT ((0)) NULL,
|
|
[CveSubProyectoCobranza] int NULL,
|
|
[InformacionCompleta] bit DEFAULT ((1)) NULL,
|
|
[VentasComplementos] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Clientes] PRIMARY KEY CLUSTERED ([CveCliente])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [CK_Clientes_RFC_Requerido] CHECK ([RFC]<>'')
|
|
)
|
|
ON [PRIMARY]
|
|
TEXTIMAGE_ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_TiposPoliza] (
|
|
[CveTipoPoliza] int NOT NULL,
|
|
[TipoPoliza] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Conta_TiposPoliza] PRIMARY KEY CLUSTERED ([CveTipoPoliza])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_ContaTipoPoliza] UNIQUE NONCLUSTERED ([TipoPoliza] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_PlantillasPolizas] (
|
|
[CvePlantillaPoliza] int NOT NULL,
|
|
[PlantillaPoliza] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[TipoPlantilla] bit DEFAULT ((0)) NOT NULL,
|
|
[TipoPoliza] smallint NOT NULL,
|
|
[Orden] smallint DEFAULT ((0)) NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Conta_PlantillasPolizas] PRIMARY KEY CLUSTERED ([CvePlantillaPoliza])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_Monedas] (
|
|
[CveMoneda] int IDENTITY(1,1) NOT NULL,
|
|
[Moneda] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Abreviatura] varchar(3) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[AbreviaturaSAT] varchar(5) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[LayoutBBVA] varchar(3) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Alias1] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alias2] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alias3] varchar(30) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] datetime DEFAULT (getdate()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Monedas] PRIMARY KEY CLUSTERED ([CveMoneda])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_Moneda] UNIQUE NONCLUSTERED ([Moneda] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_PrePolizas] (
|
|
[CvePrePoliza] int IDENTITY(1,1) NOT NULL,
|
|
[CveCliente] int NULL,
|
|
[Modulo] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CvePlantillaPoliza] int NOT NULL,
|
|
[CveTipoPoliza] int NOT NULL,
|
|
[Cargos] money DEFAULT ((0)) NOT NULL,
|
|
[Abonos] money DEFAULT ((0)) NOT NULL,
|
|
[CveMoneda] int NOT NULL,
|
|
[Fecha] date NOT NULL,
|
|
[Concepto] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NumeroPoliza] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FolioPoliza] int NULL,
|
|
[FolioFijo] int NULL,
|
|
[FechaConta] datetime NULL,
|
|
[IdPoliza] int NULL,
|
|
[CodigoNumeroPoliza] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CvePrePolizaUnificada] int NULL,
|
|
[CvePrePolizaPadre] int NULL,
|
|
[CveUsuarioModifico] int NULL,
|
|
[AnioMes] AS (CONVERT([varchar](6),[Fecha],(112))) PERSISTED,
|
|
[TipoContable] bit DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Conta_PrePolizas] PRIMARY KEY CLUSTERED ([CvePrePoliza])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [CK_Conta_PrePolizas_Concepto] CHECK (rtrim([Concepto])<>''),
|
|
CONSTRAINT [CK_Conta_PrePolizas_Fecha_2000_2050] CHECK ([Fecha]>='2000-01-01' AND [Fecha]<='2050/12/31'),
|
|
CONSTRAINT [CK_Conta_PrePolizas_FolioPoliza] CHECK ([IdPoliza]>(0) AND isnull([FolioPoliza],(0))>(0) OR ([IdPoliza] IS NULL OR [IdPoliza]=(0)))
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_UnidadesMedida] (
|
|
[CveSATUnidadMedida] int IDENTITY(1,1) NOT NULL,
|
|
[SATClaveUnidadMedida] nvarchar(255) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Nombre] nvarchar(255) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] nvarchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Simbolo] nvarchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Gral_SAT_UnidadesMedida] PRIMARY KEY CLUSTERED ([CveSATUnidadMedida])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UK_Gral_SAT_UnidadesMedida] UNIQUE NONCLUSTERED ([SATClaveUnidadMedida] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_CP_MaterialPeligroso] (
|
|
[CveMaterialPeligroso] int IDENTITY(1,1) NOT NULL,
|
|
[ClaveMaterialPeligroso] varchar(10) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[MaterialPeligroso] varchar(390) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ClaseoDiv] varchar(8) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[PeligroSecundario] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NombreTecnico] varchar(400) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaDeInicioDeVigencia] date NULL,
|
|
[Version] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Gral_SAT_CP_MaterialPeligroso] PRIMARY KEY CLUSTERED ([CveMaterialPeligroso])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[UnidadesMedida] (
|
|
[CveUnidadMedida] int IDENTITY(1,1) NOT NULL,
|
|
[UnidadMedida] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Abreviatura] varchar(15) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Alias1] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alias2] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alias3] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alias4] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSATUnidadMedida] int NULL,
|
|
[Estado] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] date NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveUnidadMedidaSAT] int NULL,
|
|
[CveImpEmpaque] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveImpUM] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_UnidadesMedida] PRIMARY KEY CLUSTERED ([CveUnidadMedida])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_UnidadesMedida] UNIQUE NONCLUSTERED ([Abreviatura] ASC )
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_ObjetoImpuesto] (
|
|
[CveObjetoImpuesto] tinyint NOT NULL,
|
|
[ObjetoImpuesto] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CodigoObjetoImpuesto] varchar(2) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
CONSTRAINT [PK_Gral_ObjetoImpuesto] PRIMARY KEY CLUSTERED ([CveObjetoImpuesto])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[ProductosServicios] (
|
|
[CvePS] int IDENTITY(1,1) NOT NULL,
|
|
[CveClasificacion] int NOT NULL,
|
|
[CveUnidadMedida] int NOT NULL,
|
|
[CveClasificacionCosto] int NULL,
|
|
[CveClasificacionPresupuesto] int NULL,
|
|
[Codigo] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NumeroParte] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CodigoBarras] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[PS] varchar(846) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[PSExtranjero] varchar(846) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveMarca] int NULL,
|
|
[Precio] float(53) DEFAULT ((0)) NOT NULL,
|
|
[IVA] float(53) NULL,
|
|
[RetIVA] float(53) DEFAULT ((0)) NOT NULL,
|
|
[MargenGanancia] float(53) DEFAULT ((0)) NOT NULL,
|
|
[Estado] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] smalldatetime NOT NULL,
|
|
[IdCtaContVentas] int DEFAULT ((0)) NOT NULL,
|
|
[IdCtaContCompras] int DEFAULT ((0)) NOT NULL,
|
|
[IdCtaContInventarios] int DEFAULT ((0)) NOT NULL,
|
|
[AsientoContableVentas] int DEFAULT ((1)) NOT NULL,
|
|
[AsientoContableCompras] int DEFAULT ((1)) NOT NULL,
|
|
[CveTipoPS] int DEFAULT ((1)) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[Borrame] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSegmentoNegocio] int NULL,
|
|
[AplicaParaConcepto] bit DEFAULT ((1)) NOT NULL,
|
|
[Inv_CveMetodoInventario] smallint DEFAULT ((0)) NULL,
|
|
[CostoPromedio] money DEFAULT ((0)) NULL,
|
|
[AlmacenSeccion] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[AplicaSerieLote] bit NULL,
|
|
[AplicaParaVenta] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaCaducidad] bit DEFAULT ((0)) NULL,
|
|
[AplicaLote] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaSerie] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaSeccion] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaPesoKg] bit DEFAULT ((0)) NOT NULL,
|
|
[EsPaquete] bit DEFAULT ((0)) NULL,
|
|
[CveMoneda] int DEFAULT ((1)) NULL,
|
|
[Imagen] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[VentaSinExistencia] bit DEFAULT ((0)) NULL,
|
|
[FuePorXML] bit DEFAULT ((1)) NULL,
|
|
[EsAdminPAQ] bit DEFAULT ((0)) NULL,
|
|
[PendienteEnOC] bit NULL,
|
|
[Estado2] smallint NULL,
|
|
[CveClasificacion2] int NULL,
|
|
[CodigoPS] AS (case when len([Codigo])>(0) then concat([Codigo],' - ',[PS]) else [PS] end),
|
|
[AplicaIEPS] bit NULL,
|
|
[IEPSGrabaIVA] bit NULL,
|
|
[IEPSPorcentaje] float(53) NULL,
|
|
[CveConceptoContable] int NULL,
|
|
[CveCompuesto] int NULL,
|
|
[CveSATPS] int NULL,
|
|
[Inventariable] bit DEFAULT ((0)) NOT NULL,
|
|
[VentaMinima] smallmoney NULL,
|
|
[RetISR] float(53) NULL,
|
|
[PrecioMinimo] money NULL,
|
|
[CveTipoFactor] int DEFAULT ((1)) NULL,
|
|
[CveTipoFactorIEPS] tinyint NULL,
|
|
[CveFraccionArancelaria] int NULL,
|
|
[CveUsuarioModifico] int NULL,
|
|
[FechaUltimaModificacion] datetime NULL,
|
|
[CveClasificacionDetalle] int NULL,
|
|
[CveTamaño] int NULL,
|
|
[ClaveImpuestoEmpaque] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaveImpuestoUM] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaveCategoriaToxicidad] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaveImpuestoTipoProducto] varchar(3) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CvePSAdicional] int NULL,
|
|
[PrecioMinimoAnterior] money NULL,
|
|
[Litraje] float(53) NULL,
|
|
[Code17] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsOutSourcing] bit DEFAULT ((0)) NOT NULL,
|
|
[TiempoCaducidad] smallint NULL,
|
|
[CantidadEmpaque] smallmoney NULL,
|
|
[PrecioLibre] bit DEFAULT ((0)) NOT NULL,
|
|
[PesoKg] smallmoney NULL,
|
|
[CveMaterialPeligroso] int NULL,
|
|
[CveEmbalaje] int NULL,
|
|
[Dimensiones] varchar(25) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveObjetoImpuesto] tinyint DEFAULT ((2)) NOT NULL,
|
|
[RegistroRSCO] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaVigenciaRSCO] date NULL,
|
|
[VigenciaIndeterminadaRSCO] bit NULL,
|
|
[NombreComercial] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NotasAdicionales] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EcommerceEtiquetas] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ActivoEcommerce] bit DEFAULT ((0)) NOT NULL,
|
|
[EcommercePrecio] smallmoney NULL,
|
|
[CveClasificacionEcommerce] int NULL,
|
|
[EcommerceCantidad] smallmoney NULL,
|
|
[CodigoAlterno] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[PSAlterno] varchar(846) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ProductoExhibicion] bit NULL,
|
|
[PorcentajeMinimoUtilidad] smallmoney NULL,
|
|
[CveSelectiva] int NULL,
|
|
[UltimoCosto] numeric(14,6) NULL,
|
|
[UltimoCostoFecha] date NULL,
|
|
[UltimoCostoExtranjera] numeric(14,6) NULL,
|
|
[CveTipoRotacion] tinyint NULL,
|
|
CONSTRAINT [PK_ProductosServicios] PRIMARY KEY CLUSTERED ([CvePS])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [CK_ProductosServicios_IVA] CHECK ([IVA]=(-1) OR [IVA]=(0) OR [IVA] IS NULL),
|
|
CONSTRAINT [CK_AsientoContableCompras] CHECK ([AsientoContableCompras]=(3) OR [AsientoContableCompras]=(2) OR [AsientoContableCompras]=(1)),
|
|
CONSTRAINT [CK_AsientoContableVentas] CHECK ([AsientoContableVentas]=(2) OR [AsientoContableVentas]=(1))
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Inv_TiposAlmacenes] (
|
|
[CveTipoAlmacen] int NOT NULL,
|
|
[TipoAlmacen] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] date NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[DeSistema] bit DEFAULT ((0)) NOT NULL,
|
|
CONSTRAINT [PK_INV_TiposAlmacenes] PRIMARY KEY CLUSTERED ([CveTipoAlmacen])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_INV_TiposAlmacenes] UNIQUE NONCLUSTERED ([TipoAlmacen] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Inv_Almacenes] (
|
|
[CveAlmacen] int IDENTITY(1,1) NOT NULL,
|
|
[Almacen] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveSubProyecto] int NOT NULL,
|
|
[CveTipoAlmacen] int NOT NULL,
|
|
[AlmacenAbreviatura] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] date NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[Modalidad] tinyint DEFAULT ((0)) NULL,
|
|
[Inventariable] bit DEFAULT ((0)) NOT NULL,
|
|
[Orden] smallint DEFAULT ((0)) NOT NULL,
|
|
[CveUsuarioAutoriza] int NULL,
|
|
[CveAlmacenVirtual] int NULL,
|
|
[EsAlmacenPT] bit DEFAULT ((0)) NULL,
|
|
[CveAlmacenRef1] int NULL,
|
|
[CveAlmacenRef2] int NULL,
|
|
[CveAlmacenRef3] int NULL,
|
|
[CveAlmacenRef4] int NULL,
|
|
[CveAlmacenRef5] int NULL,
|
|
CONSTRAINT [PK_INV_Almacenes] PRIMARY KEY CLUSTERED ([CveAlmacen])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_INV_Almacenes] UNIQUE NONCLUSTERED ([Almacen] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_ClientesSucursales] (
|
|
[CveClienteSucursal] int IDENTITY(1,1) NOT NULL,
|
|
[CveCliente] int NOT NULL,
|
|
[SucursalCliente] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[Ciudad] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Colonia] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CP] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Direccion] varchar(90) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estado] varchar(35) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Localidad] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Pais] varchar(50) COLLATE Modern_Spanish_CS_AI DEFAULT ('Mexico') NULL,
|
|
[NoExt] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NoInt] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Telefono] varchar(25) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Correo] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Contacto] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveVendedor] int NULL,
|
|
[CorreoCotizacion] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NumCtaPago] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveMetodoPago] int NULL,
|
|
[LimiteCredito] money NULL,
|
|
[CveResponsableCobranza] int NULL,
|
|
[CveMetodoPago33] tinyint NULL,
|
|
[CveFormaPago33] tinyint NULL,
|
|
[CveUsoCFDI] tinyint NULL,
|
|
[Punto] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[RFC] varchar(15) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveAlmacenAsignado] int NULL,
|
|
[CveAlmacenAlterno] int NULL,
|
|
[CveAlmacenConsignacion] int NULL,
|
|
CONSTRAINT [PK_ClientesSucursal] PRIMARY KEY CLUSTERED ([CveClienteSucursal])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_Vta_ClientesSucursales] UNIQUE NONCLUSTERED ([CveCliente] ASC, [SucursalCliente] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_Procedimientos] (
|
|
[CveProcedimiento] int IDENTITY(1,1) NOT NULL,
|
|
[Procedimiento] varchar(150) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit NOT NULL,
|
|
[FechaIng] datetime DEFAULT (getdate()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Vta_Procedimientos] PRIMARY KEY CLUSTERED ([CveProcedimiento])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Ventas] (
|
|
[CveVenta] int IDENTITY(1,1) NOT NULL,
|
|
[FolioFiscal] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoDocto] varchar(3) COLLATE Modern_Spanish_CS_AI DEFAULT ('Ing') NOT NULL,
|
|
[Serie] varchar(10) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Folio] int NOT NULL,
|
|
[SerieFolio] AS (concat(case when [Serie]<>'' then [Serie]+'-' else '' end,[Folio])),
|
|
[Fecha] datetime NOT NULL,
|
|
[FechaTimbrado] datetime NULL,
|
|
[CveCliente] int NULL,
|
|
[CveClienteSucursal] int NULL,
|
|
[SubTotal] float(53) NOT NULL,
|
|
[Descuento] float(53) DEFAULT ((0)) NOT NULL,
|
|
[Amortizacion] float(53) DEFAULT ((0)) NOT NULL,
|
|
[IVA] float(53) NOT NULL,
|
|
[IEPS] float(53) DEFAULT ((0.00)) NULL,
|
|
[RetIVA] float(53) DEFAULT ((0)) NOT NULL,
|
|
[RetISR] float(53) DEFAULT ((0)) NOT NULL,
|
|
[ImpuestoLocal] float(53) DEFAULT ((0)) NULL,
|
|
[Total] float(53) NOT NULL,
|
|
[CveMoneda] int DEFAULT ((1)) NOT NULL,
|
|
[TipoCambio] float(53) DEFAULT ((1)) NOT NULL,
|
|
[CveMetodoPago] int NULL,
|
|
[CondicionesPago] int DEFAULT ((0)) NOT NULL,
|
|
[FormaPago] int NULL,
|
|
[MotivoDescuento] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Observaciones] varchar(2000) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveEstatusFactura] int DEFAULT ((2)) NOT NULL,
|
|
[EnvioMail] int DEFAULT ((0)) NOT NULL,
|
|
[SeTimbro] bit DEFAULT ((0)) NOT NULL,
|
|
[MotivoCancelacion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaEjecucion] datetime NOT NULL,
|
|
[CveSubProyecto] int DEFAULT ((0)) NOT NULL,
|
|
[CveVendedor] int DEFAULT ((0)) NULL,
|
|
[Alfa1] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alfa2] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Alfa3] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Num1] float(53) NULL,
|
|
[Num2] float(53) NULL,
|
|
[Num3] float(53) NULL,
|
|
[Fech1] date NULL,
|
|
[Fech2] date NULL,
|
|
[Fech3] date NULL,
|
|
[SelloCancelacion] varchar(800) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaCancelacion] datetime NULL,
|
|
[EstatusCancelacion] tinyint NULL,
|
|
[IdPoliza] int NULL,
|
|
[IdPolizaCancelacion] int NULL,
|
|
[CveVentaPadre] int NULL,
|
|
[NumeroPersonas] tinyint DEFAULT ((0)) NOT NULL,
|
|
[FechaCierre] datetime NULL,
|
|
[Propina] float(53) NULL,
|
|
[CveVentaTerminal] int NULL,
|
|
[CvePrePoliza] int NULL,
|
|
[AtencionA] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveContrato] int NULL,
|
|
[FechaIng] datetime NULL,
|
|
[Det_OrdenCompra] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Det_FechaOrdenCompra] varchar(15) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Otros] money DEFAULT ((0)) NULL,
|
|
[EsFacturaPrueba] bit DEFAULT ((0)) NOT NULL,
|
|
[Ref] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NumeroCuenta] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaVencimiento2] date NULL,
|
|
[DiasVencimiento] AS (datediff(day,[FechaVencimiento2],getdate())),
|
|
[CveVentaFacturada] int NULL,
|
|
[CvePAC] int NULL,
|
|
[Vigencia] date NULL,
|
|
[Entrega] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TiempoEntrega] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveAlmacenTraspasoDestino] int NULL,
|
|
[CveAlmacenTraspasoOrigen] int NULL,
|
|
[EsDevolucionPedido] bit NULL,
|
|
[EsDevolucionVenta] tinyint DEFAULT ((0)) NOT NULL,
|
|
[CveDireccionEnvio] int NULL,
|
|
[CveOC] int NULL,
|
|
[RemisionFacturada] bit DEFAULT ((0)) NOT NULL,
|
|
[CvePACCancelacion] int NULL,
|
|
[TelefonoGenerico] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveCondicionEntrega] int NULL,
|
|
[PedidoContrato] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[SATValidadoTimbrado] bit DEFAULT ((0)) NULL,
|
|
[SATValidadoCancelado] bit DEFAULT ((0)) NULL,
|
|
[ObservacionesAlmacen] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CotizacionFacturada] bit NULL,
|
|
[CveSubProyectoEjecucion] int NULL,
|
|
[CveSubProyectoCobranza] int NULL,
|
|
[CveCobranzaEstatus] int NULL,
|
|
[FechaCobranza] datetime NULL,
|
|
[CveUsuarioCobranza] int NULL,
|
|
[CobranzaObservacion] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveCobranzaEstatusTurno] int NULL,
|
|
[TipoProceso] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoComite] varchar(255) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[IdContabilidad] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveFormaPago33] tinyint NULL,
|
|
[CveMetodoPago33] tinyint NULL,
|
|
[CveUsoCFDI] tinyint NULL,
|
|
[OrdenCompra] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveCuentaTerminal] int NULL,
|
|
[CveTipoRelacion] int NULL,
|
|
[ImporteRelacion] money NULL,
|
|
[CveTipoAmortizacionAnticipo] int NULL,
|
|
[CveVentaRelacion] int NULL,
|
|
[Pedido2Facturado] bit DEFAULT ((0)) NULL,
|
|
[EsInterno] bit NULL,
|
|
[CveAcercamiento] int NULL,
|
|
[TipoCambioOriginal] float(53) NULL,
|
|
[TipoCambioValuacion] float(53) NULL,
|
|
[DiasCredito] int NULL,
|
|
[EsDiasCreditoFijo] bit DEFAULT ((0)) NULL,
|
|
[SeCancelaRemision] bit DEFAULT ((0)) NULL,
|
|
[CveEstatusRefacturacion] tinyint NULL,
|
|
[AnticipoEspecial] bit DEFAULT ((0)) NOT NULL,
|
|
[CveUsuarioCambioEstatus] int NULL,
|
|
[FechaCambioEstatus] datetime NULL,
|
|
[RealizarDevolucionAlmacen] bit NULL,
|
|
[CveAlmacenDevolucionVenta] int NULL,
|
|
[CveMovSalidaAlmacen] tinyint DEFAULT ((1)) NOT NULL,
|
|
[Kilometraje] float(53) NULL,
|
|
[EsAmortizacion] bit NULL,
|
|
[CveTipoRetencion] tinyint NULL,
|
|
[CorreoNotificacion] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FormaPaqueteria] int NULL,
|
|
[VentaDesglosaIEPS] bit NULL,
|
|
[FacturarSucursal] bit NULL,
|
|
[CveVentaAutorizacion] int NULL,
|
|
[CveAlmacenSurtio] int NULL,
|
|
[ServicioDomicilio] bit NULL,
|
|
[RFCReceptor] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Adjunto] varchar(150) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DevolucionImportePagado] money NULL,
|
|
[CveMotivoCancelacion] int NULL,
|
|
[EsGarantia] bit DEFAULT ((0)) NOT NULL,
|
|
[EstadoCancelacion] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveEstadoCancelacion] tinyint NULL,
|
|
[CveOPAgropecuaria] int NULL,
|
|
[SelloSolicitudCancelacion] varchar(800) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CFDIVersion] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveLineaAdicional] int NULL,
|
|
[CveLineaAdicionalEstatus] int NULL,
|
|
[LineaAdicionalComprobante] varchar(250) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DescripcionVenta] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveMedico] int NULL,
|
|
[CveProcedimiento] int NULL,
|
|
[CveTipoVenta] int NULL,
|
|
[RequiereOS] bit NULL,
|
|
[FechaParaSurtir] datetime NOT NULL,
|
|
[Paciente] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Episodio] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsFacturaGlobal] bit DEFAULT ((0)) NULL,
|
|
[CveSATPeriodicidad] int NULL,
|
|
[CveSATMes] int NULL,
|
|
[SATAnio] int NULL,
|
|
[AnticipoAutorizado] int NULL,
|
|
[CveMotivoDevolucion] int NULL,
|
|
[Addenda] varchar(2000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Bloqueada] bit DEFAULT ((0)) NULL,
|
|
[CveUsuarioModifico] int NULL,
|
|
[CveComplementoTimbrado] int NULL,
|
|
[ComplementoSAT] varchar(2000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Procesando] bit DEFAULT ((0)) NULL,
|
|
CONSTRAINT [PK_Ventas] PRIMARY KEY CLUSTERED ([CveVenta])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UK_Ventas_TipoDocto_Serie_Folio_CveSubProyecto] UNIQUE NONCLUSTERED ([CveSubProyecto] ASC, [TipoDocto] ASC, [Serie] ASC, [Folio] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [CK_Ventas] CHECK ([TipoDocto]='Egs' OR [TipoDocto]='Dev' OR [TipoDocto]='Ing' OR [TipoDocto]='Cot' OR [TipoDocto]='Rem' OR [TipoDocto]='Ped' OR [TipoDocto]='DPe' OR [TipoDocto]='Com' OR [TipoDocto]='OP' OR [TipoDocto]='Nom' OR [TipoDocto]='Ant' OR [TipoDocto]='PeC' OR [TipoDocto]='Pd2' OR [TipoDocto]='PA' OR [TipoDocto]='RNC' OR [TipoDocto]='Rmm'),
|
|
CONSTRAINT [CK_Ventas_TMp_AlmacenInactivo] CHECK ([CveAlmacenTraspasoDestino]<>(172) AND [CveVenta]>(1012251) OR [CveVenta]<=(1012251)),
|
|
CONSTRAINT [CK_Ventas_Dev_CveVentaPadre] CHECK ([TipoDocto]='Dev' AND [CveVentaPadre]>(0) OR [TipoDocto]<>'Dev'),
|
|
CONSTRAINT [CK_Ventas_Moneda_TipoCambio] CHECK ([CveMoneda]>=(2) AND [TipoCambio]>=(10) OR [CveMoneda]=(1) AND [TipoCambio]=(1)),
|
|
CONSTRAINT [CHK_VentasMail] CHECK ([EnvioMail]=(3) OR [EnvioMail]=(2) OR [EnvioMail]=(1) OR [EnvioMail]=(0)),
|
|
CONSTRAINT [CK_Ventas_1] CHECK ([CveCliente]>(0)),
|
|
CONSTRAINT [CK_Ventas_FechaEjecucion_MinMax] CHECK ([FechaEjecucion]>'1900-01-01' AND [FechaEjecucion]<'2900-12-31'),
|
|
CONSTRAINT [CK_Ventas_Total] CHECK (datepart(year,[Fecha])>=(2018) AND abs(round([Total],(2))-round(((((((isnull([SubTotal],(0))+isnull([IVA],(0)))+isnull([IEPS],(0)))-isnull([Amortizacion],(0)))-isnull([RetIVA],(0)))-isnull([RetISR],(0)))-isnull([Descuento],(0)))-isnull([ImpuestoLocal],(0)),(2)))<(200.02) OR datepart(year,[Fecha])<(2018))
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_PrePolizasDetalle] (
|
|
[CvePrePolizaDetalle] int IDENTITY(1,1) NOT NULL,
|
|
[CvePrePoliza] int NOT NULL,
|
|
[CvePrePolizaOriginal] int NULL,
|
|
[CveConceptoContable] int NOT NULL,
|
|
[TipoMovto] bit NOT NULL,
|
|
[Importe] money NOT NULL,
|
|
[ImporteME] money NULL,
|
|
[ImporteMN] money NULL,
|
|
[TC] decimal(12,9) DEFAULT ((1)) NULL,
|
|
[TCPago] decimal(12,9) DEFAULT ((1)) NULL,
|
|
[Contabilizable] bit DEFAULT ((1)) NOT NULL,
|
|
[Bloqueado] bit DEFAULT ((0)) NOT NULL,
|
|
[IdCtaContable] int DEFAULT ((0)) NOT NULL,
|
|
[CveCuenta] int NULL,
|
|
[Referencia] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Concepto] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveCliente] int NULL,
|
|
[CveVenta] int NULL,
|
|
[CveVentaAmortizacion] int NULL,
|
|
[CveCompra] int NULL,
|
|
[CveCompraAmortizacion] int NULL,
|
|
[CveClasificacion] int NULL,
|
|
[CveTipoGasto] int NULL,
|
|
[CveSubProyecto] int NULL,
|
|
[CveIE] int NULL,
|
|
[CveIEDevolucion] int NULL,
|
|
[CveMovimientoAlmacen] int NULL,
|
|
[CvePersonal] int NULL,
|
|
[CveActivoFijo] int NULL,
|
|
[CveCreditoDetalle] int NULL,
|
|
[CveOC] int NULL,
|
|
[CveOCDetalle] int NULL,
|
|
[Agrupacion] int NULL,
|
|
[PorcentajeImpuesto] smallmoney NULL,
|
|
[CveNominaMovtoPermanente] int NULL,
|
|
[Orden] smallint NULL,
|
|
[CveUsuarioModifico] int NULL,
|
|
[CveColectiva] smallint NULL,
|
|
[CveNominaConcepto] int NULL,
|
|
CONSTRAINT [PK_Conta_PrePolizasDetalle] PRIMARY KEY CLUSTERED ([CvePrePolizaDetalle])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_Localidad] (
|
|
[CveLocalidad] int IDENTITY(1,1) NOT NULL,
|
|
[ClaveSATLocalidad] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ClaveSATEstado] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NombreLocalidad] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
CONSTRAINT [PK_Gral_SAT_Localidad] PRIMARY KEY CLUSTERED ([CveLocalidad])
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_Estado] (
|
|
[CveEstado] int IDENTITY(1,1) NOT NULL,
|
|
[ClaveSATEstado] varchar(5) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ClaveSATPais] varchar(3) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NombreEstado] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ClaveImpuestoEstado] varchar(2) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaveEstadoCorteva] int NULL,
|
|
CONSTRAINT [PK_Gral_SAT_Estado] PRIMARY KEY CLUSTERED ([CveEstado])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Proyectos] (
|
|
[CveProyecto] int IDENTITY(1,1) NOT NULL,
|
|
[Proyecto] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveSucursal] int NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] date DEFAULT (getdate()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveTipoNomina] int DEFAULT ((0)) NOT NULL,
|
|
CONSTRAINT [PK_Proyectos] PRIMARY KEY CLUSTERED ([CveProyecto])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_Proyectos] UNIQUE NONCLUSTERED ([Proyecto] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[SubProyectos] (
|
|
[CveSubProyecto] int IDENTITY(1,1) NOT NULL,
|
|
[CveProyecto] int NOT NULL,
|
|
[ClaveSubProyecto] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[SubProyecto] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[IdSegNeg] int DEFAULT ((1)) NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] date DEFAULT (getdate()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[IdCuentaGasto] int NULL,
|
|
[CuentaGasto] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSubPrograma] int NULL,
|
|
[CveClasificacionGeografica] int NULL,
|
|
[CveSucursal] int NULL,
|
|
[CveUsuarioNomina] int NULL,
|
|
[Serie] varchar(15) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[IVA] float(53) NULL,
|
|
[Calle] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NoExt] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[NoInt] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Colonia] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Localidad] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Municipio] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Pais] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CP] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveSubProyectoPadre] int NULL,
|
|
[Estado] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FormatoFactura] varchar(25) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoFormato] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoVenta] tinyint NULL,
|
|
[Telefono] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TipoSucursal] tinyint NULL,
|
|
[EsSucursal] tinyint NOT NULL,
|
|
[CvePais] int NULL,
|
|
[CveEstado] int NULL,
|
|
[CveMunicipio] int NULL,
|
|
[CveColonia] int NULL,
|
|
[AplicaComercioExterior] bit NULL,
|
|
[Correo] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[UTCOffsetVerano] int NULL,
|
|
[UTCOffsetInvierno] int NULL,
|
|
[NoVerificaAlmacen] bit NULL,
|
|
[CodigoSucursal] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Acum_CentroServicio] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Orden] smallint NULL,
|
|
[CveLocalidad] int NULL,
|
|
[Acum_PortalUsuario] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Acum_PortalContrasena] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[DeshabilitaAutorizacion] bit NULL,
|
|
[CveClientePublicoGral] int NULL,
|
|
CONSTRAINT [PK_SubProyectos] PRIMARY KEY CLUSTERED ([CveSubProyecto])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_SubProyectos] UNIQUE NONCLUSTERED ([CveProyecto] ASC, [SubProyecto] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_SAT_UsosCFDI] (
|
|
[CveUsoCFDI] tinyint NOT NULL,
|
|
[UsoCFDI] varchar(5) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[AplicaPersonaFisica] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaPersonaMoral] bit DEFAULT ((0)) NOT NULL,
|
|
[RegimenFiscalReceptor] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
CONSTRAINT [PK_Gral_SAT_UsosCFDI] PRIMARY KEY CLUSTERED ([CveUsoCFDI])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_Vendedores] (
|
|
[CveVendedor] int IDENTITY(1,1) NOT NULL,
|
|
[Codigo] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Vendedor] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Correo] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Telefono] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveEsquemaComision] int NULL,
|
|
[Celular] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TituloDocumentos] varchar(150) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsSupervisor] bit NULL,
|
|
[CveSupervisor] int NULL,
|
|
[VendedorTipo] tinyint NULL,
|
|
[CveSuperior] int NULL,
|
|
[CveSubProyecto] int NULL,
|
|
[CorreoAdicionalNotificaciones] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
CONSTRAINT [PK_Vta_Vendedores] PRIMARY KEY CLUSTERED ([CveVendedor])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_FormaPago] (
|
|
[CveFormaPago] tinyint NOT NULL,
|
|
[FormaPago] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaveFormaPagoSAT] varchar(2) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[FechaIng] date NULL,
|
|
CONSTRAINT [PK_Vta_FormaPago] PRIMARY KEY CLUSTERED ([CveFormaPago])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sis_PAC] (
|
|
[CvePAC] int NOT NULL,
|
|
[PAC] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Sis_PAC] PRIMARY KEY CLUSTERED ([CvePAC])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_MetodoPago] (
|
|
[CveMetodoPago] tinyint NOT NULL,
|
|
[MetodoPago] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ClaveMetodoPagoSAT] varchar(5) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[CveUsuario] int NULL,
|
|
[FechaIng] date NULL,
|
|
CONSTRAINT [PK_Vta_MetodoPago] PRIMARY KEY CLUSTERED ([CveMetodoPago])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_TipoDocumentos] (
|
|
[CveTipoDocumento] varchar(3) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[TipoDocumento] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit NULL,
|
|
[FechaIng] date NULL,
|
|
[Multiplicador] smallmoney DEFAULT ((1)) NULL,
|
|
[Contable] smallint DEFAULT ((0)) NOT NULL,
|
|
CONSTRAINT [PK_Vta_TipoDocumentos] PRIMARY KEY CLUSTERED ([CveTipoDocumento])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[EstatusFactura] (
|
|
[CveEstatusFactura] int NOT NULL,
|
|
[EstatusFactura] varchar(30) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estado] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] date DEFAULT (getdate()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[TipoDocto] varchar(3) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[TipoEstatus] smallint DEFAULT ((1)) NULL,
|
|
[Origen] smallmoney DEFAULT ((1)) NULL,
|
|
[EnProcesoCancelacion] bit DEFAULT ((0)) NOT NULL,
|
|
CONSTRAINT [PK_EstatusFactura] PRIMARY KEY CLUSTERED ([CveEstatusFactura])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Gral_RegimenesFiscales] (
|
|
[CveRegimenFiscal] tinyint NOT NULL,
|
|
[RegimenFiscal] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CodigoRegimenFiscal] varchar(3) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[AplicaPersonaFisica] bit NOT NULL,
|
|
[AplicaPersonaMoral] bit NOT NULL,
|
|
CONSTRAINT [PK_Gral_RegimenesFiscales] PRIMARY KEY CLUSTERED ([CveRegimenFiscal])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[ZonasHorarias] (
|
|
--esta reemplaza GPS_ZonasHorarias
|
|
[CveZonaHoraria] int NOT NULL,
|
|
[Abreviacion] varchar(7) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ZonaHoraria] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[UTC] varchar(20) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[UTCOffset] int NULL,
|
|
CONSTRAINT [PK_ZonasHorarias] PRIMARY KEY CLUSTERED ([CveZonaHoraria])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Sat_Bancos] (
|
|
[CveSATBanco] int IDENTITY(1,1) NOT NULL,
|
|
[CveBanco] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Banco] varchar(150) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[RazonSocial] varchar(300) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Sat_Bancos] PRIMARY KEY CLUSTERED ([CveSATBanco])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 90, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UQ_Sat_Bancos_CveBanco] UNIQUE NONCLUSTERED ([CveBanco] ASC)
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Banc_Bancos] (
|
|
[CveBanco] int IDENTITY(1,1) NOT NULL,
|
|
[Banco] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Ejecutivo] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Telefono] varchar(10) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[Fecha] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveSATBanco] int NULL,
|
|
CONSTRAINT [PK_Bancos] PRIMARY KEY CLUSTERED ([CveBanco])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_Bancos] UNIQUE NONCLUSTERED ([Banco] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Banc_CreditosDetalle] (
|
|
[CveCreditoDetalle] int IDENTITY(1,1) NOT NULL,
|
|
[Fecha] date NOT NULL,
|
|
[Estatus] smallint DEFAULT ((0)) NOT NULL,
|
|
[Importe] money DEFAULT ((0)) NOT NULL,
|
|
[Capital] money DEFAULT ((0)) NOT NULL,
|
|
[Intereses] money DEFAULT ((0)) NOT NULL,
|
|
[Seguro] money DEFAULT ((0)) NOT NULL,
|
|
[IVACapital] money DEFAULT ((0)) NOT NULL,
|
|
[IVAIntereses] money DEFAULT ((0)) NOT NULL,
|
|
[IVASeguro] money DEFAULT ((0)) NOT NULL,
|
|
[IVA] AS (([IVACapital]+[IVAIntereses])+[IVASeguro]),
|
|
[Total] AS ((((([Capital]+[Intereses])+[Seguro])+[IVACapital])+[IVAIntereses])+[IVASeguro]),
|
|
[ImporteGarantia] money NULL,
|
|
[Programado] money NULL,
|
|
[CveUsuario] int NULL,
|
|
[ImporteCapital] money NULL,
|
|
[ImporteInteres] money NULL,
|
|
CONSTRAINT [PK_Banc_CreditosDetalle] PRIMARY KEY CLUSTERED ([CveCreditoDetalle])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Banc_TiposCuenta] (
|
|
[CveTipoCuenta] int NOT NULL,
|
|
[TipoCuenta] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estatus] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Banc_TiposCuenta] PRIMARY KEY CLUSTERED ([CveTipoCuenta])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY],
|
|
CONSTRAINT [UN_BancTipoCuenta] UNIQUE NONCLUSTERED ([TipoCuenta] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
|
ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Conta_ConceptosContables] (
|
|
[CveConceptoContable] int NOT NULL,
|
|
[Tipo] varchar(5) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ConceptoContable] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Estado] bit DEFAULT ((1)) NOT NULL,
|
|
[FechaIng] datetime NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[TipoConcepto] tinyint DEFAULT ((0)) NOT NULL,
|
|
[Naturaleza] tinyint DEFAULT ((1)) NOT NULL,
|
|
[CveTipoSaldo] int DEFAULT ((0)) NOT NULL,
|
|
[CveParejaContable] int NULL,
|
|
[AplicaTC] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaSubProyecto] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaCliente] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaVenta] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaCompra] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaPersonal] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaClasificacion] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaBancos] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaAlmacen] bit DEFAULT ((0)) NOT NULL,
|
|
[EsCuentaUnica] bit DEFAULT ((0)) NOT NULL,
|
|
[EsMonedaExtranjera] bit DEFAULT ((0)) NOT NULL,
|
|
[EsSistema] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaActivoFijo] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaNomina] bit DEFAULT ((0)) NOT NULL,
|
|
[EsGlobal] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaImpuesto] bit DEFAULT ((0)) NOT NULL,
|
|
[EsComplementaria] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaCredito] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaMovtoPermanente] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaColectiva] bit DEFAULT ((0)) NOT NULL,
|
|
[EsPago] bit DEFAULT ((0)) NOT NULL,
|
|
[AplicaTipoGasto] bit DEFAULT ((0)) NOT NULL,
|
|
CONSTRAINT [PK_Conta_ConceptosContables] PRIMARY KEY CLUSTERED ([CveConceptoContable])
|
|
WITH (PAD_INDEX = OFF, FILLFACTOR = 80, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
|
|
CONSTRAINT [UN_Conta_ConceptosContables] UNIQUE NONCLUSTERED ([ConceptoContable] ASC, [Tipo] ASC)
|
|
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
GO
|
|
|
|
/* ==================== LLAVES FORANEAS ==================== */
|
|
|
|
ALTER TABLE [dbo].[Sis_Usuarios] ADD CONSTRAINT [FK_Sis_Usuarios_Roles]
|
|
FOREIGN KEY ([CveRol])
|
|
REFERENCES [dbo].[Sis_Roles] ([CveRol])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_Modulos] ADD CONSTRAINT [FK_Sis_Modulos_ModuloPadre]
|
|
FOREIGN KEY ([CveModuloPadre])
|
|
REFERENCES [dbo].[Sis_Modulos] ([CveModulo])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_Modulos] ADD CONSTRAINT [FK_Sis_Modulos_Plataformas]
|
|
FOREIGN KEY ([CvePlataforma])
|
|
REFERENCES [dbo].[Sis_Plataformas] ([CvePlataforma])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_RolesPermisos] ADD CONSTRAINT [FK_Sis_RolesPermisos_Roles]
|
|
FOREIGN KEY ([CveRol])
|
|
REFERENCES [dbo].[Sis_Roles] ([CveRol])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_RolesPermisos] ADD CONSTRAINT [FK_Sis_RolesPermisos_Permisos]
|
|
FOREIGN KEY ([CvePermiso])
|
|
REFERENCES [dbo].[Sis_Permisos] ([CvePermiso])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_RolesModulos] ADD CONSTRAINT [FK_Sis_RolesModulos_Roles]
|
|
FOREIGN KEY ([CveRol])
|
|
REFERENCES [dbo].[Sis_Roles] ([CveRol])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_RolesModulos] ADD CONSTRAINT [FK_Sis_RolesModulos_Modulos]
|
|
FOREIGN KEY ([CveModulo])
|
|
REFERENCES [dbo].[Sis_Modulos] ([CveModulo])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosPermisos] ADD CONSTRAINT [FK_Sis_UsuariosPermisos_Usuarios]
|
|
FOREIGN KEY ([CveUsuario])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosPermisos] ADD CONSTRAINT [FK_Sis_UsuariosPermisos_Permisos]
|
|
FOREIGN KEY ([CvePermiso])
|
|
REFERENCES [dbo].[Sis_Permisos] ([CvePermiso])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosSesiones] ADD CONSTRAINT [FK_Sis_UsuariosSesiones_Usuarios]
|
|
FOREIGN KEY ([CveUsuario])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] ADD CONSTRAINT [FK_Sis_UsuariosAutorizaciones_Permisos]
|
|
FOREIGN KEY ([CvePermiso])
|
|
REFERENCES [dbo].[Sis_Permisos] ([CvePermiso])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] ADD CONSTRAINT [FK_Sis_UsuariosAutorizaciones_UsuarioSolicitante]
|
|
FOREIGN KEY ([CveUsuarioSolicitante])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] ADD CONSTRAINT [FK_Sis_UsuariosAutorizaciones_UsuarioAutorizador]
|
|
FOREIGN KEY ([CveUsuarioAutorizador])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_UsuariosSuscripcionesPush] ADD CONSTRAINT [FK_Sis_UsuariosSuscripcionesPush_Usuarios]
|
|
FOREIGN KEY ([CveUsuario])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_Notificaciones] ADD CONSTRAINT [FK_Sis_Notificaciones_Usuarios]
|
|
FOREIGN KEY ([CveUsuario])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_NotificacionesEnvios] ADD CONSTRAINT [FK_Sis_NotificacionesEnvios_Notificaciones]
|
|
FOREIGN KEY ([CveNotificacion])
|
|
REFERENCES [dbo].[Sis_Notificaciones] ([CveNotificacion])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_IntentosInicioSesion] ADD CONSTRAINT [FK_Sis_IntentosInicioSesion_Usuarios]
|
|
FOREIGN KEY ([CveUsuario])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_Auditorias] ADD CONSTRAINT [FK_Sis_Auditorias_Usuarios]
|
|
FOREIGN KEY ([CveUsuario])
|
|
REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_AuditoriasDetalles] ADD CONSTRAINT [FK_Sis_AuditoriasDetalles_Auditorias]
|
|
FOREIGN KEY ([CveAuditoria])
|
|
REFERENCES [dbo].[Sis_Auditorias] ([CveAuditoria])
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Gral_Categorias] ADD CONSTRAINT [FK_Categorias_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clasificaciones] ADD CONSTRAINT [FK_Clasificaciones_Categoria] FOREIGN KEY ([CveCategoria]) REFERENCES [dbo].[Gral_Categorias] ([CveCategoria]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clasificaciones] ADD CONSTRAINT [FK_Clasificaciones_Gral_SAT_ProductosServicios] FOREIGN KEY ([CveSATPS]) REFERENCES [dbo].[Gral_SAT_ProductosServicios] ([CveSATPS]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clasificaciones] ADD CONSTRAINT [FK_Clasificaciones_Usuarios_CveUsuario] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_BancosCuentas] ADD CONSTRAINT [FK_Banc_BancosCuentas_SubProyectos] FOREIGN KEY ([CveSubProyecto]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_BancosCuentas] ADD CONSTRAINT [FK_Banc_BancosCuentas_Banc_BancosCuentas1] FOREIGN KEY ([CveBancoCuentaPadre]) REFERENCES [dbo].[Banc_BancosCuentas] ([CveBancoCuenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_BancosCuentas] ADD CONSTRAINT [FK_Banc_BancosCuentas_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_BancosCuentas] ADD CONSTRAINT [FK_Banc_BancosCuentas_Banc_Bancos] FOREIGN KEY ([CveBanco]) REFERENCES [dbo].[Banc_Bancos] ([CveBanco]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_BancosCuentas] ADD CONSTRAINT [FK_Banc_BancosCuentas_Monedas] FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_BancosCuentas] ADD CONSTRAINT [FK_Banc_BancosCuentas_Banc_TiposCuenta] FOREIGN KEY ([CveTipoCuenta]) REFERENCES [dbo].[Banc_TiposCuenta] ([CveTipoCuenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_Cuentas] ADD CONSTRAINT [FK_Conta_Cuentas_Clientes] FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_Cuentas] ADD CONSTRAINT [FK_Conta_CuentasCodigosAgrupadoresSAT] FOREIGN KEY ([CveAgrupadorSAT]) REFERENCES [dbo].[Conta_CodigosAgrupadoresSAT] ([CveAgrupadorSAT]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_Cuentas] ADD CONSTRAINT [FK_Conta_Cuentas_CveCuentaPadre] FOREIGN KEY ([CveCuentaPadre]) REFERENCES [dbo].[Conta_Cuentas] ([CveCuenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_Cuentas] ADD CONSTRAINT [FK_Conta_Cuentas_BancosCuentas] FOREIGN KEY ([CveBancoCuenta]) REFERENCES [dbo].[Banc_BancosCuentas] ([CveBancoCuenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Inv_Almacenes] FOREIGN KEY ([CveAlmacenAsignado]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Inv_Almacenes1] FOREIGN KEY ([CveAlmacenAlterno]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Inv_Almacenes2] FOREIGN KEY ([CveAlmacenConsignacion]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Gral_SAT_UsosCFDI] FOREIGN KEY ([CveUsoCFDI]) REFERENCES [dbo].[Gral_SAT_UsosCFDI] ([CveUsoCFDI]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Vta_FormaPago] FOREIGN KEY ([CveFormaPago]) REFERENCES [dbo].[Vta_FormaPago] ([CveFormaPago]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Vta_MetodoPago] FOREIGN KEY ([CveMetodoPago]) REFERENCES [dbo].[Vta_MetodoPago] ([CveMetodoPago]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Gral_SAT_Estado] FOREIGN KEY ([CveSATEstado]) REFERENCES [dbo].[Gral_SAT_Estado] ([CveEstado]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Gral_RegimenesFiscales] FOREIGN KEY ([CveRegimenFiscal]) REFERENCES [dbo].[Gral_RegimenesFiscales] ([CveRegimenFiscal]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_GPS_ZonasHorarias] FOREIGN KEY ([CveZonaHoraria]) REFERENCES [dbo].[ZonasHorarias] ([CveZonaHoraria]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Vta_Vendedores_CveVendedor] FOREIGN KEY ([CveVendedor]) REFERENCES [dbo].[Vta_Vendedores] ([CveVendedor]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_TiposPoliza] ADD CONSTRAINT [FK_Conta_TiposPoliza_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PlantillasPolizas] ADD CONSTRAINT [FK_Conta_PlantillasPolizas_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Gral_Monedas] ADD CONSTRAINT [FK_Monedas_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_Clientes] FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_Conta_TiposPoliza] FOREIGN KEY ([CveTipoPoliza]) REFERENCES [dbo].[Conta_TiposPoliza] ([CveTipoPoliza]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_Conta_PlantillasPolizas] FOREIGN KEY ([CvePlantillaPoliza]) REFERENCES [dbo].[Conta_PlantillasPolizas] ([CvePlantillaPoliza]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_Monedas] FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_Conta_PrePolizas] FOREIGN KEY ([CvePrePolizaUnificada]) REFERENCES [dbo].[Conta_PrePolizas] ([CvePrePoliza]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_UsuariosModifico] FOREIGN KEY ([CveUsuarioModifico]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizas] ADD CONSTRAINT [FK_Conta_PrePolizas_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[UnidadesMedida] ADD CONSTRAINT [FK_UnidadesMedida_Gral_SAT_UnidadesMedida] FOREIGN KEY ([CveSATUnidadMedida]) REFERENCES [dbo].[Gral_SAT_UnidadesMedida] ([CveSATUnidadMedida]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[UnidadesMedida] ADD CONSTRAINT [FK_UnidadesMedida_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_UnidadesMedida] FOREIGN KEY ([CveUnidadMedida]) REFERENCES [dbo].[UnidadesMedida] ([CveUnidadMedida]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Clasificaciones1] FOREIGN KEY ([CveClasificacion2]) REFERENCES [dbo].[Clasificaciones] ([CveClasificacion]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Clasificaciones] FOREIGN KEY ([CveClasificacion]) REFERENCES [dbo].[Clasificaciones] ([CveClasificacion]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Usuarios_CveUsuarioModifico] FOREIGN KEY ([CveUsuarioModifico]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Gral_SAT_CP_MaterialPeligroso] FOREIGN KEY ([CveMaterialPeligroso]) REFERENCES [dbo].[Gral_SAT_CP_MaterialPeligroso] ([CveMaterialPeligroso]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Gral_ObjetoImpuesto] FOREIGN KEY ([CveObjetoImpuesto]) REFERENCES [dbo].[Gral_SAT_ObjetoImpuesto] ([CveObjetoImpuesto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Monedas_CveMoneda] FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_TiposAlmacenes] ADD CONSTRAINT [FK_INV_TiposAlmacenes_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Inv_AlmacenesRef1] FOREIGN KEY ([CveAlmacenRef1]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Inv_AlmacenesRef2] FOREIGN KEY ([CveAlmacenRef2]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Inv_AlmacenesRef3] FOREIGN KEY ([CveAlmacenRef3]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Inv_AlmacenesRef4] FOREIGN KEY ([CveAlmacenRef4]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Inv_AlmacenesRef5] FOREIGN KEY ([CveAlmacenRef5]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Sis_Usuarios_CveUsuario] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_SubProyectos] FOREIGN KEY ([CveSubProyecto]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Sis_Usuarios_CveUsuarioAutoriza] FOREIGN KEY ([CveUsuarioAutoriza]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_Inv_Almacenes_Inv_Almacenes] FOREIGN KEY ([CveAlmacenVirtual]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Inv_Almacenes] ADD CONSTRAINT [FK_INV_Almacenes_INV_TiposAlmacenes] FOREIGN KEY ([CveTipoAlmacen]) REFERENCES [dbo].[Inv_TiposAlmacenes] ([CveTipoAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Vta_FormaPago] FOREIGN KEY ([CveFormaPago33]) REFERENCES [dbo].[Vta_FormaPago] ([CveFormaPago]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Vta_MetodoPago] FOREIGN KEY ([CveMetodoPago33]) REFERENCES [dbo].[Vta_MetodoPago] ([CveMetodoPago]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Gral_SAT_UsosCFDI] FOREIGN KEY ([CveUsoCFDI]) REFERENCES [dbo].[Gral_SAT_UsosCFDI] ([CveUsoCFDI]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Vta_Vendedores] FOREIGN KEY ([CveVendedor]) REFERENCES [dbo].[Vta_Vendedores] ([CveVendedor]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Inv_Almacenes] FOREIGN KEY ([CveAlmacenAsignado]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Inv_Almacenes2] FOREIGN KEY ([CveAlmacenAlterno]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Inv_Almacenes3] FOREIGN KEY ([CveAlmacenConsignacion]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_Vta_ClientesSucursales_Clientes_CveCliente] FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_ClientesSucursales] ADD CONSTRAINT [FK_SucursalCliente_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_Procedimientos] ADD CONSTRAINT [FK_Vta_Procedimientos_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Inv_Almacenes] FOREIGN KEY ([CveAlmacenTraspasoDestino]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Inv_Almacenes_TraspasoOrigen] FOREIGN KEY ([CveAlmacenTraspasoOrigen]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Inv_Almacenes1] FOREIGN KEY ([CveAlmacenSurtio]) REFERENCES [dbo].[Inv_Almacenes] ([CveAlmacen]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Usuarios1] FOREIGN KEY ([CveUsuarioCobranza]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Vta_Procedimientos] FOREIGN KEY ([CveProcedimiento]) REFERENCES [dbo].[Vta_Procedimientos] ([CveProcedimiento]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Vta_ClientesSucursales] FOREIGN KEY ([CveClienteSucursal]) REFERENCES [dbo].[Vta_ClientesSucursales] ([CveClienteSucursal]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Gral_SAT_UsosCFDI] FOREIGN KEY ([CveUsoCFDI]) REFERENCES [dbo].[Gral_SAT_UsosCFDI] ([CveUsoCFDI]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Vta_Vendedores] FOREIGN KEY ([CveVendedor]) REFERENCES [dbo].[Vta_Vendedores] ([CveVendedor]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Vta_FormaPago] FOREIGN KEY ([CveFormaPago33]) REFERENCES [dbo].[Vta_FormaPago] ([CveFormaPago]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_EstatusFactura] FOREIGN KEY ([CveEstatusFactura]) REFERENCES [dbo].[EstatusFactura] ([CveEstatusFactura]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Ventas] FOREIGN KEY ([CveVentaFacturada]) REFERENCES [dbo].[Ventas] ([CveVenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Monedas] FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Sis_PACCancelacion] FOREIGN KEY ([CvePACCancelacion]) REFERENCES [dbo].[Sis_PAC] ([CvePAC]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Sis_PAC] FOREIGN KEY ([CvePAC]) REFERENCES [dbo].[Sis_PAC] ([CvePAC]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Vta_MetodoPago] FOREIGN KEY ([CveMetodoPago33]) REFERENCES [dbo].[Vta_MetodoPago] ([CveMetodoPago]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Ventas1] FOREIGN KEY ([CveVenta]) REFERENCES [dbo].[Ventas] ([CveVenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Vta_TipoDocumentos] FOREIGN KEY ([TipoDocto]) REFERENCES [dbo].[Vta_TipoDocumentos] ([CveTipoDocumento]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_SubProyectos2] FOREIGN KEY ([CveSubProyectoCobranza]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Usuarios_CveUsuarioCambioEstatus] FOREIGN KEY ([CveUsuarioCambioEstatus]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_SubProyectos] FOREIGN KEY ([CveSubProyecto]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_SubProyectos1] FOREIGN KEY ([CveSubProyectoEjecucion]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Conta_PrePolizas] FOREIGN KEY ([CvePrePoliza]) REFERENCES [dbo].[Conta_PrePolizas] ([CvePrePoliza]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Clientes] FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Clasificaciones] FOREIGN KEY ([CveClasificacion]) REFERENCES [dbo].[Clasificaciones] ([CveClasificacion]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Banc_CreditosDetalle] FOREIGN KEY ([CveCreditoDetalle]) REFERENCES [dbo].[Banc_CreditosDetalle] ([CveCreditoDetalle]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Usuarios] FOREIGN KEY ([CveUsuarioModifico]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Conta_ConceptosContables] FOREIGN KEY ([CveConceptoContable]) REFERENCES [dbo].[Conta_ConceptosContables] ([CveConceptoContable]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Conta_Cuentas] FOREIGN KEY ([CveCuenta]) REFERENCES [dbo].[Conta_Cuentas] ([CveCuenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Clientes] FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Ventas] FOREIGN KEY ([CveVenta]) REFERENCES [dbo].[Ventas] ([CveVenta]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Proyectos] ADD CONSTRAINT [FK_Proyectos_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_Proyectos] FOREIGN KEY ([CveProyecto]) REFERENCES [dbo].[Proyectos] ([CveProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_SubProyectoPadre] FOREIGN KEY ([CveSubProyectoPadre]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_Gral_SAT_Localidad] FOREIGN KEY ([CveLocalidad]) REFERENCES [dbo].[Gral_SAT_Localidad] ([CveLocalidad]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_Gral_SAT_Estado] FOREIGN KEY ([CveEstado]) REFERENCES [dbo].[Gral_SAT_Estado] ([CveEstado]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_Sis_Usuarios_CveUsuarioNomina] FOREIGN KEY ([CveUsuarioNomina]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_Sis_Usuarios_CveUsuario] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[SubProyectos] ADD CONSTRAINT [FK_SubProyectos_Clientes] FOREIGN KEY ([CveClientePublicoGral]) REFERENCES [dbo].[Clientes] ([CveCliente]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_Vendedores] ADD CONSTRAINT [FK_Vta_Vendedores_SubProyectos] FOREIGN KEY ([CveSubProyecto]) REFERENCES [dbo].[SubProyectos] ([CveSubProyecto]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_Vendedores] ADD CONSTRAINT [FK_Vta_Vendedores_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_FormaPago] ADD CONSTRAINT [FK_Vta_FormaPago_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sis_PAC] ADD CONSTRAINT [FK_Sis_PAC_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_MetodoPago] ADD CONSTRAINT [FK_Vta_MetodoPago_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[EstatusFactura] ADD CONSTRAINT [FK_EstatusFactura_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Sat_Bancos] ADD CONSTRAINT [FK_Sat_Bancos_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_Bancos] ADD CONSTRAINT [FK_Banc_Bancos_Sat_Bancos] FOREIGN KEY ([CveSATBanco]) REFERENCES [dbo].[Sat_Bancos] ([CveSATBanco]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_Bancos] ADD CONSTRAINT [FK_Banc_Bancos_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_CreditosDetalle] ADD CONSTRAINT [FK_Banc_CreditosDetalle_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Banc_TiposCuenta] ADD CONSTRAINT [FK_Banc_TiposCuenta_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_ConceptosContables] ADD CONSTRAINT [FK_Conta_ConceptosContables_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_ConceptosContables] ADD CONSTRAINT [FK_Conta_ConceptosContables_ConceptoPareja] FOREIGN KEY ([CveParejaContable]) REFERENCES [dbo].[Conta_ConceptosContables] ([CveConceptoContable]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Conta_PrePolizas] FOREIGN KEY ([CvePrePoliza]) REFERENCES [dbo].[Conta_PrePolizas] ([CvePrePoliza]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_CodigosAgrupadoresSAT] ADD CONSTRAINT [FK_Conta_CodigosAgrupadoresSAT_Padre] FOREIGN KEY ([CveAgrupadorPadre]) REFERENCES [dbo].[Conta_CodigosAgrupadoresSAT] ([CveAgrupadorSAT]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_Cuentas] ADD CONSTRAINT [FK_Conta_Cuentas_Sis_Usuarios] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_Cuentas] ADD CONSTRAINT [FK_Conta_Cuentas_Gral_Monedas] FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Sis_Usuarios_CveUsuario] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Sis_Usuarios_CveUsuarioResponsable] FOREIGN KEY ([CveUsuarioResponsable]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Clientes] ADD CONSTRAINT [FK_Clientes_Sis_Usuarios_CveUsuarioModifico] FOREIGN KEY ([CveUsuarioModifico]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Ventas] ADD CONSTRAINT [FK_Ventas_Sis_Usuarios_CveUsuarioModifico] FOREIGN KEY ([CveUsuarioModifico]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[EstatusFactura] ADD CONSTRAINT [FK_EstatusFactura_Vta_TipoDocumentos] FOREIGN KEY ([TipoDocto]) REFERENCES [dbo].[Vta_TipoDocumentos] ([CveTipoDocumento]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Conta_ConceptosContables] FOREIGN KEY ([CveConceptoContable]) REFERENCES [dbo].[Conta_ConceptosContables] ([CveConceptoContable]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[ProductosServicios] ADD CONSTRAINT [FK_ProductosServicios_Gral_SAT_ProductosServicios] FOREIGN KEY ([CveSATPS]) REFERENCES [dbo].[Gral_SAT_ProductosServicios] ([CveSATPS]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
GO
|
|
|
|
/*
|
|
Módulo de fraccionamientos, trámites, ventas y pagos.
|
|
|
|
Este archivo se ejecuta después de Esquema_BD_AguaHillo.sql.
|
|
|
|
Nombres reemplazados:
|
|
Des_Desarrolladoras -> Clientes
|
|
Des_Desarrollos -> Fraccionamientos
|
|
Des_EtapasDesarrollo -> FraccionamientosEtapas
|
|
Des_Lotes -> FraccionamientosLotes
|
|
Sis_Users -> Sis_Usuarios
|
|
|
|
Regla del fondo inicial:
|
|
- Se registra una Venta con TipoDocto = 'Ant'.
|
|
- La venta usa un producto genérico de ProductosServicios, por ejemplo "Fondo inicial".
|
|
- El detalle del fondo no se relaciona con una solicitud específica.
|
|
- Sólo el dinero efectivamente registrado en Vta_Pagos queda disponible.
|
|
- Vta_AplicacionesSaldoFavor distribuye ese dinero entre trámites posteriores.
|
|
- Ventas, pagos y aplicaciones pueden generar su propia Conta_PrePoliza.
|
|
*/
|
|
|
|
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
SET XACT_ABORT ON;
|
|
GO
|
|
|
|
/* ==================== FRACCIONAMIENTOS ==================== */
|
|
|
|
CREATE TABLE [dbo].[Fraccionamientos] (
|
|
[CveFraccionamiento] int IDENTITY(1,1) NOT NULL,
|
|
[CveCliente] int NOT NULL,
|
|
[Fraccionamiento] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Hectareas] decimal(18,4) NULL,
|
|
[Ubicacion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Estatus] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Fraccionamientos_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Fraccionamientos_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Fraccionamientos] PRIMARY KEY CLUSTERED ([CveFraccionamiento]),
|
|
CONSTRAINT [UQ_Fraccionamientos_Cliente_Nombre] UNIQUE NONCLUSTERED ([CveCliente], [Fraccionamiento]),
|
|
CONSTRAINT [UQ_Fraccionamientos_Cliente] UNIQUE NONCLUSTERED ([CveFraccionamiento], [CveCliente]),
|
|
CONSTRAINT [CK_Fraccionamientos_Hectareas] CHECK ([Hectareas] IS NULL OR [Hectareas] >= (0))
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[FraccionamientosEtapas] (
|
|
[CveFraccionamientoEtapa] int IDENTITY(1,1) NOT NULL,
|
|
[CveFraccionamiento] int NOT NULL,
|
|
[Etapa] varchar(150) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Hectareas] decimal(18,4) NULL,
|
|
[Orden] int CONSTRAINT [DF_FraccionamientosEtapas_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_FraccionamientosEtapas_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_FraccionamientosEtapas_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_FraccionamientosEtapas] PRIMARY KEY CLUSTERED ([CveFraccionamientoEtapa]),
|
|
CONSTRAINT [UQ_FraccionamientosEtapas_Fraccionamiento_Etapa] UNIQUE NONCLUSTERED ([CveFraccionamiento], [Etapa]),
|
|
CONSTRAINT [UQ_FraccionamientosEtapas_Fraccionamiento] UNIQUE NONCLUSTERED ([CveFraccionamientoEtapa], [CveFraccionamiento]),
|
|
CONSTRAINT [CK_FraccionamientosEtapas_Hectareas] CHECK ([Hectareas] IS NULL OR [Hectareas] >= (0))
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[FraccionamientosLotes] (
|
|
[CveFraccionamientoLote] int IDENTITY(1,1) NOT NULL,
|
|
[CveFraccionamientoEtapa] int NOT NULL,
|
|
[Tipo] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Calle] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Catastro] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[MetrosCuadrados] decimal(18,4) NULL,
|
|
[Numero] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Duplicador] varchar(50) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_FraccionamientosLotes_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_FraccionamientosLotes_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_FraccionamientosLotes] PRIMARY KEY CLUSTERED ([CveFraccionamientoLote]),
|
|
CONSTRAINT [CK_FraccionamientosLotes_MetrosCuadrados] CHECK ([MetrosCuadrados] IS NULL OR [MetrosCuadrados] >= (0))
|
|
);
|
|
GO
|
|
|
|
/* ==================== CATÁLOGOS DE TRÁMITES ==================== */
|
|
|
|
CREATE TABLE [dbo].[Tra_TiposTramite] (
|
|
[CveTipoTramite] int IDENTITY(1,1) NOT NULL,
|
|
[Codigo] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[TipoTramite] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Orden] int CONSTRAINT [DF_Tra_TiposTramite_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_TiposTramite_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_TiposTramite_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Tra_TiposTramite] PRIMARY KEY CLUSTERED ([CveTipoTramite]),
|
|
CONSTRAINT [UQ_Tra_TiposTramite_Codigo] UNIQUE NONCLUSTERED ([Codigo])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_EstatusSolicitud] (
|
|
[CveEstatusSolicitud] int IDENTITY(1,1) NOT NULL,
|
|
[Codigo] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[EstatusSolicitud] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Orden] int CONSTRAINT [DF_Tra_EstatusSolicitud_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsFinal] bit CONSTRAINT [DF_Tra_EstatusSolicitud_EsFinal] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_EstatusSolicitud_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Tra_EstatusSolicitud] PRIMARY KEY CLUSTERED ([CveEstatusSolicitud]),
|
|
CONSTRAINT [UQ_Tra_EstatusSolicitud_Codigo] UNIQUE NONCLUSTERED ([Codigo])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_TiposDocumento] (
|
|
[CveTipoDocumento] int IDENTITY(1,1) NOT NULL,
|
|
[TipoDocumento] varchar(200) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ExtensionesPermitidas] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TamanoMaximoMb] int NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_TiposDocumento_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_TiposDocumento_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Tra_TiposDocumento] PRIMARY KEY CLUSTERED ([CveTipoDocumento]),
|
|
CONSTRAINT [UQ_Tra_TiposDocumento_Nombre] UNIQUE NONCLUSTERED ([TipoDocumento]),
|
|
CONSTRAINT [CK_Tra_TiposDocumento_Tamano] CHECK ([TamanoMaximoMb] IS NULL OR [TamanoMaximoMb] > (0))
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_TiposPregunta] (
|
|
[CveTipoPregunta] int IDENTITY(1,1) NOT NULL,
|
|
[Codigo] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[TipoPregunta] varchar(100) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_TiposPregunta_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Tra_TiposPregunta] PRIMARY KEY CLUSTERED ([CveTipoPregunta]),
|
|
CONSTRAINT [UQ_Tra_TiposPregunta_Codigo] UNIQUE NONCLUSTERED ([Codigo])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_Preguntas] (
|
|
[CvePregunta] int IDENTITY(1,1) NOT NULL,
|
|
[CveTipoPregunta] int NOT NULL,
|
|
[Pregunta] varchar(500) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Descripcion] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsRequerida] bit CONSTRAINT [DF_Tra_Preguntas_EsRequerida] DEFAULT ((0)) NOT NULL,
|
|
[Orden] int CONSTRAINT [DF_Tra_Preguntas_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_Preguntas_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_Preguntas_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Tra_Preguntas] PRIMARY KEY CLUSTERED ([CvePregunta])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_OpcionesPregunta] (
|
|
[CveOpcionPregunta] int IDENTITY(1,1) NOT NULL,
|
|
[CvePregunta] int NOT NULL,
|
|
[TextoOpcion] varchar(300) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ValorOpcion] varchar(300) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[Orden] int CONSTRAINT [DF_Tra_OpcionesPregunta_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_OpcionesPregunta_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Tra_OpcionesPregunta] PRIMARY KEY CLUSTERED ([CveOpcionPregunta]),
|
|
CONSTRAINT [UQ_Tra_OpcionesPregunta_Pregunta_Texto] UNIQUE NONCLUSTERED ([CvePregunta], [TextoOpcion])
|
|
);
|
|
GO
|
|
|
|
/* ==================== SOLICITUDES Y FLUJO ==================== */
|
|
|
|
CREATE TABLE [dbo].[Tra_Solicitudes] (
|
|
[CveSolicitud] int IDENTITY(1,1) NOT NULL,
|
|
[Folio] varchar(50) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[CveCliente] int NOT NULL,
|
|
[CveFraccionamiento] int NOT NULL,
|
|
[CveFraccionamientoEtapa] int NOT NULL,
|
|
[CveTipoTramite] int NOT NULL,
|
|
[CveEstatusSolicitud] int NOT NULL,
|
|
[CveUsuarioSolicita] int NULL,
|
|
[FechaInicio] datetime NULL,
|
|
[FechaEnvio] datetime NULL,
|
|
[FechaAutorizacion] datetime NULL,
|
|
[FechaRechazo] datetime NULL,
|
|
[ComentariosCliente] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComentariosAdministrativos] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_Solicitudes_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
CONSTRAINT [PK_Tra_Solicitudes] PRIMARY KEY CLUSTERED ([CveSolicitud]),
|
|
CONSTRAINT [UQ_Tra_Solicitudes_Folio] UNIQUE NONCLUSTERED ([Folio]),
|
|
CONSTRAINT [UQ_Tra_Solicitudes_Etapa_TipoTramite] UNIQUE NONCLUSTERED ([CveFraccionamientoEtapa], [CveTipoTramite])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_SolicitudesDependencias] (
|
|
[CveSolicitudDependencia] int IDENTITY(1,1) NOT NULL,
|
|
[CveSolicitud] int NOT NULL,
|
|
[CveSolicitudRequerida] int NOT NULL,
|
|
[EsObligatoria] bit CONSTRAINT [DF_Tra_SolicitudesDependencias_EsObligatoria] DEFAULT ((1)) NOT NULL,
|
|
[Condicion] varchar(500) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_SolicitudesDependencias_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Tra_SolicitudesDependencias] PRIMARY KEY CLUSTERED ([CveSolicitudDependencia]),
|
|
CONSTRAINT [UQ_Tra_SolicitudesDependencias] UNIQUE NONCLUSTERED ([CveSolicitud], [CveSolicitudRequerida]),
|
|
CONSTRAINT [CK_Tra_SolicitudesDependencias_Diferentes] CHECK ([CveSolicitud] <> [CveSolicitudRequerida])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_HistorialEstatusSolicitud] (
|
|
[CveHistorialEstatusSolicitud] int IDENTITY(1,1) NOT NULL,
|
|
[CveSolicitud] int NOT NULL,
|
|
[CveEstatusSolicitud] int NOT NULL,
|
|
[CveUsuario] int NULL,
|
|
[Comentarios] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_HistorialEstatusSolicitud_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Tra_HistorialEstatusSolicitud] PRIMARY KEY CLUSTERED ([CveHistorialEstatusSolicitud])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_DocumentosRequeridos] (
|
|
[CveDocumentoRequerido] int IDENTITY(1,1) NOT NULL,
|
|
[CveTipoTramite] int NOT NULL,
|
|
[CveTipoDocumento] int NOT NULL,
|
|
[EsRequerido] bit CONSTRAINT [DF_Tra_DocumentosRequeridos_EsRequerido] DEFAULT ((1)) NOT NULL,
|
|
[Orden] int CONSTRAINT [DF_Tra_DocumentosRequeridos_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_DocumentosRequeridos_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Tra_DocumentosRequeridos] PRIMARY KEY CLUSTERED ([CveDocumentoRequerido]),
|
|
CONSTRAINT [UQ_Tra_DocumentosRequeridos] UNIQUE NONCLUSTERED ([CveTipoTramite], [CveTipoDocumento])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_DocumentosSolicitud] (
|
|
[CveDocumentoSolicitud] int IDENTITY(1,1) NOT NULL,
|
|
[CveSolicitud] int NOT NULL,
|
|
[CveTipoDocumento] int NOT NULL,
|
|
[NombreArchivo] varchar(255) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[NombreArchivoFisico] varchar(255) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[RutaArchivo] varchar(1000) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[ContentType] varchar(100) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[TamanoBytes] bigint NULL,
|
|
[ComentarioCliente] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[ComentarioAdministrativo] varchar(1000) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsAprobado] bit NULL,
|
|
[CveUsuarioCarga] int NULL,
|
|
[CveUsuarioRevisa] int NULL,
|
|
[FechaRevision] datetime NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_DocumentosSolicitud_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Tra_DocumentosSolicitud] PRIMARY KEY CLUSTERED ([CveDocumentoSolicitud]),
|
|
CONSTRAINT [CK_Tra_DocumentosSolicitud_Tamano] CHECK ([TamanoBytes] IS NULL OR [TamanoBytes] >= (0))
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_PreguntasTramite] (
|
|
[CvePreguntaTramite] int IDENTITY(1,1) NOT NULL,
|
|
[CveTipoTramite] int NOT NULL,
|
|
[CvePregunta] int NOT NULL,
|
|
[EsRequerida] bit CONSTRAINT [DF_Tra_PreguntasTramite_EsRequerida] DEFAULT ((0)) NOT NULL,
|
|
[Orden] int CONSTRAINT [DF_Tra_PreguntasTramite_Orden] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_PreguntasTramite_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
CONSTRAINT [PK_Tra_PreguntasTramite] PRIMARY KEY CLUSTERED ([CvePreguntaTramite]),
|
|
CONSTRAINT [UQ_Tra_PreguntasTramite] UNIQUE NONCLUSTERED ([CveTipoTramite], [CvePregunta])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_RespuestasSolicitud] (
|
|
[CveRespuestaSolicitud] int IDENTITY(1,1) NOT NULL,
|
|
[CveSolicitud] int NOT NULL,
|
|
[CvePregunta] int NOT NULL,
|
|
[CveOpcionPregunta] int NULL,
|
|
[Valor] varchar(max) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_RespuestasSolicitud_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NULL,
|
|
CONSTRAINT [PK_Tra_RespuestasSolicitud] PRIMARY KEY CLUSTERED ([CveRespuestaSolicitud]),
|
|
CONSTRAINT [CK_Tra_RespuestasSolicitud_Valor] CHECK ([CveOpcionPregunta] IS NOT NULL OR [Valor] IS NOT NULL)
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_CostosTramite] (
|
|
[CveCostoTramite] int IDENTITY(1,1) NOT NULL,
|
|
[CveTipoTramite] int NOT NULL,
|
|
[CvePS] int NOT NULL,
|
|
[CveMoneda] int NOT NULL,
|
|
[Descripcion] varchar(300) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[Importe] decimal(18,2) CONSTRAINT [DF_Tra_CostosTramite_Importe] DEFAULT ((0)) NOT NULL,
|
|
[FechaInicioVigencia] date NULL,
|
|
[FechaFinVigencia] date NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Tra_CostosTramite_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_CostosTramite_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[FechaModificacion] datetime NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Tra_CostosTramite] PRIMARY KEY CLUSTERED ([CveCostoTramite]),
|
|
CONSTRAINT [UQ_Tra_CostosTramite_Tipo_Producto_Inicio] UNIQUE NONCLUSTERED ([CveTipoTramite], [CvePS], [FechaInicioVigencia]),
|
|
CONSTRAINT [CK_Tra_CostosTramite_Importe] CHECK ([Importe] >= (0)),
|
|
CONSTRAINT [CK_Tra_CostosTramite_Vigencia] CHECK ([FechaFinVigencia] IS NULL OR [FechaInicioVigencia] IS NULL OR [FechaFinVigencia] >= [FechaInicioVigencia])
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Tra_NotasSolicitud] (
|
|
[CveNotaSolicitud] int IDENTITY(1,1) NOT NULL,
|
|
[CveSolicitud] int NOT NULL,
|
|
[CveUsuario] int NULL,
|
|
[TipoNota] varchar(50) COLLATE Modern_Spanish_CS_AI CONSTRAINT [DF_Tra_NotasSolicitud_TipoNota] DEFAULT ('General') NOT NULL,
|
|
[Comentario] varchar(max) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[EsVisibleParaCliente] bit CONSTRAINT [DF_Tra_NotasSolicitud_Visible] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Tra_NotasSolicitud_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
CONSTRAINT [PK_Tra_NotasSolicitud] PRIMARY KEY CLUSTERED ([CveNotaSolicitud])
|
|
);
|
|
GO
|
|
|
|
/* ==================== VENTAS, PAGOS Y SALDO A FAVOR ==================== */
|
|
|
|
CREATE TABLE [dbo].[VentasDetalle] (
|
|
[CveVentaDetalle] int IDENTITY(1,1) NOT NULL,
|
|
[CveVenta] int NOT NULL,
|
|
[CvePS] int NOT NULL,
|
|
[CveSolicitud] int NULL,
|
|
[CveCostoTramite] int NULL,
|
|
[Cantidad] decimal(18,4) CONSTRAINT [DF_VentasDetalle_Cantidad] DEFAULT ((1)) NOT NULL,
|
|
[PrecioUnitario] decimal(18,2) CONSTRAINT [DF_VentasDetalle_PrecioUnitario] DEFAULT ((0)) NOT NULL,
|
|
[Descuento] decimal(18,2) CONSTRAINT [DF_VentasDetalle_Descuento] DEFAULT ((0)) NOT NULL,
|
|
[IVA] decimal(18,2) CONSTRAINT [DF_VentasDetalle_IVA] DEFAULT ((0)) NOT NULL,
|
|
[Importe] decimal(18,2) CONSTRAINT [DF_VentasDetalle_Importe] DEFAULT ((0)) NOT NULL,
|
|
[EsFondoInicial] bit CONSTRAINT [DF_VentasDetalle_EsFondoInicial] DEFAULT ((0)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_VentasDetalle_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_VentasDetalle] PRIMARY KEY CLUSTERED ([CveVentaDetalle]),
|
|
CONSTRAINT [CK_VentasDetalle_Importes] CHECK ([Cantidad] > (0) AND [PrecioUnitario] >= (0) AND [Descuento] >= (0) AND [IVA] >= (0) AND [Importe] >= (0)),
|
|
CONSTRAINT [CK_VentasDetalle_FondoInicial] CHECK ([EsFondoInicial] = (0) OR ([CveSolicitud] IS NULL AND [CveCostoTramite] IS NULL))
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_Pagos] (
|
|
[CvePago] int IDENTITY(1,1) NOT NULL,
|
|
[CveCliente] int NOT NULL,
|
|
[CveVenta] int NOT NULL,
|
|
[CveSolicitud] int NULL,
|
|
[CveFormaPago] tinyint NOT NULL,
|
|
[CveMoneda] int NOT NULL,
|
|
[CvePrePoliza] int NULL,
|
|
[FechaPago] datetime NOT NULL,
|
|
[Importe] decimal(18,2) NOT NULL,
|
|
[Referencia] varchar(200) COLLATE Modern_Spanish_CS_AI NULL,
|
|
[EsSaldoFavor] bit CONSTRAINT [DF_Vta_Pagos_EsSaldoFavor] DEFAULT ((0)) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Vta_Pagos_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[FechaAlta] datetime CONSTRAINT [DF_Vta_Pagos_FechaAlta] DEFAULT (GETDATE()) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Vta_Pagos] PRIMARY KEY CLUSTERED ([CvePago]),
|
|
CONSTRAINT [CK_Vta_Pagos_Importe] CHECK ([Importe] > (0)),
|
|
CONSTRAINT [CK_Vta_Pagos_SaldoFavor] CHECK ([EsSaldoFavor] = (0) OR [CveSolicitud] IS NULL)
|
|
);
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[Vta_AplicacionesSaldoFavor] (
|
|
[CveAplicacionSaldoFavor] int IDENTITY(1,1) NOT NULL,
|
|
[CvePagoOrigen] int NOT NULL,
|
|
[CveVentaDestino] int NOT NULL,
|
|
[CveVentaDetalleDestino] int NULL,
|
|
[CveSolicitud] int NOT NULL,
|
|
[CvePrePoliza] int NULL,
|
|
[Importe] decimal(18,2) NOT NULL,
|
|
[FechaAplicacion] datetime CONSTRAINT [DF_Vta_AplicacionesSaldoFavor_Fecha] DEFAULT (GETDATE()) NOT NULL,
|
|
[EsActivo] bit CONSTRAINT [DF_Vta_AplicacionesSaldoFavor_EsActivo] DEFAULT ((1)) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
CONSTRAINT [PK_Vta_AplicacionesSaldoFavor] PRIMARY KEY CLUSTERED ([CveAplicacionSaldoFavor]),
|
|
CONSTRAINT [CK_Vta_AplicacionesSaldoFavor_Importe] CHECK ([Importe] > (0))
|
|
);
|
|
GO
|
|
|
|
/* Relación exacta entre los renglones contables y el movimiento que los originó. */
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD
|
|
[CveSolicitud] int NULL,
|
|
[CvePago] int NULL,
|
|
[CveAplicacionSaldoFavor] int NULL;
|
|
GO
|
|
|
|
/* ==================== LLAVES FORÁNEAS ==================== */
|
|
|
|
ALTER TABLE [dbo].[Fraccionamientos] ADD CONSTRAINT [FK_Fraccionamientos_Clientes]
|
|
FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]);
|
|
GO
|
|
ALTER TABLE [dbo].[Fraccionamientos] ADD CONSTRAINT [FK_Fraccionamientos_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[FraccionamientosEtapas] ADD CONSTRAINT [FK_FraccionamientosEtapas_Fraccionamientos]
|
|
FOREIGN KEY ([CveFraccionamiento]) REFERENCES [dbo].[Fraccionamientos] ([CveFraccionamiento]);
|
|
GO
|
|
ALTER TABLE [dbo].[FraccionamientosEtapas] ADD CONSTRAINT [FK_FraccionamientosEtapas_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[FraccionamientosLotes] ADD CONSTRAINT [FK_FraccionamientosLotes_FraccionamientosEtapas]
|
|
FOREIGN KEY ([CveFraccionamientoEtapa]) REFERENCES [dbo].[FraccionamientosEtapas] ([CveFraccionamientoEtapa]);
|
|
GO
|
|
ALTER TABLE [dbo].[FraccionamientosLotes] ADD CONSTRAINT [FK_FraccionamientosLotes_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_TiposTramite] ADD CONSTRAINT [FK_Tra_TiposTramite_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_TiposDocumento] ADD CONSTRAINT [FK_Tra_TiposDocumento_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Preguntas] ADD CONSTRAINT [FK_Tra_Preguntas_Tra_TiposPregunta]
|
|
FOREIGN KEY ([CveTipoPregunta]) REFERENCES [dbo].[Tra_TiposPregunta] ([CveTipoPregunta]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Preguntas] ADD CONSTRAINT [FK_Tra_Preguntas_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_OpcionesPregunta] ADD CONSTRAINT [FK_Tra_OpcionesPregunta_Tra_Preguntas]
|
|
FOREIGN KEY ([CvePregunta]) REFERENCES [dbo].[Tra_Preguntas] ([CvePregunta]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_Solicitudes] ADD CONSTRAINT [FK_Tra_Solicitudes_Clientes]
|
|
FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Solicitudes] ADD CONSTRAINT [FK_Tra_Solicitudes_Fraccionamientos_Cliente]
|
|
FOREIGN KEY ([CveFraccionamiento], [CveCliente]) REFERENCES [dbo].[Fraccionamientos] ([CveFraccionamiento], [CveCliente]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Solicitudes] ADD CONSTRAINT [FK_Tra_Solicitudes_FraccionamientosEtapas]
|
|
FOREIGN KEY ([CveFraccionamientoEtapa], [CveFraccionamiento]) REFERENCES [dbo].[FraccionamientosEtapas] ([CveFraccionamientoEtapa], [CveFraccionamiento]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Solicitudes] ADD CONSTRAINT [FK_Tra_Solicitudes_Tra_TiposTramite]
|
|
FOREIGN KEY ([CveTipoTramite]) REFERENCES [dbo].[Tra_TiposTramite] ([CveTipoTramite]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Solicitudes] ADD CONSTRAINT [FK_Tra_Solicitudes_Tra_EstatusSolicitud]
|
|
FOREIGN KEY ([CveEstatusSolicitud]) REFERENCES [dbo].[Tra_EstatusSolicitud] ([CveEstatusSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_Solicitudes] ADD CONSTRAINT [FK_Tra_Solicitudes_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuarioSolicita]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_SolicitudesDependencias] ADD CONSTRAINT [FK_Tra_SolicitudesDependencias_Solicitud]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_SolicitudesDependencias] ADD CONSTRAINT [FK_Tra_SolicitudesDependencias_Requerida]
|
|
FOREIGN KEY ([CveSolicitudRequerida]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_SolicitudesDependencias] ADD CONSTRAINT [FK_Tra_SolicitudesDependencias_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_HistorialEstatusSolicitud] ADD CONSTRAINT [FK_Tra_HistorialEstatusSolicitud_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_HistorialEstatusSolicitud] ADD CONSTRAINT [FK_Tra_HistorialEstatusSolicitud_Estatus]
|
|
FOREIGN KEY ([CveEstatusSolicitud]) REFERENCES [dbo].[Tra_EstatusSolicitud] ([CveEstatusSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_HistorialEstatusSolicitud] ADD CONSTRAINT [FK_Tra_HistorialEstatusSolicitud_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_DocumentosRequeridos] ADD CONSTRAINT [FK_Tra_DocumentosRequeridos_TiposTramite]
|
|
FOREIGN KEY ([CveTipoTramite]) REFERENCES [dbo].[Tra_TiposTramite] ([CveTipoTramite]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_DocumentosRequeridos] ADD CONSTRAINT [FK_Tra_DocumentosRequeridos_TiposDocumento]
|
|
FOREIGN KEY ([CveTipoDocumento]) REFERENCES [dbo].[Tra_TiposDocumento] ([CveTipoDocumento]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_DocumentosSolicitud] ADD CONSTRAINT [FK_Tra_DocumentosSolicitud_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_DocumentosSolicitud] ADD CONSTRAINT [FK_Tra_DocumentosSolicitud_TiposDocumento]
|
|
FOREIGN KEY ([CveTipoDocumento]) REFERENCES [dbo].[Tra_TiposDocumento] ([CveTipoDocumento]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_DocumentosSolicitud] ADD CONSTRAINT [FK_Tra_DocumentosSolicitud_UsuarioCarga]
|
|
FOREIGN KEY ([CveUsuarioCarga]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_DocumentosSolicitud] ADD CONSTRAINT [FK_Tra_DocumentosSolicitud_UsuarioRevisa]
|
|
FOREIGN KEY ([CveUsuarioRevisa]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_PreguntasTramite] ADD CONSTRAINT [FK_Tra_PreguntasTramite_TiposTramite]
|
|
FOREIGN KEY ([CveTipoTramite]) REFERENCES [dbo].[Tra_TiposTramite] ([CveTipoTramite]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_PreguntasTramite] ADD CONSTRAINT [FK_Tra_PreguntasTramite_Preguntas]
|
|
FOREIGN KEY ([CvePregunta]) REFERENCES [dbo].[Tra_Preguntas] ([CvePregunta]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_RespuestasSolicitud] ADD CONSTRAINT [FK_Tra_RespuestasSolicitud_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_RespuestasSolicitud] ADD CONSTRAINT [FK_Tra_RespuestasSolicitud_Preguntas]
|
|
FOREIGN KEY ([CvePregunta]) REFERENCES [dbo].[Tra_Preguntas] ([CvePregunta]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_RespuestasSolicitud] ADD CONSTRAINT [FK_Tra_RespuestasSolicitud_Opciones]
|
|
FOREIGN KEY ([CveOpcionPregunta]) REFERENCES [dbo].[Tra_OpcionesPregunta] ([CveOpcionPregunta]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_RespuestasSolicitud] ADD CONSTRAINT [FK_Tra_RespuestasSolicitud_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Tra_CostosTramite] ADD CONSTRAINT [FK_Tra_CostosTramite_TiposTramite]
|
|
FOREIGN KEY ([CveTipoTramite]) REFERENCES [dbo].[Tra_TiposTramite] ([CveTipoTramite]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_CostosTramite] ADD CONSTRAINT [FK_Tra_CostosTramite_ProductosServicios]
|
|
FOREIGN KEY ([CvePS]) REFERENCES [dbo].[ProductosServicios] ([CvePS]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_CostosTramite] ADD CONSTRAINT [FK_Tra_CostosTramite_Gral_Monedas]
|
|
FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_CostosTramite] ADD CONSTRAINT [FK_Tra_CostosTramite_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_NotasSolicitud] ADD CONSTRAINT [FK_Tra_NotasSolicitud_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Tra_NotasSolicitud] ADD CONSTRAINT [FK_Tra_NotasSolicitud_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[VentasDetalle] ADD CONSTRAINT [FK_VentasDetalle_Ventas]
|
|
FOREIGN KEY ([CveVenta]) REFERENCES [dbo].[Ventas] ([CveVenta]);
|
|
GO
|
|
ALTER TABLE [dbo].[VentasDetalle] ADD CONSTRAINT [FK_VentasDetalle_ProductosServicios]
|
|
FOREIGN KEY ([CvePS]) REFERENCES [dbo].[ProductosServicios] ([CvePS]);
|
|
GO
|
|
ALTER TABLE [dbo].[VentasDetalle] ADD CONSTRAINT [FK_VentasDetalle_Tra_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[VentasDetalle] ADD CONSTRAINT [FK_VentasDetalle_Tra_CostosTramite]
|
|
FOREIGN KEY ([CveCostoTramite]) REFERENCES [dbo].[Tra_CostosTramite] ([CveCostoTramite]);
|
|
GO
|
|
ALTER TABLE [dbo].[VentasDetalle] ADD CONSTRAINT [FK_VentasDetalle_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Clientes]
|
|
FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Ventas]
|
|
FOREIGN KEY ([CveVenta]) REFERENCES [dbo].[Ventas] ([CveVenta]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Tra_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Vta_FormaPago]
|
|
FOREIGN KEY ([CveFormaPago]) REFERENCES [dbo].[Vta_FormaPago] ([CveFormaPago]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Gral_Monedas]
|
|
FOREIGN KEY ([CveMoneda]) REFERENCES [dbo].[Gral_Monedas] ([CveMoneda]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Conta_PrePolizas]
|
|
FOREIGN KEY ([CvePrePoliza]) REFERENCES [dbo].[Conta_PrePolizas] ([CvePrePoliza]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_Pagos] ADD CONSTRAINT [FK_Vta_Pagos_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] ADD CONSTRAINT [FK_Vta_AplicacionesSaldoFavor_PagoOrigen]
|
|
FOREIGN KEY ([CvePagoOrigen]) REFERENCES [dbo].[Vta_Pagos] ([CvePago]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] ADD CONSTRAINT [FK_Vta_AplicacionesSaldoFavor_VentaDestino]
|
|
FOREIGN KEY ([CveVentaDestino]) REFERENCES [dbo].[Ventas] ([CveVenta]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] ADD CONSTRAINT [FK_Vta_AplicacionesSaldoFavor_DetalleDestino]
|
|
FOREIGN KEY ([CveVentaDetalleDestino]) REFERENCES [dbo].[VentasDetalle] ([CveVentaDetalle]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] ADD CONSTRAINT [FK_Vta_AplicacionesSaldoFavor_Solicitud]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] ADD CONSTRAINT [FK_Vta_AplicacionesSaldoFavor_PrePoliza]
|
|
FOREIGN KEY ([CvePrePoliza]) REFERENCES [dbo].[Conta_PrePolizas] ([CvePrePoliza]);
|
|
GO
|
|
ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] ADD CONSTRAINT [FK_Vta_AplicacionesSaldoFavor_Sis_Usuarios]
|
|
FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]);
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Tra_Solicitudes]
|
|
FOREIGN KEY ([CveSolicitud]) REFERENCES [dbo].[Tra_Solicitudes] ([CveSolicitud]);
|
|
GO
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Vta_Pagos]
|
|
FOREIGN KEY ([CvePago]) REFERENCES [dbo].[Vta_Pagos] ([CvePago]);
|
|
GO
|
|
ALTER TABLE [dbo].[Conta_PrePolizasDetalle] ADD CONSTRAINT [FK_Conta_PrePolizasDetalle_Vta_AplicacionesSaldoFavor]
|
|
FOREIGN KEY ([CveAplicacionSaldoFavor]) REFERENCES [dbo].[Vta_AplicacionesSaldoFavor] ([CveAplicacionSaldoFavor]);
|
|
GO
|
|
|
|
/* ==================== ÍNDICES DE OPERACIÓN ==================== */
|
|
|
|
CREATE NONCLUSTERED INDEX [IX_Tra_Solicitudes_Cliente_Fraccionamiento_Etapa]
|
|
ON [dbo].[Tra_Solicitudes] ([CveCliente], [CveFraccionamiento], [CveFraccionamientoEtapa]);
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_Tra_Solicitudes_Estatus]
|
|
ON [dbo].[Tra_Solicitudes] ([CveEstatusSolicitud], [FechaAlta]);
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_Tra_HistorialEstatusSolicitud_Solicitud_Fecha]
|
|
ON [dbo].[Tra_HistorialEstatusSolicitud] ([CveSolicitud], [FechaAlta]);
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_VentasDetalle_Solicitud]
|
|
ON [dbo].[VentasDetalle] ([CveSolicitud]) INCLUDE ([CveVenta], [CvePS], [Importe]);
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_Vta_Pagos_Cliente_Venta]
|
|
ON [dbo].[Vta_Pagos] ([CveCliente], [CveVenta], [EsActivo]);
|
|
GO
|
|
CREATE NONCLUSTERED INDEX [IX_Vta_AplicacionesSaldoFavor_PagoOrigen]
|
|
ON [dbo].[Vta_AplicacionesSaldoFavor] ([CvePagoOrigen], [EsActivo]) INCLUDE ([Importe], [CveSolicitud]);
|
|
GO
|
|
|
|
/* El saldo nunca se almacena: se calcula del pago recibido menos sus aplicaciones activas. */
|
|
CREATE VIEW [dbo].[Vta_SaldosFavor]
|
|
AS
|
|
SELECT
|
|
P.[CvePago],
|
|
P.[CveCliente],
|
|
P.[CveVenta],
|
|
P.[CveMoneda],
|
|
P.[Importe] AS [ImporteRecibido],
|
|
ISNULL(SUM(CASE WHEN A.[EsActivo] = (1) THEN A.[Importe] ELSE (0) END), (0)) AS [ImporteAplicado],
|
|
P.[Importe] - ISNULL(SUM(CASE WHEN A.[EsActivo] = (1) THEN A.[Importe] ELSE (0) END), (0)) AS [SaldoDisponible]
|
|
FROM [dbo].[Vta_Pagos] AS P
|
|
LEFT JOIN [dbo].[Vta_AplicacionesSaldoFavor] AS A
|
|
ON A.[CvePagoOrigen] = P.[CvePago]
|
|
WHERE P.[EsSaldoFavor] = (1)
|
|
AND P.[EsActivo] = (1)
|
|
GROUP BY P.[CvePago], P.[CveCliente], P.[CveVenta], P.[CveMoneda], P.[Importe];
|
|
GO
|
|
|
|
/* ==================== BORRADO LÓGICO Y LIMPIEZA CONTROLADA ==================== */
|
|
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
SET XACT_ABORT ON;
|
|
GO
|
|
|
|
/*
|
|
Borrado lógico y limpieza controlada.
|
|
|
|
Convención:
|
|
Borrado = 0 y FechaBorrado IS NULL: registro vigente.
|
|
Borrado = 1 y FechaBorrado IS NOT NULL: registro borrado lógicamente.
|
|
|
|
La limpieza física está deshabilitada por defecto. Cada tabla debe registrarse
|
|
expresamente mediante dbo.Sis_ConfigurarLimpieza y la ejecución inicia siempre
|
|
en modo simulación.
|
|
*/
|
|
|
|
IF OBJECT_ID(N'dbo.Sis_PoliticasLimpieza', N'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE [dbo].[Sis_PoliticasLimpieza]
|
|
(
|
|
[Esquema] sysname NOT NULL,
|
|
[Tabla] sysname NOT NULL,
|
|
[DiasRetencion] int CONSTRAINT [DF_Sis_PoliticasLimpieza_DiasRetencion] DEFAULT ((365)) NOT NULL,
|
|
[TamanoLote] int CONSTRAINT [DF_Sis_PoliticasLimpieza_TamanoLote] DEFAULT ((500)) NOT NULL,
|
|
[Habilitada] bit CONSTRAINT [DF_Sis_PoliticasLimpieza_Habilitada] DEFAULT ((0)) NOT NULL,
|
|
[FechaUltimaLimpieza] datetime2(0) NULL,
|
|
[Borrado] bit CONSTRAINT [DF_Sis_PoliticasLimpieza_Borrado] DEFAULT ((0)) NOT NULL,
|
|
[FechaBorrado] datetime2(0) NULL,
|
|
CONSTRAINT [PK_Sis_PoliticasLimpieza] PRIMARY KEY CLUSTERED ([Esquema], [Tabla]),
|
|
CONSTRAINT [CK_Sis_PoliticasLimpieza_DiasRetencion] CHECK ([DiasRetencion] BETWEEN (30) AND (3650)),
|
|
CONSTRAINT [CK_Sis_PoliticasLimpieza_TamanoLote] CHECK ([TamanoLote] BETWEEN (1) AND (10000)),
|
|
CONSTRAINT [CK_Sis_PoliticasLimpieza_Borrado] CHECK
|
|
(
|
|
([Borrado] = (0) AND [FechaBorrado] IS NULL)
|
|
OR ([Borrado] = (1) AND [FechaBorrado] IS NOT NULL)
|
|
)
|
|
);
|
|
END;
|
|
GO
|
|
|
|
/* Agrega la convención a todas las tablas de usuario existentes. */
|
|
DECLARE @Esquema sysname;
|
|
DECLARE @Tabla sysname;
|
|
DECLARE @Objeto nvarchar(517);
|
|
DECLARE @Sql nvarchar(max);
|
|
DECLARE @Errores TABLE ([Esquema] sysname, [Tabla] sysname, [Mensaje] nvarchar(4000));
|
|
|
|
DECLARE TablasBorradoLogico CURSOR LOCAL FAST_FORWARD FOR
|
|
SELECT S.[name], T.[name]
|
|
FROM sys.tables AS T
|
|
INNER JOIN sys.schemas AS S ON S.[schema_id] = T.[schema_id]
|
|
WHERE T.[is_ms_shipped] = (0)
|
|
AND T.[temporal_type] = (0)
|
|
ORDER BY S.[name], T.[name];
|
|
|
|
OPEN TablasBorradoLogico;
|
|
FETCH NEXT FROM TablasBorradoLogico INTO @Esquema, @Tabla;
|
|
|
|
WHILE @@FETCH_STATUS = (0)
|
|
BEGIN
|
|
SET @Objeto = QUOTENAME(@Esquema) + N'.' + QUOTENAME(@Tabla);
|
|
|
|
BEGIN TRY
|
|
|
|
IF COL_LENGTH(@Esquema + N'.' + @Tabla, N'Borrado') IS NULL
|
|
BEGIN
|
|
SET @Sql = N'ALTER TABLE ' + @Objeto
|
|
+ N' ADD [Borrado] bit NOT NULL DEFAULT ((0)) WITH VALUES;';
|
|
EXEC sys.sp_executesql @Sql;
|
|
END;
|
|
|
|
IF COL_LENGTH(@Esquema + N'.' + @Tabla, N'FechaBorrado') IS NULL
|
|
BEGIN
|
|
SET @Sql = N'ALTER TABLE ' + @Objeto
|
|
+ N' ADD [FechaBorrado] datetime2(0) NULL;';
|
|
EXEC sys.sp_executesql @Sql;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM sys.check_constraints AS C
|
|
WHERE C.[parent_object_id] = OBJECT_ID(@Esquema + N'.' + @Tabla)
|
|
AND C.[name] = N'CK_' + @Tabla + N'_BorradoLogico'
|
|
)
|
|
AND LEN(N'CK_' + @Tabla + N'_BorradoLogico') <= 128
|
|
BEGIN
|
|
SET @Sql = N'ALTER TABLE ' + @Objeto
|
|
+ N' ADD CONSTRAINT ' + QUOTENAME(N'CK_' + @Tabla + N'_BorradoLogico')
|
|
+ N' CHECK (([Borrado] = (0) AND [FechaBorrado] IS NULL)'
|
|
+ N' OR ([Borrado] = (1) AND [FechaBorrado] IS NOT NULL));';
|
|
EXEC sys.sp_executesql @Sql;
|
|
END;
|
|
END TRY
|
|
BEGIN CATCH
|
|
INSERT INTO @Errores ([Esquema], [Tabla], [Mensaje])
|
|
VALUES (@Esquema, @Tabla, ERROR_MESSAGE());
|
|
END CATCH;
|
|
|
|
FETCH NEXT FROM TablasBorradoLogico INTO @Esquema, @Tabla;
|
|
END;
|
|
|
|
CLOSE TablasBorradoLogico;
|
|
DEALLOCATE TablasBorradoLogico;
|
|
|
|
IF EXISTS (SELECT 1 FROM @Errores)
|
|
SELECT [Esquema], [Tabla], [Mensaje] FROM @Errores ORDER BY [Esquema], [Tabla];
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[Sis_ConfigurarLimpieza]
|
|
@Esquema sysname = N'dbo',
|
|
@Tabla sysname,
|
|
@DiasRetencion int = 365,
|
|
@TamanoLote int = 500,
|
|
@Habilitada bit = 0
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
IF @DiasRetencion NOT BETWEEN 30 AND 3650
|
|
THROW 51000, N'Los días de retención deben estar entre 30 y 3650.', 1;
|
|
|
|
IF @TamanoLote NOT BETWEEN 1 AND 10000
|
|
THROW 51001, N'El tamaño de lote debe estar entre 1 y 10000.', 1;
|
|
|
|
IF @Esquema = N'dbo' AND @Tabla = N'Sis_PoliticasLimpieza'
|
|
THROW 51002, N'No se permite configurar la limpieza de la tabla de políticas.', 1;
|
|
|
|
IF OBJECT_ID(QUOTENAME(@Esquema) + N'.' + QUOTENAME(@Tabla), N'U') IS NULL
|
|
THROW 51003, N'La tabla indicada no existe.', 1;
|
|
|
|
IF COL_LENGTH(@Esquema + N'.' + @Tabla, N'Borrado') IS NULL
|
|
OR COL_LENGTH(@Esquema + N'.' + @Tabla, N'FechaBorrado') IS NULL
|
|
THROW 51004, N'La tabla no tiene las columnas de borrado lógico.', 1;
|
|
|
|
UPDATE [dbo].[Sis_PoliticasLimpieza]
|
|
SET [DiasRetencion] = @DiasRetencion,
|
|
[TamanoLote] = @TamanoLote,
|
|
[Habilitada] = @Habilitada,
|
|
[Borrado] = (0),
|
|
[FechaBorrado] = NULL
|
|
WHERE [Esquema] = @Esquema
|
|
AND [Tabla] = @Tabla;
|
|
|
|
IF @@ROWCOUNT = (0)
|
|
BEGIN
|
|
INSERT INTO [dbo].[Sis_PoliticasLimpieza]
|
|
([Esquema], [Tabla], [DiasRetencion], [TamanoLote], [Habilitada])
|
|
VALUES
|
|
(@Esquema, @Tabla, @DiasRetencion, @TamanoLote, @Habilitada);
|
|
END;
|
|
|
|
DECLARE @NombreIndice sysname = N'IX_BorradoLogico_FechaBorrado';
|
|
DECLARE @SqlIndice nvarchar(max);
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM sys.indexes
|
|
WHERE [object_id] = OBJECT_ID(QUOTENAME(@Esquema) + N'.' + QUOTENAME(@Tabla))
|
|
AND [name] = @NombreIndice
|
|
)
|
|
BEGIN
|
|
SET @SqlIndice = N'CREATE NONCLUSTERED INDEX ' + QUOTENAME(@NombreIndice)
|
|
+ N' ON ' + QUOTENAME(@Esquema) + N'.' + QUOTENAME(@Tabla)
|
|
+ N' ([FechaBorrado]) WHERE [Borrado] = (1);';
|
|
EXEC sys.sp_executesql @SqlIndice;
|
|
END;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[Sis_LimpiarRegistrosBorrados]
|
|
@SoloSimular bit = 1,
|
|
@ConfirmarBorradoFisico bit = 0,
|
|
@MaximoLotesPorTabla int = 100
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
IF @MaximoLotesPorTabla NOT BETWEEN 1 AND 10000
|
|
THROW 51010, N'El máximo de lotes debe estar entre 1 y 10000.', 1;
|
|
|
|
IF @SoloSimular = (0) AND @ConfirmarBorradoFisico = (0)
|
|
THROW 51011, N'Para borrar físicamente debe enviar @ConfirmarBorradoFisico = 1.', 1;
|
|
|
|
DECLARE @Resultados TABLE
|
|
(
|
|
[Esquema] sysname NOT NULL,
|
|
[Tabla] sysname NOT NULL,
|
|
[FilasElegibles] bigint NOT NULL,
|
|
[FilasEliminadas] bigint NOT NULL,
|
|
[Resultado] nvarchar(4000) NOT NULL
|
|
);
|
|
|
|
DECLARE @Esquema sysname;
|
|
DECLARE @Tabla sysname;
|
|
DECLARE @DiasRetencion int;
|
|
DECLARE @TamanoLote int;
|
|
DECLARE @Objeto nvarchar(517);
|
|
DECLARE @Sql nvarchar(max);
|
|
DECLARE @Errores TABLE ([Esquema] sysname, [Tabla] sysname, [Mensaje] nvarchar(4000));
|
|
DECLARE @Elegibles bigint;
|
|
DECLARE @Eliminadas bigint;
|
|
DECLARE @FilasLote int;
|
|
DECLARE @NumeroLote int;
|
|
|
|
DECLARE Politicas CURSOR LOCAL FAST_FORWARD FOR
|
|
SELECT [Esquema], [Tabla], [DiasRetencion], [TamanoLote]
|
|
FROM [dbo].[Sis_PoliticasLimpieza]
|
|
WHERE [Habilitada] = (1)
|
|
AND [Borrado] = (0)
|
|
ORDER BY [Esquema], [Tabla];
|
|
|
|
OPEN Politicas;
|
|
FETCH NEXT FROM Politicas INTO @Esquema, @Tabla, @DiasRetencion, @TamanoLote;
|
|
|
|
WHILE @@FETCH_STATUS = (0)
|
|
BEGIN
|
|
SET @Objeto = QUOTENAME(@Esquema) + N'.' + QUOTENAME(@Tabla);
|
|
|
|
BEGIN TRY
|
|
SET @Elegibles = (0);
|
|
SET @Eliminadas = (0);
|
|
|
|
BEGIN TRY
|
|
IF OBJECT_ID(@Objeto, N'U') IS NULL
|
|
THROW 51012, N'La tabla configurada ya no existe.', 1;
|
|
|
|
SET @Sql = N'SELECT @Cantidad = COUNT_BIG(*) FROM ' + @Objeto
|
|
+ N' WHERE [Borrado] = (1)'
|
|
+ N' AND [FechaBorrado] < DATEADD(DAY, -@Dias, SYSDATETIME());';
|
|
|
|
EXEC sys.sp_executesql
|
|
@Sql,
|
|
N'@Dias int, @Cantidad bigint OUTPUT',
|
|
@Dias = @DiasRetencion,
|
|
@Cantidad = @Elegibles OUTPUT;
|
|
|
|
IF @SoloSimular = (1)
|
|
BEGIN
|
|
INSERT INTO @Resultados
|
|
([Esquema], [Tabla], [FilasElegibles], [FilasEliminadas], [Resultado])
|
|
VALUES
|
|
(@Esquema, @Tabla, @Elegibles, (0), N'Simulación; no se eliminó información.');
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @NumeroLote = (0);
|
|
SET @FilasLote = (1);
|
|
|
|
WHILE @FilasLote > (0) AND @NumeroLote < @MaximoLotesPorTabla
|
|
BEGIN
|
|
SET @Sql = N'DELETE TOP (@Lote) FROM ' + @Objeto
|
|
+ N' WHERE [Borrado] = (1)'
|
|
+ N' AND [FechaBorrado] < DATEADD(DAY, -@Dias, SYSDATETIME());'
|
|
+ N' SET @Filas = @@ROWCOUNT;';
|
|
|
|
EXEC sys.sp_executesql
|
|
@Sql,
|
|
N'@Lote int, @Dias int, @Filas int OUTPUT',
|
|
@Lote = @TamanoLote,
|
|
@Dias = @DiasRetencion,
|
|
@Filas = @FilasLote OUTPUT;
|
|
|
|
SET @Eliminadas += @FilasLote;
|
|
SET @NumeroLote += (1);
|
|
END;
|
|
|
|
UPDATE [dbo].[Sis_PoliticasLimpieza]
|
|
SET [FechaUltimaLimpieza] = SYSDATETIME()
|
|
WHERE [Esquema] = @Esquema
|
|
AND [Tabla] = @Tabla;
|
|
|
|
INSERT INTO @Resultados
|
|
([Esquema], [Tabla], [FilasElegibles], [FilasEliminadas], [Resultado])
|
|
VALUES
|
|
(@Esquema, @Tabla, @Elegibles, @Eliminadas, N'Limpieza física ejecutada.');
|
|
END;
|
|
END TRY
|
|
BEGIN CATCH
|
|
INSERT INTO @Resultados
|
|
([Esquema], [Tabla], [FilasElegibles], [FilasEliminadas], [Resultado])
|
|
VALUES
|
|
(@Esquema, @Tabla, @Elegibles, @Eliminadas,
|
|
CONCAT(N'No se eliminó la tabla: ', ERROR_MESSAGE()));
|
|
END CATCH;
|
|
|
|
FETCH NEXT FROM Politicas INTO @Esquema, @Tabla, @DiasRetencion, @TamanoLote;
|
|
END;
|
|
|
|
CLOSE Politicas;
|
|
DEALLOCATE Politicas;
|
|
|
|
SELECT [Esquema], [Tabla], [FilasElegibles], [FilasEliminadas], [Resultado]
|
|
FROM @Resultados
|
|
ORDER BY [Esquema], [Tabla];
|
|
END;
|
|
GO
|
|
|
|
/*
|
|
Ejemplos (no se ejecutan automáticamente):
|
|
|
|
-- Borrado lógico desde un repositorio/servicio:
|
|
UPDATE dbo.Fraccionamientos
|
|
SET Borrado = 1, FechaBorrado = SYSDATETIME()
|
|
WHERE CveFraccionamiento = @CveFraccionamiento;
|
|
|
|
-- Restauración:
|
|
UPDATE dbo.Fraccionamientos
|
|
SET Borrado = 0, FechaBorrado = NULL
|
|
WHERE CveFraccionamiento = @CveFraccionamiento;
|
|
|
|
-- Habilitar limpieza de una tabla después de 365 días:
|
|
EXEC dbo.Sis_ConfigurarLimpieza
|
|
@Esquema = N'dbo', @Tabla = N'Fraccionamientos',
|
|
@DiasRetencion = 365, @TamanoLote = 500, @Habilitada = 1;
|
|
|
|
-- Revisar qué se eliminaría (modo predeterminado y seguro):
|
|
EXEC dbo.Sis_LimpiarRegistrosBorrados;
|
|
|
|
-- Ejecutar la limpieza física confirmada:
|
|
EXEC dbo.Sis_LimpiarRegistrosBorrados
|
|
@SoloSimular = 0, @ConfirmarBorradoFisico = 1;
|
|
*/
|
|
|
|
/* ==================== PROCEDIMIENTOS DE SEGURIDAD DE LA APLICACIÓN ==================== */
|
|
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioGetByName]
|
|
@NombreUsuario varchar(100),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
SELECT TOP (1)
|
|
U.[CveUsuario], U.[NombreUsuario], U.[HashContrasena], U.[CorreoElectronico],
|
|
U.[CveRol], R.[NombreRol], U.[Activo], U.[DebeCambiarContrasena],
|
|
U.[IntentosFallidosInicioSesion], U.[BloqueadoHasta],
|
|
U.[FechaUltimoInicioSesion], U.[FechaUltimaConexion]
|
|
FROM [dbo].[Sis_Usuarios] AS U
|
|
INNER JOIN [dbo].[Sis_Roles] AS R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[NombreUsuario] = @NombreUsuario
|
|
AND U.[Borrado] = (0)
|
|
AND R.[Borrado] = (0);
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar el usuario; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_UsuarioGetByName'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioLoginSuccessUpdate]
|
|
@CveUsuario int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
UPDATE [dbo].[Sis_Usuarios]
|
|
SET [FechaUltimoInicioSesion] = GETDATE(),
|
|
[FechaUltimaConexion] = GETDATE(),
|
|
[IntentosFallidosInicioSesion] = (0),
|
|
[BloqueadoHasta] = NULL,
|
|
[FechaActualizacion] = GETDATE()
|
|
WHERE [CveUsuario] = @CveUsuario
|
|
AND [Borrado] = (0);
|
|
|
|
IF @@ROWCOUNT = (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario ya no está disponible.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al actualizar el inicio de sesión; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_UsuarioLoginSuccessUpdate'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioLoginFailedUpdate]
|
|
@CveUsuario int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
UPDATE [dbo].[Sis_Usuarios]
|
|
SET [IntentosFallidosInicioSesion] = [IntentosFallidosInicioSesion] + (1),
|
|
[BloqueadoHasta] = CASE
|
|
WHEN [IntentosFallidosInicioSesion] + (1) >= (5)
|
|
THEN DATEADD(MINUTE, (15), GETDATE())
|
|
ELSE [BloqueadoHasta]
|
|
END,
|
|
[FechaActualizacion] = GETDATE()
|
|
WHERE [CveUsuario] = @CveUsuario
|
|
AND [Borrado] = (0);
|
|
|
|
IF @@ROWCOUNT = (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario ya no está disponible.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al registrar el intento de acceso; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_UsuarioLoginFailedUpdate'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_IntentoInicioSesionAdd]
|
|
@CveUsuario int = NULL,
|
|
@NombreUsuario varchar(100),
|
|
@Exitoso bit,
|
|
@MotivoFallo varchar(200) = NULL,
|
|
@DireccionIP varchar(50) = NULL,
|
|
@AgenteUsuario varchar(1000) = NULL,
|
|
@NombreDominio varchar(255) = NULL,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
INSERT INTO [dbo].[Sis_IntentosInicioSesion]
|
|
([CveUsuario], [NombreUsuario], [Exitoso], [MotivoFallo],
|
|
[DireccionIP], [AgenteUsuario], [NombreDominio])
|
|
VALUES
|
|
(@CveUsuario, @NombreUsuario, @Exitoso, @MotivoFallo,
|
|
@DireccionIP, @AgenteUsuario, @NombreDominio);
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al registrar el intento de acceso; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_IntentoInicioSesionAdd'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioSesionAdd]
|
|
@CveUsuario int,
|
|
@TokenSesion varchar(200),
|
|
@DireccionIP varchar(50) = NULL,
|
|
@AgenteUsuario varchar(1000) = NULL,
|
|
@NombreDominio varchar(255) = NULL,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_Usuarios]
|
|
WHERE [CveUsuario] = @CveUsuario AND [Activo] = (1) AND [Borrado] = (0)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario no está disponible para iniciar sesión.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
INSERT INTO [dbo].[Sis_UsuariosSesiones]
|
|
([CveUsuario], [TokenSesion], [DireccionIP], [AgenteUsuario],
|
|
[NombreDominio], [FechaUltimaActividad])
|
|
VALUES
|
|
(@CveUsuario, @TokenSesion, @DireccionIP, @AgenteUsuario,
|
|
@NombreDominio, GETDATE());
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al crear la sesión; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_UsuarioSesionAdd'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioSesionEnd]
|
|
@TokenSesion varchar(200),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
UPDATE [dbo].[Sis_UsuariosSesiones]
|
|
SET [FechaFin] = GETDATE(), [Activo] = (0)
|
|
WHERE [TokenSesion] = @TokenSesion
|
|
AND [Borrado] = (0);
|
|
|
|
/* Cerrar una sesión inexistente o ya cerrada es una operación idempotente. */
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al cerrar la sesión; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_UsuarioSesionEnd'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_PermisoCheck]
|
|
@CodigoPermiso varchar(100),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
DECLARE @CveRol int;
|
|
DECLARE @PermisoUsuario bit;
|
|
|
|
SELECT @CveRol = [CveRol]
|
|
FROM [dbo].[Sis_Usuarios]
|
|
WHERE [CveUsuario] = @CveUsuarioEjecuta
|
|
AND [Activo] = (1)
|
|
AND [Borrado] = (0);
|
|
|
|
SELECT TOP (1) @PermisoUsuario = UP.[Permitido]
|
|
FROM [dbo].[Sis_UsuariosPermisos] AS UP
|
|
INNER JOIN [dbo].[Sis_Permisos] AS P ON P.[CvePermiso] = UP.[CvePermiso]
|
|
WHERE UP.[CveUsuario] = @CveUsuarioEjecuta
|
|
AND P.[CodigoPermiso] = @CodigoPermiso
|
|
AND P.[Activo] = (1)
|
|
AND UP.[Borrado] = (0)
|
|
AND P.[Borrado] = (0);
|
|
|
|
IF @PermisoUsuario IS NOT NULL
|
|
SELECT CAST(@PermisoUsuario AS bit) AS [Permitido];
|
|
ELSE IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[Sis_RolesPermisos] AS RP
|
|
INNER JOIN [dbo].[Sis_Permisos] AS P ON P.[CvePermiso] = RP.[CvePermiso]
|
|
WHERE RP.[CveRol] = @CveRol
|
|
AND P.[CodigoPermiso] = @CodigoPermiso
|
|
AND RP.[Permitido] = (1)
|
|
AND P.[Activo] = (1)
|
|
AND RP.[Borrado] = (0)
|
|
AND P.[Borrado] = (0)
|
|
)
|
|
SELECT CAST((1) AS bit) AS [Permitido];
|
|
ELSE
|
|
SELECT CAST((0) AS bit) AS [Permitido];
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar los permisos; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_PermisoCheck'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_PaginaAccessCheck]
|
|
@PaginaUrl varchar(500),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
DECLARE @CveRol int;
|
|
DECLARE @PuedeAcceder bit = (0);
|
|
|
|
SELECT @CveRol = [CveRol]
|
|
FROM [dbo].[Sis_Usuarios]
|
|
WHERE [CveUsuario] = @CveUsuarioEjecuta
|
|
AND [Activo] = (1)
|
|
AND [Borrado] = (0);
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[Sis_Modulos] AS M
|
|
INNER JOIN [dbo].[Sis_RolesModulos] AS RM ON RM.[CveModulo] = M.[CveModulo]
|
|
WHERE RM.[CveRol] = @CveRol
|
|
AND RM.[PuedeVer] = (1)
|
|
AND M.[Activo] = (1)
|
|
AND M.[Visible] = (1)
|
|
AND RM.[Borrado] = (0)
|
|
AND M.[Borrado] = (0)
|
|
AND
|
|
(
|
|
LOWER(REPLACE(M.[Url], '~/', '')) = LOWER(@PaginaUrl)
|
|
OR LOWER(REPLACE(M.[Url], '/', '')) = LOWER(REPLACE(@PaginaUrl, '/', ''))
|
|
)
|
|
)
|
|
SET @PuedeAcceder = (1);
|
|
ELSE IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[Sis_Modulos] AS M
|
|
WHERE M.[Activo] = (1)
|
|
AND M.[Borrado] = (0)
|
|
AND LOWER(REPLACE(M.[Url], '~/', '')) = LOWER(@PaginaUrl)
|
|
)
|
|
SET @PuedeAcceder = (0);
|
|
ELSE IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[Sis_UsuariosPermisos] AS UP
|
|
INNER JOIN [dbo].[Sis_Permisos] AS P ON P.[CvePermiso] = UP.[CvePermiso]
|
|
WHERE UP.[CveUsuario] = @CveUsuarioEjecuta
|
|
AND P.[CodigoPermiso] = 'System.Access'
|
|
AND UP.[Permitido] = (1)
|
|
AND P.[Activo] = (1)
|
|
AND UP.[Borrado] = (0)
|
|
AND P.[Borrado] = (0)
|
|
)
|
|
SET @PuedeAcceder = (1);
|
|
ELSE IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[Sis_RolesPermisos] AS RP
|
|
INNER JOIN [dbo].[Sis_Permisos] AS P ON P.[CvePermiso] = RP.[CvePermiso]
|
|
WHERE RP.[CveRol] = @CveRol
|
|
AND P.[CodigoPermiso] = 'System.Access'
|
|
AND RP.[Permitido] = (1)
|
|
AND P.[Activo] = (1)
|
|
AND RP.[Borrado] = (0)
|
|
AND P.[Borrado] = (0)
|
|
)
|
|
SET @PuedeAcceder = (1);
|
|
|
|
SELECT @PuedeAcceder AS [PuedeAcceder];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al validar el acceso; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_PaginaAccessCheck'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_MenuList]
|
|
@CveRol int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
|
|
BEGIN TRY
|
|
SELECT DISTINCT
|
|
M.[CveModulo], M.[CveModuloPadre], M.[NombreModulo], M.[Url],
|
|
M.[ClaseCssIcono], M.[ClaseCssEstilo], M.[OrdenVisualizacion], M.[Visible]
|
|
FROM [dbo].[Sis_Modulos] AS M
|
|
INNER JOIN [dbo].[Sis_RolesModulos] AS RM ON RM.[CveModulo] = M.[CveModulo]
|
|
WHERE RM.[CveRol] = @CveRol
|
|
AND RM.[PuedeVer] = (1)
|
|
AND M.[Activo] = (1)
|
|
AND M.[Visible] = (1)
|
|
AND RM.[Borrado] = (0)
|
|
AND M.[Borrado] = (0)
|
|
ORDER BY M.[OrdenVisualizacion], M.[NombreModulo];
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar el menú; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Sis_MenuList'), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
/* ==================== USUARIOS, CLIENTES Y AUTORREGISTRO ==================== */
|
|
|
|
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
|
|
/* ==================== COLUMNAS DE VERIFICACIÓN ==================== */
|
|
|
|
IF COL_LENGTH(N'dbo.Sis_Usuarios', N'CorreoVerificado') IS NULL
|
|
ALTER TABLE [dbo].[Sis_Usuarios]
|
|
ADD [CorreoVerificado] bit NOT NULL
|
|
CONSTRAINT [DF_Sis_Usuarios_CorreoVerificado] DEFAULT ((1)) WITH VALUES;
|
|
GO
|
|
|
|
IF COL_LENGTH(N'dbo.Sis_Usuarios', N'FechaVerificacionCorreo') IS NULL
|
|
ALTER TABLE [dbo].[Sis_Usuarios] ADD [FechaVerificacionCorreo] datetime2(0) NULL;
|
|
GO
|
|
|
|
/* ==================== RELACIÓN USUARIO - CLIENTE ==================== */
|
|
|
|
IF OBJECT_ID(N'dbo.Sis_UsuariosClientes', N'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE [dbo].[Sis_UsuariosClientes]
|
|
(
|
|
[CveUsuarioCliente] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveCliente] int NOT NULL,
|
|
[Orden] int NOT NULL,
|
|
[EsPrincipal] bit NOT NULL CONSTRAINT [DF_Sis_UsuariosClientes_EsPrincipal] DEFAULT ((0)),
|
|
[Activo] bit NOT NULL CONSTRAINT [DF_Sis_UsuariosClientes_Activo] DEFAULT ((1)),
|
|
[FechaCreacion] datetime2(0) NOT NULL CONSTRAINT [DF_Sis_UsuariosClientes_FechaCreacion] DEFAULT (SYSDATETIME()),
|
|
[FechaActualizacion] datetime2(0) NULL,
|
|
[CveUsuarioRegistro] int NOT NULL,
|
|
[Borrado] bit NOT NULL CONSTRAINT [DF_Sis_UsuariosClientes_Borrado] DEFAULT ((0)),
|
|
[FechaBorrado] datetime2(0) NULL,
|
|
CONSTRAINT [PK_Sis_UsuariosClientes] PRIMARY KEY CLUSTERED ([CveUsuarioCliente]),
|
|
CONSTRAINT [CK_Sis_UsuariosClientes_Orden] CHECK ([Orden] > (0)),
|
|
CONSTRAINT [CK_Sis_UsuariosClientes_Borrado] CHECK
|
|
(([Borrado] = (0) AND [FechaBorrado] IS NULL) OR ([Borrado] = (1) AND [FechaBorrado] IS NOT NULL)),
|
|
CONSTRAINT [FK_Sis_UsuariosClientes_Usuario] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]),
|
|
CONSTRAINT [FK_Sis_UsuariosClientes_Cliente] FOREIGN KEY ([CveCliente]) REFERENCES [dbo].[Clientes] ([CveCliente]),
|
|
CONSTRAINT [FK_Sis_UsuariosClientes_UsuarioRegistro] FOREIGN KEY ([CveUsuarioRegistro]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario])
|
|
);
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX [UX_Sis_UsuariosClientes_Usuario_Cliente]
|
|
ON [dbo].[Sis_UsuariosClientes] ([CveUsuario], [CveCliente])
|
|
WHERE [Borrado] = (0);
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX [UX_Sis_UsuariosClientes_Usuario_Orden]
|
|
ON [dbo].[Sis_UsuariosClientes] ([CveUsuario], [Orden])
|
|
WHERE [Borrado] = (0) AND [Activo] = (1);
|
|
END;
|
|
GO
|
|
|
|
/* ==================== VERIFICACIÓN DE CORREO ==================== */
|
|
|
|
IF OBJECT_ID(N'dbo.Sis_UsuariosVerificacionesCorreo', N'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE [dbo].[Sis_UsuariosVerificacionesCorreo]
|
|
(
|
|
[CveUsuarioVerificacionCorreo] int IDENTITY(1,1) NOT NULL,
|
|
[CveUsuario] int NOT NULL,
|
|
[CveClienteRegistro] int NULL,
|
|
[HashToken] char(64) COLLATE Modern_Spanish_CS_AI NOT NULL,
|
|
[FechaExpiracion] datetime2(0) NOT NULL,
|
|
[FechaVerificacion] datetime2(0) NULL,
|
|
[Utilizado] bit NOT NULL CONSTRAINT [DF_Sis_UsuariosVerificacionesCorreo_Utilizado] DEFAULT ((0)),
|
|
[FechaCreacion] datetime2(0) NOT NULL CONSTRAINT [DF_Sis_UsuariosVerificacionesCorreo_FechaCreacion] DEFAULT (SYSDATETIME()),
|
|
[Borrado] bit NOT NULL CONSTRAINT [DF_Sis_UsuariosVerificacionesCorreo_Borrado] DEFAULT ((0)),
|
|
[FechaBorrado] datetime2(0) NULL,
|
|
CONSTRAINT [PK_Sis_UsuariosVerificacionesCorreo] PRIMARY KEY CLUSTERED ([CveUsuarioVerificacionCorreo]),
|
|
CONSTRAINT [UQ_Sis_UsuariosVerificacionesCorreo_HashToken] UNIQUE NONCLUSTERED ([HashToken]),
|
|
CONSTRAINT [CK_Sis_UsuariosVerificacionesCorreo_Borrado] CHECK
|
|
(([Borrado] = (0) AND [FechaBorrado] IS NULL) OR ([Borrado] = (1) AND [FechaBorrado] IS NOT NULL)),
|
|
CONSTRAINT [FK_Sis_UsuariosVerificacionesCorreo_Usuario] FOREIGN KEY ([CveUsuario]) REFERENCES [dbo].[Sis_Usuarios] ([CveUsuario]),
|
|
CONSTRAINT [FK_Sis_UsuariosVerificacionesCorreo_Cliente] FOREIGN KEY ([CveClienteRegistro]) REFERENCES [dbo].[Clientes] ([CveCliente])
|
|
);
|
|
|
|
CREATE NONCLUSTERED INDEX [IX_Sis_UsuariosVerificacionesCorreo_Pendiente]
|
|
ON [dbo].[Sis_UsuariosVerificacionesCorreo] ([CveUsuario], [Utilizado], [FechaExpiracion])
|
|
WHERE [Borrado] = (0);
|
|
END;
|
|
GO
|
|
|
|
/* ==================== CATÁLOGOS ==================== */
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_RolList]
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
SELECT [CveRol], [NombreRol], [Descripcion]
|
|
FROM [dbo].[Sis_Roles]
|
|
WHERE [Activo] = (1) AND [Borrado] = (0)
|
|
ORDER BY [NombreRol];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar los roles; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Gral_EstadoList]
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
SELECT [CveEstado], [NombreEstado], [ClaveSATEstado]
|
|
FROM [dbo].[Gral_SAT_Estado]
|
|
WHERE [Borrado] = (0)
|
|
ORDER BY [NombreEstado];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar los estados; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
/* ==================== AUTORREGISTRO ==================== */
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_RegistroClienteValidate]
|
|
@NombreUsuario varchar(100),
|
|
@CorreoElectronico varchar(255),
|
|
@RFC varchar(15),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
SET @NombreUsuario = LTRIM(RTRIM(@NombreUsuario));
|
|
SET @CorreoElectronico = LOWER(LTRIM(RTRIM(@CorreoElectronico)));
|
|
SET @RFC = UPPER(REPLACE(LTRIM(RTRIM(@RFC)), ' ', ''));
|
|
|
|
IF EXISTS (SELECT 1 FROM [dbo].[Sis_Usuarios] WHERE [NombreUsuario] = @NombreUsuario)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El nombre de usuario ya se encuentra registrado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS (SELECT 1 FROM [dbo].[Sis_Usuarios] WHERE LOWER([CorreoElectronico]) = @CorreoElectronico)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El correo electrónico ya se encuentra registrado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
/* Incluye clientes activos, inactivos y borrados para impedir autorreactivación. */
|
|
IF EXISTS (SELECT 1 FROM [dbo].[Clientes] WHERE UPPER(REPLACE(LTRIM(RTRIM([RFC])), ' ', '')) = @RFC)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El RFC ya se encuentra registrado. Contacta a un administrador para solicitar acceso.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al validar el registro; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_RegistroClienteAdd]
|
|
@NombreUsuario varchar(100),
|
|
@HashContrasena varchar(500),
|
|
@CorreoElectronico varchar(255),
|
|
@RFC varchar(15),
|
|
@RazonSocial varchar(200),
|
|
@NombreComercial varchar(200) = NULL,
|
|
@Direccion varchar(90),
|
|
@NoExt varchar(20) = NULL,
|
|
@NoInt varchar(50) = NULL,
|
|
@Colonia varchar(50),
|
|
@Ciudad varchar(50),
|
|
@CveSATEstado int,
|
|
@Pais varchar(50) = 'México',
|
|
@CP varchar(10) = NULL,
|
|
@Telefono varchar(25) = NULL,
|
|
@HashToken char(64),
|
|
@HorasExpiracion int = 24,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
DECLARE @CveRolEmpresa int;
|
|
DECLARE @CveUsuario int;
|
|
DECLARE @CveCliente int;
|
|
DECLARE @NombreEstado varchar(35);
|
|
|
|
SET @NombreUsuario = LTRIM(RTRIM(@NombreUsuario));
|
|
SET @CorreoElectronico = LOWER(LTRIM(RTRIM(@CorreoElectronico)));
|
|
SET @RFC = UPPER(REPLACE(LTRIM(RTRIM(@RFC)), ' ', ''));
|
|
|
|
SELECT @CveRolEmpresa = [CveRol]
|
|
FROM [dbo].[Sis_Roles]
|
|
WHERE [NombreRol] = 'Empresa' AND [Activo] = (1) AND [Borrado] = (0);
|
|
|
|
SELECT @NombreEstado = LEFT([NombreEstado], 35)
|
|
FROM [dbo].[Gral_SAT_Estado]
|
|
WHERE [CveEstado] = @CveSATEstado AND [Borrado] = (0);
|
|
|
|
IF @CveRolEmpresa IS NULL OR @NombreEstado IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'No fue posible determinar el rol Empresa o el estado seleccionado.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS (SELECT 1 FROM [dbo].[Sis_Usuarios] WHERE [NombreUsuario] = @NombreUsuario)
|
|
OR EXISTS (SELECT 1 FROM [dbo].[Sis_Usuarios] WHERE LOWER([CorreoElectronico]) = @CorreoElectronico)
|
|
OR EXISTS (SELECT 1 FROM [dbo].[Clientes] WHERE UPPER(REPLACE(LTRIM(RTRIM([RFC])), ' ', '')) = @RFC)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Los datos ya fueron registrados por otra solicitud. Actualiza la página e inténtalo nuevamente.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
INSERT INTO [dbo].[Sis_Usuarios]
|
|
([NombreUsuario], [HashContrasena], [CorreoElectronico], [CveRol], [Activo],
|
|
[DebeCambiarContrasena], [CorreoVerificado])
|
|
VALUES
|
|
(@NombreUsuario, @HashContrasena, @CorreoElectronico, @CveRolEmpresa, (0), (0), (0));
|
|
|
|
SET @CveUsuario = CONVERT(int, SCOPE_IDENTITY());
|
|
|
|
INSERT INTO [dbo].[Clientes]
|
|
([Nombre], [NombreComercial], [Direccion], [NoExt], [NoInt], [Colonia],
|
|
[Ciudad], [Estado], [CveSATEstado], [Pais], [RFC], [CP], [Telefono],
|
|
[Mail], [Estatus], [Fecha], [CveUsuario], [FechaIng])
|
|
VALUES
|
|
(@RazonSocial, NULLIF(@NombreComercial, ''), @Direccion, NULLIF(@NoExt, ''),
|
|
NULLIF(@NoInt, ''), @Colonia, @Ciudad, @NombreEstado, @CveSATEstado,
|
|
COALESCE(NULLIF(@Pais, ''), 'México'), @RFC, NULLIF(@CP, ''),
|
|
NULLIF(@Telefono, ''), @CorreoElectronico, (0), CONVERT(date, GETDATE()),
|
|
@CveUsuario, GETDATE());
|
|
|
|
SET @CveCliente = CONVERT(int, SCOPE_IDENTITY());
|
|
|
|
INSERT INTO [dbo].[Sis_UsuariosClientes]
|
|
([CveUsuario], [CveCliente], [Orden], [EsPrincipal], [Activo], [CveUsuarioRegistro])
|
|
VALUES
|
|
(@CveUsuario, @CveCliente, (1), (1), (1), @CveUsuario);
|
|
|
|
INSERT INTO [dbo].[Sis_UsuariosVerificacionesCorreo]
|
|
([CveUsuario], [CveClienteRegistro], [HashToken], [FechaExpiracion])
|
|
VALUES
|
|
(@CveUsuario, @CveCliente, @HashToken, DATEADD(HOUR, @HorasExpiracion, SYSDATETIME()));
|
|
|
|
COMMIT TRANSACTION;
|
|
|
|
SELECT @CveUsuario AS [CveUsuario], @CveCliente AS [CveCliente];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF XACT_STATE() <> 0 ROLLBACK TRANSACTION;
|
|
SET @ErrorMostrar = 'Ocurrió un error al crear el registro; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_CorreoVerify]
|
|
@HashToken char(64),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
DECLARE @CveVerificacion int;
|
|
DECLARE @CveUsuario int;
|
|
DECLARE @CveCliente int;
|
|
|
|
SELECT TOP (1)
|
|
@CveVerificacion = [CveUsuarioVerificacionCorreo],
|
|
@CveUsuario = [CveUsuario],
|
|
@CveCliente = [CveClienteRegistro]
|
|
FROM [dbo].[Sis_UsuariosVerificacionesCorreo]
|
|
WHERE [HashToken] = @HashToken
|
|
AND [Utilizado] = (0)
|
|
AND [Borrado] = (0)
|
|
AND [FechaExpiracion] >= SYSDATETIME();
|
|
|
|
IF @CveVerificacion IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La liga de verificación no es válida o ya expiró.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
UPDATE [dbo].[Sis_UsuariosVerificacionesCorreo]
|
|
SET [Utilizado] = (1), [FechaVerificacion] = SYSDATETIME()
|
|
WHERE [CveUsuarioVerificacionCorreo] = @CveVerificacion AND [Utilizado] = (0);
|
|
|
|
IF @@ROWCOUNT = (0)
|
|
BEGIN
|
|
ROLLBACK TRANSACTION;
|
|
SET @ErrorMostrar = 'La liga de verificación ya fue utilizada.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
UPDATE [dbo].[Sis_Usuarios]
|
|
SET [CorreoVerificado] = (1), [FechaVerificacionCorreo] = SYSDATETIME(),
|
|
[Activo] = (1), [FechaActualizacion] = GETDATE()
|
|
WHERE [CveUsuario] = @CveUsuario AND [Borrado] = (0);
|
|
|
|
/* Activación inicial del cliente creado por este mismo token. */
|
|
UPDATE [dbo].[Clientes]
|
|
SET [Estatus] = (1), [CveUsuarioModifico] = @CveUsuario
|
|
WHERE [CveCliente] = @CveCliente AND [CveUsuario] = @CveUsuario AND [Borrado] = (0);
|
|
|
|
COMMIT TRANSACTION;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF XACT_STATE() <> 0 ROLLBACK TRANSACTION;
|
|
SET @ErrorMostrar = 'Ocurrió un error al verificar el correo; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
/* ==================== ADMINISTRACIÓN DE USUARIOS ==================== */
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioList]
|
|
@Texto varchar(150) = NULL,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_Usuarios] U
|
|
INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[CveUsuario] = @CveUsuarioEjecuta
|
|
AND R.[NombreRol] IN ('SuperUsuario', 'Administrador')
|
|
AND U.[Activo] = (1) AND U.[Borrado] = (0)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'No tienes permiso para consultar usuarios.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT U.[CveUsuario], U.[NombreUsuario], U.[CorreoElectronico], U.[CveRol],
|
|
R.[NombreRol], U.[Activo], U.[CorreoVerificado], U.[FechaCreacion]
|
|
FROM [dbo].[Sis_Usuarios] U
|
|
INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[Borrado] = (0)
|
|
AND (@Texto IS NULL OR U.[NombreUsuario] LIKE '%' + @Texto + '%'
|
|
OR U.[CorreoElectronico] LIKE '%' + @Texto + '%')
|
|
ORDER BY U.[NombreUsuario];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar usuarios; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioGet]
|
|
@CveUsuario int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
SELECT U.[CveUsuario], U.[NombreUsuario], U.[CorreoElectronico], U.[CveRol],
|
|
R.[NombreRol], U.[Activo], U.[DebeCambiarContrasena], U.[CorreoVerificado]
|
|
FROM [dbo].[Sis_Usuarios] U
|
|
INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[CveUsuario] = @CveUsuario AND U.[Borrado] = (0);
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar el usuario; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioSave]
|
|
@CveUsuario int = NULL,
|
|
@NombreUsuario varchar(100),
|
|
@CorreoElectronico varchar(255),
|
|
@CveRol int,
|
|
@HashContrasena varchar(500) = NULL,
|
|
@Activo bit,
|
|
@DebeCambiarContrasena bit,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_Usuarios] U
|
|
INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[CveUsuario] = @CveUsuarioEjecuta AND R.[NombreRol] = 'SuperUsuario'
|
|
AND U.[Activo] = (1) AND U.[Borrado] = (0)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Sólo un SuperUsuario puede crear o modificar usuarios.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS (SELECT 1 FROM [dbo].[Sis_Usuarios] WHERE [NombreUsuario] = @NombreUsuario AND [CveUsuario] <> ISNULL(@CveUsuario, (0)))
|
|
OR EXISTS (SELECT 1 FROM [dbo].[Sis_Usuarios] WHERE LOWER([CorreoElectronico]) = LOWER(@CorreoElectronico) AND [CveUsuario] <> ISNULL(@CveUsuario, (0)))
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El usuario o correo electrónico ya está registrado.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveUsuario IS NULL OR @CveUsuario <= (0)
|
|
BEGIN
|
|
IF NULLIF(@HashContrasena, '') IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La contraseña es obligatoria para un usuario nuevo.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
INSERT INTO [dbo].[Sis_Usuarios]
|
|
([NombreUsuario], [HashContrasena], [CorreoElectronico], [CveRol], [Activo],
|
|
[DebeCambiarContrasena], [CorreoVerificado], [FechaVerificacionCorreo])
|
|
VALUES
|
|
(@NombreUsuario, @HashContrasena, @CorreoElectronico, @CveRol, @Activo,
|
|
@DebeCambiarContrasena, (1), SYSDATETIME());
|
|
SET @CveUsuario = CONVERT(int, SCOPE_IDENTITY());
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE [dbo].[Sis_Usuarios]
|
|
SET [NombreUsuario] = @NombreUsuario, [CorreoElectronico] = @CorreoElectronico,
|
|
[CveRol] = @CveRol, [Activo] = @Activo,
|
|
[DebeCambiarContrasena] = @DebeCambiarContrasena,
|
|
[HashContrasena] = COALESCE(NULLIF(@HashContrasena, ''), [HashContrasena]),
|
|
[FechaActualizacion] = GETDATE()
|
|
WHERE [CveUsuario] = @CveUsuario AND [Borrado] = (0);
|
|
END;
|
|
|
|
SELECT @CveUsuario AS [CveUsuario];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al guardar el usuario; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioDelete]
|
|
@CveUsuario int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
IF @CveUsuario = @CveUsuarioEjecuta
|
|
BEGIN
|
|
SET @ErrorMostrar = 'No puedes borrar tu propio usuario.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
UPDATE [dbo].[Sis_Usuarios]
|
|
SET [Activo] = (0), [Borrado] = (1), [FechaBorrado] = SYSDATETIME(), [FechaActualizacion] = GETDATE()
|
|
WHERE [CveUsuario] = @CveUsuario AND [Borrado] = (0)
|
|
AND EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_Usuarios] E
|
|
INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = E.[CveRol]
|
|
WHERE E.[CveUsuario] = @CveUsuarioEjecuta AND R.[NombreRol] = 'SuperUsuario'
|
|
AND E.[Activo] = (1) AND E.[Borrado] = (0)
|
|
);
|
|
IF @@ROWCOUNT = (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'No fue posible borrar el usuario o no tienes autorización.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al borrar el usuario; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioClienteList]
|
|
@CveUsuario int,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
SELECT UC.[CveUsuarioCliente], UC.[CveUsuario], UC.[CveCliente], C.[Nombre], C.[RFC],
|
|
UC.[Orden], UC.[EsPrincipal], UC.[Activo], C.[Estatus] AS [ClienteActivo]
|
|
FROM [dbo].[Sis_UsuariosClientes] UC
|
|
INNER JOIN [dbo].[Clientes] C ON C.[CveCliente] = UC.[CveCliente]
|
|
WHERE UC.[CveUsuario] = @CveUsuario AND UC.[Borrado] = (0)
|
|
ORDER BY UC.[Orden];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar los clientes del usuario; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioClienteSave]
|
|
@CveUsuario int,
|
|
@CveCliente int,
|
|
@Orden int,
|
|
@EsPrincipal bit,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_Usuarios] U INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[CveUsuario] = @CveUsuarioEjecuta AND R.[NombreRol] IN ('SuperUsuario', 'Administrador')
|
|
AND U.[Activo] = (1) AND U.[Borrado] = (0)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'No tienes permiso para asignar clientes.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @Orden <= (0) OR NOT EXISTS (SELECT 1 FROM [dbo].[Clientes] WHERE [CveCliente] = @CveCliente AND [Borrado] = (0))
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El cliente o el orden indicado no es válido.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_UsuariosClientes]
|
|
WHERE [CveUsuario] = @CveUsuario AND [Orden] = @Orden AND [Activo] = (1)
|
|
AND [Borrado] = (0) AND [CveCliente] <> @CveCliente
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Ya existe otro cliente con el mismo orden para este usuario.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @EsPrincipal = (1)
|
|
UPDATE [dbo].[Sis_UsuariosClientes]
|
|
SET [EsPrincipal] = (0), [FechaActualizacion] = SYSDATETIME()
|
|
WHERE [CveUsuario] = @CveUsuario AND [Borrado] = (0);
|
|
|
|
UPDATE [dbo].[Sis_UsuariosClientes]
|
|
SET [Orden] = @Orden, [EsPrincipal] = @EsPrincipal, [Activo] = (1),
|
|
[FechaActualizacion] = SYSDATETIME(), [Borrado] = (0), [FechaBorrado] = NULL
|
|
WHERE [CveUsuario] = @CveUsuario AND [CveCliente] = @CveCliente;
|
|
|
|
IF @@ROWCOUNT = (0)
|
|
INSERT INTO [dbo].[Sis_UsuariosClientes]
|
|
([CveUsuario], [CveCliente], [Orden], [EsPrincipal], [Activo], [CveUsuarioRegistro])
|
|
VALUES
|
|
(@CveUsuario, @CveCliente, @Orden, @EsPrincipal, (1), @CveUsuarioEjecuta);
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al asignar el cliente; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Clientes_EstatusUpdate]
|
|
@CveCliente int,
|
|
@Activo bit,
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
UPDATE C
|
|
SET C.[Estatus] = @Activo, C.[CveUsuarioModifico] = @CveUsuarioEjecuta
|
|
FROM [dbo].[Clientes] C
|
|
WHERE C.[CveCliente] = @CveCliente AND C.[Borrado] = (0)
|
|
AND EXISTS
|
|
(
|
|
SELECT 1 FROM [dbo].[Sis_Usuarios] U INNER JOIN [dbo].[Sis_Roles] R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[CveUsuario] = @CveUsuarioEjecuta
|
|
AND R.[NombreRol] IN ('SuperUsuario', 'Administrador')
|
|
AND U.[Activo] = (1) AND U.[Borrado] = (0)
|
|
);
|
|
IF @@ROWCOUNT = (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Sólo un Administrador o SuperUsuario puede cambiar el estado del cliente.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al cambiar el estado del cliente; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
|
|
/* ==================== AUTENTICACIÓN CON CORREO VERIFICADO ==================== */
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Sis_UsuarioGetByName]
|
|
@NombreUsuario varchar(100),
|
|
@CveUsuarioEjecuta int,
|
|
@ErrorMostrar varchar(max) OUTPUT,
|
|
@ErrorTipo int OUTPUT,
|
|
@Return bit OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT @ErrorMostrar = NULL, @ErrorTipo = 0, @Return = 0;
|
|
BEGIN TRY
|
|
SELECT TOP (1)
|
|
U.[CveUsuario], U.[NombreUsuario], U.[HashContrasena], U.[CorreoElectronico],
|
|
U.[CveRol], R.[NombreRol], U.[Activo], U.[DebeCambiarContrasena],
|
|
U.[IntentosFallidosInicioSesion], U.[BloqueadoHasta],
|
|
U.[FechaUltimoInicioSesion], U.[FechaUltimaConexion], U.[CorreoVerificado]
|
|
FROM [dbo].[Sis_Usuarios] AS U
|
|
INNER JOIN [dbo].[Sis_Roles] AS R ON R.[CveRol] = U.[CveRol]
|
|
WHERE U.[NombreUsuario] = @NombreUsuario
|
|
AND U.[Borrado] = (0)
|
|
AND R.[Borrado] = (0);
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar el usuario; favor de contactar a Sistemas.';
|
|
SET @ErrorTipo = 1;
|
|
SET @Return = 0;
|
|
DECLARE @E nvarchar(2048) = CONCAT('Número: ', ERROR_NUMBER(), '; Procedimiento: ', ERROR_PROCEDURE(), '; Línea: ', ERROR_LINE(), '; Detalle: ', ERROR_MESSAGE());
|
|
RAISERROR(N'%s', 10, 1, @E);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|