产品的销售有三种开票方式:1.人工 2.发货 3.发货前。前两种不多说了,本篇的重点是第三种。
有时候我们希望客户先付款,然后我们再发货,这在原生odoo中是非常容易实现的,只需要将开票的方式改成发货前即可。
但某些情况下,我们的客户不想全部付清,只预付一定的比例,然后发货,发货完成后再结清剩余款项。
这个原生模块是没有的,那么该如何实现这个功能呢?
首先,我们需要指定一个字段来控制本单销售的预付比例:
这里由销售人员再创建报价单的时候指定就好了。
2. 根据预付款的比例触发生成发货单的工作流。
根据销售的工作流,预付款的情况下,只有当财务的工作流完成之后才会触发发货的动作。而我们需要当付款的比例达到一定的数值之后触发发货操作,显然这个时候财务的工作流是不一定完成的,那么我们该如何触发这个呢?
我们知道,odoo中可以通过signal来触发一个迁移
self.signal_workflow('qunar')
那么我们就可以写一个方法来监控预付的比例,当预付达到指定的比例后,使用该方法来触发发货的动作。
【天坑提示】:我曾经想过通过添加一个Float字段来获取比例,这个是可行的,但是在float的compute方法中,如果使用signal_workflow就会报KeyError的错误,具体的原因还不清楚,但是通过button的方法触发却没有问题。
思路大概就是这么个思路。
【夹带私货】:成品模块欢迎淘宝购买~