fixed bug where some items were missed in the basic configurations (concho incorrectly assumes that the quatity of each item was 1)
This commit is contained in:
		
							parent
							
								
									0a59fd5f23
								
							
						
					
					
						commit
						1e93d89169
					
				|  | @ -363,7 +363,7 @@ class Config(): | |||
| 
 | ||||
|     def get_price(self): | ||||
|         price = self.configurator.chassis.price | ||||
| 
 | ||||
|         print(self.cpu.uid, self.configurator.chassis.price, self.configurator.get_item_price(self.cpu.uid), self.ram_price) | ||||
|         price += self.num_servers * self.num_cpu_per_server * self.configurator.get_item_price(self.cpu.uid) + self.ram_price | ||||
|         assert price > 0.0 | ||||
|         return price | ||||
|  |  | |||
|  | @ -32,6 +32,12 @@ def parse_cpu_label(label: str) -> str: | |||
|     assert False, 'unhandled label : %s' % label | ||||
| 
 | ||||
| 
 | ||||
| def hpe_product_get_attr(hpe_product_node: dict, attr_name: str) -> str: | ||||
|     for attr_node in hpe_product_node['attributes']: | ||||
|         if attr_node['id'] == attr_name: | ||||
|             return attr_node['value'] | ||||
| 
 | ||||
| 
 | ||||
| class HpeCatalogParser(): | ||||
| 
 | ||||
|     def __init__(self, hpe_catalog: dict): | ||||
|  | @ -40,9 +46,16 @@ class HpeCatalogParser(): | |||
|     def get_base_price(self): | ||||
|         base_price = 0.0 | ||||
|         for component_db in self.hpe_catalog: | ||||
|             print('component %s' % component_db['id']) | ||||
|             for item_node in component_db['products']: | ||||
|                 if item_node['selected']: | ||||
|                     base_price += float(item_node['price']) | ||||
|                     quantity = 1 | ||||
|                     # quantity_as_str = item_node['selectedQuantity'] | ||||
|                     quantity_as_str = hpe_product_get_attr(item_node, 'selectedQty') | ||||
|                     if quantity_as_str: | ||||
|                         quantity = int(quantity_as_str) | ||||
|                     print('HpeCatalogParser.get_base_price : adding %d * %f (%s)' % (quantity, item_node['price'], item_node['desc'])) | ||||
|                     base_price += float(item_node['price']) * quantity | ||||
|         return base_price | ||||
| 
 | ||||
|     def parse_proc_change_options(self): | ||||
|  | @ -365,6 +378,7 @@ class HpeConfiguratorParser(): | |||
| 
 | ||||
|         one_cpu_price = configurator.get_item_price(configurator.base_config.cpu.uid) | ||||
|         ram_price = configurator.base_config.ram_price | ||||
|         print('HpeConfiguratorParser.parse : chassis_id=%s cpu.uid = %s, base_price=%f, ram_price=%f' % (chassis_id, configurator.base_config.cpu.uid, base_price, ram_price)) | ||||
|         configurator.chassis.price = base_price - configurator.base_config.num_cpus * one_cpu_price - ram_price | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue