stock_readjust_valuation/README.md

53 lines
3.8 KiB
Markdown

# Stock Readjust Valuation
This module allows for the retrospective adjustment of product costs and Cost of Goods Sold (COGS) based on a calculated weighted average cost over a specified period. It is designed to correct valuation discrepancies and ensure accurate financial reporting, particularly for Point of Sale (POS) transactions.
## Features
* **Period-Based Readjustment**: Define a Start Date and End Date to calculate the Weighted Average Cost of products based on Initial Stock and Purchases within that period.
* **Initial Stock Correction**: Automatically readjusts the value of the stock on hand at the Start Date if the target cost differs from the historical cost.
* **COGS Readjustment**: Propagates the new Average Cost to all Outgoing Stock Moves (Sales, Manufacturing, etc.) within the period.
* **Manufacturing Cost Rollup**: Automatically recalculates the cost of manufactured products (MOs) produced within the period based on the new costs of their components, adjusting the valuation of the finished goods.
* **Resumable Batch Processing**: Designed for high volume; processes transactions in chunks and saves progress automatically. If interrupted (e.g., server timeout), re-clicking "Apply" intelligently resumes from the last save point.
* **Traceability**:
* Generates a unique sequence (`ADJ/XXXXX`) for each readjustment record.
* **Detailed Journal Labels**: Include Product Name, POS Session, and POS Order references in the Journal Entry lines for immediate clarity.
* Smart Button to view all generated Accounting Journal Entries.
## Accounting Logic
### 1. Initial Stock Adjustment
* **Trigger**: Difference between `Initial Value` and `Target Initial Value`.
* **Accounting Date**: **Start Date** of the Readjustment Period.
* **Entry**: Adjusts `Stock Valuation` vs `Expense/Gain-Loss`.
### 2. COGS (Delivery) Adjustment
* **Trigger**: Outgoing Stock Moves within the period.
* **Accounting Date**: **End Date** of the Readjustment Period.
* **Entry**: Adjusts `Cost of Goods Sold` vs `Stock Valuation`.
* **Calculation**: `(New Cost * Qty) - Abs(Current Value)`
### 3. POS Specific Adjustment (Secondary Correction)
* **Trigger**: Outgoing Moves linked to POS Orders.
* **Context**: POS transactions typically move cost from `Stock Valuation` -> `Interim Output` (Delivery) -> `Expense` (POS Session Closing).
* **Primary Correction**: Adjusts `Stock Valuation` vs `Interim Output`.
* **Secondary Correction**: Adjusts `Interim Output` vs `Final Expense`.
* **Accounting Date**: **End Date** of the Readjustment Period.
* **Reference**: Includes POS Order and POS Session Name for easy reconciliation.
### 4. Scrap / Inventory Loss Adjustment
* **Trigger**: Moves to a location with Usage "Inventory Loss" (e.g., Scrap/Spoil) where the move is flagged as a Scrap operation or the location is a designated Scrap Location.
* **Account Selection**: Prioritizes the **Location's Incoming Stock Valuation Account** as the counterpart (Expense/Loss account) if configured. This overrides the default Product Category Stock Output account, ensuring precise allocation of losses to specific accounts (e.g., "Waste & Damage Inventory").
## Usage
1. Go to **Inventory > Operations > Stock Readjustment**.
2. Create a new record.
3. Select the **Product Category** (optional filtering) and set the **Date Range**.
4. Click **Load Products** to populate the lines with products that had stock or moves during the period.
5. Review the `Qty at Start`, `Valuation at Start`, and `Purchase Value`.
* You can manually edit `Qty Counted` and `Target Initial Value` if the system computed values need overridings.
6. Click **Calculate** to see the `New Average Cost`.
7. Click **Apply Readjustment** to post the corrections.
8. Use the **Journal Entries** smart button to review the posted moves.