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
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
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
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
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
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
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
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
def categories(self): r = session().query( *all_non_relation_columns(DocumentCategory)).order_by( DocumentCategory.short_name).all() session().commit() return r
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
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()
def find_all(self): c = all_non_relation_columns(Supplier) suppliers = session().query(*c).all() session().commit() return suppliers