mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 06:40:31 +00:00
Merge pull request #721 from bigcapitalhq/track-move-events
feat: track more services events
This commit is contained in:
@@ -9,6 +9,7 @@ export const SALE_ESTIMATE_CREATED = 'Sale estimate created';
|
|||||||
export const SALE_ESTIMATE_EDITED = 'Sale estimate edited';
|
export const SALE_ESTIMATE_EDITED = 'Sale estimate edited';
|
||||||
export const SALE_ESTIMATE_DELETED = 'Sale estimate deleted';
|
export const SALE_ESTIMATE_DELETED = 'Sale estimate deleted';
|
||||||
export const SALE_ESTIMATE_PDF_VIEWED = 'Sale estimate PDF viewed';
|
export const SALE_ESTIMATE_PDF_VIEWED = 'Sale estimate PDF viewed';
|
||||||
|
export const SALE_ESTIMATE_VIEWED = 'Sale estimate viewed';
|
||||||
|
|
||||||
export const PAYMENT_RECEIVED_CREATED = 'Payment received created';
|
export const PAYMENT_RECEIVED_CREATED = 'Payment received created';
|
||||||
export const PAYMENT_RECEIVED_EDITED = 'payment received edited';
|
export const PAYMENT_RECEIVED_EDITED = 'payment received edited';
|
||||||
@@ -47,6 +48,8 @@ export const AUTH_RESET_PASSWORD = 'Auth reset password';
|
|||||||
export const SUBSCRIPTION_CANCELLED = 'Subscription cancelled';
|
export const SUBSCRIPTION_CANCELLED = 'Subscription cancelled';
|
||||||
export const SUBSCRIPTION_RESUMED = 'Subscription resumed';
|
export const SUBSCRIPTION_RESUMED = 'Subscription resumed';
|
||||||
export const SUBSCRIPTION_PLAN_CHANGED = 'Subscription plan changed';
|
export const SUBSCRIPTION_PLAN_CHANGED = 'Subscription plan changed';
|
||||||
|
export const SUBSCRIPTION_PAYMENT_SUCCEED = 'Subscription payment succeed';
|
||||||
|
export const SUBSCRIPTION_PAYMENT_FAILED = 'Subscription payment failed';
|
||||||
|
|
||||||
export const CUSTOMER_CREATED = 'Customer created';
|
export const CUSTOMER_CREATED = 'Customer created';
|
||||||
export const CUSTOMER_EDITED = 'Customer edited';
|
export const CUSTOMER_EDITED = 'Customer edited';
|
||||||
@@ -100,3 +103,21 @@ export const SALE_GROUP = 'Sale';
|
|||||||
export const PAYMENT_GROUP = 'Payment';
|
export const PAYMENT_GROUP = 'Payment';
|
||||||
export const BILL_GROUP = 'Bill';
|
export const BILL_GROUP = 'Bill';
|
||||||
export const EXPENSE_GROUP = 'Expense';
|
export const EXPENSE_GROUP = 'Expense';
|
||||||
|
|
||||||
|
// # Reports
|
||||||
|
export const BALANCE_SHEET_VIEWED = 'Balance sheet viewed';
|
||||||
|
export const TRIAL_BALANCE_SHEET_VIEWED = 'Trial balance sheet viewed';
|
||||||
|
export const PROFIT_LOSS_SHEET_VIEWED = 'Profit loss sheet viewed';
|
||||||
|
export const CASHFLOW_STATEMENT_VIEWED = 'Cashflow statement viewed';
|
||||||
|
export const GENERAL_LEDGER_VIEWED = 'General ledger viewed';
|
||||||
|
export const JOURNAL_VIEWED = 'Journal viewed';
|
||||||
|
export const RECEIVABLE_AGING_VIEWED = 'Receivable aging viewed';
|
||||||
|
export const PAYABLE_AGING_VIEWED = 'Payable aging viewed';
|
||||||
|
export const CUSTOMER_BALANCE_SUMMARY_VIEWED =
|
||||||
|
'Customer balance summary viewed';
|
||||||
|
export const VENDOR_BALANCE_SUMMARY_VIEWED = 'Vendor balance summary viewed';
|
||||||
|
export const INVENTORY_VALUATION_VIEWED = 'Inventory valuation viewed';
|
||||||
|
export const CUSTOMER_TRANSACTIONS_VIEWED = 'Customer transactions viewed';
|
||||||
|
export const VENDOR_TRANSACTIONS_VIEWED = 'Vendor transactions viewed';
|
||||||
|
export const SALES_BY_ITEM_VIEWED = 'Sales by item viewed';
|
||||||
|
export const PURCHASES_BY_ITEM_VIEWED = 'Purchases by item viewed';
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { Service, Inject } from 'typedi';
|
import { Service, Inject } from 'typedi';
|
||||||
import I18nService from '@/services/I18n/I18nService';
|
|
||||||
import HasTenancyService from '@/services/Tenancy/TenancyService';
|
import HasTenancyService from '@/services/Tenancy/TenancyService';
|
||||||
import { AccountTransformer } from './AccountTransform';
|
import { AccountTransformer } from './AccountTransform';
|
||||||
import { TransformerInjectable } from '@/lib/Transformer/TransformerInjectable';
|
import { TransformerInjectable } from '@/lib/Transformer/TransformerInjectable';
|
||||||
@@ -11,9 +10,6 @@ export class GetAccount {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private tenancy: HasTenancyService;
|
private tenancy: HasTenancyService;
|
||||||
|
|
||||||
@Inject()
|
|
||||||
private i18nService: I18nService;
|
|
||||||
|
|
||||||
@Inject()
|
@Inject()
|
||||||
private transformer: TransformerInjectable;
|
private transformer: TransformerInjectable;
|
||||||
|
|
||||||
@@ -44,10 +40,8 @@ export class GetAccount {
|
|||||||
new AccountTransformer(),
|
new AccountTransformer(),
|
||||||
{ accountsGraph }
|
{ accountsGraph }
|
||||||
);
|
);
|
||||||
const eventPayload = {
|
const eventPayload = { tenantId, accountId };
|
||||||
tenantId,
|
|
||||||
accountId,
|
|
||||||
};
|
|
||||||
// Triggers `onAccountViewed` event.
|
// Triggers `onAccountViewed` event.
|
||||||
await this.eventPublisher.emitAsync(events.accounts.onViewed, eventPayload);
|
await this.eventPublisher.emitAsync(events.accounts.onViewed, eventPayload);
|
||||||
|
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ export default class NewCashflowTransactionService {
|
|||||||
* @param {number} tenantId -
|
* @param {number} tenantId -
|
||||||
* @param {ICashflowOwnerContributionDTO} ownerContributionDTO
|
* @param {ICashflowOwnerContributionDTO} ownerContributionDTO
|
||||||
* @param {number} userId - User id.
|
* @param {number} userId - User id.
|
||||||
|
* @returns {Promise<ICashflowTransaction>}
|
||||||
*/
|
*/
|
||||||
public newCashflowTransaction = async (
|
public newCashflowTransaction = async (
|
||||||
tenantId: number,
|
tenantId: number,
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import Knex from 'knex';
|
import { Knex } from 'knex';
|
||||||
import { IRefundCreditNote } from '@/interfaces';
|
|
||||||
import HasTenancyService from '@/services/Tenancy/TenancyService';
|
|
||||||
import { Inject, Service } from 'typedi';
|
import { Inject, Service } from 'typedi';
|
||||||
|
import HasTenancyService from '@/services/Tenancy/TenancyService';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export default class RefundSyncCreditNoteBalance {
|
export default class RefundSyncCreditNoteBalance {
|
||||||
|
|||||||
@@ -0,0 +1,240 @@
|
|||||||
|
import { Inject, Service } from 'typedi';
|
||||||
|
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import { ReportsEvents } from '@/constants/event-tracker';
|
||||||
|
import { PosthogService } from '../PostHog';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
import {
|
||||||
|
BALANCE_SHEET_VIEWED,
|
||||||
|
TRIAL_BALANCE_SHEET_VIEWED,
|
||||||
|
PROFIT_LOSS_SHEET_VIEWED,
|
||||||
|
CASHFLOW_STATEMENT_VIEWED,
|
||||||
|
GENERAL_LEDGER_VIEWED,
|
||||||
|
JOURNAL_VIEWED,
|
||||||
|
RECEIVABLE_AGING_VIEWED,
|
||||||
|
PAYABLE_AGING_VIEWED,
|
||||||
|
CUSTOMER_BALANCE_SUMMARY_VIEWED,
|
||||||
|
VENDOR_BALANCE_SUMMARY_VIEWED,
|
||||||
|
INVENTORY_VALUATION_VIEWED,
|
||||||
|
CUSTOMER_TRANSACTIONS_VIEWED,
|
||||||
|
VENDOR_TRANSACTIONS_VIEWED,
|
||||||
|
SALES_BY_ITEM_VIEWED,
|
||||||
|
PURCHASES_BY_ITEM_VIEWED,
|
||||||
|
} from '@/constants/event-tracker';
|
||||||
|
|
||||||
|
@Service()
|
||||||
|
export class ReportsEventsTracker extends EventSubscriber {
|
||||||
|
@Inject()
|
||||||
|
private posthog: PosthogService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor method.
|
||||||
|
*/
|
||||||
|
public attach(bus) {
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onBalanceSheetViewed,
|
||||||
|
this.handleTrackBalanceSheetViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onTrialBalanceSheetView,
|
||||||
|
this.handleTrackTrialBalanceSheetViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onProfitLossSheetViewed,
|
||||||
|
this.handleTrackProfitLossSheetViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onCashflowStatementViewed,
|
||||||
|
this.handleTrackCashflowStatementViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onGeneralLedgerViewed,
|
||||||
|
this.handleTrackGeneralLedgerViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onJournalViewed,
|
||||||
|
this.handleTrackJournalViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onReceivableAgingViewed,
|
||||||
|
this.handleTrackReceivableAgingViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onPayableAgingViewed,
|
||||||
|
this.handleTrackPayableAgingViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onCustomerBalanceSummaryViewed,
|
||||||
|
this.handleTrackCustomerBalanceSummaryViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onVendorBalanceSummaryViewed,
|
||||||
|
this.handleTrackVendorBalanceSummaryViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onInventoryValuationViewed,
|
||||||
|
this.handleTrackInventoryValuationViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onCustomerTransactionsViewed,
|
||||||
|
this.handleTrackCustomerTransactionsViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onVendorTransactionsViewed,
|
||||||
|
this.handleTrackVendorTransactionsViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onSalesByItemViewed,
|
||||||
|
this.handleTrackSalesByItemViewedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.reports.onPurchasesByItemViewed,
|
||||||
|
this.handleTrackPurchasesByItemViewedEvent
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleTrackBalanceSheetViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: BALANCE_SHEET_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackTrialBalanceSheetViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: TRIAL_BALANCE_SHEET_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackProfitLossSheetViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: PROFIT_LOSS_SHEET_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackCashflowStatementViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: CASHFLOW_STATEMENT_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackGeneralLedgerViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: GENERAL_LEDGER_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackJournalViewedEvent = ({ tenantId }: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: JOURNAL_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackReceivableAgingViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: RECEIVABLE_AGING_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackPayableAgingViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: PAYABLE_AGING_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackCustomerBalanceSummaryViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: CUSTOMER_BALANCE_SUMMARY_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackVendorBalanceSummaryViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: VENDOR_BALANCE_SUMMARY_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackInventoryValuationViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: INVENTORY_VALUATION_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackCustomerTransactionsViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: CUSTOMER_TRANSACTIONS_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackVendorTransactionsViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: VENDOR_TRANSACTIONS_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackSalesByItemViewedEvent = ({ tenantId }: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: SALES_BY_ITEM_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackPurchasesByItemViewedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ReportsEvents) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: PURCHASES_BY_ITEM_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ import {
|
|||||||
SALE_ESTIMATE_EDITED,
|
SALE_ESTIMATE_EDITED,
|
||||||
SALE_ESTIMATE_DELETED,
|
SALE_ESTIMATE_DELETED,
|
||||||
SALE_ESTIMATE_PDF_VIEWED,
|
SALE_ESTIMATE_PDF_VIEWED,
|
||||||
|
SALE_ESTIMATE_VIEWED,
|
||||||
} from '@/constants/event-tracker';
|
} from '@/constants/event-tracker';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
@@ -39,6 +40,10 @@ export class SaleEstimateEventsTracker extends EventSubscriber {
|
|||||||
events.saleEstimate.onPdfViewed,
|
events.saleEstimate.onPdfViewed,
|
||||||
this.handleTrackPdfViewedEstimateEvent
|
this.handleTrackPdfViewedEstimateEvent
|
||||||
);
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.saleEstimate.onViewed,
|
||||||
|
this.handleTrackViewedEstimateEvent
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleTrackEstimateCreatedEvent = ({
|
private handleTrackEstimateCreatedEvent = ({
|
||||||
@@ -80,4 +85,12 @@ export class SaleEstimateEventsTracker extends EventSubscriber {
|
|||||||
properties: {},
|
properties: {},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private handleTrackViewedEstimateEvent = ({ tenantId }) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: SALE_ESTIMATE_VIEWED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import { ITransactionsLockingPartialUnlocked } from '@/interfaces';
|
|||||||
import { PosthogService } from '../PostHog';
|
import { PosthogService } from '../PostHog';
|
||||||
import {
|
import {
|
||||||
SUBSCRIPTION_CANCELLED,
|
SUBSCRIPTION_CANCELLED,
|
||||||
|
SUBSCRIPTION_PAYMENT_FAILED,
|
||||||
|
SUBSCRIPTION_PAYMENT_SUCCEED,
|
||||||
SUBSCRIPTION_PLAN_CHANGED,
|
SUBSCRIPTION_PLAN_CHANGED,
|
||||||
SUBSCRIPTION_RESUMED,
|
SUBSCRIPTION_RESUMED,
|
||||||
} from '@/constants/event-tracker';
|
} from '@/constants/event-tracker';
|
||||||
@@ -27,6 +29,14 @@ export class TransactionsLockingEventsTracker extends EventSubscriber {
|
|||||||
events.subscription.onSubscriptionPlanChanged,
|
events.subscription.onSubscriptionPlanChanged,
|
||||||
this.handleSubscriptionPlanChangedEvent
|
this.handleSubscriptionPlanChangedEvent
|
||||||
);
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.subscription.onSubscriptionPaymentSucceed,
|
||||||
|
this.handleSubscriptionPaymentFailedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.subscription.onSubscriptionPaymentFailed,
|
||||||
|
this.handleSubscriptionPaymentSucceed
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private handleSubscriptionResumedEvent = ({ tenantId }) => {
|
private handleSubscriptionResumedEvent = ({ tenantId }) => {
|
||||||
@@ -52,4 +62,20 @@ export class TransactionsLockingEventsTracker extends EventSubscriber {
|
|||||||
properties: {},
|
properties: {},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private handleSubscriptionPaymentFailedEvent = ({ tenantId }) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: SUBSCRIPTION_PAYMENT_FAILED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleSubscriptionPaymentSucceed = ({ tenantId }) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: SUBSCRIPTION_PAYMENT_SUCCEED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import { PdfTemplateEventsTracker } from './PdfTemplateEventsTracker';
|
|||||||
import { PaymentMethodEventsTracker } from './PaymentMethodEventsTracker';
|
import { PaymentMethodEventsTracker } from './PaymentMethodEventsTracker';
|
||||||
import { PaymentLinkEventsTracker } from './PaymentLinkEventsTracker';
|
import { PaymentLinkEventsTracker } from './PaymentLinkEventsTracker';
|
||||||
import { StripeIntegrationEventsTracker } from './StripeIntegrationEventsTracker';
|
import { StripeIntegrationEventsTracker } from './StripeIntegrationEventsTracker';
|
||||||
|
import { ReportsEventsTracker } from './ReportsEventsTracker';
|
||||||
|
|
||||||
export const EventsTrackerListeners = [
|
export const EventsTrackerListeners = [
|
||||||
SaleInvoiceEventsTracker,
|
SaleInvoiceEventsTracker,
|
||||||
@@ -36,4 +37,5 @@ export const EventsTrackerListeners = [
|
|||||||
PaymentMethodEventsTracker,
|
PaymentMethodEventsTracker,
|
||||||
PaymentLinkEventsTracker,
|
PaymentLinkEventsTracker,
|
||||||
StripeIntegrationEventsTracker,
|
StripeIntegrationEventsTracker,
|
||||||
|
ReportsEventsTracker,
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import TenancyService from '@/services/Tenancy/TenancyService';
|
|||||||
import APAgingSummarySheet from './APAgingSummarySheet';
|
import APAgingSummarySheet from './APAgingSummarySheet';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { APAgingSummaryMeta } from './APAgingSummaryMeta';
|
import { APAgingSummaryMeta } from './APAgingSummaryMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class APAgingSummaryService {
|
export class APAgingSummaryService {
|
||||||
@@ -15,6 +17,9 @@ export class APAgingSummaryService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private APAgingSummaryMeta: APAgingSummaryMeta;
|
private APAgingSummaryMeta: APAgingSummaryMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default report query.
|
* Default report query.
|
||||||
*/
|
*/
|
||||||
@@ -96,6 +101,12 @@ export class APAgingSummaryService {
|
|||||||
// Retrieve the aging summary report meta.
|
// Retrieve the aging summary report meta.
|
||||||
const meta = await this.APAgingSummaryMeta.meta(tenantId, filter);
|
const meta = await this.APAgingSummaryMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onPayableAgingViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(events.reports.onPayableAgingViewed, {
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data,
|
data,
|
||||||
columns,
|
columns,
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import TenancyService from '@/services/Tenancy/TenancyService';
|
|||||||
import ARAgingSummarySheet from './ARAgingSummarySheet';
|
import ARAgingSummarySheet from './ARAgingSummarySheet';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { ARAgingSummaryMeta } from './ARAgingSummaryMeta';
|
import { ARAgingSummaryMeta } from './ARAgingSummaryMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export default class ARAgingSummaryService {
|
export default class ARAgingSummaryService {
|
||||||
@@ -15,6 +17,9 @@ export default class ARAgingSummaryService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private ARAgingSummaryMeta: ARAgingSummaryMeta;
|
private ARAgingSummaryMeta: ARAgingSummaryMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default report query.
|
* Default report query.
|
||||||
*/
|
*/
|
||||||
@@ -91,6 +96,15 @@ export default class ARAgingSummaryService {
|
|||||||
// Retrieve the aging summary report meta.
|
// Retrieve the aging summary report meta.
|
||||||
const meta = await this.ARAgingSummaryMeta.meta(tenantId, filter);
|
const meta = await this.ARAgingSummaryMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onReceivableAgingViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onReceivableAgingViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data,
|
data,
|
||||||
columns,
|
columns,
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import BalanceSheetStatement from './BalanceSheet';
|
|||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import BalanceSheetRepository from './BalanceSheetRepository';
|
import BalanceSheetRepository from './BalanceSheetRepository';
|
||||||
import { BalanceSheetMetaInjectable } from './BalanceSheetMeta';
|
import { BalanceSheetMetaInjectable } from './BalanceSheetMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export default class BalanceSheetStatementService
|
export default class BalanceSheetStatementService
|
||||||
@@ -21,6 +23,9 @@ export default class BalanceSheetStatementService
|
|||||||
@Inject()
|
@Inject()
|
||||||
private balanceSheetMeta: BalanceSheetMetaInjectable;
|
private balanceSheetMeta: BalanceSheetMetaInjectable;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {IBalanceSheetQuery}
|
* @return {IBalanceSheetQuery}
|
||||||
@@ -98,6 +103,10 @@ export default class BalanceSheetStatementService
|
|||||||
// Balance sheet meta.
|
// Balance sheet meta.
|
||||||
const meta = await this.balanceSheetMeta.meta(tenantId, filter);
|
const meta = await this.balanceSheetMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onBalanceSheetViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(events.reports.onBalanceSheetViewed, {
|
||||||
|
query,
|
||||||
|
});
|
||||||
return {
|
return {
|
||||||
query: filter,
|
query: filter,
|
||||||
data,
|
data,
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import Ledger from '@/services/Accounting/Ledger';
|
|||||||
import CustomerBalanceSummaryRepository from './CustomerBalanceSummaryRepository';
|
import CustomerBalanceSummaryRepository from './CustomerBalanceSummaryRepository';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { CustomerBalanceSummaryMeta } from './CustomerBalanceSummaryMeta';
|
import { CustomerBalanceSummaryMeta } from './CustomerBalanceSummaryMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class CustomerBalanceSummaryService
|
export class CustomerBalanceSummaryService
|
||||||
@@ -24,6 +26,9 @@ export class CustomerBalanceSummaryService
|
|||||||
@Inject()
|
@Inject()
|
||||||
private customerBalanceSummaryMeta: CustomerBalanceSummaryMeta;
|
private customerBalanceSummaryMeta: CustomerBalanceSummaryMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {ICustomerBalanceSummaryQuery}
|
* @return {ICustomerBalanceSummaryQuery}
|
||||||
@@ -104,6 +109,15 @@ export class CustomerBalanceSummaryService
|
|||||||
// Retrieve the customer balance summary meta.
|
// Retrieve the customer balance summary meta.
|
||||||
const meta = await this.customerBalanceSummaryMeta.meta(tenantId, filter);
|
const meta = await this.customerBalanceSummaryMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onCustomerBalanceSummaryViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onCustomerBalanceSummaryViewed,
|
||||||
|
{
|
||||||
|
tenant,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: report.reportData(),
|
data: report.reportData(),
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import TenancyService from '@/services/Tenancy/TenancyService';
|
|||||||
import GeneralLedgerSheet from '@/services/FinancialStatements/GeneralLedger/GeneralLedger';
|
import GeneralLedgerSheet from '@/services/FinancialStatements/GeneralLedger/GeneralLedger';
|
||||||
import { GeneralLedgerMeta } from './GeneralLedgerMeta';
|
import { GeneralLedgerMeta } from './GeneralLedgerMeta';
|
||||||
import { GeneralLedgerRepository } from './GeneralLedgerRepository';
|
import { GeneralLedgerRepository } from './GeneralLedgerRepository';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class GeneralLedgerService {
|
export class GeneralLedgerService {
|
||||||
@@ -14,6 +16,9 @@ export class GeneralLedgerService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private generalLedgerMeta: GeneralLedgerMeta;
|
private generalLedgerMeta: GeneralLedgerMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults general ledger report filter query.
|
* Defaults general ledger report filter query.
|
||||||
* @return {IBalanceSheetQuery}
|
* @return {IBalanceSheetQuery}
|
||||||
@@ -72,6 +77,11 @@ export class GeneralLedgerService {
|
|||||||
// Retrieve general ledger report metadata.
|
// Retrieve general ledger report metadata.
|
||||||
const meta = await this.generalLedgerMeta.meta(tenantId, filter);
|
const meta = await this.generalLedgerMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onGeneralLedgerViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(events.reports.onGeneralLedgerViewed, {
|
||||||
|
tenantId,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: reportData,
|
data: reportData,
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import { InventoryValuationSheet } from './InventoryValuationSheet';
|
|||||||
import InventoryService from '@/services/Inventory/Inventory';
|
import InventoryService from '@/services/Inventory/Inventory';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { InventoryValuationMetaInjectable } from './InventoryValuationSheetMeta';
|
import { InventoryValuationMetaInjectable } from './InventoryValuationSheetMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class InventoryValuationSheetService {
|
export class InventoryValuationSheetService {
|
||||||
@@ -26,6 +28,9 @@ export class InventoryValuationSheetService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private inventoryValuationMeta: InventoryValuationMetaInjectable;
|
private inventoryValuationMeta: InventoryValuationMetaInjectable;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {IBalanceSheetQuery}
|
* @return {IBalanceSheetQuery}
|
||||||
@@ -116,6 +121,15 @@ export class InventoryValuationSheetService {
|
|||||||
// Retrieves the inventorty valuation meta.
|
// Retrieves the inventorty valuation meta.
|
||||||
const meta = await this.inventoryValuationMeta.meta(tenantId, filter);
|
const meta = await this.inventoryValuationMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onInventoryValuationViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onInventoryValuationViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: inventoryValuationData,
|
data: inventoryValuationData,
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import Journal from '@/services/Accounting/JournalPoster';
|
|||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { transformToMap } from 'utils';
|
import { transformToMap } from 'utils';
|
||||||
import { JournalSheetMeta } from './JournalSheetMeta';
|
import { JournalSheetMeta } from './JournalSheetMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class JournalSheetService {
|
export class JournalSheetService {
|
||||||
@@ -16,6 +18,9 @@ export class JournalSheetService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private journalSheetMeta: JournalSheetMeta;
|
private journalSheetMeta: JournalSheetMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default journal sheet filter queyr.
|
* Default journal sheet filter queyr.
|
||||||
*/
|
*/
|
||||||
@@ -101,6 +106,12 @@ export class JournalSheetService {
|
|||||||
// Retrieve the journal sheet meta.
|
// Retrieve the journal sheet meta.
|
||||||
const meta = await this.journalSheetMeta.meta(tenantId, filter);
|
const meta = await this.journalSheetMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onJournalViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(events.reports.onJournalViewed, {
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: journalSheetData,
|
data: journalSheetData,
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import { Tenant } from '@/system/models';
|
|||||||
import { mergeQueryWithDefaults } from './utils';
|
import { mergeQueryWithDefaults } from './utils';
|
||||||
import { ProfitLossSheetRepository } from './ProfitLossSheetRepository';
|
import { ProfitLossSheetRepository } from './ProfitLossSheetRepository';
|
||||||
import { ProfitLossSheetMeta } from './ProfitLossSheetMeta';
|
import { ProfitLossSheetMeta } from './ProfitLossSheetMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
// Profit/Loss sheet service.
|
// Profit/Loss sheet service.
|
||||||
@Service()
|
@Service()
|
||||||
@@ -20,6 +22,9 @@ export default class ProfitLossSheetService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private profitLossSheetMeta: ProfitLossSheetMeta;
|
private profitLossSheetMeta: ProfitLossSheetMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve profit/loss sheet statement.
|
* Retrieve profit/loss sheet statement.
|
||||||
* @param {number} tenantId
|
* @param {number} tenantId
|
||||||
@@ -62,6 +67,15 @@ export default class ProfitLossSheetService {
|
|||||||
// Retrieve the profit/loss sheet meta.
|
// Retrieve the profit/loss sheet meta.
|
||||||
const meta = await this.profitLossSheetMeta.meta(tenantId, filter);
|
const meta = await this.profitLossSheetMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onProfitLossSheetViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onProfitLossSheetViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
query: filter,
|
query: filter,
|
||||||
data,
|
data,
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import {
|
|||||||
IPurchasesByItemsSheet,
|
IPurchasesByItemsSheet,
|
||||||
} from '@/interfaces/PurchasesByItemsSheet';
|
} from '@/interfaces/PurchasesByItemsSheet';
|
||||||
import { PurchasesByItemsMeta } from './PurchasesByItemsMeta';
|
import { PurchasesByItemsMeta } from './PurchasesByItemsMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class PurchasesByItemsService {
|
export class PurchasesByItemsService {
|
||||||
@@ -17,6 +19,9 @@ export class PurchasesByItemsService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private purchasesByItemsMeta: PurchasesByItemsMeta;
|
private purchasesByItemsMeta: PurchasesByItemsMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults purchases by items filter query.
|
* Defaults purchases by items filter query.
|
||||||
* @return {IPurchasesByItemsReportQuery}
|
* @return {IPurchasesByItemsReportQuery}
|
||||||
@@ -92,6 +97,15 @@ export class PurchasesByItemsService {
|
|||||||
// Retrieve the purchases by items meta.
|
// Retrieve the purchases by items meta.
|
||||||
const meta = await this.purchasesByItemsMeta.meta(tenantId, query);
|
const meta = await this.purchasesByItemsMeta.meta(tenantId, query);
|
||||||
|
|
||||||
|
// Triggers `onPurchasesByItemViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onPurchasesByItemViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: purchasesByItemsData,
|
data: purchasesByItemsData,
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import TenancyService from '@/services/Tenancy/TenancyService';
|
|||||||
import SalesByItems from './SalesByItems';
|
import SalesByItems from './SalesByItems';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { SalesByItemsMeta } from './SalesByItemsMeta';
|
import { SalesByItemsMeta } from './SalesByItemsMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class SalesByItemsReportService {
|
export class SalesByItemsReportService {
|
||||||
@@ -14,6 +16,9 @@ export class SalesByItemsReportService {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private salesByItemsMeta: SalesByItemsMeta;
|
private salesByItemsMeta: SalesByItemsMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {IBalanceSheetQuery}
|
* @return {IBalanceSheetQuery}
|
||||||
@@ -89,6 +94,12 @@ export class SalesByItemsReportService {
|
|||||||
// Retrieve the sales by items meta.
|
// Retrieve the sales by items meta.
|
||||||
const meta = await this.salesByItemsMeta.meta(tenantId, query);
|
const meta = await this.salesByItemsMeta.meta(tenantId, query);
|
||||||
|
|
||||||
|
// Triggers `onSalesByItemViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(events.reports.onSalesByItemViewed, {
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: salesByItemsData,
|
data: salesByItemsData,
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import Ledger from '@/services/Accounting/Ledger';
|
|||||||
import TransactionsByCustomersRepository from './TransactionsByCustomersRepository';
|
import TransactionsByCustomersRepository from './TransactionsByCustomersRepository';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { TransactionsByCustomersMeta } from './TransactionsByCustomersMeta';
|
import { TransactionsByCustomersMeta } from './TransactionsByCustomersMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
export class TransactionsByCustomersSheet
|
export class TransactionsByCustomersSheet
|
||||||
implements ITransactionsByCustomersService
|
implements ITransactionsByCustomersService
|
||||||
@@ -26,6 +28,9 @@ export class TransactionsByCustomersSheet
|
|||||||
@Inject()
|
@Inject()
|
||||||
private transactionsByCustomersMeta: TransactionsByCustomersMeta;
|
private transactionsByCustomersMeta: TransactionsByCustomersMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {ICustomerBalanceSummaryQuery}
|
* @return {ICustomerBalanceSummaryQuery}
|
||||||
@@ -166,6 +171,15 @@ export class TransactionsByCustomersSheet
|
|||||||
|
|
||||||
const meta = await this.transactionsByCustomersMeta.meta(tenantId, filter);
|
const meta = await this.transactionsByCustomersMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onCustomerTransactionsViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onCustomerTransactionsViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: reportInstance.reportData(),
|
data: reportInstance.reportData(),
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import Ledger from '@/services/Accounting/Ledger';
|
|||||||
import TransactionsByVendorRepository from './TransactionsByVendorRepository';
|
import TransactionsByVendorRepository from './TransactionsByVendorRepository';
|
||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { TransactionsByVendorMeta } from './TransactionsByVendorMeta';
|
import { TransactionsByVendorMeta } from './TransactionsByVendorMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
export class TransactionsByVendorsInjectable
|
export class TransactionsByVendorsInjectable
|
||||||
implements ITransactionsByVendorsService
|
implements ITransactionsByVendorsService
|
||||||
@@ -26,6 +28,9 @@ export class TransactionsByVendorsInjectable
|
|||||||
@Inject()
|
@Inject()
|
||||||
private transactionsByVendorMeta: TransactionsByVendorMeta;
|
private transactionsByVendorMeta: TransactionsByVendorMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {IVendorBalanceSummaryQuery}
|
* @return {IVendorBalanceSummaryQuery}
|
||||||
@@ -171,6 +176,15 @@ export class TransactionsByVendorsInjectable
|
|||||||
);
|
);
|
||||||
const meta = await this.transactionsByVendorMeta.meta(tenantId, filter);
|
const meta = await this.transactionsByVendorMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onVendorTransactionsViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onVendorTransactionsViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: reportInstance.reportData(),
|
data: reportInstance.reportData(),
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import FinancialSheet from '../FinancialSheet';
|
|||||||
import { Tenant } from '@/system/models';
|
import { Tenant } from '@/system/models';
|
||||||
import { TrialBalanceSheetRepository } from './TrialBalanceSheetRepository';
|
import { TrialBalanceSheetRepository } from './TrialBalanceSheetRepository';
|
||||||
import { TrialBalanceSheetMeta } from './TrialBalanceSheetMeta';
|
import { TrialBalanceSheetMeta } from './TrialBalanceSheetMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export default class TrialBalanceSheetService extends FinancialSheet {
|
export default class TrialBalanceSheetService extends FinancialSheet {
|
||||||
@@ -16,6 +18,9 @@ export default class TrialBalanceSheetService extends FinancialSheet {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private trialBalanceSheetMetaService: TrialBalanceSheetMeta;
|
private trialBalanceSheetMetaService: TrialBalanceSheetMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults trial balance sheet filter query.
|
* Defaults trial balance sheet filter query.
|
||||||
* @return {IBalanceSheetQuery}
|
* @return {IBalanceSheetQuery}
|
||||||
@@ -81,6 +86,15 @@ export default class TrialBalanceSheetService extends FinancialSheet {
|
|||||||
// Trial balance sheet meta.
|
// Trial balance sheet meta.
|
||||||
const meta = await this.trialBalanceSheetMetaService.meta(tenantId, filter);
|
const meta = await this.trialBalanceSheetMetaService.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onTrialBalanceSheetViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onTrialBalanceSheetView,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: trialBalanceSheetData,
|
data: trialBalanceSheetData,
|
||||||
query: filter,
|
query: filter,
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import { Tenant } from '@/system/models';
|
|||||||
import { JournalSheetMeta } from '../JournalSheet/JournalSheetMeta';
|
import { JournalSheetMeta } from '../JournalSheet/JournalSheetMeta';
|
||||||
|
|
||||||
import { VendorBalanceSummaryMeta } from './VendorBalanceSummaryMeta';
|
import { VendorBalanceSummaryMeta } from './VendorBalanceSummaryMeta';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
export class VendorBalanceSummaryService
|
export class VendorBalanceSummaryService
|
||||||
implements IVendorBalanceSummaryService
|
implements IVendorBalanceSummaryService
|
||||||
@@ -28,6 +30,9 @@ export class VendorBalanceSummaryService
|
|||||||
@Inject()
|
@Inject()
|
||||||
private vendorBalanceSummaryMeta: VendorBalanceSummaryMeta;
|
private vendorBalanceSummaryMeta: VendorBalanceSummaryMeta;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defaults balance sheet filter query.
|
* Defaults balance sheet filter query.
|
||||||
* @return {IVendorBalanceSummaryQuery}
|
* @return {IVendorBalanceSummaryQuery}
|
||||||
@@ -49,7 +54,7 @@ export class VendorBalanceSummaryService
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Retrieve the vendors ledger entrjes.
|
* Retrieve the vendors ledger entrjes.
|
||||||
* @param {number} tenantId -
|
* @param {number} tenantId -
|
||||||
* @param {Date|string} date -
|
* @param {Date|string} date -
|
||||||
@@ -107,10 +112,19 @@ export class VendorBalanceSummaryService
|
|||||||
// Retrieve the vendor balance summary meta.
|
// Retrieve the vendor balance summary meta.
|
||||||
const meta = await this.vendorBalanceSummaryMeta.meta(tenantId, filter);
|
const meta = await this.vendorBalanceSummaryMeta.meta(tenantId, filter);
|
||||||
|
|
||||||
|
// Triggers `onVendorBalanceSummaryViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.reports.onVendorBalanceSummaryViewed,
|
||||||
|
{
|
||||||
|
tenantId,
|
||||||
|
query,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: reportInstance.reportData(),
|
data: reportInstance.reportData(),
|
||||||
query: filter,
|
query: filter,
|
||||||
meta
|
meta,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ export class ItemsApplication {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new item (service/product).
|
* Creates a new item (service/product).
|
||||||
* @param {number} tenantId
|
* @param {number} tenantId
|
||||||
* @param {IItemCreateDTO} itemDTO
|
* @param {IItemCreateDTO} itemDTO
|
||||||
* @returns {Promise<IItem>}
|
* @returns {Promise<IItem>}
|
||||||
*/
|
*/
|
||||||
public async createItem(
|
public async createItem(
|
||||||
@@ -52,8 +52,8 @@ export class ItemsApplication {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the given item.
|
* Retrieves the given item.
|
||||||
* @param {number} tenantId
|
* @param {number} tenantId
|
||||||
* @param {number} itemId
|
* @param {number} itemId
|
||||||
* @returns {Promise<IItem>}
|
* @returns {Promise<IItem>}
|
||||||
*/
|
*/
|
||||||
public getItem(tenantId: number, itemId: number): Promise<IItem> {
|
public getItem(tenantId: number, itemId: number): Promise<IItem> {
|
||||||
@@ -62,9 +62,9 @@ export class ItemsApplication {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Edits the given item (service/product).
|
* Edits the given item (service/product).
|
||||||
* @param {number} tenantId
|
* @param {number} tenantId
|
||||||
* @param {number} itemId
|
* @param {number} itemId
|
||||||
* @param {IItemEditDTO} itemDTO
|
* @param {IItemEditDTO} itemDTO
|
||||||
* @returns {Promise<IItem>}
|
* @returns {Promise<IItem>}
|
||||||
*/
|
*/
|
||||||
public editItem(tenantId: number, itemId: number, itemDTO: IItemEditDTO) {
|
public editItem(tenantId: number, itemId: number, itemDTO: IItemEditDTO) {
|
||||||
@@ -73,8 +73,8 @@ export class ItemsApplication {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes the given item (service/product).
|
* Deletes the given item (service/product).
|
||||||
* @param {number} tenantId
|
* @param {number} tenantId
|
||||||
* @param {number} itemId
|
* @param {number} itemId
|
||||||
* @returns {Promise<void>}
|
* @returns {Promise<void>}
|
||||||
*/
|
*/
|
||||||
public deleteItem(tenantId: number, itemId: number) {
|
public deleteItem(tenantId: number, itemId: number) {
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import HasTenancyService from '@/services/Tenancy/TenancyService';
|
|||||||
import { TransformerInjectable } from '@/lib/Transformer/TransformerInjectable';
|
import { TransformerInjectable } from '@/lib/Transformer/TransformerInjectable';
|
||||||
import { SaleEstimateTransfromer } from './SaleEstimateTransformer';
|
import { SaleEstimateTransfromer } from './SaleEstimateTransformer';
|
||||||
import { SaleEstimateValidators } from './SaleEstimateValidators';
|
import { SaleEstimateValidators } from './SaleEstimateValidators';
|
||||||
|
import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class GetSaleEstimate {
|
export class GetSaleEstimate {
|
||||||
@@ -15,6 +17,9 @@ export class GetSaleEstimate {
|
|||||||
@Inject()
|
@Inject()
|
||||||
private validators: SaleEstimateValidators;
|
private validators: SaleEstimateValidators;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
private eventPublisher: EventPublisher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve the estimate details with associated entries.
|
* Retrieve the estimate details with associated entries.
|
||||||
* @async
|
* @async
|
||||||
@@ -35,10 +40,18 @@ export class GetSaleEstimate {
|
|||||||
this.validators.validateEstimateExistance(estimate);
|
this.validators.validateEstimateExistance(estimate);
|
||||||
|
|
||||||
// Transformes sale estimate model to POJO.
|
// Transformes sale estimate model to POJO.
|
||||||
return this.transformer.transform(
|
const transformed = await this.transformer.transform(
|
||||||
tenantId,
|
tenantId,
|
||||||
estimate,
|
estimate,
|
||||||
new SaleEstimateTransfromer()
|
new SaleEstimateTransfromer()
|
||||||
);
|
);
|
||||||
|
const eventPayload = { tenantId, saleEstimateId: estimateId };
|
||||||
|
|
||||||
|
// Triggers `onSaleEstimateViewed` event.
|
||||||
|
await this.eventPublisher.emitAsync(
|
||||||
|
events.saleEstimate.onViewed,
|
||||||
|
eventPayload
|
||||||
|
);
|
||||||
|
return transformed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ export default {
|
|||||||
* Sales estimates service.
|
* Sales estimates service.
|
||||||
*/
|
*/
|
||||||
saleEstimate: {
|
saleEstimate: {
|
||||||
|
onViewed: 'onSaleEstimateViewed',
|
||||||
onPdfViewed: 'onSaleEstimatePdfViewed',
|
onPdfViewed: 'onSaleEstimatePdfViewed',
|
||||||
|
|
||||||
onCreating: 'onSaleEstimateCreating',
|
onCreating: 'onSaleEstimateCreating',
|
||||||
@@ -751,4 +752,23 @@ export default {
|
|||||||
onCheckoutSessionCompleted: 'onStripeCheckoutSessionCompleted',
|
onCheckoutSessionCompleted: 'onStripeCheckoutSessionCompleted',
|
||||||
onAccountUpdated: 'onStripeAccountUpdated',
|
onAccountUpdated: 'onStripeAccountUpdated',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Reports
|
||||||
|
reports: {
|
||||||
|
onBalanceSheetViewed: 'onBalanceSheetViewed',
|
||||||
|
onTrialBalanceSheetView: 'onTrialBalanceSheetViewed',
|
||||||
|
onProfitLossSheetViewed: 'onProfitLossSheetViewed',
|
||||||
|
onCashflowStatementViewed: 'onCashflowStatementViewed',
|
||||||
|
onGeneralLedgerViewed: 'onGeneralLedgerViewed',
|
||||||
|
onJournalViewed: 'onJounralViewed',
|
||||||
|
onReceivableAgingViewed: 'onReceivableAgingViewed',
|
||||||
|
onPayableAgingViewed: 'onPayableAgingViewed',
|
||||||
|
onCustomerBalanceSummaryViewed: 'onInventoryValuationViewed',
|
||||||
|
onVendorBalanceSummaryViewed: 'onVendorBalanceSummaryViewed',
|
||||||
|
onInventoryValuationViewed: 'onCustomerBalanceSummaryViewed',
|
||||||
|
onCustomerTransactionsViewed: 'onCustomerTransactionsViewed',
|
||||||
|
onVendorTransactionsViewed: 'onVendorTransactionsViewed',
|
||||||
|
onSalesByItemViewed: 'onSalesByItemViewed',
|
||||||
|
onPurchasesByItemViewed: 'onPurchasesByItemViewed',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user