def profit(cls): ld_alias = db.aliased(ListingDetails) mld_alias = db.aliased(ListingDetails) revenue = db.select([ld_alias.price - mld_alias.selling_fees]).where( db.and_(ld_alias.listing_id == cls.listing_id, mld_alias.id == ld_alias.id)).order_by( ld_alias.timestamp.desc()).limit(1).label('revenue') return revenue - cls.cost
def estimated_cost(cls): return db.select([ db.cast( ListingDetails.price * (1 + Vendor.avg_shipping + Vendor.avg_tax), CURRENCY) ]).where( db.and_(ListingDetails.listing_id == cls.id, Vendor.id == cls.vendor_id)).order_by( ListingDetails.timestamp.desc()).limit(1).label( 'estimated_cost')
def cost(cls): l_alias = db.aliased(Listing) rsl_alias = db.aliased(Listing) rs_alias = db.aliased(RelationshipSource) return db.select([ db.func.sum(rsl_alias.estimated_unit_cost * rs_alias.units * l_alias.quantity) ]).where( db.and_( rsl_alias.id == rs_alias.listing_id, rs_alias.relationship_id == cls.id, l_alias.id == cls.listing_id)).having( db.func.every( rsl_alias.estimated_unit_cost != None)).label('cost')
def expr(cls): return db.select([getattr( InventoryDetails, name)]).where(InventoryDetails.inventory_id == cls.id).order_by( InventoryDetails.timestamp.desc()).limit(1).label(name)
def expr(cls): return db.select([getattr( ListingDetails, name)]).where(ListingDetails.listing_id == cls.id).order_by( ListingDetails.timestamp.desc()).limit(1).label(name)