Add pseudoconstant callback for LineItem and Financial item entity
authorMonish Deb <monish.deb@jmaconsulting.biz>
Tue, 1 Jun 2021 08:41:55 +0000 (14:11 +0530)
committerMonish Deb <monish.deb@jmaconsulting.biz>
Tue, 1 Jun 2021 08:41:55 +0000 (14:11 +0530)
CRM/Financial/BAO/FinancialItem.php
CRM/Financial/DAO/FinancialItem.php
CRM/Price/BAO/LineItem.php
CRM/Price/DAO/LineItem.php
xml/schema/Financial/FinancialItem.xml
xml/schema/Price/LineItem.xml

index 215159bb99ae242ee2d69ea110c5271e98589ed0..e3cc03c6a97ee21f62563ae64eaf6130a8ded291 100644 (file)
@@ -289,4 +289,16 @@ WHERE cc.id IN (' . implode(',', $contactIds) . ') AND con.is_test = 0';
     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'),
+    ];
+  }
+
 }
index 6d1f8098f7906b1d35bc5f478d693b17d4cf0911..2e99cdfd698d83b6f996603df6b15cf634f41544 100644 (file)
@@ -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 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           '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 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'entity' => 'FinancialItem',
           'bao' => 'CRM_Financial_BAO_FinancialItem',
           'localizable' => 0,
+          'pseudoconstant' => [
+            'callback' => 'CRM_Financial_BAO_FinancialItem::entityTables',
+          ],
           'add' => '4.3',
         ],
         'entity_id' => [
index 0d6f12c6a892ddf4c9e18a07e9f7dc7420b867ce..e7e891b70a74b90683a6037f75bc935a94a9c933 100644 (file)
@@ -1229,4 +1229,17 @@ WHERE li.contribution_id = %1";
     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'),
+    ];
+  }
+
 }
index c226921b4b59325318f6b8991a7f57141e7068ae..0aa851939ea13011c2b77a9d2ddcb3ba76f343e8 100644 (file)
@@ -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 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           '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 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'entity' => 'LineItem',
           'bao' => 'CRM_Price_BAO_LineItem',
           'localizable' => 0,
+          'pseudoconstant' => [
+            'callback' => 'CRM_Price_BAO_LineItem::entityTables',
+          ],
           'add' => '1.7',
         ],
         'entity_id' => [
index 8e1f5a7454856837584ccb520eb17dc2cb9f84b5..f7790e49ed190ad1b6129e1943d92c97e910ce0f 100644 (file)
     <type>varchar</type>
     <title>Entity Table</title>
     <length>64</length>
-    <comment>The table providing the source of this item such as civicrm_line_item</comment>
+    <pseudoconstant>
+      <callback>CRM_Financial_BAO_FinancialItem::entityTables</callback>
+    </pseudoconstant>
+    <comment>May contain civicrm_line_item, civicrm_financial_trxn etc</comment>
     <add>4.3</add>
   </field>
   <field>
index 6b2733e7174e98e9ce04ba7e71ab4b6ee2d3a51e..4e0f795bec50808a60c8e42c790d744ad24f8ce9 100644 (file)
     <type>varchar</type>
     <length>64</length>
     <required>true</required>
-    <comment>table which has the transaction</comment>
+    <pseudoconstant>
+      <callback>CRM_Price_BAO_LineItem::entityTables</callback>
+    </pseudoconstant>
+    <comment>May contain civicrm_contribution, civicrm_participant or civicrm_membership</comment>
     <add>1.7</add>
   </field>
   <field>
    </html>
   </field>
 </table>
-