Merge remote-tracking branch 'XTUPLE/4_4_x' into 4_4_x
authorgaryhgohoos <gary@xtuple.com>
Tue, 15 Apr 2014 15:50:02 +0000 (11:50 -0400)
committergaryhgohoos <gary@xtuple.com>
Tue, 15 Apr 2014 15:50:02 +0000 (11:50 -0400)
foundation-database/api/functions/insertsalesline.sql
foundation-database/api/views/physinvcount.sql
foundation-database/public/functions/copyitemsite.sql
foundation-database/public/functions/itemcost.sql
foundation-database/public/tables/metasql/apOpenItems-detail.mql
foundation-database/public/tables/metasql/apOpenItems-selectedpayments.mql
foundation-database/public/tables/metasql/apOpenItems-selectpayments.mql
foundation-database/public/tables/metasql/projects-detail_nohierarchy.mql

index 5ac4fa7..ea31d1c 100644 (file)
@@ -1,5 +1,5 @@
 CREATE OR REPLACE FUNCTION api.insertSalesLine(api.salesline) RETURNS boolean AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 DECLARE
   pNEW ALIAS FOR $1;
@@ -86,14 +86,14 @@ BEGIN
     0,
     pNEW.customer_pn,
     CASE
-      WHEN ((pNEW.create_order  AND (_r.item_type = 'M')) OR 
-           ((pNEW.create_order IS NULL) AND _r.itemsite_createwo)) THEN
+      WHEN ((pNEW.create_order  AND (_r.item_type = 'M')) OR
+           ((pNEW.create_order IS NULL) AND _r.itemsite_createwo) AND (NOT _r.itemsite_stocked)) THEN
         'W'
-      WHEN ((pNEW.create_order AND (_r.item_type = 'P')) OR 
-           ((pNEW.create_order IS NULL) AND _r.itemsite_createsopr)) THEN
+      WHEN ((pNEW.create_order AND (_r.item_type = 'P')) OR
+           ((pNEW.create_order IS NULL) AND _r.itemsite_createsopr) AND (NOT _r.itemsite_stocked)) THEN
         'R'
-      WHEN ((pNEW.create_order AND (_r.item_type = 'P') AND (_r.itemsite_createsopo)) OR 
-           ((pNEW.create_order IS NULL) AND _r.itemsite_createsopo)) THEN
+      WHEN ((pNEW.create_order AND (_r.item_type = 'P') AND (_r.itemsite_createsopo)) OR
+           ((pNEW.create_order IS NULL) AND _r.itemsite_createsopo) AND (NOT _r.itemsite_stocked)) THEN
         'P'
     END,
     getitemid(pNEW.substitute_for),
@@ -106,4 +106,4 @@ BEGIN
 
   RETURN TRUE;
 END;
-$$ LANGUAGE 'plpgsql';
+$$ LANGUAGE 'plpgsql';
\ No newline at end of file
index cad786f..1491bc8 100644 (file)
@@ -1,5 +1,5 @@
 CREATE OR REPLACE VIEW api.physinvcount
-AS 
+AS
   SELECT
     warehous_code AS site,
     item_number AS item_number,
@@ -17,7 +17,7 @@ GRANT ALL ON TABLE api.physinvcount TO xtrole;
 COMMENT ON VIEW api.physinvcount IS 'Physical Inventory Count Tag and Slip';
 
 CREATE OR REPLACE FUNCTION api.insertPhysInvCount(api.physinvcount) RETURNS boolean AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 DECLARE
   pNEW ALIAS FOR $1;
@@ -39,11 +39,11 @@ BEGIN
   SELECT item_id, item_type INTO _itemid, _type
   FROM item
   WHERE (item_number=UPPER(pNEW.item_number));
-  IF (NOT FOUND OR _type IN ('F', 'R', 'L','J')) THEN
+  IF (NOT FOUND OR _type IN ('F', 'R', 'L','J', 'K')) THEN
     SELECT item_id, item_type INTO _itemid, _type
     FROM item
     WHERE (item_upccode=pNEW.item_number);
-    IF (NOT FOUND OR _type IN ('F', 'R', 'L','J')) THEN
+    IF (NOT FOUND OR _type IN ('F', 'R', 'L','J', 'K')) THEN
       RAISE EXCEPTION 'Function insertPhysInvCount failed because Item % not found or invalid type', pNEW.item_number;
     END IF;
   END IF;
@@ -138,12 +138,12 @@ $$ LANGUAGE 'plpgsql';
 CREATE OR REPLACE RULE "_INSERT" AS
     ON INSERT TO api.physinvcount DO INSTEAD  SELECT api.insertphysinvcount(new.*) AS insertphysinvcount;
 
