From 92d60d4496646ad59376981dbd294a44b3eb1327 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:19:42 +0700 Subject: [PATCH 01/19] feat: update query report income --- .../configs/transaction-report/configs/income-per-item.ts | 4 ++-- .../shared/configs/transaction-report/configs/income.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 ef2e131..090b5e9 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 @@ -58,14 +58,14 @@ export default { }, { column: 'main__invoice_code', - query: 'main.invoice_code', + query: `CASE WHEN main.type != 'counter' THEN main.invoice_code ELSE null END`, label: 'Kode Booking', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, }, { column: 'main__payment_code', - query: 'main.payment_code', + query: `CASE WHEN main.type = 'counter' THEN main.invoice_code ELSE main.payment_code END`, label: 'Kode Pembayaran', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, 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 45f4d5d..b4897ea 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income.ts @@ -61,14 +61,14 @@ export default { }, { column: 'main__invoice_code', - query: 'main.invoice_code', + query: `CASE WHEN main.type != 'counter' THEN main.invoice_code ELSE null END`, label: 'Kode Booking', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, }, { column: 'main__payment_code', - query: 'main.payment_code', + query: `CASE WHEN main.type = 'counter' THEN main.invoice_code ELSE main.payment_code END`, label: 'Kode Pembayaran', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, From 07e7b86cd44213693f0daa7c07ead340bf08e5e7 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:21:08 +0700 Subject: [PATCH 02/19] feat: update query report income and merge with development branch --- .../transaction-report/configs/income-per-item-master.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts index 69de3a5..76d6145 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts @@ -59,14 +59,14 @@ export default { }, { column: 'main__invoice_code', - query: 'main.invoice_code', + query: `CASE WHEN main.type != 'counter' THEN main.invoice_code ELSE null END`, label: 'Kode Booking', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, }, { column: 'main__payment_code', - query: 'main.payment_code', + query: `CASE WHEN main.type = 'counter' THEN main.invoice_code ELSE main.payment_code END`, label: 'Kode Pembayaran', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, From 7fb2995f38612c2436c95bfcbb1c0c80e9bb1d92 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:26:40 +0700 Subject: [PATCH 03/19] feat: update query report income and merge with development branch --- .../configs/giving-discounts.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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 index 99e1a3e..840a185 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts @@ -54,10 +54,24 @@ export default { 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__invoice_code', - query: 'main.invoice_code', - label: 'Kode Transaksi', + query: `CASE WHEN main.type != 'counter' THEN main.invoice_code ELSE null END`, + label: 'Kode Booking', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.TEXT, + }, + { + column: 'main__payment_code', + query: `CASE WHEN main.type = 'counter' THEN main.invoice_code ELSE main.payment_code END`, + label: 'Kode Pembayaran', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.TEXT, }, From d283caa898144494e0ce2951a78e2935ca0d17af Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:26:49 +0700 Subject: [PATCH 04/19] feat: rename label header --- .../transaction-report/configs/income-per-item-master.ts | 8 ++++---- .../configs/transaction-report/configs/income-per-item.ts | 8 ++++---- .../shared/configs/transaction-report/configs/income.ts | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts index 69de3a5..f41e3df 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts @@ -38,7 +38,7 @@ export default { { column: 'main__settlement_date', query: 'main.settlement_date', - label: 'Tanggal Pendapatan', + label: 'Tgl. Pendapatan', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -139,7 +139,7 @@ export default { { column: 'refund__refund_date', query: 'refund.refund_date', - label: 'Tanggal Pengembalian', + label: 'Tgl. Pengembalian', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -239,7 +239,7 @@ export default { ignore_filter_keys: ['tr_item__breakdown_bundling'], filter_configs: [ { - filed_label: 'Tanggal Pendapatan', + 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, @@ -307,7 +307,7 @@ export default { filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, }, { - filed_label: 'Tanggal Pengembalian', + filed_label: 'Tgl. Pengembalian', filter_column: 'refund__refund_date', 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/configs/income-per-item.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item.ts index ef2e131..d6fab37 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 @@ -37,7 +37,7 @@ export default { { column: 'main__settlement_date', query: 'main.settlement_date', - label: 'Tanggal Pendapatan', + label: 'Tgl. Pendapatan', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -124,7 +124,7 @@ export default { { column: 'refund__refund_date', query: 'refund.refund_date', - label: 'Tanggal Pengembalian', + label: 'Tgl. Pengembalian', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -211,7 +211,7 @@ export default { ], filter_configs: [ { - filed_label: 'Tanggal Pendapatan', + 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, @@ -266,7 +266,7 @@ export default { filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, }, { - filed_label: 'Tanggal Pengembalian', + filed_label: 'Tgl. Pengembalian', filter_column: 'refund__refund_date', 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/configs/income.ts b/src/modules/reports/shared/configs/transaction-report/configs/income.ts index 45f4d5d..2f12668 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income.ts @@ -40,7 +40,7 @@ export default { { column: 'main__settlement_date', query: 'main.settlement_date', - label: 'Tanggal Pendapatan', + label: 'Tgl. Pendapatan', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -146,7 +146,7 @@ export default { { column: 'refund__refund_date', query: 'refund.refund_date', - label: 'Tanggal Pengembalian', + label: 'Tgl. Pengembalian', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -252,7 +252,7 @@ export default { ], filter_configs: [ { - filed_label: 'Tanggal Pendapatan', + 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, @@ -295,7 +295,7 @@ export default { filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, }, { - filed_label: 'Tanggal Pengembalian', + filed_label: 'Tgl. Pengembalian', filter_column: 'refund__refund_date', field_type: FILTER_FIELD_TYPE.date_range_picker, filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, From bf73cb6b43d785a1c07b1bef61f5bd3b08a66bd5 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:29:31 +0700 Subject: [PATCH 05/19] feat: adjustment to measure at column income report --- .../configs/income-per-item-master.ts | 6 +++--- .../transaction-report/configs/income-per-item.ts | 10 +++++----- .../configs/transaction-report/configs/income.ts | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts index cd1a9c6..ea6e1e9 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts @@ -117,7 +117,7 @@ export default { column: 'tr_item__qty', query: 'tr_item.qty', label: 'Qty', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.NUMBER, }, { @@ -162,7 +162,7 @@ export default { column: 'refund_item__qty_refund', query: 'refund_item.qty_refund', label: 'Qty Pengembalian', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.NUMBER, }, { @@ -191,7 +191,7 @@ export default { column: 'tenant_income', query: 'tr_item.total_price - tr_item.item_tenant_share_margin', label: 'Pendapatan Tenant', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, 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 5a6edb8..4f43749 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 @@ -102,7 +102,7 @@ export default { column: 'tr_item__qty', query: 'tr_item.qty', label: 'Qty', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.NUMBER, }, { @@ -147,7 +147,7 @@ export default { column: 'refund_item__qty_refund', query: 'refund_item.qty_refund', label: 'Qty Pengembalian', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.NUMBER, }, { @@ -176,7 +176,7 @@ export default { column: 'tenant_income', query: 'tr_item.total_price - tr_item.item_tenant_share_margin', label: 'Pendapatan Tenant', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, @@ -262,8 +262,8 @@ export default { { filed_label: 'No. PoS', filter_column: 'main__creator_counter_no', - field_type: FILTER_FIELD_TYPE.input_tag, - filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + field_type: FILTER_FIELD_TYPE.input_number, + filter_type: FILTER_TYPE.NUMBER_EQUAL, }, { filed_label: 'Tgl. Pengembalian', 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 24b49a2..5f88edc 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income.ts @@ -133,21 +133,21 @@ export default { column: 'main__discount_value', query: 'main.discount_value', label: 'Diskon (IDR)', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, { column: 'main__payment_total', query: 'main.payment_total', label: 'Total Penjualan', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, { column: 'refund__refund_date', query: 'refund.refund_date', label: 'Tgl. Pengembalian', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', }, @@ -169,14 +169,14 @@ export default { column: 'refund__refund_total', query: '(refund.refund_total * -1)', label: 'Total Pengembalian', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, { column: 'transaction_balance', query: `CASE WHEN refund.id is null THEN main.payment_total ELSE main.payment_total - refund.refund_total END`, label: 'Balance', - type: DATA_TYPE.DIMENSION, + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, { @@ -291,8 +291,8 @@ export default { { filed_label: 'No. PoS', filter_column: 'main__creator_counter_no', - field_type: FILTER_FIELD_TYPE.input_tag, - filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + field_type: FILTER_FIELD_TYPE.input_number, + filter_type: FILTER_TYPE.NUMBER_EQUAL, }, { filed_label: 'Tgl. Pengembalian', From 7da22277f1543182ac140e06d321fe34a35195e6 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:37:48 +0700 Subject: [PATCH 06/19] feat: remove MDR column on income --- .../shared/configs/transaction-report/configs/income.ts | 7 ------- 1 file changed, 7 deletions(-) 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 5f88edc..5fc0a77 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income.ts @@ -101,13 +101,6 @@ export default { 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: 'main__payment_total_dpp', query: 'main.payment_total_dpp', From f4ecbf0e66cf9e865f32e37e1a1b7bc2f155d4c0 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:55:13 +0700 Subject: [PATCH 07/19] feat: add net pedapatan di report rekonsiliasi --- .../configs/transaction-report/configs/reconciliation.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts b/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts index ed553c0..365f8db 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts @@ -94,6 +94,13 @@ export default { type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, + { + column: 'main__payment_total_net_profit', + query: 'main.payment_total_net_profit', + label: 'Net Pendapatan', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, { column: 'cashier', query: `CASE WHEN main.type = 'counter' THEN main.creator_name END`, From d1b20e6b96a7aa563f7c168f9a929e506b9c5131 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:38:46 +0700 Subject: [PATCH 08/19] feat: create report tenant --- .../configs/income-per-item-master.ts | 22 +++++++++++ .../tenant-report/configs/income-per-item.ts | 9 +++++ .../tenant-report/configs/sample.report.ts | 39 ------------------- .../shared/configs/tenant-report/index.ts | 6 ++- 4 files changed, 35 insertions(+), 41 deletions(-) create mode 100644 src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts create mode 100644 src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts delete mode 100644 src/modules/reports/shared/configs/tenant-report/configs/sample.report.ts diff --git a/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts new file mode 100644 index 0000000..95ba9ae --- /dev/null +++ b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts @@ -0,0 +1,22 @@ +import { REPORT_GROUP } from '../../../constant'; +import { ReportConfigEntity } from '../../../entities/report-config.entity'; +import IncomeReportPerItemMaster from '../../transaction-report/configs/income-per-item-master'; + +export default { + ...IncomeReportPerItemMaster, + group_name: REPORT_GROUP.tenant_report, + unique_name: `${REPORT_GROUP.tenant_report}__income_per_item_master`, + whereCondition(filterModel) { + const queryFilter = []; + const breakdown = filterModel.tr_item__breakdown_bundling; + if (breakdown) { + console.log({ breakdown }); + const value = breakdown.filter.map((item) => { + return item === 'Yes' ? true : false; + }); + + queryFilter.push(`tr_item.breakdown_bundling in (${value.join()})`); + } + return queryFilter; + }, +}; diff --git a/src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts new file mode 100644 index 0000000..dfed213 --- /dev/null +++ b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts @@ -0,0 +1,9 @@ +import { REPORT_GROUP } from '../../../constant'; +import { ReportConfigEntity } from '../../../entities/report-config.entity'; +import IncomeReportPerItem from '../../transaction-report/configs/income-per-item'; + +export default { + ...IncomeReportPerItem, + group_name: REPORT_GROUP.tenant_report, + unique_name: `${REPORT_GROUP.tenant_report}__income_per_item`, +}; diff --git a/src/modules/reports/shared/configs/tenant-report/configs/sample.report.ts b/src/modules/reports/shared/configs/tenant-report/configs/sample.report.ts deleted file mode 100644 index 6718cff..0000000 --- a/src/modules/reports/shared/configs/tenant-report/configs/sample.report.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { DATA_FORMAT, DATA_TYPE, REPORT_GROUP } from '../../../constant'; -import { ReportConfigEntity } from '../../../entities/report-config.entity'; - -export default { - group_name: REPORT_GROUP.tenant_report, - unique_name: `${REPORT_GROUP.tenant_report}__sample`, - label: 'Sample Tenant Report', - 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/tenant-report/index.ts b/src/modules/reports/shared/configs/tenant-report/index.ts index ceee528..a1dad0a 100644 --- a/src/modules/reports/shared/configs/tenant-report/index.ts +++ b/src/modules/reports/shared/configs/tenant-report/index.ts @@ -1,6 +1,8 @@ import { ReportConfigEntity } from '../../entities/report-config.entity'; -import SampleReport from './configs/sample.report'; +import IncomeReportPerItem from './configs/income-per-item'; +import IncomeReportPerItemMaster from './configs/income-per-item-master'; export const TenantReportConfig: ReportConfigEntity[] = [ - // SampleReport + IncomeReportPerItem, + IncomeReportPerItemMaster, ]; From 3658ae4cdf720fc404c65e10d0171633c66e4f9a Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:48:44 +0700 Subject: [PATCH 09/19] feat: adjustment filter pos no --- .../configs/transaction-report/configs/cash-withdrawals.ts | 4 ++-- .../configs/transaction-report/configs/cashier-log.ts | 6 ++++++ .../configs/transaction-report/configs/giving-discounts.ts | 4 ++-- .../transaction-report/configs/income-per-item-master.ts | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) 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 f29b020..141dc72 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 @@ -94,8 +94,8 @@ export default { { filed_label: 'No. PoS', filter_column: 'main__pos_number', - field_type: FILTER_FIELD_TYPE.input_tag, - filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + field_type: FILTER_FIELD_TYPE.input_number, + filter_type: FILTER_TYPE.NUMBER_EQUAL, }, ], }; 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 c0db8da..923dcf0 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 @@ -85,5 +85,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_number, + filter_type: FILTER_TYPE.NUMBER_EQUAL, + }, ], }; 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 index 840a185..026fc6d 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/giving-discounts.ts @@ -187,8 +187,8 @@ export default { { filed_label: 'No. Pos', filter_column: 'main__creator_counter_no', - field_type: FILTER_FIELD_TYPE.input_tag, - filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + field_type: FILTER_FIELD_TYPE.input_number, + filter_type: FILTER_TYPE.NUMBER_EQUAL, }, { filed_label: 'Nama Pelanggan', diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts index ea6e1e9..8b83568 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts @@ -303,8 +303,8 @@ export default { { filed_label: 'No. PoS', filter_column: 'main__creator_counter_no', - field_type: FILTER_FIELD_TYPE.input_tag, - filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS, + field_type: FILTER_FIELD_TYPE.input_number, + filter_type: FILTER_TYPE.NUMBER_EQUAL, }, { filed_label: 'Tgl. Pengembalian', From ab9ec4ac0e7c816c4834a78b88591a7d4763b02b Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:11:20 +0700 Subject: [PATCH 10/19] feat(SPG-935): add column payment_date_bank --- ...payment-date-bank-column-at-transaction.ts | 19 +++++++++++++++++++ .../managers/detail-reconciliation.manager.ts | 1 + .../managers/index-reconciliation.manager.ts | 1 + .../managers/update-reconciliation.manager.ts | 1 + .../data/models/transaction.model.ts | 3 +++ .../domain/entities/transaction.entity.ts | 1 + 6 files changed, 26 insertions(+) create mode 100644 src/database/migrations/1725962197762-add-payment-date-bank-column-at-transaction.ts diff --git a/src/database/migrations/1725962197762-add-payment-date-bank-column-at-transaction.ts b/src/database/migrations/1725962197762-add-payment-date-bank-column-at-transaction.ts new file mode 100644 index 0000000..f8f7789 --- /dev/null +++ b/src/database/migrations/1725962197762-add-payment-date-bank-column-at-transaction.ts @@ -0,0 +1,19 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddPaymentDateBankColumnAtTransaction1725962197762 + implements MigrationInterface +{ + name = 'AddPaymentDateBankColumnAtTransaction1725962197762'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "transactions" ADD "payment_date_bank" date`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "transactions" DROP COLUMN "payment_date_bank"`, + ); + } +} diff --git a/src/modules/transaction/reconciliation/domain/usecases/managers/detail-reconciliation.manager.ts b/src/modules/transaction/reconciliation/domain/usecases/managers/detail-reconciliation.manager.ts index 0d8b25a..00a1270 100644 --- a/src/modules/transaction/reconciliation/domain/usecases/managers/detail-reconciliation.manager.ts +++ b/src/modules/transaction/reconciliation/domain/usecases/managers/detail-reconciliation.manager.ts @@ -43,6 +43,7 @@ export class DetailReconciliationManager extends BaseDetailManager Date: Tue, 10 Sep 2024 17:15:52 +0700 Subject: [PATCH 11/19] feat(SPG-935): add column payment_date_bank --- .../configs/reconciliation.ts | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts b/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts index 365f8db..8396bfb 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/reconciliation.ts @@ -37,9 +37,17 @@ export default { format: DATA_FORMAT.TEXT, }, { - column: 'main__settlement_date', - query: 'main.settlement_date', - label: 'Tgl. Pendapatan', + column: 'main__payment_date', + query: 'main.payment_date', + label: 'Tgl. Transaksi', + type: DATA_TYPE.DIMENSION, + format: DATA_FORMAT.DATE_TIMESTAMP, + date_format: 'DD/MM/YYYY', + }, + { + column: 'main__payment_date_bank', + query: 'main.payment_date_bank', + label: 'Tgl. Transaksi Bank', type: DATA_TYPE.DIMENSION, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', @@ -136,8 +144,14 @@ export default { select_custom_options: [...Object.values(TransactionType)], }, { - filed_label: 'Tgl. Pendapatan', - filter_column: 'main__settlement_date', + filed_label: 'Tgl. Transaksi', + filter_column: 'main__payment_date', + field_type: FILTER_FIELD_TYPE.date_range_picker, + filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, + }, + { + filed_label: 'Tgl. Transaksi Bank', + filter_column: 'main__payment_date_bank', field_type: FILTER_FIELD_TYPE.date_range_picker, filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP, }, From 6fbb2e33b2627f66d86e6d699fa741e5b1a60b65 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:25:59 +0700 Subject: [PATCH 12/19] feat: ignore sync delete data from POS data --- .../usecases/handlers/pos-transaction.handler.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts b/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts index 1df1f2b..fcddbd3 100644 --- a/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts +++ b/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts @@ -61,11 +61,12 @@ export class PosTransactionHandler implements IEventHandler { // jika delete if (data._deleted ?? false) { - await this.dataService.deleteById( - queryRunner, - TransactionModel, - data._id, - ); + // FIXME => This comment for ignore delete from POS data + // await this.dataService.deleteById( + // queryRunner, + // TransactionModel, + // data._id, + // ); } // jika update // create From ff0ef2878335b7f36ce5239f436ee42e1e51fdc6 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 10:40:44 +0700 Subject: [PATCH 13/19] feat: create report tenant --- .../tenant-report/configs/income-per-item-master.ts | 1 + .../configs/tenant-report/configs/income-per-item.ts | 9 --------- .../reports/shared/configs/tenant-report/index.ts | 2 -- 3 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts diff --git a/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts index 95ba9ae..c37b543 100644 --- a/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts +++ b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item-master.ts @@ -6,6 +6,7 @@ export default { ...IncomeReportPerItemMaster, group_name: REPORT_GROUP.tenant_report, unique_name: `${REPORT_GROUP.tenant_report}__income_per_item_master`, + label: 'Pendapatan', whereCondition(filterModel) { const queryFilter = []; const breakdown = filterModel.tr_item__breakdown_bundling; diff --git a/src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts b/src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts deleted file mode 100644 index dfed213..0000000 --- a/src/modules/reports/shared/configs/tenant-report/configs/income-per-item.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { REPORT_GROUP } from '../../../constant'; -import { ReportConfigEntity } from '../../../entities/report-config.entity'; -import IncomeReportPerItem from '../../transaction-report/configs/income-per-item'; - -export default { - ...IncomeReportPerItem, - group_name: REPORT_GROUP.tenant_report, - unique_name: `${REPORT_GROUP.tenant_report}__income_per_item`, -}; diff --git a/src/modules/reports/shared/configs/tenant-report/index.ts b/src/modules/reports/shared/configs/tenant-report/index.ts index a1dad0a..66e925a 100644 --- a/src/modules/reports/shared/configs/tenant-report/index.ts +++ b/src/modules/reports/shared/configs/tenant-report/index.ts @@ -1,8 +1,6 @@ import { ReportConfigEntity } from '../../entities/report-config.entity'; -import IncomeReportPerItem from './configs/income-per-item'; import IncomeReportPerItemMaster from './configs/income-per-item-master'; export const TenantReportConfig: ReportConfigEntity[] = [ - IncomeReportPerItem, IncomeReportPerItemMaster, ]; From 6c5019f814d8670646be2ec5f8292e49110b86dd Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 10:51:10 +0700 Subject: [PATCH 14/19] feat: adjustment dpp and total pajak di report icom per transaction --- .../configs/income-per-item-master.ts | 16 ++++++++++++++-- .../configs/income-per-item.ts | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts index 8b83568..c0a8d36 100644 --- a/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts +++ b/src/modules/reports/shared/configs/transaction-report/configs/income-per-item-master.ts @@ -127,8 +127,20 @@ export default { type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, - // TODO => tambahkan total dpp per item - // TODO => tambahkan total tax + { + column: 'tr_item__payment_total_dpp', + query: 'tr_item.payment_total_dpp', + label: 'DPP', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'tr_item__payment_total_tax', + query: 'tr_item.payment_total_tax', + label: 'Total Pajak', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, { column: 'tr_item__total_price', query: 'tr_item.total_price', 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 4f43749..0889a41 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 @@ -112,8 +112,20 @@ export default { type: DATA_TYPE.MEASURE, format: DATA_FORMAT.CURRENCY, }, - // TODO => tambahkan total dpp per item - // TODO => tambahkan total tax + { + column: 'tr_item__payment_total_dpp', + query: 'tr_item.payment_total_dpp', + label: 'DPP', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, + { + column: 'tr_item__payment_total_tax', + query: 'tr_item.payment_total_tax', + label: 'Total Pajak', + type: DATA_TYPE.MEASURE, + format: DATA_FORMAT.CURRENCY, + }, { column: 'tr_item__total_price', query: 'tr_item.total_price', From f7198010d37b4babac68ec39e7b5a67026f5eb1c Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 10:57:25 +0700 Subject: [PATCH 15/19] feat: rename label button email template midtrans --- assets/email-template/redesign/invoice-midtrans.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/email-template/redesign/invoice-midtrans.html b/assets/email-template/redesign/invoice-midtrans.html index 98c250d..2354e12 100644 --- a/assets/email-template/redesign/invoice-midtrans.html +++ b/assets/email-template/redesign/invoice-midtrans.html @@ -1602,7 +1602,7 @@ mso-line-height-rule: exactly; mso-text-raise: 2px; " - >Pay HereClick Here to Pay From 07d1cc78e26b766ae172d11212e3c9a6d027da6a Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:05:36 +0700 Subject: [PATCH 16/19] feat: penyesuaian error validasi create items --- .../item-related/item/infrastructure/dto/item.dto.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/item-related/item/infrastructure/dto/item.dto.ts b/src/modules/item-related/item/infrastructure/dto/item.dto.ts index dfdd8dd..8ca6b9b 100644 --- a/src/modules/item-related/item/infrastructure/dto/item.dto.ts +++ b/src/modules/item-related/item/infrastructure/dto/item.dto.ts @@ -134,7 +134,15 @@ export class ItemDto extends BaseStatusDto implements ItemEntity { }, ], }) - @IsArray() + @IsArray({ + message: (body) => { + const value = body.value; + if (!value || value?.length === 0) { + return 'Product bundling tidak boleh kosong.'; + } + return 'Product bundling tidak sesuai.'; + }, + }) @ValidateIf((body) => body.item_type.toLowerCase() == ItemType.BUNDLING) bundling_items: ItemEntity[]; } From 9709c4719b1636c239ecb4c4c20f91d330a2eb62 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:38:16 +0700 Subject: [PATCH 17/19] feat: add column pos name --- .../1726033041774-add-pos-name-column.ts | 21 +++++++++++++++++++ .../log/data/models/pos-log.model.ts | 3 +++ .../log/domain/entities/pos-log.entity.ts | 1 + .../log/domain/handlers/pos-log.handler.ts | 1 + .../managers/index-reconciliation.manager.ts | 14 +++++++++++-- .../managers/recap-reconciliation.manager.ts | 1 + .../data/models/transaction.model.ts | 3 +++ .../domain/entities/transaction.entity.ts | 1 + .../managers/detail-transaction.manager.ts | 1 + .../helpers/mapping-transaction.helper.ts | 1 + .../managers/index-transaction.manager.ts | 1 + 11 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 src/database/migrations/1726033041774-add-pos-name-column.ts diff --git a/src/database/migrations/1726033041774-add-pos-name-column.ts b/src/database/migrations/1726033041774-add-pos-name-column.ts new file mode 100644 index 0000000..a557191 --- /dev/null +++ b/src/database/migrations/1726033041774-add-pos-name-column.ts @@ -0,0 +1,21 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddPosNameColumn1726033041774 implements MigrationInterface { + name = 'AddPosNameColumn1726033041774'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "transactions" ADD "creator_counter_name" character varying`, + ); + await queryRunner.query( + `ALTER TABLE "logs_pos" ADD "pos_name" character varying`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "logs_pos" DROP COLUMN "pos_name"`); + await queryRunner.query( + `ALTER TABLE "transactions" DROP COLUMN "creator_counter_name"`, + ); + } +} diff --git a/src/modules/configuration/log/data/models/pos-log.model.ts b/src/modules/configuration/log/data/models/pos-log.model.ts index fd8631f..2d09858 100644 --- a/src/modules/configuration/log/data/models/pos-log.model.ts +++ b/src/modules/configuration/log/data/models/pos-log.model.ts @@ -14,6 +14,9 @@ export class PosLogModel @Column('bigint', { name: 'pos_number', nullable: true }) pos_number: number; + @Column('varchar', { name: 'pos_name', nullable: true }) + pos_name: string; + @Column('decimal', { name: 'total_balance', nullable: true }) total_balance: number; diff --git a/src/modules/configuration/log/domain/entities/pos-log.entity.ts b/src/modules/configuration/log/domain/entities/pos-log.entity.ts index f29f780..360e071 100644 --- a/src/modules/configuration/log/domain/entities/pos-log.entity.ts +++ b/src/modules/configuration/log/domain/entities/pos-log.entity.ts @@ -3,6 +3,7 @@ import { BaseCoreEntity } from 'src/core/modules/domain/entities/base-core.entit export interface PosLogEntity extends BaseCoreEntity { type: PosLogType; pos_number: number; + pos_name: string; total_balance: number; created_at: number; creator_name: string; diff --git a/src/modules/configuration/log/domain/handlers/pos-log.handler.ts b/src/modules/configuration/log/domain/handlers/pos-log.handler.ts index 192247f..db7c944 100644 --- a/src/modules/configuration/log/domain/handlers/pos-log.handler.ts +++ b/src/modules/configuration/log/domain/handlers/pos-log.handler.ts @@ -26,6 +26,7 @@ export class RecordPosLogHandler implements IEventHandler { type: PosLogType[data.type], total_balance: data.withdrawal_cash ?? data.opening_cash_balance, pos_number: data.pos_number, + pos_name: data.pos_name, creator_id: data.pos_admin?.id, creator_name: data.pos_admin?.name ?? data.pos_admin?.username, drawn_by_id: data.withdraw_user?.id, diff --git a/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts b/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts index 062c49f..a3d7a0b 100644 --- a/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts +++ b/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts @@ -47,6 +47,7 @@ export class IndexReconciliationManager extends BaseIndexManager `${this.tableName}.status`, `${this.tableName}.invoice_code`, `${this.tableName}.creator_counter_no`, + `${this.tableName}.creator_counter_name`, `${this.tableName}.booking_date`, `${this.tableName}.no_of_group`, `${this.tableName}.type`, From d708ef9eee7d3239ad0fdceda1833e284da7eee8 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:42:09 +0700 Subject: [PATCH 18/19] feat: add column pos name --- .../domain/usecases/managers/index-reconciliation.manager.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts b/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts index a3d7a0b..6b823c5 100644 --- a/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts +++ b/src/modules/transaction/reconciliation/domain/usecases/managers/index-reconciliation.manager.ts @@ -123,9 +123,9 @@ export class IndexReconciliationManager extends BaseIndexManager Date: Wed, 11 Sep 2024 14:56:55 +0700 Subject: [PATCH 19/19] feat: add enum queue admin --- .../1726041175749-add-flag-role-queue.ts | 43 +++++++++++++++++++ src/modules/user-related/user/constants.ts | 1 + 2 files changed, 44 insertions(+) create mode 100644 src/database/migrations/1726041175749-add-flag-role-queue.ts diff --git a/src/database/migrations/1726041175749-add-flag-role-queue.ts b/src/database/migrations/1726041175749-add-flag-role-queue.ts new file mode 100644 index 0000000..7a22ad0 --- /dev/null +++ b/src/database/migrations/1726041175749-add-flag-role-queue.ts @@ -0,0 +1,43 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddFlagRoleQueue1726041175749 implements MigrationInterface { + name = 'AddFlagRoleQueue1726041175749'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TYPE "public"."users_role_enum" RENAME TO "users_role_enum_old"`, + ); + await queryRunner.query( + `CREATE TYPE "public"."users_role_enum" AS ENUM('superadmin', 'staff', 'tenant', 'queue_admin')`, + ); + await queryRunner.query( + `ALTER TABLE "users" ALTER COLUMN "role" DROP DEFAULT`, + ); + await queryRunner.query( + `ALTER TABLE "users" ALTER COLUMN "role" TYPE "public"."users_role_enum" USING "role"::"text"::"public"."users_role_enum"`, + ); + await queryRunner.query( + `ALTER TABLE "users" ALTER COLUMN "role" SET DEFAULT 'staff'`, + ); + await queryRunner.query(`DROP TYPE "public"."users_role_enum_old"`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TYPE "public"."users_role_enum_old" AS ENUM('superadmin', 'staff', 'tenant')`, + ); + await queryRunner.query( + `ALTER TABLE "users" ALTER COLUMN "role" DROP DEFAULT`, + ); + await queryRunner.query( + `ALTER TABLE "users" ALTER COLUMN "role" TYPE "public"."users_role_enum_old" USING "role"::"text"::"public"."users_role_enum_old"`, + ); + await queryRunner.query( + `ALTER TABLE "users" ALTER COLUMN "role" SET DEFAULT 'staff'`, + ); + await queryRunner.query(`DROP TYPE "public"."users_role_enum"`); + await queryRunner.query( + `ALTER TYPE "public"."users_role_enum_old" RENAME TO "users_role_enum"`, + ); + } +} diff --git a/src/modules/user-related/user/constants.ts b/src/modules/user-related/user/constants.ts index 251f468..ea5b4a4 100644 --- a/src/modules/user-related/user/constants.ts +++ b/src/modules/user-related/user/constants.ts @@ -2,4 +2,5 @@ export enum UserRole { SUPERADMIN = 'superadmin', STAFF = 'staff', TENANT = 'tenant', + QUEUE_ADMIN = 'queue_admin', }