fix: financial reports i18n

This commit is contained in:
Ahmed Bouhuolia
2025-05-11 17:26:55 +02:00
parent c10cad4256
commit 0c9d961272
19 changed files with 277 additions and 18 deletions

View File

@@ -0,0 +1,41 @@
{
"accounts": "Chart of accounts",
"manual_journal": "Manual journals",
"cashflow": "Cash flow",
"inventory_adjustment": "Inventory adjustments",
"customers": "Customers",
"vendors": "vendors",
"sale_estimates": "Sale estimates",
"sale_invoices": "Sale invoices",
"sale_receipts": "Sale receipts",
"expenses": "Expenses",
"payments_receive": "Payments receive",
"purchase_invoices": "Purchase invoices",
"all_reports": "All reports",
"payments_made": "Payments made",
"preferences": "Preferences",
"mutate_system_preferences": "Mutate the system preferences.",
"items": "Items",
"view": "View",
"create": "Create",
"edit": "Edit",
"delete": "Delete",
"transactions_locking": "Ability to transactions locking.",
"balance_sheet_report": "Balance sheet.",
"profit_loss_sheet": "Profit/loss sheet",
"journal": "Journal",
"general_ledger": "General ledger",
"cashflow_report": "Cashflow",
"AR_aging_summary_report": "A/R aging summary",
"AP_aging_summary_report": "A/P aging summary",
"purchases_by_items": "Purchases by items",
"sales_by_items_report": "Sales by items",
"customers_transactions_report": "Customers transactions",
"vendors_transactions_report": "Vendors transactions",
"customers_summary_balance_report": "Customers summary balance",
"vendors_summary_balance_report": "Vendors summary balance",
"inventory_valuation_summary": "Inventory valuation summary",
"inventory_items_details": "Inventory items details"
}

View File

@@ -0,0 +1,17 @@
{
"field.name": "Account name",
"field.description": "Description",
"field.slug": "Account slug",
"field.code": "Account code",
"field.root_type": "Root type",
"field.normal": "Account normal",
"field.normal.credit": "Credit",
"field.normal.debit": "Debit",
"field.type": "Type",
"field.active": "Active",
"field.currency": "Currency",
"field.balance": "Balance",
"field.bank_balance": "Bank Balance",
"field.parent_account": "Parent Account",
"field.created_at": "Created at"
}

View File

@@ -0,0 +1,21 @@
{
"assets": "Assets",
"current_asset": "Current Asset",
"cash_and_cash_equivalents": "Cash and cash equivalents",
"accounts_receivable": "Accounts Receivable",
"inventory": "Inventory",
"other_current_assets": "Other current assets",
"fixed_asset": "Fixed Asset",
"non_current_assets": "Non-Current Assets",
"liabilities_and_equity": "Liabilities and Equity",
"liabilities": "Liabilities",
"current_liabilties": "Current Liabilties",
"long_term_liabilities": "Long-Term Liabilities",
"non_current_liabilities": "Non-Current Liabilities",
"equity": "Equity",
"net_income": "Net Income",
"account_name": "Account name",
"total": "Total",
"percentage_of_column": "% of Column",
"percentage_of_row": "% of Row"
}

View File

@@ -0,0 +1,13 @@
{
"operating_activities": "OPERATING ACTIVITIES",
"net_income": "Net income",
"operating_accounts": "Adjustments net income by operating activities.",
"net_cash_operating": "Net cash provided by operating activities",
"investment_activities": "INVESTMENT ACTIVITIES",
"net_cash_investing": "Net cash provided by investing activities",
"financial_activities": "FINANCIAL ACTIVITIES",
"net_cash_financing": "Net cash provided by financing activities",
"cash_beginning_period": "Cash at beginning of period",
"net_cash_increase": "NET CASH INCREASE FOR PERIOD",
"cash_end_period": "CASH AT END OF PERIOD"
}

View File

