From d6fc817cefc1ea20db89a41defb18ee8b8b9191a Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 17:38:35 +0700 Subject: [PATCH 1/2] feat: remove unused report --- .../configs/revenue-per-item.ts | 40 ------------------- .../configs/sales-qty-per-item.ts | 40 ------------------- .../configs/transaction-report/index.ts | 4 -- 3 files changed, 84 deletions(-) delete mode 100644 src/modules/reports/shared/configs/transaction-report/configs/revenue-per-item.ts delete mode 100644 src/modules/reports/shared/configs/transaction-report/configs/sales-qty-per-item.ts diff --git a/src/modules/reports/shared/configs/transaction-report/configs/revenue-per-item.ts b/src/modules/reports/shared/configs/transaction-report/configs/revenue-per-item.ts deleted file mode 100644 index 9145830..0000000 --- a/src/modules/reports/shared/configs/transaction-report/configs/revenue-per-item.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { DATA_FORMAT, DATA_TYPE, REPORT_GROUP } from '../../../constant'; -import { ReportConfigEntity } from '../../../entities/report-config.entity'; - -export default { - group_name: REPORT_GROUP.transaction_report, - unique_name: `${REPORT_GROUP.transaction_report}__revenue_per_item`, - label: 'Pendapatan per Item', - table_schema: 'season_types main', - main_table_alias: 'main', - defaultOrderBy: [], - lowLevelOrderBy: [], - filter_period_config: { - hidden: true, - }, - - column_configs: [ - { - column: 'main__created_at', - query: 'main.created_at', - label: 'Created Date', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.DATE_EPOCH, - }, - { - column: 'main__updated_at', - query: 'main.updated_at', - label: 'Updated Date', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.DATE_EPOCH, - }, - { - column: 'main__name', - query: 'main.name', - label: 'Name', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.TEXT, - }, - ], - filter_configs: [], -}; diff --git a/src/modules/reports/shared/configs/transaction-report/configs/sales-qty-per-item.ts b/src/modules/reports/shared/configs/transaction-report/configs/sales-qty-per-item.ts deleted file mode 100644 index d3a5e1a..0000000 --- a/src/modules/reports/shared/configs/transaction-report/configs/sales-qty-per-item.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { DATA_FORMAT, DATA_TYPE, REPORT_GROUP } from '../../../constant'; -import { ReportConfigEntity } from '../../../entities/report-config.entity'; - -export default { - group_name: REPORT_GROUP.transaction_report, - unique_name: `${REPORT_GROUP.transaction_report}__sales_qty_per_item`, - label: 'Qty Penjualan per Item', - table_schema: 'season_types main', - main_table_alias: 'main', - defaultOrderBy: [], - lowLevelOrderBy: [], - filter_period_config: { - hidden: true, - }, - - column_configs: [ - { - column: 'main__created_at', - query: 'main.created_at', - label: 'Created Date', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.DATE_EPOCH, - }, - { - column: 'main__updated_at', - query: 'main.updated_at', - label: 'Updated Date', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.DATE_EPOCH, - }, - { - column: 'main__name', - query: 'main.name', - label: 'Name', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.TEXT, - }, - ], - filter_configs: [], -}; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index 6b2b880..5637d9d 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -3,8 +3,6 @@ import { ReportConfigEntity } from '../../entities/report-config.entity'; import IncomeReport from './configs/income'; import IncomeReportPerItem from './configs/income-per-item'; import GivingDiscount from './configs/giving-discounts'; -import RevenuePerItemReport from './configs/revenue-per-item'; -import SalesQtyPerItemReport from './configs/sales-qty-per-item'; import VisitorsPerRideReport from './configs/visitors-per-ride'; import TimePerRideReport from './configs/time-per-ride'; import BookingReport from './configs/booking'; @@ -16,8 +14,6 @@ export const TransactionReportConfig: ReportConfigEntity[] = [ IncomeReport, IncomeReportPerItem, GivingDiscount, - // RevenuePerItemReport, - // SalesQtyPerItemReport, // VisitorsPerRideReport, // TimePerRideReport, BookingReport, -- 2.40.1 From b597a2f1848a1fef3190a285ebcdf38957b4803a Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Mon, 12 Aug 2024 10:50:02 +0700 Subject: [PATCH 2/2] feat(SPG-265): report reconciliation --- .../configs/reconciliation.ts | 188 ++++++++++++++++++ .../configs/transaction-report/index.ts | 2 + 2 files changed, 190 insertions(+) create mode 100644 src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts diff --git a/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts b/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts new file mode 100644 index 0000000..ed553c0 --- /dev/null +++ b/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts @@ -0,0 +1,188 @@ +import { + DATA_FORMAT, + DATA_TYPE, + FILTER_FIELD_TYPE, + FILTER_TYPE, + REPORT_GROUP, +} from '../../../constant'; +import { ReportConfigEntity } from '../../../entities/report-config.entity'; +import { TransactionType } from 'src/modules/transaction/transaction/constants'; +import { STATUS } from 'src/core/strings/constants/base.constants'; + +export default { + group_name: REPORT_GROUP.transaction_report, + unique_name: `${REPORT_GROUP.transaction_report}__reconciliation`, + label: 'Rekonsiliasi', + table_schema: `transactions main + LEFT JOIN payment_methods payment ON payment.id::text = main.payment_type_method_id::text`, + main_table_alias: 'main', + defaultOrderBy: [], + lowLevelOrderBy: [], + filter_period_config: { + hidden: true, + }, + column_configs: [ + { + column: 'main__reconciliation_status', + query: 'main.reconciliation_status', + label: 'Status', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.STATUS, + }, + { + column: 'main__type', + query: 'main.type', + label: 'Sumber', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__settlement_date', + query: 'main.settlement_date', + label: 'Tgl. Pendapatan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.DATE_TIMESTAMP, + date_format: 'DD/MM/YYYY', + }, + { + column: 'main__reconciliation_confirm_date', + query: 'main.reconciliation_confirm_date', + label: 'Tgl. Konfirmasi', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.DATE_TIMESTAMP, + date_format: 'DD/MM/YYYY', + }, + { + column: 'main__payment_code_reference', + query: 'main.payment_code_reference', + label: 'Referensi', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__payment_type', + query: 'main.payment_type', + label: 'Metode Pembayaran', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__payment_type_method_name', + query: 'main.payment_type_method_name', + label: 'Bank/Issuer', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'payment__account_number', + query: 'payment.account_number', + label: 'Account No.', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__payment_total', + query: 'main.payment_total', + label: 'Total', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'main__reconciliation_mdr', + query: 'main.reconciliation_mdr', + label: 'MDR', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'cashier', + query: `CASE WHEN main.type = 'counter' THEN main.creator_name END`, + label: 'Kasir', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__reconciliation_confirm_by', + query: 'main.reconciliation_confirm_by', + label: 'Dikonfirmasi Oleh', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + ], + filter_configs: [ + { + filed_label: 'Status', + filter_column: 'main__reconciliation_status', + field_type: FILTER_FIELD_TYPE.select, + filter_type: FILTER_TYPE.TEXT_IN_MEMBER, + select_custom_options: [ + STATUS.PENDING, + STATUS.CONFIRMED, + STATUS.REJECTED, + ], + }, + { + filed_label: 'Sumber', + filter_column: 'main__type', + field_type: FILTER_FIELD_TYPE.select, + filter_type: FILTER_TYPE.TEXT_IN_MEMBER, + select_custom_options: [...Object.values(TransactionType)], + }, + { + filed_label: 'Tgl. Pendapatan', + filter_column: 'main__settlement_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Tgl. Konfirmasi', + filter_column: 'main__reconciliation_confirm_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Referensi', + filter_column: 'main__payment_code_reference', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Metode Pembayaran', + filter_column: 'main__payment_type', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Issuer', + filter_column: 'main__payment_type_method_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Account No.', + filter_column: 'payment__account_number', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kasir', + filter_column: 'cashier', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Dikonfirmasi Oleh', + filter_column: 'main__reconciliation_confirm_by', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + ], + + whereCondition(filterModel) { + const statusFilter = filterModel?.main__reconciliation_status?.filter ?? []; + if (statusFilter.length === 0) { + return [`main.reconciliation_status NOT IN ('${STATUS.DRAFT}')`]; + } + return []; + }, +}; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index 5637d9d..1f3b73a 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -9,6 +9,7 @@ import BookingReport from './configs/booking'; import RefundsReport from './configs/refunds'; import CashierLogReport from './configs/cashier-log'; import CashWithdrawalsReport from './configs/cash-withdrawals'; +import ReconciliationReport from './configs/reconciliation'; export const TransactionReportConfig: ReportConfigEntity[] = [ IncomeReport, @@ -20,4 +21,5 @@ export const TransactionReportConfig: ReportConfigEntity[] = [ RefundsReport, CashierLogReport, CashWithdrawalsReport, + ReconciliationReport, ]; -- 2.40.1