Merge pull request 'fix/bug-firman' (#64) from fix/bug-firman into development
continuous-integration/drone/tag Build is passing Details

Reviewed-on: #64
pull/65/head devel_20.1.27
firmanr 2024-08-12 03:52:05 +00:00
commit ebcc5515e5
4 changed files with 190 additions and 84 deletions

View File

@ -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 [];
},
};

View File

@ -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: [],
};

View File

@ -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: [],
};

View File

@ -3,25 +3,23 @@ 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';
import TimePerRideReport from './configs/time-per-ride';
import BookingReport from './configs/booking';
import RefundsReport from './configs/refunds';
import CashierLogReport from './configs/cashier-log';
import CashWithdrawalsReport from './configs/cash-withdrawals';
import ReconciliationReport from './configs/reconciliation';
export const TransactionReportConfig: ReportConfigEntity[] = [
IncomeReport,
IncomeReportPerItem,
GivingDiscount,
// RevenuePerItemReport,
// SalesQtyPerItemReport,
// VisitorsPerRideReport,
// TimePerRideReport,
BookingReport,
RefundsReport,
CashierLogReport,
CashWithdrawalsReport,
ReconciliationReport,
];