Index: openacs-4/packages/invoices/lib/projects-billable.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/invoices/lib/projects-billable.xql,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/invoices/lib/projects-billable.xql 2 Apr 2006 22:08:02 -0000 1.8
+++ openacs-4/packages/invoices/lib/projects-billable.xql 2 May 2006 12:07:11 -0000 1.9
@@ -90,4 +90,136 @@
+
+
+ select
+ sub.project_id,
+ sub.title,
+ sub.description,
+ sub.amount_open,
+ sub.creation_date,
+ total.count_total,
+ billed.count_billed,
+ sub.name,
+ sub.recipient_id,
+ sub.customer_id as org_id
+ from (
+ select
+ oi.item_id as offer_id,
+ pi.item_id as project_id,
+ pr.title,
+ pr.description,
+ o.creation_date,
+ sum(ofi.item_units * ofi.price_per_unit * (1-(ofi.rebate/100))) as amount_open,
+ p.customer_id,
+ p.recipient_id,
+ oz.name
+ from
+ cr_items pi,
+ cr_revisions pr,
+ pm_projects p,
+ acs_objects o,
+ acs_data_links r,
+ iv_offer_items ofi,
+ cr_items oi,
+ organizations oz
+ where
+ pi.latest_revision = pr.revision_id
+ and p.project_id = pr.revision_id
+ and o.object_id = p.project_id
+ and r.object_id_one = pi.item_id
+ and r.object_id_two = oi.item_id
+ and p.status_id = :p_closed_id
+ and p.invoice_p = true
+ and ofi.offer_id = oi.latest_revision
+ and p.customer_id = oz.organization_id
+ group by
+ oi.item_id, pi.item_id, pr.title, pr.description, o.creation_date, p.customer_id, oz.name, p.recipient_id
+ ) sub,
+ (
+ select
+ count(*) as count_total, oi.item_id
+ from
+ cr_items oi, iv_offer_items ofi
+ where
+ ofi.offer_id = oi.latest_revision
+ group by
+ oi.item_id
+ ) total,
+ (
+ select
+ count(ci.item_id) as count_billed, oi.item_id
+ from
+ cr_items oi, iv_offer_items ofi
+ left outer join iv_invoice_items ii
+ on (ii.offer_item_id = ofi.offer_item_id)
+ left outer join iv_invoices i
+ on (ii.invoice_id = i.invoice_id and i.cancelled_p = 'f')
+ left outer join cr_items ci
+ on (ci.latest_revision = i.invoice_id)
+ where
+ ofi.offer_id = oi.latest_revision
+ group by
+ oi.item_id
+ ) billed
+ where
+ total.item_id = sub.offer_id
+ and billed.item_id = sub.offer_id
+ [template::list::filter_where_clauses -and -name projects]
+ [template::list::page_where_clause -and -name projects -key sub.project_id]
+ [template::list::orderby_clause -name projects -orderby]
+
+
+
+
+
+ select
+ sub.project_id
+ from (
+ select
+ pi.item_id as project_id,
+ pr.title,
+ pr.description,
+ o.creation_date,
+ sum(ofi.item_units * ofi.price_per_unit * (1-(ofi.rebate/100))) as amount_open,
+ p.customer_id,
+ p.recipient_id,
+ oz.name
+ from
+ cr_items pi,
+ cr_revisions pr,
+ pm_projects p,
+ acs_objects o,
+ acs_data_links r,
+ iv_offer_items ofi,
+ acs_objects oo,
+ cr_items oi,
+ organizations oz
+ where
+ pi.latest_revision = pr.revision_id
+ and p.project_id = pr.revision_id
+ and o.object_id = p.project_id
+ and r.object_id_one = pi.item_id
+ and r.object_id_two = oi.item_id
+ and p.status_id = :p_closed_id
+ and p.invoice_p = true
+ and ofi.offer_id = oi.latest_revision
+ and oo.object_id = oi.item_id
+ and oo.package_id = :package_id
+ and p.customer_id = oz.organization_id
+ and not exists (select 1
+ from iv_invoice_items ii, iv_invoices i, cr_items ci
+ where ii.offer_item_id = ofi.offer_item_id
+ and i.invoice_id = ii.invoice_id
+ and ci.latest_revision = i.invoice_id
+ and i.cancelled_p = 'f')
+ group by
+ pi.item_id, pr.title, pr.description, o.creation_date, p.customer_id, oz.name, p.recipient_id
+ ) sub
+ where 1=1
+ [template::list::filter_where_clauses -and -name projects]
+ [template::list::orderby_clause -name projects -orderby]
+
+
+