def register_unknown_part_no(self, vendor, part_no, descripton): """ Register missed part number """ if not isinstance(part_no, list): part_no = [part_no] for p in part_no: if p not in self.unknown_part_no: self.unknown_part_no[p] = set() for pp in part_no: self.unknown_part_no[p].add(pp) UnknownModel.mark_unknown(vendor.code, self.object, p, descripton)
def register_unknown_part_no(self, vendor: "Vendor", part_no: Union[List[str], str], descripton: Optional[str]): """ Register missed part number """ if not isinstance(part_no, list): part_no = [part_no] for p in part_no: if p not in self.unknown_part_no: self.unknown_part_no[p] = set() for pp in part_no: self.unknown_part_no[p].add(pp) UnknownModel.mark_unknown(vendor.code[0], self.object, p, descripton)
def get_data(self, **kwargs): data = {} # vendor, part_no -> description, count for c in UnknownModel._get_collection().find(): vendor = c["vendor"] if isinstance(c["vendor"], list): # Fix for bad vendor code in DB vendor = c["vendor"][0] k = (vendor, c["part_no"]) if k in data: data[k][1] += 1 else: data[k] = [c["description"], 1] data = sorted(((k[0], k[1], data[k][0], data[k][1]) for k in data), key=lambda x: -x[3]) return self.from_dataset( title=self.title, columns=[ "Vendor", "Part No", "Description", TableColumn("Count", format="numeric", align="right", total="sum"), ], data=data, )