Exemple #1
0
 def categories(self):
     r = session().query(
         *all_non_relation_columns(DocumentCategory)).order_by(
             DocumentCategory.short_name).all()
     session().commit()
     mainlog.debug("categories() : {}".format(r))
     return r
Exemple #2
0
    def find_by_id(self, supplier_id):
        mainlog.debug("SupplierService.find_by_id {}".format(supplier_id))

        c = all_non_relation_columns(Supplier)
        supplier = session().query(*c).filter(
            Supplier.supplier_id == supplier_id).one()
        session().commit()
        return supplier
Exemple #3
0
 def _columns_for_parts(self):
     columns = all_non_relation_columns(SupplyOrderPart)
     columns.append(Supplier.fullname.label('supplier_fullname'))
     columns.append(Supplier.supplier_id.label('supplier_id'))
     columns.append(
         SupplyOrder.expected_delivery_date.label('expected_delivery_date'))
     columns.append(SupplyOrder.accounting_label)
     columns.append(SupplyOrder.creation_date.label('creation_date'))
     return columns
Exemple #4
0
    def all_templates(self):
        # docs = session().query(TemplateDocument).order_by(TemplateDocument.reference).all()
        # return as_dto(docs)

        c = all_non_relation_columns(TemplateDocument)
        r = session().query(*c).select_from(TemplateDocument).order_by(
            TemplateDocument.reference).all()
        # if r:
        #     mainlog.debug("all_templates : keys={}".format(str(r[0].keys())))
        #     mainlog.debug("all_templates : {}".format(str(r)))
        session().commit()
        return r
Exemple #5
0
    def find_recent_orders(self):

        # The query is a bit complicated, but that's the price to pay
        # to freeze stuff before returning it

        c = all_non_relation_columns(SupplyOrder)
        r = session().query(Supplier.fullname.label('supplier_fullname'),
                            *c).select_from(SupplyOrder).join(Supplier).filter(
                                SupplyOrder.active == True).order_by(
                                    SupplyOrder.creation_date).limit(
                                        self.MAX_RESULTS).all()
        session().commit()
        return r
Exemple #6
0
    def find_by_id_frozen(self,identifier, commit=True, resilient=True):
        c = all_non_relation_columns(OperationDefinition)

        q = session().query(*c).filter(OperationDefinition.operation_definition_id == identifier)

        if resilient:
            opdef = q.first()
        else:
            opdef = q.one()

        if commit:
            session().commit()

        return opdef
Exemple #7
0
    def find_on_day(self, employee_id, ref_date):
        """ Find special activities which periods covers
        the given day, at least partially.
        """

        columns = all_non_relation_columns(SpecialActivity)

        day_start, day_end = day_span(ref_date)

        r = session().query(*columns).\
            filter(and_( SpecialActivity.employee_id == employee_id,
                         SpecialActivity.end_time >= day_start,
                         SpecialActivity.start_time <= day_end)).all()
        session().commit()

        return r
Exemple #8
0
    def save(self, document_id, file_handle, file_name, description):
        """ If document id is None (or 0), a new document is added to our database.
        Else an old one is overwritten.

        We ask for a file handle because we expect the file to
        come from the web server (that's the way cherrypy does it).
        """

        mainlog.debug(u"save(): id:{} fh:{} fn:{} d:{}".format(
            document_id, file_handle, file_name, description))

        c = all_non_relation_columns(Document)
        document = None
        if document_id:
            document = session().query(*c).filter(
                Document.document_id == document_id).one()
            session().commit()
        else:
            document = Document()
            session().add(document)

        document.filename = file_name
        document.upload_date = date.today()
        document.description = description or ""

        # I need the id to store on the file system.
        # But to get the server_location, I need to store on the filesystem
        # => catch 22

        document.server_location = "DUMMY"
        document.file_size = 666

        if not document.document_id:
            session().flush()  # get an id

        document.server_location, document.file_size = self._copy_file_to_storage(
            file_handle, document.document_id, file_name)
        doc_id = document.document_id
        audit_trail_service.record("DOCUMENT_CREATED",
                                   "",
                                   document.document_id,
                                   commit=False)
        session().commit()

        mainlog.debug("Saved to document {}".format(doc_id))
        return doc_id
Exemple #9
0
 def categories(self):
     r = session().query(
         *all_non_relation_columns(DocumentCategory)).order_by(
             DocumentCategory.short_name).all()
     session().commit()
     return r
Exemple #10
0
 def find_category_by_short_name(self, short_name: str):
     r = session().query(
         *all_non_relation_columns(DocumentCategory)).filter(
             DocumentCategory.short_name == short_name).one()
     session().commit()
     return r
Exemple #11
0
 def find_order_parts_for_order(self, supply_order_id):
     c = all_non_relation_columns(SupplyOrderPart)
     return session().query(SupplyOrderPart).filter(
         SupplyOrderPart.supply_order_id == supply_order_id).all()
Exemple #12
0
 def find_all(self):
     c = all_non_relation_columns(Supplier)
     suppliers = session().query(*c).all()
     session().commit()
     return suppliers