| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Purchase (purchase) • Discuss (mail) |
| Lines of code | 745 |
| Technical Name |
gb_accrual_wizard_from_open_pos_grns |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Purchase (purchase) • Discuss (mail) |
| Lines of code | 745 |
| Technical Name |
gb_accrual_wizard_from_open_pos_grns |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Accrual Wizard from Open
Auto-accrue Goods-Received-Not-Invoiced (GRNI) at period close and auto-reverse next period
Odoo has no native goods-received-not-invoiced (GRNI) accrual, so finance teams either ignore the liability or spreadsheet it by hand every period close — distorting cost of sales and leaving auditors without cut-off evidence. This wizard fixes that. At your chosen cut-off date it scans open purchase orders and their stock receipts, computes the value of stock received but not yet invoiced at unit cost, and posts a single balanced accrual journal that credits a GRNI accrual account and debits each product's expense account. Every accrual is created to auto-reverse on the first day of the next period — and a scheduled cron does it for you — so it self-cancels the moment the supplier bill lands. A live aged-balance report and a full line-level audit trail give controllers and external auditors the defensible cut-off evidence they expect at year end.
Key Features
Cut-off-Aware GRNI Detection
action_compute scans purchase.order.line records in the 'purchase' or 'done' state, and _received_qty_until sums only stock moves done on or before the cut-off date. Quantity received minus invoiced is valued at unit cost to build each gb.grni.accrual.run.line.
Single Balanced Accrual Entry
_prepare_move_lines debits each line's counterpart (the company GRNI counterpart or the product's expense account) and credits the total to the accrual_account_id. action_post creates and posts one account.move so the whole period accrues in a single, balanced journal.
Automatic Period Reversal
On create the reversal_date defaults to the first day of the next month. action_reverse calls _reverse_moves on the reversal date so the accrual self-cancels once the supplier bill is recorded, leaving no manual cleanup at next close.
Scheduled Auto-Reverse Cron
The _cron_auto_reverse scheduled job finds every posted run whose reversal_date has passed and reverses it automatically. Set up the accrual once and the period-close reversal happens unattended on the right date.
Line-Level Audit Trail
Each run stores gb.grni.accrual.run.line records carrying the source PO line, vendor, product, GRNI quantity, unit cost and accrued amount, with computed line_count and total_accrued. Auditors get defensible cut-off evidence down to the receipt.
Live GRNI Ageing Analysis
gb.grni.balance.line.refresh_balances rebuilds an on-demand report of every PO line with an open received-not-invoiced balance, valuing it and bucketing by earliest-receipt age (0-30, 31-60, 61-90, 90+ days) in a list/pivot view to chase missing supplier invoices.
Use Cases
Screenshots
Generate Grni Accrual
Why Choose This Module
At period close the wizard scans open purchase orders and their receipts, computes the value of stock received but not yet invoiced, and posts a single accrual journal entry — crediting a GRNI accrual account and debiting the relevant expense/inventory account — that automatically reverses next period when the supplier invoice lands.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: LGPL-3
- Languages: 35+
- Author: Baris Genc
- Dependencies: account, purchase, stock
- Support: odoo@gencbaris.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module