New new
parent
d3560e1efc
commit
c47911d5c2
Binary file not shown.
Binary file not shown.
@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.0.4 on 2024-04-23 11:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('billing', '0038_alter_invoice_pdf'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='recurringcycle',
|
||||
name='cycle_price',
|
||||
field=models.FloatField(null=True),
|
||||
),
|
||||
]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
@ -0,0 +1,93 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Osicloud 1 Subscription
|
||||
const firstOsicloudPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const firstOsicloudSubscriptionOptions = document.querySelectorAll('.firstOsicloudSubscriptionOptions');
|
||||
|
||||
firstOsicloudSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.firstOsicloudPrice');
|
||||
const price = firstOsicloudPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Osicloud 2 Subscription
|
||||
const secondOsicloudPrices = {
|
||||
1: 169,
|
||||
3: 400,
|
||||
6: 700,
|
||||
12: 1300,
|
||||
24: 2400,
|
||||
36: 3600,
|
||||
60: 6000
|
||||
};
|
||||
|
||||
const secondOsicloudSubscriptionOptions = document.querySelectorAll('.secondOsicloudSubscriptionOptions');
|
||||
|
||||
secondOsicloudSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.secondOsicloudPrice');
|
||||
const price = secondOsicloudPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Osicloud 3 Subscription
|
||||
const thirdOsicloudPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const thirdOsicloudSubscriptionOptions = document.querySelectorAll('.thirdOsicloudSubscriptionOptions');
|
||||
|
||||
thirdOsicloudSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.thirdOsicloudPrice');
|
||||
const price = thirdOsicloudPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Osicloud 4 Subscription
|
||||
const fourthOsicloudPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const fourthOsicloudSubscriptionOptions = document.querySelectorAll('.fourthOsicloudSubscriptionOptions');
|
||||
|
||||
fourthOsicloudSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.fourthOsicloudPrice');
|
||||
const price = fourthOsicloudPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
});
|
@ -0,0 +1,93 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Dedicated 1 Subscription
|
||||
const firstDedicatedPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const firstDedicatedSubscriptionOptions = document.querySelectorAll('.firstDedicatedSubscriptionOptions');
|
||||
|
||||
firstDedicatedSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.firstDedicatedPrice');
|
||||
const price = firstDedicatedPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Dedicated 2 Subscription
|
||||
const secondDedicatedPrices = {
|
||||
1: 169,
|
||||
3: 400,
|
||||
6: 700,
|
||||
12: 1300,
|
||||
24: 2400,
|
||||
36: 3600,
|
||||
60: 6000
|
||||
};
|
||||
|
||||
const secondDedicatedSubscriptionOptions = document.querySelectorAll('.secondDedicatedSubscriptionOptions');
|
||||
|
||||
secondDedicatedSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.secondDedicatedPrice');
|
||||
const price = secondDedicatedPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Dedicated 3 Subscription
|
||||
const thirdDedicatedPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const thirdDedicatedSubscriptionOptions = document.querySelectorAll('.thirdDedicatedSubscriptionOptions');
|
||||
|
||||
thirdDedicatedSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.thirdDedicatedPrice');
|
||||
const price = thirdDedicatedPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Dedicated 4 Subscription
|
||||
const fourthDedicatedPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const fourthDedicatedSubscriptionOptions = document.querySelectorAll('.fourthDedicatedSubscriptionOptions');
|
||||
|
||||
fourthDedicatedSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.fourthDedicatedPrice');
|
||||
const price = fourthDedicatedPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
});
|
@ -0,0 +1,45 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Standard Subscription
|
||||
const standardPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const standardSubscriptionOptions = document.querySelectorAll('.standardSubscriptionOptions');
|
||||
|
||||
standardSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.standardPrice');
|
||||
const price = standardPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
// Premium Subscription
|
||||
const premiumPrices = {
|
||||
1: 169,
|
||||
3: 400,
|
||||
6: 700,
|
||||
12: 1300,
|
||||
24: 2400,
|
||||
36: 3600,
|
||||
60: 6000
|
||||
};
|
||||
|
||||
const premiumSubscriptionOptions = document.querySelectorAll('.premiumSubscriptionOptions');
|
||||
|
||||
premiumSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.premiumPrice');
|
||||
const price = premiumPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
});
|
@ -0,0 +1,70 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Shared Basic Subscription
|
||||
const sharedBasicPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const sharedBasicSubscriptionOptions = document.querySelectorAll('.sharedBasicSubscriptionOptions');
|
||||
|
||||
sharedBasicSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.sharedBasicPrice');
|
||||
const price = sharedBasicPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Shared Plus Subscription
|
||||
const sharedPlusPrices = {
|
||||
1: 169,
|
||||
3: 400,
|
||||
6: 700,
|
||||
12: 1300,
|
||||
24: 2400,
|
||||
36: 3600,
|
||||
60: 6000
|
||||
};
|
||||
|
||||
const sharedPlusSubscriptionOptions = document.querySelectorAll('.sharedPlusSubscriptionOptions');
|
||||
|
||||
sharedPlusSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.sharedPlusPrice');
|
||||
const price = sharedPlusPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Shared Basic Subscription
|
||||
const sharedPowerPrices = {
|
||||
1: 89,
|
||||
3: 200,
|
||||
6: 350,
|
||||
12: 650,
|
||||
24: 1200,
|
||||
36: 1800,
|
||||
60: 3000
|
||||
};
|
||||
|
||||
const sharedPowerSubscriptionOptions = document.querySelectorAll('.sharedPowerSubscriptionOptions');
|
||||
|
||||
sharedPowerSubscriptionOptions.forEach(function (options) {
|
||||
options.addEventListener('change', function () {
|
||||
const selectedValue = parseInt(this.value);
|
||||
const priceElement = this.closest('.feature').querySelector('.sharedPowerPrice');
|
||||
const price = sharedPowerPrices[selectedValue];
|
||||
priceElement.textContent = `$${price}`;
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Loading…
Reference in New Issue