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, ]; 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 99e1a3e..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 @@ -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, }, @@ -173,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 69de3a5..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 @@ -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', @@ -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, @@ -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, }, { @@ -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', @@ -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, }, @@ -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, @@ -303,11 +303,11 @@ 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: '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..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 @@ -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', @@ -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, @@ -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, }, { @@ -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', @@ -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, }, @@ -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, @@ -262,11 +262,11 @@ 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: '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..5fc0a77 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', @@ -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, @@ -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', @@ -133,21 +126,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: 'Tanggal Pengembalian', - type: DATA_TYPE.DIMENSION, + label: 'Tgl. Pengembalian', + type: DATA_TYPE.MEASURE, format: DATA_FORMAT.DATE_TIMESTAMP, date_format: 'DD/MM/YYYY', }, @@ -169,14 +162,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, }, { @@ -252,7 +245,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, @@ -291,11 +284,11 @@ 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: '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/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`,