feat(SPG-268): report pemberian diskon
parent
a319b64abe
commit
bc8476a56e
|
@ -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 <ReportConfigEntity>{
|
||||
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,
|
||||
},
|
||||
],
|
||||
};
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue