653 lines
19 KiB
Transact-SQL
653 lines
19 KiB
Transact-SQL
/* Catálogo de lotes con borrado físico. Las definiciones se sincronizaron desde la base local. */
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM sys.indexes
|
|
WHERE [object_id] = OBJECT_ID(N'dbo.FraccionamientosLotes')
|
|
AND [name] = N'IX_FraccionamientosLotes_Etapa'
|
|
)
|
|
BEGIN
|
|
CREATE NONCLUSTERED INDEX [IX_FraccionamientosLotes_Etapa]
|
|
ON [dbo].[FraccionamientosLotes] ([CveFraccionamientoEtapa])
|
|
INCLUDE
|
|
(
|
|
[Numero],
|
|
[Tipo],
|
|
[Calle],
|
|
[Catastro],
|
|
[MetrosCuadrados],
|
|
[Duplicador],
|
|
[EsActivo]
|
|
);
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Fraccionamientos_LoteList]
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoEtapa int = 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].[Fraccionamientos]
|
|
WHERE [CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El fraccionamiento seleccionado no existe.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveFraccionamientoEtapa IS NOT NULL
|
|
AND NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosEtapas]
|
|
WHERE [CveFraccionamientoEtapa] = @CveFraccionamientoEtapa
|
|
AND [CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa seleccionada no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
L.[CveFraccionamientoLote] AS [CveFraccionamientoLote],
|
|
E.[CveFraccionamientoEtapa] AS [CveFraccionamientoEtapa],
|
|
E.[Etapa] AS [Etapa],
|
|
L.[Numero] AS [Nombre],
|
|
L.[Tipo] AS [Tipo],
|
|
L.[Calle] AS [Calle],
|
|
L.[Catastro] AS [Catastro],
|
|
L.[MetrosCuadrados] AS [MetrosCuadrados],
|
|
L.[Duplicador] AS [Duplicador],
|
|
L.[EsActivo] AS [EsActivo]
|
|
FROM [dbo].[FraccionamientosLotes] AS L
|
|
INNER JOIN [dbo].[FraccionamientosEtapas] AS E
|
|
ON E.[CveFraccionamientoEtapa] = L.[CveFraccionamientoEtapa]
|
|
WHERE E.[CveFraccionamiento] = @CveFraccionamiento
|
|
AND (@CveFraccionamientoEtapa IS NULL
|
|
OR E.[CveFraccionamientoEtapa] = @CveFraccionamientoEtapa)
|
|
|
|
|
|
ORDER BY
|
|
E.[Orden],
|
|
E.[Etapa],
|
|
L.[Numero],
|
|
L.[CveFraccionamientoLote];
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar los lotes; 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_Fraccionamientos_LoteList'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Fraccionamientos_LoteBatchSave]
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoEtapa int,
|
|
@LotesXml xml,
|
|
@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].[FraccionamientosEtapas]
|
|
WHERE [CveFraccionamientoEtapa] = @CveFraccionamientoEtapa
|
|
AND [CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
AND [EsActivo] = (1)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa seleccionada no existe, está inactiva o no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
DECLARE @Lotes TABLE
|
|
(
|
|
[Nombre] varchar(50) COLLATE Modern_Spanish_CS_AS NULL,
|
|
[Tipo] varchar(100) COLLATE Modern_Spanish_CS_AS NULL,
|
|
[Calle] varchar(200) COLLATE Modern_Spanish_CS_AS NULL,
|
|
[Catastro] varchar(100) COLLATE Modern_Spanish_CS_AS NULL,
|
|
[MetrosCuadrados] decimal(18,4) NULL,
|
|
[Duplicador] varchar(50) COLLATE Modern_Spanish_CS_AS NULL,
|
|
[EsActivo] bit NOT NULL
|
|
);
|
|
|
|
INSERT INTO @Lotes
|
|
(
|
|
[Nombre],
|
|
[Tipo],
|
|
[Calle],
|
|
[Catastro],
|
|
[MetrosCuadrados],
|
|
[Duplicador],
|
|
[EsActivo]
|
|
)
|
|
SELECT
|
|
NULLIF(LTRIM(RTRIM(N.value('@Nombre', 'varchar(50)'))), ''),
|
|
NULLIF(LTRIM(RTRIM(N.value('@Tipo', 'varchar(100)'))), ''),
|
|
NULLIF(LTRIM(RTRIM(N.value('@Calle', 'varchar(200)'))), ''),
|
|
NULLIF(LTRIM(RTRIM(N.value('@Catastro', 'varchar(100)'))), ''),
|
|
TRY_CONVERT(
|
|
decimal(18,4),
|
|
NULLIF(N.value('@MetrosCuadrados', 'varchar(50)'), '')
|
|
),
|
|
NULLIF(LTRIM(RTRIM(N.value('@Duplicador', 'varchar(50)'))), ''),
|
|
N.value('@EsActivo', 'bit')
|
|
FROM @LotesXml.nodes('/Lotes/Lote') AS X(N);
|
|
|
|
DECLARE @Cantidad int = (SELECT COUNT(1) FROM @Lotes);
|
|
|
|
IF @Cantidad = (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'No se recibieron lotes para guardar.';
|
|
SET @ErrorTipo = 1;
|
|
RETURN;
|
|
END;
|
|
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM @Lotes
|
|
WHERE [Nombre] IS NULL
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Todos los lotes deben tener un nombre.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT [Nombre]
|
|
FROM @Lotes
|
|
GROUP BY [Nombre]
|
|
HAVING COUNT(1) > (1)
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La captura contiene nombres de lote repetidos.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM @Lotes AS N
|
|
INNER JOIN [dbo].[FraccionamientosLotes] AS L
|
|
ON L.[CveFraccionamientoEtapa] = @CveFraccionamientoEtapa
|
|
AND L.[Numero] = N.[Nombre]
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Uno o más nombres de lote ya existen en la etapa seleccionada.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
|
|
DECLARE @LotesGuardados TABLE
|
|
(
|
|
CveFraccionamientoLote int NOT NULL,
|
|
CveFraccionamientoEtapa int NOT NULL,
|
|
Nombre varchar(50) COLLATE Modern_Spanish_CS_AS NULL,
|
|
Tipo varchar(100) COLLATE Modern_Spanish_CS_AS NULL,
|
|
Calle varchar(200) COLLATE Modern_Spanish_CS_AS NULL,
|
|
Catastro varchar(100) COLLATE Modern_Spanish_CS_AS NULL,
|
|
MetrosCuadrados decimal(18,4) NULL,
|
|
Duplicador varchar(50) COLLATE Modern_Spanish_CS_AS NULL,
|
|
EsActivo bit NOT NULL
|
|
);
|
|
|
|
INSERT INTO [dbo].[FraccionamientosLotes]
|
|
(
|
|
[CveFraccionamientoEtapa],
|
|
[Tipo],
|
|
[Calle],
|
|
[Catastro],
|
|
[MetrosCuadrados],
|
|
[Numero],
|
|
[Duplicador],
|
|
[EsActivo],
|
|
[CveUsuario]
|
|
)
|
|
OUTPUT
|
|
INSERTED.[CveFraccionamientoLote],
|
|
INSERTED.[CveFraccionamientoEtapa],
|
|
INSERTED.[Numero],
|
|
INSERTED.[Tipo],
|
|
INSERTED.[Calle],
|
|
INSERTED.[Catastro],
|
|
INSERTED.[MetrosCuadrados],
|
|
INSERTED.[Duplicador],
|
|
INSERTED.[EsActivo]
|
|
INTO @LotesGuardados
|
|
SELECT
|
|
@CveFraccionamientoEtapa,
|
|
[Tipo],
|
|
[Calle],
|
|
[Catastro],
|
|
[MetrosCuadrados],
|
|
[Nombre],
|
|
[Duplicador],
|
|
[EsActivo],
|
|
@CveUsuarioEjecuta
|
|
FROM @Lotes;
|
|
|
|
SELECT
|
|
G.CveFraccionamientoLote,
|
|
G.CveFraccionamientoEtapa,
|
|
@CveFraccionamiento AS CveFraccionamiento,
|
|
F.CveCliente,
|
|
G.Nombre,
|
|
G.Tipo,
|
|
G.Calle,
|
|
G.Catastro,
|
|
G.MetrosCuadrados,
|
|
G.Duplicador,
|
|
G.EsActivo
|
|
FROM @LotesGuardados AS G
|
|
INNER JOIN dbo.Fraccionamientos AS F
|
|
ON F.CveFraccionamiento = @CveFraccionamiento
|
|
ORDER BY G.CveFraccionamientoLote;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
SET @ErrorMostrar = 'Ocurrió un error al guardar los lotes; 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_Fraccionamientos_LoteBatchSave'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Fraccionamientos_LoteGet]
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoLote 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
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosLotes] AS L
|
|
INNER JOIN [dbo].[FraccionamientosEtapas] AS E
|
|
ON E.[CveFraccionamientoEtapa] = L.[CveFraccionamientoEtapa]
|
|
WHERE L.[CveFraccionamientoLote] = @CveFraccionamientoLote
|
|
AND E.[CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El lote seleccionado no existe o no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
L.[CveFraccionamientoLote] AS [CveFraccionamientoLote],
|
|
L.[CveFraccionamientoEtapa] AS [CveFraccionamientoEtapa],
|
|
E.[CveFraccionamiento] AS [CveFraccionamiento],
|
|
F.[CveCliente] AS [CveCliente],
|
|
E.[Etapa] AS [Etapa],
|
|
L.[Numero] AS [Nombre],
|
|
L.[Tipo] AS [Tipo],
|
|
L.[Calle] AS [Calle],
|
|
L.[Catastro] AS [Catastro],
|
|
L.[MetrosCuadrados] AS [MetrosCuadrados],
|
|
L.[Duplicador] AS [Duplicador],
|
|
L.[EsActivo] AS [EsActivo]
|
|
FROM [dbo].[FraccionamientosLotes] AS L
|
|
INNER JOIN [dbo].[FraccionamientosEtapas] AS E
|
|
ON E.[CveFraccionamientoEtapa] = L.[CveFraccionamientoEtapa]
|
|
INNER JOIN [dbo].[Fraccionamientos] AS F
|
|
ON F.[CveFraccionamiento] = E.[CveFraccionamiento]
|
|
WHERE L.[CveFraccionamientoLote] = @CveFraccionamientoLote
|
|
AND E.[CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SET @ErrorMostrar = 'Ocurrió un error al consultar el lote; 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_Fraccionamientos_LoteGet'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Fraccionamientos_LoteUpdate]
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoLote int,
|
|
@CveFraccionamientoEtapa int,
|
|
@Nombre varchar(50),
|
|
@Tipo varchar(100) = NULL,
|
|
@Calle varchar(200) = NULL,
|
|
@Catastro varchar(100) = NULL,
|
|
@MetrosCuadrados decimal(18,4) = NULL,
|
|
@Duplicador varchar(50) = NULL,
|
|
@EsActivo bit,
|
|
@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 @Nombre = NULLIF(LTRIM(RTRIM(@Nombre)), '');
|
|
SET @Tipo = NULLIF(LTRIM(RTRIM(@Tipo)), '');
|
|
SET @Calle = NULLIF(LTRIM(RTRIM(@Calle)), '');
|
|
SET @Catastro = NULLIF(LTRIM(RTRIM(@Catastro)), '');
|
|
SET @Duplicador = NULLIF(LTRIM(RTRIM(@Duplicador)), '');
|
|
|
|
IF @Nombre IS NULL
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Capture el nombre del lote.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @MetrosCuadrados IS NOT NULL
|
|
AND @MetrosCuadrados < (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Los metros cuadrados no pueden ser negativos.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosEtapas]
|
|
WHERE [CveFraccionamientoEtapa] = @CveFraccionamientoEtapa
|
|
AND [CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa del lote no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosLotes] AS L
|
|
INNER JOIN [dbo].[FraccionamientosEtapas] AS E
|
|
ON E.[CveFraccionamientoEtapa] = L.[CveFraccionamientoEtapa]
|
|
WHERE L.[CveFraccionamientoLote] = @CveFraccionamientoLote
|
|
AND E.[CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El lote seleccionado no existe o no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosLotes] AS L
|
|
WHERE L.[CveFraccionamientoEtapa] = @CveFraccionamientoEtapa
|
|
AND L.[CveFraccionamientoLote] <> @CveFraccionamientoLote
|
|
AND L.[Numero] = @Nombre COLLATE Modern_Spanish_CS_AS
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'Ya existe otro lote con ese nombre en la etapa.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
|
|
UPDATE [dbo].[FraccionamientosLotes]
|
|
SET
|
|
[CveFraccionamientoEtapa] = @CveFraccionamientoEtapa,
|
|
[Numero] = @Nombre,
|
|
[Tipo] = @Tipo,
|
|
[Calle] = @Calle,
|
|
[Catastro] = @Catastro,
|
|
[MetrosCuadrados] = @MetrosCuadrados,
|
|
[Duplicador] = @Duplicador,
|
|
[EsActivo] = @EsActivo,
|
|
[FechaModificacion] = SYSDATETIME(),
|
|
[CveUsuario] = @CveUsuarioEjecuta
|
|
WHERE [CveFraccionamientoLote] = @CveFraccionamientoLote
|
|
;
|
|
|
|
|
|
SELECT @CveFraccionamientoLote AS [CveFraccionamientoLote];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
SET @ErrorMostrar = 'Ocurrió un error al actualizar el lote; 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_Fraccionamientos_LoteUpdate'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Fraccionamientos_LoteDelete]
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoLote 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
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosLotes] AS L
|
|
INNER JOIN [dbo].[FraccionamientosEtapas] AS E
|
|
ON E.[CveFraccionamientoEtapa] = L.[CveFraccionamientoEtapa]
|
|
WHERE L.[CveFraccionamientoLote] = @CveFraccionamientoLote
|
|
AND E.[CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'El lote seleccionado no existe o no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
|
|
DELETE FROM [dbo].[FraccionamientosLotes]
|
|
WHERE [CveFraccionamientoLote] = @CveFraccionamientoLote;
|
|
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
SET @ErrorMostrar = 'Ocurrió un error al eliminar el lote; 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_Fraccionamientos_LoteDelete'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[PA_Fraccionamientos_LoteStageClear]
|
|
@CveFraccionamiento int,
|
|
@CveFraccionamientoEtapa 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
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM [dbo].[FraccionamientosEtapas]
|
|
WHERE [CveFraccionamientoEtapa] = @CveFraccionamientoEtapa
|
|
AND [CveFraccionamiento] = @CveFraccionamiento
|
|
|
|
)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa seleccionada no pertenece al fraccionamiento.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
|
|
DELETE FROM [dbo].[FraccionamientosLotes]
|
|
WHERE [CveFraccionamientoEtapa] = @CveFraccionamientoEtapa;
|
|
|
|
DECLARE @Cantidad int = @@ROWCOUNT;
|
|
|
|
IF @Cantidad = (0)
|
|
BEGIN
|
|
SET @ErrorMostrar = 'La etapa seleccionada no tiene lotes para eliminar.';
|
|
SET @ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
|
|
SELECT @Cantidad AS [LotesEliminados];
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
SET @ErrorMostrar = 'Ocurrió un error al eliminar los lotes de la etapa; 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_Fraccionamientos_LoteStageClear'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
|
|
GO
|