Tryton (and my hackerspace) needs a module for keep track and approve expenses from employees (or members of an association).
Before i summit an official blueprint I want to discuss how this can be implemented.
What the module should do:
should have states (needs approval)
the line of the reimbursement can/should be linked to an invoice
should accept expenses that are not part of a invoice (like car fuel, little expenses) that are linked to a receipt
should have the ability to add line for “compensating” the party (bonus for the trip, or compensating for the wear of the party’s car for example)
What I think to implement:
Create a new type of invoice, and create more line type for handle each case i listed above. and create a separate view that handle this new type of “invoice”.
I’ll need an help for the tax side of things (I’m part of a non profit… so I don’t have an experience in that field)
For me, you will not create a supplier invoice for the expenses. The expenses is enough and the invoice will not be addressed to the company otherwise it is not an employee expense but just a normal supplier invoice.
This is the main target of employee expense.
I would say that we should not have to decide on the module but the users will decide what can be used as expense or not.
I do not think we should extend the invoice types. Employee expenses will behave quite differently than an invoice, especially on the workflow.
So I think we need a new model.
That’s the tricky part. Often for small amounts (or foreign tickets) the taxes are not deducted because it is too much work for a small amount. Also there are cases where taxes are deducted only partially (usually fuel).
The difficulty is that product has for now only one definition a taxes for purchase but these taxes are not necessary the right one for employee expense. I think the best is that to use a product for employee expense, it should be flagged for (like salable for sale and purchasable for purchase). This way, users may create one or two product for the same thing depending if it needs different taxes/accounts per usage.
Fair enough, I’ll think the basic structure of the new model.
I this case I think a line that can be linked to an supplier invoice can be a good addition, and this is why (from my prospective):
This is more common for association,
you delegate someone to pay for something (lumber for a project for example):
The party will pay for the lumber, and act on behalf of the company/association
The party can/will ask for some reimbursement for the fuel/wear of the car.
This will:
track the amount owed to the party
justify the reimbursement (grouping logically the various expense)
have a supplier invoice in the name of the supplier (and not in the name of the party, like I do now)
I agree with the other points. Thank you for your insight.
When the employee pays something for the company (or association) it is not a expense but a payable amount that the company owes to the employee and not to the supplier. In this case the expense will be generated when registering the supplier invoice on the system. Normally the company will request some payment receipt, which (for me) is enought to know that the invoice is already paid to the supplier and amount has to be paid to the employee.
All of this scenario can be registered on the accounting of the company without the need of the expense module. You only need a payable account for the employee and an intermediary move to link the payment of the supplier invoice to the employee.
I think this should be managed on the supplier invoice document.
There are also other cases where invoice may need to be paid to someone-else like a liquidator or banker.
Ok yes, you can create the move for the party manually. But I think is error prone and can be automated. I think this functionality should be included somewhere, and IMHO should be included in this module (or on the account_invoice module)
I will like to revive this topic as we have the need to manage expenses as cost of projects. So once we have a expense module we can link them directly to projects and use them as costs.
I think we should have something like:
Company
Employee
Date
Product (limited to services and with expense checkbox checked.
Quantity
Cost Price (the cost price of the product can be used as default but the user will be able to enter any).
State: Draft / Requested / Approved / Purchased
We should store the employes who requested, approved and purchased each record.
In our case the approval is not needed, so for me we should be able to define for each product if the expense needs aproval or not.
If it does not require approval the purchase button will be shown directly, otherwise it will trigger the request and approve buttons (with a special access to approve them).
Once the expense is purchased we should create an account move that records the amounts in the taxes and expenses amount. We need a counterpart for such moves so it may depen on the payment of the expense:
If the paid it by himself, the counterpart is a payable account linked to the employee.
If the employee paid it using a company card, the counterpart can be directly the card account
Another case may be that the employee got some money from a travel, so he is using such money thus we should use a different account.
How we manage such cases? Do we add a type of payment to manage the counterpart?
I think it’s necessary, and maybe is needed to be specified for each expense line).
But how to handle when the employee pays with the company card(and the moves imported by the statement module)?
Maybe we should just not generate the move, but the line can be referenced by the statement module.
In such case I think we will need to use an intermediary account because the credit card will be debited with all the payments of the month. Then you will reconcile such amount with all the payments of the related card, and if there is something missing you will ask the employee to enter such information. This way the expense is accounted when is really done but not when its paid, as normally there is a delay between the expense is done and the card is paid.
Hi Sergi, so far I haven’t had the word “reimbursement” associated with anything, so I didn’t have this discussion on my screen.
We created a module “cashbook”. Please do not be misleaded by the word “cashbook”. This module allows each employees or costcenters to book expenses (or earnings) to any personal “cashbook(s)”. The expenses have to booked (as draft) by the employee and have to be approved and payed (cash or transferred) to whom had the expenses. In our case the employee(s) knows what expenses are “allowed” to himself.
So our workflow is: purchased/payed (by employee), draft/pre-booked (by employee), approved/booked (by company), payed/booked (by company: cash or transfer).
To make it easier for the employees to “book” their expenses as draft, we do not let them booking it to accounts, but pretty specific “catagories”, like: bus-ticket, train-ticket, tax, paper, … with options for VAT. These categories are related to acoounts, so by the approval of the responsible superviser the line will be approved and booked.
It shouldn’t be a too bid deal to add pre-approved products within this workflow but you should have a look and discuss with F., the “cashbook” is really one of his very special babies
Hello all,
New potential user here, after trying Odoo and Flectra and getting nowhere fast. Tryton looks like a good option; I like the planned release schedule and apparently more careful development.
We are a fledgling professional services company and dealing with employee expenses, and re-billing them to customers is an important part of the business.
This thread mentions ‘cashbook’, but searching for that term in the topics didn’t turn up anything.
What’s the current state of expense reimbursement in Tryton? If not yet developed, is there a workflow whereby employees could enter the details of their travels (airfare, hotel, taxi, etc.), have it approved by a manager and then sent to accounting to be added to the customer invoice?
Welcome aboard, I hope you have a nice time heard and I’m proud that you like the release schedule of Tryton
About your question, we have implemented what you described for one of our customers (You can have a look on the success story on our website) . Unfortunatly such development did not land to tryton upstream code yet, so for now we only have a specification. I can share our code or even publish under some repository if there is interest from the community there.
Thank you for this. It looks like Amida4 is a similar company, with a more engineering focus than ourselves.
As for interest, most anyone doing professional services will have a need to re-invoice travel expenses to the customer. Another source of expense claims is salesmen, who may entertain clients or travel to their offices. It would be a struggle to manage the finances of a consulting firm without having expense claims in the workflow.
When/how do such contributions make it upstream and into the master branch of Tryton? I’m happy to install source code, but think it’s a valuable enough contribution that it should be an included module.
Is the agreement on the design accomplished in threads, like this one?
What effort is involved to make the contribution to the project?
How are such efforts managed? (issue tracking, progress, schedules, etc?)
I imagine that since you already have a working prototype it would make sense to begin there, and I’m happy to help with the efforts to make the contributions. I imagine this is something like code reviews and testing?
Trying to get some clarity on when this might land upstream so I can factor it into our decision making.
Adding what I can to the design here, with the preface that I’m not an accountant.
In a professional services firm (think McKinsey, BCG, etc.) employees are frequently, often daily, traveling to/from clients or, if in sales, entertaining them. This generates a large number of expenses without invoices (receipts are required) that are either:
Invoiced to the client if on billable work (usually consultants)
Booked as a cost-of-sale (usually salesmen)
These are very often in different currencies and if a lot of travel is involved, there could be 5 different currencies in a single week.
These expenses fall into some broad categories that probably cover 90% of the situations:
Hotel
Airfare/train
Taxi
Meals
Breakfast
Lunch
Dinner
Telecommunication (wireless at hotel, lounge, etc)
Entertainment
Miscellaneous (laundry, tips, etc)
By way of example I’ve attached a spreadsheet that provides a quick overview into what a typical week for a consultant might look like, expense wise. Apparently new users can’t upload attachments.
No it is done using the formalism of Feature - Tryton Discussion.
And to succeed the author needs a strong commitment and a deep knowledge of Tryton to ensure a good integration with the other parts of the system.
Usually you start with small fix, improvement before trying to propose a new module.
Also it will be hard to accept a lot of codes at once from someone who is not know in the community for a long time.
So we need to see a long term commitment.
For invoicing, what we did is associate the expense to a project and include a checkbox to decide if the expense should be invoices.
When invoicing the project, we just include all the expenses that should be invoiced grouped by product. So a part for a module to manage expenses, whe need a separate module to allow them to be invoiced in project modules.
As the rules are quite hard for newcommers. I will be happy to have a working prototype under the tryton community umbrella which may land in the future as part of tryton standard module.