2014-09-01 3 views
3

Я хотел бы иметь организованные счета в этом формате:Счет нумерации в Rails + MySQL

AB20140001 

AB является аббревиатурой нашей компании, 20140001 является первым накладным в 2014.The ток быстро идея состоит в том, чтобы добавить в таблицу invoices столбцы year и invoice_number и где будут храниться 2014 и текущее количество фактур (0001 для первого).

Однако, как сохранить колонку invoice_number в формате XXXX (для второго счета-фактуры будет номер 0002 и т. Д.)?

Или - есть ли лучший способ упорядочить нумерацию счетов-фактур?

Заранее спасибо.

+0

Вы можете сделать это в MySQL, но вам нужен триггер. –

ответ

2

Я хотел бы сделать функцию, которая запускается после создания и устанавливает серийный номер

Мы использовали :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 
+0

'id' будет установлен' after_create', поэтому он должен использовать это. Кроме того, я предполагаю, что в 2015 году он хочет начать с 'AB20150001'. Ваш ответ не дает для этого решения. – Mischa

+0

спасибо @ Миша, я исправлю свой ответ –

Смежные вопросы