mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
fix: items accounts issue.
fix: write item id, transaction reference and number on journal entries.
This commit is contained in:
@@ -15,37 +15,6 @@ import {
|
||||
IItemEntry,
|
||||
} from 'interfaces';
|
||||
|
||||
interface IInventoryCostEntity {
|
||||
date: Date;
|
||||
|
||||
referenceType: string;
|
||||
referenceId: number;
|
||||
|
||||
costAccount: number;
|
||||
incomeAccount: number;
|
||||
inventoryAccount: number;
|
||||
|
||||
inventory: number;
|
||||
cost: number;
|
||||
income: number;
|
||||
}
|
||||
|
||||
interface NonInventoryJEntries {
|
||||
date: Date;
|
||||
|
||||
referenceType: string;
|
||||
referenceId: number;
|
||||
|
||||
receivable: number;
|
||||
payable: number;
|
||||
|
||||
incomeAccountId: number;
|
||||
income: number;
|
||||
|
||||
costAccountId: number;
|
||||
cost: number;
|
||||
}
|
||||
|
||||
export default class JournalCommands {
|
||||
journal: JournalPoster;
|
||||
|
||||
@@ -90,6 +59,9 @@ export default class JournalCommands {
|
||||
referenceType: 'Bill',
|
||||
date: formattedDate,
|
||||
userId: bill.userId,
|
||||
|
||||
referenceNumber: bill.referenceNo,
|
||||
transactionNumber: bill.billNumber,
|
||||
};
|
||||
// Overrides the old bill entries.
|
||||
if (override) {
|
||||
@@ -122,6 +94,7 @@ export default class JournalCommands {
|
||||
? item.inventoryAccountId
|
||||
: item.costAccountId,
|
||||
index: index + 2,
|
||||
itemId: entry.itemId
|
||||
});
|
||||
this.journal.debit(debitEntry);
|
||||
});
|
||||
@@ -362,6 +335,7 @@ export default class JournalCommands {
|
||||
debit: inventoryCostLot.cost,
|
||||
account: inventoryCostLot.item.costAccountId,
|
||||
index: 3,
|
||||
itemId: inventoryCostLot.itemId
|
||||
});
|
||||
// XXX Credit - Inventory account.
|
||||
const inventoryEntry = new JournalEntry({
|
||||
@@ -369,6 +343,7 @@ export default class JournalCommands {
|
||||
credit: inventoryCostLot.cost,
|
||||
account: inventoryCostLot.item.inventoryAccountId,
|
||||
index: 4,
|
||||
itemId: inventoryCostLot.itemId
|
||||
});
|
||||
this.journal.credit(inventoryEntry);
|
||||
this.journal.debit(costEntry);
|
||||
@@ -395,6 +370,9 @@ export default class JournalCommands {
|
||||
referenceId: saleInvoice.id,
|
||||
date: saleInvoice.invoiceDate,
|
||||
userId: saleInvoice.userId,
|
||||
|
||||
transactionNumber: saleInvoice.invoiceNo,
|
||||
referenceNumber: saleInvoice.referenceNo,
|
||||
};
|
||||
// XXX Debit - Receivable account.
|
||||
const receivableEntry = new JournalEntry({
|
||||
@@ -416,6 +394,7 @@ export default class JournalCommands {
|
||||
account: entry.item.sellAccountId,
|
||||
note: entry.description,
|
||||
index: index + 2,
|
||||
itemId: entry.itemId,
|
||||
});
|
||||
this.journal.credit(incomeEntry);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import DynamicListingService from 'services/DynamicListing/DynamicListService';
|
||||
import TenancyService from 'services/Tenancy/TenancyService';
|
||||
import { ServiceError } from 'exceptions';
|
||||
import InventoryService from 'services/Inventory/Inventory';
|
||||
import { ACCOUNT_ROOT_TYPE, ACCOUNT_TYPE } from 'data/AccountTypes'
|
||||
import { ACCOUNT_PARENT_TYPE, ACCOUNT_ROOT_TYPE, ACCOUNT_TYPE } from 'data/AccountTypes'
|
||||
|
||||
const ERRORS = {
|
||||
NOT_FOUND: 'NOT_FOUND',
|
||||
@@ -131,7 +131,7 @@ export default class ItemsService implements IItemsService {
|
||||
throw new ServiceError(ERRORS.COST_ACCOUNT_NOT_FOUMD);
|
||||
|
||||
// Detarmines the cost of goods sold account.
|
||||
} else if (foundAccount.isRootType(ACCOUNT_ROOT_TYPE.EXPENSE)) {
|
||||
} else if (!foundAccount.isParentType(ACCOUNT_PARENT_TYPE.EXPENSE)) {
|
||||
this.logger.info('[items] validate cost account not COGS type.', {
|
||||
tenantId,
|
||||
costAccountId,
|
||||
@@ -167,7 +167,7 @@ export default class ItemsService implements IItemsService {
|
||||
});
|
||||
throw new ServiceError(ERRORS.SELL_ACCOUNT_NOT_FOUND);
|
||||
|
||||
} else if (!foundAccount.isRootType(ACCOUNT_ROOT_TYPE.INCOME)) {
|
||||
} else if (!foundAccount.isParentType(ACCOUNT_ROOT_TYPE.INCOME)) {
|
||||
this.logger.info('[items] sell account not income type.', {
|
||||
tenantId,
|
||||
sellAccountId,
|
||||
@@ -204,7 +204,7 @@ export default class ItemsService implements IItemsService {
|
||||
});
|
||||
throw new ServiceError(ERRORS.INVENTORY_ACCOUNT_NOT_FOUND);
|
||||
|
||||
} else if (foundAccount.isAccountType(ACCOUNT_TYPE.INVENTORY)) {
|
||||
} else if (!foundAccount.isAccountType(ACCOUNT_TYPE.INVENTORY)) {
|
||||
this.logger.info('[items] inventory account not inventory type.', {
|
||||
tenantId,
|
||||
inventoryAccountId,
|
||||
|
||||
Reference in New Issue
Block a user