3.4 KiB
Split Pendapatan Payment - Configuration Guide
Issue Fixed
The module had a logic issue where it wasn't properly applying income accounts from payment methods for regular (non-discount) products when a discount product was configured in the POS.
Root Cause
The original code used elif logic which meant:
- IF discount product exists AND current sale is for discount product → use discount_account_id
- ELIF discount product exists BUT current sale is NOT discount → use income_account_id
- However, the ELIF was actually inside the discount check, causing it to skip for regular products
Solution Applied
Fixed the logic flow to properly check:
- Is this a discount product sale? → Use
discount_account_idfrom payment method (or product default) - Is this a regular product sale? → Use
income_account_idfrom payment method (or product default) - No discount product configured? → Use
income_account_idfrom payment method (or product default)
Required Configuration
To use this module properly, you MUST configure the income accounts in your payment methods:
Step 1: Configure Payment Method Income Accounts
- Go to Point of Sale → Configuration → Payment Methods
- For each payment method (Cash, Bank, Credit Card, etc.), open the form
- Fill in the following fields:
- Income Account: The account to use for regular product sales with this payment method
- Discount Account: The account to use for discount product sales with this payment method (if you use POS discounts)
Step 2: Important Notes
- If you don't configure these fields, the module will fall back to using the product's default income account
- For discount products, if
discount_account_idis not set in the payment method, it will use the discount product's configured account - For regular products, if
income_account_idis not set in the payment method, it will use the product's configured income account (from product or product category)
Example Configuration
Cash Payment Method:
- Income Account: 4000 - Sales Revenue (Cash)
- Discount Account: 4100 - Sales Discounts (Cash)
Bank Payment Method:
- Income Account: 4010 - Sales Revenue (Bank)
- Discount Account: 4110 - Sales Discounts (Bank)
Credit Card Payment Method:
- Income Account: 4020 - Sales Revenue (Credit Card)
- Discount Account: 4120 - Sales Discounts (Credit Card)
Error Messages
If you see an error saying "need to define the income account at product level", it means:
- The payment method doesn't have
income_account_idconfigured, AND - The product doesn't have a valid income account defined
Solution: Configure the income account in either:
- The payment method form (recommended), OR
- The product form or product category
Diagnostic Logging
The module now includes detailed logging to help diagnose issues. Check your Odoo logs for entries starting with === SPLIT PENDAPATAN DEBUG === to see:
- Which payment method is being processed
- What accounts are configured
- Which account is being used for each sale line
Module Behavior
This module splits income journal entries by payment method. For example, if you have a sale with:
- Total: 100,000
- Payment: 60,000 Cash + 40,000 Bank
Instead of one income line of 100,000, you'll get:
- Income (Cash): 60,000
- Income (Bank): 40,000
This allows you to track income separately by payment method for better financial reporting.