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

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

AB20140001

AB是我们公司的首字母缩写,20140001是2014年的第一张发票。目前的快速想法是在表中添加invoicesyearinvoice_number以及将存储在哪里@ 987654327@ 和当前发票编号(0001 第一张)。

但是,如何将invoice_number 列保持为XXXX 格式(第二张发票将是编号0002 等等)?

或者 - 有没有更好的方法来组织发票编号?

提前谢谢你。

【问题讨论】:

  • 您可以在 MySQL 中执行此操作,但您需要一个触发器。

标签: mysql sql ruby-on-rails ruby invoices


【解决方案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
猜你喜欢
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
相关资源
最近更新 更多