Service - CommerceAccounting Purchase: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 145: Line 145:
vendorId: "",
vendorId: "",
purchaseCurrencyId: "",
purchaseCurrencyId: "",
inventoryLocationId: "", // required if have any inventory/?assets
purchaseLineItems: {
purchaseLineItems: {
{purchaseLineItemId}: {
{purchaseLineItemId}: {
Type: "", // inventory|expense|services|freight|salesTax|vatTax|other
            inventoryId: "",
SubType: "", // inventory: goods|intangibleGoods|rawMaterial|asset|intangibleAsset, expense: pointInTime|overTime, services: pointInTime|overTime, freight: standard, order: standard
            inventoryTemplateId: "",
type: "", // inventory|expense|services|freight|salesTax|vatTax|other
subType: "", // inventory: goods|intangibleGoods|rawMaterial|asset|intangibleAsset, expense: pointInTime|overTime, services: pointInTime|overTime, freight: standard, order: standard
lineItemQuantity: 1,
lineItemQuantity: 1,
lineItemUnitPrice: "2.00"
lineItemUnitPrice: "2.00"
Line 157: Line 160:
</syntaxhighlight>
</syntaxhighlight>


== purchaseChange ==
== updatePurchase ==


* make adjustment to journal entries when purchaseLineItemId changes
* make adjustment to journal entries when purchaseLineItemId changes
* handle removal of purchase/journal entries, or creation of new entries
* handle removal of purchase/journal entries, or creation of new entries
* basically re-calculate all entries and check against existing
* basically re-calculate all entries and check against existing
* each journalId must check Accounting that it's period/s are not locked, if locked return error, cannot make update


= Working documents =
= Working documents =

Latest revision as of 09:14, 30 April 2026

Overview

Handle links between purchases and Accounting records.

Repository

...

Object Schemas

Additional Information
Per Service Schemas

comAccPurchaseLink

{
	objectType: "comAccPurchaseLink",
	canDelete: false,
	belongTo: {
		serviceTag: "ComAccLink",
		objectType: "comAccLinkByBusiness"
	},
	addOnDataStructure: [],
	storageResources: {
		"dynamo": {
			"storageType": "dynamoDB",
			"tableName": "comAccPurchaseLink",
		}
    },
    fieldNames: {
		// businessId,
		// accountLinkTag // type of link: inputVAT|..
		// accountId
    },
    identifiers: [
		{
			type: "partitionKey",
			fieldName: "businessId",
		},
		{
			type: "sortKey",
			fieldName: "accountLinkTag"
		},
    ]
}
  • sets which Accounting accountId journal entries are added to

comAccPurchase

{
	objectType: "comAccPurchase",
	canDelete: false,
	belongTo: {
		serviceTag: "ComAccLink",
		objectType: "comAccLinkByBusiness"
	},
	addOnDataStructure: [],
	storageResources: {
		"dynamo": {
			"storageType": "dynamoDB",
			"tableName": "comAccPurchase",
		}
    },
    fieldNames: {
		// businessId,
		// purchaseId,
		inputVatJournalId: {
			type: "string",
			optionalOnCreate: true,
			canUpdate: true,
			storageResourceTags: ["dynamo"],
		},

    },
    identifiers: [
		{
			type: "partitionKey",
			fieldName: "businessId",
		},
		{
			type: "sortKey",
			fieldName: "purchaseId"
		},
    ]
}

comAccPurchaseLineItem

{
	objectType: "comAccPurchaseLineItem",
	canDelete: false,
	belongTo: {
		serviceTag: "ComAccLink",
		objectType: "comAccLinkByBusiness"
	},
	addOnDataStructure: [],
	storageResources: {
		"dynamo": {
			"storageType": "dynamoDB",
			"tableName": "comAccPurchaseLineItem",
		}
    },
    fieldNames: {
		// purchaseId,
		// purchaseLineItemId,
		// journalId
    },
    identifiers: [
		{
			type: "partitionKey",
			fieldName: "purchaseId"
		},
		{
			type: "sortKey",
			fieldName: "purchaseLineItemId"
		},
    ]
}

Relationships

...

flowSchemas

createPurchase

  • when creating a purchase, iterate purchaseLineItems to decide which journal entries are created
  • accountsPayable accountId comes from Service - CommerceAccounting Vendor
  • each purchaseLineItem checks it's type then finds accountId from coresponding comAcc service

Example request param from Commerce

{
	belongToIdentifiers: {
	  businessId: "xxx"
	},
	purchaseId: "",
	vendorId: "",
	purchaseCurrencyId: "",
	inventoryLocationId: "", // required if have any inventory/?assets
	purchaseLineItems: {
		{purchaseLineItemId}: {
            inventoryId: "",
            inventoryTemplateId: "",
			type: "", // inventory|expense|services|freight|salesTax|vatTax|other
			subType: "", // inventory: goods|intangibleGoods|rawMaterial|asset|intangibleAsset, expense: pointInTime|overTime, services: pointInTime|overTime, freight: standard, order: standard
			lineItemQuantity: 1,
			lineItemUnitPrice: "2.00"
		},
		//...
	}
}

updatePurchase

  • make adjustment to journal entries when purchaseLineItemId changes
  • handle removal of purchase/journal entries, or creation of new entries
  • basically re-calculate all entries and check against existing
  • each journalId must check Accounting that it's period/s are not locked, if locked return error, cannot make update

Working documents

CommerceAccounting Purchase