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