====== TradeItemManager ====== Deposited TradeItems in the Article Pool.\\ ^Name ^Meaning| |Type|Type of the job step.| |Name|Name of the job step that will appear in the job designer| |Description|Optional description for the job step.| |//AddEANs ://|True or False, if the EAN is not stored, which pass EAN to create, if set to True.| |//AutoCreateLocations ://|True or False, if location is not stored, pass the location to create if set to True.| |//DeleteMethod ://|Method for deleting TradeItmes from which Articlepool is to be used, by period. For all TradeItems older than 3 months, etc.| |//FieldHanlding ://|Override or Merge, Override overwrites already filled fields and keeps Merge both values (old and new).| |//OnlyBookLanguageTextByEAN ://|True or False, with True only the LanguageText is booked to the EAN.| |//OnlyBookPricelistpriceByEAN ://|True or False, with True only the PriceListPrice is booked to the EAN.| |//OverrideArticleNumberByEAN ://|True or False, with True the same EAN but different article number the old article number is overwritten with a new.| |//OverridePrimaryArticleIds ://|True or False, default False, if a new document is read, an error message is generated as soon as an EAN has already been assigned for another item. True, only in case of exception, should be well thought, since the error message for the same EAN with different article is repressed| |//PartnerToBook ://|Specify for which partner the TradeItem is to be booked.| ====== Supplier.TradeItemManager / Supplier.TradeItemServices ====== ==== Task / Function ==== The Supplier.TradeItemManager posts articles to the Article and ArticleDetail tables of the eBiss database using the Supplier.TradeItemSevices class. The Article table has a Relational 1: N connection to the ArticleDetail table using a foreign key (Article_Oid). The Supplier.TradeItemServices class performs the actual update process. \\ ====== Supplier.TradeItemServices ====== ==== Brief description of the operation ==== === 1) TradeItemPulk formation === Incoming article catalog (Document-Object tradeItemDoc) 1) is supplied to the Supplier.TradeItemServices in the constructor. Small article pulks (batches) are assembled in ArrayLists.\\ \\ **2)LoadCache (caches loaded)** \\ Three hash tables ((Dictionary objects)) are formed: * ArtikelHash (Key is the item number, Value is the Article object) * EanHash (Key is the EAN (([[wp> EAN]])), Value is the EAN) * ArticleDetailHash (Saves all articledetails, the key is composed of the combination article number_table_farbe_tab_size, Value is the ArticleDetail object) The article Hash and the EanHash are filled key-side with the information from the article catalog. After this, a database query is made, which returns all the article details already stored in the database to the items in the pulk and, if not present, into the three hash tables. === 3) BookMode-Check (determine the status of the relevant ArticleDetails) === The BookMode is determined from the information in EanHash and ArticleDetailHash. === The following bookmodes are given: === * **Add:**ArticleDetail is not present in the ItemDetailHash, The ArticleDetail is added to the database. * **Update:** The ArticleDetail is present in the ArticleDetailHash and something (except item number, color, price) has changed. Affected fields of the ArticleDetails are changed. * **Delete:** The ArticleDetail is present in the ArticleDetailHash and the positional action of the ArticleDetails in the article catalog is set to delete, ItemDetails item in the database is set to deleted. * **Ignore:** The ArticleDetail is present in the ArticleDetailHash (was determined by the combination article number_Farbe_Size) and the EAN in the article catalog is different, nothing is recorded in the database and Ignore is written into the log. * **Deny:** ArticleDetail does not exist in the ArticleDetailHash, but in the EanHash is an EAN, The entry in the database is denied (two ArticleDetails with the same expressions but different EAN's). Deny entry in the log file. * **DoubleArticleDetail:** The ArticleDetail is in the ArticleDetailHash, but the EAN is different than the article position in the article catalog, (two ArticleDetails with the same values but different EAN's). DoubleArticleDetail entry in the logfile. === 4) accounting process === The accounting process is completed by the results and the resulting BookMode, that is, either a new ArticleDetail is created in the database, if the article is not available in the ArticleHash, a new article is entered in the Article table, or fields of an ArticleDetails in the database are updated, or the entry is denied. For all deletions, only the item action is set to deleted, no article details and articles are deleted from the database. The ModificationTime is entered for all changes to a ArticleDetails and Articles.