-CREATE OR REPLACE RULE "_UPDATE" AS 
+CREATE OR REPLACE RULE "_UPDATE" AS
     ON UPDATE TO api.physinvcount DO INSTEAD
 
   NOTHING;
-           
-CREATE OR REPLACE RULE "_DELETE" AS 
+
+CREATE OR REPLACE RULE "_DELETE" AS
     ON DELETE TO api.physinvcount DO INSTEAD
 
-  NOTHING;
+  NOTHING;
\ No newline at end of file
index f03a3c4..7a8e316 100644 (file)
@@ -1,6 +1,6 @@
 CREATE OR REPLACE FUNCTION copyItemSite(pitemsiteid INTEGER,
                                         pdestwhsid INTEGER) RETURNS INTEGER AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 
 BEGIN
@@ -14,13 +14,14 @@ $$ LANGUAGE 'plpgsql';
 CREATE OR REPLACE FUNCTION copyItemSite(pitemsiteid INTEGER,
                                         pdestwhsid INTEGER,
                                         pdestitemid INTEGER) RETURNS INTEGER AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 DECLARE
-  pitemsiteid  ALIAS FOR $1;
-  pdestwhsid   ALIAS FOR $2;
-  _destwhs     whsinfo%ROWTYPE;
-  _new         itemsite%ROWTYPE;
+  pitemsiteid ALIAS FOR $1;
+  pdestwhsid  ALIAS FOR $2;
+  _destwhs  whsinfo%ROWTYPE;
+  _new    itemsite%ROWTYPE;
+  _supplywarehousid INTEGER := NULL;
 
 BEGIN
   -- make a copy of the old itemsite
@@ -49,110 +50,139 @@ BEGIN
   FROM itemsite
   WHERE ((itemsite_item_id=COALESCE(pdestitemid, _new.itemsite_item_id))
     AND  (itemsite_warehous_id=pdestwhsid OR
-         (itemsite_warehous_id IS NULL AND pdestwhsid IS NULL)));
+    (itemsite_warehous_id IS NULL AND pdestwhsid IS NULL)));
   IF (FOUND) THEN
     RETURN _new.itemsite_id;
   END IF;
 
+  -- find supply itemsite
+  IF (_new.itemsite_supply_itemsite_id IS NOT NULL) THEN
+    SELECT itemsite_warehous_id INTO _supplywarehousid
+    FROM itemsite
+    WHERE (itemsite_id=_new.itemsite_supply_itemsite_id);
+    IF (FOUND) THEN
+      SELECT itemsite_id INTO _new.itemsite_supply_itemsite_id
+      FROM itemsite
+      WHERE (itemsite_warehous_id=_supplywarehousid)
+        AND (itemsite_item_id=pdestitemid);
+    END IF;
+  END IF;
+
   -- now override the things we know have to change
-  _new.itemsite_id             := NEXTVAL('itemsite_itemsite_id_seq');
-  _new.itemsite_warehous_id    := pdestwhsid;
-  _new.itemsite_qtyonhand      := 0;
-  _new.itemsite_value           := 0;
-  _new.itemsite_datelastcount  := NULL;
-  _new.itemsite_datelastused   := NULL;
-  _new.itemsite_nnqoh          := 0;
-  _new.itemsite_location_id    := -1;
+  _new.itemsite_id                   := NEXTVAL('itemsite_itemsite_id_seq');
+  _new.itemsite_warehous_id          := pdestwhsid;
+  _new.itemsite_qtyonhand            := 0;
+  _new.itemsite_value                := 0;
+  _new.itemsite_datelastcount        := NULL;
+  _new.itemsite_datelastused         := NULL;
+  _new.itemsite_nnqoh                := 0;
+  _new.itemsite_location_id          := -1;
+  _new.itemsite_recvlocation_id      := -1;
+  _new.itemsite_issuelocation_id     := -1;
+  _new.itemsite_location_dist        := FALSE;
+  _new.itemsite_recvlocation_dist    := FALSE;
+  _new.itemsite_issuelocation_dist   := FALSE;
 
   IF (_destwhs.warehous_transit) THEN
