Usar ERPpeek para gestionar Odoo

1.- Instalar erppeek con:

        pip3 install erppeek

2.- Con nano crear un script para ser ejecutado por python:

        sudo nano prueba.py

3.- En ese fichero poner los datos de configuración de la base de datos y las instrucciones que queramos ejecutar. En nuestro caso vamos a insertar un nuevo contacto.

        import erppeek

        database = "miodoo"
        server= "http://localhost:8069"
        passw = "miclave"
        user= "admin@admin.com"

        cliente  = erppeek.Client(server,database,user,passw)

        cliente.model('res.partner').create({'name': 'Juan'})

4.- Ejecutar el script con python:

        python3 prueba.py

5.- Si queremos tecorrer una tabla y mostrar sus valores podemos hacer:

        datos = cliente.model('res.partner').search([])
        for dato in  datos:
                rec =cliente.model('res.partner').browse(dato)
                if isinstance(rec.city, str):
                       print(rec.name + ' ' + rec.city)


6.- Si queremos escribir en un campo podemos hacer:

        datos = cliente.model('res.partner').search([])
        for dato in  datos:
   
        rec =cliente.model('res.partner').browse(dato)
  
         rec.write({'city': 'Madrid'})

7.- Para cambiar un campo de la tabla de configuración:

        config_params = client.model('res.config.settings').browse([])
   
    if config_params:
       
        config_params[0].write({'group_discount_per_so_line': True})
   
    else:
       
        config_params = client_model('res.config.settings').create({})
       
        config_params[0].write({'group_discount_per_so_line': True})

8.- Para actualizar el número de digitos de la contabilidad

datos = cliente.model('account.account').search([])
for dato in  datos:
     rec =cliente.model('account.account').browse(dato)
     x = rec.code
     z = x.strip()
     if len(z) < 10:
          y = rec.code + "0000"
          rec.write({'code': y})

9.- Para crear una base de datos de arranque

DATABASE = 'odoo12'
SERVER = 'http://localhost:8069'
ADMIN_PASSWORD = 'admin'
USER_PASSWORD='miclave'
DEMO = False
LANG='es_ES'
COUNTRY_CODE='ES'
LOGIN='pepa'
 
client = erppeek.Client(server=SERVER)
 
if not DATABASE in client.db.list():
    print("The database does not exist yet, creating one!")
    client.create_database(ADMIN_PASSWORD, DATABASE, DEMO, LANG, USER_PASSWORD, LOGIN, COUNTRY_CODE)
else:
    print("The database " + DATABASE + " already exists.")