612 lines
31 KiB
Transact-SQL
612 lines
31 KiB
Transact-SQL
/*
|
|
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
|