跳至内容
菜单
此问题已终结
2 回复
10082 查看

how to add current year in the sequence of a quotaion form name?

形象
丢弃
最佳答案

Hello

you can use SO%(y)s in the prefix field to include the current year ...

You can check the legend :

Legend (for prefix, suffix)


形象
丢弃

This will be the best method to add Year in Sequence.

编写者

Thanks.

最佳答案

It will help you

override create function in model sale.order

from openerp import models
import datetime

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    def create(self, cr, uid, vals, context=None):
        if context is None:
            context = {}
        if vals.get('name', '/') == '/':
            vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'sale.order', context=context) or '/'
         # ================== ADDITIONAL LINES ================================================
            now = datetime.datetime.now()
            vals['name'] = vals['name'].replace('SO', now.year)
         # ====================================================================================
        if vals.get('partner_id') and any(f not in vals for f in ['partner_invoice_id', 'partner_shipping_id', 'pricelist_id', 'fiscal_position']):
            defaults = self.onchange_partner_id(cr, uid, [], vals['partner_id'], context=context)['value']
            if not vals.get('fiscal_position') and vals.get('partner_shipping_id'):
                delivery_onchange = self.onchange_delivery_id(cr, uid, [], vals.get('company_id'), None, vals['partner_id'], vals.get('partner_shipping_id'), context=context)
                defaults.update(delivery_onchange['value'])
            vals = dict(defaults, **vals)
        ctx = dict(context or {}, mail_create_nolog=True)
        new_id = super(sale_order, self).create(cr, uid, vals, context=ctx)
        self.message_post(cr, uid, [new_id], body=_("Quotation created"), context=ctx)
        return new_id




形象
丢弃
编写者

Thanks for your response.

相关帖文 回复 查看 活动
3
10月 19
3460
5
5月 21
21064
4
3月 15
6543
0
4月 25
2291
0
7月 24
1582