743 lines
21 KiB
Transact-SQL
743 lines
21 KiB
Transact-SQL
SET ANSI_NULLS ON;
|
|
SET QUOTED_IDENTIFIER ON;
|
|
SET NOCOUNT ON;
|
|
GO
|
|
|
|
UPDATE dbo.Vta_TipoDocumentos
|
|
SET TipoDocumento = N'Remisión'
|
|
WHERE CveTipoDocumento = 'Rem'
|
|
AND TipoDocumento <> N'Remisión';
|
|
GO
|
|
|
|
DECLARE @CveUsuarioSistema int =
|
|
(
|
|
SELECT TOP (1)
|
|
CveUsuario
|
|
FROM dbo.Sis_Usuarios
|
|
WHERE Activo = 1
|
|
ORDER BY CveUsuario
|
|
);
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Vta_FormaPago
|
|
WHERE CveFormaPago = 99
|
|
)
|
|
BEGIN
|
|
INSERT INTO dbo.Vta_FormaPago
|
|
(
|
|
CveFormaPago,
|
|
FormaPago,
|
|
ClaveFormaPagoSAT,
|
|
CveUsuario,
|
|
FechaIng
|
|
)
|
|
VALUES
|
|
(
|
|
99,
|
|
'Por definir',
|
|
'99',
|
|
@CveUsuarioSistema,
|
|
CONVERT(date, GETDATE())
|
|
);
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Vta_MetodoPago
|
|
WHERE CveMetodoPago = 2
|
|
)
|
|
BEGIN
|
|
INSERT INTO dbo.Vta_MetodoPago
|
|
(
|
|
CveMetodoPago,
|
|
MetodoPago,
|
|
ClaveMetodoPagoSAT,
|
|
CveUsuario,
|
|
FechaIng
|
|
)
|
|
VALUES
|
|
(
|
|
2,
|
|
'Pago en parcialidades o diferido',
|
|
'PPD',
|
|
@CveUsuarioSistema,
|
|
CONVERT(date, GETDATE())
|
|
);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM sys.indexes
|
|
WHERE object_id = OBJECT_ID('dbo.Vta_Pagos')
|
|
AND name = 'UX_Vta_Pagos_SolicitudTramitePagoActivo'
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE NONCLUSTERED INDEX UX_Vta_Pagos_SolicitudTramitePagoActivo
|
|
ON dbo.Vta_Pagos
|
|
(
|
|
CveSolicitud,
|
|
CveTramitePago
|
|
)
|
|
WHERE EsActivo = 1
|
|
AND CveSolicitud IS NOT NULL;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Vta_FraccionamientoPagoPendienteList
|
|
@CveFraccionamiento 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
|
|
DECLARE @PorcentajeIVA decimal(9, 6) = 0.16;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Fraccionamientos
|
|
WHERE CveFraccionamiento = @CveFraccionamiento
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'El fraccionamiento solicitado no existe.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
;WITH Conceptos AS
|
|
(
|
|
SELECT
|
|
S.CveSolicitud,
|
|
P.CveTramitePago,
|
|
COUNT_BIG(*) AS NumeroConceptos,
|
|
SUM(
|
|
ROUND(
|
|
CONVERT(decimal(18, 4), Costo.Importe),
|
|
2
|
|
)
|
|
) AS SubTotal,
|
|
SUM(
|
|
ROUND(
|
|
CONVERT(decimal(18, 4), Costo.Importe) *
|
|
@PorcentajeIVA,
|
|
2
|
|
)
|
|
) AS IVA
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.Tra_Pagos AS P
|
|
ON P.CveTipoTramite = S.CveTipoTramite
|
|
AND P.EsActivo = 1
|
|
INNER JOIN dbo.Tra_PagosDetalle AS D
|
|
ON D.CveTramitePago = P.CveTramitePago
|
|
INNER JOIN dbo.ProductosServicios AS PS
|
|
ON PS.CvePS = D.CvePS
|
|
OUTER APPLY
|
|
(
|
|
SELECT TOP (1)
|
|
CT.Importe
|
|
FROM dbo.Tra_CostosTramite AS CT
|
|
WHERE CT.CveTipoTramite = S.CveTipoTramite
|
|
AND CT.CvePS = D.CvePS
|
|
AND CT.EsActivo = 1
|
|
AND
|
|
(
|
|
CT.FechaInicioVigencia IS NULL
|
|
OR CT.FechaInicioVigencia <= CONVERT(date, GETDATE())
|
|
)
|
|
AND
|
|
(
|
|
CT.FechaFinVigencia IS NULL
|
|
OR CT.FechaFinVigencia >= CONVERT(date, GETDATE())
|
|
)
|
|
ORDER BY
|
|
ISNULL(
|
|
CT.FechaInicioVigencia,
|
|
CONVERT(date, '19000101')) DESC,
|
|
CT.CveCostoTramite DESC
|
|
) AS Costo
|
|
WHERE S.CveFraccionamiento = @CveFraccionamiento
|
|
GROUP BY
|
|
S.CveSolicitud,
|
|
P.CveTramitePago
|
|
)
|
|
SELECT
|
|
S.CveSolicitud,
|
|
P.CveTramitePago,
|
|
SP.CveVenta,
|
|
CONVERT(
|
|
bit,
|
|
CASE
|
|
WHEN SP.CveSolicitudPago IS NOT NULL
|
|
AND V.CveVenta IS NOT NULL THEN 1
|
|
ELSE 0
|
|
END
|
|
) AS VentaGenerada,
|
|
S.Folio AS FolioSolicitud,
|
|
E.Etapa,
|
|
TT.TipoTramite,
|
|
P.Nombre AS NombrePago,
|
|
CONVERT(int, C.NumeroConceptos) AS NumeroConceptos,
|
|
CONVERT(
|
|
decimal(18, 2),
|
|
CASE
|
|
WHEN V.CveVenta IS NULL THEN C.SubTotal
|
|
ELSE V.SubTotal
|
|
END
|
|
) AS SubTotal,
|
|
CONVERT(
|
|
decimal(18, 2),
|
|
CASE
|
|
WHEN V.CveVenta IS NULL THEN C.IVA
|
|
ELSE V.IVA
|
|
END
|
|
) AS IVA,
|
|
CONVERT(
|
|
decimal(18, 2),
|
|
CASE
|
|
WHEN V.CveVenta IS NULL THEN C.SubTotal + C.IVA
|
|
ELSE V.Total
|
|
END
|
|
) AS Total
|
|
FROM Conceptos AS C
|
|
INNER JOIN dbo.Tra_Solicitudes AS S
|
|
ON S.CveSolicitud = C.CveSolicitud
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E
|
|
ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS TT
|
|
ON TT.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_Pagos AS P
|
|
ON P.CveTramitePago = C.CveTramitePago
|
|
LEFT JOIN dbo.Tra_SolicitudesPagos AS SP
|
|
ON SP.CveSolicitud = S.CveSolicitud
|
|
AND SP.CveTramitePago = P.CveTramitePago
|
|
LEFT JOIN dbo.Ventas AS V
|
|
ON V.CveVenta = SP.CveVenta
|
|
WHERE NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Vta_Pagos AS VP
|
|
WHERE VP.CveSolicitud = S.CveSolicitud
|
|
AND VP.CveTramitePago = P.CveTramitePago
|
|
AND VP.CveVenta = SP.CveVenta
|
|
AND VP.EsActivo = 1
|
|
)
|
|
ORDER BY
|
|
E.Orden,
|
|
S.CveSolicitud,
|
|
P.Orden,
|
|
P.CveTramitePago;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar los pagos pendientes; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(
|
|
ERROR_PROCEDURE(),
|
|
'PA_Vta_FraccionamientoPagoPendienteList'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Vta_FraccionamientoPagoRealizadoList
|
|
@CveFraccionamiento 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.Fraccionamientos
|
|
WHERE CveFraccionamiento = @CveFraccionamiento
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'El fraccionamiento solicitado no existe.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
SP.CveSolicitudPago,
|
|
SP.CveSolicitud,
|
|
SP.CveTramitePago,
|
|
V.CveVenta,
|
|
VP.CvePago,
|
|
V.SerieFolio,
|
|
V.Fecha,
|
|
VP.FechaPago,
|
|
VP.Referencia,
|
|
S.Folio AS FolioSolicitud,
|
|
E.Etapa,
|
|
TT.TipoTramite,
|
|
P.Nombre AS NombrePago,
|
|
CONVERT(decimal(18, 2), V.SubTotal) AS SubTotal,
|
|
CONVERT(decimal(18, 2), V.IVA) AS IVA,
|
|
CONVERT(decimal(18, 2), VP.Importe) AS Total
|
|
FROM dbo.Tra_SolicitudesPagos AS SP
|
|
INNER JOIN dbo.Tra_Solicitudes AS S
|
|
ON S.CveSolicitud = SP.CveSolicitud
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E
|
|
ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS TT
|
|
ON TT.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_Pagos AS P
|
|
ON P.CveTramitePago = SP.CveTramitePago
|
|
INNER JOIN dbo.Ventas AS V
|
|
ON V.CveVenta = SP.CveVenta
|
|
INNER JOIN dbo.Vta_Pagos AS VP
|
|
ON VP.CveVenta = V.CveVenta
|
|
AND VP.CveSolicitud = SP.CveSolicitud
|
|
AND VP.CveTramitePago = SP.CveTramitePago
|
|
AND VP.EsActivo = 1
|
|
WHERE S.CveFraccionamiento = @CveFraccionamiento
|
|
ORDER BY
|
|
VP.FechaPago DESC,
|
|
VP.CvePago DESC;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar los pagos realizados; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(
|
|
ERROR_PROCEDURE(),
|
|
'PA_Vta_FraccionamientoPagoRealizadoList'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Vta_TramiteContextoGet
|
|
@CveSolicitud int,
|
|
@CveTramitePago 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
|
|
DECLARE @CveSubProyecto int =
|
|
(
|
|
SELECT TOP (1)
|
|
CveSubProyecto
|
|
FROM dbo.SubProyectos
|
|
WHERE Estatus = 1
|
|
ORDER BY
|
|
CASE WHEN Serie = 'TRA' THEN 0 ELSE 1 END,
|
|
CveSubProyecto
|
|
);
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.Tra_Pagos AS P
|
|
ON P.CveTramitePago = @CveTramitePago
|
|
AND P.CveTipoTramite = S.CveTipoTramite
|
|
AND P.EsActivo = 1
|
|
INNER JOIN dbo.Tra_PagosDetalle AS D
|
|
ON D.CveTramitePago = P.CveTramitePago
|
|
WHERE S.CveSolicitud = @CveSolicitud
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'El pago seleccionado no corresponde al trámite o no tiene conceptos activos.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
S.CveSolicitud,
|
|
P.CveTramitePago,
|
|
SP.CveVenta,
|
|
VP.CvePago,
|
|
CONVERT(
|
|
bit,
|
|
CASE
|
|
WHEN SP.CveSolicitudPago IS NOT NULL
|
|
AND V.CveVenta IS NOT NULL THEN 1
|
|
ELSE 0
|
|
END
|
|
) AS VentaGenerada,
|
|
CONVERT(
|
|
bit,
|
|
CASE
|
|
WHEN VP.Autorizado = 1 THEN 1
|
|
ELSE 0
|
|
END
|
|
) AS VentaPagada,
|
|
CONVERT(
|
|
bit,
|
|
CASE
|
|
WHEN VP.CvePago IS NOT NULL
|
|
AND VP.Autorizado = 0
|
|
THEN 1
|
|
ELSE 0
|
|
END
|
|
) AS PagoPendienteAutorizacion,
|
|
VP.Referencia AS ReferenciaPago,
|
|
S.CveFraccionamiento,
|
|
F.Fraccionamiento,
|
|
F.CveCliente,
|
|
C.Nombre AS Cliente,
|
|
C.RFC,
|
|
CONCAT(
|
|
C.Direccion,
|
|
CASE
|
|
WHEN NULLIF(LTRIM(RTRIM(C.NoExt)), '') IS NULL THEN ''
|
|
ELSE CONCAT(' ', C.NoExt)
|
|
END,
|
|
CASE
|
|
WHEN NULLIF(LTRIM(RTRIM(C.NoInt)), '') IS NULL THEN ''
|
|
ELSE CONCAT(' Int. ', C.NoInt)
|
|
END
|
|
) AS Direccion,
|
|
C.Colonia,
|
|
CONCAT(C.Ciudad, ', ', C.Estado) AS CiudadEstado,
|
|
C.CP,
|
|
C.Telefono,
|
|
C.Mail,
|
|
S.Folio AS FolioSolicitud,
|
|
E.Etapa,
|
|
TT.TipoTramite,
|
|
P.Nombre AS NombrePago,
|
|
N'Remisión' AS TipoDocumento,
|
|
ISNULL(V.Serie, 'TRA') AS Serie,
|
|
ISNULL(
|
|
V.Folio,
|
|
ISNULL(
|
|
(
|
|
SELECT MAX(Venta.Folio) + 1
|
|
FROM dbo.Ventas AS Venta
|
|
WHERE Venta.TipoDocto = 'Rem'
|
|
AND Venta.Serie = 'TRA'
|
|
AND Venta.CveSubProyecto = @CveSubProyecto
|
|
),
|
|
1
|
|
)
|
|
) AS Folio,
|
|
ISNULL(V.Fecha, GETDATE()) AS Fecha,
|
|
ISNULL(V.CveMetodoPago33, ISNULL(V.CveMetodoPago, 2))
|
|
AS CveMetodoPago,
|
|
ISNULL(V.CveFormaPago33, ISNULL(V.FormaPago, 99))
|
|
AS CveFormaPago,
|
|
V.FechaVencimiento2 AS FechaVencimiento
|
|
FROM dbo.Tra_Solicitudes AS S
|
|
INNER JOIN dbo.Fraccionamientos AS F
|
|
ON F.CveFraccionamiento = S.CveFraccionamiento
|
|
INNER JOIN dbo.FraccionamientosEtapas AS E
|
|
ON E.CveFraccionamientoEtapa = S.CveFraccionamientoEtapa
|
|
INNER JOIN dbo.Tra_TiposTramite AS TT
|
|
ON TT.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Tra_Pagos AS P
|
|
ON P.CveTramitePago = @CveTramitePago
|
|
AND P.CveTipoTramite = S.CveTipoTramite
|
|
INNER JOIN dbo.Clientes AS C
|
|
ON C.CveCliente = F.CveCliente
|
|
LEFT JOIN dbo.Tra_SolicitudesPagos AS SP
|
|
ON SP.CveSolicitud = S.CveSolicitud
|
|
AND SP.CveTramitePago = P.CveTramitePago
|
|
LEFT JOIN dbo.Ventas AS V
|
|
ON V.CveVenta = SP.CveVenta
|
|
OUTER APPLY
|
|
(
|
|
SELECT TOP (1)
|
|
Pago.CvePago,
|
|
Pago.Autorizado,
|
|
Pago.Referencia
|
|
FROM dbo.Vta_Pagos AS Pago
|
|
WHERE Pago.CveVenta = V.CveVenta
|
|
AND Pago.CveSolicitud = S.CveSolicitud
|
|
AND Pago.CveTramitePago = P.CveTramitePago
|
|
AND Pago.EsActivo = 1
|
|
ORDER BY Pago.CvePago DESC
|
|
) AS VP
|
|
WHERE S.CveSolicitud = @CveSolicitud;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar la venta del trámite; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(
|
|
ERROR_PROCEDURE(),
|
|
'PA_Vta_TramiteContextoGet'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Vta_TramitePagoSave
|
|
@CveSolicitud int,
|
|
@CveTramitePago int,
|
|
@Referencia varchar(200) = 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
|
|
DECLARE
|
|
@CveVenta int,
|
|
@CveCliente int,
|
|
@Importe decimal(18, 2),
|
|
@CvePago int,
|
|
@FechaPago datetime = GETDATE();
|
|
|
|
SELECT
|
|
@CveVenta = V.CveVenta,
|
|
@CveCliente = V.CveCliente,
|
|
@Importe = CONVERT(decimal(18, 2), V.Total)
|
|
FROM dbo.Tra_SolicitudesPagos AS SP
|
|
INNER JOIN dbo.Ventas AS V
|
|
ON V.CveVenta = SP.CveVenta
|
|
WHERE SP.CveSolicitud = @CveSolicitud
|
|
AND SP.CveTramitePago = @CveTramitePago;
|
|
|
|
IF @CveVenta IS NULL
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Primero debe generar la venta del trámite.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Vta_Pagos WITH (UPDLOCK, HOLDLOCK)
|
|
WHERE CveSolicitud = @CveSolicitud
|
|
AND CveTramitePago = @CveTramitePago
|
|
AND CveVenta = @CveVenta
|
|
AND EsActivo = 1
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'La venta del trámite ya se encuentra pagada.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Vta_FormaPago
|
|
WHERE CveFormaPago = 99
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'La forma de pago por definir no está configurada; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
INSERT INTO dbo.Vta_Pagos
|
|
(
|
|
CveCliente,
|
|
CveVenta,
|
|
CveSolicitud,
|
|
CveFormaPago,
|
|
CveMoneda,
|
|
CvePrePoliza,
|
|
FechaPago,
|
|
Importe,
|
|
Referencia,
|
|
EsSaldoFavor,
|
|
EsActivo,
|
|
FechaAlta,
|
|
CveUsuario,
|
|
CveTramitePago
|
|
)
|
|
VALUES
|
|
(
|
|
@CveCliente,
|
|
@CveVenta,
|
|
@CveSolicitud,
|
|
99,
|
|
1,
|
|
NULL,
|
|
@FechaPago,
|
|
@Importe,
|
|
NULLIF(LTRIM(RTRIM(@Referencia)), ''),
|
|
0,
|
|
1,
|
|
@FechaPago,
|
|
@CveUsuarioEjecuta,
|
|
@CveTramitePago
|
|
);
|
|
|
|
SET @CvePago = CONVERT(int, SCOPE_IDENTITY());
|
|
|
|
UPDATE dbo.Ventas
|
|
SET
|
|
CveMetodoPago = 2,
|
|
FormaPago = 99,
|
|
CveFormaPago33 = 99,
|
|
CveMetodoPago33 = 2,
|
|
FechaCobranza = @FechaPago,
|
|
CveUsuarioCobranza = @CveUsuarioEjecuta
|
|
WHERE CveVenta = @CveVenta;
|
|
|
|
SELECT @CvePago AS CvePago;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al registrar el pago de la venta; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(
|
|
ERROR_PROCEDURE(),
|
|
'PA_Vta_TramitePagoSave'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Vta_TramiteVentaGenerar
|
|
@CveSolicitud int,
|
|
@CveTramitePago int,
|
|
@Observaciones varchar(2000) = 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 EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Tra_SolicitudesPagos AS SP
|
|
INNER JOIN dbo.Ventas AS V
|
|
ON V.CveVenta = SP.CveVenta
|
|
WHERE SP.CveSolicitud = @CveSolicitud
|
|
AND SP.CveTramitePago = @CveTramitePago
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'La venta del trámite ya fue generada.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
EXEC dbo.PA_Vta_TramiteVentaSave
|
|
@CveSolicitud = @CveSolicitud,
|
|
@CveTramitePago = @CveTramitePago,
|
|
@Observaciones = @Observaciones,
|
|
@CveUsuarioEjecuta = @CveUsuarioEjecuta,
|
|
@ErrorMostrar = @ErrorMostrar OUTPUT,
|
|
@ErrorTipo = @ErrorTipo OUTPUT,
|
|
@Return = @Return OUTPUT;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al generar la venta del trámite; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) = CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(
|
|
ERROR_PROCEDURE(),
|
|
'PA_Vta_TramiteVentaGenerar'
|
|
),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE()
|
|
);
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|