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 IncomeReport from './configs/income';
|
||||||
import IncomeReportPerItem from './configs/income-per-item';
|
import IncomeReportPerItem from './configs/income-per-item';
|
||||||
|
import GivingDiscount from './configs/giving-discounts';
|
||||||
import RevenuePerItemReport from './configs/revenue-per-item';
|
import RevenuePerItemReport from './configs/revenue-per-item';
|
||||||
import SalesQtyPerItemReport from './configs/sales-qty-per-item';
|
import SalesQtyPerItemReport from './configs/sales-qty-per-item';
|
||||||
import VisitorsPerRideReport from './configs/visitors-per-ride';
|
import VisitorsPerRideReport from './configs/visitors-per-ride';
|
||||||
|
@ -14,6 +15,7 @@ import CashWithdrawalsReport from './configs/cash-withdrawals';
|
||||||
export const TransactionReportConfig: ReportConfigEntity[] = [
|
export const TransactionReportConfig: ReportConfigEntity[] = [
|
||||||
IncomeReport,
|
IncomeReport,
|
||||||
IncomeReportPerItem,
|
IncomeReportPerItem,
|
||||||
|
GivingDiscount,
|
||||||
// RevenuePerItemReport,
|
// RevenuePerItemReport,
|
||||||
// SalesQtyPerItemReport,
|
// SalesQtyPerItemReport,
|
||||||
// VisitorsPerRideReport,
|
// VisitorsPerRideReport,
|
||||||
|
|
Loading…
Reference in New Issue