fix: delete inventory adjustment gl entries

This commit is contained in:
Ahmed Bouhuolia
2025-06-15 17:51:44 +02:00
parent bbf9ef9bc2
commit 88ef60ef28
8 changed files with 86 additions and 48 deletions

View File

@@ -46,7 +46,7 @@ export class DeleteInventoryAdjustmentService {
return this.uow.withTransaction(async (trx: Knex.Transaction) => {
// Triggers `onInventoryAdjustmentDeleting` event.
await this.eventEmitter.emitAsync(events.inventoryAdjustment.onDeleting, {
oldInventoryAdjustment,
inventoryAdjustment: oldInventoryAdjustment,
trx,
} as IInventoryAdjustmentDeletingPayload);

View File

@@ -31,7 +31,7 @@ export class InventoryAdjustmentsGLEntries {
const adjustment = await this.inventoryAdjustment()
.query(trx)
.findById(inventoryAdjustmentId)
.withGraphFetched('entries.item');
.withGraphFetched('entries.item.inventoryAccount');
const tenantMeta = await this.tenancyContext.getTenantMetadata();

View File

@@ -1,7 +1,10 @@
import { Injectable } from '@nestjs/common';
import { OnEvent } from '@nestjs/event-emitter';
import { InventoryAdjustmentsGLEntries } from '../commands/ledger/InventoryAdjustmentsGLEntries';
import { IInventoryAdjustmentEventDeletedPayload } from '../types/InventoryAdjustments.types';
import {
IInventoryAdjustmentDeletingPayload,
IInventoryAdjustmentEventPublishedPayload,
} from '../types/InventoryAdjustments.types';
import { IInventoryAdjustmentEventCreatedPayload } from '../types/InventoryAdjustments.types';
import { events } from '@/common/events/events';
@@ -13,10 +16,11 @@ export class InventoryAdjustmentsGLSubscriber {
/**
* Handles writing increment inventory adjustment GL entries.
* @param {IInventoryAdjustmentEventCreatedPayload} payload -
*/
@OnEvent(events.inventoryAdjustment.onQuickCreated)
@OnEvent(events.inventoryAdjustment.onPublished)
public async handleGLEntriesOnceIncrementAdjustmentCreated({
async handleGLEntriesOnceIncrementAdjustmentCreated({
inventoryAdjustmentId,
inventoryAdjustment,
trx,
@@ -37,19 +41,20 @@ export class InventoryAdjustmentsGLSubscriber {
/**
* Reverts the inventory adjustment GL entries once the transaction deleted.
* @param {IInventoryAdjustmentEventDeletedPayload} payload -
* @param {IInventoryAdjustmentDeletingPayload} payload -
*/
@OnEvent(events.inventoryAdjustment.onDeleted)
public async revertAdjustmentGLEntriesOnceDeleted({
inventoryAdjustmentId,
oldInventoryAdjustment,
}: IInventoryAdjustmentEventDeletedPayload) {
@OnEvent(events.inventoryAdjustment.onDeleting)
async revertAdjustmentGLEntriesOnceDeleted({
inventoryAdjustment,
trx,
}: IInventoryAdjustmentDeletingPayload) {
// Can't continue if the inventory adjustment is not published.
if (!oldInventoryAdjustment.isPublished) {
if (!inventoryAdjustment.isPublished) {
return;
}
await this.inventoryAdjustmentGL.revertAdjustmentGLEntries(
inventoryAdjustmentId,
inventoryAdjustment.id,
trx,
);
}
@@ -58,39 +63,16 @@ export class InventoryAdjustmentsGLSubscriber {
* @param {IInventoryAdjustmentEventPublishedPayload} payload
* @param {IInventoryAdjustmentEventCreatedPayload} payload -
*/
// private handleWriteInventoryTransactionsOncePublished = async ({
// inventoryAdjustment,
// trx,
// }:
// | IInventoryAdjustmentEventPublishedPayload
// | IInventoryAdjustmentEventCreatedPayload) => {
// await this.inventoryAdjustment.writeInventoryTransactions(
// tenantId,
// inventoryAdjustment,
// false,
// trx
// );
// };
/**
* Handles reverting invetory transactions once the inventory adjustment deleted.
* @param {IInventoryAdjustmentEventDeletedPayload} payload -
*/
// private handleRevertInventoryTransactionsOnceDeleted = async ({
// tenantId,
// inventoryAdjustmentId,
// oldInventoryAdjustment,
// trx,
// }: IInventoryAdjustmentEventDeletedPayload) => {
// // Can't continue if the inventory adjustment is not published.
// if (!oldInventoryAdjustment.isPublished) {
// return;
// }
// // Reverts the inventory transactions of adjustment transaction.
// await this.inventoryAdjustment.revertInventoryTransactions(
// tenantId,
// inventoryAdjustmentId,
// trx
// );
// };
@OnEvent(events.inventoryAdjustment.onPublished)
async handleWriteInventoryTransactionsOncePublished({
inventoryAdjustmentId,
trx,
}:
| IInventoryAdjustmentEventPublishedPayload
| IInventoryAdjustmentEventCreatedPayload) {
await this.inventoryAdjustmentGL.writeAdjustmentGLEntries(
inventoryAdjustmentId,
trx,
);
}
}

View File

@@ -51,7 +51,7 @@ export interface IInventoryAdjustmentEventDeletedPayload {
}
export interface IInventoryAdjustmentDeletingPayload {
oldInventoryAdjustment: InventoryAdjustment;
inventoryAdjustment: InventoryAdjustment;
trx: Knex.Transaction;
}