FUNCTION get_vendor_payment_method_code( p_ext_pmt_party_id IN NUMBER ) RETURN VARCHAR2 IS l_payment_method_code VARCHAR2(100); BEGIN SELECT payment_method_code INTO l_payment_method_code FROM iby_ext_party_pmt_mthds WHERE ext_pmt_party_id = p_ext_pmt_party_id AND primary_flag = 'Y' AND payment_function = 'PAYABLES_DISB' AND payment_flow = 'DISBURSEMENTS' AND nvl(inactive_date, trunc(sysdate + 1)) > trunc(sysdate) AND rownum = 1; RETURN l_payment_method_code; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; FUNCTION get_ext_payee_id( p_payee_party_id IN NUMBER ) RETURN NUMBER IS l_ext_payee_id NUMBER; BEGIN SELECT ext_payee_id INTO l_ext_payee_id FROM iby_external_payees_all WHERE payee_party_id = p_payee_party_id AND supplier_site_id IS NULL; RETURN l_ext_payee_id; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; FUNCTION get_payee_party_id( p_vendor_site_id IN NUMBER ) RETURN NUMBER IS l_payee_party_id NUMBER; BEGIN SELECT payee_party_id INTO l_payee_party_id FROM iby_external_payees_all WHERE supplier_site_id = p_vendor_site_id; RETURN l_payee_party_id; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; --取供应商地点的付款明细页下的默认的付款方法 --根据供应商地点ID,取ext_payee_id l_payment_method_code := NULL; l_payee_party_id := get_payee_party_id(rec_line.vendor_site_id); IF l_payee_party_id IS NOT NULL THEN l_ext_payee_id := get_ext_payee_id(l_payee_party_id); IF l_ext_payee_id IS NOT NULL THEN l_payment_method_code := get_vendor_payment_method_code(l_ext_payee_id); END IF; END IF;