mirror of
				https://github.com/grocy/grocy.git
				synced 2025-10-31 02:36:54 +00:00 
			
		
		
		
	Test/review/rework (and hopefully finalized) new price handling
This commit is contained in:
		
							
								
								
									
										71
									
								
								migrations/0117.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								migrations/0117.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| DROP VIEW quantity_unit_conversions_resolved; | ||||
| CREATE VIEW quantity_unit_conversions_resolved | ||||
| AS | ||||
|  | ||||
| -- First: Product "purchase to stock" conversion factor | ||||
| SELECT | ||||
| 	p.id AS id, -- Dummy, LessQL needs an id column | ||||
| 	p.id AS product_id, | ||||
| 	p.qu_id_purchase AS from_qu_id, | ||||
| 	qu_from.name AS from_qu_name, | ||||
| 	p.qu_id_stock AS to_qu_id, | ||||
| 	qu_to.name AS to_qu_name, | ||||
| 	p.qu_factor_purchase_to_stock AS factor | ||||
| FROM products p | ||||
| JOIN quantity_units qu_from | ||||
| 	ON p.qu_id_purchase = qu_from.id | ||||
| JOIN quantity_units qu_to | ||||
| 	ON p.qu_id_stock = qu_to.id | ||||
| UNION -- Inversed | ||||
| SELECT | ||||
| 	p.id AS id, -- Dummy, LessQL needs an id column | ||||
| 	p.id AS product_id, | ||||
| 	p.qu_id_stock AS from_qu_id, | ||||
| 	qu_to.name AS from_qu_name, | ||||
| 	p.qu_id_purchase AS to_qu_id, | ||||
| 	qu_from.name AS to_qu_name, | ||||
| 	1 / p.qu_factor_purchase_to_stock AS factor | ||||
| FROM products p | ||||
| JOIN quantity_units qu_from | ||||
| 	ON p.qu_id_purchase = qu_from.id | ||||
| JOIN quantity_units qu_to | ||||
| 	ON p.qu_id_stock = qu_to.id | ||||
|  | ||||
| UNION | ||||
|  | ||||
| -- Second: Product specific overrides | ||||
| SELECT | ||||
| 	p.id AS id, -- Dummy, LessQL needs an id column | ||||
| 	p.id AS product_id, | ||||
| 	quc.from_qu_id AS from_qu_id, | ||||
| 	qu_from.name AS from_qu_name, | ||||
| 	quc.to_qu_id AS to_qu_id, | ||||
| 	qu_to.name AS to_qu_name, | ||||
| 	quc.factor AS factor | ||||
| FROM products p | ||||
| JOIN quantity_unit_conversions quc | ||||
| 	ON p.id = quc.product_id | ||||
| JOIN quantity_units qu_from | ||||
| 	ON quc.from_qu_id = qu_from.id | ||||
| JOIN quantity_units qu_to | ||||
| 	ON quc.to_qu_id = qu_to.id | ||||
|  | ||||
| UNION | ||||
|  | ||||
| -- Third: Default quantity unit conversion factors | ||||
| SELECT | ||||
| 	p.id AS id, -- Dummy, LessQL needs an id column | ||||
| 	p.id AS product_id, | ||||
| 	p.qu_id_stock AS from_qu_id, | ||||
| 	qu_from.name AS from_qu_name, | ||||
| 	quc.to_qu_id AS to_qu_id, | ||||
| 	qu_to.name AS to_qu_name, | ||||
| 	quc.factor AS factor | ||||
| FROM products p | ||||
| JOIN quantity_unit_conversions quc | ||||
| 	ON p.qu_id_stock = quc.from_qu_id | ||||
| 	AND quc.product_id IS NULL | ||||
| JOIN quantity_units qu_from | ||||
| 	ON quc.from_qu_id = qu_from.id | ||||
| JOIN quantity_units qu_to | ||||
| 	ON quc.to_qu_id = qu_to.id; | ||||
		Reference in New Issue
	
	Block a user