-    _new.itemsite_reorderlevel := 0;
-    _new.itemsite_ordertoqty   := 0;
-    _new.itemsite_soldranking  := NULL;
-    _new.itemsite_posupply     := FALSE;
-    _new.itemsite_wosupply     := FALSE;
-    _new.itemsite_loccntrl     := FALSE;
-    _new.itemsite_safetystock  := 0;
-    _new.itemsite_minordqty    := 0;
-    _new.itemsite_multordqty   := 0;
-    _new.itemsite_leadtime     := 0;
-    _new.itemsite_controlmethod        := 'R';
+    _new.itemsite_reorderlevel         := 0;
+    _new.itemsite_ordertoqty         := 0;
+    _new.itemsite_soldranking        := NULL;
+    _new.itemsite_posupply           := FALSE;
+    _new.itemsite_wosupply           := FALSE;
+    _new.itemsite_loccntrl           := FALSE;
+    _new.itemsite_safetystock        := 0;
+    _new.itemsite_minordqty          := 0;
+    _new.itemsite_multordqty         := 0;
+    _new.itemsite_leadtime           := 0;
+    _new.itemsite_controlmethod      := 'R';
     IF(_new.itemsite_costmethod='N') THEN
-      _new.itemsite_costmethod := 'S';
+      _new.itemsite_costmethod       := 'S';
     END IF;
