This question has been flagged

A new fiscal law in our country (Honduras) was just published, this law states a new standard in invoice numbering. This new number is formed by:

XXX-YYY-ZZ-NNNNNNNN

  • X is the store/branch number

  • Y is a code given by the fiscal people

  • Z is the document type (In this case 01 means invoice)

  • N is the invoice number (Only moving number,  auto increment)


The result is an invoice with this number: 000-001-01-00000004

When you only have one store, it's easy because you configure your sales journal sequence prefix to '000-001-01-' and fill for 8 digits.

The problem starts when you have more than 1 store, because you have to have 000-YYY-ZZ-NNNNNNNN, 001-YYY-ZZ-NNNNNNNN, 003-YYY-ZZ-NNNNNNNN and so on

The other problem is that each store should have its own incremental number. Example:

Store 1
Store 2
Store 3
000-001-01-00000001
001-001-01-00000001
002-001-01-00000001
000-001-01-00000002
001-001-01-00000002
002-001-01-00000002

001-001-01-00000003
002-001-01-00000003

001-001-01-00000004

This can be taken as multi company, but the accounting for all 3 stores should be reflected under the same company and same Sales Journal.

So basically what i'm trying to figure out is:

  1. Setup multiple sequences for multiple stores.

  2. This sequences should be independent from each other, as shown in the tables above.

  3. There must be a way to choose which store is selling to select the correct sequence. (Dropdown menu in Draft Invoice maybe?)

  4. I need to implement this in Odoo 8 and OpenERP 7

I hope i'm making myself clear, if not please ask! Thanks!

Update:

  1. I created a model called x_punto_emision (store) that has a many2one relation to ir.sequence and a char field to store the name of the store. (http://i.imgur.com/eVromry.png)

  2. I added a selection widget in account.invoice.form so that the user can select the store in the draft invoice: (http://i.imgur.com/FqClLi2.png?1)

<field name="x_punto_emision" widget="selection" attrs="{'readonly': ['|',('state','not in',('draft',)), ('type','&lt;&gt;','out_invoice')]}"/> 

      3.  Then I created two fields in the account.invoice model, a many2one with x_punto_emision (the selected store) and a             x_numero_impresion (the invoice number that the ir.sequence should give based on the selected store)

After this setup, I created 2 Sequences (http://i.imgur.com/GRQtC0Q.png) and 2 Stores  (http://i.imgur.com/vSQrfQz.png). 

I need help connecting everything together, when the user validates the invoice, the system should take the next number in the sequence of x_punto_emision and stores it in x_numero_impresion.

Any ideas on how to do this? Thanks again!


Avatar
Discard

Rui! Thanks a lot! That solved my problem! I can't mark question as answer because of lack of karma points. :S

Best Answer

Your problem seems to be the fact that you want to use the same sales journal. Should you chose to ignore such requirement, the overall process becomes an easy thing.

Since journals are associated to sequences, when you create an invoice, you can chose the sequence to use by selecting a different journal. Create as many sales journals as stores (as well as sequences: 1 store < 1 sequence), and there you go!

Avatar
Discard