Hola a todos.
ALTER PROCEDURE .....
Intente eliminar el Store Procedure y luego volverlo a crear pero me sigue saliendo este error.
Código:
CREATE PROCEDURE "SP$REP_FACTURA"
(
"FAC_NUMERO" INTEGER
)
RETURNS
(
"LINEA" VARCHAR(240)
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE "SP$REP_FACTURA"
(
"FAC_NUMERO" INTEGER
)
RETURNS
(
"LINEA" VARCHAR(240)
)
AS
DECLARE VARIABLE FAC_PREFIJO VARCHAR(10) ;
DECLARE VARIABLE FAC_FH_EMISION TIMESTAMP ;
DECLARE VARIABLE ESTACION VARCHAR(16) ;
DECLARE VARIABLE PRO_CODIGO VARCHAR(4) ;
DECLARE VARIABLE LIQ_VEH_ID VARCHAR(10) ;
DECLARE VARIABLE LIQ_VEH_FH_ENTRADA TIMESTAMP ;
DECLARE VARIABLE LIQ_FH_DESDE TIMESTAMP ;
DECLARE VARIABLE LIQ_FH_HASTA TIMESTAMP ;
DECLARE VARIABLE LIQ_FH_LIQUIDACION TIMESTAMP ;
DECLARE VARIABLE LIQ_TIPO VARCHAR(15) ;
DECLARE VARIABLE MEN_NOMBRE VARCHAR(50) ;
DECLARE VARIABLE MEN_PLACA VARCHAR(13) ;
DECLARE VARIABLE MEN_DESDE TIMESTAMP ;
DECLARE VARIABLE MEN_HASTA TIMESTAMP ;
DECLARE VARIABLE LDS_COM_CODIGO VARCHAR(4) ;
DECLARE VARIABLE LDS_VALOR NUMERIC(9,2) ;
DECLARE VARIABLE FAC_SUBTOTAL NUMERIC(9,2) ;
DECLARE VARIABLE FAC_TOTAL NUMERIC(9,2) ;
DECLARE VARIABLE FIM_IMP_NOMBRE VARCHAR(20) ;
DECLARE VARIABLE FIM_IMP_PORCENTAJE NUMERIC(9,2) ;
DECLARE VARIABLE FIM_VALOR NUMERIC(9,2) ;
DECLARE VARIABLE CONTADOR INTEGER ;
BEGIN
/* Busca la factura. */
SELECT FAC_PREFIJO, FAC_FH_EMISION, FAC_SES_ESTACION, FAC_TOTAL
FROM TB$FACTURAS
WHERE FAC_NUMERO = :FAC_NUMERO
INTO :FAC_PREFIJO, :FAC_FH_EMISION, :ESTACION, :FAC_TOTAL ;
/* Toma el prefijo de factura. */
IF ( FAC_PREFIJO IS NULL ) THEN
FAC_PREFIJO = '' ;
/* === ENCABEZADO === */
SELECT CFG_REC_SAL_ENCABEZADO
FROM TB$CONFIGURACION
WHERE CFG_ESTACION = :ESTACION
INTO :LINEA ; SUSPEND ;
LINEA = '----------------------------------------' ; SUSPEND ;
LINEA = PADR( 'Factura Nro.', ' ', 19 ) || PADL( FAC_PREFIJO || ' ' || PADL( FAC_NUMERO, '', 10 ), ' ', 21 ) ; SUSPEND ;
LINEA = PADR( 'Fecha ', ' ', 30 ) || CAST( FAC_FH_EMISION AS DATE ) ; SUSPEND ;
LINEA = '----------------------------------------' ; SUSPEND ;
/* === SI HUBO PARQUEO AGREGA LOS DATOS === */
PRO_CODIGO = NULL ;
SELECT DISTINCT( FDT_PRO_CODIGO )
FROM TB$FACTURA_DETALLE
WHERE FDT_FAC_NUMERO = :FAC_NUMERO AND FDT_PRO_CODIGO = 'PARQ'
INTO :PRO_CODIGO ;
IF ( PRO_CODIGO IS NOT NULL ) THEN BEGIN
/* === BUSCA LA LIQUIDACION CORRESPONDIENTE === */
SELECT LIQ_TIPO
FROM TB$FACTURAS LEFT JOIN TB$LIQUIDACIONES ON LIQ_FAC_NUMERO = FAC_NUMERO
WHERE FAC_NUMERO = :FAC_NUMERO
INTO :LIQ_TIPO ;
/* === FACTURA DE PAGO DE PARQUEO === */
IF ( LIQ_TIPO IN ( 'Normal', 'Manual', 'Reliquidado', 'Gracia' ) ) THEN BEGIN
SELECT LIQ_FH_DESDE, LIQ_FH_HASTA, LIQ_VEH_ID, LIQ_VEH_FH_ENTRADA, LIQ_FH_LIQUIDACION
FROM TB$LIQUIDACIONES LEFT JOIN TB$VEHICULOS ON ( LIQ_VEH_ID = VEH_ID AND LIQ_VEH_FH_ENTRADA = VEH_FH_ENTRADA )
WHERE LIQ_FAC_NUMERO = :FAC_NUMERO
INTO :LIQ_FH_DESDE, :LIQ_FH_HASTA, :LIQ_VEH_ID, :LIQ_VEH_FH_ENTRADA, :LIQ_FH_LIQUIDACION ;
LINEA = 'Concepto : PARQUEO - ' || LIQ_TIPO ; SUSPEND ;
LINEA = PADR( 'Placa/Código : ', ' ', 30 ) || PADL( LIQ_VEH_ID, ' ', 10 ) ; SUSPEND ;
LINEA = PADR( 'Entrada : ', ' ', 24 ) || STRL( LIQ_FH_DESDE, 16 ) ; SUSPEND ;
LINEA = PADR( 'Salida : ', ' ', 24 ) || STRL( LIQ_FH_HASTA, 16 ) ; SUSPEND ;
END
/* === FACTURA DE PAGO DE PERDIDO === */
IF ( LIQ_TIPO = 'Perdido' ) THEN BEGIN
LINEA = 'Concepto : TIQUETE EXTRAVIADO' ; SUSPEND ;
END
LINEA = '----------------------------------------' ; SUSPEND ;
END
/* === SI HUBO MENSUALIDAS AGREGA LOS DATOS === */
PRO_CODIGO = NULL ;
SELECT DISTINCT( FDT_PRO_CODIGO )
FROM TB$FACTURA_DETALLE
WHERE FDT_FAC_NUMERO = :FAC_NUMERO AND FDT_PRO_CODIGO = 'MENS'
INTO :PRO_CODIGO ;
IF ( PRO_CODIGO IS NOT NULL ) THEN BEGIN
/* === BUSCA LA MENSUALIDAD CORRESPONDIENTE === */
LINEA = 'Concepto : MENSUALIDAD' ; SUSPEND ;
FOR SELECT MEN_NOMBRE, MEN_PLACA, MEN_DESDE, MEN_HASTA
FROM TB$MENSUALES
WHERE MEN_FAC_NUMERO = :FAC_NUMERO
INTO :MEN_NOMBRE, :MEN_PLACA, :MEN_DESDE, :MEN_HASTA
DO BEGIN
LINEA = 'Nombre : ' || STRL( MEN_NOMBRE, 29 ) ; SUSPEND ;
LINEA = ' Placa : ' || MEN_PLACA ; SUSPEND ;
LINEA = ' Desde : ' || STRL( MEN_DESDE, 16 ) ; SUSPEND ;
LINEA = ' Hasta : ' || STRL( MEN_HASTA, 16 ) ; SUSPEND ;
END
LINEA = '----------------------------------------' ; SUSPEND ;
END
/* === MISCELANEOS. === */
LINEA = 'Cnt Descripción Subtotal' ; SUSPEND ;
LINEA = '--- -------------------- ---------------' ; SUSPEND ;
FOR SELECT PADR( FDT_CANTIDAD, ' ', 3 ) || ' ' ||
PADR( FDT_PRO_DESCRIPCION, ' ', 20 ) || ' ' ||
PADL( CURR( FDT_TOTAL ), ' ', 15 )
FROM TB$FACTURA_DETALLE
WHERE FDT_FAC_NUMERO = :FAC_NUMERO
INTO :LINEA
DO BEGIN
SUSPEND ;
END
LINEA = ' ===============' ; SUSPEND ;
LINEA = 'TOTAL A PAGAR ===>' || PADL( CURR( FAC_TOTAL ), ' ', 20 ) ; SUSPEND ;
LINEA = '' ; SUSPEND ;
/* === DESCUENTOS. === */
FOR SELECT 'Desc: ' || PADR( LDS_COM_NOMBRE, ' ', 20 ) || ' ' ||
PADL( CURR( LDS_VALOR ), ' ', 13 )
FROM TB$LIQ_DESCUENTOS
WHERE ( LDS_LIQ_VEH_ID = :LIQ_VEH_ID )
AND ( LDS_LIQ_VEH_FH_ENTRADA = :LIQ_VEH_FH_ENTRADA )
AND ( LDS_LIQ_FH_LIQUIDACION = :LIQ_FH_LIQUIDACION )
ORDER BY LDS_SECUENCIA
INTO :LINEA
DO BEGIN
SUSPEND ;
END
/* === IMPUESTOS === */
FOR SELECT 'Impu: ' || PADL( MIN( FIM_IMP_PORCENTAJE ), ' ', 5 ) || '%' || ' ' ||
PADR( STRL( MIN( FIM_IMP_NOMBRE ), 15 ), ' ', 15 ) || ' ' ||
PADL( CURR( SUM( FIM_VALOR ) ), ' ', 11 )
FROM TB$FACTURA_IMPUESTOS
WHERE FIM_FAC_NUMERO = :FAC_NUMERO
GROUP BY FIM_IMP_CODIGO
ORDER BY FIM_IMP_CODIGO
INTO :LINEA
DO BEGIN
SUSPEND ;
END
/* === PIE DE PAGINA === */
SELECT CFG_REC_SAL_PIE_PAGINA
FROM TB$CONFIGURACION
WHERE CFG_ESTACION = :ESTACION
INTO :LINEA ;
SUSPEND ;
END