591 lines
20 KiB
Transact-SQL
591 lines
20 KiB
Transact-SQL
CREATE OR ALTER PROCEDURE dbo.PA_Fac_EmisorFiscalGet
|
|
@CveEmpresa 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.Fac_EmisoresFiscales
|
|
WHERE CveEmpresa = @CveEmpresa
|
|
AND EsActivo = 1
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'La empresa no tiene configurado un emisor fiscal activo.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
CveEmisorFiscal,
|
|
CveEmpresa,
|
|
Rfc,
|
|
NombreFiscal,
|
|
RegimenFiscal,
|
|
CodigoPostal,
|
|
ProveedorPac,
|
|
AmbienteProduccion,
|
|
ReferenciaCredencialPac,
|
|
ReferenciaContratoPac,
|
|
ReferenciaCertificadoCsd,
|
|
ReferenciaLlavePrivadaCsd,
|
|
NumeroCertificado,
|
|
VigenciaCertificadoDesde,
|
|
VigenciaCertificadoHasta,
|
|
HuellaCertificado,
|
|
EsActivo
|
|
FROM dbo.Fac_EmisoresFiscales
|
|
WHERE CveEmpresa = @CveEmpresa
|
|
AND EsActivo = 1;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al consultar el emisor fiscal; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) =
|
|
CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Fac_EmisorFiscalGet'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE());
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Vta_TramiteVentaDatosCfdiGet
|
|
@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 @CveVenta int;
|
|
|
|
SELECT @CveVenta = V.CveVenta
|
|
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.Ventas AS V
|
|
WHERE V.CveVenta = @CveVenta
|
|
AND
|
|
(
|
|
V.SeTimbro = 1
|
|
OR EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Fac_CfdiDocumentos AS D
|
|
WHERE D.TipoOrigen = 'VENTA'
|
|
AND D.CveOrigen = V.CveVenta
|
|
AND D.Estado = 'TIMBRADO'
|
|
AND D.CveCfdiTimbradoVigente IS NOT NULL
|
|
)
|
|
)
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'La venta ya se encuentra timbrada.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Fac_CfdiDocumentos
|
|
WHERE TipoOrigen = 'VENTA'
|
|
AND CveOrigen = @CveVenta
|
|
AND Estado = 'REVISAR'
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Existe un intento de timbrado con resultado indeterminado; debe revisarse antes de volver a timbrar.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
SELECT
|
|
V.CveVenta,
|
|
Borrador.CveCfdiDocumento,
|
|
V.CveCliente,
|
|
V.Serie,
|
|
V.Folio,
|
|
V.Fecha,
|
|
FP.ClaveFormaPagoSAT AS FormaPago,
|
|
MP.ClaveMetodoPagoSAT AS MetodoPago,
|
|
M.AbreviaturaSAT AS Moneda,
|
|
CONVERT(decimal(19, 6), V.TipoCambio) AS TipoCambio
|
|
FROM dbo.Ventas AS V
|
|
LEFT JOIN dbo.Vta_FormaPago AS FP
|
|
ON FP.CveFormaPago = V.FormaPago
|
|
LEFT JOIN dbo.Vta_MetodoPago AS MP
|
|
ON MP.CveMetodoPago = V.CveMetodoPago
|
|
INNER JOIN dbo.Gral_Monedas AS M
|
|
ON M.CveMoneda = V.CveMoneda
|
|
OUTER APPLY
|
|
(
|
|
SELECT TOP (1) D.CveCfdiDocumento
|
|
FROM dbo.Fac_CfdiDocumentos AS D
|
|
WHERE D.TipoOrigen = 'VENTA'
|
|
AND D.CveOrigen = V.CveVenta
|
|
AND D.CveCfdiTimbradoVigente IS NULL
|
|
AND D.Estado IN ('BORRADOR', 'LISTO', 'ERROR')
|
|
ORDER BY D.CveCfdiDocumento DESC
|
|
) AS Borrador
|
|
WHERE V.CveVenta = @CveVenta;
|
|
|
|
SELECT
|
|
SATPS.SATClavePS AS ClaveProductoServicio,
|
|
PS.Codigo AS NumeroIdentificacion,
|
|
VD.Cantidad,
|
|
SATUM.SATClaveUnidadMedida AS ClaveUnidad,
|
|
UM.UnidadMedida AS Unidad,
|
|
PS.PS AS Descripcion,
|
|
VD.PrecioUnitario AS ValorUnitario,
|
|
VD.PrecioUnitario AS PU,
|
|
VD.Importe AS Total,
|
|
VD.Descuento,
|
|
OI.CodigoObjetoImpuesto AS ObjetoImpuesto,
|
|
CONVERT(
|
|
decimal(19, 6),
|
|
VD.Importe - VD.Descuento
|
|
) AS BaseIVA,
|
|
CONVERT(decimal(19, 6), 0.16) AS TasaIVA,
|
|
CONVERT(decimal(19, 6), VD.IVA) AS ImporteIVA,
|
|
CONVERT(decimal(19, 6), 0.16) AS PorcentajeIVA
|
|
FROM dbo.VentasDetalle AS VD
|
|
INNER JOIN dbo.ProductosServicios AS PS
|
|
ON PS.CvePS = VD.CvePS
|
|
INNER JOIN dbo.UnidadesMedida AS UM
|
|
ON UM.CveUnidadMedida = PS.CveUnidadMedida
|
|
LEFT JOIN dbo.Gral_SAT_ProductosServicios AS SATPS
|
|
ON SATPS.CveSATPS = PS.CveSATPS
|
|
LEFT JOIN dbo.Gral_SAT_UnidadesMedida AS SATUM
|
|
ON SATUM.CveSATUnidadMedida = UM.CveSATUnidadMedida
|
|
LEFT JOIN dbo.Gral_SAT_ObjetoImpuesto AS OI
|
|
ON OI.CveObjetoImpuesto = PS.CveObjetoImpuesto
|
|
WHERE VD.CveVenta = @CveVenta
|
|
ORDER BY VD.CveVentaDetalle;
|
|
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al preparar los datos fiscales 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_TramiteVentaDatosCfdiGet'),
|
|
'; Línea: ', ERROR_LINE(),
|
|
'; Detalle: ', ERROR_MESSAGE());
|
|
|
|
RAISERROR(N'%s', 10, 1, @ErrorTecnico);
|
|
END CATCH;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.PA_Fac_EmisorFiscalSave
|
|
@CveEmisorFiscal int = NULL,
|
|
@CveEmpresa int,
|
|
@Rfc varchar(13),
|
|
@NombreFiscal varchar(300),
|
|
@RegimenFiscal varchar(3),
|
|
@CodigoPostal varchar(5),
|
|
@ProveedorPac varchar(50),
|
|
@AmbienteProduccion bit,
|
|
@ReferenciaCredencialPac varchar(100),
|
|
@ReferenciaContratoPac varchar(100) = NULL,
|
|
@ReferenciaCertificadoCsd varchar(500) = NULL,
|
|
@ReferenciaLlavePrivadaCsd varchar(500) = NULL,
|
|
@NumeroCertificado varchar(20) = NULL,
|
|
@VigenciaCertificadoDesde datetime2(0) = NULL,
|
|
@VigenciaCertificadoHasta datetime2(0) = NULL,
|
|
@HuellaCertificado varchar(128) = 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
|
|
SELECT
|
|
@Rfc = UPPER(REPLACE(LTRIM(RTRIM(@Rfc)), ' ', '')),
|
|
@NombreFiscal = LTRIM(RTRIM(@NombreFiscal)),
|
|
@RegimenFiscal = LTRIM(RTRIM(@RegimenFiscal)),
|
|
@CodigoPostal = LTRIM(RTRIM(@CodigoPostal)),
|
|
@ProveedorPac = UPPER(LTRIM(RTRIM(@ProveedorPac))),
|
|
@ReferenciaCredencialPac = LTRIM(RTRIM(@ReferenciaCredencialPac)),
|
|
@ReferenciaContratoPac = NULLIF(LTRIM(RTRIM(@ReferenciaContratoPac)), ''),
|
|
@ReferenciaCertificadoCsd = NULLIF(LTRIM(RTRIM(@ReferenciaCertificadoCsd)), ''),
|
|
@ReferenciaLlavePrivadaCsd = NULLIF(LTRIM(RTRIM(@ReferenciaLlavePrivadaCsd)), ''),
|
|
@NumeroCertificado = NULLIF(LTRIM(RTRIM(@NumeroCertificado)), ''),
|
|
@HuellaCertificado = NULLIF(LTRIM(RTRIM(@HuellaCertificado)), '');
|
|
|
|
IF LEN(@Rfc) NOT IN (12, 13)
|
|
OR NULLIF(@NombreFiscal, '') IS NULL
|
|
OR LEN(@RegimenFiscal) <> 3
|
|
OR LEN(@CodigoPostal) <> 5
|
|
OR NULLIF(@ProveedorPac, '') IS NULL
|
|
OR NULLIF(@ReferenciaCredencialPac, '') IS NULL
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'Capture RFC, nombre fiscal, régimen, código postal, PAC y referencia de credencial válidos.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
IF @CveEmisorFiscal IS NULL
|
|
BEGIN
|
|
IF EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Fac_EmisoresFiscales
|
|
WHERE CveEmpresa = @CveEmpresa
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'La empresa ya cuenta con una configuración fiscal.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
INSERT dbo.Fac_EmisoresFiscales
|
|
(
|
|
CveEmpresa,
|
|
Rfc,
|
|
NombreFiscal,
|
|
RegimenFiscal,
|
|
CodigoPostal,
|
|
ProveedorPac,
|
|
AmbienteProduccion,
|
|
ReferenciaCredencialPac,
|
|
ReferenciaContratoPac,
|
|
ReferenciaCertificadoCsd,
|
|
ReferenciaLlavePrivadaCsd,
|
|
NumeroCertificado,
|
|
VigenciaCertificadoDesde,
|
|
VigenciaCertificadoHasta,
|
|
HuellaCertificado,
|
|
EsActivo,
|
|
CveUsuario
|
|
)
|
|
VALUES
|
|
(
|
|
@CveEmpresa,
|
|
@Rfc,
|
|
@NombreFiscal,
|
|
@RegimenFiscal,
|
|
@CodigoPostal,
|
|
@ProveedorPac,
|
|
@AmbienteProduccion,
|
|
@ReferenciaCredencialPac,
|
|
@ReferenciaContratoPac,
|
|
@ReferenciaCertificadoCsd,
|
|
@ReferenciaLlavePrivadaCsd,
|
|
@NumeroCertificado,
|
|
@VigenciaCertificadoDesde,
|
|
@VigenciaCertificadoHasta,
|
|
@HuellaCertificado,
|
|
@EsActivo,
|
|
@CveUsuarioEjecuta
|
|
);
|
|
|
|
SET @CveEmisorFiscal = CONVERT(int, SCOPE_IDENTITY());
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
IF NOT EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM dbo.Fac_EmisoresFiscales
|
|
WHERE CveEmisorFiscal = @CveEmisorFiscal
|
|
AND CveEmpresa = @CveEmpresa
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@ErrorMostrar = 'No se encontró la configuración fiscal seleccionada.',
|
|
@ErrorTipo = 2;
|
|
RETURN;
|
|
END;
|
|
|
|
UPDATE dbo.Fac_EmisoresFiscales
|
|
SET Rfc = @Rfc,
|
|
NombreFiscal = @NombreFiscal,
|
|
RegimenFiscal = @RegimenFiscal,
|
|
CodigoPostal = @CodigoPostal,
|
|
ProveedorPac = @ProveedorPac,
|
|
AmbienteProduccion = @AmbienteProduccion,
|
|
ReferenciaCredencialPac = @ReferenciaCredencialPac,
|
|
ReferenciaContratoPac = @ReferenciaContratoPac,
|
|
ReferenciaCertificadoCsd = @ReferenciaCertificadoCsd,
|
|
ReferenciaLlavePrivadaCsd = @ReferenciaLlavePrivadaCsd,
|
|
NumeroCertificado = @NumeroCertificado,
|
|
VigenciaCertificadoDesde = @VigenciaCertificadoDesde,
|
|
VigenciaCertificadoHasta = @VigenciaCertificadoHasta,
|
|
HuellaCertificado = @HuellaCertificado,
|
|
EsActivo = @EsActivo,
|
|
FechaModificacion = SYSDATETIME(),
|
|
CveUsuario = @CveUsuarioEjecuta
|
|
WHERE CveEmisorFiscal = @CveEmisorFiscal;
|
|
END;
|
|
|
|
SELECT @CveEmisorFiscal AS CveEmisorFiscal;
|
|
SET @Return = 1;
|
|
END TRY
|
|
BEGIN CATCH
|
|
SELECT
|
|
@ErrorMostrar = 'Ocurrió un error al guardar el emisor fiscal; favor de contactar a Sistemas.',
|
|
@ErrorTipo = 1,
|
|
@Return = 0;
|
|
|
|
DECLARE @ErrorTecnico nvarchar(2048) =
|
|
CONCAT(
|
|
'Número: ', ERROR_NUMBER(),
|
|
'; Procedimiento: ', COALESCE(ERROR_PROCEDURE(), 'PA_Fac_EmisorFiscalSave'),
|
|
'; 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,
|
|
Documento.CveCfdiDocumento,
|
|
CONVERT(
|
|
bit,
|
|
CASE
|
|
WHEN V.SeTimbro = 1
|
|
OR Documento.Estado = 'TIMBRADO'
|
|
THEN 1
|
|
ELSE 0
|
|
END
|
|
) AS VentaTimbrada,
|
|
CONVERT(
|
|
bit,
|
|
CASE WHEN Documento.Estado = 'CANCELADO' THEN 1 ELSE 0 END
|
|
) AS TimbreCancelado,
|
|
Documento.Uuid AS UuidTimbre,
|
|
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
|
|
OUTER APPLY
|
|
(
|
|
SELECT TOP (1)
|
|
D.CveCfdiDocumento,
|
|
D.Estado,
|
|
T.Uuid
|
|
FROM dbo.Fac_CfdiDocumentos AS D
|
|
LEFT JOIN dbo.Fac_CfdiTimbrados AS T
|
|
ON T.CveCfdiTimbrado = D.CveCfdiTimbradoVigente
|
|
WHERE D.TipoOrigen = 'VENTA'
|
|
AND D.CveOrigen = V.CveVenta
|
|
AND D.Estado IN ('TIMBRADO', 'CANCELADO')
|
|
ORDER BY D.CveCfdiDocumento DESC
|
|
) AS Documento
|
|
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
|