跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

G

guohuadeng

@guohuadeng
关于
帖子
65
主题
52
群组
0
粉丝
3
关注
0

帖子

最新 最佳 有争议的

  • odoo16开启gevent多进程,提高性能及启用消息推送
    G guohuadeng

    原文地址: https://www.odooai.cn/blog/odoo-install-deploy-6/odoo-gevent-web-socket-boost-setup-286
    odoo16有一个最大的性能提升,就是从longpolling改成了web socket的方式来推送消息。这个改进顺应了互联网应用的趋势,同时这也是我们整合AI服务的基础,因为AI都是通过消息推送来进行服务的,而且是高频推送。

    以下是启用Web Socket后,Ai主动推送信息回答的效果,使用阿里通义千问,3秒内就响应了。

    替代文字

    odoo16启用Web Socket

    为什么必须启用Web Socket
    Odoo一直以来都是一个基于互联网架构的ERP,绝大多数方面她都做得很好。

    但在消息推送上,在odoo16版本以前,都是使用的http协议长连接long-polling方式,这种方式的好处是协议简单标准化,我们二开省事很多。但缺点也很明显,就是大量占据服务器资源。详情可Bing搜索一下 long polling 与 web socket 即可了解。

    随着网络应用不断发展,现在绝大多数的浏览器和App都支持web socket了。因此,在 odoo16上,终于改用了 web socket 模式,虽然开发上增加了一些难度,但却带来了巨大的性能提升。

    特别在针对物联网应用如RFID应用,Ai应用如我们的Ai服务中心,这类应用都需要高频的推送消息。

    Web Socket好处
    需要主动推送的应用通过 web socket实现,就提升明显了。
    推送更快。每次信息互动保持一个唯一连接,消除长连接(长轮询)的延迟问题
    内容更精简。由于不使用http协议,无需发文件头等额外信息。
    全双工异步。客户端和服务器都可以独立地相互传输消息。
    配置简单。在大型网络中,WebSockets 无需任何配置即可通过大多数防火墙。

    odoo端配置
    参考官方文档
    系统配置处,配置好 odoo.conf ,一般使用默认即可,参考

    https://www.odooai.cn/documentation/16.0/zh_CN/administration/install/deploy.html

    如果需要自行定制端口,这个一般在国企或者有信创要求的单位很常见,就使用 gevent_port 参数。如 odoo.conf 中

    gevent_port = 8072
    同时注意

    proxy_mode = True

    Nginx 端配置
    同样参考上述官方文档即可,配置好 upstream即可。

    Windows 内特殊处理
    由于Windows本身是不直接直接Python的多进程的,那么我们要手动再启动一个 odoo 进程,f增加使用 gevent,这时把 Websocket启用,比如执行指令中增加

    %CD%\runtime\python3\python3 %CD%\source\odoo-bin gevent -c %CD%\odoo.conf --update=""
    在我们的绿色版中已有内置,将 gevent 相关执行取消注释就成。

    参考 odoo智能版下载中 odoo16绿色高速版处理

    https://gitee.com/odooai/odoo-ai

    开发端Pycharm端配置
    开发端因为要自定义启动odoo,故同样要配置好 gevent。

    参考下图,我们在启动正常开发Python进程时,要启一个 gevent 进程

    省事可直接使用Boost提速模块
    主要是针对Windows用户,在odoo13~16版本中,如果你没有配置好 long-polling 或者 web socket,你会发现你的 odoo 经常会停滞不响应,这就是因为没有配置好消息推送,导致odoo响应超时。

    此时,你停止相关的推送请求即可,这个需要前端 js 及后端 py 一起处理,我们有相关模块,安装后即停止消息推送,极大的减少了 odoo 的资源使用。

    市场搜索 app_odoo_boost 即可

    https://apps.odoo.com/apps/modules/browse?search=app_odoo_boost

    适用以下场景

    如果你仅使用 odoo 的进销存,生产等各种功能模块,不需要讨论及Ai辅助等功能
    在Windows下开发,只处理业务功能开发,不需要即时推送

    Nginx实例
    完整Nginx.conf示例

    参考官方文档即可

    #odoo server
    upstream odoo {
    server 127.0.0.1:8069;
    }
    upstream odoochat {
    server 127.0.0.1:8072;
    }
    map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
    }

    http -> https

    server {
    listen 80;
    server_name odoo.mycompany.com;
    rewrite ^(.*) https://$host$1 permanent;
    }

    server {
    listen 443 ssl;
    server_name odoo.mycompany.com;
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    SSL parameters

    ssl_certificate /etc/ssl/nginx/server.crt;
    ssl_certificate_key /etc/ssl/nginx/server.key;
    ssl_session_timeout 30m;
    ssl_protocols TLSv1.2;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    log

    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    Redirect websocket requests to odoo gevent port

    location /websocket {
    proxy_pass http://odoochat;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    }

    Redirect requests to odoo backend server

    location / {
    # Add Headers for odoo proxy mode
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect off;
    proxy_pass http://odoo;
    }

    common gzip

    gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
    gzip on;
    }


  • odoo17将全新发布,新功能全面预览及对比odoo16
    G guohuadeng

    原文地址:
    https://www.odooai.cn/blog/odoo-install-deploy-6/odoo-17-release-preview-new-feathure-vs-odoo-16-285

    Odoo是一款备受瞩目的ERP系统,自2009年以来,它已经成为了市场上最受欢迎的企业资源规划(ERP)软件之一。 Odoo以其开源、可定制和灵活的特性而闻名,适用于各种规模和行业的企业。

    Odoo一直在不断更新和迭代软件,以满足用户的需求。 即将发布的Odoo 17版本备受期待,它将带来许多新的功能和改进,包括更加强大的数据分析工具、更加人性化的用户界面以及更加安全的数据保护措施。 这些更新将进一步提升Odoo的市场竞争力,为用户提供更加高效和便捷的ERP解决方案。

    Odoo17的新功能预览-实操体验

    实操视频
    https://www.odooai.cn/web/content/30567?controls=1
    概述

    预计 Odoo 17 将于 2023 年 10 月在 Odoo 体验大会期间推出。 尽管 Odoo 17 的正式发布还有几个月的时间,但用户、合作伙伴和开发人员对下一个版本的兴趣正在迅速增长,因为越来越多关于下一个版本的第一印象和见解浮出水面。

    本文中,我们将介绍在 odoo合作伙伴大会上了解到的Odoo 17的最新详情,并将其与旧版本及网上文章进行比较及简述。 让我们一起来了解这次大版本更新会带来哪些新的和改进的功能。

    Odoo 17的主要优势是更愉悦的工作体验,这得益于性能、可访问性和数据分析与管理方面的改进。下面我们将能过对 odoo17 中文版的实际操作来体验。

    全新UI重新设计

    替代文字
    替代文字

    为了更好地为用户服务,Odoo 17将改进用户界面,更新图形和更现代的调色板。这种新设计更美观且更易于使用。此外,用户现在可以通过将应用程序拖放到新位置来自定义Odoo主屏幕。

    列表Shift可多选
    替代文字

    这是一个十分好用的功能,频繁操作时很好用。在列表中,使用 Shift 可以多选。感觉这是 Odoo继我的 Superbar 搜索边栏后,再次学习我们的模块了。

    如果想在16及以下的版本使用此功能,可以在应用市场搜索 "select range"。

    新的统一搜索界面
    替代文字

    Odoo 17的新牛奶主题包括改进的搜索视图,是另一个尖端的UI更新。搜索过程现在更加用户友好和高效,因为“搜索”选项卡已移动到页面中心,并且“过滤器”、“分组依据”和“收藏夹”菜单项已合并。这种方法通过将常用的搜索功能整合到一个位置来确保最大限度地减少时间浪费并提高输出。

    可以从Odoo17的目录(看板)视图中将货物添加到销售订单。借助更新的目录视图,您可以实时选择商品、编辑数量和修改销售订单。

    固定表头
    替代文字

    Odoo 17具有固定标头的功能,在list和kanban都可用。以便用户即使在滚动浏览大量数据时也能看到它们。它可以在屏幕上移动弹出窗口和弹出向导。

    ==========

    电子表格增强
    替代文字
    新的 Dashboard 全部通过 SpreadSheet 实现,就是所有的报表所见即所得的操作了。可以像Excel一样访问和操作数据,这个在15,16已经有了,17更加增强,主要是团队合作。

    通过即时访问更新的电子表格视图来改善团队合作。拍摄电子表格的快照并将其发送给您的团队,以改善沟通和共同理解。

    详情页优化
    创建新记录按键,名称从 Create 改为 New,终于放回左边了。

    同时 button box 跑到了最上方,看来是为了节省空间

    手机PWA的自动创建

    随着智能手机中快捷方式的引入,使用Odoo PWA(渐进式Web应用程序)将变得更加简单。Odoo 17的研发团队确实探索了允许用户快速访问Odoo实例的各种重要应用程序的快捷方式方法。

    您可以期待在Odoo 17中看到这个惊人的功能。但是,我们仍然需要等到引入其发行说明才能确定。

    购物车添加销售产品

    现在,您可以选择产品,并直接从产品看板中,像加入购物车一样添加或减少销售订单的产品数量。新的Odoo 17将让您更方便地添加这些产品。

    网站签名时的等待提醒

    在Odoo 17 Sign模块中,完成文档签名后,系统会提醒您继续支付。如果有尚未签名的文档,您可以选择是立即签署文档还是要忽略它。

    收银POS自助点单

    提高客户体验,设置开启后,即可通过平板电脑或手机进行自助点单,主要在餐饮行业使用。

    收银POS可二维码支付

    使用平板电脑和手机自助订购可能会改善客户服务体验。客户可以使用二维码轻松下订单和付款。

    这个主要是配合 IOT收款 Box,在中国要想使用可以使用 odooAi 的微信支付模块

    ===

    餐饮POS-增加后厨屏幕

    Odoo 17带来了一个新的令人兴奋的元素:POS的厨房屏幕。该系统的实时进给消除了重新加载的需要,其触摸屏界面、适应性强的载物台和快速过滤器都有助于 更好的订单管理.设置自定义视图和文件夹的能力意味着工作人员组可以更轻松地协调他们的工作。最大的方面是你不需要任何特殊的装备,因为它可以与任何屏幕一起使用。只需选择POS>订单>准备显示即可演示其功能。

    但是,顶部尚未显示订单号,这是必要的,因此可以在客户的产品可用时联系客户。 预计Odoo将在完整产品发布之前包含此功能。

    预约与租赁

    适用于会议室租赁,健身房等服务场所管理,以及租车租房酒店等租用管理。

    充分利用可用资产,让客人提前预订网球场、会议室和餐桌服务等设施。

    库存预留和取消,库存预测

    odoo17 在库存预测方面做得更强了。

    控制单个物品或产品的储备和释放的能力是Odoo17的一个主要新功能。我们目前无法发放单个送货预订。但是,在Odoov17中,我们可以直接从产品预测页面保留或释放批量交货订单的库存。

    这将为仓库经理提供一些余地来确定订单的优先级,而不会中断整体订单以取消保留数量子集或单个产品。

    预测报表中产品的预留或非预留数量仅影响该产品,而不会影响整体操作。

    您现在可以保留特定数量并编辑以前保留的数量。

    优惠显示在购物车中

    由于 #odoo 中引入的一项新功能,客户很快就可以在最后结账阶段查看折扣代码,只需单击一下即可轻松输入。

    比旧版本好太多,旧版本用户不知道有优惠,必须手工输入优惠券。

    新增Todo待办功能
    实操感觉就是之前的知识库功能,给其找了个用武之地。
    批量休假管理,可以更方便的管理人员假期。

    简历在线打印
    Odoo17的员工资料现在有一个整洁的打印简历/简历选项。此外,只需单击一下即可利用就业记录中的数据创建 PDF 简历。

    工时管理增强,方便的网格视图
    时间表管理将更方便, #odoo17 网格格式允许您每天在单个屏幕上查看任何加班或缺失的工时。

    扫码应用支持打包拆包
    Odoo17 支持小包拆包重新打包,可通过产品品类设置统一设置策略。通过这种新策略,当只需要一个更大的包装来满足需求时,可以重新打包,且不再需要将数量保留在旧包中。

    项目管理软件的更新
    ​Odoo 17中将提供 #projectmanagement 应用程序的以下增强功能:

    更新的任务状态 – 请求的修订 除了“已完成”、“已取消”、“正在进行”和“已批准”的标准任务状态外,还将提供其他状态“已请求的更改”。

    在看板视图中获取依赖关系警报 – 看板允许您查看相关任务并确定一个作业是否阻止了另一个作业。

    看板任务配置(无表单视图打开)– 您可以在将新作业添加到看板后访问表单视图,而不是使用快捷方式使用标签、用户、小时数和优先级等信息快速定义它。

    完成上一个作业时生成新作业 – 如此视频所示,可以轻松创建重复任务。

    全面库存管理与成本管理
    Odoo用户和顾问长期以来一直希望有一个“销售商品成本”科目。#odoo v17 最终将结束等待。
    Odoo v17 中更新了自动库存评估,并包含了新的“生产成本”设置。作为生产成本账户分类账的一个组成部分,这将提供从原材料消耗到成品库存价值的透明库存移动和估值。

    更多强大新功能 #odoo17
    根据您上传的文件在 Excel 中结算
    使用“创建成本”按钮,根据给定文件的内容机械创建成本。
    #odoo OCR – AI 基本算法读取上传的账单或发票,并在费用模块中创建费用项目。该文件也作为费用附件发送。
    实际功能将在 10 月份的 odoo 体验2023大会上公布,将有更多新东西等着你。


  • 免费开通阿里Ai通义千问api教程攻略,odoo通过Ai接口服务全公司全行业
    G guohuadeng

    全程1分钟开通阿里Ai通义千问,1小时完成对接及前端对话界面开发!
    原文地址:
    https://www.odooai.cn/blog/customer-success-10/odoo-ai-ali-tongyi-qianwen-281

    今天(2023-09-13),阿里通义千问开放了企业Api,基本上都可以免费申请到,这是国内第一个开放接口的大型Ai模型。我们在很早就申请了通义千问的测试,效果还是很不错的,智力上比ChatGPT差了点,但在内容新鲜全面上是赶超openai了。更爽的是还有通义万相的图片接口,直接对话生成图片了,一直嘴馋却无法快速享受的SD Stable Diffusion 和 Midjourney 如今都轻松获得。

    开放接口后,我们可以很容易的对接,用1个Api来服务全公司或者全行业客户。而且阿里云很友好,不仅提供了通义千问,还提供了百川开源,ChatGLM,Paraformer语音识别,MOSS开源对话大模型。

    通义千问 • 一个专门响应人类指令的大模型

    先看成果-通义千问Ai
    先直接看成果,1个小时开发对接完成,基于我们现有的 odoo Ai 服务中心。已全部通过 odoo 免费开源。

    Ai机器人中心

    企业Ai频道
    支持多人公用频道与私人频道

    Ai对话与AiSEO等企业服务
    可以为Ai设定多个角色,一次过服务全公司全企业用户

    Ai全球化电商门户建设
    这个主要使用多语种翻译,因为Ai翻译的效果有上下文,持续集成处理远比普通翻译引擎好用得多。

    Ai服务计费体系
    通过我们的计费统计体系,可以看到用户数量及用户使用的 Token量

    开源odooAi对接模块
    本模块开源免费,具备上述功能,对接多种Ai,在odoo内使用。

    请至 github 或者 odoo官方应用市场下载

    https://www.github.com/guohuadeng/app-odoo

    申请阿里云帐号
    能把这文章看下去的应该都是程序员了,阿里云肯定人手必备,不多说,通过 aliyun.com 申请即可,具体可必应查找。

    进入通义千问面板
    直接访问申请Api
    通义前文申请体验, https://dashscope.console.aliyun.com/overview?applyModel=qwen-v1

    或搜索“通义千问”进入

    点击去开通。

    开通 DashScope灵积模型服务,这个服务包含了各种大型型,可以和odoo的Ai服务中心直接整合

    开通成功
    然后就直接成功了。。。
    是不是简单得难以想像,特别是对我们这些过五关斩六将才开通 openai ChatGPT 和 微软Azurer 的Ai服务的人来说,简直像做梦一样。

    Api接口简述
    开发文档很全,开发很简单,有了 chatgpt 和 google bard 等经验和框架后,只要 import 下 sdk,按例子改下就成,因为前端对话,智能客服,网站的Ai营销等全部已经开发完成,所以只要增加个通义千问接口就成。

    代码样例
    ,已在 odoo官方应用市场开源免费下载

    开发对接,公司及行业使用
    Api文档比较全,也有例子
    开发很简单,有了 chatgpt 和 google bard 等经验和框架后,只要 import 下 sdk,按例子改下就成,因为前端对话,智能客服,网站的Ai营销等全部已经开发完成,所以只要增加个通义千问接口就成。

    代码样例
    如何对接阿里通义千问,官方已经有简单案例了,有Python有Java。我们为了高度可定制,使用 https post 方式,这样再模拟出1个ChatGPT接口,就可以使用各种丰富的 ChatGPT客户端了。

    相关代码已在 odoo官方应用市场开源免费下载: https://apps.odoo.com

    也可以访问 GitHub获取,模块名为 app_ai_ali: https://github.com/guohuadeng/app-odoo

    直接用SDK对接

    coding=utf-8

    For prerequisites running the following sample, visit https://help.aliyun.com/document_detail/611472.html

    import dashscope
    from dashscope import Generation
    from http import HTTPStatus
    import json

    response=Generation.call(
    model='qwen-v1',
    prompt='如何做西红柿炖牛腩?'
    )

    if response.status_code==HTTPStatus.OK:
    print(json.dumps(response.output, indent=4, ensure_ascii=False))
    else:
    print('Code: %d, status: %s, message: %s' % (response.status_code, response.code, response.message))

    API费用-免费加计量
    免费Token有100000
    总计10万的免费Token,可以对话2000句左右,想更多再多申请几个账号就成,使用我们免费odoo模块,支持同时用多个Ai机器人进行行业服务。

    免费额度

    模型服务

    模型名

    免费额度

    通义千问

    qwen-v1

    申请体验通过后,提供总计100,000 tokens免费使用额度。

    qwen-plus-v1

    无

    免费额度将在申请体验审批通过后下一个整点生效。例如,您的审批在 15:30 分通过,您的免费额度将在 16:00 后生效,将抵扣您 16:00 后产生的账单费用。

    计费单价
    模型服务

    模型名

    计费单价
    通义千问

    qwen-v1

    0.012元/1,000 tokens
    通义千问

    qwen-plus-v1

    0.14元/1,000 tokens

    收费对比-通义千问vs微软Azure
    我们来对比下哈,对比通义千问,微软Azure的收费。openAi由于在国内使用不太合规,我们就不说了。

    qwen-v1大概对标 chatgpt 3.5, qwen-plus-v1大概对标 chatgpt 4,我们只挑gpt4-8k便宜的来对比,chatgpt-32k价格翻倍自行计算。

    以下表格,费用全部转为人民币(当前汇率按7.3算),单位都是每KT(每1000Token)。

    阿里通义千问   微软Azure  
      提问 回答 提问 回答
    qwen/gpt3.5 0.012 0.012 0.011 0.15
    qwen-plus/gpt4-8k 0.14 0.14 0.22 0.3

    两者的history即对话上下文都是计费的,基本上普通Ai对话一次3分钱,高级Ai对话一次 2毛钱。

    想免费使用微软 Azure的请移步这里,我们也有申请中国区合法chatgpt的攻略,不过现在过审难度加大了。

    Chatgpt4中国申请,Chatgpt3.5中国区免费1年使用攻略,微软Azure云openai详细api注册申请图文教程,整合odoo AiCenter

    https://help.odooapp.cn/blog/odoo-install-deploy-6/chatgpt4-china-application-chatgpt3-5-free-one-year-microsoft-azure-openai-api-registration-tutorial-odoo-aicenter-integration-28

    下文由Ai通义千问API接口生成后人工微调
    Sys Content角色设定
    你是一个SEO专家,请协助我们创作或者优化网页文章内容。我们将提供文章标题,简述和关键字,请根据这些内容,创作一篇文章,这篇文章要对各搜索引擎比如百度,抖音,Google, Bing等友好,并能精准表达我们的意图。请先提供文章框架结构,再提供文章内容。

    Prompt提问
    标题:免费开通阿里Ai通义千问api教程攻略,通过Ai接口服务全公司全行业 摘要:本文将详细介绍如何免费对接阿里AI通义千问大模型,包括通用万象图片AI、百川开源和Llama等相关技术。通过这篇教程攻略,您可以轻松实现与阿里AI的无缝连接。含通义万相图片Ai,百川开源,Llama等大模型的对接。然后通过odoo的ai服务中心,实现全公司ai服务。

    文章框架结构
    I. 引言

    简要介绍本文的主题和目的
    强调免费开通阿里AI通义千问api教程攻略的实用性和重要性
    II. 文章主体

    A. 标题:免费开通阿里AI通义千问api教程攻略
    B. 简述:本文将详细介绍如何免费对接阿里AI通义千问大模型,包括通用万象图片AI、百川开源和Llama等相关技术,帮助读者轻松实现与阿里AI的无缝连接。
    C. 关键字:阿里AI通义千问、api教程攻略、免费对接、通用万象图片AI、百川开源、Llama、odoo、ai服务中心
    免费开通阿里AI通义千问教程攻略
    a. 如何注册阿里云账号并获取免费的API密钥?
    b. 如何在阿里云控制台中获取AI通义千问的API接口?
    c. 如何通过API调用实现与阿里AI通义千问的对接?
    通用万象图片AI、百川开源和Llama等大模型的对接
    a. 如何获取通用万象图片AI、百川开源和Llama等大模型的API接口?
    b. 如何通过API调用实现与这些大模型的对接?
    odoo的AI服务中心
    a. 如何在odoo中集成AI服务中心?
    b. 如何通过AI服务中心实现全公司AI服务?
    III. 结论

    总结本文介绍的免费开通阿里AI通义千问api教程攻略和相关技术
    强调实践和持续优化的重要性
    IV. 参考文献(可选)

    列出本文中提到的相关文献或资料

    引言
    通过以上详细说明,我们可以看出免费开通阿里AI通义千问教程攻略、通用万象图片AI、百川开源和Llama等大模型的对接以及odoo的AI服务中心的重要性。这些技术和工具可以帮助我们更好地实现自然语言处理任务,提高工作效率和客户体验。

    免费开通阿里AI通义千问教程攻略可以帮助我们快速搭建自然语言处理系统,而通用万象图片AI、百川开源和Llama等大模型可以提供更强大的计算能力和更高的准确率。同时,odoo的AI服务中心可以集成各种AI技术,为我们提供更多的选择和更方便的使用体验。

    总之,自然语言处理技术和工具在当今社会中发挥着越来越重要的作用,我们应该不断学习和掌握这些技术,以便更好地应对未来的挑战。

    免费开通通义千问教程
    免费开通阿里AI通义千问教程攻略
    在本节中,我们将详细介绍如何免费对接阿里AI通义千问大模型。以下是具体步骤:

    a. 如何注册阿里云账号并获取免费的API密钥?

    首先,您需要注册一个阿里云账号。注册过程非常简单,只需填写您的基本信息并验证您的邮箱即可。注册完成后,登录阿里云控制台。

    接下来,您需要获取免费的API密钥。在阿里云控制台中,找到“API密钥”选项,点击“创建密钥”,然后复制API密钥和密钥密码。请注意,这些密钥非常重要,不要将它们泄露给任何人。

    b. 如何在阿里云控制台中获取AI通义千问的API接口?

    在阿里云控制台中,找到“AI通义千问”服务,点击“API接口”,然后选择您需要使用的API接口。根据您的需求,您可以选择语音识别、语音合成、文本理解等不同的API接口。

    c. 如何通过API调用实现与阿里AI通义千问的对接?

    在获取到API接口后,您可以使用编程语言(如Python、Java等)调用API来实现与阿里AI通义千问的对接。您需要按照API文档中的说明,编写相应的代码来发送请求和接收响应。在调用API时,请确保您的API密钥和密钥密码安全可靠。

    通过以上步骤,您就可以成功地免费对接阿里AI通义千问大模型。接下来,您可以使用这些API来实现各种自然语言处理任务,如语音识别、语音合成、文本理解等

    通用万象图片AI、百川开源和Llama等大模型的对接
    在本节中,我们将详细介绍如何对接通用万象图片AI、百川开源和Llama等大模型。以下是具体步骤:

    a. 如何获取通用万象图片AI、百川开源和Llama等大模型的API接口?

    通用万象图片AI、百川开源和Llama等大模型都提供了API接口,您可以在它们的官方网站或开源社区中获取API接口的详细信息。例如,通用万象图片AI提供了基于RESTful API的接口,您可以通过HTTP请求来调用它们的API。百川开源和Llama等大模型也提供了类似的API接口。

    b. 如何通过API调用实现与这些大模型的对接?

    在获取到API接口后,您可以使用编程语言(如Python、Java等)调用API来实现与这些大模型的对接。您需要按照API文档中的说明,编写相应的代码来发送请求和接收响应。在调用API时,请确保您的API密钥和密钥密码安全可靠。

    例如,如果您想使用通用万象图片AI进行图像识别,您可以使用以下代码:

    pythonCopy codeimport requests
    import json

    url = "https://api.wangyan.ai/v1/labeling"
    headers = {"Content-Type": "application/json"}
    data = {
    "image_url": "https://example.com/image.jpg",
    "labels": ["dog", "cat"]
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))
    result = json.loads(response.text)

    print(result)
    以上代码将发送一个POST请求到通用万象图片AI的API接口,指定图像URL和标签。API将返回识别结果,您可以在代码中处理它们。

    通过以上步骤,您就可以成功地对接通用万象图片AI、百川开源和Llama等大模型。接下来,您可以使用这些API来实现各种自然语言处理任务,如图像识别、文本理解等。

    odoo的AI服务中心
    odoo是一款开源的企业管理软件,它提供了一个AI服务中心,可以集成各种AI技术,如自然语言处理、机器学习等。通过AI服务中心,您可以轻松地将AI技术应用到您的业务中,提高工作效率和客户体验。

    以下是如何在odoo中集成AI服务中心的步骤:

    a. 安装AI服务中心

    首先,您需要在odoo中安装AI服务中心。您可以在odoo官方网站上下载最新版本的odoo,然后在安装过程中选择安装AI服务中心。如果您已经安装了odoo,您可以使用以下命令来安装AI服务中心:

    bashCopy codesudo apt-get install odoo-ai
    b. 配置AI服务中心

    安装完成后,您需要在odoo中配置AI服务中心。您可以在odoo的设置中找到AI服务中心的配置选项,然后按照提示进行配置。您需要指定AI服务中心的API地址、API密钥等信息。

    c. 集成AI技术

    配置完成后,您可以在odoo中集成各种AI技术。例如,您可以使用AI服务中心提供的自然语言处理API来实现文本理解、语音识别等任务。您可以使用AI服务中心提供的机器学习API来实现预测分析、分类等任务。

    以下是如何在odoo中集成自然语言处理API的步骤:

    pythonCopy codefrom odoo import models, fields, api

    class NlpTask(models.Model):
    _name = 'nlp.task'
    _description = 'NLP Task'

    text = fields.Char(string='Text')
    result = fields.Char(string='Result')
    
    @api.model
    def create(self, values):
        # Call the AI service to process the text
        response = requests.post('https://api.wangyan.ai/v1/nlp', data={
            'text': values['text']
        })
        result = json.loads(response.text)
    
        # Save the result in the database
        task = self.create({
            'text': values['text'],
            'result': result['result']
        })
    
        return task
    

    以上代码定义了一个名为NlpTask的模型,它包含一个文本字段和一个结果字段。在create方法中,我们使用AI服务中心提供的自然语言处理API来处理文本,并将结果保存在数据库中。

    通过以上步骤,您就可以在odoo中集成AI服务中心,并使用各种AI技术来提高工作效率和客户体验。

    结论
    通过以上详细说明,我们可以看出免费开通阿里AI通义千问教程攻略、通用万象图片AI、百川开源和Llama等大模型的对接以及odoo的AI服务中心的重要性。这些技术和工具可以帮助我们更好地实现自然语言处理任务,提高工作效率和客户体验。

    免费开通阿里AI通义千问教程攻略可以帮助我们快速搭建自然语言处理系统,而通用万象图片AI、百川开源和Llama等大模型可以提供更强大的计算能力和更高的准确率。同时,odoo的AI服务中心可以集成各种AI技术,为我们提供更多的选择和更方便的使用体验。

    总之,自然语言处理技术和工具在当今社会中发挥着越来越重要的作用,我们应该不断学习和掌握这些技术,以便更好地应对未来的挑战。

    参考文献(可选)
    以下是一些关于自然语言处理技术和工具的参考文献:

    李航. 统计自然语言处理[M]. 清华大学出版社, 2012.

    黄昌宁, 李建忠. 自然语言处理[M]. 清华大学出版社, 2008.

    周志华. 机器学习[M]. 清华大学出版社, 2016.

    阿里巴巴达摩院. 通义千问开放平台文档[EB/OL]. https://help.aliyun.com/document_detail/200776.html

    百度AI开放平台. 图像识别API文档[EB/OL]. https://ai.baidu.com/docs#/image/Describe

    旷视科技. 图像识别API文档[EB/OL]. https://www.megvii.com/docs/api

    达摩院. LAMA开放平台文档[EB/OL]. https://help.aliyun.com/document_detail/200777.html


  • odoo saas高可用架构部署,性能扩展安全增强
    G guohuadeng

    原文可参考,更好的阅读体验:
    https://www.sunpop.cn/odoo_saas_high_performant_ha_redis/

    Odoo是一个全功能ERP平台,也是一个在线服务门户。随着odoo越来越流行,已经有了大量的海量部署。

    比如官方的500万用户和每个月上百的企业SAAS用户,国内某odoo电商App的500万+注册用户等,我们为客户支持的在线应用,也达到了十万用户级别。海量数据应用更是比比皆是,国内使用odoo的上市公司,特别是制造行业,其SKU数量都在数十万级以上。
    替代文字

    为更好的支持海量用户及海量数据,我们需要进行odoo的高可用性部署,以达到高性能,高稳定性,高扩展性,高安全性。我们以一个多租户电商供应链门户应用为例,简述高可用架构的部署。由于odoo本身就是一个B/S架构的应用,所以本架构也可以适用于所有的odoo部署。

    odoo采用了业界流行的基础架构,包括:

    操作系统:Linux,官方推荐Ubuntu
    数据库:Postgresql
    Web服务器:内置 Werkzeug,前端一般通过Nginx,Apache等代理
    前端:基于JavaScript的富客户端,通过Json-rpc调用后台数据。技术基于Jquery + backbone + owl(odoo14开始采用的mvvm架构)
    后台:Python 3.6 +,使用threading + gevent 实现多线程,多协程。同时支持多进程启动

    这些通用且以开源为核心的架构,保证了其具备很好的可扩展性,可以方便的进行集群及高可用部署。

    在本应用场景中,管理方为集团公司,下属多个子公司。每个子公司对自有客户、自有供应链业务进行管理,集团公司同时统一管理所有客户及产品,并通过odoo制定业务规范管理日常运营。

    消费者/零售商户

    即我们的b2b, b2c客户,这些客户通过使用odoo开发的App、微信小程序及电商平台。基于互联网访问。

    供货商

    为平台提供端口的供应商,与1类似,通过App、微信小程序及网站管理商品及发货。基于互联网访问

    平台管理方

    平台业主,包括集团用户与子公司的用户,主要通过odoo管理业务。基于内网或者通过VPN进入内网,访问平台。

    互联网

    基于odoo建立的门户网站,以及基于odoo接口实现的App或者微信小程序。通过互联网提供服务,odoo仅通过互联网提供接口服务,供客户端调用,相关管理后台功能不通过互联网开放。

    防火墙

    防火墙进行安全隔离,企业可以自行定制相关策略,防范网络攻击等。

    VPN+安全策略

    核心平台部署于集团IDC,odoo的后台业务管理服务仅向内网用户提供,故所有子公司及相关管理用户,只可通过内网或者VPN登入内网,才可进行业务管理。

    前端服务群组

    前端服务器群组一般包括反向代理服务器和负载均衡服务器。

    我们使用Nginx反向代理服务器,odoo通过Nginx对外提供Web服务,一般1主1备实现高可用即可,同时可以构建Nginx集群提供更好的性能。相关的SSL证书也通过Nginx进行配置以保证连接安全。

    当使用多Nginx服务器后,我们需要增加负载均衡服务器如F5等进行用户动态分配。

    使用Nginx作为前端有另外一个好处,就是当平台需要符合国家的网络安全等级保护要求时,很多内容通过Nginx即可进行。

    核心odoo服务集群

    Odoo设计时就考虑了集群及多租户情况。按实际业务情况,我们可以分为多个odoo服务集群,将应用负载分离,以保证高性能。

    每个集群可以由多台odoo服务器组成,这样当某台odoo故障下线时,其它odoo服务器可以承担服务,以保证高可用。

    这些服务器通过7中的前端服务器群组进行任务分配,一般这些服务器集群我们会在DMZ区进行更好的安全保障。

    8.1 核心odoo服务集群

    提供系统核心服务,包括对外部App接口,对内部的业务管理。

    8.2 定时任务odoo服务集群

    Odoo的定时任务即Cron,我们一般是用来进行业务计算或者数据同步的。比如同步其它系统的用户、商品信息,同步天猫/Amazon的订单信息,定期与支付服务商对账等。制造业中会用来做MRP计算或补货运算。

    Odoo的Cron是可以单独执行的,由于这种服务可以免http服务,所以将其独立开来有助于提高性能,所以我们建立了独立的定时任务服务集群。

    8.3 其它odoo服务集群

    由于odoo可以多进程开启,所以我们可以根据实际业务需要,将某些应用独立开来建立单独的odoo服务器或者odoo服务器集群。

    就原生功能而言,其IOT物联网服务,即时聊天是比较独立的,如有特殊性能要求,可以将其独立部署。

    在本文的应用中,我们也可以将对外的接口服务,进行独立部署。

    注意!当我们拆分独立的odoo应用集群时,一定要注意代码的处理,特别是本集群内的odoo服务器,要保证多台服务器间代码的一致,可以用 Linux的rsync服务即可。

    CDN/文件服务群组

    为提高性能,静态文件可使用专门的CDN或文件服务器存储,可以使用自有CDN或者云服务商的CDN。

    我们可能自行决定哪些静态文件进行CDN处理,一般包括:css,js, 字体,图片,系统附件等。

    数据缓存集群

    Odoo本身有数据缓存机制,Postgresql也有内置数据缓存机制。为了更高的数据读取性能,我们可以增加部署Redis,作为PostgreSQL的二级缓存, 提升数据库的性能,减少IO请求。

    此功能需要进行一定的二次开发,控制数据读取。一般乐观数据如商品品类等基于不变化的我们从redis中取。悲观数据比如商品要记录其浏览量,加购物车量的,我们从数据库中取。

    Redis可以进行集群部署,细节可自行查询相关文章。

    PG数据库集群

    数据是企业的核心,所以数据库是平台中最重要的组成部份。Postgresql作为最主流的数据库,有多种成熟的集群方案功能。

    首先在硬件层架构上,我们要尽量保证:

    使用物理机而非虚拟机作为数据库服务器
    使用SSD或者高转速硬盘保证高IO性能
    使用Raid保证存储的高可用及高IO性能

    接着进行高可用架构部署,我们的目标主要为:

    读写分离,实现高性能
    主备复制,实现高可用

    相关方案已经很成熟,比如我们可以直接使用:

    华为云方案:

    https://support.huaweicloud.com/bestpractice-rds/rds_pg_0009.html

    阿里云方案:

    https://help.aliyun.com/document_detail/127875.htm?spm=a2c4g.11186623.2.8.202b5beeeH4Bwv#concept-1443745

    他们都提供公有云或私有云的部署方案。

    如果要自行建设,也有多种方案选择。

    可以使用 postgresql数据库自带的基于Standby的异步流复制进行replication配置。
    可以使用pgpool,这是个应该是最流行的一个集连接池、主备切换与负载均衡于一身的pg数据库连接件。
    商业产品

    相关方案比较多,可自行查阅。

    运维监控服务

    一般业主都有自己的基础运维体系,odoo使用的都是通用平台,所以可以很方便的将上述基础架构纳入集团整体IT运维架构中。

    以下做些简述。

    1 备份

    定期数据库备份。

    定期应用服务及配置备份。

    基于GIT的代码版本管理,release管理。

    2 主机监控

    将上述主机纳入监控平台。

    3 日志与审计

    Odoo业务数据的变更自带审计功能,用好即可。

    系统运行的Log最好不使用操作系统的Log,通过配置,记录到单独的数据库中,做好预警管理。

    其它具体运维参照业主方SLA标准实施即可。

    以上,作为Odoo高可用架构部署的参考,以帮助我们支持海量用户与海量数据,提高性能、稳定性及安全性。


  • odoo14最新免费会计科目表模块-2021版更新最新税率,支持14,13,12,11多odoo版本
    G guohuadeng

    可阅读原文,获得更好体验:

    odoo14最新免费会计科目表模块-2021版更新最新税率,支持14,13,12,11多odoo版本

    替代文字

    请在 odoo 官网下载: 中国会计科目2021/2020

    为区分版本:

    odoo14: 2021最新会计

    odoo13-11: 2020最新会计

    在 odoo14版中,一定先用 app_odoo_customize 模块,执行操作 “清除会计科目”

    同时,我们进行了大量模块更新,以支持最新 odoo14,可在以下200多个业务模块中参考,尚鹏odoo模块十分注重与 odoo原生业务整合,所有模块符合原生业务逻辑,与odoo原功能完美匹配及增强。

    替代文字

    感谢社区完成了最新中国会计,处理了增值税等一堆烦心事。

    本次单独做了最新免费会计科目模块,调整了各种最新税率如13%增值税,多级会计科目等,采用金蝶的科目命名规范。主要是为了细节更顺手,也结合现有树状视图组件,让财务更好用。

    相关模块在此下载

    主要更新如下:

    最新中国化财务,主要针对标准会计科目表作了优化。

    1. 支持 odoo14,13,12,11版本,最新会计科目表,处理营改增后会计科目调整。更新至最新税率。
    2. 将菜单中设置为"财务"。
    3. 补充分类及标签信息。
    4. 更新税信息。
    5. 增加树状结构,可设置上级科目,配合 "app_web_superbar" 使用可轻易实现树状导航。
    6. 注意,必须在没有业务数据,没有会计科目的初始环境。可以使用 "app_odoo_customize" 模块清除财务数据,重置会计科目。
    在财务的设置处进行相关设置。
    

    增加了多级科目的设置后,使用 superbar 可以在树状视图中查看相关会计明细,十分方便。点击科目树,即可查看相关科目产生的会计凭证。

    superbar 是我们的收费模块,可以在官方搜索,购买后可以得到 ztree 及 superbar 相关的共计 16个免费模块。

    原生odoo更换科目表比较麻烦,现实开发中时有需要重设科目的需求,特别是经常要面对外贸客户。 为了少点击几次鼠标,我们将 app_odoo_customize 模块也更新了。

    (请多下载,争取再荣登 odoo 官网 #1 用户下载)

    操作比较简单,进入odooApp定制界面,点两下鼠标,就可以重新设置会计科目表了。

    注意,如果是 odoo12,一定要以超级用户登录。

    ======

    同时,还更新了下中国化模块

    odoo Chinese Enhance. 中国化增强-基础
    1. 中文默认值,如国家、时区、货币等。处理模块 base, product.
    2. 客户加简称,地址显示中文化,客户编码显示优先
    3. todo:中文演示数据(只有demo模式才加载)
    

    Enjoy...


  • 免费开源odoo14,13,12,11,10改logo,自定义,清除所有数据模块
    G guohuadeng

    原文地址,更好阅读体验: https://www.sunpop.cn/app_odoo_customize_debrand/

    odoo14马上要发布,odoo自定义模块也加紧升级,现在已经直接支持odoo14。

    作为odoo开发者,经常要进行调试,数据清理,也要为客户提供自定义工作,因此专门开发了这个开源模块,欢迎使用。

    欢迎在官网 好评支持

    您的支持将让中国的开发者,中国的odooapp在官方市场更受关注,谢谢 :)

    ==========================================

    在符合odoo开源协议的前提下,去除odoo版权, 去除odoo 相关logo信息,自定义你的odoo

    可完全自行设置下列 odoo 选项,让 odoo 看上去像是你的软件产品

    • odoo14, 13版本下载--持续更新

    • odoo12版本下载--持续更新

    • odoo11版本下载--持续更新

    • odoo10版本下载--持续更新

    替代文字

    模块功能

        1. 删除菜单导航页脚的 Odoo 标签
        2. 将弹出窗口中 "Odoo" 设置为自定义名称
        3. 自定义用户菜单中的 Documentation, Support, About 的链接
        4. 在用户菜单中增加快速切换开发模式
        5. 在用户菜单中增加快速切换多国语言
        6. 对语言菜单进行美化,设置国旗图标
        7. 在用户菜单中增加中/英文用户手册,可以不用翻墙加速了
        8. 在用户菜单中增加开发者手册,含python教程,jquery参考,Jinja2模板,PostgresSQL参考
        9. 在用户菜单中自定义"My odoo.com account"
        10. 单独设置面板,每个选项都可以自定义
        11. 提供236个国家的国旗文件(部份需要自行设置文件名)
        12. 多语言版本
        13. 自定义登陆界面中的 Powered by Odoo
        14. 快速删除测试数据,支持模块包括:销售/POS门店/采购/生产/库存/会计/项目/消息与工作流等.
        15. 将各类单据的序号重置,从1开始,包括:SO/PO/MO/Invoice 等
        16. 修复odoo启用英文后模块不显示中文的Bug
        17. 可停用odoo自动订阅功能,避免“同样对象关注2次”bug,同时提升性能
        18. 显示/隐藏应用的作者和网站-在应用安装面板中
        19. 一键清除所有数据(视当前数据情况,有时需点击2次)
        20. 在应用面板显示快速升级按键,点击时不会导航至 odoo.com
        21. 清除并重置会计科目表
        22. 全新升级将odoo12用户及开发手册导航至国内网站,或者自己定义的网站
        23. 增加清除网站数据功能
        24. 自定义 odoo 原生模块跳转的url(比如企业版模块)
        25. 增加删除费用报销数据功能
        26. 增加批量卸载模块功能
        27. 增加odoo加速功能
        28. 快速管理顶级菜单
        29. App版本比较,快速查看可本地更新的模块
        30. 一键导出翻译文件 po
        31. 显示或去除 odoo 推荐
        32. 增加修复品类及区位名的操作 
        33. 增加 Demo 的显示设置 
        34. 增加清除质检数据 
        35. 优化至odoo14适用 
    
    
    Debranding Title,Language,Documentation,Quick Debug,Quick Data Clear)
    Quick customize, debranding, boost, reset data, debug. Language Switcher. 
    Easy Delete data.reset account chart.
    odoo debrand, odoo debranding, customize my odoo. 
     
    

    App Odoo Customize(Debranding Title,Language,Documentation,Quick Debug)

    White label odoo.
    Support Odoo 13, 12, 11, 10, 9.
    You can config odoo, make it look like your own platform..

    1. Deletes Odoo label in footer
    2. Replaces "Odoo" in Windows title
    3. Customize Documentation, Support, About links and title in usermenu
    4. Adds "Developer mode" link to the top right-hand User Menu.
    5. Adds Quick Language Switcher to the top right-hand User Menu.
    6. Adds Country flags  to the top right-hand User Menu.
    7. Adds English and Chinese user documentation access to the top right-hand User Menu.
    8. Adds developer documentation access to the top right-hand User Menu.
    9. Customize "My odoo.com account" button
    10. Standalone setting panel, easy to setup.
    11. Provide 236 country flags.
    12. Multi-language Support.
    13. Change Powered by Odoo in login screen.(Please change '../views/app_odoo_customize_view.xml' #15)
    14. Quick delete test data in Apps: Sales/POS/Purchase/MRP/Inventory/Accounting/Project/Message/Workflow etc.
    15. Reset All the Sequence to beginning of 1: SO/PO/MO/Invoice...
    16. Fix odoo reload module translation bug while enable english language
    17. Stop Odoo Auto Subscribe(Moved to app_odoo_boost)
    18. Show/Hide Author and Website in Apps Dashboard
    19. One Click to clear all data (Sometime pls click twice)
    20. Show quick upgrade in app dashboard, click to show module info not go to odoo.com
    21. Can clear and reset account chart. Be cautious
    22. Update online manual and developer document to odoo12
    23. Add reset or clear website blog data
    24. Customize Odoo Native Module(eg. Enterprise) Url
    25. Add remove expense data
    26. Add multi uninstall modules
    27. Add odoo boost modules link.
    28. Easy Menu manager.
    29. Apps version compare. Add Install version in App list. Add Local updatable filter in app list.
    30. 1 key export app translate file like .po file.
    31. Show or hide odoo Referral in the top menu.
    32. Fix odoo bug of complete name bug of product category and stock location..
    33. Add Demo Ribbon Setting.
    34. Add Remove all quality data.
    35. Fixed for odoo 14.
    
     
    This module can help to white label the Odoo.
    Also helpful for training and support for your odoo end-user.
    The user can get the help document just by one click.
     
    
    For more support https://www.sunpop.cn

  • 如何升级到odoo13,模块从odoo12到13的开发对比及注意要点
    G guohuadeng

    原文地址,持续更新:
    https://www.sunpop.cn/odoo13_upgrade_from_odoo12_key_compare/

    odoo13正式发布已有1个多月,引入了更多的功能,更快的速度(从代码变化中可以很明显的感受到),更友好的的界面。

    我们也成功的在客户上线了2个odoo13的项目,项目的部份模块也放到了官方市场,近百个odoo13的模块,多数是按 odoo13 的开发规范和业务规范将 odoo13 的模块进行了升级。
    odoo 13 的项目模块集合
    可在此购买或免费下载。

    我们总结了 odoo12 --> odoo13 的部份不同,分为 1 模型,2 视图,3 前端开发, 4 业务逻辑三大部份,让大家了持续更新。

    参考:开发变更(FQ)

    业务:https://www.sunpop.cn/odoo13_new_function_update-_renewal/

    Tip: 可通过指令操作找出需要改的后端代码

    grep -nri 'oldname\|sudo([^\)]\+)\|api.multi\|api.returns\|api.one\|api.cr\|api.model_cr\|12.0\|compute=' $MODULE
    
    

    =============
    替代文字

    ============

    1 模型
    1.1 manifest
    改版本号如 13.19.11.30
    1.2 移除的@api
    @api.multi, @api.returns, @api.one, @api.cr, @api.model_cr
    1.3 chromeheadless 即将取代 wkhtmltopdf
    1.4 多用 active_ids 取代 active_id
    1.5 compute变化
    多用 compute 取代 onchange
    compute_sudo 默认是True
    增加 @api.depends_context
    翻译的 key 是 lang,这个常用
    延迟 recompute(),flush()后才存储
    compute设置关联字段值时,要注意关联字段已有赋值
    recompute会改生在 create, write 和 onchange
    更好的 recompute 触发器
    1.6 延迟update,write()不马上更改,要flush()
    1.7 @api.create_multi 批量创建,多用提升性能
    1.8 debug模式下log可见到更多的权限信息
    1.9 增加 with_user(user) 直接处理用户切换, 判断值 env.su
    1.10 审计处理从 track,track_sequence 改为 tracking
    1.11 ir.actions.act_window 中移除 multi,替代为binding_view_types
    1.12 小数点处理去除dp.get_precision
    1.13 selections 类型的 field 只能支持 string
    1.14 binary字段类型默认是存到附件模型中
    1.15 sql执行注意增加 cr.commit
    1.16 多公司处理,depends_context(company), with_company()
    1.17 cli指令增加参数 upgrade-path
    2 视图
    2.1 tree views 的汇总增加 avg
    2.2 xml定义移除view_type
    2.3 views 增加参数 import, optional, expand
    2.4 tree中 groupby 中可放 button 标签

    3 前端
    3.1 jQuery 3.x
    3.2 Chartjs
    3.3 bootstrap 4.x
    3.4 fontawsome 5.x
    要改为直接使用名称,如area-chart 改 chart-area
    3.5 rpc 传参要用 context
    3.6 multi-company widget
    4 业务逻辑
    4.1 财务
    account.invoice 改为 account.move
    account.invoice.line 改为 account.move.line
    account.invoice.tax 改为 account.move.lin
    account.voucher 改为 account.move
    account.voucher.line 改为 account.move.line
    4.2 基础
    res.partner的客户/供应商由 customer_rank/ supplier_rank处理


  • 免费开源odoo13,12,11,10改logo,自定义,清除所有数据模块
    G guohuadeng

    原文地址,更好阅读体验: https://www.sunpop.cn/app_odoo_customize_debrand_v12/

    作为odoo开发者,经常要进行调试,数据清理,也要为客户提供自定义工作,因此专门开发了这个开源模块,欢迎使用。

    欢迎在官网 好评支持

    您的支持将让中国的开发者,中国的odooapp在官方市场更受关注,谢谢 :)

    ==========================================

    在符合odoo开源协议的前提下,去除odoo版权, 去除odoo 相关logo信息,自定义你的odoo

    可完全自行设置下列 odoo 选项,让 odoo 看上去像是你的软件产品

    • odoo13版本下载--持续更新

    • odoo12版本下载--持续更新

    • odoo11版本下载--持续更新

    • odoo10版本下载--持续更新

    替代文字

    模块功能

    1. 删除菜单导航页脚的 Odoo 标签
    2. 将弹出窗口中 "Odoo" 设置为自定义名称
    3. 自定义用户菜单中的 Documentation, Support, About 的链接
    4. 在用户菜单中增加快速切换开发模式
    5. 在用户菜单中增加快速切换多国语言
    6. 对语言菜单进行美化,设置国旗图标
    7. 在用户菜单中增加中/英文用户手册,可以不用翻墙加速了
    8. 在用户菜单中增加开发者手册,含python教程,jquery参考,Jinja2模板,PostgresSQL参考
    9. 在用户菜单中自定义"My odoo.com account"
    10. 单独设置面板,每个选项都可以自定义
    11. 提供236个国家的国旗文件(部份需要自行设置文件名)
    12. 多语言版本
    13. 自定义登陆界面中的 Powered by Odoo
    14. 快速删除测试数据,支持模块包括:销售/POS门店/采购/生产/库存/会计/项目/消息与工作流等.
    15. 将各类单据的序号重置,从1开始,包括:SO/PO/MO/Invoice 等
    16. 修复odoo启用英文后模块不显示中文的Bug
    17. 可停用odoo自动订阅功能,避免“同样对象关注2次”bug,同时提升性能
    18. 显示/隐藏应用的作者和网站-在应用安装面板中
    19. 一键清除所有数据(视当前数据情况,有时需点击2次)
    20. 在应用面板显示快速升级按键,点击时不会导航至 odoo.com
    21. 清除并重置会计科目表
    22. 全新升级将odoo12用户及开发手册导航至国内网站,或者自己定义的网站
    23. 增加清除网站数据功能
    24. 自定义 odoo 原生模块跳转的url(比如企业版模块)
    25. 增加删除费用报销数据功能
    26. 增加批量卸载模块功能
    27. 增加odoo加速功能
    

    使用方法:将解压后的 app_odoo_customize 放到 odoo的 addons目录下,激活开发者模式,应用-->更新应用列表, 找到 "App odoo Customize"模块,安装即可。

    Debranding Title,Language,Documentation,Quick Debug,Quick Data Clear)
    Quick customize, debranding, boost, reset data, debug. Language Switcher.
    Easy Delete data.reset account chart.
    odoo debrand, odoo debranding, customize my odoo.

    App Odoo Customize(Debranding Title,Language,Documentation,Quick Debug)
    ============
    White label odoo.
    Support Odoo 13, 12, 11, 10, 9.
    You can config odoo, make it look like your own platform.
    1. Deletes Odoo label in footer
    2. Replaces "Odoo" in Windows title
    3. Customize Documentation, Support, About links and title in usermenu
    4. Adds "Developer mode" link to the top right-hand User Menu.
    5. Adds Quick Language Switcher to the top right-hand User Menu.
    6. Adds Country flags  to the top right-hand User Menu.
    7. Adds English and Chinese user documentation access to the top right-hand User Menu.
    8. Adds developer documentation access to the top right-hand User Menu.
    9. Customize "My odoo.com account" button
    10. Standalone setting panel, easy to setup.
    11. Provide 236 country flags.
    12. Multi-language Support.
    13. Change Powered by Odoo in login screen.(Please change '../views/app_odoo_customize_view.xml' #15)
    14. Quick delete test data in Apps: Sales/POS/Purchase/MRP/Inventory/Accounting/Project/Message/Workflow etc.
    15. Reset All the Sequence to beginning of 1: SO/PO/MO/Invoice...
    16. Fix odoo reload module translation bug while enable english language
    17. Stop Odoo Auto Subscribe(Performance Improve)
    18. Show/Hide Author and Website in Apps Dashboard
    19. One Click to clear all data (Sometime pls click twice)
    20. Show quick upgrade in app dashboard, click to show module info not go to odoo.com
    21. Can clear and reset account chart. Be cautious
    22. Update online manual and developer document to odoo12
    23. Add reset or clear website blog data
    24. Customize Odoo Native Module(eg. Enterprise) Url
    25. Add remove expense data
    26. Add multi uninstall modules
    27. Add odoo boost modules link.
    

    This module can help to white label the Odoo.
    Also helpful for training and support for your odoo end-user.
    The user can get the help document just by one click.

    For more support https://www.sunpop.cn


  • 解决odoo13 无法断点调试的bug fixed,Process finished with exit code -1073740940 (0xC0000374)
    G guohuadeng

    原文地址,更好阅读体验:
    https://www.sunpop.cn/odoo13_bug_fixed_can_not_debug_on_python_3-7/

    在对odoo 进行断点调试时,只要将 python 升级到 3.6及以上的版本,必然会报错退出

    Process finished with exit code -1073740940 (0xC0000374)
    

    此问题在 odoo12 时,是可以通过不升级,使用 python 3.5 来解决的,随着 odoo 13 的升级,最低的环境要求变成了 python 3.6 ,因此已经没有 work around 了,只能找到解决办法。

    原来以为是 Pycharm 的问题,将 ide 换成了 vscode,然后发现 vscode 要配置的东西实在太多,还是使用熟悉的 IDE 好,只能生磕了。

    此问题从 odoo12 一直困扰,也尝试过解决但无果,大量扒资料,前后也有数天。。。才发现是个 python 的 bug 导致,详情参阅 https://bugs.python.org/issue36792#msg342966

    解决办法,将 odoo 相关代码改下,就是加一句

    ln = ln[0:ln.index('.')]
    

    此问题也提交给了 odoo 官方。https://github.com/odoo/odoo/issues/40061

    并入我们的 odoo13 绿色版 fixed https://github.com/guohuadeng/odoo13-x64

    替代文字

    解决这个问题,就可以愉快的进行 odoo13 调试了!


  • odoo13正式发布的官方功能说明,覆盖46大模块272功能点
    G guohuadeng
    原文更好阅读体验,不断更新。 可访问: https://www.sunpop.cn/odoo13_release_notes_all_module_features/
    
    
    odoo13正式发布已有接近两周时间,引入了更多的功能,更快的速度,更友好的的界面。
    
    相关的中文翻译及应用市场也持续跟进。成都、上海、香港即将相续迎来新版本的发布会,可以看到odoo13 热度居高不下。
    
    odoo 官方近日释出 《odoo 13 release notes》 。覆盖46大模块272功能点,让我们一起看看 odoo13 的完整全功能,体验下 13 是如何更好的满足我们的业务需要。
    
    更多文章,请参考本站 odoo13 专题 。本文是机器翻译,会持续更新为更好理解的中文。
    
    

    体验 odoo 13,请点此访问 odoo 官方伙伴-广州尚鹏提供的 odooApp13演示网站,注册试用,本试用站已安装若干我们开发的业务增强模块。

    替代文字

    会计
    易用性

    会计凭证及凭证明细中可查看详细操作审计及事件关联;从帐龄余额和合作伙伴分类帐中手动对帐合作伙伴。在移动端查看会计仪表板。

    和解

    将付款与应收款和应付账款对账。查找容易对帐的条目(搜索,统计按钮)。从销售订单中查找项目;银行对帐报告改进。冲销中每行多个税金

    期刊

    日志的默认集,以防止错误;在财务报告中选择几种帐户日记帐。

    资产

    新的资产报告;通过账户管理资产;

    比利时本地化

    导入比利时电子发票。防止在资产负债表和损益报告上出现帐户错误。

    税收

    有锁定日期的定期关闭;简化税收配置;每个税率仅征收一个税;在税收映射中可见的税收类型。

    开票

    在Odoo会计中导入大量客户发票。通过日记帐分录选择发票参考类型。

    供应商账单

    SEPA地区允许进行技术改进和QR代码供应商账单付款。

    国家环保总局

    已添加“后退预订”选项。它有助于定义应如何处理借记,单个合并借记或多个借记。

    会计引擎

    客户发票,供应商账单和日记帐分录的模型已经合并,从而使这些文档的版本更具灵活性。

    文件资料

    改进了PDF预览器的布局。

    增值税

    避免根据增值税号重复合作伙伴。

    跟进

    从后续报告中发送短信。

    税务云

    易于配置。向客户显示税额而不是计算的税率。

    活动项目
    活动类型

    新活动类型,用于请求从记录中上载文档。

    易用性

    活动视图已改进,具有更多功能和更好的活动计划可用性;活动类型中的默认用户和描述

    今天的会议

    一天的会议是将您所有活动聚集在一个屏幕中的活动。

    亚马逊连接器
    亚马逊连接器

    在Odoo中自动导入您的Amazon销售。同步交货(与FBA和FBM兼容)。

    批准书
    请求

    申请批准任何类型的物品,借用物品,购买等

    批准人

    定义谁必须批准请求:员工经理,负责人,...以及所需的许多批准

    活动项目

    如果您必须批准或拒绝新请求,请获取通知。

    通知

    员工将收到有关请求结果的通知。

    评价
    请求

    按需评估,通过员工档案要求。定义员工可以要求评估的时间范围。

    通知事项

    开展活动来管理评估;发送带有适当调查链接的自定义电子邮件。

    提醒事项

    提醒经理和/或员工,他们可以要求评估。

    大体时间

    定义最小和最大时间范围以请求或安排评估

    客户关系管理
    活动

    管道结合了消息和活动。使用机会和邮件对象的强大筛选器。

    铅矿(IAP)

    从您的渠道中,根据国家,技术,规模等产生新的潜在客户。

    潜在客户评分

    统计分析可以确定关闭线索的可能性。

    短信

    从潜在客户和机会发送短信。

    铅富集(IAP)

    Enrich根据电子邮件地址提供企业数据,从而成为领先者。

    销售团队

    简化的销售团队配置。

    讨论
    动作

    在看板和列表视图中将显示一个警告图标,警告您需要对这些记录执行操作。

    历史

    在“讨论”菜单中获取所有通知的历史记录

    档案

    直接在聊天记录或讨论中拖放文件。

    电邮

    现在已注册来自传入电子邮件的抄送。您可以轻松地将它们添加为文档的跟随者。

    通知

    新的通知系统使它们更现代,并且可以在前端使用。

    文件资料
    易用性

    在列表视图中管理文档;YouTube视频的缩略图邮件;可视化大型文档的上传进度;可视化看板中的标签

    访问权限

    按工作区管理读取访问权限(单独的读取和写入访问权限。员工可以查看自己的文档;

    拖放

    将您的文档从一个工作区拖放到另一个工作区。

    积分

    查看招聘应用程序,工资单,产品的文档。

    电子商务
    产品展示

    主产品图片的大小与多余图片的大小相同。可以将其他图像添加到产品变型中。URL的产品变体

    PayU Latam

    现在,拉丁美洲最受欢迎的付款收款方可用于在线付款:电子商务,报价,发票。它可在阿根廷,巴西,智利,哥伦比亚,墨西哥,巴拿马和秘鲁使用。

    建筑模块

    产品的搜索栏摘要已添加。

    股票

    将仓库链接到您的电子商务。

    易用性

    新的“立即购买”按钮可简化购买流程。在前端编辑产品描述;搜索体验变得简单

    优惠券和促销

    对多种产品应用折扣。轻松推广产品(序列)。

    电子学习
    测验

    在课程结束时使用快速测验对学员进行评估。

    轮廓

    检查个人资料中的等级,徽章和管理收藏夹

    资质认证

    认证过程,包括付款可能性,规则,使用调查的时间安排

    课程

    根据内容自动计算课程持续时间。

    见习生

    在联系表上知道哪些合作伙伴拥有证书或遵循您的课程。轻松联系他们

    关键绩效指标

    分析您的课程保留率,关注最多和评分最高的课程。

    易用性

    在全屏模式下共享您喜欢的内容。

    电子商务

    通过电子商务销售课程

    网站

    直接从内容创建和管理课程和课程

    论坛

    将课程链接到论坛,让您的社区回答您的问题

    电子邮件营销
    关键绩效指标

    发送的每封电子邮件的转化KPI(在号召性用语上使用UTM跟踪器):创建的潜在客户数量,创建的订单数量,产生的收入。

    易用性

    现在,您可以在群发邮件中添加一个名称,该名称可以与主题不同,以帮助您组织管道。

    雇员
    存在

    根据出勤,休假,登录,IP地址或已发送电子邮件控制员工的状态

    首选项

    在一个地方管理用户偏好和员工数据。

    易用性

    您的员工现在可以编辑其私人信息。新的搜索面板,跟踪员工的合同问题,放大图片

    技能专长

    在员工表上管理技能和技能水平。与电子学习认证集成。

    恢复

    您的员工现在可以填写简历以获取有关其经历的信息。

    入职

    定义一个入职计划,该计划将创建一系列活动来欢迎您的员工。

    关键绩效指标

    现在,您可以拥有有关合同和员工流动率的统计信息。

    合同

    标引,特定薪金扣除,直接从合同中要求签名,标引,薪水,特定薪金扣除

    时间表

    管理超过2周的日程安排,管理员工兼职

    安全

    员工资料和员工薪资已分开,以确保更好的数据安全性。

    文件资料

    管理超过2周的日程安排,管理员工兼职

    事件
    短信

    使用SMS文本消息交流有关事件的信息。

    易用性

    在事件轨道上的甘特图。

    花费
    客户发票

    选择一个销售订单将费用重新开票给您的客户,或者选择一个分析帐户来跟踪成本。

    员工报销

    薪资整合。偿还员工的工资单。

    易用性

    批量导入您的费用,以简化报告的创建并更快地获得报销。

    现场服务
    介入

    在甘特图视图上计划您的干预。

    专案

    根据项目组织干预和工作表

    工作表

    可编辑的工作表,预览和签名

    营业额

    直接从任务创建销售订单。

    时间表

    直接从任务记录时间并检查计时器

    任务

    在干预期间从任务中选择产品,然后为它们开票。

    舰队
    索赔报告

    从员工那里获得驾驶汽车的历史。

    薪水

    通过薪水实现未来驾驶员管理的自动化。

    服务台
    潜在客户

    将销售线索转换为服务台故障单。

    促销过后

    通过管理退货,贷方通知单,优惠券和支持票中的维修来改善您的售后服务。

    多服务水平协议

    将多个SLA策略应用于单个服务台团队的票证。

    时间计费

    改进了重新开票花费时间的流程。

    门票关闭

    允许客户从其门户关闭票证。

    行动计划
    门户网站

    面向最终用户和服务提供商的新IAP门户。

    潜在客户

    改进了潜在客户生成(显示)中的国家检测。

    揭示

    与多网站兼容的潜在客户。铅矿开采现在依赖于行业。

    IAP帐户

    现在,IAP帐户对所有公司都是通用的,如有必要,可以将其限制为特定的帐户。

    短信

    改进的短信发送工具。

    物联网
    Ingenico

    与Ingenico付款终端集成,用于BeNeLux的PoS。

    设备状态

    跟踪哪些设备仍连接到IoT Box。

    扫描范围

    在网络中搜索IoT Box时,扫描特定的IP范围。

    库存
    路线

    将“按订单生产”路线重命名为“按订单补货”,以提高清晰度(因为我们并不总是“制造”产品,但有时我们会购买它。

    帐户

    当“已收/已交付库存”帐户与“库存评估帐户”相同时,发出警告,以防止用户错误地配置其产品类别。

    多公司

    在库存移动行上添加字段company_id,以仅显示用户公司的产品移动。

    产品

    现在可以在转帐上看到产品的说明。可以根据转帐的类型(交货,内部或收货)来修改描述。

    采摘

    向用户分配选项。可以按选择或按组(从选择列表中)进行选择。

    交货

    向您的客户收取估计或实际费用;打印DHL,Easypost,UPS,FedEx和Bpost的退货标签;如果销售订单中的地址已更改,则发出交货警告

    批号/序列号

    通过新的注释字段添加有关序列号或批号的其他信息:在发票上显示序列号/批号;通过自动生成或从电子表格抄送进行批量分配。

    估价

    现在,股票的估值由估值层表示。它使用户可以清楚地了解股票的价值。

    规则

    将计划日期中的更改传播到下一个动作;如果有库存产品,则将从库存中提取产品。如果不是,则应用MTO,它将自动重新排序。

    库存调整

    无需创建库存调整即可轻松编辑产品的数量。

    通知

    如果无法按时完成交付,则通过下一个活动通知用户;在验证时从交货单发送自动电子邮件:发送短信。

    预测

    借助新的图形和网格视图,轻松检索您的预测库存。

    到岸成本

    现在,到岸成本可以与供应商账单关联。将着陆成本应用于以AVCO计价的产品。

    休息时间
    批准书

    对于未经批准的休假类型,请假申请将直接标记为已批准。

    批准人

    指定谁要进行第二次准假。

    易用性

    在部门上搜索将在子部门上搜索。新的仪表板可检查剩余的叶子。

    通知

    接收有关特定请假类型的通知。

    访问权限

    在员工表上,尽可能批准休假经理。

    在线聊天
    仪表板

    新的仪表板可按操作员获取统计信息。

    分配

    运营商之间的实时聊天对话的更有效分配已经得到了解决。

    午餐
    供应商

    管理供应商的可用性。

    易用性

    通过修改界面(ala文档)简化午餐的顺序

    易用性

    在聊天记录或应用中通知用户。

    邮件

    将当天订购的电子邮件直接发送给供应商。

    制造业
    材料清单

    从BoM成本与结构报告中查看BoM版本和正在进行的ECO。定义物料清单中确切或灵活的组件数量

    工作指示

    建议保留文档,以供在工作单上使用;在生产结束时生成序列号/批号;定义开始日期以计划您的工作订单;工单上的计时器

    MPS

    主生产计划程序已经过全面审查。它的可用性得到了改善。现在,您可以查看确认的销售额并将它们与您的估计进行比较。

    工作中心

    允许将工作中心替换为另一个工作中心。当两个工作中心可以完成同一工作时,这很有用。

    分包

    定义分包物料清单以跟踪您分包商处的组件并接收成品。

    工作表

    直接在Odoo中将Google幻灯片用作工作表。

    市场行销
    范本

    轻松访问广告系列模板可获得一些启发。

    Odoo社交

    Odoo Social是一个新的应用程序,它使您可以监视和发布在Twitter和Facebook等社交媒体上。

    访客追踪

    概述您的在线访客,并使用推送通知和实时聊天请求与他们互动。

    推送通知

    该模块允许您通过社交应用向网站的订阅访问者发送网络推送通知。

    营销自动化
    短信

    自动化SMS并将其集成到您的Marketing Campaigns中。

    移动
    扫瞄

    扫描条形码以在业务文档中查找产品

    时间表

    为了改善在小型设备上的用户体验,我们现在按天而不是每周显示时间表网格。

    讨论

    聊天者的关注者选项现在可以在Mobile上使用。

    文件资料

    现在,文档应用程序已完全集成到我们的移动应用程序中。

    易用性

    现在,移动设备支持左侧搜索面板。直接在视图中搜索;

    推送通知

    当有人为您分配活动时,在您的手机上接收推送通知。

    滑动

    在所有通知上向右滑动以将其标记为已读。如果向左滑动,则会在其中添加一个星星。

    工资单
    好处

    生成并检查员工的福利,以根据其带薪时间和带薪休假计算工资。从员工那里获得驾驶汽车的历史。

    合同

    多合同管理来计算工资单。

    工作录入

    甘特图管理工作时间以生成工资单。

    文件资料

    将您的HR文件集中在文档中。

    结构体

    可以按结构类型对结构进行分组并具有自己的规则。

    薪水

    从员工前端表格索取文件,例如身份证,驾驶执照。

    餐券

    报告以了解员工可以根据其工作计划获得多少餐券。

    具体工资

    员工离职。

    易用性

    拆分员工工资单和员工通讯录以确保数据和文档的机密性。

    报告中

    具有薪资统计和信息的新仪表板。

    比利时本地化

    支持比利时信贷时间,特定的CP 200工作条目类型。dmfa的XML,文档281.10和281.45,员工离职费。

    会计

    从批处理工资生成会计分录。

    历史

    保留结构更改的历史记录。

    规划
    规划

    管理员工的日程安排并预测项目。

    的角色

    通过为员工定义角色来管理轮班。

    复制

    通过复制上一个期间的计划,一键安排排班。

    再发

    让您的班次轮流出现。

    空档

    让您的员工根据自己的角色来管理开放式班次。

    班次模板

    将班次另存为模板,一键组织您的计划。

    不可用

    发送您的计划,让您的员工自己管理不可用的情况。

    门户网站

    查看您的计划并在前端视图上为自己分配空缺

    PLM
    PLM批准

    查看在ECO上发生的所有批准的历史记录。

    销售点
    雇员

    现在,您只能对多个员工使用一个会话。在PoS会话中可以同时连接多名员工

    易用性

    新的统计按钮可通过定义默认的拣配类型来访问订单的详细信息,菜单的重新排序以及在装机方面的改进。

    键盘

    使用PoS前端界面上的键盘来管理订单。

    快讯

    下一个活动,通知用户何时应关闭并重新打开会话。

    报告中

    将PoS销售额计入产品销售额。在PoS报表中管理多种货币

    印表机

    连接没有IoT Box的EPSON票证打印机。

    现金控制

    设置默认现金开始,现金结束并跟踪任何现金差额。

    会议闭幕

    在PoS结束时会创建一个会计条目。这样可以改善性能并提供更清晰的付款历史记录。

    门票提示

    在打印票证后添加提示。通过电子邮件发送票证,而不是打印票证

    付款

    通过SIX和Adyen付款终端集成来处理付款。

    采购
    报告中

    一个新的仪表盘可以分析您的购买情况。

    采购订单

    在采购订单中添加节和注释。

    变体

    从属性网格中批量添加产品变体。

    项目
    预测

    预测可用性和计划改进。包括重复性,离开集成和默认视图选择。

    项目概况

    更好地跟踪与项目相关的成本和收入。

    易用性
    演示数据

    在某些应用程序中添加了演示数据,以简化测试体验。

    设定

    加快安装过程(帐户和语言图表)。

    报告中

    现在可以从大多数数据透视图视图访问记录列表。过滤过去5年的数据;分组超过2组。

    活动项目

    新活动视图

    Snailmail(IAP)

    通过snailmail发送信件时,改进了可用性和错误管理。

    甘特

    带有拖放功能的新甘特图,可轻松调整大小并记录创建。

    访问权限

    组已重命名为更面向业务。管理员代替管理员,并按应用程序进行重组。

    时区

    未设置时区时警告用户。

    看板

    序列可以从看板视图重新排序。

    日期过滤器

    新的日期过滤器(按月,季度,年)。

    多公司

    允许用户一次与多家公司的文档进行交互。通过添加公司来共享产品或不共享产品

    地图检视

    在地图上显示记录和路线。

    自订清单

    每个用户都可以在列表视图中添加或隐藏一些列,以便仅使用所需字段来根据其活动量身定制屏幕。

    进口

    改进了导入时的错误管理。

    语言能力

    使用新的翻译模式直接从表单视图进行翻译。新的语言代码取代了地球仪,可帮助您了解所使用的语言。预览不同语言的邮件

    日历

    日历视图的用户界面经过重新设计,具有一些小的新功能,例如可以直接从事件弹出窗口中回答事件。

    文件资料

    自定义文档的样式(颜色,字体)。

    搜索面板

    现在,可从任何多记录视图中使用搜索面板。

    色带

    用于表单视图的新功能区。

    列大小调整

    调整了可编辑列表的列大小,以提高舒适度。

    签名小部件

    新的签名小部件可在任何过程中请求签名确认。

    出口

    快速导出列表,轻松导出电子表格屏幕上显示的内容

    产品

    允许拖放其他产品介质以对其进行排序。

    转介
    游戏

    为您的员工提供一个超级英雄游戏,以组建团队并通过招聘过程赢得积分。

    招募

    与招聘应用程序集成,可自动为您的员工分配积分。

    分享

    通过社交媒体或电子邮件轻松分享工作职位。

    移动

    移动友好。一键推荐朋友。

    UTM

    推荐应用基于UTM引擎将合适的员工链接到合适的申请人。

    租借
    产品

    根据其可用性管理可出租产品的交付和退货。使用基于期间的定价和延迟成本。在甘特图中可视化计划。借助Sign应用程序集成,可以使客户当场填写和签署租赁文件。

    2个日期选择器

    从统一的小部件中选择租赁日期作为开始和结束日期。

    营业额
    退款

    您可以在销售订单上看到已退款的发票行。

    开票

    更好的措辞。仅在需要时才显示预付定金的选项。从统一的小部件中选择租赁日期作为开始和结束日期。

    签名

    签署,然后在一个不间断的流程中支付报价。新的小部件可自动生成签名。

    订购日期

    现在,订单和确认日期是一个统一的智能字段。

    产品变体

    可以为每个变体添加多个图像。

    产品配置器

    统一按钮可将产品添加到销售订单中,无论是标准产品还是可自定义产品。

    新销售订单表格

    订单行显示更清晰,列标签更清晰。

    电邮

    现在针对每个渠道量身定制确认电子邮件:报价,电子商务。

    支付宝

    中国商人可以使用支付宝在线支付。

    电汇

    建议的支付通信是现在,  默认情况下,订单/发票#。

    额外费用

    现在,付款表格中会显示在线支付所要求的额外费用。

    选购产品

    更改报价模板时,将重置可选产品。

    交货

    更好的界面,用于选择承运人并为订单设置交付成本。

    网格输入

    从属性网格条目中批量添加产品变体。

    亚马逊同步

    在Odoo中自动导入您的Amazon销售。同步交货。

    价目表

    从销售价格中添加更多价格。

    标志
    没有电子邮件

    现在,您无需发送电子邮件即可直接签署文档。

    退款

    现在,签名请求会触发活动。

    易用性

    全面审查用户体验:配置文档,发送,签名。

    可追溯性

    活动日志的完全可追溯性和不可更改性。各方可以将日志以PDF格式打印。

    短信营销
    短信营销

    创建,发送和跟踪短信。

    社会营销
    社会营销

    Odoo Social是一个新的应用程序,它使您可以监视和发布在诸如Twitter和Facebook之类的社交媒体上。

    推送通知

    该模块允许您通过社交应用程序将Web推送通知发送给网站的订阅访问者

    战役

    创建完全集成的数字广告系列,其中包含电子邮件,短信,推送通知和社交帖子。从点击次数,收入,创造的潜在客户和销售等方面,概述广告系列的结果。

    饲料

    将信息流添加到仪表板以监视您的Facebook和Twitter帐户,并通过评论,顶和帖子与您的社区进行交互。(当前不适用于LinkedIn)。

    实时聊天请求

    与您的一个或多个网站访问者进行对话。他们将在跟踪页面上的下一步操作中收到您的消息。

    线上访客

    获取您网站访问者的准确列表,并通过电子邮件,短信,推送通知或实时聊天请求与他们联系。

    发送和安排帖子

    直接发送或安排要在Facebook,Twitter和LinkedIn上发送的帖子。

    调查
    访问权限

    澄清访问权限;

    证明书

    创建证书,调查时间限制。

    易用性

    从看板的角度了解认证的成功率是多少。您还可以访问其他统计信息。

    工作室
    活动

    活动计划和活动视图现在可用于自定义模型。

    易用性

    将边栏“节点选择器”中的展开节点与文档中的预览对齐。

    小部件

    整数和,签名

    领域

    新的搜索栏可轻松查找Studio中的现有字段。

    易用性

    参见看板中的不可见元素;通过删除网格视图,设置另一个视图选项并启用阶段来防止用户进行错误的自定义。

    恢复默认视图

    恢复默认视图。

    技术
    易用性

    从“ ir.attachment”中删除“ datas_fname”字段,根据预测的需要,网格视图现在支持日期时间字段。

    群发邮件活动

    删除了mass_mailing.campaign模型以仅保留utm.campaign模型。此更改意味着mass_mailing.tag和mass_mailing.stage移至utm模型。

    Create_uid启发式改进

    邮件网关运行程序用户用于通过传入电子邮件创建大多数文档。现在,我们使用电子邮件进行匹配,从而将文档创建和更新链接到用户。

    Create_uid启发式改进

    邮件网关运行程序用户用于通过传入电子邮件创建大多数文档。现在,我们使用电子邮件进行匹配,从而将文档创建和更新链接到用户。

    时间表
    开始/停止

    定时执行任务以轻松记录时间表。

    门户中的发票时间表

    现在可以在门户网站上查询与发票有关的时间表。

    网络电话
    通话队列

    在CRM中,您可以轻松创建呼叫队列。然后,这些呼叫将在您的VOIP界面上。该队列基于您的“呼叫下一个”活动,使您可以轻松地在VOIP界面中查看所有需要进行的呼叫。

    电话号码

    直接通过他的电话号码拨打任何联系人

    网站
    主题

    轻松更改徽标大小;自定义CSS和JS的空文件

    易用性

    更新到Bootstrap 4.3.1; 手机上的活动;

    锚

    版本的锚点。

    网志

    审查博客布局。全新的现代意大利设计(预告片,最新博客文章,卡片等)。

    搜索引擎优化

    如果您将标题和描述字段保留为空,则页面将使用默认标题和描述。

    性能

    推迟网站JS加载以提高性能。

    自动配置的联系表格

    新的联系表单会自动使用默认字段进行配置。

    自动配置的联系表格

    新的联系表单会自动使用默认字段进行配置。

    易用性

    新的字体选择工具。New Modal用于上传图像,控制图像的大小和质量。

    易用性

    新的字体选择工具。New Modal用于上传图像,控制图像的大小和质量。

    主题和摘要

    很少有片段和主题的修复和改进。

    URL中的ISO代码语言

    对于lambda用户而言,语言的iso代码不是很容易理解。因此,您现在可以在网站网址上指定语言。

    论坛

    您可以订购论坛并使用(旧的)新讨论模式。

    身分识别

    您可以在网站上设置特定徽标,而在公司上设置其他徽标。

    身分识别

    您可以选择一种Google字体并在您的网站上使用它。

    错误处理程序

    带有Bootstrap的Toast组件的新错误处理程序。

    通讯

    快速在您的网站上添加新闻通讯,并将其自定义为其他摘要。

    实时聊天记录

    作为访客,请通过电子邮件获取与操作员的对话记录。

    门户网站

    门户网站上现在提供了Chatter和附件。

    事件

    与会者扫描的用户界面已得到改进


  • odoo13正式发布,欢迎参与企业版社区版中文化翻译,建立我们的odoo13中文版专业版
    G guohuadeng

    原文更好阅读体验,不断更新。 可访问: https://www.sunpop.cn/odoo13_chinese_translate_transifex_profession/

    参与者(提PR)附送odoo13模块。

    ======================================
    odoo13 国庆献礼! 新发布的odoo13 在功能、性能、界面都有极大的更新,特别是企业版,在生产供应链和hr都增加了很多激动人心的功能,在可预见的将来必然会蓬勃发展。有关 odoo13 的在功能、性能、界面上各种功能增强,请参阅 我们的odoo13专题。

    广州尚鹏是 odoo 官方合作伙伴,亦可审核 Transifex 上的中文化翻译。

    为推动 odoo 中文化的发展,同时为保证自有商业客户的正常使用,建立此开源代码仓库repo进行 odoo13 中文化翻译。详情请查阅

    https://github.com/guohuadeng/odoo13-cn

    ==================================

    版本

    source: 社区版翻译

    source_ent: 企业版翻译

    翻译规范

    我们使用 odoo 对标 SAP 系统,故翻译上主要也参考 SAP。其次参考 MRPII 规范。在ref目录有相关文档。

    • SAP 术语
    • MRPII 术语
    • 行业标准术语

    如何贡献 odoo13 翻译

    odoo13 官方翻译主要通过 transifex.com ,由于 transifex 上的使用方便和审核效率问题,我们同时也建立了这个仓库,力争更快更精确的实现 odoo13 中文化。

    方法一:通过我们的 github 贡献翻译

    仓库地址:https://github.com/guohuadeng/odoo13-cn

    更新提交:使用 git PR(pull request),参考 https://www.jianshu.com/p/d921828bf623

    建议:在此 repo 上提 issue

    方法二:通过 transifex.com

    1. 注册登录 http://www.transifex.com
    2. 加入 odoo 中国团队 https://www.transifex.com/odoo/teams/
    3. 参与 odoo13 翻译
      总览: https://www.transifex.com/odoo/odoo-13/dashboard/

    模块翻译: https://www.transifex.com/odoo/odoo-13/translate/#zh_CN

    po下载与上传: https://www.transifex.com/odoo/odoo-13/language/zh_CN/

    文件夹说明
    ├─ref 参考文档

    ├─source 通过 .tx 获取的odoo的 PO 翻译文档,并更新,可直接用于 odoo13

    ├─source_ent 同上,企业版

    获取最新 .po 文件,更新后发布至 transifex

    1. 安装 tx 客户端,请先自行安装 pip3
    pip3 install transifex-client -i https://mirrors.ustc.edu.cn/pypi/web/simple
    
    1. 取最新的 po,先进入 /source 目录
    cd source
    tx pull -l zh_CN
    
    1. 查看下载的 po 文件并更改,在 ./source 目录下,即可看到相关的 odoo 翻译文件

    2. 推送翻译文件至 tx,参考 https://docs.transifex.com/transifex-github-integrations/github-tx-client

    tx push -t
    

  • 一键安装最新odoo 13,12,11社区版企业版+ postgresql10 +nginx在ubuntu上的自动安装脚本,阿里云测试通过,
    G guohuadeng

    @月满西楼 报错多数是有些python库没下载,多数是墙或者python list更新原因,不影响大局。

    本地包是指你从官网下载,上传到服务器上。远程的就是直接wget。
    本地宝多数用于企业版,这个都有说明,可以看下readme。


  • odoo开发规范,囊括模块视图后端前端规范,以odoo12为基准,
    G guohuadeng

    作为全球第一的开源ERP,开源的作用就是让您根据本企业业务特性,灵活的定制,实现动态的IT系统,可随着业务变化优化您的ERP,进而优化管理运营。

    对中大型企业而言,odoo必须进行开发才可落地,所以一个良好的开发规范,将更有助于团队协助,敏捷开发上线。

    本文内容亦是我们进行odoo开发的内部规范,主要参考官方开发教程翻译,原文在此:

    英文: https://www.sunpop.cn/documentation/12.0/reference/guidelines.html
    中文: https://www.sunpop.cn/odoo_develop_guidelines_python_widget_javascript/

    odoo开发规范
    本文介绍 Odoo 编码指南。其目的是提高 Odoo 应用程序代码的质量。事实上,正确的代码提高了可读性、简化维护、有助于调试、降低复杂性并提高可靠性。这些准则应该应用于每个新模块的开发和所有新开发。

    警告

    在stable(稳定)版本中修改现有文件时,原始文件样式将严格取代任何其他样式准则。换句话说,请不要修改odoo正式发布的已有文件或代码,以应用这些准则。它避免了中断代码行的修订历史记录。差异应保持在最小。有关详细信息,请参阅odoo官方的 pull request guide指南。

    警告

    修改master(主开发)版本中的现有文件时,仅可针对 revision(正在修订时)版本中的代码或大多数文件,将这些准则应用于现有代码。换句话说,仅当现有文件结构发生重大更改时,才修改它。在这种情况下,首先执行 move commit,然后才应用与其相关的更改。

    模块结构
    目录及对应作用
    data/:演示和数据文件
    models/:模型定义
    controllers/:控制器(包含HTTP路由)
    views/:视图和模版
    static/:web资源,包括css/, js/, img/, lib/, ...
    wizard/:向导及其视图
    report/:报表
    tests/:单元测试代码
    文件命名
    业务model放置在一个文件里,如果模块只包含一个model,它的名字就与模块名一致。如:

    models/<main_model>.py
    models/<inherited_main_model>.py
    views/<main_model>_templates.xml
    views/<main_model>_views.xml
    data/<main_model>_demo.xml
    data/<main_model>_data.xml
    例如:销售模块包含sale_order和sale_order_line两个模型,并且sale_order是主模型,所以文件将被命名为models/sale_order.py和 views/sale_order_views.py。
    对于数据文件命名,按用途进行命名:demo或者data。例如:data/sale_order_demo.xml和data/sale_order_data.xml
    每个模块的控制器都放在一个文件中,命名为main.py。如果是从另一个模块继承的,则将其命名为<module_name>.py。

    与模型不同,每个控制器类应包含在一个分离的文件中。例如,采购模块在控制器/portal.py 中实现其客户门户的一部分,并在控制器/购买.py 上实现其自身的典型路由。

    对于静态文件,由于资源可以在不同的上下文中使用(前端、后端、两者),因此它们将仅包含在一个捆绑包中。因此,CSS/Less、JavaScript 和 XML 文件应生捆绑一个其类型的后缀名称。

    即:im_chat_common.css,用于"资产_公共"捆绑的 im_chat_common.js,以及用于"资产_后端"捆绑的 im_chat_backend.js。如果模块只拥有一个文件,则约定将<module_name>.ext(即:project.js)。不要在 Odoo 外部链接数据(图像、库):不要使用图像的 URL,而应将其复制到我们的代码库中。

    关于数据,按用途拆分它们:数据或演示。文件名将是主模型名称,后缀为 _data.xml 或 _demo.xml。

    关于向导,命名约定是 :

    <main_transient>.py
    <main_transient>_views.xml
    其中<main_transient>是占主导地位的瞬态模型的名称,就像模型一样。<main_transient>.py 可以包含模型"transient_model.action"和"transient_model.action.line"。

    统计报表命名:

    report/<report_name>_report.py
    report/<report_name>_report_views.py
    可打印报表:

    report/<print_report_name>_reports.py
    report/<print_report_name>_templates.xml
    完整的文件列表如下:

    addons/<my_module_name>/
    |-- init.py
    |-- manifest.py
    |-- controllers/
    | |-- init.py
    | |-- <inherited_module_name>.py
    | -- <my_module_name>.py |-- data/ | |-- <main_model>_data.xml | -- <inherited_main_model>_demo.xml
    |-- models/
    | |-- init.py
    | |-- <main_model>.py
    | -- <inherited_main_model>.py |-- report/ | |-- __init__.py | |-- <main_stat_report_model>.py | |-- <main_stat_report_model>_views.xml | |-- <main_print_report>_reports.xml | -- <main_print_report>_templates.xml
    |-- security/
    | |-- ir.model.access.csv
    | -- <main_model>_security.xml |-- static/ | |-- img/ | | |-- my_little_kitten.png | | -- troll.jpg
    | |-- lib/
    | | -- external_lib/ | -- src/
    | |-- js/
    | | |-- <my_module_name>.js
    -- <my_widget_A>.js | |-- css/ | | -- <my_module_name>.css
    | |-- scss/
    | | -- <my_module_name>.scss | -- xml/
    | |-- <my_module_name>.xml
    -- <my_widget_A>.xml |-- views/ | |-- <main_model>_templates.xml | |-- <main_model>_views.xml | |-- <inherited_main_model>_templates.xml | -- <inherited_main_model>_views.xml
    -- wizard/ |-- <main_transient_A>.py |-- <main_transient_A>_views.xml |-- <main_transient_B>.py -- <main_transient_B>views.xml
    文件名应仅包含 [a-z0-9
    ] (小写字母数字和 _)

    警告

    使用正确的文件权限 : 文件夹 755 和文件 644。

    XML文件
    格式
    当定义一个记录的xml时,需要标记:

    id属性放在model属性前
    字段(field)定义中,name属性放在第一个。然后,将值放在标签内,或者放在eval属性中。最后将其他属性(widget、options...)按重要性排序。
    尝试按模型对记录进行分组。如果操作/菜单/视图之间存在依赖关系,则此约定可能不适用。
    使用在下一章节中定义的命名约定
    标签仅用于设置不可更新的数据noupdate=1,如果整个xml文件都是不可更新数据,则noupdate=1属性可以设置在标签上,而不需要标签。

    view.name
    object_name








    Odoo支持一些自定义标签作为快捷方式:

    menuitem:作为ir.ui.menu的快捷方式
    template: 表示只需要arch视图部分的QWeb视图
    report: 用于定义报表report action
    act_window:当record用不了的时候用它
    我们更推荐上述4个标签类型,相对于 record 标签。
    xml_id命名
    权限(Security)、视图(View)和动作(Action)使用的命名规则:

    菜单(menu): <model_name>_menu
    视图(view): <model_name>view<view_type>,view_type可能的取值有:kanban, form, tree, search
    动作(action): 主动作命名为<model_name>_action,其他的动作命名为<model_name>action,其中使用小写字母简单描述动作
    组(group): <model_name>group<group_name>,group_name可能的取值包括:user, manager,...
    规则(rule): <model_name>rule<concerned_group>,concerned_group可能的取值包括: 模型用户规则user, 公共用户规则public,多公司用户规则company

    ... ... ... ... ... ... ... 视图名称(name)使用点表示法:my.model.view_type 或者 my.model.view_type.inherit

    继承XML的命名
    继承视图的命名规则为

    #. Extension 扩展模式:使用与要扩展的原始视图相同的 xml id,并使用 _inherit 后缀 :如 视图view project.project_view_form 被扩展 为 project_forecast.project_view_form_inherit.
    #. Primary 主模式:保持原有 xml id。


    ...

    primary ... Python PEP8 选项 Odoo源代码基本准守Python标准PEP8,但是忽略其中一些规则:

    E501:行太长了
    E301:预计有1个空行,找到0
    E302:预计有2个空行,找到1
    E126:延长线过度缩进以用于悬挂缩进
    E123:关闭支架与开口支架线的压痕不匹配
    E127:延伸线过度缩进以进行视觉缩进
    E128:用于视觉缩进的缩进的延续线
    E265:阻止评论应以'#'开头
    Import 导入
    import 的顺序

    导入外部库
    导入odoo
    导入odoo的模块
    在每组中的导入按字母顺序排序

    1 : imports of python lib

    import base64
    import re
    import time
    from datetime import datetime

    2 : imports of odoo

    import odoo
    from odoo import api, fields, models # alphabetically ordered
    from odoo.tools.safe_eval import safe_eval as eval
    from odoo.tools.translate import _

    3 : imports from odoo addons

    from odoo.addons.website.models.website import slug
    from odoo.addons.web.controllers.main import login_redirect
    编程习惯
    每个python文件都应该以 # -- coding: utf-8 -- 作为第一行。
    简单易读的代码
    不要使用.clone()

    bad

    new_dict = my_dict.clone()
    new_list = old_list.clone()

    good

    new_dict = dict(my_dict)
    new_list = list(old_list)
    Odoo中编程
    避免创建生成器和装饰器:仅使用Odoo API已有的
    使用filtered, mapped, sorted, … 方法来提升代码可读性和性能。
    让你的方法可以批量处理
    当添加一个函数时,确保它可以处理多条数据,典型用法是通过 api.multi 装饰器,可以在self上进行循环处理

    @api.multi
    def my_method(self)
    for record in self:
    record.do_cool_stuff()
    避免使用 api.one 装饰器,因为它可能不会像预想中一样工作。
    为了更好的性能,比如当定义一个状态按钮时,不在 api.multi 循环里用search 和 search_count 方法,要用 read_group 来实现一次请求中全部计算。

    @api.multi
    def _compute_equipment_count(self):
    """ Count the number of equipement per category """
    equipment_data = self.env['hr.equipment'].read_group([('category_id', 'in', self.ids)], ['category_id'], ['category_id'])
    mapped_data = dict([(m['category_id'][0], m['category_id_count']) for m in equipment_data])
    for category in self:
    category.equipment_count = mapped_data.get(category.id, 0)
    context上下文环境
    context是一个 frozendict 不能修改。当需要使用不同的 context 来调用一个方法时,可以通过with_context 来实现。

    records.with_context(new_context).do_stuff() # all the context is replaced
    records.with_context(**additionnal_context).do_other_stuff() # additionnal_context values override native context ones
    在 context 中传递参数可能会产生危险的副作用。由于值是自动传播的,因此可能会出现某些不可预期行为。在 context 调用具有 default_my_field 键的模型的 create() 方法将为相关模型设置 my_field 的默认值。但是,如果固化此创建,其他对象(如 sale.order.line,在sale.order 创建中)具有一个相同字段 my_field,其默认值也将设置。

    如果需要创建影响某些对象行为的关键 context,请选择一个好名称,并最终按模块的名称为其前缀,以隔离其影响。一个很好的例子是 mail 模块的密钥:mail_create_nosubscribe, mail_notrack, mail_notify_user_signature, …

    不要绕过ORM
    当ORM可以实现的时候尽量使用ORM而不要直接写sql,因为它可能会绕过orm的一些规则如权限、事务等,还会让代码变得难读且不安全。

    very very wrong

    self.env.cr.execute('SELECT id FROM auction_lots WHERE auction_id in (' + ','.join(map(str, ids))+') AND state=%s AND obj_price > 0', ('draft',))
    auction_lots_ids = [x[0] for x in self.env.cr.fetchall()]

    no injection, but still wrong

    self.env.cr.execute('SELECT id FROM auction_lots WHERE auction_id in %s '
    'AND state=%s AND obj_price > 0', (tuple(ids), 'draft',))
    auction_lots_ids = [x[0] for x in self.env.cr.fetchall()]

    better

    auction_lots_ids = self.search([('auction_id','in',ids), ('state','=','draft'), ('obj_price','>',0)])
    防止SQL注入!
    使用 SQL 代码查询时,必须注意不要引入 SQL 注入漏洞。当用户输入被错误地过滤或引用错误时,存在此漏洞,从而允许攻击者向 SQL 查询引入不需要的子句(例如绕过筛选器或执行 UPDATE 或 DELETE 命令)。

    安全的最佳方法是永远不要使用 Python 字符串串联 (+) 或字符串参数插值 (%)将变量传递到 SQL 查询字符串。

    几乎同样重要的第二个原因,应该由数据库抽象层 (psycopg2) 来决定如何格式化查询参数,而不是您的代码!例如,psycopg2 知道,当您传递一个值列表时,它需要将它们格式化为逗号分隔列表,包含在括号中!

    the following is very bad:

    - it's a SQL injection vulnerability

    - it's unreadable

    - it's not your job to format the list of ids

    self.env.cr.execute('SELECT distinct child_id FROM account_account_consol_rel ' +
    'WHERE parent_id IN ('+','.join(map(str, ids))+')')

    better

    self.env.cr.execute('SELECT DISTINCT child_id '
    'FROM account_account_consol_rel '
    'WHERE parent_id IN %s',
    (tuple(ids),))
    这些都是非常重要的,所以在重构时也要小心,最重要的是不要复制这类错误!

    下面是一些令人难忘的示例,可帮助您记住问题的内容(但不要在那里复制代码)。在继续之前,请务必阅读 pyscopg2 的在线文档,以了解正确使用它:

    The problem with query parameters (http://initd.org/psycopg/docs/usage.html#the-problem-with-the-query-parameters)
    How to pass parameters with psycopg2 (http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries)
    Advanced parameter types (http://initd.org/psycopg/docs/usage.html#adaptation-of-python-values-to-sql-types)
    扩展的思考
    函数和方法不应包含太多的逻辑:使用大量小而简单的方法比使用少量大型和复杂的方法更可取。一条好的经验法则是,只要方法具有多个责任,就将其拆分(参考 http://en.wikipedia.org/wiki/Single_responsibility_principle)

    应避免在方法中硬编码业务逻辑,因为它可以防止子模块轻松扩展。

    do not do this

    modifying the domain or criteria implies overriding whole method

    def action(self):
    ... # long method
    partners = self.env['res.partner'].search(complex_domain)
    emails = partners.filtered(lambda r: arbitrary_criteria).mapped('email')

    better but do not do this either

    modifying the logic forces to duplicate some parts of the code

    def action(self):
    ...
    partners = self._get_partners()
    emails = partners._get_emails()

    better

    minimum override

    def action(self):
    ...
    partners = self.env['res.partner'].search(self._get_partner_domain())
    emails = partners.filtered(lambda r: r._filter_partners()).mapped('email')
    为了示例,上述代码是可扩展的,但必须考虑可读性,并且必须做出权衡。

    此外,相应地命名函数:小且正确命名的函数是可读/可维护代码和更严格的文档的起点。

    此建议还与类、文件、模块和包相关。(另请参阅 http://en.wikipedia.org/wiki/Cyclomatic_complexity)

    不要手动提交事务
    Odoo 框架负责为所有 RPC 调用提供事务上下文。原则是,在每个 RPC 调用开始时,打开一个新的数据库游标,并在调用return返回时commit,即在commit前先将结果返回至 RPC 客户端,大致如下所示:

    def execute(self, db_name, uid, obj, method, *args, **kw):
    db, pool = pooler.get_db_and_pool(db_name)
    # create transaction cursor
    cr = db.cursor()
    try:
    res = pool.execute_cr(cr, uid, obj, method, *args, **kw)
    cr.commit() # all good, we commit
    except Exception:
    cr.rollback() # error, rollback everything atomically
    raise
    finally:
    cr.close() # always close cursor opened manually
    return res
    如果在执行 RPC 调用期间发生任何错误,事务将以原方式回滚,从而保留系统的状态。

    同样,系统在执行测试代码期间还提供专用事务,因此可以回滚或不依赖于服务器启动选项。

    因此,如果您在任何地方代码调用 cr.commit() ,您很有可能会以各种方式破坏系统,因为您将导致部分提交,从而导致部分和不干净的回滚,从而导致问题:

    业务数据不一致,通常是数据丢失
    工作流取消同步,文档永久卡住
    无法干净地回滚的测试,并且将开始污染数据库并触发错误(即使事务期间未发生错误也是如此)

    所以请遵照以下非常简单的规则:

    您绝对不要自己调用 cr.commit(),除非 您已显式创建自己的数据库游标!或者你有特殊的原因必须这样做。

    如果您确实创建了自己的游标,则需要处理错误情况和适当的回滚,并在完成该游标后正确关闭游标。

    与普遍的看法相反,在以下情况下,您甚至不需要调用cr.commit() :

    在模型的 _auto_init() 方法中。模型对象:这是由加载项初始化方法,或由 ORM 事务在创建自定义模型时处理
    在报表中: commit() 也由框架处理,因此您甚至可以在报表内更新数据库
    在模型中。瞬态方法:这些方法与常规模型完全一样。模型,在事务中,并在末尾使用相应的 cr.commit()/rollback()
    其它情况(如果您有疑问,请参阅上面的一般规则!
    所以,服务器框架之外的所有 cr.commit() 调用都必须有一个明确的注释,解释它们为什么是绝对必要的,为什么它们确实是正确的,以及为什么它们不中断事务。否则,他们应该被删除!

    正确的使用翻译方法
    Odoo 使用类似于 GetText 的方法名 _( ) 来指示代码中使用的静态字符串需要在运行时使用上下文的语言进行翻译。通过在代码中通过导入访问此伪方法:

    from odoo.tools.translate import _
    在使用它时,必须遵循一些非常重要的规则,以便它正常工作,避免在翻译中填充无用的垃圾。

    基本上,此方法只应用于在代码中手动编写的静态字符串,它无法转换字段值,如产品名称等。必须使用相应字段上的翻译标志来完成此操作。

    规则非常简单:对下划线方法的调用应始终以 _("文本字符串")的形式进行,而没有其他内容:

    good: plain strings

    error = _('This record is locked!')

    good: strings with formatting patterns included

    error = _('Record %s cannot be modified!') % record

    ok too: multi-line literal strings

    error = _("""This is a bad multiline example
    about record %s!""") % record
    error = _('Record %s cannot be modified'
    'after being validated!') % record

    bad: tries to translate after string formatting

    (pay attention to brackets!)

    This does NOT work and messes up the translations!

    error = _('Record %s cannot be modified!' % record)

    bad: dynamic string, string concatenation, etc are forbidden!

    This does NOT work and messes up the translations!

    error = _("'" + que_rec['question'] + "' n")

    bad: field values are automatically translated by the framework

    This is useless and will not work the way you think:

    error = _("Product %s is out of stock!") % _(product.name)

    and the following will of course not work as already explained:

    error = _("Product %s is out of stock!" % product.name)

    bad: field values are automatically translated by the framework

    This is useless and will not work the way you think:

    error = _("Product %s is not available!") % _(product.name)

    and the following will of course not work as already explained:

    error = _("Product %s is not available!" % product.name)

    Instead you can do the following and everything will be translated,

    including the product name if its field definition has the

    translate flag properly set:

    error = _("Product %s is not available!") % product.name
    此外,请记住,翻译者必须使用传递给 _() 函数的字面值,因此请尽量使其易于理解,并将伪字符和格式保持在最低限度。翻译者必须注意,需要保留格式模式(如 %s 或 %d、newline 换行等),以明智和明显的方式使用这些格式模式非常重要:

    Bad: makes the translations hard to work with

    error = "'" + question + _("' nPlease enter an integer value ")

    Better (pay attention to position of the brackets too!)

    error = _("Answer to question %s is not valid.n"
    "Please enter an integer value.") % question
    通常,在 Odoo 中,在操作字符串时,更多用 % 而不是用 .format()(当字符串中只有一个变量替换),更多用 %(varname) 而不是指定位置(当多个变量必须替换时)。这使得社区翻译人员更容易翻译。

    符号和习惯
    模型名-使用.分隔,模块名做前缀
    定义odoo模型时,使用单数形式的名字如res.partner,sale.order 而不是 res.partnerS,saleS.orderS
    定义odoo Transient / wizard时,命名格式为<related_base_model>.,此瞬态模型是 related_base_model是基础模型(在目录 models/ 中定义)进行的关联,action是功能简称,避免使用 wizard 关键字. 例如: account.invoice.make, project.task.delegate.batch, …
    定义报表模型(或者SQL View)时,使用<related_base_model>.report.,和瞬态模型一样
    python类-使用驼峰命名
    class AccountInvoice(models.Model):
    ...
    变量命名
    模型变量使用驼峰命名方式
    普通变量用小写字母 + 下划线关联来命名
    如果变量包含记录 id 或 id 列表则将变量名称后缀为 _id 或 _ids。不要使用 partner_id 来包含一条 res.partner 的记录(id 只记录id这个数字,而非对象)
    Partner = self.env['res.partner']
    partners = Partner.browse(ids)
    partner_id = partners[0].id
    One2Many, Many2Many字段一般以ids作为后缀如:sale_order_line_ids
    Many2One 字段一般以_id为后缀如:partner_id, user_id
    方法命名
    计算字段: 计算方法一般是_compute
    <field_name>
    搜索方法: search<field_name>
    默认方法: default<field_name>
    列表值方法: selection<field_name>
    onchange方法: onchange<field_name>
    Constraint 约束方法: check<constraint_name>
    Action动作方法: 一个对象的动作方法一般以action_开头,它的装饰器是 @api.multi,如果它只使用单条计算,可在方法头添加self.ensure_one()
    模型中属性顺序
    私有属性:(_name, _description, _inherit, …)
    默认方法和 _default_get
    Field 字段声明
    Compute, inverse and search 等计算和搜索方法和字段声明顺序一致
    Selection 方法(返回 selection 字段的列表值)
    Constrains 约束方法(@api.constrains) and onchange 字段值变更方法 (@api.onchange)
    CRUD方法(ORM 覆盖与继承)
    Action方法
    最后是其他业务方法
    class Event(models.Model):
    # Private attributes
    _name = 'event.event'
    _description = 'Event'

    # Default methods
    def _default_name(self):
        ...
    
    # Fields declaration
    name = fields.Char(string='Name', default=_default_name)
    seats_reserved = fields.Integer(oldname='register_current', string='Reserved Seats',
        store=True, readonly=True, compute='_compute_seats')
    seats_available = fields.Integer(oldname='register_avail', string='Available Seats',
        store=True, readonly=True, compute='_compute_seats')
    price = fields.Integer(string='Price')
    event_type = fields.Selection(string="Type", selection='_selection_type')
    
    # compute and search fields, in the same order of fields declaration
    @api.multi
    @api.depends('seats_max', 'registration_ids.state', 'registration_ids.nb_register')
    def _compute_seats(self):
        ...
    
    @api.model
    def _selection_type(self):
        return []
    
    # Constraints and onchanges
    @api.constrains('seats_max', 'seats_available')
    def _check_seats_limit(self):
        ...
    
    @api.onchange('date_begin')
    def _onchange_date_begin(self):
        ...
    
    # CRUD methods (and name_get, name_search, ...) overrides
    def create(self, values):
        ...
    
    # Action methods
    @api.multi
    def action_validate(self):
        self.ensure_one()
        ...
    
    # Business methods
    def mail_user_confirm(self):
        ...
    

    Javascript和CSS
    Static files 静态文件目录
    Odoo 模块有一些关于如何构造各种文件的约定。在这里,我们将更详细地解释 Web 资源应该如何组织。

    首先要知道的是,Odoo 服务器将提供(静态)web服务给位于 static/ folder 文件夹中的所有文件,注意仅针对指定后缀的文件类型。一个例子是,如果文件位于 addons/web/static/src/js/some_file.js , 那么此静态文件可以如此访问 url

    your-odoo-server.com/web/static/src/js/some_file.js

    请按如下约定结构组织你的代码:

    static: 所有一般静态资源文件
    static/lib: 库文件,如: jquery 库可放在 addons/web/static/lib/jquery
    static/src: 源文件
    static/src/css
    static/src/fonts
    static/src/img
    static/src/js
    static/src/scss
    static/src/xml: 所有qweb templates 文件
    static/tests: 所有测试相关文件
    Javascript 编码规范
    use strict; 建议用于所有 javascript 文件
    使用代码格式化脚本 linter (jshint, …)
    不要使用压缩编译过的 Javascript 库
    类名使用驼峰命名
    除非你的javascript代码需要全局(即在所有页面)运行,否则必须在website模块中声明一个 if_dom_contains 。对 dom 元素的操作要使用 JQuery 代码
    odoo.website.if_dom_contains('.jquery_class_selector', function () {
    /your code here/
    });
    CSS 编码规范
    用 o_<module_name> foras forase,其中 module_name 是模块的技术名称("sale","im_chat",...)或模块的主路由(主要为 website 网站相关模块,如网站/论坛模块的"o_forum")。此规则的唯一例外是 webclient:它只使用 o_ 前缀。
    避免使用 id 标签
    使用Bootstrap 原生的 classes
    使用 underscore 小写加 _ 连接来命名 class 类
    Git 操作规范
    这个按各自喜好,习惯方便就好,关键在于把 Git 用好!


  • odoo13,12之[先取库存,不足采购或制造]即MTS+MTO高级补货实现,供应链更完善
    G guohuadeng

    原文地址,更好阅读体验: https://www.sunpop.cn/odoo13_mto_mts_supplychain_stock/

    在12及之前的odoo版本中,想要实现最常用的仓库策略,MTS+MTO的补货规则,需要进行复杂的高级路线和再订购规则配置,在即将发布的odoo 13版本中则改为原生内置此功能,规则为“MTS else MTO”,可以直接在【规则】中进行选择,此规则下:
    
    销售的产品如库存充足则优先从库存补货,库存不够时,销售数量全部采用高级补货,即自动即时采购或制造。所有关联单即时生成,无需经过库存补货调度运算。
    
    我们已经将此功能在odoo当前版本实现,服务于商业客户。
    
    可在 odoo 官方市场搜索 Sunpop.cn 获取
    
    

    替代文字
    业务需求场景
    销售尚鹏产品,使用mts+mto规则,优先查库存补货,库存足够则直接补货;库存不够则全部执行补货路线,进行即时采购或制造。通过1条高级路线设置,实现以下业务需求

    库存0,卖9件,直接生成采购或制造订单购买9件。
    库存90,卖了99,会直接生成采购或制造99.
    库存90,卖80,会直接取库存。不生成采购或制造单。

    其它类似情况说明
    替代文字

    具体设置如下
    产品:尚鹏办公台灯
    产品补货方式:采购
    产品再订购规则:无

    规则:WH:Stock→Customers(MTO)
    移动供应方法:Take From Stock, if unavailable, Trigger Another Rule
    路线:尚鹏集团总仓:1步出货(发货)
    应用仓库:尚鹏集团总仓

    替代文字

    替代文字

    1.产品:库存0,SO001 卖10件,直接生成采购或制造订单购买10件。

    替代文字

    替代文字

    2.产品:库存90,SO002 卖99,会直接生成采购或制造99.

    替代文字

    替代文字

    3.库存90,SO003 卖80,会直接取库存。不生成采购或制造单。

    替代文字

    通过下图可以看出,SO001/SO002,均为采购补货,SO003则是直接从库存中补货。

    替代文字

    按实现原理,举一反三
    我们可以按此原理设置一条路线,只要选择此路线的产品,都可以先查库存,库存充足调库存,不足则即时补货。

    在我们odoo12的模块中,自动初始化了这条路线。

    替代文字

    我们看下这条路线,其拉方法中设置成如图所示,这个就是 odoo 新增的 mts_else_mto 方法,我们进行了深度二开,在odoo12亦可适用。

    替代文字

    由此可见,在odoo 13版本中,仓库调拨路线将更方便设置,更适合企业实际使用需求。如果当前商业项目有需求,也可以使用我们开发的odoo12相关模块。

    让我们一起期待即将到来的新版本发布。


  • odoo13实现维修、工程、会务等现场服务管理,Field Service
    G guohuadeng

    原文地址,更好阅读体验: https://www.sunpop.cn/odoo13_field-service_fsm_fsgo/

    现场服务,是Field Service的直译,通常是指要通过服务团队在现场来交付的服务,它有别于类似Call center的远程服务,所以称之
    
    为现场服务。在我们周边很多行业都有现场服务的需求存在,例如产品、设备的安装、维护、维修等服务场景,多见于一些需要售后服务的业务场景。
    也有很多企业,将发生在“现场”的事务都称之为现场类服务,如会展行业的现场管理、参展注册,再比如工程现场、石油钻井平台、风力发电厂等有大量现场作业人员的环境,所以现场服务是一个概念性的统称,根据不同的行业、场景有着不同的内容。
    

    加强现场服务的管理
    通常现场服务管理是一个任务导向的事务性事件,在拥有大量现场服务人员的团队中,通常要管理现场服务任务的创建、分派、执行、协作、服务资源等内容,使之能够顺利完成, 也可能会与公司的产品、知识库、工具配件等信息关联。

    现场服务和分派管理也称服务传递链管理,就是指用以配置、派遣、调度和管理服务部门、人员和相关资源,负责完成有效率和经济的服务与支持活动。现场服务和任务分派一直具有在生产部门和产品服务支持部门之间提供密切联系的功能,是客户服务的一个重要部分。

    提高现场服务信息化管理水平
    在国内的大型制造业企业中,一般因为大多数现场服务人员都是无法随时使用电脑的,所以现在的现场服务管理软件,例如odoo ,基本上都可以通过手机端或者iPad以及专业移动设备来访问。

    在odoo 13这个版本中,新增了现场服务管理功能,即Field Service模块。下面我们通过实例来介绍一下这个模块的功能。

    1.新建一个现场服务的产品。举例为每小时40元,如实际情况免费则不设置价格。产品类型为服务。注意这个产品的开票策略以及服务跟踪类型。

    替代文字

    替代文字

    2.在Field Service模块中,新建一个现场服务。内容可以编辑并通过电邮发送给客户。服务可绑定到具体某个产品或者某个订单,以便分析成本。

    替代文字

    替代文字

    3.【销售订单】功能,开始这个任务,如果是计费的现场服务,此时可以为该服务新建销售订单。 如果有使用计费的零部件,也可以添加进该SO.

    替代文字

    4.也可以为该服务直接添加使用的产品,在完成服务后。系统会自动生成销售单,包含了全部时间和使用零件。
    这个界面十分友好,可以像pos,电商网站一样增加需要的物料

    替代文字

    替代文字

    5.现场服务记录可添加附件。例如客户签字确认的单据等 。

    替代文字

    6.现场服务的员工分派,计划用时等 ,都可以在项目中规划。

    替代文字

    现场服务和任务分派正从单一的后台功能转向一个紧密整合后台和前台服务系统的企业系统。现场服务和任务分派的应用须与客户服务请求的创建整合起来,同时在一定程度上与销售和营销系统整合起来。现场服务和任务分派系统既用来增加销售收入、降低人工和部件成本、提高劳动生产率,也可以降低劳动消耗,增加客户满意度和忠诚度。在odoo 13中新增了这一功能,必将使企业服务流程更为完善。


  • odoo13实现设备租赁租车租房管理,租期租金库存网站功能全面覆盖
    G guohuadeng

    原文地址,更好阅读体验: https://www.sunpop.cn/odoo_rent_rental_renting_car_fee_equipment_leasing/

       随着观念的变化和市场的培育,企业、个人“以租代买”的观念向量大面广、充满活力趋势发展。自购必然会造成固定资产增加、借款增加、流动资产减少使财务出现不良状况,而部分资产采用租赁形式将有效回避上述风险,可保证企业良好的财务状况,使企业的资产最大化。
       因此,租赁行业被称为“朝阳产业”,市场上活跃着大量办公场所,个人居所,办公用品,汽车以及工程设备等租赁企业。而租赁货物的管理有别于传统ERP的供应链管理,其涉及到使用期限的管理,逾期滞纳金,借出与归还的现场签署确认等等,下面我们来介绍一下,在odoo中是如何对租赁行业进行管理。
    

    整体租赁管理的功能如下:

    替代文字

    1.模块设备

    替代文字

    2.可供租赁产品的设置
    以汽车租赁为例,产品可设置为按唯一的序列号进行追溯,例如以车牌号为序列号。

    替代文字

    产品详情的设置如下

    替代文字

    3.客户设置中可添加地理位置,便于就近调拨。

    替代文字

    替代文字

    4.创建租赁订单。

    替代文字

    替代文字

    替代文字

    5.即时的订单状态变更

    替代文字

    在计划中可查看总览。鼠标放上去可以看详细信息。

    ======

    替代文字

    ==========

    替代文字

    替代文字

    确认后的即时状态

    替代文字

    替代文字

    替代文字

    替代文字

    6.在线签署,可上传PDF,发送电邮给客户签署。

    替代文字

    替代文字

    替代文字

    替代文字

    替代文字

    7.发票

    替代文字

    8.租赁分析

    替代文字

    9.库存调拨
    库存模块中可查看租赁产品的调拨记录。

    替代文字

    以上为odoo中实现租赁行业管理的流程简介。上述功结合租赁行业特色、满足了行业实际需求及行业特色。在具体商业环境中,我们有完整的租赁行业解决方案,欢迎联系。


  • odoo保质期/有效期/批次管理,过期自动下架警报报废,在生鲜食品行业的应用实例
    G guohuadeng

    原文地址(更好的阅读体验):
    https://www.sunpop.cn/odoo12_expiry_warranty_auto_scrap_food_fresh_manage/

    在生鲜配送行业及餐饮行业,企业往往会使用一整套生鲜管理标准制度,对产品质量及保质期进行全面管理,其中涉及到产品最佳使用时间,即将到期时间,产品保质期/有效期等规范化管理,以确保产品品质。制度一般规定库存上要明示生产日期及保质期。生鲜的仓储要严格遵守先进先出【生鲜、餐饮行业为FEFO先过期先出库】的策略,为此我们在odoo 12中实现了上述功能,并结合该行业产品质保期短的特点,实现了【过期自动下架报废】等功能。

    我们已经将此功能在odoo当前版本实现,服务于商业客户。

    可在 odoo 官方市场搜索 Sunpop.cn 获取

    功能列表:

    • 可设置产品的 最佳食用时间,警报时间,自动下架时间,保质期
    • 输入批次后根据产品生产日期,自动计算上述时间列表
    • 该批次产品到期后自动下架,并生成相应的报废下架调拨单
    • 批次显示可用/部份可用/到期等状态,并可进行将到期预警,过期预警,用不同颜色在列表,表单中提示用户
    • 自动下架可以灵活设置,可指定产品,指定产品种类,指定库位,指定自动运行时间
    • 产品种类,库位可增加下架策略【先到期先出库】,First Expiry First Out (FEFO)
    • 主动到期预警,下架预警,紧密结合 odoo 12 最新的 activity 功能,会向产品负责人主动推送待办提示,配合我们的微信/钉钉模块,可以方便的进行主动管理
    • 支持多公司,社区版企业版,多odoo版本,多语言

    具体场景实例

    1.库存--配置--设置,勾选【批次和序列号】、【到期日】

    替代文字

    2.对具体产品设置【按批次】管理库存,并设置相应管理日期。

    替代文字

    3. 然后我们用库存初始化来为这个产品增加库存,比如 批次00000001有6个

    替代文字

    4.为产品创建产品批次。此时选择生产日期后,本批次的产品会自动按预设策略出现各日期。

    替代文字

    5.根据产品预设日期,在到期时系统会自动生成【过期警报】和【报废警报】。过期警报为即将到期产品,报废警报为已过期产品
    替代文字

    6.我们设置两个批次的产品,生产日期不同。在库存中可以查看到,储存已按不同批次进行入库。
    替代文字

    7.在产品页点击【运行过期自动报废】按钮,系统会自动为已到期的批次为【0000002】的产品生成报废单。
    替代文字
    运行完成后查看自动生成的下架报废单
    替代文字

    8.我们可以为这个自动报废设置【系统自动运算】。也可手动运行。
    替代文字

    9.此时我们可以看到,运行后,到期的批次会自动报废。

    替代文字
    替代文字

    10.此时仓库内只留下了还在保质期内的产品。

    盘点后的库存情况,可以看到自动报废下架后,重新统计的库存数。

    替代文字

    11.通过查看库存调拨可以看出该产品三个不同批次,到期的两个已自动报废。
    替代文字

    1. odoo12 中 主动提醒事件

    在执行自动调度后,我们可以看到,如果库存中有过期或需要下架的批次产品,则批次产品的日志内出现了活动提示。这是 odoo12 的最新功能,可以方便的进行主动管理,并自动触发指定活动
    替代文字

    1. 高级设置

    在实际生鲜或食品管理中,经常要对不同产品,不同门店,不同库位有不同的质保处理策略,因此可自行根据具体情况进行选择,对产品类别采用该策略,或是对本仓库采用。

    在产品自动下架策略中可以配置成:只有在选择【FEFO即先过期先出库】时该功能方可实现。

    产品种类策略
    替代文字
    库位下架策略

    替代文字

    14. 其它高级功能

    我们服务了大量生鲜食品餐饮行业的客户,将其中通用部份做成了通用模块。可以在官方市场上获取,比如高级重量管理,自动批次规则等。

    ![替代文字](61c73b91-308c-46e3-9f87-cd65beaecf9c-image.png 图片地址)

    上述功能结合生鲜餐饮等行业鲜食的周转期短、品质变化快实际情况,满足了行业特色‘距离保质期限近的商品先销售,如果生产日期不明确时(如水果)先到的货先销售‘这一需求。

    在具体商业环境中,我们有完整的生鲜餐饮行业方案,欢迎联系。


  • 一键安装最新odoo 13,12,11社区版企业版+ postgresql10 +nginx在ubuntu上的自动安装脚本,阿里云测试通过,
    G guohuadeng

    原文地址(更好的阅读体验): https://www.sunpop.cn/odoo-12-postgresql-10-ubuntu-aliyun-one-click-install-script/

    操作如下:以root用户登录你的ubuntu主机,执行以下指令,全自动安装脚本

    wget https://www.sunpop.cn/download/odoo_install.sh && bash odoo_install.sh 2>&1 | tee odoo.log
    

    作为odoo官方合作伙伴,我们一直在关注 odoo 最新版本的发展,同时也快速的将最新功能稳定的迁移到客户的商业项目中。在odoo13中,我们看到了很多吸引人的特性,比如全新改造的供应链管理终于支持MTS+MTO,销售订单中快速下单可定制产品,完整的HR人力资源和在线教育功能等。

    为此,我们做了 odoo13的windows绿色版和 ubuntu 一键安装脚本。

    执行本一键安装脚本,完成安装最新 odoo13,12,11 + postgresql 10 + nginx,您将得到:

     1. 中文字体,PDF报表,时间同步,SCSS编译等odoo支持组件
     2. postgres 10 安装在 /usr/lib/postgresql/10
     3. postgres 10 配置在 /etc/postgresql/10/main
     4. odoo 最新版 安装在 /usr/lib/python3/dist-packages/odoo
     5. odoo 配置文件位于 /etc/odoo/odoo.conf
     6. Nginx 作为反向代理,开启了多worker工作模式,可使用odoo在线即时通讯
     7. odoo访问地址为(用你的域名代替 yourserver.com) http://yourserver.com 或者http://yourserver.com:8069
     8. 一个 r.sh 文件用于重启 odoo 服务,使用root用户登录后键入bash r.sh 即可执行
     9. 使用最新的pdf打印组件wkhtmltox 0.12.5 版本,打印更清晰
     10.增加python库,主要支持企业版中 ical, ldap, esc/pos,参考 https://www.odoo.com/documentation/12.0/setup/install.html
    

    本安装适用于初学者和开发者,如使用odoo至生产环境,建议寻找附近的 odoo 合作伙伴,或者联系我们-广州尚鹏。

    提供源码,有问题请提issue。如果您的操作系统是 Windows,请下载我们的64位 odoo12绿色版。

    [url href="/odoo12-python3-win64-download"]64位 odoo12绿色版[/url]
    [url href="https://github.com/guohuadeng/odoo_install_script_cn"]在github提issue[/url]
    本 unbuntu 一键安装脚本说明如下:

    ==========================================================================
    # 最近更新:2019-05-29
    # 支持版本 Ubuntu 14.04, 15.04, 16.04 and 18.04
    # 支持版本 python版本跟随操作秕,Ubuntu 14.04, 15.04, 16.04(Python3.5.2) and 18.04(Python3.6.7)
    # 作者: Ivan Deng
    # 支持: https://www.sunpop.cn
    #-------------------------------------------------------------------------------
    # 本脚本将安装Odoo到你的服务器上,一般而言,整个过程在3~5分钟完成
    # 为使中文设置生效,建议重启一下机器。 执行 reboot
    #-------------------------------------------------------------------------------
    # 使用方法,直接在主机上执行以下指令
    # wget https://www.sunpop.cn/download/odoo_install.sh && bash odoo_install.sh 2>&1 | tee odoo.log
    #-------------------------------------------------------------------------------
    # (1) 选择要安装的类型
    # 1为从odoo官网安装odoo12,2为安装本地社区版odoo12,3为安装本地企业版odoo12(请联系购买)
    # 4为从odoo官网安装odoo11,5为安装本地社区版odoo11,6为安装本地企业版odoo11(请联系购买)
    # 7为从odoo官网安装odoo13
    # 选择2时请确保 odoo_12.0.latest_all.deb 已上传至当前目录
    # 选择3时请确保 odoo_12.0+e.latest_all.deb 已上传至当前目录
    # 选择5时请确保 odoo_11.0.latest_all.deb 已上传至当前目录
    # 选择6时请确保 odoo_11.0+e.latest_all.deb 已上传至当前目录
    # 选择8时请确保 odoo_13.0alpha1.latest.zip 已上传至当前目录
    # (2) 选择要安装的Postgresql 数据库
    # 选择 PG9 版本将有更好兼容性,也可杜绝某些阿里云服务器无法访问最新 postgresql 官网源的问题
    # 选择PG10 版本将有更好性能,部份阿里云服务器无法访问最新 postgresql 官网源会导致安装失败
    # (3) 选择是否要安装Nginx
    # 安装Nginx则可直接使用80端口访问odoo,同时可使用网站即时通讯
    

    问题可参考

    #-------------------------------------------------------------------------------
    # 如遇问题,可卸载 pg 及 odoo,重新安装
    #-------------------------------------------------------------------------------
    ## sudo aptitude remove  -y postgresql-10
    ## sudo aptitude remove  -y odoo
    

    ==========================================================================

    odoo 13 运行成功,以下为运行截图。我们为odoo13开发了若干模块

    替代文字
    =原生应用列表=
    替代文字
    =增强的部分hr功能-在线网课=

    替代文字

    odoo12 绿色版及相关文章,请查阅

    https://www.sunpop.cn/odoo12-python3-win64-download/


  • odoo13-Python3-win64位高性能最新绿色版下载及制作方法-超强提速
    G guohuadeng

    原文地址(更好的阅读体验):
    https://www.sunpop.cn/odoo13-python3-nginx-postgresql-win64-download/

    概述
    odoo13吸引人的东西很多,比如全新改造的供应链管理终于支持MTS+MTO,完整的HR人力资源和在线教育功能等。

    64位版本性能会比32位高很多,包括高效指令及大内存更快巡址。对高资源消耗的odoo,使用64位是十分有必要的。 本版本在使用64位的基础上,对postgresql进行了优化,并使用nginx进行反向代理,实现了longpolling,可以使用odoo的桌面消息通知,也不会经常报错了。 在windows上搭建了一个完整的高性能 Odoo 环境。
    点此下载 odoo13,绿色版链接地址

    因速度原因,不再支持一键更新至最新版,请手工高速下载后解压覆盖 /source 目录文件。

    http://nightly.odoocdn.com/master/nightly/src/odoo_13.0alpha1.latest.zip

    版本信息
    python 3.5.2 ,64位
    postgresql 9.6.4 ,64位
    Nginx 1.15.5, 64位
    Odoo 13社区版,20190529版本
    

    odoo 13 运行成功
    替代文字

    =====原生的应用列表=====
    替代文字

    odoo12 绿色版及相关文章,请查阅

    https://www.sunpop.cn/odoo12-python3-win64-download/

    全新功能,更快速度
    Odoo 12 Features, enhance and boost from 11。 新特性,功能更多,性能更好 - 广州尚鹏 | odoo专业实施开发https://www.sunpop.cn/odoo-12-features-enhance-boost-from-11/

    开发
    使用pycharm搭建odoo 12, 11,10 开发调试环境 https://www.sunpop.cn/odoo_12_11_10_dev_with_pycharm_setup/

    odoo12 在线演示学习,请注册
    http://demo.odooapp.cn

    操作说明
    启动odoo:执行 r.bat后,访问 http://localhost:8012 或者 http://localhost
    更新odoo:执行 s.bat 停止odoo运行后,执行 u.bat。如要手工更新至最新odoo,请至官方下载后覆盖 ./source 目录下文件即可
    系统已有默认数据库 demo,登录用户/密码: admin/admin
    重新初始化数据库:执行 init.bat
    如多版本并存,请自行调整nginx的映射端口
    odoo12下载地址 https://codeload.github.com/odoo/odoo/zip/12.0
    高速odoo12下载地址 https://nightly.odoocdn.com/12.0/nightly/src/odoo_12.0.latest.zip
    odoo12 deb http://nightly.odoo.com/12.0/nightly/deb/odoo_12.0.latest_all.deb
    pycharm配置说明: https://www.sunpop.cn/odoo_12_11_10_dev_with_pycharm_setup/
    文件夹说明
    ├─addons_app app通用源码 ├─addons_odoo odoo源码,用于优先加载后断点调试 ├─addons_patch app通用源码,需要直接修改的放这里,多用于调整bug和翻译 ├─data 要人工导入的资料 ├─odoofile odoo生成的静态文件资源 ├─runtime 运行库,包括pg数据文件 └─source odoo12源码

    主要文件说明
    odoo.conf 配置 db.bat 单独启动数据库,用在pycharm中,debug启动时先启用数据库,假设odoo12是在 d:\odoo13-x64 目录,如有变化自行更改 r.bat 最常用,odoo服务启动(如果当前有进程则先关闭再启动) s.bat 停止 u.bat 删除当前source目录中的odoo源码,从git上下载最新版本

    extra 依赖文件目录,如果要自行安装涉及到的库,其它如果提示dll错误请安装 vcredist_x64.exe

    问题处理
    如果遇到问题,请首先尝试处理Postgresql,进入bin目录执行环境初始化,相关指令如下

    cd runtime\pgsql\bin
    rd /s/q ..\data
    initdb.exe -D ..\data -E UTF8
    pg_ctl -D ..\data -l logfile start
    创建用户,密码,都是odoo
    createuser --createdb --no-createrole --no-superuser --pwprompt odoo
    附:如何自行制作绿色安装包
    先装 python 3.5.2 ,pip3,用64位。与ubuntu 内置一样版本,改python.exe为python3.exe
    https://www.python.org/downloads/windows/
    安装pip
    python3 .\extra\getpip.py
    对某些要编译的Python包,在此找
    http://www.lfd.uci.edu/~gohlke/pythonlibs/
    部份要人工下载安装的odoo依赖,已下载放在 ./extra
    pip3 install -r .\source\requirements.txt -i https://mirrors.aliyun.com/pypi/simple
    pip3 install .\extra\Pillow-5.0.0-cp35-cp35m-win_amd64.whl
    pip3 install .\extra\psycopg2-2.7.4-cp35-cp35m-win_amd64.whl
    pip3 install .\extra\pyldap-2.4.45-cp35-cp35m-win_amd64.whl
    pip3 install .\extra\reportlab-3.4.0-cp35-cp35m-win_amd64.whl
    pip3 install .\extra\Werkzeug-0.14.1-py2.py3-none-any.whl
    pip3 install .\extra\pywin32-223-cp35-cp35m-win_amd64.whl
    pip3 install .\extra\psycopg2-2.7.4-cp35-cp35m-win_amd64.whl
    pip3 install .\extra\wandex-0.4.5-py3-none-any.whl
    pip3 install .\extra\imageio-2.3.0-py2.py3-none-any.whl
    pip3 install .\extra\moviepy-0.2.3.5-py2.py3-none-any.whl
    Nginx配置相关
    runtime/nginx/nginx.conf
    安装结束


  • 中央厨房配送加盟直营门店的连锁管理平台,odoo集团多公司供应链实例
    G guohuadeng

    原文地址(更好的阅读体验): https://www.sunpop.cn/central_kitchen_multi_company_food_distribution_supply_chain_manage/

    客户背景

    M记是全国知名的连锁式餐饮集团,在全国主要城市均有多家门店。

    原使用一般的POS收银系统对业务进行管理,随着门店不断增长,业务结构进行了调整。增加了中央厨房配送,门店也快速扩充成直营与加盟混合经营,由此也对信息系统提出了更高的要求。
    需求

    客户希望使用新的系统后,可以进行集团化管理,从总公司、中央厨房、门店三个维度进行独立核算同时又全局化供应链管理。

    新的经营模式在门店端分为加盟店及直营店,每个城市都有中央厨房为门店进行配送。

    集团总部位于乌鲁木齐,每个城市的中央厨房都是乌鲁木齐总部下属独立核算的子公司。

    当地的门店向中央厨房进行采购,而中央厨房向总部采购或直接向供应商采购,总部向各供应商进行集中采购。

    同时,中央厨房还要将食材进行加工才可配送至门店。

    公司间流程

    6a78584d-803b-4438-b3cd-94994ffa8aa5-image.png

    相关公司列表

    89a6d2c3-aaf0-4306-bcb6-594a73134f85-image.png

    最终实现目标

    1. 总部+直营店、中央厨房、加盟店各自是独立法人公司,所有业务单据,财务核算全部独立

    2. 在独立核算的前提下,所有门店、中央厨房会自动根据业务情况及设定的规则生成向对应往来单位结算的相关采购单,调拨单

    3. 总部可以即时看到所有中央厨房,门店的业务单据并进行统计

    4. 每家门店在中午11:00,及下午16:00自动根据业务需求生成向中央厨房的采购单

    5. 中央厨房可以即时看到自己下属配送的门店所有的采购单,即时进行采购及配送

    实施周期

    两周。

    客户采用了 sunpop.cn 成熟的食品供应链解决方案,做了个性化调整后,进行简单配置即完成了集团连锁管理的需求。

    现将其中多公司间交易的相关配置进行实例说明如下:

    一:基础设置

    1.多公司公司及管理权限设置

    c1e975e2-b92a-4f21-97ba-ce91bbb1b3f3-image.png

    2.公司间关联交易设置

    多公司规则设置,【当其它任何集团下公司的环境中确认了一个采购订单给本公司,则本公司环境下自动生成一个草稿的销售单】
    8ac8e41c-e418-41bd-817c-2cd3c27c6fc1-image.png

    再看一下餐饮门店的向中央厨房的交易规则,这里设定了【该辖区餐饮门店向中央厨房采购食材】

    e90344ed-1554-41b2-90ae-9f38e1ed2ab5-image.png

    3.管理员设置

    注意各管理员间的权限划分,地区管理员只能管理辖区内门店。
    2a325a09-9cdd-4e13-a594-9773d03fd5f1-image.png

    管理员需要有管理POS的权限

    二:产品及补货规则的设置

    各个公司对产品供应商和再订购规则都有不同设置,在这里注意,需要切换到不同公司环境下,分别进行设置。

    9c919209-95f1-4dc1-aa9f-fc764335a43f-image.png

    同一个产品,在不同公司环境下,供应商和再订购规则都有不同。设置如下:

    中央厨房

    e92e927e-cc6f-49b8-b061-10a5a2f06897-image.png

    门店

    16ca9271-eb63-4de4-a2dd-bd34b23918c3-image.png

    再订购规则可以设置最小数量和最大数量,即安全库存。最小数量为【最少订10个】,最大数量则代表了【订购量=缺货数量 + 预设库存】

    eb21b565-9592-452b-9fd8-30bcc86f68ea-image.png

    三:POS相关

    odoo的POS模块,支持零售、餐饮、酒吧、 课室等不同形式的管理。自行设置即可。每个桌台支持多少人同时使用也可自行设置。

    79e7f2d3-cc51-47a4-8155-7291b189f9ce-image.png

    支持选择进行该消费的客户。

    d94006eb-0f23-4d30-98e3-9fb1416911d9-image.png

    POS销售的产品,订单在POS模块里查看,销售模块里不会显示。另外需要注意的一个点就是,POS订单是不会自动产生补货请求的,所以销售的产品默认采用MTS。就算设置了MTO,也不会自动生成采购单。如需按正常odoo补货逻辑,需要进行二次开发才可对后厨房进行合理管理,可以联系我们获取成熟方案。

    b71f7e6f-4334-442a-98bb-b010f540ab97-image.png

    四:结果展示。

    1.销售产品。下单环境是餐饮门店。

    471c8a71-fdf3-442a-9928-cbfadb79dc40-image.png

    2.运行再订购规则(生产环境每天早午各执行一次,并log记录)。
    1504f3c1-8e06-4d95-8873-89321b103f72-image.png

    3.自动生成了采购订单,由餐饮门店向中央厨房采购。

    80ab147e-f4ef-4bd7-b252-9c6c9edc7b8f-image.png

    4.确认这张采购单后,切换到中央厨房环境下。此处可以看到两张销售单。一张是中央厨房下辖的餐饮门店,对客户进行的销售单。另一张就是中央厨房对餐饮门店销售。

    a7e9eba0-5443-47ed-aecc-4e4f2a4ad15c-image.png

    5.而确订中央厨房的通过再订购规则生成的采购单,则总部环境下会自动生成对中央厨房的销售订单。

    9139e264-c41e-4771-b952-351f9326df66-image.png

    以上为odoo12中,通过实例演示加盟与直营式门店加中央厨房的连锁集团,多公司关联交易,和餐饮、零售等行业POS的应用。

    谢谢观看。

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组