60 lines
1.9 KiB
Plaintext
60 lines
1.9 KiB
Plaintext
FUNCTION btipo_fact(ptipo_doc)
|
|
|
|
DEFINE arrtipofact ARRAY[50] OF RECORD
|
|
codigodgii CHAR(16),
|
|
descripcion CHAR(80),
|
|
fecha_vencimiento DATE
|
|
END RECORD,
|
|
ptipo_doc CHAR(2),
|
|
codigodgii CHAR(16),
|
|
descripcion CHAR(30),
|
|
idx,curr1,numero_msg SMALLINT,
|
|
fecha_vencimiento DATE,
|
|
vmensaje STRING
|
|
|
|
OPEN WINDOW tipofactura AT 7,12 WITH FORM "ccfmwd018"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
|
|
|
|
# fecha_vencimiento se lee como fecha (no como texto dd/mm/aaaa, que dependia
|
|
# del formato de fecha del servidor) y disponible sin importar mayuscula/minuscula
|
|
DECLARE busca_tipo CURSOR FOR
|
|
SELECT a.codigo_dgii,a.tipo_ncf,a.fecha_vencimiento FROM vetb00071 a
|
|
WHERE a.tipo_doc = ptipo_doc and UPPER(a.disponible) = "S"
|
|
|
|
LET idx = 1
|
|
FOREACH busca_tipo INTO arrtipofact[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
# Sin comprobantes: avisa en vez de mostrar la ventana en blanco
|
|
IF idx = 1 THEN
|
|
LET vmensaje = "No hay comprobantes disponibles para el tipo de documento ",
|
|
ptipo_doc CLIPPED, ".\nRegistrelo en el administrador de NCF (veprmt020)",
|
|
" con Disponible = SI."
|
|
CALL fgl_winmessage("NCF",vmensaje,"exclamation")
|
|
CLOSE WINDOW tipofactura
|
|
LET int_flag = TRUE
|
|
RETURN NULL,NULL
|
|
END IF
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
CLOSE WINDOW tipofactura
|
|
END IF
|
|
|
|
CALL set_count(idx-1)
|
|
DISPLAY ARRAY arrtipofact TO s_tipo.*
|
|
|
|
LET curr1 = arr_curr()
|
|
LET codigodgii = arrtipofact[curr1].codigodgii
|
|
LET descripcion = arrtipofact[curr1].descripcion
|
|
IF arrtipofact[curr1].fecha_vencimiento > MDY(5,1,2018) THEN
|
|
LET fecha_vencimiento =arrtipofact[curr1].fecha_vencimiento
|
|
ELSE
|
|
LET fecha_vencimiento = NULL
|
|
END IF
|
|
CLOSE WINDOW tipofactura
|
|
RETURN codigodgii,fecha_vencimiento
|
|
END FUNCTION
|