77c43bc9c427845b8c0d711d5b1fae5e58090bd5
[xtuple] / foundation-database / public / tables / metasql / apOpenItems-detail.mql
1 -- Group: apOpenItems
2 -- Name:  detail
3 -- Notes: 
4 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
5 -- See www.xtuple.com/CPAL for the full text of the software license.
6
7 SELECT apopen_id, apopen_ponumber, apopen_docnumber,
8                     CASE WHEN (apopen_doctype='C') THEN <? value("creditMemo") ?>
9                          WHEN (apopen_doctype='D') THEN <? value("debitMemo") ?>
10                          WHEN (apopen_doctype='V') THEN <? value("voucher") ?>
11                          ELSE <? value("other") ?>
12                     END AS f_doctype,
13                     vend_number, vend_name,
14                     apopen_invcnumber AS invoicenumber,
15                     apopen_docdate, apopen_duedate, apopen_amount, apopen_status, 
16 <? if exists("isReport") ?>
17                     formatDate(apopen_docdate) AS f_docdate, 
18                     formatDate(apopen_duedate) AS f_duedate, 
19                     formatMoney(apopen_amount) AS f_amount,
20                     formatMoney(apopen_paid - COALESCE(SUM(apapply_target_paid),0)) AS f_paid,
21                     formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) * 
22                     CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
23                     END) AS f_balance,
24                     formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) 
25                     / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
26                          END)) AS f_base_balance,
27 <? endif ?>
28                     apopen_paid - COALESCE(SUM(apapply_target_paid),0) AS paid,
29                     (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) * 
30                     CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
31                     END AS balance,
32                     currConcat(apopen_curr_id) AS currAbbr,
33                     (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) 
34                     / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
35                          END) AS base_balance,
36                     'curr' AS apopen_amount_xtnumericrole,
37                     'curr' AS paid_xtnumericrole,
38                     'curr' AS balance_xtnumericrole,
39                     'curr' AS base_balance_xtnumericrole,
40                     0 AS base_balance_xttotalrole 
41              FROM apopen 
42                JOIN vendinfo ON (vend_id=apopen_vend_id)
43                JOIN vendtype ON (vendtype_id=vend_vendtype_id)
44                LEFT OUTER JOIN apapply ON (((apopen_id=apapply_target_apopen_id) 
45                                        OR (apopen_id=apapply_source_apopen_id)) 
46                                        AND (apapply_postdate > <? value("asofDate") ?>)) 
47               WHERE ( (COALESCE(apopen_closedate,date <? value("asofDate") ?> + integer '1')><? value("asofDate") ?>) 
48                 AND   (CASE WHEN (<? value("useDocDate") ?>) THEN apopen_docdate ELSE apopen_distdate END<=<? value("asofDate") ?>)
49 <? if exists("vend_id") ?>
50                 AND   (apopen_vend_id=<? value("vend_id") ?>)
51 <? endif ?>
52 <? if exists("vendtype_id") ?>
53                 AND   (vendtype_id=<? value("vendtype_id") ?>)
54 <? endif ?>
55 <? if exists("vendtype_pattern") ?>
56                 AND   (vendtype_code~<? value("vendtype_pattern") ?>)
57 <? endif ?>
58                 AND   (apopen_duedate BETWEEN <? value("startDate") ?> AND <? value("endDate") ?>) ) 
59               GROUP BY apopen_id, apopen_ponumber, apopen_docnumber,apopen_doctype, apopen_invcnumber, apopen_docdate, 
60                 apopen_duedate, apopen_docdate, apopen_amount, apopen_paid, apopen_curr_id, apopen_curr_rate,
61                 apopen.apopen_status, vend_number, vend_name
62               ORDER BY apopen_docdate;