Exemple #1
0
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
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
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
Exemple #5
0
 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)
Exemple #6
0
 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)
Exemple #7
0
 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))
Exemple #8
0
 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)
         )
Exemple #9
0
 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
Exemple #10
0
 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
Exemple #11
0
def get_all_production_orders_docs(limit=None):
    return docstore.get_docs_list_for_sno_doctype(serialno=None,
                                                  doctype='PRODUCTION ORDER',
                                                  limit=limit)
Exemple #12
0
def get_latest_test_report(serialno=None):
    return docstore.get_docs_list_for_sno_doctype(serialno=serialno,
                                                  doctype='TEST-RESULT',
                                                  limit=1)
Exemple #13
0
def get_all_test_reports(limit=None):
    return docstore.get_docs_list_for_sno_doctype(serialno=None,
                                                  doctype='TEST-RESULT',
                                                  limit=limit)