交付给客户的货物多于订购的数量时,就形成'超售'状态; 对于超售的部分,需要进行开票处理,以及根据情况修改交货

 
 

发生超售的前提是,产品开票策略为 '按订购数量开票'

 
 

同时需要
允许修改
订单

 
 

 
 

超售可能是以下情形下发生的

  • 订单确认、开立发票之后,修改订单数量,导致 订单金额和已开立的发票之间存在差异,以及交货数量发生变化
  • 订单确认、开立发票之后,修改订单价格,导致 订单金额和已开立的发票之间存在差异

 
 

 
 

 
 

 
 

  • 订单确认、开立发票之后,修改订单数量,导致
    订单金额和已开立的发票之间存在差异,以及交货数量发生变化

     
     

    此时,在
    订单再次建立发票,
    系统将会建立退款发票,
    例如

     
     

    因为
    交货是基于之前的
    订单建立,因此,需要
    取消它,
    然后基于它
    复制一份,
    并修改
    交货数量

     
     

    订单修改完成后,将订单设置为 'lock'

     
     

     
     

  • 在订单确认、开立发票之后,修改订单价格,导致
    订单金额和已开立的发票之间存在差异,以及交货数量发生变化

     
     

    此时,
    修改
    原始订购数量为
    零,
    并增加
    新的订单行,数量为
    原始订购数量,但是
    单价修改为
    新单价,
    如下

     
     

     
     

    再次
    建立
    发票,
    系统将计算出
    退款

     
     

    此时需要
    验证
    交货单是否正确,
    发现
    增加的订单行将会
    增加发货数量

     
     

    因此,需要 取消它, 然后基于它 复制一份, 并修改 交货数量

     
     

    订单修改完成后,将订单设置为 'lock'

Odoo超售订单的更多相关文章

  1. Odoo销售模块

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10825988.html 一:销售模块 销售模块的用途: 1)管理销售团队.销售人员:维护销售产品: 2)管理 ...

  2. 全网首发! Odoo 订单分解执行及供应链管理免费开源解决方案

    引言 前一篇介绍了佛山王朝家具的案例背景.佛山王朝家具公司在全国有30多家门店,三个生产工厂.王朝家具有六大痛点问题: 订单迫切需要实现电子化管理及在线签名 总部分单工作量大,供应链效率低 配送和售后 ...

  3. Odoo中最小库存规则和按订单生成规则的区别

    ---恢复内容开始--- 最小库存规则(Minimum stock rule)用来保证你的库存产品数量总是不会低于设定的最小库存数量.用来保证产品生产和回到客户的需求.当库存产品低于这个最小库存数量时 ...

  4. odoo之带出历史订单产品

    这是在sale_origin中下由两张单子{sale_origin_line和history_order} class history_order(osv.osv): _name="hist ...

  5. odoo订餐系统之订单相关知识点理解

    1.对重载函数name_get的理解 第一,此函数位于Model基类中,返回值是一个list列表,列表中的每个值是如(key,value)形式的键值对,此处为(id,name). 第二,在自己的Mod ...

  6. odoo订餐系统之订单设计

    订餐系统的主要功能便是用户下单部分,这里我们分为表头mylunch_order和表体mylunch_order_line两张主要的数据表,表头主要记录订单的一些通用信息,比如下单的操作人员 下单日期 ...

  7. odoo开发历史订单需求整体思路

    第一步:找到客户对应页面,并找到他所下过的销售订单,用数据库语句查出所有数据,并去除重复数据,显示在前端, sql="select DISTINCT t2.product_id as pro ...

  8. odoo 订单打印 会出现字体. ........... 虚线问题

    在表头加 红色部分 <?xml version="1.0" encoding="utf-8"?><openerp> <data&g ...

  9. Odoo 二次开发教程(四)-只读、唯一性验证和ORM方法介绍

    一.只读和唯一性验证 只读的设置有两种方法,一种是实在字段定义时设置为只读,第二种是在页面视图中进行设置. 接前例,我们将学生(tech.student)的名字name字段设置成只读. 方法一:字段定 ...

随机推荐

  1. 使用phppgadmin 遇到的小问题

    无法登录,显示错误消息如下: Error:login disallowed for security reasons. 解决方法: 修改conf/config.inc.php文件中的extra_log ...

  2. PHP模版引擎twig wordpress中调用文章第一张图片

    wordpress当文章没有添加Featured media的时候, 就调用文章第一张图片, 调用的wordpress代码函数为: <?php echo catch_that_image(); ...

  3. 【mysql 优化 1】优化概述

    原文地址:Optimization Overview 数据库性能取决于几个数据库层面的因素,比如:表设计,查询语句,配置. 这些软件结构导致你必须在CPU和I/O 操作的硬件层面做到尽可能的最小化和高 ...

  4. Welcome-to-Swift-24高级运算符(Advanced Operators)

    除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算. 不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的.溢出行为会 ...

  5. 关于 __int128

    __int128 是 GCC 提供的扩展(extension),可以当作 128 位整数使用. 关于 __int128 和 __int128_t Normally, _t suffix means a ...

  6. getBoundingClientRect说明

    getBoundingClientRect用于获取某个元素相对于视窗的位置集合. 1.语法:这个方法没有参数. rectObject = object.getBoundingClientRect() ...

  7. java面试题之如何实现处理线程的返回值?

    有三种实现方式: 主线程等待法: 使用Thread类的join方法阻塞当前线程以等待子线程处理完毕: 通过Callable接口实现,通过FutureTask 或者线程池:

  8. bzoj 2798 [Poi2012]Bidding 博弈论+dp

    题目大意 A和B两个人在玩一个游戏,这个游戏是他们轮流操作一对整数(x,y). 初始时(x,y)=(1,0),可以进行三种操作: 将(x,y)变成(1,x+y). 将(x,y)变成(2x,y). 将( ...

  9. APUE 学习笔记(十一) 网络IPC:套接字

    1. 网络IPC 套接字接口既可以用于计算机之间进程通信,也可以用于计算机内部进程通信   套接字描述符在Unix系统中是用文件描述符实现的   /* 创建一个套接字 */ #include < ...

  10. es6总结(四)--对象