Source of file SetAmountFieldAction.php
Size: 2,117 Bytes - Last Modified: 2021-12-24T05:18:48+00:00
/var/www/docs.ssmods.com/process/src/src/Actions/SetAmountFieldAction.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | <?php namespace IQnection\FormBuilderPayments\Actions; use IQnection\FormBuilder\Model\FieldAction; use IQnection\FormBuilder\Fields\MoneyField; use SilverStripe\Forms; use IQnection\FormBuilderPayments\Extensions\PaymentField; class SetAmountFieldAction extends FieldAction { private static $table_name = 'FormBuilderSetAmountFieldAction'; private static $singular_name = 'Set Charge Amount'; private static $db = [ 'Amount' => 'Currency' ]; private static $has_one = []; private static $defaults = []; private static $allowed_field_types = [ PaymentField::class ]; public function getActionData() { $actionData = parent::getActionData(); $actionData['action']['callback'] = 'actionSetPaymentAmount'; $actionData['action']['selector'] = $this->Parent()->getAmountField_jQuerySelector(); $actionData['action']['id'] = $this->ID; $actionData['action']['amount'] = [ 'adjust' => $this->Amount, '_default' => $this->Parent()->Amount, ]; return $actionData; } public function singular_name() { $singular_name = parent::singular_name(); if ($this->Exists()) { $singular_name .= ' '.$this->dbObject('Amount')->Nice(); } return $singular_name; } public function AdjustAmount($amount, $formData, &$adjustments) { $previousAmount = $amount; $adjustment = 0; $hidden = $this->Parent()->isHidden($formData); if ( ($this->testConditions($formData)) && (!$hidden) ) { if ($this->AdjustmentType == self::ADJUSTMENT_TYPE_FIXED) { $adjustment = $this->Amount; } elseif ($this->AdjustmentType == self::ADJUSTMENT_TYPE_USER) { $linkedFieldName = $this->UserAmountField(); if ($linkedFieldName->Exists()) { $adjustment = floatval($formData[$linkedFieldName->getFrontendFieldName()]); } } } $amount = $previousAmount + $adjustment; $adjustments[] = [ 'hidden' => $hidden, 'actionID' => $this->ID, 'type' => $this->AdjustmentType, 'previousAmount' => $previousAmount, 'adjustment' => $adjustment, 'newAmount' => $amount, 'explain' => (string) $this->Explain() ]; return $amount; } } |