|
54 | 54 | """ |
55 | 55 |
|
56 | 56 | # https://www.fishbowlinventory.com/files/databasedictionary/2017/tables/part.html |
57 | | -PARTS_SQL = """ |
58 | | -SELECT |
59 | | - p.id, |
60 | | - p.num, |
61 | | - p.stdCost as StandardCost, |
62 | | - p.description, |
63 | | - p.typeID, |
64 | | - p.dateLastModified, |
65 | | - p.dateCreated, |
66 | | - p.len, |
67 | | - p.weight, |
68 | | - p.height, |
69 | | - p.width, |
70 | | - p.revision, |
71 | | - p.serializedFlag, |
72 | | - p.uomId, |
73 | | - p.weightUomId, |
74 | | - p.sizeUomId |
75 | | -FROM Part p |
76 | | -""" |
| 57 | +PARTS_SQL = "SELECT * FROM Part" |
| 58 | + |
77 | 59 |
|
78 | 60 | SERIAL_NUMBER_SQL = ( |
79 | 61 | "SELECT sn.id, sn.serialId, sn.serialNum, p.num as PartNum, " |
@@ -305,7 +287,7 @@ def send_message(self, msg): |
305 | 287 | # TODO: Convert to json |
306 | 288 | @require_connected |
307 | 289 | def send_request( |
308 | | - self, request, value=None, response_node_name=None, single=True, silence_errors=False, |
| 290 | + self, request, value=None, response_node_name=None, single=True, silence_errors=False |
309 | 291 | ): |
310 | 292 | """ |
311 | 293 | Send a simple request to the API that follows the standard method. |
@@ -436,7 +418,7 @@ def connect(self, username, password, host, port, timeout=5): |
436 | 418 |
|
437 | 419 | @require_connected |
438 | 420 | def send_request( |
439 | | - self, request, value=None, response_node_name=None, single=True, silence_errors=False, |
| 421 | + self, request, value=None, response_node_name=None, single=True, silence_errors=False |
440 | 422 | ): |
441 | 423 | """ |
442 | 424 | Send a simple request to the API that follows the standard method. |
@@ -707,11 +689,21 @@ def basic_query(self, sql, serializer): |
707 | 689 |
|
708 | 690 | @require_connected |
709 | 691 | def get_parts_all(self): |
710 | | - parts = self.basic_query(PARTS_SQL, objects.Part) |
| 692 | + parts = [] |
| 693 | + |
| 694 | + for row in self.send_query(PARTS_SQL): |
| 695 | + row.pop("customFields") |
| 696 | + row["StandardCost"] = row.pop("stdCost") |
| 697 | + |
| 698 | + obj = objects.Part(row) |
| 699 | + |
| 700 | + if not obj: |
| 701 | + continue |
| 702 | + |
| 703 | + parts.append((obj, row)) |
711 | 704 |
|
712 | 705 | uom_map = self.get_uom_map() |
713 | 706 | for part, row in parts: |
714 | | - |
715 | 707 | self.set_uom("uomId", "UOM", row, part, uom_map) |
716 | 708 | self.set_uom("weightUomId", "WeightUOM", row, part, uom_map) |
717 | 709 | self.set_uom("sizeUomId", "SizeUOM", row, part, uom_map) |
@@ -758,9 +750,7 @@ def get_products(self, lazy=True): |
758 | 750 | response_node_name="ProductGetRs", |
759 | 751 | ) |
760 | 752 |
|
761 | | - product_kwargs = { |
762 | | - "name": part_number, |
763 | | - } |
| 753 | + product_kwargs = {"name": part_number} |
764 | 754 | if lazy: |
765 | 755 | product_kwargs["lazy_data"] = get_product |
766 | 756 | else: |
|
0 commit comments