标签 odoo 下的文章

不同版本Odoo共存一台阿里云ECS服务器上的方法笔记记录

今天玩一个大的:想在一台阿里云ECS上,同时运行odoo的多个版本,同时运行8.0、9.0、10.0、11.0、12.0,看看能不能行。
1、用docker来玩,基于Ubuntu 16 64-bit,安装最新版本docker:

更新一下:sudo apt-get update

2、让apt也能https:

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

3、添加Docker’s 官方的 GPG key:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4、按X86_64安装docker(ubuntu其他版本请参见docker官方安装文档https://docs.docker.com/install/linux/docker-ce/ubuntu):

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

刷新下:

sudo apt-get update

5、安装最新版docker:

sudo apt-get install docker-ce

6、试玩build个hello-world看看是否正常:

sudo docker run hello-world

7、获取Dockerfile及相关文件

git clone https://github.com/wdmsyf/docker.git

感谢【康虎云报表】群主的github分享和远程协助帮忙,加群交流:https://jq.qq.com/?_wv=1027&k=5jmI7Mc
进入odoo10目录:

cd 10.0

8、编译镜像

docker build --force-rm -t wdmsyf/odoo:10.0 .

9、创建容器

由于本镜像不含PostgreSQl,所以需要先创建一个PostgreSQL容器:

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name odoo_db postgres:9.4

然后创建odoo容器,数据库则连接到刚才创建的PostgreSQL容器,8069端口映射到宿主机的8869,8071映射到宿主机的8871:

a、
使用镜像内官方的源代码和默认的配置文件:

docker run -d --name odoo10_wdmsyf -p 8869:8069 -p 8871:8071 --link odoo_db:db wdmsyf/odoo:10.0

c、
使用自定义配置文件和自定义odoo源代码(比如可以换成企业版),配置文件在宿主的路径可变,文件名不能变;源代码在宿主机的路径可变:

docker run -d --name odoo10_wdmsyf -p 8869:8069 -p 8871:8071 --link odoo_db:db -v ~/odoo_conf:/etc/odoo -v ~/odoo_src/odoo:/usr/lib/python2.7/dist-packages/odoo wdmsyf/odoo:10.0

阿里云ECS管理后台也要放行8869才能正常访问。

Odoo销售退货作业流程笔记

!退货界面见图5

今天集市群里引出的销售退货话题,挺感兴趣的,就想试试,在不二开的情况下,直接用Odoo8.0现有的套路流程跑一跑看看:
我个人理解的销售退货也属于仓库的作业里的一种,于是在仓库菜单下新建销售退货作业:
4.png
然后, 2017年04月19日有一笔销售订单 SO009 已经卖出了冰淇淋 1.00KG,状态是已完成:
5.png

到仓库菜单下的销售退货作业下,按销售订单 SO009 找到这笔订单,
6.png

点击这笔,进去后,看到 反向调拨,
7.png

会弹出退货对话框:原来odoo的退货是在这里呀!
8.png
点击了这里的退货之后,会在 作业看板 / 已就绪调拨 这里看到 源单据 WH/OUT/00007:
9.png
到这里可知道在odoo里退货都是仓库的事情了,而不管销售的这笔订单(或者多笔订单)全退或者退部分,只管好仓库这里就行了。
以上为本人个人理解,如果不对请到群里留言探讨或者本站留言。

【原创】GreenOdoo8.0绿色版报错ImportError: No module named xlrd

在GreenOdoo-8.0-win32遇到报错:ImportError: No module named xlrd
解决方法如下:

1、到https://pypi.python.org/pypi/xlrd/下载用于python2x版本的xlrd-1.1.0.tar.gz(大小528KB),迅雷下也行。

2、解压得到目录:xlrd-1.1.0.tar进入xlrd-1.1.0.tar目录后再解压得到dist\xlrd-1.1.0目录下,有一个文件夹xlrd,把xlrd整个目录复制,复制到runtime\python\Lib\site-packages目录下;

3、运行start.bat正常了。

结论:

在windows下的python依赖包果然就只是复制粘贴,而已!

【转载】odoo 清空演示数据

odoo 清除所有运行数据
测试odoo,如果需要一个干净的db。经常需要清除掉所有业务数据。做如下操作,较为方便

1:建立一个服务器动作,动作的python代码入下。 然后新建一个菜单,菜单动作关联到 这个动作。需要清空db,点击这个菜单就OK啦。

 to_removes = [
    ['procurement.order',],
     ['purchase.order.line',],
     ['purchase.order',],

    ['stock.quant',],
     ['stock.move',],
    ['stock.pack.operation',],
    ['stock.picking',],
     ['stock.inventory.line',],
    ['stock.inventory',],
    ['stock.quant.package',],
     ['stock.quant.move.rel',],
    ['stock.production.lot',],
    ['stock.fixed.putaway.strat',],
    ['mrp.production.workcenter.line',],
    ['mrp.production',],
    ['mrp.production.product.line',],
    ['sale.order.line',],
     ['sale.order',],
     ['pos.order.line',],
     ['pos.order',],

     ['account.voucher.line',],
     ['account.voucher',],
     ['account.invoice',],
     ['account.partial.reconcile',],
     ['account.move',],
  ]

  def remove_data(cr):
    try:
        for line in to_removes :
             obj_name = line[0]
             obj = self.pool.get(obj_name)
             if obj and obj._table_exist:
                 sql = "delete from %s" % obj._table
                 cr.execute( sql)
     except Exception, e:
         raise Warning(e)

     return True

  remove_data(cr,)