CREATE OR REPLACE VIEW ccc.ar_trans AS SELECT 'ar_inv'::text AS tran_type, a.row_id AS tran_row_id, a.tran_number, a.cust_row_id, a.tran_date, a.text, a.inv_net_cust + a.inv_tax_cust AS amount_cust, a.inv_net_local + a.inv_tax_local AS amount_local FROM ccc.ar_tran_inv a WHERE a.posted = true UNION ALL SELECT 'ar_crn'::text AS tran_type, a.row_id AS tran_row_id, a.tran_number, a.cust_row_id, a.tran_date, a.text, 0::numeric - (a.crn_net_cust + a.crn_tax_cust) AS amount_cust, 0::numeric - (a.crn_net_local + a.crn_tax_local) AS amount_local FROM ccc.ar_tran_crn a WHERE a.posted = true UNION ALL SELECT 'arec'::text AS tran_type, a.row_id AS tran_row_id, a.tran_number, a.cust_row_id, CASE WHEN a.tran_type::text = 'ar_rec'::text THEN y.tran_date WHEN a.tran_type::text = 'cb_rec'::text THEN w.tran_date ELSE NULL::date END AS tran_date, CASE WHEN a.tran_type::text = 'ar_rec'::text THEN y.text WHEN a.tran_type::text = 'cb_rec'::text THEN w.text ELSE NULL::character varying END AS text, 0::numeric - a.arec_cust AS amount_cust, round(0::numeric - round(a.arec_amount / CASE WHEN a.tran_type::text = 'ar_rec'::text THEN y.tran_exch_rate WHEN a.tran_type::text = 'cb_rec'::text THEN w.tran_exch_rate ELSE NULL::numeric END, u.scale), 2) AS amount_local FROM ccc.ar_rec_subtran a LEFT JOIN ccc.ar_tran_rec_det z ON z.row_id = a.tran_det_row_id LEFT JOIN ccc.ar_tran_rec y ON y.row_id = z.tran_row_id LEFT JOIN ccc.cb_tran_rec_det x ON x.row_id = a.tran_det_row_id LEFT JOIN ccc.cb_tran_rec w ON w.row_id = x.tran_row_id LEFT JOIN ccc.adm_params v ON v.row_id = 1 LEFT JOIN ccc.adm_currencies u ON u.row_id = v.local_curr_id WHERE CASE WHEN a.tran_type::text = 'ar_rec'::text THEN y.posted WHEN a.tran_type::text = 'cb_rec'::text THEN w.posted ELSE NULL::boolean END = true UNION ALL SELECT 'ar_disc'::text AS tran_type, a.row_id AS tran_row_id, a.tran_number, a.cust_row_id, a.tran_date, a.text, 0::numeric - (a.disc_net_cust + a.disc_tax_cust) AS amount_cust, 0::numeric - (a.disc_net_local + a.disc_tax_local) AS amount_local FROM ccc.ar_tran_disc a WHERE a.posted = true