diff --git a/CRM/Financial/BAO/FinancialItem.php b/CRM/Financial/BAO/FinancialItem.php
index 215159bb99ae..e3cc03c6a97e 100644
--- a/CRM/Financial/BAO/FinancialItem.php
+++ b/CRM/Financial/BAO/FinancialItem.php
@@ -289,4 +289,16 @@ public static function getPreviousFinancialItem($entityId) {
return civicrm_api3('FinancialItem', 'getsingle', $params);
}
+ /**
+ * Whitelist of possible values for the entity_table field
+ *
+ * @return array
+ */
+ public static function entityTables(): array {
+ return [
+ 'civicrm_line_item' => ts('Line Item'),
+ 'civicrm_financial_trxn' => ts('Financial Trxn'),
+ ];
+ }
+
}
diff --git a/CRM/Financial/DAO/FinancialItem.php b/CRM/Financial/DAO/FinancialItem.php
index 6d1f8098f790..2e99cdfd698d 100644
--- a/CRM/Financial/DAO/FinancialItem.php
+++ b/CRM/Financial/DAO/FinancialItem.php
@@ -6,7 +6,7 @@
*
* Generated from xml/schema/CRM/Financial/FinancialItem.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b63c826a61c494010c7628672e82fc27)
+ * (GenCodeChecksum:c9deaca104b5b1126ad3a064c520d0c3)
*/
/**
@@ -93,7 +93,7 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
public $status_id;
/**
- * The table providing the source of this item such as civicrm_line_item
+ * May contain civicrm_line_item, civicrm_financial_trxn etc
*
* @var string
*/
@@ -315,7 +315,7 @@ public static function &fields() {
'name' => 'entity_table',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Entity Table'),
- 'description' => ts('The table providing the source of this item such as civicrm_line_item'),
+ 'description' => ts('May contain civicrm_line_item, civicrm_financial_trxn etc'),
'maxlength' => 64,
'size' => CRM_Utils_Type::BIG,
'where' => 'civicrm_financial_item.entity_table',
@@ -323,6 +323,9 @@ public static function &fields() {
'entity' => 'FinancialItem',
'bao' => 'CRM_Financial_BAO_FinancialItem',
'localizable' => 0,
+ 'pseudoconstant' => [
+ 'callback' => 'CRM_Financial_BAO_FinancialItem::entityTables',
+ ],
'add' => '4.3',
],
'entity_id' => [
diff --git a/CRM/Price/BAO/LineItem.php b/CRM/Price/BAO/LineItem.php
index 0d6f12c6a892..e7e891b70a74 100644
--- a/CRM/Price/BAO/LineItem.php
+++ b/CRM/Price/BAO/LineItem.php
@@ -1229,4 +1229,17 @@ protected function getSalesTaxTerm() {
return CRM_Contribute_BAO_Contribution::checkContributeSettings('tax_term');
}
+ /**
+ * Whitelist of possible values for the entity_table field
+ *
+ * @return array
+ */
+ public static function entityTables(): array {
+ return [
+ 'civicrm_contribution' => ts('Contribution'),
+ 'civicrm_participant' => ts('Participant'),
+ 'civicrm_membership' => ts('Membership'),
+ ];
+ }
+
}
diff --git a/CRM/Price/DAO/LineItem.php b/CRM/Price/DAO/LineItem.php
index c226921b4b59..0aa851939ea1 100644
--- a/CRM/Price/DAO/LineItem.php
+++ b/CRM/Price/DAO/LineItem.php
@@ -6,7 +6,7 @@
*
* Generated from xml/schema/CRM/Price/LineItem.xml
* DO NOT EDIT. Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1c10b6b406bb73014b2fbe6ceb95fda3)
+ * (GenCodeChecksum:cffc97712c8823323cbeb39a0851363a)
*/
/**
@@ -39,7 +39,7 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
public $id;
/**
- * table which has the transaction
+ * May contain civicrm_contribution, civicrm_participant or civicrm_membership
*
* @var string
*/
@@ -195,7 +195,7 @@ public static function &fields() {
'name' => 'entity_table',
'type' => CRM_Utils_Type::T_STRING,
'title' => ts('Line Item Entity Type'),
- 'description' => ts('table which has the transaction'),
+ 'description' => ts('May contain civicrm_contribution, civicrm_participant or civicrm_membership'),
'required' => TRUE,
'maxlength' => 64,
'size' => CRM_Utils_Type::BIG,
@@ -204,6 +204,9 @@ public static function &fields() {
'entity' => 'LineItem',
'bao' => 'CRM_Price_BAO_LineItem',
'localizable' => 0,
+ 'pseudoconstant' => [
+ 'callback' => 'CRM_Price_BAO_LineItem::entityTables',
+ ],
'add' => '1.7',
],
'entity_id' => [
diff --git a/xml/schema/Financial/FinancialItem.xml b/xml/schema/Financial/FinancialItem.xml
index 8e1f5a745485..f7790e49ed19 100644
--- a/xml/schema/Financial/FinancialItem.xml
+++ b/xml/schema/Financial/FinancialItem.xml
@@ -139,7 +139,10 @@