From a319b64abef06227b657a180228695ea8a5f6cf3 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:14:37 +0700 Subject: [PATCH 1/6] feat(SPG-259): report pendapatan per item --- .../configs/income-per-item.ts | 299 ++++++++++++++++++ .../transaction-report/configs/income.ts | 22 +- .../configs/transaction-report/index.ts | 2 + 3 files changed, 321 insertions(+), 2 deletions(-) create mode 100644 src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts new file mode 100644 index 0000000..7569b02 --- /dev/null +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts @@ -0,0 +1,299 @@ +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}__income_per_item`, + label: 'Pendapatan Per Item', + table_schema: `transactions main + LEFT JOIN transaction_items tr_item ON tr_item.transaction_id::text = main.id::text + LEFT JOIN refunds refund ON refund.transaction_id = main.id + LEFT JOIN items item ON item.id::text = tr_item.item_id::text + LEFT JOIN users tenant ON tenant.id::text = item.tenant_id::text + LEFT JOIN refund_items refund_item ON refund_item.refund_item_id::text = tr_item.item_id::text`, + main_table_alias: 'main', + whereDefaultConditions: [ + { + column: 'main.status', + filter_type: FILTER_TYPE.TEXT_IN_MEMBER, + values: [STATUS.SETTLED, STATUS.REFUNDED, STATUS.PROCESS_REFUND], + }, + ], + defaultOrderBy: [], + lowLevelOrderBy: [], + filter_period_config: { + hidden: true, + }, + + column_configs: [ + { + column: 'main__settlement_date', + query: 'main.settlement_date', + label: 'Tanggal Pendapatan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.DATE_TIMESTAMP, + date_format: 'DD/MM/YYYY', + }, + { + column: 'item_owner', + query: `CASE WHEN tenant.name is not null THEN tenant.name ELSE 'Company' END`, + label: 'Kepemilikan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__type', + query: 'main.type', + label: 'Sumber', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__invoice_code', + query: 'main.invoice_code', + label: 'Kode Booking', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__payment_code', + query: 'main.payment_code', + label: 'Kode Pembayaran', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'tr_item__item_category_name', + query: 'tr_item.item_category_name', + label: 'Kategori Item', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'tr_item__item_name', + query: 'tr_item.item_name', + label: 'Nama Item', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__customer_type', + query: 'main.customer_type', + label: 'Tipe Pelanggan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__creator_counter_no', + query: 'main.creator_counter_no', + label: 'No.PoS', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'tr_item__qty', + query: 'tr_item.qty', + label: 'Qty', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.NUMBER, + }, + { + column: 'tr_item__total_hpp', + query: 'tr_item.total_hpp', + label: 'Total HPP', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + // TODO => tambahkan total dpp per item + // TODO => tambahkan total tax + { + column: 'tr_item__total_price', + query: 'tr_item.total_price', + label: 'Total Penjualan', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'refund__refund_date', + query: 'refund.refund_date', + label: 'Tanggal Pengembalian', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.DATE_TIMESTAMP, + date_format: 'DD/MM/YYYY', + }, + { + column: 'refund__status', + query: 'refund.status', + label: 'Status Pengembalian', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'refund__code', + query: 'refund.code', + label: 'Kode Pengembalian', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'refund_item__qty_refund', + query: 'refund_item.qty_refund', + label: 'Qty Pengembalian', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.NUMBER, + }, + { + column: 'refund_item__refund_total', + query: '(refund_item.refund_total * -1)', + label: 'Total Pengembalian', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + + { + column: 'transaction_balance', + query: `CASE WHEN refund.id is null THEN tr_item.total_price ELSE tr_item.total_price - refund_item.refund_total END`, + label: 'Balance', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'tr_item__item_tenant_share_margin', + query: 'tr_item.item_tenant_share_margin', + label: 'Profile Share (IDR)', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'tenant_income', + query: 'tr_item.total_price - tr_item.item_tenant_share_margin', + label: 'Pendapatan Tenant', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.CURRENCY, + }, + + { + column: 'main__customer_name', + query: 'main.customer_name', + label: 'Nama Pelanggan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__customer_description', + query: 'main.customer_description', + label: 'Deskripsi', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__customer_phone', + query: 'main.customer_phone', + label: 'Telepon', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__creator_name', + query: 'main.creator_name', + label: 'Dibuat Oleh', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + ], + filter_configs: [ + { + filed_label: 'Tanggal Pendapatan', + filter_column: 'main__settlement_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Kepemilikan', + filter_column: 'item_owner', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + 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: 'Kode Booking', + filter_column: 'main__invoice_code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kode Pembayaran', + filter_column: 'main__payment_code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kategori Item', + filter_column: 'tr_item__item_category_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Nama Item', + filter_column: 'tr_item__item_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tipe Pelanggan', + filter_column: 'main__customer_type', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'No. PoS', + filter_column: 'main__creator_counter_no', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tanggal Pengembalian', + filter_column: 'refund__refund_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Kode Pengembalian', + filter_column: 'refund__code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Nama Pelanggan', + filter_column: 'main__customer_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Bank/Issuer', + filter_column: 'main__payment_type_method_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Dibuat Oleh', + filter_column: 'main__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + ], +}; diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income.ts b/src/modules/reports/shared/configs/transaction-report/configs/income.ts index d2752f6..45f4d5d 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income.ts @@ -243,8 +243,8 @@ export default { format: DATA_FORMAT.TEXT, }, { - column: 'main__creator_name', - query: 'main.creator_name', + column: 'refund__creator_name', + query: 'refund.creator_name', label: 'Pengembalian Dibuat Oleh', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, @@ -324,5 +324,23 @@ export default { field_type: FILTER_FIELD_TYPE.input_tag, filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, }, + { + filed_label: 'Penjualan Dibuat Oleh', + filter_column: 'main__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Direkonsiliasi Oleh', + filter_column: 'main__reconciliation_confirm_by', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Pengembalian Dibuat Oleh', + filter_column: 'refund__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, ], }; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index a51f33b..e5a1825 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -1,6 +1,7 @@ import { ReportConfigEntity } from '../../entities/report-config.entity'; import IncomeReport from './configs/income'; +import IncomeReportPerItem from './configs/income-per-item'; import RevenuePerItemReport from './configs/revenue-per-item'; import SalesQtyPerItemReport from './configs/sales-qty-per-item'; import VisitorsPerRideReport from './configs/visitors-per-ride'; @@ -12,6 +13,7 @@ import CashWithdrawalsReport from './configs/cash-withdrawals'; export const TransactionReportConfig: ReportConfigEntity[] = [ IncomeReport, + IncomeReportPerItem, // RevenuePerItemReport, // SalesQtyPerItemReport, // VisitorsPerRideReport, -- 2.40.1 From bc8476a56e0901b5cea5e9268a12577675aec67f Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:43:13 +0700 Subject: [PATCH 2/6] feat(SPG-268): report pemberian diskon --- .../configs/giving-discounts.ts | 192 ++++++++++++++++++ .../configs/income-per-item.ts | 10 +- .../configs/transaction-report/index.ts | 2 + 3 files changed, 199 insertions(+), 5 deletions(-) create mode 100644 src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts diff --git a/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts b/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts new file mode 100644 index 0000000..99e1a3e --- /dev/null +++ b/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts @@ -0,0 +1,192 @@ +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}__giving_discounts`, + label: 'Pemberian Diskon', + table_schema: `transactions main + LEFT JOIN vip_codes vip ON vip.id::text = main.discount_code_id::text + LEFT JOIN vip_categories vip_category ON vip_category.id::text = vip.vip_category_id::text + LEFT JOIN users account ON account.id::text = vip.creator_id::text + LEFT JOIN user_privileges privilege ON privilege.id::text = account.user_privilege_id::text + LEFT JOIN season_types s_period_type ON s_period_type.id::text = main.season_period_type_id`, + main_table_alias: 'main', + whereDefaultConditions: [ + { + column: 'main.status', + filter_type: FILTER_TYPE.TEXT_IN_MEMBER, + values: [STATUS.SETTLED], + }, + { + column: 'main.type', + filter_type: FILTER_TYPE.TEXT_IN_MEMBER, + values: [TransactionType.COUNTER], + }, + ], + defaultOrderBy: [], + lowLevelOrderBy: [], + filter_period_config: { + hidden: true, + }, + + column_configs: [ + { + column: 'main__settlement_date', + query: 'main.settlement_date', + label: 'Tanggal Transaksi', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.DATE_TIMESTAMP, + date_format: 'DD/MM/YYYY', + }, + { + column: 's_period_type__name', + query: 's_period_type.name', + label: 'Tipe Rate', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__invoice_code', + query: 'main.invoice_code', + label: 'Kode Transaksi', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__payment_total_profit', + query: 'main.payment_total_profit', + label: 'Total Transaksi', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'main__discount_code', + query: 'main.discount_code', + label: 'Kode Diskon', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__discount_percentage', + query: 'main.discount_percentage', + label: 'Diskon (%)', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__discount_value', + query: 'main.discount_value', + label: 'Diskon (IDR)', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'main__payment_total', + query: 'main.payment_total', + label: 'Total Pembayaran', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'vip__creator_name', + query: 'vip.creator_name', + label: 'Pemberi Diskon', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'privilege__name', + query: 'privilege.name', + label: 'Kategori Pemberi Diskon', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__creator_counter_no', + query: 'main.creator_counter_no', + label: 'No. PoS', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__customer_name', + query: 'main.customer_name', + label: 'Nama Pelanggan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__customer_phone', + query: 'main.customer_phone', + label: 'Telepon', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__creator_name', + query: 'main.creator_name', + label: 'Kasir', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + ], + filter_configs: [ + { + filed_label: 'Tanggal Transaksi', + filter_column: 'main__settlement_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Tipe Rate', + filter_column: 's_period_type__name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kode Transaksi', + filter_column: 'main__invoice_code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kode Diskon', + filter_column: 'main__discount_code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Pemberi Diskon', + filter_column: 'vip__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'No. Pos', + filter_column: 'main__creator_counter_no', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Nama Pelanggan', + filter_column: 'main__customer_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kasir', + filter_column: 'main__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + ], +}; diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts index 7569b02..ef2e131 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts @@ -14,11 +14,11 @@ export default { unique_name: `${REPORT_GROUP.transaction_report}__income_per_item`, label: 'Pendapatan Per Item', table_schema: `transactions main - LEFT JOIN transaction_items tr_item ON tr_item.transaction_id::text = main.id::text - LEFT JOIN refunds refund ON refund.transaction_id = main.id - LEFT JOIN items item ON item.id::text = tr_item.item_id::text - LEFT JOIN users tenant ON tenant.id::text = item.tenant_id::text - LEFT JOIN refund_items refund_item ON refund_item.refund_item_id::text = tr_item.item_id::text`, + LEFT JOIN transaction_items tr_item ON tr_item.transaction_id::text = main.id::text + LEFT JOIN refunds refund ON refund.transaction_id = main.id + LEFT JOIN items item ON item.id::text = tr_item.item_id::text + LEFT JOIN users tenant ON tenant.id::text = item.tenant_id::text + LEFT JOIN refund_items refund_item ON refund_item.refund_item_id::text = tr_item.item_id::text`, main_table_alias: 'main', whereDefaultConditions: [ { diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index e5a1825..7acabbb 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -2,6 +2,7 @@ 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'; @@ -14,6 +15,7 @@ import CashWithdrawalsReport from './configs/cash-withdrawals'; export const TransactionReportConfig: ReportConfigEntity[] = [ IncomeReport, IncomeReportPerItem, + GivingDiscount, // RevenuePerItemReport, // SalesQtyPerItemReport, // VisitorsPerRideReport, -- 2.40.1 From 76b518614f3d3ec1e9a2fa12c089c6a77da86ab9 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:52:53 +0700 Subject: [PATCH 3/6] feat(SPG-263): report pemesanan --- .../transaction-report/configs/booking.ts | 80 ++++++++++++++++++- .../configs/transaction-report/index.ts | 2 +- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/booking.ts b/src/modules/reports/shared/configs/transaction-report/configs/booking.ts index 2c31c22..2fc5204 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/booking.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/booking.ts @@ -166,7 +166,7 @@ export default { { column: 'main__updated_at', query: 'main.updated_at', - label: 'Tgl Update', + label: 'Tgl. Update', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_EPOCH, }, @@ -185,6 +185,12 @@ export default { STATUS.REJECTED, ], }, + { + filed_label: 'Tgl. Booking', + filter_column: 'main__booking_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, { filed_label: 'Sumber', filter_column: 'main__type', @@ -196,5 +202,77 @@ export default { TransactionType.ONLINE, ], }, + { + filed_label: 'Tipe', + filter_column: 'main__customer_type', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kontak', + filter_column: 'main__customer_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tipe Pembayaran', + filter_column: 'main__payment_type', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Bank', + filter_column: 'main__payment_type_method_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Invoice', + filter_column: 'main__invoice_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Kode Invoice', + filter_column: 'main__invoice_code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Settlement', + filter_column: 'main__settlement_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Request Refund', + filter_column: 'refund__request_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Kode Refund', + filter_column: 'refund__code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Refund', + filter_column: 'refund__refund_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Dibuat Oleh', + filter_column: 'main__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Update', + filter_column: 'main__updated_at', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, ], }; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index 7acabbb..7b59c32 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -20,7 +20,7 @@ export const TransactionReportConfig: ReportConfigEntity[] = [ // SalesQtyPerItemReport, // VisitorsPerRideReport, // TimePerRideReport, - // BookingReport, + BookingReport, // RefundsReport, // CashierLogReport, // CashWithdrawalsReport, -- 2.40.1 From 21b9549b529b97f38eb91eef5bc8dffc52c14b85 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:06:17 +0700 Subject: [PATCH 4/6] feat(SPG-264): report refund --- .../transaction-report/configs/refunds.ts | 130 ++++++++++++++++-- .../configs/transaction-report/index.ts | 2 +- 2 files changed, 116 insertions(+), 16 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts b/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts index d274ed0..f202dd1 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts @@ -7,6 +7,7 @@ import { REPORT_GROUP, } from '../../../constant'; import { ReportConfigEntity } from '../../../entities/report-config.entity'; +import { RefundType } from 'src/modules/transaction/refund/constants'; export default { group_name: REPORT_GROUP.transaction_report, @@ -29,6 +30,13 @@ export default { type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.STATUS, }, + { + column: 'main__type', + query: 'main.type', + label: 'Tipe Refund', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, { column: 'main__code', query: 'main.code', @@ -53,15 +61,8 @@ export default { date_format: 'DD/MM/YYYY', }, { - column: 'main__type', - query: 'main.type', - label: 'Tipe Refund', - type: DATA_TYPE.DIMENSION, - format: DATA_FORMAT.TEXT, - }, - { - column: 'tr__invoice_code', - query: 'tr.invoice_code', + column: 'tr__payment_code', + query: 'tr.payment_code', label: 'Kode Settlement', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, @@ -89,16 +90,30 @@ export default { format: DATA_FORMAT.CURRENCY, }, { - column: 'tr__payment_type', - query: 'tr.payment_type', - label: 'Tipe Pembayaran', + column: 'main__bank_name', + query: 'main.bank_name', + label: 'Bank Tujuan', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, }, { - column: 'tr__payment_type_method_name', - query: 'tr.payment_type_method_name', - label: 'Bank', + column: 'main__bank_account_number', + query: 'main.bank_account_number', + label: 'No. Rek. Tujuan', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__bank_account_name', + query: 'main.bank_account_name', + label: 'Atas Nama', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'tr__payment_type', + query: 'tr.payment_type', + label: 'Tipe Pembayaran', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, }, @@ -152,5 +167,90 @@ export default { STATUS.REJECTED, ], }, + { + filed_label: 'Tipe Refund', + filter_column: 'main__type', + field_type: FILTER_FIELD_TYPE.select, + filter_type: FILTER_TYPE.TEXT_IN_MEMBER, + select_custom_options: [...Object.values(RefundType)], + }, + { + filed_label: 'Kode', + filter_column: 'main__code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Permintaan', + filter_column: 'main__request_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Tgl. Refund', + filter_column: 'main__refund_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Kode Settlement', + filter_column: 'tr__payment_code', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Settlement', + filter_column: 'tr__settlement_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Bank Tujuan', + filter_column: 'main__bank_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'No. Rek. Tujuan', + filter_column: 'main__bank_account_number', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Atas Nama', + filter_column: 'main__bank_account_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tipe Pembayaran', + filter_column: 'tr__payment_type', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Kontak', + filter_column: 'tr__customer_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Telepon', + filter_column: 'tr__customer_phone', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Dibuat Oleh', + filter_column: 'main__creator_name', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, + { + filed_label: 'Tgl. Update', + filter_column: 'main__updated_at', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, ], }; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index 7b59c32..2059ed3 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -21,7 +21,7 @@ export const TransactionReportConfig: ReportConfigEntity[] = [ // VisitorsPerRideReport, // TimePerRideReport, BookingReport, - // RefundsReport, + RefundsReport, // CashierLogReport, // CashWithdrawalsReport, ]; -- 2.40.1 From 3b8310581b21937175245c6609940acc6f267d6f Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:10:57 +0700 Subject: [PATCH 5/6] feat(SPG-266): report cashier log --- .../shared/configs/transaction-report/configs/booking.ts | 2 +- .../configs/transaction-report/configs/cashier-log.ts | 6 ++++++ .../shared/configs/transaction-report/configs/refunds.ts | 2 +- .../reports/shared/configs/transaction-report/index.ts | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/booking.ts b/src/modules/reports/shared/configs/transaction-report/configs/booking.ts index 2fc5204..ffbcab9 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/booking.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/booking.ts @@ -272,7 +272,7 @@ export default { filed_label: 'Tgl. Update', filter_column: 'main__updated_at', field_type: FILTER_FIELD_TYPE.date_range_picker, - filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + filter_type: FILTER_TYPE.DATE_IN_RANGE_EPOCH, }, ], }; diff --git a/src/modules/reports/shared/configs/transaction-report/configs/cashier-log.ts b/src/modules/reports/shared/configs/transaction-report/configs/cashier-log.ts index 077c67f..c0db8da 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/cashier-log.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/cashier-log.ts @@ -66,6 +66,12 @@ export default { }, ], filter_configs: [ + { + filed_label: 'Tanggal', + filter_column: 'main__date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_EPOCH, + }, { filed_label: 'Tipe', filter_column: 'main__type', diff --git a/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts b/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts index f202dd1..d0b2322 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/refunds.ts @@ -250,7 +250,7 @@ export default { filed_label: 'Tgl. Update', filter_column: 'main__updated_at', field_type: FILTER_FIELD_TYPE.date_range_picker, - filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + filter_type: FILTER_TYPE.DATE_IN_RANGE_EPOCH, }, ], }; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index 2059ed3..389493c 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -22,6 +22,6 @@ export const TransactionReportConfig: ReportConfigEntity[] = [ // TimePerRideReport, BookingReport, RefundsReport, - // CashierLogReport, + CashierLogReport, // CashWithdrawalsReport, ]; -- 2.40.1 From 64d812bef17639d2fc8650089845cadfd7dbcc82 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Fri, 9 Aug 2024 17:21:12 +0700 Subject: [PATCH 6/6] feat(SPG-267): report cash withdrawals --- .../transaction-report/configs/cash-withdrawals.ts | 12 ++++++++++++ .../shared/configs/transaction-report/index.ts | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/cash-withdrawals.ts b/src/modules/reports/shared/configs/transaction-report/configs/cash-withdrawals.ts index 39391d5..f29b020 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/cash-withdrawals.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/cash-withdrawals.ts @@ -73,6 +73,12 @@ export default { }, ], filter_configs: [ + { + filed_label: 'Tanggal', + filter_column: 'main__date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_EPOCH, + }, { filed_label: 'Nama Penarik', filter_column: 'main__drawn_by_name', @@ -85,5 +91,11 @@ export default { field_type: FILTER_FIELD_TYPE.input_tag, filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, }, + { + filed_label: 'No. PoS', + filter_column: 'main__pos_number', + field_type: FILTER_FIELD_TYPE.input_tag, + filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + }, ], }; diff --git a/src/modules/reports/shared/configs/transaction-report/index.ts b/src/modules/reports/shared/configs/transaction-report/index.ts index 389493c..6b2b880 100644 --- a/src/modules/reports/shared/configs/transaction-report/index.ts +++ b/src/modules/reports/shared/configs/transaction-report/index.ts @@ -23,5 +23,5 @@ export const TransactionReportConfig: ReportConfigEntity[] = [ BookingReport, RefundsReport, CashierLogReport, - // CashWithdrawalsReport, + CashWithdrawalsReport, ]; -- 2.40.1