def open_connections(self, cr, uid, ids, context=None): '''Open connections for ids manager, only one manager should be passed''' # TODO return more than one connection or validate only one manager for manager in self.browse(cr, uid, ids): source_hostname = manager.source_hostname source_port= manager.source_port source_database = manager.source_database source_login = manager.source_login source_password = manager.source_password try: source_connection = openerplib.get_connection(hostname=source_hostname, database=source_database, \ login=source_login, password=source_password, port=source_port) except: print 'error 111111111111' target_hostname = manager.target_hostname target_port= manager.target_port target_database = manager.target_database target_login = manager.target_login target_password = manager.target_password try: target_connection = openerplib.get_connection(hostname=target_hostname, database=target_database, \ login=target_login, password=target_password, port=target_port) except: print 'error 222222222222' return [source_connection, target_connection]
def open_connections(self, cr, uid, ids, context=None): '''Open connections for ids manager, only one manager should be passed''' # TODO return more than one connection or validate only one manager for manager in self.browse(cr, uid, ids): source_hostname = manager.source_hostname source_port = manager.source_port source_database = manager.source_database source_login = manager.source_login source_password = manager.source_password try: source_connection = openerplib.get_connection(hostname=source_hostname, database=source_database, \ login=source_login, password=source_password, port=source_port) except: print 'error 111111111111' target_hostname = manager.target_hostname target_port = manager.target_port target_database = manager.target_database target_login = manager.target_login target_password = manager.target_password try: target_connection = openerplib.get_connection(hostname=target_hostname, database=target_database, \ login=target_login, password=target_password, port=target_port) except: print 'error 222222222222' return [source_connection, target_connection]
def stock_take(dbname): stock_take_done=False stock_take=[] while not stock_take_done: pool, cr, uid = openerplib.get_connection(dbname) product_ids = scan_validate(pool, cr, uid, 'product.product', field='default_code', name='Product SKU') if product_ids is not None: qty_int=input_qty(1, None, msg="Enter qty: " ) if qty_int is None: stock_take_done=True stock_take.append( (product_ids[0], qty_int) ) else: stock_take_done=True cr.commit() cr.close() if len(stock_take)==0: return pool, cr, uid = openerplib.get_connection(dbname) location_ids = pool.get('stock.location').search(cr, uid, [('usage','=','internal')] ) locations = [(x.name,x.id) for x in pool.get('stock.location').browse(cr, uid, location_ids) ] location_id=select_from_options(locations) if location_id is not None: inventory_id=pool.get('stock.inventory').create(cr, uid, {'name':raw_input("Type Inventory Name: ")} ) for product_id, qty in stock_take: prod=pool.get('product.product').browse(cr, uid, product_id) item_id=pool.get('stock.inventory.line').create(cr, uid, {'location_id':location_id, 'inventory_id':inventory_id, 'product_id':product_id, 'product_uom': prod.uom_id.id, 'product_qty':qty } ) cr.commit() cr.close()
def stock_take(dbname): stock_take_done = False stock_take = [] while not stock_take_done: pool, cr, uid = openerplib.get_connection(dbname) product_ids = scan_validate(pool, cr, uid, 'product.product', field='default_code', name='Product SKU') if product_ids is not None: qty_int = input_qty(1, None, msg="Enter qty: ") if qty_int is None: stock_take_done = True stock_take.append((product_ids[0], qty_int)) else: stock_take_done = True cr.commit() cr.close() if len(stock_take) == 0: return pool, cr, uid = openerplib.get_connection(dbname) location_ids = pool.get('stock.location').search( cr, uid, [('usage', '=', 'internal')]) locations = [ (x.name, x.id) for x in pool.get('stock.location').browse(cr, uid, location_ids) ] location_id = select_from_options(locations) if location_id is not None: inventory_id = pool.get('stock.inventory').create( cr, uid, {'name': raw_input("Type Inventory Name: ")}) for product_id, qty in stock_take: prod = pool.get('product.product').browse(cr, uid, product_id) item_id = pool.get('stock.inventory.line').create( cr, uid, { 'location_id': location_id, 'inventory_id': inventory_id, 'product_id': product_id, 'product_uom': prod.uom_id.id, 'product_qty': qty }) cr.commit() cr.close()
def process_incoming(dbname): pool, cr, uid = openerplib.get_connection(dbname) in_ids=scan_validate(pool, cr, uid, 'stock.picking.in', name="Document Number") if in_ids is not None: process_partial(pool, cr, uid, in_ids, direction='in') cr.commit() cr.close()
def get_erpsession(request): session = request.session # if not session.get('erpsession',False): conn = get_connection(settings.ERP_HOST, port=settings.ERP_PORT, database=settings.ERP_DATABASE, login=settings.ERP_LOGIN, password=settings.ERP_PASSWORD) session['erpsession'] = conn return session['erpsession']
def post(self, request, format=None): hostname = db_setting.configrest().host() dbname = db_setting.configrest().database_name() login = request.data["usn"] login_d = base64.b64decode(login) usrpwd = request.data["pw"] usrpwd_d = base64.b64decode(usrpwd) connection = openerplib.get_connection(hostname=hostname, database=dbname,login=login_d, password=usrpwd_d ,port=8069) user_model = connection.get_model("res.users") # sale = connection.get_model("sales.activity") ids = user_model.search([("company_id", "=", 1)]) # # # print ids,"BBBBBBBBBBBBBBBBBBBBB" # # # if ids: # # user_info = user_model.read([0]) # test = sale.read([3401,3400]) # print test,"iniii sale order" # # # print user_info,"----------->>>" # # name=user_info[0]["name"] # # else: # name="gk ada" # print user_info,"BBBBBBBBBBBBBBBBBBBBBBBBBB" return Response({"success": True})
def run(filename=None, host='localhost', db=None, login=None, passw=None): global line if filename: try: data=csv.reader(open(filename), delimiter=',', quotechar='"') except IOError: print "No such file exists :%s",filename else: return False name = 0 conn=openerplib.get_connection(hostname=host, database=db, login=login, password=passw) import ast prchrk_model=conn.get_model("jkp.pracharak") for row in data: pracharak_ids=[] try: pracharak_ids = prchrk_model.search([('name','=',row[name])]) if not pracharak_ids: pracharak_id=prchrk_model.create({'name':row[name]}) pracharak_ids=[pracharak_id] except: pass temp={'name':pracharak_ids[0]}
def do_query(self, cr, uid, ids, context=None): for job in self.browse(cr, uid, ids): oer_local = openerplib.get_connection(hostname="localhost", port=job.local_server_id.port, database=cr.dbname, login=job.local_server_id.login, password=job.local_server_id.password) etl = oer_etl(oer_local) result = "" rows = etl.get_rows(job.id) for i, row in enumerate(rows): if i == 0: for r in row: result += r + " | " result = result and result[:-3] + '\n' or '\n' for r in row: if type(row[r]) is unicode or type(row[r]) is str: result += row[r] + " | " else: result += str(row[r]) + " | " result = result and result[:-3] + '\n' or '\n' if job.query_result_size and i > job.query_result_size: result += '...\n' break result += "(%s rows retrieved)"%len(rows) if job.query_encoding and type(result) is not unicode: result = result.decode(job.query_encoding) self.write(cr, uid, [job.id], {'query_result': result}, context=context) return True
def conn(self): return openerplib.get_connection( hostname="localhost", protocol="xmlrpc", database="test", login="******", password="******")
def get_connection(database, hostname=None, port=None, login=None, password=None): parser = SafeConfigParser() pwd = os.environ.get('ETL_INI_CONFIG_PWD', False) or os.environ['PWD'] filename = os.path.join(pwd, 'config', 'etl.ini') if not os.path.exists(filename): filename = os.path.join(os.path.dirname(__file__), 'config.ini') parser.read(filename) if hostname is None: hostname = parser.get(database, 'host') if port is None: port = parser.getint(database, 'port') if login is None: login = parser.get(database, 'username') if password is None: password = parser.get(database, 'password') return openerplib.get_connection(hostname=hostname, port=port, database=database, login=login, password=password)
def do_query(self, cr, uid, ids, context=None): for job in self.browse(cr, uid, ids): oer_local = openerplib.get_connection( hostname="localhost", port=job.local_server_id.port, database=cr.dbname, login=job.local_server_id.login, password=job.local_server_id.password) etl = oer_etl(oer_local) result = "" rows = etl.get_rows(job.id) for i, row in enumerate(rows): if i == 0: for r in row: result += r + " | " result = result and result[:-3] + '\n' or '\n' for r in row: if type(row[r]) is unicode or type(row[r]) is str: result += row[r] + " | " else: result += str(row[r]) + " | " result = result and result[:-3] + '\n' or '\n' if job.query_result_size and i > job.query_result_size: result += '...\n' break result += "(%s rows retrieved)" % len(rows) if job.query_encoding and type(result) is not unicode: result = result.decode(job.query_encoding) self.write(cr, uid, [job.id], {'query_result': result}, context=context) return True
def update(request,model): hostname = db_setting.configrest().host() dbname = db_setting.configrest().database_name() login = request.data["usn"] usrpwd = request.data["pw"] login_d = base64.b64decode(login) usrpwd_d = base64.b64decode(usrpwd) # login_d = 'admin' # usrpwd_d = 'supra' # 'ids':123 connection = openerplib.get_connection(hostname=hostname, database=dbname,login=login_d, password=usrpwd_d,port=8069) model_erp = connection.get_model(model) # print "id=",request.data["ids"],"++++ vals =",request.data["vals"] # idbaru = model_erp.write(3489,{ # 'beforeactualselasa':[(1,4352,{'name':'blanalnla'}),(0,0,{'partner_id':1023,'location':'sunter','name':'maen dlu ah'})], # # 'beforeactualselasa':[], # # 'beforeactualrabu':[], # # 'beforeactualkamis':[], # # 'beforeactualjumat':[], # }) idbaru = model_erp.write(request.data["ids"],request.data["vals"]) return Response ({"sukses":True})
def get_server_connection(config={}): config.setdefault('hostname', 'localhost') config.setdefault('login', 'admin') config.setdefault('password', 'admin') config.setdefault('user_id', 1) config.setdefault('protocol', 'xmlrpc') config.setdefault('port', 8069) return openerplib.get_connection(**config)
def process_delivery(dbname): pool, cr, uid = openerplib.get_connection(dbname) out_ids=scan_validate(pool, cr, uid, 'stock.picking.out', name="Document Number") if out_ids is not None: process_partial(pool, cr, uid, out_ids, direction='out') cr.commit() cr.close()
def run(filename=None, host='localhost', db=None, login=None, passw=None): global line if filename: try: data=csv.reader(open(filename), delimiter=',', quotechar='"') except IOError: print "No such file exists :%s",filename else: return False reg = 0 f_name = 1 l_name = 2 gen = 3 prof = 4 rel = 5 old=6 conn=openerplib.get_connection(hostname=host, database=db, login=login, password=passw) import ast dev_model=conn.get_model("jkp.devotees") fam_model=conn.get_model("devotee.family") prof_model=conn.get_model("profession.profession") incomp=[] for val in data: count_ids=[] dev_ids=dev_model.search([ ('reg_no','=',val[0]) ]) if dev_ids: prof_ids=prof_model.search([('name','=',val[4] )]) print "found profession at...............",prof_ids if not prof_ids: prof_id=prof_model.create({'name':val[4]}) prof_ids=[prof_id] full_name=val[1]+ ' ' +val[2] family={ 'm2o_jkp':dev_ids[0], 'default_name':full_name, 'age':val[6], 'relation':val[5], 'dev_profession':prof_ids and prof_ids[0], } try: fam_id=fam_model.create(family) print family print "created family member is ........................",fam_id except: " uncreated family members .....",incomp.append(fam_id) pass else: print "devotee not found with reg no :",val[0] " uncreated family members .....",incomp.append(fam_id)
def add_client(self): conn = openerplib.get_connection(hostname=self.config.host, protocol=self.config.protocol, port=self.config.port, database=self.config.database, login=self.config.user, password=self.config.password) try: ping_odoo(conn) except Exception, e: logger.warn('Could not ping Odoo (%s), e:`%s`', self.config.name, format_exc(e))
def load(self, cr, uid, ids): for job in self.browse(cr, uid, ids): oer_local = openerplib.get_connection(hostname="localhost", port=job.local_server_id.port, database=cr.dbname, login=job.local_server_id.login, password=job.local_server_id.password) etl = oer_etl(oer_local) for row in etl.get_rows(job.id): new_id = etl.create(job.id, etl.get_values(job.id,row), pk=row.get('pk',False)) self.action_done(cr, uid, ids) return True
def __init__(self, dbname, user, pwd): self.connection = openerplib.get_connection(hostname=hostname, database=database, login=user, password=pwd, port=80) self.product_model = self.connection.get_model("product.product") self.user_model = self.connection.get_model("res.users") self.stock_change_product_qty = self.connection.get_model("stock.change.product.qty") self.relevant_fields = { "product": [ 'name', 'default_code', 'type', 'qty_available', 'loc_case', 'loc_rack', 'loc_row', 'ean13', 'list_price' ], "user": [ 'name' ] }
def get_connection(self): self.ensure_one() import openerplib return openerplib.get_connection( hostname=self.server, database=self.database, login=self.username, password=self.password, port=self.port, )
def GetModel(request,model,mode=None,fields=[]): hostname = db_setting.configrest().host() dbname = db_setting.configrest().database_name() login = request.data["usn"] usrpwd = request.data["pw"] fields = request.data["fields"] # login_d = 'ricky' # usrpwd_d = 'ricky' login_d = base64.b64decode(login) usrpwd_d = base64.b64decode(usrpwd) connection = openerplib.get_connection(hostname=hostname, database=dbname,login=login_d, password=usrpwd_d ,port=8069) # print request.session.session_key,"ini koneksi" model_erp = connection.get_model(model) if mode==None: ids = model_erp.search([],0,100) elif mode=="ids": ids =map(int, request.data["ids"]) elif mode=="search": # searchfield = request.data['searchfield'] # searchoperator = request.data['searchoperator'] # searchcateg = request.data['searchcateg'] # if searchcateg.isdigit(): # searchcateg = int(request.data['searchcateg']) # { # 'q':[ # '|', # ['customer','=',True], # ['is_company','=',True], # ] # } # ['|',['customer','=',True],['is_company','=',False]] # domainxxx = request.data['q'] # { # 'q':[ # ['login','=','Ricky'], # ['active','=',True] # ] # } # print request.data,"+================================" ids = model_erp.search(request.data['domain']) elif mode == "getupdate": last_id= request.data['ids'] ids = model_erp.search([('id','>',last_id)],0,5) else: print "Oops! That was no valid number. Try again..." if fields ==[]: read_model = model_erp.read(ids) else: read_model = model_erp.read(ids,fields) return Response ({"sukses":True,"Result":read_model})
def _connection(self): ''' Returns connection object ''' return(openerplib.get_connection( hostname = self.settings['HOST'], port = self.settings['PORT'], database = self.settings['DB'], login = self.settings['USER'], password = self.settings['PASSWORD'], ))
def get_nodes(self, request): nodes = [] service = get_connection("localhost", database="test").get_service("common") menu_obj = request.erpsession.get_model("internal.home.menu") # top_menu_id = menu_obj.search([("name","=","Top menu")]) menus = menu_obj.search_read([], ['name', 'complete_name', 'parent_id', "action"]) for menu in menus: parent_id = menu['parent_id'] and menu['parent_id'][0] or None node = NavigationNode(menu['name'], '/', menu['id'], parent_id=parent_id) nodes.append(node) return nodes
def get_server_connection(config_file): config = ConfigParser.RawConfigParser({'protocol' : 'xmlrpc', 'port' : 8069}) config.read(config_file) hostname = config.get('Connection', 'hostname') database = config.get('Connection', 'database') login = config.get('Connection', 'login') password = config.get('Connection', 'password') protocol = config.get('Connection', 'protocol') port = int(config.get('Connection', 'port')) return openerplib.get_connection(hostname=hostname, database=database, login=login, password=password, protocol=protocol, port=port)
def get_connection(self, cr, uid, ids, context=None): if not ids: raise except_orm(_("Cannot connect"), _("Invalid id passed.")) conf = self.read(cr, uid, ids[0], context=None) return openerplib.get_connection( hostname=conf['server'], database=conf['database'], login=conf['username'], password=conf['password'], port=conf['port'], )
def process_incoming(dbname): pool, cr, uid = openerplib.get_connection(dbname) in_ids = scan_validate(pool, cr, uid, 'stock.picking.in', name="Document Number") if in_ids is not None: process_partial(pool, cr, uid, in_ids, direction='in') cr.commit() cr.close()
def create(request,model): hostname = db_setting.configrest().host() dbname = db_setting.configrest().database_name() login = request.data["usn"] usrpwd = request.data["pw"] login_d = base64.b64decode(login) usrpwd_d = base64.b64decode(usrpwd) connection = openerplib.get_connection(hostname=hostname, database=dbname,login=login_d, password=usrpwd_d,port=8069) model_erp = connection.get_model(model) idbaru = model_erp.create(request.data['vals']) return Response ({"sukses":True})
def get_server_connection(config_file): config = ConfigParser.RawConfigParser({'protocol' : 'xmlrpc', 'port' : 8069}) config.read(config_file) hostname = config.get('Connection', 'hostname') database = config.get('Connection', 'database') login = config.get('Connection', 'login') password = config.get('Connection', 'password') protocol = config.get('Connection', 'protocol') port = int(config.get('Connection', 'port')) #uid = int(config.get('Connection', 'uid')) return openerplib.get_connection(hostname=hostname, database=database, login=login, password=password, protocol=protocol, port=port)
def get_connection(self, cr, uid, ids, context=None): if not ids: raise except_orm( _("Cannot connect"), _("Invalid id passed.")) conf = self.read(cr, uid, ids[0], context=None) return openerplib.get_connection( hostname=conf['server'], database=conf['database'], login=conf['username'], password=conf['password'], port=conf['port'], )
def connect_to_openerp(self, cr, uid, inst_id, parameters, context=None): param = parameters base_url = param[inst_id]['base_url'] server_port = int(param[inst_id]['server_port']) admin_name = param[inst_id]['admin_name'] admin_pass = param[inst_id]['admin_pass'] database = param[inst_id]['database'] #domain = database + '.' + param[inst_id]['base_url'] domain = base_url connection = openerplib.get_connection(hostname=domain, database=database, \ login=admin_name, password=admin_pass, port=server_port) return connection
def _connect(self): user_id = None if self.user_id and self.user_id>0: user_id = self.user_id self.client = openerplib.get_connection(hostname=self.host, port=self.port, database=self.database, login=self.login, password=self.password, protocol=self.protocol, user_id=user_id) self.client.check_login(force=False)
def process_delivery(dbname): pool, cr, uid = openerplib.get_connection(dbname) out_ids = scan_validate(pool, cr, uid, 'stock.picking.out', name="Document Number") if out_ids is not None: process_partial(pool, cr, uid, out_ids, direction='out') cr.commit() cr.close()
def run(hostname,port,database,login,password,log_print=True): oer_local = openerplib.get_connection(hostname=hostname, port=port, database=database, login=login, password=password) etl = oer_etl(oer_local, log_print=log_print) for job in etl.get_jobs(): if etl.get_job_state(job['id']) != 'ready': continue oer_local.get_model('etl.job').action_start([job['id']]) for row in etl.get_rows(job['id']): new_id = etl.create(job['id'], etl.get_values(job['id'],row), pk=row.get('pk',False)) oer_local.get_model('etl.job').action_done([job['id']]) print "Finish etl_cron"
def get_connection(database, hostname=None, port=None, login=None, password=None): parser = SafeConfigParser() filename = os.path.join(os.path.dirname(__file__), 'config.ini') parser.read(filename) if hostname is None: hostname = parser.get(database, 'host') if port is None: port = parser.getint(database, 'port') if login is None: login = parser.get(database, 'username') if password is None: password = parser.get(database, 'password') return openerplib.get_connection(hostname=hostname, port=port, database=database, login=login, password=password)
def load(self, cr, uid, ids): for job in self.browse(cr, uid, ids): oer_local = openerplib.get_connection( hostname="localhost", port=job.local_server_id.port, database=cr.dbname, login=job.local_server_id.login, password=job.local_server_id.password) etl = oer_etl(oer_local) for row in etl.get_rows(job.id): new_id = etl.create(job.id, etl.get_values(job.id, row), pk=row.get('pk', False)) self.action_done(cr, uid, ids) return True
def run(self): try: server_address = supplier.server_address # ========== Code à recommenter après la résolution du bug OVH ========== # Retrait du prefixe http:// et extraction du port (optionnel) address_split = server_address.split('://')[-1].split( ':') # [adresse, port] ip_address = socket.gethostbyname(address_split[0]) if len(address_split) == 2: port = ':' + address_split[1] elif ip_address == socket.gethostbyname( 's-alpha.openfire.fr'): # Sur s-alpha le port 8010 est utilisé pour la connexion xmlrpc v10 port = ':8010' else: port = '' server_address = "http://%s%s" % (ip_address, port) # ======================================================================= i = server_address.find('://') if i == -1: # Protocole xmlrpcs par defaut protocol = 'xmlrpcs' address = server_address else: # Protocole xmlrpc ou xmlrpcs en fonction de http ou https protocol = server_address[:i].replace('http', 'xmlrpc') address = server_address[i + 3:] j = address.find(':') if j == -1: port = 443 if server_address[:i] == 'https' else 80 else: port = int(address[j + 1:]) address = address[:j] cli = openerplib.get_connection( hostname=address, port=port, protocol=protocol, database=supplier.db_name, login=supplier.login, password=supplier.new_password or supplier.password) # Opération pour vérifier la connexion self.result = cli.get_model('res.users').search( []) and cli or '' except xmlrpclib.Fault, exc: self.result = exc.faultCode
def run(hostname, port, database, login, password, log_print=True): oer_local = openerplib.get_connection(hostname=hostname, port=port, database=database, login=login, password=password) etl = oer_etl(oer_local, log_print=log_print) for job in etl.get_jobs(): if etl.get_job_state(job['id']) != 'ready': continue oer_local.get_model('etl.job').action_start([job['id']]) for row in etl.get_rows(job['id']): new_id = etl.create(job['id'], etl.get_values(job['id'], row), pk=row.get('pk', False)) oer_local.get_model('etl.job').action_done([job['id']]) print "Finish etl_cron"
def get_connection(self, server_id): conn = False server = self.get_server(server_id) if server['type'] == 'xmlrpc': if self.__connections.has_key(server_id): conn = self.__connections[server_id] else: conn = openerplib.get_connection(hostname=server['host'], port=server['port'], database=server['database'], login=server['login'], password=server['password']) self.__connections[server_id] = conn elif server['type'] == 'odbc': conn = pyodbc.connect(server['str_connection']) elif server['type'] == 'postgresql': conn = psycopg2.connect(server['str_connection']) _logger.debug('Server Connection %s',conn) return conn
def get_connection(self, server_id): conn = False server = self.get_server(server_id) if server['type'] == 'xmlrpc': if self.__connections.has_key(server_id): conn = self.__connections[server_id] else: conn = openerplib.get_connection(hostname=server['host'], port=server['port'], database=server['database'], login=server['login'], password=server['password']) self.__connections[server_id] = conn elif server['type'] == 'odbc': conn = pyodbc.connect(server['str_connection']) elif server['type'] == 'postgresql': conn = psycopg2.connect(server['str_connection']) _logger.debug('Server Connection %s', conn) return conn
def get_connection(config_file): file_dir = os.path.dirname(os.path.realpath(__file__)) file_path = '%s/%s' % (file_dir, config_file) config = ConfigParser.ConfigParser() config.readfp(open(file_path)) hostname = config.get('server', 'hostname') port = int(config.get('server', 'port')) database = config.get('server', 'database') login = config.get('server', 'login') password = config.get('server', 'password') user_id = int(config.get('server', 'user_id')) protocol = config.get('server', 'protocol') connection = openerplib.get_connection(hostname=hostname, port=port, database=database, login=login, password=password, protocol=protocol, user_id=user_id) return connection
groups = [ 'pabi_base.group_nstda_admin_business', 'pabi_base.group_budget_manager', ] # User to assign users = [ 'admin', '005859', ] # ============================================================== connection = openerplib.get_connection( hostname="pabi2o-test.intra.nstda.or.th", port=80, database="PABI2", login="******", password="******", protocol="jsonrpc", user_id=1) # connection = openerplib.get_connection( # hostname="localhost", # port=8069, # database="PABI2_int7", # login="******", # password="******", # protocol="jsonrpc", # user_id=1) connection.check_login() User = connection.get_model('res.users') Data = connection.get_model('ir.model.data')
#!/usr/bin/python # -*- encoding: utf-8 -*- import csv import openerplib import codecs con = openerplib.get_connection(hostname='localhost',port=8069,database='diste9',login='******',password='******') con.check_login() # Crea instancia de clientes. clientes_obj=con.get_model('res.partner') f = open('/home/cmike/src/trunk/odoo8/importar/clientes2.csv','rb') reader = csv.reader(f,delimiter=',') index = 1 # Lee cada registro. for cadena in reader: if index > 0: try: vals_partner = { 'is_customer': 1, 'name': cadena[8], 'street': cadena[6], 'ref': cadena[5],
# fmt = '%(asctime)s - %(filename)s:%(lineno)s - %(name)s - %(message)s' fmt = '%(asctime)s: %(message)s' formatter = logging.Formatter(fmt) handler.setFormatter(formatter) logger = logging.getLogger('test_inventory') logger.addHandler(handler) logger.setLevel(logging.DEBUG) HOST = '127.0.0.1' PORT = 8069 DB = 'pzfresh_produce_db' USER = '******' PASS = '******' conn = openerplib.get_connection(hostname=HOST, port=PORT, database=DB, login=USER, password=PASS) print conn.login, conn.password conn.check_login() print "Logged in as %s(uid:%d)" % (conn.login, conn.user_id) # workflow_log = conn.get_model('workflow.logs') # log_id = workflow_log.create(values) # log_ids = workflow_log.search([('res_id', '=', '1')]) # log_id = workflow_log.read([id], ['field_name']) # print log_id # category_id = category_obj.search([('name', 'like', '骨干')])[0] # category_obj.write([category_id], {'name': '骨干网络项目'}) # category_obj.create({'name': 'test1', 'name_id': 18}) # category_obj.unlink([23])
# Folder where image are stored, can be absolute path # CHANGE THIS FOLDER RELATED TO FOLDER FOLDER = "E:\/test_image\/" # In this example the matching is done with the default_code but could be # any field that is a unique key on product.product MATCH_FIELD = 'fal_old_ref' # need openerp-client-lib installed, initialized the connection, pass the # uid to avoid useless login call connection = openerplib.get_connection(hostname="xxx.xxx.xxx.xxx", port=1234, database="YOURDATABASENAME", login="******", password="******", protocol="jsonrpc", user_id=1) # get model proxy product_model = connection.get_model('product.template') # Get all the file in the folder and product reference onlyfiles = [f for f in listdir(FOLDER) if isfile(join(FOLDER, f))] refs = [f.split('.')[0] for f in onlyfiles] # Read all information needed on product, performing this outside the loop # for performance reason O(1) query instead of O(n) query product_info = product_model.search_read(
#mail_handler.setLevel(logging.ERROR) #app.logger.addHandler(mail_handler) from logging.handlers import TimedRotatingFileHandler file_handler = TimedRotatingFileHandler(app.config['LOG_FILE'], when='midnight', interval=1, backupCount=7) file_handler.setLevel(logging.INFO) app.logger.addHandler(file_handler) #from logging.handlers import SysLogHandler #syslog_handler = SysLogHandler() #app.logger.addHandler(syslog_handler) # Connect to OpenERP connection = openerplib.get_connection(hostname=app.config['ERP_HOST'], database=app.config['ERP_DB'], login=app.config['ERP_USER'], password=app.config['ERP_PASSWORD']) # Models employee_model = connection.get_model('hr.employee') employee_tag_model = connection.get_model('hr.employee.category') user_model = connection.get_model('res.users') attendance_model = connection.get_model('hr.attendance') timesheet_model = connection.get_model('hr_timesheet_sheet.sheet') department_model = connection.get_model('hr.department') address_model = connection.get_model('res.partner') # Consistent sets departments = department_model.search_read([]) if 'TIMESHEET_IMPORT_FILE' in app.config: csvfile = open(app.config['TIMESHEET_IMPORT_FILE'], 'rb')
logging.basicConfig(level=logging.INFO) #from logging.handlers import SMTPHandler #mail_handler = SMTPHandler(app.config['SMTP_HOST'], app.config['SMTP_USER'], app.config['ADMINS'], 'Portero Error') #mail_handler.setLevel(logging.ERROR) #app.logger.addHandler(mail_handler) from logging.handlers import TimedRotatingFileHandler file_handler = TimedRotatingFileHandler(app.config['LOG_FILE'], when='midnight', interval=1, backupCount=7) file_handler.setLevel(logging.INFO) app.logger.addHandler(file_handler) #from logging.handlers import SysLogHandler #syslog_handler = SysLogHandler() #app.logger.addHandler(syslog_handler) # Connect to OpenERP connection = openerplib.get_connection(hostname=app.config['ERP_HOST'], database=app.config['ERP_DB'], login=app.config['ERP_USER'], password=app.config['ERP_PASSWORD']) # Models employee_model = connection.get_model('hr.employee') employee_tag_model = connection.get_model('hr.employee.category') user_model = connection.get_model('res.users') attendance_model = connection.get_model('hr.attendance') timesheet_model = connection.get_model('hr_timesheet_sheet.sheet') department_model = connection.get_model('hr.department') address_model = connection.get_model('res.partner') # Consistent sets departments = department_model.search_read([]) if 'TIMESHEET_IMPORT_FILE' in app.config: csvfile = open(app.config['TIMESHEET_IMPORT_FILE'], 'rb')
# -*- coding: utf-8 -*- # This script gives you a basic connection to the odoo server with the provided credentials from os import environ import openerplib con = openerplib.get_connection( hostname=environ["ODOO_HOST"], database=environ["ODOO_DATABASE"], login=environ["ODOO_LOGIN"], password=environ["ODOO_PASSWORD"], port=int( environ["ODOO_PORT"] ), )
# Get Odoo user name and password if args.username: odoo_username = args.username else: odoo_username = raw_input('Odoo User: '******'Odoo Password: '******'me' response = requests.get(url, auth=HTTPBasicAuth(TOGGL_API_TOKEN, 'api_token')) if response.status_code != 200: sys.exit('Login failed. Check your API key.') response = response.json() # print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')) # Workspace id try: wid = [item['id'] for item in response['data']['workspaces'] if item['admin'] == True and item['name'] == TOGGL_WORKSPACE][0] except IndexError:
import openerplib import time connection = openerplib.get_connection(hostname="pabi2o.nstda.or.th", port=443, database="PABI2_MIG", login="******", password="******", protocol="xmlrpcs", user_id=1) # connection = openerplib.get_connection( # hostname="localhost", # port=8069, # database="PABI2", # login="******", # password="******", # protocol="jsonrpc", # user_id=1) connection.check_login() Asset = connection.get_model('account.asset') asset_ids = Asset.search([('code', '=', '6120-003-0001-000000001')]) begin = time.time() def execute(start, i): asset_id = Asset.copy(asset_ids[0], { 'name': str(start), 'code': str(start) }) Asset.compute_depreciation_board([asset_id])
import openerplib connection = openerplib.get_connection(hostname="localhost", port=8069, database="PABI2-1", login="******", password="******", protocol="jsonrpc", user_id=1) connection.check_login() partner_model = connection.get_model('res.partner') so_model = connection.get_model('sale.order') chart_model = connection.get_model('chartfield.view') product_model = connection.get_model('product.product') partner_ids = partner_model.search([('search_key', 'ilike', '0004808')]) product_ids = product_model.search([('name', 'ilike', 'Servo')]) chart_ids = chart_model.search([('code', '=', '101009')]) order_id = so_model.create({ 'partner_id': partner_ids[0], 'order_line': [ (0, 0, {'product_id': product_ids[0], 'product_uom_qty': 1, 'name': 'test', 'chartfield_id': chart_ids[0]}), ], }, context={'order_type': 'sale_order'}) # so_model.action_button_confirm([order_id, ])
import openerplib HOST = "localhost" PORT = 8069 DB = "ucl" USER = "******" PASS = "******" connection = openerplib.get_connection(hostname=HOST, port=PORT, database=DB, login=USER, password=PASS, protocol="jsonrpc", user_id=1) connection.check_login(force=False) act_model = connection.get_model('epc.activity') act_ids = act_model.search([]) activities = act_model.read(act_ids, ['name', 'description']) for activity in activities: print activity
if args.username: odoo_username = args.username else: odoo_username = '******' #raw_input('Odoo User: '******'******' #getpass.getpass('Odoo Password: '******'me' response = requests.get(url, auth=HTTPBasicAuth(TOGGL_API_TOKEN, 'api_token')) if response.status_code != 200: sys.exit('Login failed. Check your API key.') response = response.json() #print json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')) # Workspace id try: wid = [ item['id'] for item in response['data']['workspaces'] if item['admin'] == True and item['name'] == TOGGL_WORKSPACE