From a28b11afaed500d0ce043cf4a59f45894dff8f0b Mon Sep 17 00:00:00 2001 From: Jean-Paul Smets <jp@nexedi.com> Date: Tue, 15 Mar 2005 09:34:32 +0000 Subject: [PATCH] added some API info git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@2710 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/Resource.py | 124 +++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 2 deletions(-) diff --git a/product/ERP5/Document/Resource.py b/product/ERP5/Document/Resource.py index f734a382c9..4f26c7147a 100755 --- a/product/ERP5/Document/Resource.py +++ b/product/ERP5/Document/Resource.py @@ -195,10 +195,60 @@ class Resource(XMLMatrix, CoreResource, Variated): # Stock Management security.declareProtected(Permissions.AccessContentsInformation, 'getInventory') - def getInventory(self, at_date = None, section = None, node = None, payment = None, + def getInventory(self, at_date = None, + section = None, node = None, payment = None, node_category=None, section_category=None, payment_category = None, simulation_state=None, variation_text=None, - ignore_variation=0, **kw): + ignore_variation=0, standardise=0, **kw): + """ + resource (only in generic API in simulation) + + from_date (>=) - + + to_date (<) - + + at_date (<=) - only take rows which date is <= at_date + + section - only take rows in stock table which section_uid is equivalent to section + + node - only take rows in stock table which node_uid is equivalent to node + + payment - only take rows in stock table which payment_uid is equivalent to payment + + mirror_section + + section_category - only take rows in stock table which section_uid is in section_category + + node_category - only take rows in stock table which node_uid is in section_category + + payment_category - only take rows in stock table which payment_uid is in section_category + + mirror_section_category + + simulation_state - only take rows in stock table with specified simulation_state + + variation_text - only take rows in stock table with specified variation_text + this needs to be extended with some kind of variation_category ? + XXX this way of implementing variation selection is far from perfect + + variation_category - variation or list of possible variations + + ignore_variation - do not take into account variation in inventory calculation + + standardise - provide a standard quantity rather than an SKU + standardise_quantity + + omit_input + + omit_output + + query - not the propper name - we now use selection_domain and selection_report + (refer to catalog) + + **kw - if we want extended selection with more keywords (but bad performance) + check what we can do with buildSqlQuery + + """ if section_category is None: section_category = self.getPortalDefaultSectionCategory() if type(simulation_state) is type('a'): @@ -534,6 +584,76 @@ class Resource(XMLMatrix, CoreResource, Variated): return None + # Asset price API + security.declareProtected(Permissions.AccessContentsInformation, 'getInventoryAssetPrice') + def getInventoryAssetPrice(self, at_date = None, section = None, node = None, payment = None, + node_category=None, section_category=None, payment_category = None, + simulation_state=None, variation_text=None, + ignore_variation=0, standardise=0, **kw): + if section_category is None: + section_category = self.getPortalDefaultSectionCategory() + if type(simulation_state) is type('a'): + simulation_state = [simulation_state] + result = self.Resource_zGetInventory(resource_uid = [self.getUid()], + resource=None, + to_date=at_date, + section=section, node=node, payment=payment, + node_category=node_category, + section_category=section_category, payment_category=payment_category, + simulation_state=simulation_state, + variation_text=variation_text + ) + if len(result) > 0: + return result[0].inventory + return 0.0 + + security.declareProtected(Permissions.AccessContentsInformation, 'getFutureInventoryAssetPrice') + def getFutureInventoryAssetPrice(self, section = None, node = None, payment = None, + node_category=None, section_category=None, payment_category = None, simulation_state=None, + ignore_variation=0, **kw): + """ + Returns inventory asset price at infinite + """ + if section_category is None: + section_category = self.getPortalDefaultSectionCategory() + return self.getInventoryAssetPrice(at_date=None, section=section, node=node, payment=payment, + node_category=node_category, section_category=section_category, payment_category=payment_category, + simulation_state=list(self.getPortalFutureInventoryStateList())+ \ + list(self.getPortalReservedInventoryStateList())+ \ + list(self.getPortalCurrentInventoryStateList()), + **kw) + + security.declareProtected(Permissions.AccessContentsInformation, 'getCurrentInventoryAssetPrice') + def getCurrentInventoryAssetPrice(self, section = None, node = None, payment = None, + node_category=None, section_category=None, payment_category = None, ignore_variation=0, variation_text=None, **kw): + """ + Returns current inventory asset price + """ + + # Consider only delivered - forget date at this point + if section_category is None: + section_category = self.getPortalDefaultSectionCategory() + return self.getInventoryAssetPrice(simulation_state = self.getPortalCurrentInventoryStateList(), + section=section, node=node, payment=payment, + node_category=node_category, section_category=section_category, payment_category=payment_category, **kw) + + #return self.getInventory(at_date=DateTime(), section=section, node=node, payment=payment, + # node_category=node_category, section_category=section_category, payment_category=payment_category, **kw) + + security.declareProtected(Permissions.AccessContentsInformation, 'getAvailableInventoryAssetPrice') + def getAvailableInventoryAssetPrice(self, section = None, node = None, payment = None, + node_category=None, section_category=None, payment_category = None, + ignore_variation=0, **kw): + """ + Returns available inventory asset price, ie. current inventory - deliverable + """ + if section_category is None: + section_category = self.getPortalDefaultSectionCategory() + return self.getInventoryAssetPrice(at_date=DateTime(), section=section, node=node, payment=payment, + node_category=node_category, section_category=section_category, payment_category=payment_category, **kw) + + + # Industrial price API security.declareProtected(Permissions.AccessContentsInformation, 'getIndustrialPrice') def getIndustrialPrice(self, context=None, REQUEST=None, **kw): -- 2.30.9