107 lines
4.2 KiB
SQL
107 lines
4.2 KiB
SQL
CREATE OR REPLACE VIEW public.tms_v_terminal_report
|
|
AS SELECT tt.sn,
|
|
tt.imei,
|
|
tte.terminal_id,
|
|
tte.merchant_id,
|
|
tte.merchant_name1,
|
|
tte.merchant_name2,
|
|
tte.merchant_name3,
|
|
tte.feature_sale,
|
|
tte.feature_sale_tip,
|
|
tte.feature_sale_redemption,
|
|
tte.feature_card_verification,
|
|
tte.feature_sale_completion,
|
|
tte.feature_installment,
|
|
tte.feature_sale_fare_non_fare,
|
|
tte.feature_manual_key_in,
|
|
tte.feature_qris,
|
|
tte.feature_contactless,
|
|
tte.random_pin_keypad,
|
|
tte.beep_pin_keypad,
|
|
tte.auto_logon,
|
|
tte.next_logon,
|
|
tte.installment1_options,
|
|
tte.installment2_options,
|
|
tte.installment3_options,
|
|
CASE
|
|
WHEN tt.heartbeat_status = 3 THEN 'DISCONNECTED'::text
|
|
WHEN tt.heartbeat_status = 2 THEN 'OFFLINE'::text
|
|
WHEN tt.heartbeat_status = 1 THEN 'ONLINE'::text
|
|
ELSE 'DISCONNECTED'::text
|
|
END AS state,
|
|
tt.app_version,
|
|
tt.launcher_version,
|
|
tt.vfs_version,
|
|
tt.vfss_version,
|
|
tt.update_ts,
|
|
tt.last_diagnostic_time,
|
|
tt.last_heartbeat_time,
|
|
tt.latitude,
|
|
tt.longitude,
|
|
tt.cell_name,
|
|
tt.cell_type,
|
|
tt.cell_strength,
|
|
tt.wifi_name,
|
|
tt.wifi_strength,
|
|
tte.push_logon,
|
|
tte.host_report,
|
|
tte.host_logging,
|
|
diag.device_info_ext::json ->> 'romVer'::text AS rom_version,
|
|
diag.device_info_ext::json ->> 'SPVer'::text AS sp_version,
|
|
diag.installed_apps_string,
|
|
diag.sam_available,
|
|
tte.feature_sale_nfc,
|
|
tte.feature_refund_nfc,
|
|
tte.feature_sale_with_bripoin,
|
|
tte.feature_release_card_ver,
|
|
tte.feature_void,
|
|
tte.feature_settlement,
|
|
tte.feature_reprint,
|
|
tte.feature_report,
|
|
tte.feature_qris_generate,
|
|
tte.feature_qris_pay,
|
|
tte.feature_qris_refund,
|
|
tte.feature_qris_report,
|
|
tte.feature_brizzi_info,
|
|
tte.feature_brizzi_info_deposit,
|
|
tte.feature_brizzi_update_deposit,
|
|
tte.feature_brizzi_topup,
|
|
tte.feature_brizzi_topup_deposit,
|
|
tte.feature_brizzi_sale,
|
|
tte.feature_brizzi_settlement,
|
|
tte.feature_brizzi_void,
|
|
tte.feature_brizzi_init,
|
|
tte.feature_brizzi_card_info,
|
|
tte.feature_brizzi_log,
|
|
tte.feature_brizzi_reprint,
|
|
tte.feature_brizzi_report,
|
|
tte.feature_re_eng_qris,
|
|
tte.feature_contactless_qris_tap,
|
|
diag.device_info_ext::json ->> 'firmwareVer'::text AS firmware_version,
|
|
diag.device_info_ext::json ->> 'hardwareVer'::text AS hardware_version,
|
|
diag.device_info_ext::json ->> 'androidOsVer'::text AS android_os_version,
|
|
diag.device_info_ext::json ->> 'deviceModel'::text AS device_model,
|
|
diag.device_info_ext::json ->> 'VFSerivceVer'::text AS vf_service_version,
|
|
app_versions.ecr_version,
|
|
app_versions.utms_version,
|
|
app_versions.vf_service_app_version,
|
|
app_versions.vf_system_service_version,
|
|
app_versions.bit_sdk_version,
|
|
app_versions.fms_bri_version
|
|
FROM tms_terminal tt
|
|
JOIN tms_merchant tm ON tm.id = tt.merchant_id
|
|
JOIN tms_device_profile tdp ON tdp.id = tt.profile_id
|
|
JOIN tms_terminal_link ttl ON ttl.terminal_id = tt.id
|
|
JOIN tmsext_terminal_ext tte ON ttl.terminal_ext_id = tte.id AND tte.delete_ts IS NULL
|
|
LEFT JOIN tms_diagnostic_info diag ON tt.last_diagnostic_id = diag.id AND diag.create_ts <= now()
|
|
LEFT JOIN LATERAL (
|
|
SELECT max(app_item ->> 'version'::text) FILTER (WHERE app_item ->> 'package_name'::text = 'com.vfi.id.ecr') AS ecr_version,
|
|
max(app_item ->> 'version'::text) FILTER (WHERE app_item ->> 'package_name'::text = 'com.unified.launcher') AS utms_version,
|
|
max(app_item ->> 'version'::text) FILTER (WHERE app_item ->> 'package_name'::text = 'com.vfi.smartpos.deviceservice') AS vf_service_app_version,
|
|
max(app_item ->> 'version'::text) FILTER (WHERE app_item ->> 'package_name'::text = 'com.vfi.smartpos.system_service') AS vf_system_service_version,
|
|
max(app_item ->> 'version'::text) FILTER (WHERE app_item ->> 'package_name'::text = 'id.bitcorp.middlewareservice') AS bit_sdk_version,
|
|
max(app_item ->> 'version'::text) FILTER (WHERE app_item ->> 'package_name'::text = 'com.briit.brimobile') AS fms_bri_version
|
|
FROM json_array_elements(COALESCE(NULLIF(diag.installed_apps_string, ''), '[]')::json) app_item
|
|
) app_versions ON true
|
|
WHERE tt.delete_ts IS NULL;
|