-    _new.itemsite_active       := TRUE;
-    -- ? _new.itemsite_plancode_id     := -1;
-    -- ? _new.itemsite_costcat_id      := -1;
-    _new.itemsite_eventfence   := 1;
-    _new.itemsite_sold         := FALSE;
-    _new.itemsite_stocked      := FALSE;
-    _new.itemsite_location_id  := -1;
-    _new.itemsite_useparams    := FALSE;
-    _new.itemsite_useparamsmanual := FALSE;
-    _new.itemsite_createpr     := FALSE;
-    _new.itemsite_location     := NULL;
-    _new.itemsite_location_comments := NULL;
-    _new.itemsite_notes                := 'Transit Warehouse';
-    _new.itemsite_nnqoh                := 0;
-    _new.itemsite_createwo     := FALSE;
-    _new.itemsite_costcat_id   := _destwhs.warehous_costcat_id;
+    _new.itemsite_active             := TRUE;
+    -- ? _new.itemsite_plancode_id   := -1;
+    -- ? _new.itemsite_costcat_id    := -1;
+    _new.itemsite_eventfence         := 1;
+    _new.itemsite_sold               := FALSE;
+    _new.itemsite_stocked            := FALSE;
+    _new.itemsite_location_id        := -1;
+    _new.itemsite_useparams          := FALSE;
+    _new.itemsite_useparamsmanual    := FALSE;
+    _new.itemsite_createpr           := FALSE;
+    _new.itemsite_location           := NULL;
+    _new.itemsite_location_comments  := NULL;
+    _new.itemsite_notes              := 'Transit Warehouse';
+    _new.itemsite_nnqoh              := 0;
+    _new.itemsite_createwo           := FALSE;
+    _new.itemsite_costcat_id         := _destwhs.warehous_costcat_id;
+    _new.itemsite_supply_itemsite_id := NULL;
   END IF;
 
   INSERT INTO itemsite (
-    itemsite_id,                       itemsite_item_id,
-    itemsite_warehous_id,              itemsite_qtyonhand,
-    itemsite_costmethod,                itemsite_value,
-    itemsite_reorderlevel,             itemsite_ordertoqty,
-    itemsite_cyclecountfreq,           itemsite_datelastcount,
+    itemsite_id,                     itemsite_item_id,
+    itemsite_warehous_id,            itemsite_qtyonhand,
+    itemsite_costmethod,             itemsite_value,
+    itemsite_reorderlevel,           itemsite_ordertoqty,
+    itemsite_cyclecountfreq,         itemsite_datelastcount,
     itemsite_datelastused,
-    itemsite_posupply,                 itemsite_wosupply,
+    itemsite_posupply,               itemsite_wosupply,
     itemsite_loccntrl,
-    itemsite_safetystock,              itemsite_minordqty,
-    itemsite_multordqty,               itemsite_leadtime,
-    itemsite_abcclass,                 itemsite_issuemethod,
-    itemsite_controlmethod,            itemsite_active,
-    itemsite_plancode_id,              itemsite_costcat_id,
-    itemsite_eventfence,               itemsite_sold,
-    itemsite_stocked,                  itemsite_freeze,
+    itemsite_safetystock,            itemsite_minordqty,
+    itemsite_multordqty,             itemsite_leadtime,
+    itemsite_abcclass,               itemsite_issuemethod,
+    itemsite_controlmethod,          itemsite_active,
+    itemsite_plancode_id,            itemsite_costcat_id,
+    itemsite_eventfence,             itemsite_sold,
+    itemsite_stocked,                itemsite_freeze,
     itemsite_location_id,
-    itemsite_useparams,                        itemsite_useparamsmanual,
-    itemsite_soldranking,              itemsite_createpr,
-    itemsite_location,                 itemsite_location_comments,
-    itemsite_notes,                    itemsite_perishable,
-    itemsite_nnqoh,                    itemsite_autoabcclass,
-    itemsite_ordergroup,               itemsite_disallowblankwip,
-    itemsite_maxordqty,                        itemsite_mps_timefence,
-    itemsite_createwo,                 itemsite_warrpurc,
+    itemsite_useparams,              itemsite_useparamsmanual,
+    itemsite_soldranking,            itemsite_createpr,
+    itemsite_location,               itemsite_location_comments,
+    itemsite_notes,                  itemsite_perishable,
+    itemsite_nnqoh,                  itemsite_autoabcclass,
+    itemsite_ordergroup,             itemsite_disallowblankwip,
+    itemsite_maxordqty,              itemsite_mps_timefence,
+    itemsite_createwo,               itemsite_warrpurc,
     itemsite_autoreg,
-    itemsite_planning_type,             itemsite_supply_itemsite_id
+    itemsite_planning_type,          itemsite_supply_itemsite_id,
+    itemsite_createsopr,             itemsite_createsopo,
+    itemsite_dropship,
+    itemsite_recvlocation_id,        itemsite_issuelocation_id,
+    itemsite_location_dist,          itemsite_recvlocation_dist,
+    itemsite_issuelocation_dist
   ) VALUES (
-    _new.itemsite_id,                  COALESCE(pdestitemid, _new.itemsite_item_id),
-    _new.itemsite_warehous_id,         _new.itemsite_qtyonhand,
-    _new.itemsite_costmethod,           _new.itemsite_value,
-    _new.itemsite_reorderlevel,                _new.itemsite_ordertoqty,
-    _new.itemsite_cyclecountfreq,      _new.itemsite_datelastcount,
+    _new.itemsite_id,                COALESCE(pdestitemid, _new.itemsite_item_id),
+    _new.itemsite_warehous_id,         _new.itemsite_qtyonhand,
+    _new.itemsite_costmethod,        _new.itemsite_value,
+    _new.itemsite_reorderlevel,      _new.itemsite_ordertoqty,
+    _new.itemsite_cyclecountfreq,    _new.itemsite_datelastcount,
     _new.itemsite_datelastused,
-    _new.itemsite_posupply,            _new.itemsite_wosupply,
+    _new.itemsite_posupply,          _new.itemsite_wosupply,
     _new.itemsite_loccntrl,
-    _new.itemsite_safetystock,         _new.itemsite_minordqty,
-    _new.itemsite_multordqty,          _new.itemsite_leadtime,
-    _new.itemsite_abcclass,            _new.itemsite_issuemethod,
-    _new.itemsite_controlmethod,       _new.itemsite_active,
-    _new.itemsite_plancode_id,         _new.itemsite_costcat_id,
-    _new.itemsite_eventfence,          _new.itemsite_sold,
-    _new.itemsite_stocked,             _new.itemsite_freeze,
+    _new.itemsite_safetystock,         _new.itemsite_minordqty,
+    _new.itemsite_multordqty,        _new.itemsite_leadtime,
+    _new.itemsite_abcclass,          _new.itemsite_issuemethod,
+    _new.itemsite_controlmethod,     _new.itemsite_active,
+    _new.itemsite_plancode_id,         _new.itemsite_costcat_id,
+    _new.itemsite_eventfence,        _new.itemsite_sold,
+    _new.itemsite_stocked,           _new.itemsite_freeze,
     _new.itemsite_location_id,
-    _new.itemsite_useparams,           _new.itemsite_useparamsmanual,
-    _new.itemsite_soldranking,         _new.itemsite_createpr,
-    _new.itemsite_location,            _new.itemsite_location_comments,
-    _new.itemsite_notes,               _new.itemsite_perishable,
-    _new.itemsite_nnqoh,               _new.itemsite_autoabcclass,
-    _new.itemsite_ordergroup,          _new.itemsite_disallowblankwip,
-    _new.itemsite_maxordqty,           _new.itemsite_mps_timefence,
-    _new.itemsite_createwo,            _new.itemsite_warrpurc,
+    _new.itemsite_useparams,         _new.itemsite_useparamsmanual,
+    _new.itemsite_soldranking,         _new.itemsite_createpr,
+    _new.itemsite_location,          _new.itemsite_location_comments,
+    _new.itemsite_notes,             _new.itemsite_perishable,
+    _new.itemsite_nnqoh,             _new.itemsite_autoabcclass,
+    _new.itemsite_ordergroup,        _new.itemsite_disallowblankwip,
+    _new.itemsite_maxordqty,         _new.itemsite_mps_timefence,
+    _new.itemsite_createwo,          _new.itemsite_warrpurc,
     _new.itemsite_autoreg,
-    _new.itemsite_planning_type,        _new.itemsite_supply_itemsite_id
+    _new.itemsite_planning_type,     _new.itemsite_supply_itemsite_id,
+    _new.itemsite_createsopr,        _new.itemsite_createsopo,
+    _new.itemsite_dropship,
+    _new.itemsite_recvlocation_id,   _new.itemsite_issuelocation_id,
+    _new.itemsite_location_dist,     _new.itemsite_recvlocation_dist,
+    _new.itemsite_issuelocation_dist
     );
 
   RETURN _new.itemsite_id;
 END;
