Skip to content

Commit 3f92a73

Browse files
Added ability to allow free cost usage.
1 parent 729d290 commit 3f92a73

File tree

5 files changed

+50
-2
lines changed

5 files changed

+50
-2
lines changed

Block/Catalog/Product/Usage.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ public function getUsagesSelectHtml(
235235
[
236236
'price' => $this->pricingHelper->currencyByStore($usage->getPrice(), $store, false),
237237
'data-terms' => $usage->getTerms(),
238+
'data-is-free' => $usage->getIsFree(),
238239
]
239240
);
240241
}

Setup/UpgradeData.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,23 @@ public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface
5757
->save();
5858
}
5959

60+
61+
if (version_compare($context->getVersion(), '1.0.6') < 0) {
62+
$usageSetup->addAttribute(
63+
'devstone_usage',
64+
'is_free',
65+
[
66+
'type' => 'int',
67+
'label' => 'Can be free',
68+
'input' => 'select',
69+
'source' => \Magento\Eav\Model\Entity\Attribute\Source\Boolean::class,
70+
'sort_order' => 25,
71+
'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
72+
'group' => 'General Information',
73+
]
74+
);
75+
}
76+
6077
$usageSetup->installEntities();
6178
$entities = $usageSetup->getDefaultEntities();
6279
foreach ($entities as $entityName => $entity) {

etc/module.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
2-
<module name="DevStone_UsageCalculator" setup_version="1.0.5" >
2+
<module name="DevStone_UsageCalculator" setup_version="1.0.6" >
33
<sequence>
44
<module name="Magento_Catalog"/>
55
<module name="Magento_Sales"/>

view/adminhtml/ui_component/devstone_usagecalculator_usage_form.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,35 @@
129129
</item>
130130
</argument>
131131
</field>
132+
<field name="is_free" formElement="select">
133+
<argument name="data" xsi:type="array">
134+
<item name="config" xsi:type="array">
135+
<item name="source" xsi:type="string">main_fieldset</item>
136+
</item>
137+
</argument>
138+
<settings>
139+
<dataType>number</dataType>
140+
<label translate="true">Can be free</label>
141+
<visible>true</visible>
142+
<dataScope>is_free</dataScope>
143+
</settings>
144+
<formElements>
145+
<select>
146+
<settings>
147+
<options>
148+
<option name="0" xsi:type="array">
149+
<item name="value" xsi:type="number">0</item>
150+
<item name="label" xsi:type="string" translate="true">No</item>
151+
</option>
152+
<option name="1" xsi:type="array">
153+
<item name="value" xsi:type="number">1</item>
154+
<item name="label" xsi:type="string" translate="true">Yes</item>
155+
</option>
156+
</options>
157+
</settings>
158+
</select>
159+
</formElements>
160+
</field>
132161
<field name="is_active" formElement="select">
133162
<argument name="data" xsi:type="array">
134163
<item name="config" xsi:type="array">

view/frontend/web/usage.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ define([
191191

192192
if (isNaN(finalPrice)) {
193193
finalPrice = 0;
194+
terms = "";
194195
}
195196

196197
if (95 !== ((finalPrice * 100) % 100)) {
@@ -208,7 +209,7 @@ define([
208209
}
209210
});
210211

211-
if (finalPrice <= 0) {
212+
if (finalPrice <= 0 && !$usage.data('is-free')) {
212213
$(self.options.priceHolderSelector + ', .product-options-bottom').hide();
213214
$('#usages-advice-container').html('');
214215
} else {

0 commit comments

Comments
 (0)