@@ -0,0 +1,18 @@
{
"field.payment_date": "Payment Date",
"field.payment_account": "Payment Account",
"field.amount": "Amount",
"field.currency_code": "Currency",
"field.exchange_rate": "Exchange Rate",
"field.reference_no": "Reference No.",
"field.description": "Description",
"field.line_description": "Line Description",
"field.published": "Published",
"field.categories": "Categories",
"field.expense_account": "Expense Account",
"field.publish": "Publish",
"field.status": "Status",
"field.status.draft": "Draft",
"field.status.published": "Published",
"field.created_at": "Created at"
}

View File

@@ -0,0 +1,9 @@
{
"previoud_period_date": "{{date}} (PP)",
"fianncial_sheet.previous_period_change": "Change (PP)",
"previous_period_percentage": "% Change (PP)",
"previous_year_date": "{{date}} (PY)",
"previous_year_change": "Change (PY)",
"previous_year_percentage": "% Change (PY)",
"total_row": "Total {{value}}"
}

View File

@@ -0,0 +1,42 @@
{
"paper.invoice": "Invoice",
"paper.invoice_amount": "Invoice amount",
"paper.due_amount": "Due amount",
"paper.billed_to": "Billed to",
"paper.invoice_date": "Invoice date",
"paper.invoice_number": "Invoice No.",
"paper.due_date": "Due date",
"paper.conditions_title": "Conditions & terms",
"paper.notes_title": "Notes",
"paper.total": "Total",
"paper.subtotal": "Subtotal",
"paper.payment_amount": "Payment Amount",
"paper.balance_due": "Balance Due",
"field.customer": "Customer",
"field.invoice_date": "Invoice date",
"field.due_date": "Due date",
"field.invoice_no": "Invoice No.",
"field.reference_no": "Reference No.",
"field.invoice_message": "Invoice message",
"field.terms_conditions": "Terms & conditions",
"field.amount": "Amount",
"field.exchange_rate": "Exchange Rate",
"field.payment_amount": "Payment amount",
"field.due_amount": "Due amount",
"field.delivered": "Delivered",
"field.item_name": "Item Name",
"field.rate": "Rate",
"field.quantity": "Quantity",
"field.description": "Description",
"field.status": "Status",
"field.status.paid": "Paid",
"field.status.partially-paid": "Partially paid",
"field.status.overdue": "Overdue",
"field.status.unpaid": "Unpaid",
"field.status.delivered": "Delivered",
"field.status.draft": "Draft",
"field.created_at": "Created at",
"field.currency": "Currency",
"field.entries": "Entries"
}

View File

@@ -0,0 +1,22 @@
{
"field.type": "Item Type",
"field.type.inventory": "Inventory",
"field.type.service": "Service",
"field.type.non-inventory": "Non Inventory",
"field.name": "Item Name",
"field.code": "Item Code",
"field.sellable": "Sellable",
"field.purchasable": "Purchasable",
"field.cost_price": "Cost Price",
"field.sell_price": "Sell Price",
"field.cost_account": "Cost Account",
"field.sell_account": "Sell Account",
"field.sell_description": "Sell Description",
"field.inventory_account": "Inventory Account",
"field.purchase_description": "Purchase Description",
"field.quantity_on_hand": "Quantity on Hand",
"field.note": "Note",
"field.category": "Category",
"field.active": "Active",
"field.created_at": "Created At"
}

View File

@@ -0,0 +1,6 @@
{
"field.name": "Name",
"field.description": "Description",
"field.count": "Count",
"field.created_at": "Created at"
}

View File

@@ -0,0 +1,12 @@
{
"field.date": "Date",
"field.journal_number": "Journal No.",
"field.reference": "Reference No.",
"field.journal_type": "Journal Type",
"field.amount": "Amount",
"field.description": "Description",
"field.currency": "Currency",
"field.exchange_rate": "Exchange Rate",
"field.status": "Status",
"field.created_at": "Created at"
}

View File

