Files
odoo-docs/static/js/valuation-data.js
Lulu Grimalkin (lugr) f1d3ff015a [IMP] Inventory: change closing operation names in cheat sheet
The names of the accrual entry operations were updated. New screenshots
were added.

Task ID: 5107300

Part-of: odoo/documentation#15179
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-11-14 04:18:20 +00:00

1344 lines
71 KiB
JavaScript

/* global Immutable */
// NOTE: used by valuation-journal.js & valuation-accounting.js
// Deep conversion with OrderedMap as default
Immutable.fromJSButOrdered = code => Immutable.fromJS(code, (key, value) =>
Immutable.Iterable.isKeyed(value) ? value.toOrderedMap() : value.toList());
const VALUATION_STANDARDS = Immutable.fromJS([
{ name: 'continental', text: "Continental (Expenses = Purchase Expenses)" },
{ name: 'anglo_saxon', text: "Anglo-Saxon (Expenses = Cost of Goods Sold)" },
]);
const VALUATION_METHODS = Immutable.fromJS([
{ name: 'periodic', text: "Periodic: focuses on expenses by nature" },
{ name: 'perpetual', text: "Perpetual: focuses on inventory value" },
]);
const VALUATION_JOURNALS = Immutable.fromJSButOrdered({
continental: {
EQUITY: { code: 1, title: "Equity and Liabilities" },
ASSETS: { code: 2, title: "Fixed Assets" },
STOCK: {
code: 3, title: "Stock (Current Assets)",
RAW: { code: 300000, title: "Inventory Raw Materials" },
WIP: { code: 320000, title: "Work in Progress" },
FINISHED_GOODS: { code: 330000, title: "Inventory Finished Goods" },
GOODS_FOR_RESALE: { code: 340000, title: "Inventory Goods Purchase for Resale" },
},
LIABILITIES: {
code: 4, title: "Receivables and Payables",
CUSTOMERS: { code: 400000, title: "Customers" },
VAT_RECOVERABLE: { code: 411000, title: "VAT Recoverable" },
RECEIVABLE: { code: 414000, title: "Income Receivable" },
SUPPLIERS: { code: 440000, title: "Suppliers" },
INVOICES_UNRECEIVED: { code: 444000, title: "Invoices to Be Received" },
VAT_PAYABLE: { code: 451000, title: "VAT Payable" },
DEFERRED_CHARGES: { code: 490000, title: "Deferred Charges" },
DEFERRED_INCOME: { code: 493000, title: "Deferred Income" },
},
CASH: { code: 5, title: "Financial Accounts and Cash" },
EXPENSES: {
code: 6, title: "Expenses",
RAW: { code: 600000, title: "Raw Materials" },
FINISHED: { code: 600200, title: "Cost of Finished Goods" },
GOODS_FOR_RESALE: { code: 604000, title: "Goods for Resale" },
CHANGE_IN_RAW: { code: 609000, title: "Decrease (Increase) in Stocks of Raw Materials" },
CHANGE_IN_GOODS_FOR_RESALE: { code: 609400, title: "Decrease (Increase) in Stocks of Goods Purchased for Resale" },
},
REVENUES: {
code: 7, title: "Revenues",
SALES: { code: 700000, title: "Sales" },
CHANGE_IN_WIP: { code: 712000, title: "Increase (Decrease) in Stocks of Work in Progress" },
CHANGE_IN_FINISHED_GOODS: { code: 713000, title: "Increase (Decrease) in Stocks of Finished Goods" },
},
INITIAL_BALANCE: { code: 0, title: "General Balance for Inventory Initial Value" },
},
anglo_saxon: {
ASSETS: {
code: 1, title: "Assets",
BANK: { code: 101401, title: "Bank" },
INVENTORY: { code: 110100, title: "Inventory" },
RAW: { code: 110101, title: "Raw Materials Inventory" },
MANUFACTURED: { code: 110102, title: "Manufactured Products Inventory" },
COST: { code: 110400, title: "Cost of Production" },
VARIATIONS: { code: 110600, title: "Inventory Variations" },
RECEIVABLE: { code: 121000, title: "Accounts Receivable" },
UNINVOICED: { code: 121200, title: "Uninvoiced Receivable" },
PREPAID: { code: 128000, title: "Prepaid Expenses" },
TAX_PAID: { code: 131000, title: "Tax Paid" },
},
LIABILITIES: {
code: 2, title: "Liabilities",
PAYABLE: { code: 211000, title: "Accounts Payable" },
UNINVOICED: {
code: 211100,
title: "Bills to Receive/Goods Received Not Invoiced",
},
DEFERRED: { code: 212000, title: "Deferred Revenue" },
TAX_RECEIVED: { code: 251000, title: "Tax Received" },
},
EQUITY: {
code: 3, title: "Equity",
COMMON: { code: 303000, title: "Common Stock" },
},
REVENUES: {
code: 4, title: "Revenue",
SALES: { code: 400000, title: "Product Sales" },
},
EXPENSES: {
code: 5, title: "Expenses",
COST: { code: 500000, title: "Cost of Goods Sold" },
PRICE_DIFFERENCE: { code: 530000, title: "Price Difference" },
INVENTORY_LOSS: { code: 609100, title: "Inventory Loss Expense" },
MISC: { code: 609000, title: "Miscellaneous Expenses" },
},
INITIAL_BALANCE: { code: 0, title: "General Balance for Inventory Initial Value" },
},
});
/* Entry and review operations follow the following schema:
{ name: {
title: "...",
continental: {
periodic: {
operations: [{ account: [...], // corresponds to the above table
debit OR credit: n, // mutually exclusive
entries: [...], // reviews only, optional [accounting only]
except: [...], // reviews only, optional [accounting only]
}, ...],
journal_operations: [...], // `closing' reviews only [journaling only]
explanation: [...], // [journaling only]
configuration: [...], // [journaling only]
},
perpetual: { ditto },
},
anglo_saxon: {
periodic: { ditto },
perpetual: { ditto },
},
},
}, ...
See below for more on review operations.
*/
const VALUATION_ENTRIES = Immutable.fromJSButOrdered({
initial_inventory: {
title: "Initial Inventory (Goods for Resale $50)",
continental: {
periodic: {
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['INITIAL_BALANCE'], credit: 50 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
],
},
perpetual: {
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['INITIAL_BALANCE'], credit: 50 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50 },
{ account: ['INITIAL_BALANCE'], credit: 50 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50 },
{ account: ['INITIAL_BALANCE'], credit: 50 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
],
},
},
},
supplier_reception: {
title: "Supplier Goods Reception (PO $50, Bill $50)",
continental: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, goods' receipts are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"In a perpetual inventory valuation, goods receipts are not directly posted in the accounting.",
"The inventory value is updated:",
"- when the invoice/bill is posted",
"- when entries are generated from Inventory Valuation report at closing",
],
configuration: [],
},
},
anglo_saxon: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, goods' receipts are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"In a perpetual inventory valuation, goods receipts are not directly posted in the accounting.",
"The inventory value is updated:",
"- when the invoice/bill is posted",
"- when entries are generated from Inventory Valuation report at closing",
],
configuration: [],
},
},
},
supplier_bill: {
title: "Supplier Bill (PO $50, Bill $50)",
continental: {
periodic: {
operations: [
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['LIABILITIES', 'SUPPLIERS'], credit: 54.5 },
{ account: ['LIABILITIES', 'VAT_RECOVERABLE'], debit: 4.5 },
],
explanation: [],
configuration: [
"Account Payable: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
"Expense Account: defined on the product/product category",
],
},
perpetual: {
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['LIABILITIES', 'SUPPLIERS'], credit: 54.5 },
{ account: ['LIABILITIES', 'VAT_RECOVERABLE'], debit: 4.5 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
"Account Payable Account: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['EXPENSES', 'COST'], debit: 50 },
{ account: ['LIABILITIES', 'PAYABLE'], credit: 54.5 },
{ account: ['ASSETS', 'TAX_PAID'], debit: 4.5 },
],
explanation: [],
configuration: [
"Account Payable: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
"Expense Account: defined on the product/product category",
],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50 },
{ account: ['LIABILITIES', 'PAYABLE'], credit: 54.5 },
{ account: ['ASSETS', 'TAX_PAID'], debit: 4.5 },
],
explanation: [],
configuration: [
"Account Payable: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
"Expense Account: defined on the product/product category",
],
},
},
},
supplier_reception_extra: {
title: "Supplier Goods Reception (PO $48, Bill $50)",
continental: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, goods' receipts are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"In a perpetual inventory valuation, goods receipts are not directly posted in the accounting.",
"The inventory value is updated:",
"- when the invoice/bill is posted",
"- when entries are generated from Inventory Valuation report at closing",
],
configuration: [],
},
},
anglo_saxon: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, goods' receipts are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"In a perpetual inventory valuation, goods receipts are not directly posted in the accounting.",
"The inventory value is updated:",
"- when the invoice/bill is posted",
"- when entries are generated from Inventory Valuation report at closing",
],
configuration: [],
},
},
},
supplier_bill_extra: {
title: "Supplier Bill (PO $48, Bill $50)",
continental: {
periodic: {
operations: [
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['LIABILITIES', 'SUPPLIERS'], credit: 54.5 },
{ account: ['LIABILITIES', 'VAT_RECOVERABLE'], debit: 4.5 },
],
explanation: [],
configuration: [
"Account Payable: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
"Expense Account: defined on the product/product category",
],
},
perpetual: {
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['LIABILITIES', 'SUPPLIERS'], credit: 54.5 },
{ account: ['LIABILITIES', 'VAT_RECOVERABLE'], debit: 4.5 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
"Account Payable Account: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['EXPENSES', 'COST'], debit: 50 },
{ account: ['LIABILITIES', 'PAYABLE'], credit: 54.5 },
{ account: ['ASSETS', 'TAX_PAID'], debit: 4.5 },
],
explanation: [],
configuration: [
"Account Payable: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
"Expense Account: defined on the product/product category",
],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50 },
{ account: ['LIABILITIES', 'PAYABLE'], credit: 54.5 },
{ account: ['ASSETS', 'TAX_PAID'], debit: 4.5 },
],
explanation: [],
configuration: [
"Account Payable: defined on the supplier contact",
"Tax Account: defined on the account from the Purchase Taxes set on the product",
"Expense Account: defined on the product/product category",
],
},
},
},
customer_shipping: {
title: "Customer Shipping (SO $100, Invoice $100, Good Value $50)",
continental: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, goods shipments are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"In a perpetual inventory valuation, goods shipments are not directly posted in the accounting.",
"The inventory value is updated:",
"- when the invoice/bill is posted",
"- when entries are generated from Inventory Valuation report at closing",
],
configuration: [],
},
},
anglo_saxon: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, goods shipments are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"In a perpetual inventory valuation, goods shipments are not directly posted in the accounting.",
"The inventory value is updated:",
"- when the invoice/bill is posted",
"- when entries are generated from Inventory Valuation report at closing",
],
configuration: [],
},
},
},
customer_invoice: {
title: "Customer Invoice (SO $100, Invoice $100, Good Value $50)",
continental: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'CUSTOMERS'], debit: 109 },
{ account: ['LIABILITIES', 'VAT_PAYABLE'], credit: 9 },
{ account: ['REVENUES', 'SALES'], credit: 100 },
],
explanation: [],
configuration: [
"Account Receivable Account: defined on the customer contact",
"Tax Account: defined on the account from the Sales Taxes set on the product",
"Income Account: defined on the product/product category",
],
},
perpetual: {
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 50 },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50 },
{ account: ['LIABILITIES', 'CUSTOMERS'], debit: 109 },
{ account: ['LIABILITIES', 'VAT_PAYABLE'], credit: 9 },
{ account: ['REVENUES', 'SALES'], credit: 100 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
"Expense/COGS Account: defined on the product/product category",
"Account Receivable Account: defined on the customer contact",
"Tax Account: defined on the account from the Sales Taxes set on the product",
"Income Account: defined on the product/product category",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['ASSETS', 'RECEIVABLE'], debit: 109 },
{ account: ['LIABILITIES', 'TAX_RECEIVED'], credit: 9 },
{ account: ['REVENUES', 'SALES'], credit: 100 },
],
explanation: [],
configuration: [
"Account Receivable Account: defined on the customer contact",
"Tax Account: defined on the account from the Sales Taxes set on the product",
"Income Account: defined on the product/product category",
],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'INVENTORY'], credit: 50 },
{ account: ['EXPENSES', 'COST'], debit: 50 },
{ account: ['ASSETS', 'RECEIVABLE'], debit: 109 },
{ account: ['LIABILITIES', 'TAX_RECEIVED'], credit: 9 },
{ account: ['REVENUES', 'SALES'], credit: 100 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
"Expense/COGS Account: defined on the product/product category",
"Account Receivable Account: defined on the customer contact",
"Tax Account: defined on the account from the Sales Taxes set on the product",
"Income Account: defined on the product/product category",
],
},
},
},
manufacturing_order: {
title: "Manufacturing Order (Finished Product at $52, Component at $50)",
continental: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation manufacturing orders are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"No 'Cost of Production' account is set on the production location, therefore variations in" +
" inventories of manufactured goods and components will be recorded at closing.",
],
configuration: [],
},
},
anglo_saxon: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation manufacturing orders are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'MANUFACTURED'], debit: 52 },
{ account: ['ASSETS', 'COST'], credit: 52 },
{ account: ['ASSETS', 'RAW'], credit: 50 },
{ account: ['ASSETS', 'COST'], debit: 50 },
],
explanation: [],
configuration: [
"Stock Account for manufactured product: defined on the product category",
"Stock Account for component: defined on the product category",
"Cost of Production Account: defined on the production location",
],
},
},
},
inventory_loss: {
title: "Inventory Loss (Scrap $30)",
continental: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, inventory adjustments are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [],
explanation: [
"No 'Inventory Loss' account is set on the inventory loss location, therefore variations in" +
" inventories coming from inventory adjustments will be recorded at closing.",
],
configuration: [],
},
},
anglo_saxon: {
periodic: {
operations: [],
explanation: [
"In a periodic inventory valuation, inventory adjustments are not directly posted in the accounting.",
"The inventory value is updated when entries are generated from Inventory Valuation report at closing.",
],
configuration: [],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'INVENTORY'], credit: 30 },
{ account: ['EXPENSES', 'INVENTORY_LOSS'], debit: 30 },
],
explanation: [],
configuration: [
"Stock Account: defined on the product category",
"Inventory Adjustment Account: defined on the inventory loss location",
],
},
},
},
});
/* >Hic sunt dracones<
*
* Reviews are treated almost identically to entry operations in both scripts,
* except for the following difference in behaviour.
*
* [valuation-journal.js]
* The journal chart will use `journal_operations' (unique to `closing') if it
* exists, falling back to `operations' as normal otherwise. It will ignore the
* `entries' and `except' fields.
*
* [valuation-accounting.js]
* The accounting chart will ignore `journal_operations'. If an `entries' or
* `except' field is defined, it will only use that operation if said fields
* match the currently active operations (see above for keys). It must match
* ALL in `entries' and NONE in `except' in order to be used. The commented out
* parts in the `explanation' field (otherwise unused here) are relevant only
* for this chart.
*/
const VALUATION_REVIEWS = Immutable.fromJSButOrdered({
unreceived: {
title: "Bill To Receive",
continental: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'INVOICES_UNRECEIVED'], credit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['LIABILITIES', 'INVOICES_UNRECEIVED'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that expenses are recognized in the period in which they are incurred, regardless of when cash is paid.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is done but no bill is received yet",
"2) Supplier Goods Reception (PO $48, Bill $50) is done but no bill is received yet",
],
configuration: [
"Expense Account: defined on the product/product category",
"GRNI Account: defined when generating accrual entries from 'Bill To Receive'",
],
},
perpetual: {
operations: [
{ account: ['LIABILITIES', 'INVOICES_UNRECEIVED'], credit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['LIABILITIES', 'INVOICES_UNRECEIVED'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that expenses are recognized in the period in which they are incurred, regardless of when cash is paid.",
"They are reverted after the period we are closing.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is done but no bill is received yet",
"2) Supplier Goods Reception (PO $48, Bill $50) is done but no bill is received yet",
],
configuration: [
"Expense Account: defined on the product/product category",
"GRNI Account: defined when generating accrual entries from 'Bill To Receive'",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'UNINVOICED'], credit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['EXPENSES', 'COST'], debit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['LIABILITIES', 'UNINVOICED'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'COST'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that expenses are recognized in the period in which they are incurred, regardless of when cash is paid.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is done but no bill is received yet",
"2) Supplier Goods Reception (PO $48, Bill $50) is done but no bill is received yet",
],
configuration: [
"Expense Account: defined on the product/product category",
"GRNI Account: defined when generating accrual entries from 'Bill To Receive'",
],
},
perpetual: {
operations: [
{ account: ['LIABILITIES', 'UNINVOICED'], credit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['ASSETS', 'VARIATIONS'], debit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['LIABILITIES', 'UNINVOICED'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['ASSETS', 'VARIATIONS'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
],
explanation: [
"Accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that revenues/expenses are recognized in the period in which they are earned/incurred, regardless of" +
" when cash is received / paid.",
"They are reverted after the period we are closing.",
"From a stock point of view, it also enables us to specify a part of the origin of stock variations (between" +
" Accounting Stock and Inventory Stock) recorded from the Inventory Valuation report.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is done but no bill is received yet",
"2) Supplier Goods Reception (PO $48, Bill $50) is done but no bill is received yet",
],
configuration: [
"Inventory Variation Account: defined on the used Stock Account for the product category",
"GRNI Account: defined when generating accrual entries from 'Bill To Receive'",
],
},
},
},
uninvoiced: {
title: "Invoices To Be Issued",
continental: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'RECEIVABLE'], debit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['REVENUES', 'SALES'], credit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that revenues are recognized in the period in which they are earned, regardless of when cash is received.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is done but no invoice is sent yet",
],
configuration: [
"Revenue Account: defined on the product/product category",
"Uninvoiced Receivable Account: defined when generating accrual entries from 'Invoices To Be Issued'",
],
},
perpetual: {
operations: [
{ account: ['LIABILITIES', 'RECEIVABLE'], debit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['REVENUES', 'SALES'], credit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that revenues are recognized in the period in which they are earned, regardless of when cash is received.",
"They are reverted after the period we are closing.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is done but no invoice is sent yet",
],
configuration: [
"Revenue Account: defined on the product/product category",
"Uninvoiced Receivable Account: defined when generating accrual entries from 'Invoices To Be Issued'",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['ASSETS', 'UNINVOICED'], debit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['REVENUES', 'SALES' ], credit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that revenues are recognized in the period in which they are earned, regardless of" +
" when cash is received.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is done but no invoice is sent yet",
],
configuration: [
"Revenue Account: defined on the product/product category",
"Uninvoiced Receivable Account: defined when generating accrual entries from 'Invoices To Be Issued'",
],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'UNINVOICED'], debit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['REVENUES', 'SALES'], credit: 100,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['ASSETS', 'VARIATIONS'], credit: 50,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['EXPENSES', 'COST'], debit: 50,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
],
explanation: [
"These accrual entries are adjusting journal entries made at the end of an accounting period to ensure" +
" that revenues/expenses are recognized in the period in which they are earned/incurred, regardless of" +
" when cash is received/paid.",
"From a stock point of view, it also enables us to specify a part of the origin of stock variations (between" +
" Accounting Stock and Inventory Stock) recorded from the Inventory Valuation report.",
"They are reverted after the period we are closing.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is done but no invoice is sent yet",
],
configuration: [
"Inventory Variation Account: defined on the used Stock Account for the product category",
"Uninvoiced Receivable Account: defined when generating accrual entries from 'Invoices To Be Issued'",
"Revenue Account: defined on the product/product category",
"Expense/COGS Account: defined on the product/product category",
],
},
},
},
prepaid: {
title: "Billed Not Received",
continental: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'DEFERRED_CHARGES'], debit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['LIABILITIES', 'DEFERRED_CHARGES'], debit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
],
explanation: [
"Billed Not Received are journal entries made during closing when a supplier bill is received before goods" +
" or services are received, so the amount is recorded as an asset until the expense is recognized.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is not done but the bill is received",
"2) Supplier Goods Reception (PO $48, Bill $50) is not done but the bill is received",
],
configuration: [
"Expense Account: defined on the product/product category",
"Prepaid Expense Account: defined when generating entries from 'Billed Not Received'",
],
},
perpetual: {
operations: [
{ account: ['LIABILITIES', 'DEFERRED_CHARGES'], debit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['LIABILITIES', 'DEFERRED_CHARGES'], debit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
],
explanation: [
"Billed Not Received are journal entries made during closing when a supplier bill is received before goods" +
" or services are received, so the amount is recorded as an asset until the expense is recognized.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is not done but the bill is received",
"2) Supplier Goods Reception (PO $48, Bill $50) is not done but the bill is received",
],
configuration: [
"Expense Account: defined on the product/product category",
"Prepaid Expense Account: defined when generating entries from 'Billed Not Received'",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['ASSETS', 'PREPAID'], debit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['EXPENSES', 'COST'], credit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['ASSETS', 'PREPAID'], debit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['EXPENSES', 'COST'], credit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
],
explanation: [
"Billed Not Received are journal entries made during closing when a supplier bill is received before goods" +
" or services are received, so the amount is recorded as an asset until the expense is recognized.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is not done but the bill is received",
"2) Supplier Goods Reception (PO $48, Bill $50) is not done but the bill is received",
],
configuration: [
"Expense Account: defined on the product/product category",
"Prepaid Expense Account: defined when generating entries from 'Billed Not Received'",
],
},
perpetual: {
operations: [
{ account: ['ASSETS', 'PREPAID'], debit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['ASSETS', 'VARIATIONS'], credit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['ASSETS', 'PREPAID'], debit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['ASSETS', 'VARIATIONS'], credit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
],
explanation: [
"Billed Not Received are journal entries made during closing when a supplier bill is received before goods" +
" or services are received, so the amount is recorded as an asset until the expense is recognized.",
"From a stock point of view, it also enables us to specify a part of the origin of stock variations (between" +
" Accounting Stock and Inventory Stock) recorded from the Inventory Valuation report.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is not done but the bill is received",
"2) Supplier Goods Reception (PO $48, Bill $50) is not done but the bill is received",
],
configuration: [
"Inventory Variation Account: defined on the used Stock Account for the product category",
"Prepaid Expense Account: defined when generating entries from 'Billed Not Received'",
],
},
},
},
deferred: {
title: "Invoiced Not Delivered",
continental: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'DEFERRED_INCOME'], credit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['REVENUES', 'SALES'], debit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
],
explanation: [
"Invoiced Not Delivered are journal entries made during closing when an invoice has been issued but goods or" +
" services are not delivered yet, so the amount has to be recorded as a liability until the revenue is earned.",
"They are reverted after the period we are closing.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is not done but the invoice is sent",
],
configuration: [
"Revenue Account: defined on the product/product category",
"Deferred Revenue Account: defined when generating accrual entries from 'Invoiced Not Delivered'",
],
},
perpetual: {
operations: [
{ account: ['LIABILITIES', 'DEFERRED_INCOME'], credit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['REVENUES', 'SALES'], debit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
],
explanation: [
"Invoiced Not Delivered are journal entries made during closing when an invoice has been issued but goods or" +
" services are not delivered yet, so the amount has to be recorded as a liability until the revenue is earned.",
"They are reverted after the period we are closing.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is not done but the invoice is sent",
],
configuration: [
"Revenue Account: defined on the product/product category",
"Deferred Revenue Account: defined when generating accrual entries from 'Invoiced Not Delivered'",
],
},
},
anglo_saxon: {
periodic: {
operations: [
{ account: ['LIABILITIES', 'DEFERRED'], credit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['REVENUES', 'SALES'], debit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
],
explanation: [
"Invoiced Not Delivered are journal entries made during closing when an invoice has been issued but goods or" +
" services are not delivered yet, so the amount has to be recorded as a liability until the revenue is earned.",
"They are reverted after the period we are closing.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is not done but the invoice is sent",
],
configuration: [
"Revenue Account: defined on the product/product category",
"Deferred Revenue Account: defined when generating accrual entries from 'Invoiced Not Delivered'",
],
},
perpetual: {
operations: [
{ account: ['LIABILITIES', 'DEFERRED'], credit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['REVENUES', 'SALES'], debit: 100,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['ASSETS', 'VARIATIONS'], debit: 50,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['EXPENSES', 'COST'], credit: 50,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
],
explanation: [
"Invoiced Not Delivered are journal entries made during closing when an invoice has been issued but goods or" +
" services are not delivered yet, so the amount has to be recorded as a liability until the revenue is earned.",
"From a stock point of view, it also enables us to specify a part of the origin of stock variations (between" +
" Accounting Stock and Inventory Stock) recorded from the Inventory Valuation report.",
"They are reverted after the period we are closing.",
"Related operation:",
"Customer Shipping (SO $100, Invoice $100, Good Value $50) is not done but the invoice is sent",
],
configuration: [
"Inventory Variation Account: defined on the used Stock Account for the product category",
"Deferred Revenue Account: defined when generating accrual entries from 'Invoiced Not Delivered'",
"Revenue Account: defined on the product/product category",
"Expense/COGS Account : defined on the product/product category",
],
},
},
},
closing: {
title: "Inventory Valuation",
continental: {
periodic: {
journal_operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 20 },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 20 },
{ account: ['STOCK', 'FINISHED_GOODS'], debit: 52 },
{ account: ['STOCK', 'RAW'], credit: 50 },
{ account: ['REVENUES', 'CHANGE_IN_FINISHED_GOODS'], credit: 52 },
{ account: ['EXPENSES', 'CHANGE_IN_RAW'], debit: 50 },
],
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_reception'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception_extra', 'supplier_bill_extra'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_reception_extra', 'supplier_bill_extra'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['customer_shipping'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], debit: 50,
entries: ['customer_shipping'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 30,
entries: ['inventory_loss'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], debit: 30,
entries: ['inventory_loss'] },
{ account: ['STOCK', 'FINISHED_GOODS'], debit: 52,
entries: ['manufacturing_order'] },
{ account: ['STOCK', 'RAW'], credit: 50,
entries: ['manufacturing_order'] },
{ account: ['REVENUES', 'CHANGE_IN_FINISHED_GOODS'], credit: 52,
entries: ['manufacturing_order'] },
{ account: ['EXPENSES', 'CHANGE_IN_RAW'], debit: 50,
entries: ['manufacturing_order'] },
],
explanation: [
"At closing, Inventory Valuation must be updated to reflect reality. This will be done by generating entries from" +
" the Inventory Valuation report. This will recognize value coming from operations such as the following ones:",
"1) Supplier Goods Reception (PO $50, Bill $50)",
"2) Supplier Goods Reception (PO $48, Bill $50)",
"3) Customer Shipping (SO $100, Invoice $100, Good Value $50)",
"4) Inventory Loss (Scrap $30)",
"5) Manufacturing Order (Finished Product at $52, Component at $50)",
],
configuration: [
"Stock Account: defined on the product category",
"Inventory Variation Account: defined on the used Stock Account",
],
},
perpetual: {
journal_operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 18 },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 18 },
{ account: ['STOCK', 'FINISHED_GOODS'], debit: 52 },
{ account: ['EXPENSES', 'FINISHED'], credit: 52 },
{ account: ['STOCK', 'RAW'], credit: 50 },
{ account: ['EXPENSES', 'RAW'], debit: 50 },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 18 },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 18 },
{ account: ['EXPENSES', 'RAW'], credit: 50 },
{ account: ['EXPENSES', 'CHANGE_IN_RAW'], debit: 50 },
{ account: ['EXPENSES', 'FINISHED'], debit: 52 },
{ account: ['REVENUES', 'CHANGE_IN_FINISHED_GOODS'], credit: 52 },
],
operations: [
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 30,
entries: ['inventory_loss'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 30,
entries: ['inventory_loss'] },
{ account: ['STOCK', 'FINISHED_GOODS'], debit: 52,
entries: ['manufacturing_order'] },
{ account: ['EXPENSES', 'FINISHED'], credit: 52,
entries: ['manufacturing_order'] },
{ account: ['STOCK', 'RAW'], credit: 50,
entries: ['manufacturing_order'] },
{ account: ['EXPENSES', 'RAW'], debit: 50,
entries: ['manufacturing_order'] },
// Adjustment
// a) Purchased good for resale
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_reception'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_reception_extra', 'supplier_bill_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_reception_extra', 'supplier_bill_extra'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], debit: 50,
entries: ['customer_shipping'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['customer_shipping'] },
{ account: ['EXPENSES', 'CHANGE_IN_GOODS_FOR_RESALE'], debit: 30,
entries: ['inventory_loss'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 30,
entries: ['inventory_loss'] },
// b) Component
{ account: ['EXPENSES', 'RAW'], credit: 50,
entries: ['manufacturing_order'] },
{ account: ['EXPENSES', 'CHANGE_IN_RAW'], debit: 50,
entries: ['manufacturing_order'] },
// c) Finished product
{ account: ['EXPENSES', 'FINISHED'], debit: 52,
entries: ['manufacturing_order'] },
{ account: ['REVENUES', 'CHANGE_IN_FINISHED_GOODS'], credit: 52,
entries: ['manufacturing_order'] },
// Second half, excluded from journal chart
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['STOCK', 'GOODS_FOR_RESALE'], debit: 50,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['EXPENSES', 'GOODS_FOR_RESALE'], credit: 50,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
],
explanation: [
"At closing Accounting Stock and Inventory Stock must have the same value.",
"A difference could come from cases such as the ones listed below and this will be corrected thanks to" +
" the Inventory Valuation report closing entry.",
"1) Supplier Goods Reception (PO $50, Bill $50) is done but no bill is received yet",
"2) Supplier Goods Reception (PO $48, Bill $50) is done but no bill is received yet",
"3) Customer Shipping (SO $100, Invoice $100, Good Value $50) is done but no invoice is sent yet",
"4) Inventory Loss (Scrap $30)",
"5) Manufacturing Order (Finished Product at $52, Component at $50)",
"At closing, an adjusting entry is created to ensure that the values are correctly recorded in the" +
" variation and expenses accounts according to continental accounting logic. Indeed, even though" +
" expenses are recorded according to the COGS logic of Anglo-Saxon accounting during the period," +
" at closing the expenses recorded should represent what was actually purchased during this period.",
"The variation is known thanks to the calculation (Stock Account y - Stock Account y-1) for each of" +
" the following categories:",
"a. Purchased good for resale",
"b. Component",
"c. Finished product",
// "6) Supplier Goods Reception (PO $50, Bill $50) is not done but the bill is received",
// "7) Supplier Goods Reception (PO $48, Bill $50) is not done but the bill is received",
// "8) Customer Shipping (SO $100, Invoice $100, Good Value $50) is not done but the invoice is sent",
],
configuration: [
"Expense Account: defined on the product/product category",
"Stock Account: defined on the product category",
"Inventory Variation Account: defined on the used Stock Account",
"Expense Account for adjusting entry: defined on the used Stock Account",
],
},
},
anglo_saxon: {
periodic: {
journal_operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50 },
{ account: ['EXPENSES', 'COST'], credit: 50 },
{ account: ['ASSETS', 'INVENTORY'], credit: 30 },
{ account: ['EXPENSES', 'INVENTORY_LOSS'], debit: 30 },
{ account: ['ASSETS', 'MANUFACTURED'], debit: 52 },
{ account: ['ASSETS', 'COST'], credit: 52 },
{ account: ['ASSETS', 'RAW'], credit: 50 },
{ account: ['ASSETS', 'COST'], debit: 50 },
],
operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50,
entries: ['supplier_reception'] },
{ account: ['EXPENSES', 'COST'], credit: 50,
entries: ['supplier_reception'] },
{ account: ['ASSETS', 'INVENTORY'], debit: 50,
entries: ['supplier_reception_extra', 'supplier_bill_extra'] },
{ account: ['EXPENSES', 'COST'], credit: 50,
entries: ['supplier_reception_extra', 'supplier_bill_extra'] },
{ account: ['ASSETS', 'INVENTORY'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['EXPENSES', 'COST'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['ASSETS', 'INVENTORY'], credit: 50,
entries: ['customer_shipping'] },
{ account: ['EXPENSES', 'COST'], debit: 50,
entries: ['customer_shipping'] },
{ account: ['ASSETS', 'INVENTORY'], credit: 30,
entries: ['inventory_loss'] },
{ account: ['EXPENSES', 'INVENTORY_LOSS'], debit: 30,
entries: ['inventory_loss'] },
{ account: ['ASSETS', 'MANUFACTURED'], debit: 52,
entries: ['manufacturing_order'] },
{ account: ['ASSETS', 'COST'], credit: 52,
entries: ['manufacturing_order'] },
{ account: ['ASSETS', 'RAW'], credit: 50,
entries: ['manufacturing_order'] },
{ account: ['ASSETS', 'COST'], debit: 50,
entries: ['manufacturing_order'] },
],
explanation: [
"At closing, Inventory Valuation must be updated to reflect reality. This will be done by generating entries from" +
" the Inventory Valuation report. This will recognize value coming from operations such as the following ones:",
"1) Supplier Goods Reception (PO $50, Bill $50)",
"2) Supplier Goods Reception (PO $48, Bill $50)",
"3) Customer Shipping (SO $100, Invoice $100, Good Value $50)",
"4) Inventory Loss (Scrap $30)",
"5) Manufacturing Order (Finished Product at $52, Component at $50)",
],
configuration: [
"Stock Account: defined on the product category",
"Inventory Variation Account: defined on the used Stock Account",
"Inventory Adjustment Account: defined on the Inventory Loss location",
"Cost of Production Account: defined on the Production location",
],
},
perpetual: {
journal_operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 48 },
{ account: ['ASSETS', 'VARIATIONS'], credit: 48 },
],
operations: [
{ account: ['ASSETS', 'INVENTORY'], debit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['ASSETS', 'VARIATIONS'], credit: 50,
entries: ['supplier_reception'],
except: ['supplier_bill'] },
{ account: ['ASSETS', 'INVENTORY'], debit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['ASSETS', 'VARIATIONS'], credit: 48,
entries: ['supplier_reception_extra'],
except: ['supplier_bill_extra'] },
{ account: ['ASSETS', 'INVENTORY'], credit: 50,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['ASSETS', 'VARIATIONS'], debit: 50,
entries: ['customer_shipping'],
except: ['customer_invoice'] },
{ account: ['ASSETS', 'INVENTORY'], credit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['ASSETS', 'VARIATIONS'], debit: 50,
entries: ['supplier_bill'],
except: ['supplier_reception'] },
{ account: ['ASSETS', 'INVENTORY'], credit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['ASSETS', 'VARIATIONS'], debit: 50,
entries: ['supplier_bill_extra'],
except: ['supplier_reception_extra'] },
{ account: ['ASSETS', 'INVENTORY'], debit: 50,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
{ account: ['ASSETS', 'VARIATIONS'], credit: 50,
entries: ['customer_invoice'],
except: ['customer_shipping'] },
],
explanation: [
"At closing, Accounting Stock and Inventory Stock must have the same value.",
"A difference could come from cases such as the ones listed below and this will be corrected thanks to" +
" the Inventory Valuation report closing entry.",
"Related operations:",
"1) Supplier Goods Reception (PO $50, Bill $50) is done but no bill is received yet",
"2) Supplier Goods Reception (PO $48, Bill $50) is done but no bill is received yet",
"3) Customer Shipping (SO $100, Invoice $100, Good Value $50) is done but no invoice is sent yet",
// "4) Supplier Goods Reception (PO $50, Bill $50) is not done but the bill is received",
// "5) Supplier Goods Reception (PO $48, Bill $50) is not done but the bill is received",
// "6) Customer Shipping (SO $100, Invoice $100, Good Value $50) is not done but the invoice is sent",
],
configuration: [
"Stock Account: defined on the product category",
"Inventory Variation Account: defined on the used Stock Account",
],
},
},
},
});