Rails + MySQL 中的发票编号
Posted
技术标签:
【中文标题】Rails + MySQL 中的发票编号【英文标题】:Invoice numbering in Rails + MySQL 【发布时间】:2014-10-25 17:28:03 【问题描述】:我想以这种格式整理发票:
AB20140001
AB
是我们公司的首字母缩写,20140001
是2014年的第一张发票。目前的快速想法是在表中添加invoices
列year
和invoice_number
以及将存储在哪里@ 987654327@ 和当前发票编号(0001
第一张)。
但是,如何将invoice_number
列保持为XXXX
格式(第二张发票将是编号0002
等等)?
或者 - 有没有更好的方法来组织发票编号?
提前谢谢你。
【问题讨论】:
您可以在 mysql 中执行此操作,但您需要一个触发器。 【参考方案1】:我会做一个在创建后运行并设置序列号的函数
我们使用了:after_create
,以便我们可以在设置后使用:id
。
class Invoice < ActiveRecord::Base
after_create :set_invoice_numeber
def set_invoice_number
self.update_attribute(:invoice_number, 'AB' + Time.now.year + '%.4d' % id)
end
end
【讨论】:
id
将被设置为after_create
,所以他应该使用它。另外,我假设在 2015 年他想从AB20150001
开始。您的回答没有提供解决方案。
TypeError(没有将整数隐式转换为字符串)。需要转换为年份的字符串。所以它会像Time.now.year.to_s
以上是关于Rails + MySQL 中的发票编号的主要内容,如果未能解决你的问题,请参考以下文章
create_with_paypal 节点 sdk PayPal 中的发票编号
在 Visual Studio 2013 中使用 MS Access (C#) 生成发票