コード例 #1
0
ファイル: manager.py プロジェクト: Danisan/odoo-etl
 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]
コード例 #2
0
ファイル: manager.py プロジェクト: westlyou/odoo-etl
 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]
コード例 #3
0
ファイル: barcodelib.py プロジェクト: galtys/galtys-addons
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()
コード例 #4
0
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()
コード例 #5
0
ファイル: barcodelib.py プロジェクト: galtys/galtys-addons
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()
コード例 #6
0
ファイル: middleware.py プロジェクト: cysnake4713/updis-cms
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']
コード例 #7
0
	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})
コード例 #8
0
ファイル: pracharak.py プロジェクト: yk2kus/jkp_devotees
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]}
コード例 #9
0
ファイル: etl.py プロジェクト: CamiloRamirez90/odoo
 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
コード例 #10
0
ファイル: test.py プロジェクト: Adel27/openerp-client-lib
 def conn(self):
     return openerplib.get_connection(
         hostname="localhost",
         protocol="xmlrpc",
         database="test",
         login="******",
         password="******")
コード例 #11
0
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)
コード例 #12
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
コード例 #13
0
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})
コード例 #14
0
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)
コード例 #15
0
ファイル: barcodelib.py プロジェクト: galtys/galtys-addons
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()
コード例 #16
0
ファイル: family.py プロジェクト: yk2kus/jkp_devotees
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)
コード例 #17
0
    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))
コード例 #18
0
ファイル: etl.py プロジェクト: CamiloRamirez90/odoo
 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
コード例 #19
0
ファイル: inventory.py プロジェクト: fablab-ka/fleischlager
	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' ]
		}
コード例 #20
0
 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,
     )
コード例 #21
0
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})
コード例 #22
0
ファイル: oerprpc.py プロジェクト: jeame/satchmo-openerp
 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'],
     ))
コード例 #23
0
ファイル: menu.py プロジェクト: cysnake4713/updis-cms
 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
コード例 #24
0
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)
コード例 #25
0
 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'],
     )
コード例 #26
0
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()
コード例 #27
0
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})
コード例 #28
0
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)
コード例 #29
0
ファイル: comparison_config.py プロジェクト: 0k/OpenUpgrade
 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'],
         )
コード例 #30
0
 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
コード例 #31
0
 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)
コード例 #32
0
 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
コード例 #33
0
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()
コード例 #34
0
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"
コード例 #35
0
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)
コード例 #36
0
 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
コード例 #37
0
            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
コード例 #38
0
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"
コード例 #39
0
 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
コード例 #40
0
 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
コード例 #41
0
ファイル: connection.py プロジェクト: niaisoh/acm
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
コード例 #42
0
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)
コード例 #43
0
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')
コード例 #44
0
#!/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],
コード例 #45
0
ファイル: test_inventory.py プロジェクト: cpyou/personal
# 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])
コード例 #46
0
# 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(
コード例 #47
0
    #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')
コード例 #48
0
ファイル: portero.py プロジェクト: bdunnette/portero
    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')
コード例 #49
0
ファイル: connect.py プロジェクト: Ozrlz/OdooLocustDocker
# -*- 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"] ),
)
コード例 #50
0
# 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:
コード例 #51
0
ファイル: test_copy_asset.py プロジェクト: pabi2/pb2_addons
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])
コード例 #52
0
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, ])
コード例 #53
0
ファイル: test2.py プロジェクト: nseinlet/training-ucl
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
コード例 #54
0
ファイル: toggl.py プロジェクト: gastonfeng/odoo_gtd
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