@@ -0,0 +1,16 @@
{
"income": "Income",
"cost_of_sales": "Cost of sales",
"gross_profit": "GROSS PROFIT",
"expenses": "Expenses",
"net_operating_income": "NET OPERATING INCOME",
"other_income": "Other income",
"other_expenses": "Other expenses",
"net_income": "NET INCOME",
"account_name": "Account name",
"total": "Total",
"percentage_of_income": "% of Income",
"percentage_of_expenses": "% of Expenses",
"percentage_of_column": "% of Column",
"percentage_of_row": "% of Row"
}

View File

@@ -0,0 +1,14 @@
{
"paper.receipt": "Receipt",
"paper.billed_to": "Billed to",
"paper.receipt_date": "Receipt date",
"paper.receipt_number": "Receipt number",
"paper.expiration_date": "Expiration date",
"paper.conditions_title": "Conditions & terms",
"paper.notes": "Notes",
"paper.statement": "Statement",
"paper.receipt_amount": "Receipt amount",
"paper.total": "Total",
"paper.balance_due": "Balance Due",
"paper.payment_amount": "Payment Amount"
}

View File

@@ -0,0 +1,6 @@
{
"admin.name": "Admin",
"admin.desc": "Unrestricted access to all modules.",
"staff.name": "Staff",
"staff.desc": "Access to all modules except reports, settings and accountant."
}

View File

@@ -17,5 +17,15 @@
"other": "Every {count} days",
"zero": "Never"
},
"nested": "We go shopping: $t(test.day_interval, {{\"count\": {count} }})"
"nested": "We go shopping: $t(test.day_interval, {{\"count\": {count} }})",
"financial_sheet.previoud_period_date": "{{date}} (PP)",
"fianncial_sheet.previous_period_change": "Change (PP)",
"financial_sheet.previous_period_percentage": "% Change (PP)",
"financial_sheet.previous_year_date": "{{date}} (PY)",
"financial_sheet.previous_year_change": "Change (PY)",
"financial_sheet.previous_year_percentage": "% Change (PY)",
"financial_sheet.total_row": "Total {{value}}"
}

View File

@@ -0,0 +1,9 @@
{
"module.sales.label": "Sales",
"module.purchases.label": "Purchases",
"module.financial.label": "Financial",
"module.all_transactions": "All transactions",
"module.sales.desc": "Sale invoices, Receipts, credit notes, customers payment receive and customers opening balances.",
"module.purchases.desc": "Purchase invoices, vendors payments, vendor credit notes and vendors opening balances.",
"module.financial.desc": "Manual journal, expenses and inventory adjustments."
}

View File

@@ -83,7 +83,6 @@ export class CashFlowStatement extends R.pipe(
this.initDateRangeCollection();
}
// --------------------------------------------
// # NET INCOME NODE
// --------------------------------------------
@@ -228,11 +227,13 @@ export class CashFlowStatement extends R.pipe(
const accountsTotal = this.getAccountsMetaTotal(accounts);
const total = this.getTotalAmountMeta(accountsTotal);
console.log(sectionSchema.label, 'label');
const node = {
sectionType: ICashFlowStatementSectionType.ACCOUNTS,
id: sectionSchema.id,
label: this.i18n.t(sectionSchema.label),
footerLabel: this.i18n.t(sectionSchema.footerLabel),
label: sectionSchema.label,
footerLabel: sectionSchema.footerLabel,
children: accounts,
total,
};
@@ -254,7 +255,7 @@ export class CashFlowStatement extends R.pipe(
(type: string, section: ICashFlowSchemaSection): boolean => {
return type === section.sectionType;
},
);
);
// --------------------------------------------
// # AGGREGATE NODE

View File

@@ -1,17 +1,17 @@
import { Injectable } from '@nestjs/common';
import { ModelObject } from 'objection';
import * as R from 'ramda';
import { I18nService } from 'nestjs-i18n';
import {
ICashFlowStatementQuery,
ICashFlowStatementDOO,
} from './Cashflow.types';
import { CashFlowStatement } from './CashFlow';
import { CashflowSheetMeta } from './CashflowSheetMeta';
import { Injectable } from '@nestjs/common';
import { CashFlowRepository } from './CashFlowRepository';
import { TenancyContext } from '@/modules/Tenancy/TenancyContext.service';
import { Ledger } from '@/modules/Ledger/Ledger';
import { AccountTransaction } from '@/modules/Accounts/models/AccountTransaction.model';
import { I18nService } from 'nestjs-i18n';
import { getDefaultCashflowQuery } from './constants';
@Injectable()

