fix/bug-firman #64
|
@ -0,0 +1,188 @@
|
||||||
|
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}__reconciliation`,
|
||||||
|
label: 'Rekonsiliasi',
|
||||||
|
table_schema: `transactions main
|
||||||
|
LEFT JOIN payment_methods payment ON payment.id::text = main.payment_type_method_id::text`,
|
||||||
|
main_table_alias: 'main',
|
||||||
|
defaultOrderBy: [],
|
||||||
|
lowLevelOrderBy: [],
|
||||||
|
filter_period_config: {
|
||||||
|
hidden: true,
|
||||||
|
},
|
||||||
|
column_configs: [
|
||||||
|
{
|
||||||
|
column: 'main__reconciliation_status',
|
||||||
|
query: 'main.reconciliation_status',
|
||||||
|
label: 'Status',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.STATUS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__type',
|
||||||
|
query: 'main.type',
|
||||||
|
label: 'Sumber',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__settlement_date',
|
||||||
|
query: 'main.settlement_date',
|
||||||
|
label: 'Tgl. Pendapatan',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.DATE_TIMESTAMP,
|
||||||
|
date_format: 'DD/MM/YYYY',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__reconciliation_confirm_date',
|
||||||
|
query: 'main.reconciliation_confirm_date',
|
||||||
|
label: 'Tgl. Konfirmasi',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.DATE_TIMESTAMP,
|
||||||
|
date_format: 'DD/MM/YYYY',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__payment_code_reference',
|
||||||
|
query: 'main.payment_code_reference',
|
||||||
|
label: 'Referensi',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__payment_type',
|
||||||
|
query: 'main.payment_type',
|
||||||
|
label: 'Metode Pembayaran',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__payment_type_method_name',
|
||||||
|
query: 'main.payment_type_method_name',
|
||||||
|
label: 'Bank/Issuer',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'payment__account_number',
|
||||||
|
query: 'payment.account_number',
|
||||||
|
label: 'Account No.',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__payment_total',
|
||||||
|
query: 'main.payment_total',
|
||||||
|
label: 'Total',
|
||||||
|
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: 'cashier',
|
||||||
|
query: `CASE WHEN main.type = 'counter' THEN main.creator_name END`,
|
||||||
|
label: 'Kasir',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
column: 'main__reconciliation_confirm_by',
|
||||||
|
query: 'main.reconciliation_confirm_by',
|
||||||
|
label: 'Dikonfirmasi Oleh',
|
||||||
|
type: DATA_TYPE.DIMENSION,
|
||||||
|
format: DATA_FORMAT.TEXT,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
filter_configs: [
|
||||||
|
{
|
||||||
|
filed_label: 'Status',
|
||||||
|
filter_column: 'main__reconciliation_status',
|
||||||
|
field_type: FILTER_FIELD_TYPE.select,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_IN_MEMBER,
|
||||||
|
select_custom_options: [
|
||||||
|
STATUS.PENDING,
|
||||||
|
STATUS.CONFIRMED,
|
||||||
|
STATUS.REJECTED,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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: 'Tgl. Pendapatan',
|
||||||
|
filter_column: 'main__settlement_date',
|
||||||
|
field_type: FILTER_FIELD_TYPE.date_range_picker,
|
||||||
|
filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Tgl. Konfirmasi',
|
||||||
|
filter_column: 'main__reconciliation_confirm_date',
|
||||||
|
field_type: FILTER_FIELD_TYPE.date_range_picker,
|
||||||
|
filter_type: FILTER_TYPE.DATE_IN_RANGE_TIMESTAMP,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Referensi',
|
||||||
|
filter_column: 'main__payment_code_reference',
|
||||||
|
field_type: FILTER_FIELD_TYPE.input_tag,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Metode Pembayaran',
|
||||||
|
filter_column: 'main__payment_type',
|
||||||
|
field_type: FILTER_FIELD_TYPE.input_tag,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Issuer',
|
||||||
|
filter_column: 'main__payment_type_method_name',
|
||||||
|
field_type: FILTER_FIELD_TYPE.input_tag,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Account No.',
|
||||||
|
filter_column: 'payment__account_number',
|
||||||
|
field_type: FILTER_FIELD_TYPE.input_tag,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Kasir',
|
||||||
|
filter_column: 'cashier',
|
||||||
|
field_type: FILTER_FIELD_TYPE.input_tag,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
filed_label: 'Dikonfirmasi Oleh',
|
||||||
|
filter_column: 'main__reconciliation_confirm_by',
|
||||||
|
field_type: FILTER_FIELD_TYPE.input_tag,
|
||||||
|
filter_type: FILTER_TYPE.TEXT_MULTIPLE_CONTAINS,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
whereCondition(filterModel) {
|
||||||
|
const statusFilter = filterModel?.main__reconciliation_status?.filter ?? [];
|
||||||
|
if (statusFilter.length === 0) {
|
||||||
|
return [`main.reconciliation_status NOT IN ('${STATUS.DRAFT}')`];
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
};
|
|
@ -1,40 +0,0 @@
|
||||||
import { DATA_FORMAT, DATA_TYPE, REPORT_GROUP } from '../../../constant';
|
|
||||||
import { ReportConfigEntity } from '../../../entities/report-config.entity';
|
|
||||||
|
|
||||||
export default <ReportConfigEntity>{
|
|
||||||
group_name: REPORT_GROUP.transaction_report,
|
|
||||||
unique_name: `${REPORT_GROUP.transaction_report}__revenue_per_item`,
|
|
||||||
label: 'Pendapatan per Item',
|
|
||||||
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: [],
|
|
||||||
};
|
|
|
@ -1,40 +0,0 @@
|
||||||
import { DATA_FORMAT, DATA_TYPE, REPORT_GROUP } from '../../../constant';
|
|
||||||
import { ReportConfigEntity } from '../../../entities/report-config.entity';
|
|
||||||
|
|
||||||
export default <ReportConfigEntity>{
|
|
||||||
group_name: REPORT_GROUP.transaction_report,
|
|
||||||
unique_name: `${REPORT_GROUP.transaction_report}__sales_qty_per_item`,
|
|
||||||
label: 'Qty Penjualan per Item',
|
|
||||||
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: [],
|
|
||||||
};
|
|
|
@ -3,25 +3,23 @@ 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 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';
|
import VisitorsPerRideReport from './configs/visitors-per-ride';
|
||||||
import TimePerRideReport from './configs/time-per-ride';
|
import TimePerRideReport from './configs/time-per-ride';
|
||||||
import BookingReport from './configs/booking';
|
import BookingReport from './configs/booking';
|
||||||
import RefundsReport from './configs/refunds';
|
import RefundsReport from './configs/refunds';
|
||||||
import CashierLogReport from './configs/cashier-log';
|
import CashierLogReport from './configs/cashier-log';
|
||||||
import CashWithdrawalsReport from './configs/cash-withdrawals';
|
import CashWithdrawalsReport from './configs/cash-withdrawals';
|
||||||
|
import ReconciliationReport from './configs/reconciliation';
|
||||||
|
|
||||||
export const TransactionReportConfig: ReportConfigEntity[] = [
|
export const TransactionReportConfig: ReportConfigEntity[] = [
|
||||||
IncomeReport,
|
IncomeReport,
|
||||||
IncomeReportPerItem,
|
IncomeReportPerItem,
|
||||||
GivingDiscount,
|
GivingDiscount,
|
||||||
// RevenuePerItemReport,
|
|
||||||
// SalesQtyPerItemReport,
|
|
||||||
// VisitorsPerRideReport,
|
// VisitorsPerRideReport,
|
||||||
// TimePerRideReport,
|
// TimePerRideReport,
|
||||||
BookingReport,
|
BookingReport,
|
||||||
RefundsReport,
|
RefundsReport,
|
||||||
CashierLogReport,
|
CashierLogReport,
|
||||||
CashWithdrawalsReport,
|
CashWithdrawalsReport,
|
||||||
|
ReconciliationReport,
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in New Issue