Service - CommerceAccounting Sale
Revision as of 13:27, 11 January 2026 by Sven the Barbarian (talk | contribs)
Overview
Handle sales in one service, because some Accounting entries include the full amount, some break up according to saleLineItems.
Repository
...
Object Schemas
- Additional Information
- Per Service Schemas
{
objectType: "comAccSaleLink",
canDelete: false,
belongTo: {
serviceTag: "User",
objectType: "user"
},
addOnDataStructure: [],
storageResources: {
"dynamo": {
"storageType": "dynamoDB",
"tableName": "comAccSaleLink",
}
},
fieldNames: {
// probably have two dynamo tables, one identified by saleId, one by journalId
},
identifiers: [
{
// see above note
}
]
}
- one saleId may link to multiple journalIds, sale value and inventory adjustment entries
- maintains a link between saleId and journalIds, so can adjust if changes made to purchases
Relationships
...
flowSchemas
saleCreated
- when creating a sale, iterate saleLineItems to decide which journal entries are created
- accountsReceivable accountId will need to come from Service - CommerceAccounting Customer
Sale Value
- the total sale value has journal entry for all the below:
- (debit)accountsReceivable(Asset)
- The other side (credit) is broken up depending on goods/service or assets
- For goods value an entry is entered into the below
- (credit)goodsSale/serviceSale(Revenue)
- Assets have:
- (credit)inventoryAsset(Asset)
- (debit)accumulatedDepreciation(Asset)
- (debit or credit)creditGainOnSale(Renenue)/debitLossOnSale(Expense)
- Intangible Assets have:
- (credit)inventoryIntangibleAsset(Asset)
- (debit)accumulatedAmortization(Asset)
- (debit or credit)creditGainOnSale(Renenue)/debitLossOnSale(Expense)
- all credit side may have:
- (credit)salesTaxPayable(Liability)
Goods Sold
- the total saleLineItem value for Inventory Goods has a journal entry for:
- (debit)cogsGoods(Expense)
- (credit)inventoryGoods(Asset)
Raw Material Sold
- the total saleLineItem value for Inventory Raw Materials has a journal entry for:
- (debit)cogsRawMaterial(Expense)
- (credit)inventoryRawMaterial(Asset)
Assets Sold
- might not have accumulatedDepreciation applied yet
- if sold for same amount as original value then not have creditGainOnSale/debitLossOnSale
- will need to query Accounting Assets service for depreciation amount
- may need to query ComAcc Inventory service to find link between Commerce Asset and Accounting Asset, so can find depreciation
Services Sold
- no additional entries required
Intangible Goods Sold
- no additional entries required
- entries same as physical Goods
Intangible Assets
- same as an Asset, except use the term Amortization instead of Depreciation, which are functionally the same
inventoryGoodsPurchaseChange
- make adjustment to journal entries when saleLineItemId changes
- perhaps handling removal of sale/journal entries, or creation of new entries
- basically re-calculate all entries and check against existing