View File

@@ -8,17 +8,17 @@ import {
export const CASH_FLOW_SCHEMA = [
{
id: CASH_FLOW_SECTION_ID.OPERATING,
label: 'OPERATING ACTIVITIES',
label: 'cash_flow_statement.operating_activities',
sectionType: ICashFlowStatementSectionType.AGGREGATE,
children: [
{
id: CASH_FLOW_SECTION_ID.NET_INCOME,
label: 'Net income',
label: 'cash_flow_statement.net_income',
sectionType: ICashFlowStatementSectionType.NET_INCOME,
},
{
id: CASH_FLOW_SECTION_ID.OPERATING_ACCOUNTS,
label: 'Adjustments net income by operating activities.',
label: 'cash_flow_statement.operating_accounts',
sectionType: ICashFlowStatementSectionType.ACCOUNTS,
accountsRelations: [
{ type: ACCOUNT_TYPE.ACCOUNTS_RECEIVABLE, direction: 'mines' },
@@ -34,29 +34,29 @@ export const CASH_FLOW_SCHEMA = [
showAlways: true,
},
],
footerLabel: 'Net cash provided by operating activities',
footerLabel: 'cash_flow_statement.net_cash_operating',
},
{
id: CASH_FLOW_SECTION_ID.INVESTMENT,
sectionType: ICashFlowStatementSectionType.ACCOUNTS,
label: 'INVESTMENT ACTIVITIES',
label: 'cash_flow_statement.investment_activities',
accountsRelations: [{ type: ACCOUNT_TYPE.FIXED_ASSET, direction: 'mines' }],
footerLabel: 'Net cash provided by investing activities',
footerLabel: 'cash_flow_statement.net_cash_investing',
},
{
id: CASH_FLOW_SECTION_ID.FINANCIAL,
label: 'FINANCIAL ACTIVITIES',
label: 'cash_flow_statement.financial_activities',
sectionType: ICashFlowStatementSectionType.ACCOUNTS,
accountsRelations: [
{ type: ACCOUNT_TYPE.LOGN_TERM_LIABILITY, direction: 'plus' },
{ type: ACCOUNT_TYPE.EQUITY, direction: 'plus' },
],
footerLabel: 'Net cash provided by financing activities',
footerLabel: 'cash_flow_statement.net_cash_financing',
},
{
id: CASH_FLOW_SECTION_ID.CASH_BEGINNING_PERIOD,
sectionType: ICashFlowStatementSectionType.CASH_AT_BEGINNING,
label: 'Cash at beginning of period',
label: 'cash_flow_statement.cash_beginning_period',
accountsRelations: [
{ type: ACCOUNT_TYPE.CASH, direction: 'plus' },
{ type: ACCOUNT_TYPE.BANK, direction: 'plus' },
@@ -66,11 +66,11 @@ export const CASH_FLOW_SCHEMA = [
id: CASH_FLOW_SECTION_ID.NET_CASH_INCREASE,
sectionType: ICashFlowStatementSectionType.TOTAL,
equation: 'OPERATING + INVESTMENT + FINANCIAL',
label: 'NET CASH INCREASE FOR PERIOD',
label: 'cash_flow_statement.net_cash_increase',
},
{
id: CASH_FLOW_SECTION_ID.CASH_END_PERIOD,
label: 'CASH AT END OF PERIOD',
label: 'cash_flow_statement.cash_end_period',
sectionType: ICashFlowStatementSectionType.TOTAL,
equation: 'NET_CASH_INCREASE + CASH_BEGINNING_PERIOD',
},

View File

@@ -1,3 +1,5 @@
import * as moment from 'moment';
export const getSalesByItemsDefaultQuery = () => {
return {
fromDate: moment().startOf('month').format('YYYY-MM-DD'),