forked from civicrm/org.civicrm.civicase
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #965 from compucorp/BTHAB-178-membership-type-cust…
…om-field BTHAB-178: Membeship Type product discounts custom field
- Loading branch information
Showing
4 changed files
with
172 additions
and
12 deletions.
There are no files selected for viewing
34 changes: 34 additions & 0 deletions
34
CRM/Civicase/Setup/Manage/MembershipTypeCustomFieldManager.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?php | ||
|
||
/** | ||
* Manages Membership Type Custom Field Entity. | ||
*/ | ||
class CRM_Civicase_Setup_Manage_MembershipTypeCustomFieldManager extends CRM_Civicase_Setup_Manage_AbstractManager { | ||
|
||
const OPTION_GROUP_NAME = 'cg_extend_objects'; | ||
|
||
/** | ||
* Adds Membership Type entity to extend object. | ||
*/ | ||
public function create(): void { | ||
CRM_Core_BAO_OptionValue::ensureOptionValueExists([ | ||
'option_group_id' => self::OPTION_GROUP_NAME, | ||
"label" => "Membership Type", | ||
"value" => "MembershipType", | ||
"name" => "civicrm_membership_type", | ||
'is_active' => TRUE, | ||
'is_reserved' => TRUE, | ||
]); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
public function remove(): void {} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
protected function toggle($status): void {} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<?php | ||
|
||
/** | ||
* Add custom fields. | ||
*/ | ||
class CRM_Civicase_Upgrader_Steps_Step0020 { | ||
|
||
/** | ||
* Runs the upgrader changes. | ||
* | ||
* @return bool | ||
* Return value in boolean. | ||
*/ | ||
public function apply() { | ||
try { | ||
(new CRM_Civicase_Setup_Manage_MembershipTypeCustomFieldManager())->create(); | ||
} | ||
catch (\Throwable $th) { | ||
\Civi::log()->error('Error upgrading Civicase', [ | ||
'context' => [ | ||
'backtrace' => $th->getTraceAsString(), | ||
'message' => $th->getMessage(), | ||
], | ||
]); | ||
} | ||
|
||
return TRUE; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
<?php | ||
|
||
/** | ||
* @file | ||
* Exported Product Discounts CustomGroup. | ||
*/ | ||
|
||
use Civi\Api4\OptionValue; | ||
|
||
$mgd = [ | ||
[ | ||
'name' => 'CustomGroup_Product_Discounts', | ||
'entity' => 'CustomGroup', | ||
'cleanup' => 'always', | ||
'update' => 'unmodified', | ||
'params' => [ | ||
'version' => 4, | ||
'values' => [ | ||
'name' => 'Product_Discounts', | ||
'title' => 'Product Discounts', | ||
'extends' => 'MembershipType', | ||
'extends_entity_column_value' => NULL, | ||
'style' => 'Inline', | ||
'collapse_display' => FALSE, | ||
'help_pre' => '', | ||
'help_post' => '', | ||
'weight' => 107, | ||
'is_active' => TRUE, | ||
'is_multiple' => FALSE, | ||
'min_multiple' => NULL, | ||
'max_multiple' => NULL, | ||
'collapse_adv_display' => TRUE, | ||
'created_date' => '2023-08-25 07:22:08', | ||
'is_reserved' => FALSE, | ||
'is_public' => TRUE, | ||
'icon' => '', | ||
'extends_entity_column_id' => NULL, | ||
], | ||
], | ||
], | ||
[ | ||
'name' => 'CustomGroup_Product_Discounts_CustomField_Product_Discount_Amount', | ||
'entity' => 'CustomField', | ||
'cleanup' => 'always', | ||
'update' => 'unmodified', | ||
'params' => [ | ||
'version' => 4, | ||
'values' => [ | ||
'custom_group_id.name' => 'Product_Discounts', | ||
'name' => 'Product_Discount_Amount', | ||
'label' => 'Product Discount Amount', | ||
'data_type' => 'Float', | ||
'html_type' => 'Text', | ||
'default_value' => NULL, | ||
'is_required' => FALSE, | ||
'is_searchable' => FALSE, | ||
'is_search_range' => FALSE, | ||
'help_pre' => NULL, | ||
'help_post' => 'Specify a discount that will automatically be applied when adding a product line item to a quotation if the contact is a member of this type.', | ||
'mask' => NULL, | ||
'attributes' => NULL, | ||
'javascript' => NULL, | ||
'is_active' => TRUE, | ||
'is_view' => FALSE, | ||
'options_per_line' => NULL, | ||
'text_length' => 255, | ||
'start_date_years' => NULL, | ||
'end_date_years' => NULL, | ||
'date_format' => NULL, | ||
'time_format' => NULL, | ||
'note_columns' => 60, | ||
'note_rows' => 4, | ||
'column_name' => 'product_discount_amount', | ||
'serialize' => 0, | ||
'filter' => NULL, | ||
'in_selector' => FALSE, | ||
], | ||
], | ||
], | ||
]; | ||
|
||
$rowCount = OptionValue::get(FALSE) | ||
->selectRowCount() | ||
->addSelect('*') | ||
->addWhere('option_group_id:name', '=', 'cg_extend_objects') | ||
->addWhere('name', '=', 'civicrm_membership_type') | ||
->execute() | ||
->count(); | ||
|
||
if ($rowCount == 1) { | ||
return $mgd; | ||
} | ||
|
||
return []; |