I’m an EDI Implementation consultant, transitioning from the closed-source proprietary space.
I’ve spent the last 5 years working specifically with Infor SXe (ERP) & Opentext BizManager (EDI Transformation & Messaging) in the area of Distribution - the usual 850, 855, 856, 810, 832, 852 , 844, 849, etc transactions.
I’ve been evaluating the integration offerings from Odoo & ERPNext and recently found Tryton.
I’m hoping to collaborate with others on the development of open source replacements for the above tools, and generally gain expertise on OCA modules related to integration, and Tryton-specific methods for the same.
My goal, ultimately, is to deliver code and procedures that implement as many of the above transactions, in ‘customer facing’ and ‘vendor facing’ perspectives, as is possible and practical, into Tryton, Odoo or a compatible derivative.
It’s a lofty goal to say the least, seeing as ‘EDI’ covers many different areas of functionality.
I’m starting with the API for Sales Order creation (850 Inbound)
I’ve already done quite a bit with the Odoo XMLRPC interface and am now attempting to port it to Proteus for use in Tryton.
Is there any interest form my fellow community members in such a project? Would a ‘EDI Module’ be useful for those using Tryton in a EDI/B2B/EAI context?
As a specifc request - does anyone have a proteus python example for creating a Sales Order and adding multiple line-items?
I’ve already found the below for basic reading of the sale.sale model, but need the proteus version of
execute_kw(db, uid, password, 'sale.order', 'create', [order_vals])
from proteus import Model, config
# Tryton server connection settings
HOST = '192.168.0.247'
PORT = '8000'
DB = 'tryton'
USER = 'admin'
PASSWORD = 'admin'
if __name__ == '__main__':
config.set_xmlrpc(
url='http://{user}:{password}@{host}:{port}/{db}/'.format(
user=USER, password=PASSWORD, host=HOST, port=PORT, db=DB))
Sale = Model.get('sale.sale')
domain = [] #[('state', '=', 'processing')]
max_num_of_records = 10
sales = Sale.find(domain, limit=max_num_of_records)
for sale in sales:
print("{number}: {date} {party} ({lines}) {currency}{value}".format(
number=sale.number, date=sale.sale_date, party=sale.party.rec_name,
lines=len(sale.lines), currency=sale.currency.symbol,
value=sale.total_amount))