-$$ LANGUAGE 'plpgsql';
+$$ LANGUAGE 'plpgsql';
\ No newline at end of file
index 6625b7c..d9d43d6 100644 (file)
@@ -1,8 +1,34 @@
-CREATE OR REPLACE FUNCTION itemCost(INTEGER) RETURNS NUMERIC STABLE AS $$
--- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
+CREATE OR REPLACE FUNCTION itemCost(pItemid INTEGER,
+                                    pCustid INTEGER,
+                                    pShiptoid INTEGER,
+                                    pQty NUMERIC,
+                                    pQtyUOM INTEGER,
+                                    pPriceUOM INTEGER,
+                                    pCurrid INTEGER,
+                                    pEffective DATE,
+                                    pAsOf DATE,
+                                    pSiteid INTEGER) RETURNS NUMERIC STABLE AS $$
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
+-- See www.xtuple.com/CPAL for the full text of the software license.
+--
+-- Overload for future costing enhancements
+--
+DECLARE
+  _cost NUMERIC := 0.0;
+BEGIN
+  SELECT itemcost(itemsite_id) INTO _cost
+  FROM itemsite
+  WHERE (itemsite_item_id=pItemid)
+    AND (itemsite_warehous_id=pSiteid);
+
+  RETURN _cost;
+END;
+$$ LANGUAGE 'plpgsql';
+
+CREATE OR REPLACE FUNCTION itemCost(pItemsiteid INTEGER) RETURNS NUMERIC STABLE AS $$
+-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 DECLARE
-  pItemsiteid ALIAS FOR $1;
   _cost NUMERIC;
 BEGIN
   SELECT CASE WHEN (itemsite_costmethod='A' AND itemsite_qtyonhand != 0.0) THEN (itemsite_value / itemsite_qtyonhand)
@@ -15,4 +41,3 @@ BEGIN
   RETURN _cost;
 END;
 $$ LANGUAGE 'plpgsql';
-
index 77c43bc..bc95bce 100644 (file)
@@ -1,6 +1,6 @@
 -- Group: apOpenItems
 -- Name:  detail
--- Notes: 
+-- Notes:
 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 
@@ -10,41 +10,42 @@ SELECT apopen_id, apopen_ponumber, apopen_docnumber,
                          WHEN (apopen_doctype='V') THEN <? value("voucher") ?>
                          ELSE <? value("other") ?>
                     END AS f_doctype,
+                    CASE WHEN (apopen_doctype='C') THEN 'emphasis' END AS f_doctype_qtforegroundrole,
                     vend_number, vend_name,
                     apopen_invcnumber AS invoicenumber,
-                    apopen_docdate, apopen_duedate, apopen_amount, apopen_status, 
+                    apopen_docdate, apopen_duedate, apopen_amount, apopen_status,
 <? if exists("isReport") ?>
-                    formatDate(apopen_docdate) AS f_docdate, 
-                    formatDate(apopen_duedate) AS f_duedate, 
+                    formatDate(apopen_docdate) AS f_docdate,
+                    formatDate(apopen_duedate) AS f_duedate,
                     formatMoney(apopen_amount) AS f_amount,
                     formatMoney(apopen_paid - COALESCE(SUM(apapply_target_paid),0)) AS f_paid,
-                    formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) * 
-                    CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
+                    formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) *
+                    CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
                     END) AS f_balance,
-                    formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) 
-                    / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
+                    formatMoney((apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0))
+                    / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
                          END)) AS f_base_balance,
 <? endif ?>
                     apopen_paid - COALESCE(SUM(apapply_target_paid),0) AS paid,
-                    (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) * 
-                    CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
+                    (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) *
+                    CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
                     END AS balance,
                     currConcat(apopen_curr_id) AS currAbbr,
