|
1 | 1 | import React, { useState, useMemo, useEffect } from "react"; |
2 | 2 |
|
3 | | -// SKU definitions with capacity values (April 2026) |
| 3 | +// SKU definitions with capacity values (August 2026) |
4 | 4 | // Using new data model from specs.md |
5 | 5 | const SKUS = [ |
6 | 6 | // D365 ERP Premium |
@@ -89,6 +89,28 @@ const SKUS = [ |
89 | 89 | accrues_capacity: true, |
90 | 90 | min_licenses: 5, |
91 | 91 | }, |
| 92 | + { |
| 93 | + id: "operations-activity", |
| 94 | + name: "Dynamics 365 Operations – Activity", |
| 95 | + family: "Dynamics365", |
| 96 | + product_group: "ERPAdditionalUser", |
| 97 | + license_type: "Base", |
| 98 | + eligible_for_default: false, |
| 99 | + default: { db_gb: 0, file_gb: 0 }, |
| 100 | + accrual: { db_gb: 1, file_gb: 2 }, |
| 101 | + accrues_capacity: true, |
| 102 | + }, |
| 103 | + { |
| 104 | + id: "operations-device", |
| 105 | + name: "Dynamics 365 Operations – Device", |
| 106 | + family: "Dynamics365", |
| 107 | + product_group: "ERPAdditionalDevice", |
| 108 | + license_type: "Device", |
| 109 | + eligible_for_default: false, |
| 110 | + default: { db_gb: 0, file_gb: 0 }, |
| 111 | + accrual: { db_gb: 2, file_gb: 3 }, |
| 112 | + accrues_capacity: true, |
| 113 | + }, |
92 | 114 | // D365 ERP Add-on (capacity values vary widely based on add-on, so not included in default or accrual - users can add manually as needed) |
93 | 115 | { |
94 | 116 | id: "erp-sb2", |
@@ -211,19 +233,19 @@ const SKUS = [ |
211 | 233 | family: "Dynamics365", |
212 | 234 | product_group: "SalesProfessional", |
213 | 235 | license_type: "Attach", |
214 | | - eligible_for_default: false, |
215 | | - default: { db_gb: 0, file_gb: 0 }, |
| 236 | + eligible_for_default: true, |
| 237 | + default: { db_gb: 30, file_gb: 40 }, |
216 | 238 | accrual: { db_gb: 0, file_gb: 0 }, |
217 | 239 | accrues_capacity: false, |
218 | 240 | }, |
219 | 241 | { |
220 | 242 | id: "cs-pro", |
221 | | - name: "CS Professional", |
| 243 | + name: "Customer Service Professional", |
222 | 244 | family: "Dynamics365", |
223 | 245 | product_group: "CustomerServiceProfessional", |
224 | 246 | license_type: "Attach", |
225 | | - eligible_for_default: false, |
226 | | - default: { db_gb: 0, file_gb: 0 }, |
| 247 | + eligible_for_default: true, |
| 248 | + default: { db_gb: 30, file_gb: 40 }, |
227 | 249 | accrual: { db_gb: 0, file_gb: 0 }, |
228 | 250 | accrues_capacity: false, |
229 | 251 | }, |
@@ -397,16 +419,22 @@ const PRODUCT_TIERS = [ |
397 | 419 | priority: 2, |
398 | 420 | skuIds: ["commerce", "finance", "project-ops", "scm", "hr"], |
399 | 421 | }, |
| 422 | + { |
| 423 | + id: "erp-additional", |
| 424 | + name: "D365 ERP Additional Users/Devices", |
| 425 | + priority: 2.5, |
| 426 | + skuIds: ["operations-activity", "operations-device"], |
| 427 | + }, |
400 | 428 | { |
401 | 429 | id: "erp-addons", |
402 | 430 | name: "D365 ERP Add-ons", |
403 | | - priority: 2.5, |
| 431 | + priority: 3, |
404 | 432 | skuIds: ["erp-sb2", "erp-sb3", "erp-sb4", "erp-sb5"], |
405 | 433 | }, |
406 | 434 | { |
407 | 435 | id: "crm", |
408 | 436 | name: "D365 CRM", |
409 | | - priority: 3, |
| 437 | + priority: 4, |
410 | 438 | skuIds: [ |
411 | 439 | "sales-ent", |
412 | 440 | "sales-premium", |
@@ -544,7 +572,9 @@ const ProductRow = ({ sku, value, onChange, licenses }) => { |
544 | 572 | ? "bots" |
545 | 573 | : sku.license_type === "CapacityPack" |
546 | 574 | ? "packs" |
547 | | - : "users"; |
| 575 | + : sku.license_type === "Device" |
| 576 | + ? "devices" |
| 577 | + : "users"; |
548 | 578 |
|
549 | 579 | return ( |
550 | 580 | <div |
@@ -1459,7 +1489,7 @@ export default function DataverseCapacityCalculator() { |
1459 | 1489 |
|
1460 | 1490 | {/* Version indicator */} |
1461 | 1491 | <div className="mt-4 text-center text-xs text-gray-400"> |
1462 | | - Capacity values: April 2026 |
| 1492 | + Capacity values: August 2026 |
1463 | 1493 | </div> |
1464 | 1494 | </div> |
1465 | 1495 | </div> |
|
0 commit comments