Rails + MySQL 中的发票编号

Posted

技术标签:

【中文标题】Rails + MySQL 中的发票编号【英文标题】:Invoice numbering in Rails + MySQL 【发布时间】:2014-10-25 17:28:03 【问题描述】:

我想以这种格式整理发票:

AB20140001

AB是我们公司的首字母缩写,20140001是2014年的第一张发票。目前的快速想法是在表中添加invoicesyearinvoice_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 中的发票编号

Access 2007 中的格式组合框

Oracle r12 - 发票凭证编号和发票序列号列

在 Visual Studio 2013 中使用 MS Access (C#) 生成发票

如何在 Chrome 中的每个打印页面上打印部分网页(标题)

Stripe checkout form - 页面上的表单索引 - Ruby on Rails