-                    (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0)) 
-                    / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1 
+                    (apopen_amount - apopen_paid + COALESCE(SUM(apapply_target_paid),0))
+                    / apopen_curr_rate * (CASE WHEN apopen_doctype IN ('D', 'V') THEN 1 ELSE -1
                          END) AS base_balance,
                     'curr' AS apopen_amount_xtnumericrole,
                     'curr' AS paid_xtnumericrole,
                     'curr' AS balance_xtnumericrole,
                     'curr' AS base_balance_xtnumericrole,
-                    0 AS base_balance_xttotalrole 
-             FROM apopen 
+                    0 AS base_balance_xttotalrole
+             FROM apopen
                JOIN vendinfo ON (vend_id=apopen_vend_id)
                JOIN vendtype ON (vendtype_id=vend_vendtype_id)
-               LEFT OUTER JOIN apapply ON (((apopen_id=apapply_target_apopen_id) 
-                                       OR (apopen_id=apapply_source_apopen_id)) 
-                                       AND (apapply_postdate > <? value("asofDate") ?>)) 
-              WHERE ( (COALESCE(apopen_closedate,date <? value("asofDate") ?> + integer '1')><? value("asofDate") ?>) 
+               LEFT OUTER JOIN apapply ON (((apopen_id=apapply_target_apopen_id)
+                                       OR (apopen_id=apapply_source_apopen_id))
+                                       AND (apapply_postdate > <? value("asofDate") ?>))
+              WHERE ( (COALESCE(apopen_closedate,date <? value("asofDate") ?> + integer '1')><? value("asofDate") ?>)
                 AND   (CASE WHEN (<? value("useDocDate") ?>) THEN apopen_docdate ELSE apopen_distdate END<=<? value("asofDate") ?>)
 <? if exists("vend_id") ?>
                 AND   (apopen_vend_id=<? value("vend_id") ?>)
@@ -55,8 +56,8 @@ SELECT apopen_id, apopen_ponumber, apopen_docnumber,
 <? if exists("vendtype_pattern") ?>
                 AND   (vendtype_code~<? value("vendtype_pattern") ?>)
 <? endif ?>
-                AND   (apopen_duedate BETWEEN <? value("startDate") ?> AND <? value("endDate") ?>) ) 
-              GROUP BY apopen_id, apopen_ponumber, apopen_docnumber,apopen_doctype, apopen_invcnumber, apopen_docdate, 
+                AND   (apopen_duedate BETWEEN <? value("startDate") ?> AND <? value("endDate") ?>) )
+              GROUP BY apopen_id, apopen_ponumber, apopen_docnumber,apopen_doctype, apopen_invcnumber, apopen_docdate,
                 apopen_duedate, apopen_docdate, apopen_amount, apopen_paid, apopen_curr_id, apopen_curr_rate,
                 apopen.apopen_status, vend_number, vend_name
-              ORDER BY apopen_docdate;
+              ORDER BY apopen_docdate;
\ No newline at end of file
index f31552f..01e632f 100644 (file)
@@ -1,6 +1,6 @@
 -- Group: apOpenItems
 -- Name:  selectedpayments
--- Notes: 
+-- Notes:
 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 
@@ -9,6 +9,7 @@ SELECT *,
             WHEN (apopen_doctype='D') THEN <? value("debitmemo") ?>
             WHEN (apopen_doctype='C') THEN <? value("creditmemo") ?>
        END AS doctype,
+       CASE WHEN (apopen_doctype='C') THEN 'emphasis' END AS doctype_qtforegroundrole,
        'curr' AS apselect_amount_xtnumericrole,
        'curr' AS apselect_amount_base_xtnumericrole,
        'curr' AS apselect_running_base_xtnumericrole,
@@ -27,7 +28,7 @@ SELECT apopen_id, apselect_id,
 FROM apopen, apselect, vendinfo, bankaccnt
 WHERE ( (apopen_vend_id=vend_id)
   AND   (apselect_apopen_id=apopen_id)
-  AND   (apselect_bankaccnt_id=bankaccnt_id) 
+  AND   (apselect_bankaccnt_id=bankaccnt_id)
   AND   (apopen_doctype IN ('V', 'D'))
 <? if exists("bankaccntid") ?>
   AND   (bankaccnt_id=<? value("bankaccntid") ?>)
@@ -55,7 +56,7 @@ SELECT apopen_id, apselect_id,
 FROM apopen, apselect, vendinfo, bankaccnt
 WHERE ( (apopen_vend_id=vend_id)
   AND   (apselect_apopen_id=apopen_id)
-  AND   (apselect_bankaccnt_id=bankaccnt_id) 
+  AND   (apselect_bankaccnt_id=bankaccnt_id)
   AND   (apopen_doctype='C')
 <? if exists("bankaccntid") ?>
   AND   (bankaccnt_id=<? value("bankaccntid") ?>)
@@ -71,4 +72,4 @@ WHERE ( (apopen_vend_id=vend_id)
 <? endif ?>
  )
 ORDER BY f_bank, f_vendor, apopen_docnumber
-) AS data;
+) AS data;
\ No newline at end of file
index 11d091c..de92dbb 100644 (file)
@@ -1,6 +1,6 @@
 -- Group: apOpenItems
 -- Name:  selectpayments
