def get_all_indents_docs(limit=None, snos=None): if snos is None: return docstore.get_docs_list_for_sno_doctype( serialno=None, doctype='INVENTORY INDENT', limit=limit ) else: rval = [] for sno in snos: rval.extend(docstore.get_docs_list_for_sno_doctype( serialno=sno, doctype='INVENTORY INDENT', limit=None )) return rval
def _load_snomap_legacy(self): # New form should construct directly from DB snomap_path = docstore.get_docs_list_for_sno_doctype( serialno=self._sno, doctype='SNO MAP', one=True).path with docstore.docstore_fs.open(snomap_path, 'r') as f: snomap_data = yaml.load(f) self._snomap = SerialNumberMap(snomap_data, self._sno)
def _load_snomap_legacy(self): # New form should construct directly from DB snomap_path = docstore.get_docs_list_for_sno_doctype( serialno=self._sno, doctype='SNO MAP', one=True ).path with docstore.docstore_fs.open(snomap_path, 'r') as f: snomap_data = yaml.load(f) self._snomap = SerialNumberMap(snomap_data, self._sno)
def get_production_order_manifest_set(serialno): workspace = temp_fs.makeopendir(get_tempname()) children = serialnos.get_child_serialnos(sno=serialno) manifests = [] for child in children: files = [] am = docstore.get_docs_list_for_sno_doctype( serialno=child, doctype='ASSEMBLY MANIFEST') if len(am) == 1: uam = am[0] copyfile(uam.fs, uam.path, workspace, uam.filename, overwrite=True) files = [workspace.getsyspath(uam.filename)] elif len(am) > 1: raise ValueError("Found {0} manifests for {2}".format( len(am), child)) dms = docstore.get_docs_list_for_sno_doctype( serialno=child, doctype='DELTA ASSEMBLY MANIFEST') if len(dms): for dm in dms: copyfile(dm.fs, dm.path, workspace, dm.filename, overwrite=True) files.append(workspace.getsyspath(dm.filename)) if len(files) > 1: wdmfile = merge_pdf( files, os.path.join(workspace.getsyspath('/'), os.path.splitext(am[0].filename)[0] + '-wdm.pdf'), remove_sources=True) manifests.append(wdmfile) elif len(files) == 1: manifests.append(files[0]) if len(manifests): output = merge_pdf(manifests, os.path.join(workspace.getsyspath('/'), serialno + '.pdf'), remove_sources=True) return output return None
def _load_order_yaml(self): try: order_path = docstore.get_docs_list_for_sno_doctype( serialno=self._sno, doctype='PRODUCTION ORDER YAML', one=True ).path except SerialNoNotFound: raise ProductionOrderNotFound with docstore.docstore_fs.open(order_path, 'r') as f: self._yaml_data = yaml.load(f)
def _check_has_doctype(self, sno): try: docs = docstore.get_docs_list_for_sno_doctype( serialno=sno, doctype=self.has_doctype) if len(docs) == 0: raise ValidationError( self._message + " Doctype '{0}' not found.".format(self.has_doctype)) except: raise ValidationError( self._message + " Doctype '{0}' not found.".format(self.has_doctype))
def _check_has_doctype(self, sno): try: docs = docstore.get_docs_list_for_sno_doctype( serialno=sno, doctype=self.has_doctype ) if len(docs) == 0: raise ValidationError( self._message + " Doctype '{0}' not found.".format(self.has_doctype) ) except: raise ValidationError( self._message + " Doctype '{0}' not found.".format(self.has_doctype) )
def _get_indent_cobom(self, session, verbose=True): try: cobom_path = docstore.get_docs_list_for_sno_doctype( serialno=self._sno, doctype='PRODUCTION COBOM CSV', one=True, session=session ).path except SerialNoNotFound: raise IndentNotFound except DocumentNotFound: raise IndentNotFound with docstore.docstore_fs.open(cobom_path, 'r') as f: cobom = load_cobom_from_file( f, os.path.splitext(os.path.split(cobom_path)[1])[0], verbose=verbose, generic=True ) self._cobom = cobom
def _get_indent_cobom(self, session, verbose=True): try: cobom_path = docstore.get_docs_list_for_sno_doctype( serialno=self._sno, doctype='PRODUCTION COBOM CSV', one=True, session=session).path except SerialNoNotFound: raise IndentNotFound except DocumentNotFound: raise IndentNotFound with docstore.docstore_fs.open(cobom_path, 'r') as f: cobom = load_cobom_from_file(f, os.path.splitext( os.path.split(cobom_path)[1])[0], verbose=verbose, generic=True) self._cobom = cobom
def get_all_production_orders_docs(limit=None): return docstore.get_docs_list_for_sno_doctype(serialno=None, doctype='PRODUCTION ORDER', limit=limit)
def get_latest_test_report(serialno=None): return docstore.get_docs_list_for_sno_doctype(serialno=serialno, doctype='TEST-RESULT', limit=1)
def get_all_test_reports(limit=None): return docstore.get_docs_list_for_sno_doctype(serialno=None, doctype='TEST-RESULT', limit=limit)