Compare commits
	
		
			3 Commits
		
	
	
		
			6baee544c9
			...
			630a0435a2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 630a0435a2 | |||
| 61cf7696a5 | |||
| 3d9ad49020 | 
| @ -58,6 +58,23 @@ FROM garfield.inventory_items | |||||||
|   ) m USING (item_id) |   ) m USING (item_id) | ||||||
| ORDER BY inventory_items.name; | ORDER BY inventory_items.name; | ||||||
| 
 | 
 | ||||||
|  | -- How many *other* active inventory lines exist with the same barcode in the same location that are newer? | ||||||
|  | CREATE TEMPORARY VIEW more_recent_inventory_lines_with_same_barcode AS | ||||||
|  | SELECT | ||||||
|  |   a.item_id, | ||||||
|  |   -- It's important not to count(*) here because item_id is NULL | ||||||
|  |   -- when no other inventory lines exist. | ||||||
|  |   count(b.item_id) AS other_lines_count | ||||||
|  | FROM garfield.inventory_items AS a | ||||||
|  | LEFT JOIN garfield.inventory_items AS b | ||||||
|  |        ON a.item_barcode = b.item_barcode | ||||||
|  |       AND a.item_id != b.item_id | ||||||
|  |       AND a.location = b.location | ||||||
|  |       AND b.available | ||||||
|  |       AND b.bought > a.bought | ||||||
|  | GROUP BY a.item_id; | ||||||
|  | 
 | ||||||
|  | -- Get an array of how often items were sold over the last 14 days | ||||||
| CREATE TEMPORARY VIEW inventory_last_n_days_sales AS | CREATE TEMPORARY VIEW inventory_last_n_days_sales AS | ||||||
| WITH | WITH | ||||||
| last_n_days AS ( | last_n_days AS ( | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| SELECT | SELECT | ||||||
|   * |   * | ||||||
| FROM all_inventory_item_overview | FROM all_inventory_item_overview | ||||||
|  | LEFT JOIN more_recent_inventory_lines_with_same_barcode USING (item_id) | ||||||
| LEFT JOIN inventory_last_n_days_sales USING (item_id) | LEFT JOIN inventory_last_n_days_sales USING (item_id) | ||||||
| WHERE (%(location_id)s IS NULL OR location = %(location_id)s) | WHERE (%(location_id)s IS NULL OR location = %(location_id)s) | ||||||
|   AND available |   AND available | ||||||
|  | |||||||
| @ -26,6 +26,7 @@ | |||||||
| {% block content %} | {% block content %} | ||||||
| <table> | <table> | ||||||
|   <tr> |   <tr> | ||||||
|  |     <th>Stat</th> | ||||||
|     <th>ID</th> |     <th>ID</th> | ||||||
|     <th>Graph</th> |     <th>Graph</th> | ||||||
|     <th>Barcode</th> |     <th>Barcode</th> | ||||||
| @ -41,6 +42,10 @@ | |||||||
|   </tr> |   </tr> | ||||||
| {% for item in items %} | {% for item in items %} | ||||||
|   <tr> |   <tr> | ||||||
|  |     <td> | ||||||
|  |       {% if item.units_left == 0 %}<span title="Leerer aktiver Inventareintrag">🅾️</span>{% endif %} | ||||||
|  |       {% if item.other_lines_count != 0 %}<span title="{% if item.other_lines_count == 1 %}Neuerer Eintrag mit demselben Barcode ist aktiv{% else %}{{ item.other_lines_count }} Einträge mit demselben Barcode sind aktiv{% endif %}">🔄</span>{% endif %} | ||||||
|  |     </td> | ||||||
|     <td><a href="/inventory/item/{{ item.item_id }}">{{ item.item_id }}</a></td> |     <td><a href="/inventory/item/{{ item.item_id }}">{{ item.item_id }}</a></td> | ||||||
|     <td>{{ consumption_graph_svg(item.last_n_days_sales) }}</td> |     <td>{{ consumption_graph_svg(item.last_n_days_sales) }}</td> | ||||||
|     <td><code>{{ item.item_barcode }}</code></td> |     <td><code>{{ item.item_barcode }}</code></td> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user