--- Notes: 
+-- Notes:
 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 -- See www.xtuple.com/CPAL for the full text of the software license.
 
@@ -9,10 +9,11 @@ SELECT *,
             WHEN (apopen_doctype='D') THEN <? value("debitMemo") ?>
             WHEN (apopen_doctype='C') THEN <? value("creditMemo") ?>
        END AS doctype,
+       CASE WHEN (apopen_doctype='C') THEN 'emphasis' END AS doctype_qtforegroundrole,
        CASE WHEN (apopen_duedate < CURRENT_DATE) THEN 'error'
             WHEN(apopen_duedate > CURRENT_DATE) THEN 'emphasis'
             WHEN(CURRENT_DATE <= determineDiscountDate(apopen_terms_id, apopen_docdate)) THEN 'altemphasis'
-       END AS apopen_duedate_qtforegroundrole, 
+       END AS apopen_duedate_qtforegroundrole,
        CASE WHEN (apopen_status = 'H') THEN 'error' END AS qtforegroundrole,
        'curr' AS amount_xtnumericrole,
        'curr' AS selected_xtnumericrole,
@@ -104,4 +105,4 @@ WHERE ( (apopen_open)
 <? endif ?>
 )
 ORDER BY apopen_duedate, amount DESC) AS data
-WHERE (amount != 0);
+WHERE (amount != 0);
\ No newline at end of file
index cb75d4c..7791311 100644 (file)
@@ -2,17 +2,17 @@
 -- Name:  detail_nohierarchy
 -- Notes: Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
 --        See www.xtuple.com/CPAL for the full text of the software license.
---        
+--
 --        Non-hierarchical view to support CSV export from Project List screen
 
 SELECT prj_id AS id, 1 AS altId,
   prj.*, crmacct_name, cntct_name,
   addr_city, addr_state,
   prjtype_descr AS project_type,
-  CASE WHEN (prj_status='P') THEN 'Planning'
-       WHEN (prj_status='O') THEN 'In-Process'
-       WHEN (prj_status='C') THEN 'Completed'
-       ELSE 'Unknown' END AS project_status
+  CASE WHEN (prj_status='P') THEN <? value("planning") ?>
+       WHEN (prj_status='O') THEN <? value("open") ?>
+       WHEN (prj_status='C') THEN <? value("complete") ?>
+       ELSE <? value("undefined") ?> END AS project_status
 <? foreach("char_id_text_list") ?>
   , charass_alias<? literal("char_id_text_list") ?>.charass_value AS char<? literal("char_id_text_list") ?>
 <? endforeach ?>
@@ -22,25 +22,25 @@ SELECT prj_id AS id, 1 AS altId,
 <? foreach("char_id_date_list") ?>
   , charass_alias<? literal("char_id_date_list") ?>.charass_value::date AS char<? literal("char_id_date_list") ?>
 <? endforeach ?>
-FROM prj() 
+FROM prj()
 LEFT JOIN prjtype ON (prj_prjtype_id=prjtype_id)
 LEFT JOIN crmacct ON (prj_crmacct_id=crmacct_id)
 LEFT JOIN cntct ON (crmacct_cntct_id_1=cntct_id)
 LEFT JOIN addr ON (cntct_addr_id=addr_id)
 <? foreach("char_id_text_list") ?>
