Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

请问stock/stock.py中的checksum算法有什么作用?



  • stock/stock.py

    class stock_tracking(osv.osv):
    _name = "stock.tracking"
    _description = "Stock Tracking Lots"

    def checksum(sscc):
    	# salt = '31313131313131313'
    	salt = '31' * 8 + '3'
    	sum = 0
    	# zip('000055',salt) = [('0', '3'), ('0', '1'), ('0', '3'), ('0', '1'), ('5', '3'), ('5', '1')]
    	for sscc_part, salt_part in zip(sscc, salt):
    		sum += int(sscc_part) * int(salt_part)
    	return (10 - (sum % 10)) % 10
    checksum = staticmethod(checksum)
    

    请问stock/stock.py中的checksum算法有什么作用?[/size][/font]



  • stock/stock.py

    class stock_tracking(osv.osv):
    _name = "stock.tracking"
    _description = "Stock Tracking Lots"

    def checksum(sscc):
    	# salt = '31313131313131313'
    	salt = '31' * 8 + '3'
    	sum = 0
    	# zip('000055',salt) = [('0', '3'), ('0', '1'), ('0', '3'), ('0', '1'), ('5', '3'), ('5', '1')]
    	for sscc_part, salt_part in zip(sscc, salt):
    		sum += int(sscc_part) * int(salt_part)
    	return (10 - (sum % 10)) % 10
    checksum = staticmethod(checksum)
    

    请问stock/stock.py中的checksum算法有什么作用?[/size][/font]



  • 看上去是检查sscc,要保证在3131313131313的如55(31(5×3)+(5×1))出现整数,否则(10-(sum)%10)%10都不会是0

    至于为什么要这样我就不知道了



  • 这个东西像个魔方,我在不是很理解下算了下
    个位数从((0。。。9 )的结果
    0,1,2,3,4,5,6,7,8,9
    0,7,4,1,8,5,2,9,6,3 那表示M*10里面肯定有一个为0
    分别是0,13,26,39,42,55,68,71,84,97这里还有点规律可下一个却是
    109,112,125,138,141,154,167,170,183,196,这里又来
    208,211,224,237,240,253,266,279,282,295,307.。。为什么会这样,数理上怎么解释?


  • 管理员

    Simon兄弟辛苦了,这是一个加密用的salt算法。


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待