feat: create report demography
continuous-integration/drone/push Build is passing Details

pull/106/head
Firman Ramdhani 2024-10-04 10:38:12 +07:00
parent 49b98cd56c
commit 90ab3668b4
2 changed files with 113 additions and 0 deletions

View File

@ -0,0 +1,111 @@
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 <ReportConfigEntity>{
group_name: REPORT_GROUP.transaction_report,
unique_name: `${REPORT_GROUP.transaction_report}__demography`,
label: 'Demography',
table_schema: `transactions main
left join transaction_demographies demography on demography.transaction_id::uuid = main.id`,
main_table_alias: 'main',
whereDefaultConditions: [
{
column: 'main.status',
filter_type: FILTER_TYPE.TEXT_IN_MEMBER,
values: [STATUS.SETTLED],
},
{
column: 'main.is_recap_transaction',
filter_type: FILTER_TYPE.TEXT_EQUAL,
values: [false],
},
],
defaultOrderBy: [],
lowLevelOrderBy: [],
filter_period_config: {
hidden: true,
},
column_configs: [
{
column: 'main__date',
query: `CASE WHEN main.type ='counter' THEN to_char(main.payment_date, 'DD-MM-YYYY') ELSE to_char(main.booking_date, 'DD-MM-YYYY') END`,
label: 'Tanggal',
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__code',
query: `CASE WHEN main.invoice_code is not null THEN main.invoice_code ELSE main.payment_code END`,
label: 'Kode',
type: DATA_TYPE.DIMENSION,
format: DATA_FORMAT.TEXT,
},
{
column: 'demography__woman',
query: `demography.woman`,
label: 'Wanita',
type: DATA_TYPE.MEASURE,
format: DATA_FORMAT.NUMBER,
},
{
column: 'demography__man',
query: `demography.man`,
label: 'Pria',
type: DATA_TYPE.MEASURE,
format: DATA_FORMAT.NUMBER,
},
{
column: 'demography__teen',
query: `demography.teen`,
label: 'Remaja',
type: DATA_TYPE.MEASURE,
format: DATA_FORMAT.NUMBER,
},
{
column: 'demography__child',
query: `demography.child`,
label: 'Anak-anak',
type: DATA_TYPE.MEASURE,
format: DATA_FORMAT.NUMBER,
},
],
filter_configs: [
{
filed_label: 'Tanggal',
filter_column: 'main__date',
field_type: FILTER_FIELD_TYPE.date_range_picker,
filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP,
date_format: 'DD-MM-YYYY',
},
{
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',
filter_column: 'main__code',
field_type: FILTER_FIELD_TYPE.input_tag,
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
},
],
};

View File

@ -13,6 +13,7 @@ import CashierLogReport from './configs/cashier-log';
import CashWithdrawalsReport from './configs/cash-withdrawals';
import ReconciliationReport from './configs/reconciliation';
import TaxReport from './configs/tax';
import DemographyReport from './configs/demography';
export const TransactionReportConfig: ReportConfigEntity[] = [
IncomeReport,
@ -28,4 +29,5 @@ export const TransactionReportConfig: ReportConfigEntity[] = [
CashWithdrawalsReport,
ReconciliationReport,
TaxReport,
DemographyReport,
];