-  LEFT OUTER JOIN charass charass_alias<? literal("char_id_text_list") ?> ON ((charass_alias<? literal("char_id_text_list") ?>.charass_target_type='PROJ') 
+  LEFT OUTER JOIN charass charass_alias<? literal("char_id_text_list") ?> ON ((charass_alias<? literal("char_id_text_list") ?>.charass_target_type='PROJ')
                                                                     AND  (charass_alias<? literal("char_id_text_list") ?>.charass_target_id=prj_id)
                                                                     AND  (charass_alias<? literal("char_id_text_list") ?>.charass_char_id=<? value("char_id_text_list") ?>))
   LEFT OUTER JOIN char char_alias<? literal("char_id_text_list") ?> ON (charass_alias<? literal("char_id_text_list") ?>.charass_char_id=char_alias<? literal("char_id_text_list") ?>.char_id)
 <? endforeach ?>
 <? foreach("char_id_list_list") ?>
-  LEFT OUTER JOIN charass charass_alias<? literal("char_id_list_list") ?> ON ((charass_alias<? literal("char_id_list_list") ?>.charass_target_type='PROJ') 
+  LEFT OUTER JOIN charass charass_alias<? literal("char_id_list_list") ?> ON ((charass_alias<? literal("char_id_list_list") ?>.charass_target_type='PROJ')
                                                                     AND  (charass_alias<? literal("char_id_list_list") ?>.charass_target_id=prj_id)
                                                                     AND  (charass_alias<? literal("char_id_list_list") ?>.charass_char_id=<? value("char_id_list_list") ?>))
   LEFT OUTER JOIN char char_alias<? literal("char_id_list_list") ?> ON (charass_alias<? literal("char_id_list_list") ?>.charass_char_id=char_alias<? literal("char_id_list_list") ?>.char_id)
 <? endforeach ?>
 <? foreach("char_id_date_list") ?>
-  LEFT OUTER JOIN charass charass_alias<? literal("char_id_date_list") ?> ON ((charass_alias<? literal("char_id_date_list") ?>.charass_target_type='PROJ') 
+  LEFT OUTER JOIN charass charass_alias<? literal("char_id_date_list") ?> ON ((charass_alias<? literal("char_id_date_list") ?>.charass_target_type='PROJ')
                                                                     AND  (charass_alias<? literal("char_id_date_list") ?>.charass_target_id=prj_id)
                                                                     AND  (charass_alias<? literal("char_id_date_list") ?>.charass_char_id=<? value("char_id_date_list") ?>))
   LEFT OUTER JOIN char char_alias<? literal("char_id_date_list") ?> ON (charass_alias<? literal("char_id_date_list") ?>.charass_char_id=char_alias<? literal("char_id_date_list") ?>.char_id)
@@ -54,15 +54,15 @@ WHERE (true)
 <? if exists("username") ?>
   AND (prj_username=<? value("username") ?> OR prj_owner_username=<? value("username") ?>)
 <? endif ?>
-<? if exists("assigned_username") ?> 
-  AND (prj_username=<? value("assigned_username") ?>) 
+<? if exists("assigned_username") ?>
+  AND (prj_username=<? value("assigned_username") ?>)
 <? elseif exists("assigned_usr_pattern") ?>
-  AND (prj_username ~ <? value("assigned_usr_pattern") ?>) 
+  AND (prj_username ~ <? value("assigned_usr_pattern") ?>)
 <? endif ?>
-<? if exists("owner_username") ?> 
-  AND (prj_owner_username=<? value("owner_username") ?>) 
+<? if exists("owner_username") ?>
+  AND (prj_owner_username=<? value("owner_username") ?>)
 <? elseif exists("owner_usr_pattern") ?>
-  AND (prj_owner_username ~ <? value("owner_usr_pattern") ?>) 
+  AND (prj_owner_username ~ <? value("owner_usr_pattern") ?>)
 <? endif ?>
 <? if exists("crmacct_id") ?>
   AND (prj_crmacct_id=<? value("crmacct_id") ?>)
@@ -70,6 +70,14 @@ WHERE (true)
 <? if exists("cntct_id") ?>
   AND (prj_cntct_id=<? value("cntct_id") ?>)
 <? endif ?>
+<? if exists("prjtype_id") ?>
+  AND (prj_prjtype_id=<? value("prjtype_id") ?>)
+<? endif ?>
+<? if exists("prjstatus") ?>
+  AND (prj_status=<? value("prjstatus") ?>)
+<? elseif not exists("showComplete") ?>
+  AND (prj_status <> 'C')
+<? endif ?>
 <? if exists("startStartDate") ?>
   AND (prj_start_date >= <? value("startStartDate") ?>)
 <? endif ?>
@@ -94,11 +102,8 @@ WHERE (true)
 <? if exists("completedEndDate") ?>
   AND (prj_completed_date <= <? value("completedEndDate") ?>)
 <? endif ?>
-<? if not exists("showComplete") ?>
-  AND (prj_status <> 'C')
-<? endif ?>
 <? if exists("id") ?>
   AND (prj_id=<? value("id") ?>)
 <? endif ?>
 <? literal("charClause") ?>
-ORDER BY prj_number;
+ORDER BY prj_number;
\ No newline at end of file