Service - CommerceAccounting Sale
Jump to navigation
Jump to search
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: "ComAccLink",
objectType: "comAccLink"
},
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 sale
Relationships
...
flowSchemas
saleCommitted
- 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)
- (credit)vatPayable(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
saleChange
- 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