+4.5.2 (2014/07/15)
+==================
+
+Features and bugfixes
+---------------------
+- Fixed
+ issue #[23636](http://www.xtuple.org/xtincident/view/bugs/23636)
+ _Error when running Inventory Availability_
+- Fixed
+ issue #[23714](http://www.xtuple.org/xtincident/view/bugs/23714)
+ _*Quantity 'At Shipping' gets doubled on selecting 'Issue All' or 'Issue Line' multiple times_
+- Fixed
+ issue #[23979](http://www.xtuple.org/xtincident/view/bugs/23979)
+ _*Unable to build Mobile Web client on empty databases_
+- Fixed
+ issue #[24098](http://www.xtuple.org/xtincident/view/bugs/24098)
+ _Icons only displaying when debugging = true_
+
+
4.5.1 (2014/06/25)
==================
"type": "Url",
"table": "urlinfo",
"isRest": true,
+ "lockable": true,
"idSequenceName": "urlinfo_url_id_seq",
"comment": "URL Map",
"privileges": {
@private
This function supports the XM.ItemSiteListItem.fetch() and XM.ItemSiteRelation.fetch(),
- but also xDruple extension XM.XdrupleCommerceProduct.xdCommerceProductFetch() call like this:
- XM.ItemSitePrivate.fetch("XM.XdrupleCommerceProduct", "xdruple.xd_commerce_product", query, 'product_id', 'id');
+ but also xDruple extension XM.XdProduct.xdProductFetch() call like this:
+ XM.ItemSitePrivate.fetch("XM.XdProduct", "xdruple.xd_commerce_product", query, 'product_id', 'id');
*/
XM.ItemSitePrivate.fetch = function (recordType, backingType, query, backingTypeJoinColumn, idColumn) {
query = query || {};
"../lib/orm/source/xt/functions/add_primary_key.sql",
"../lib/orm/source/xt/functions/create_table.sql",
+ "public/patches/fixflcol.sql",
+
"public/indexes/apopentax.sql",
"public/indexes/aropentax.sql",
"public/indexes/asohisttax.sql",
-- Data for Name: payco; Type: TABLE DATA; Schema: public; Owner: admin
--
-ALTER TABLE payco DISABLE TRIGGER ALL;
-
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (16, 2964, 0.00, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (17, 2964, 104.90, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (18, 2964, 0.00, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (22, 2973, 0.00, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (23, 2973, 104.90, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (25, 3002, 0.00, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (26, 3002, 0.00, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (27, 3002, 0.00, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (28, 3002, 997.50, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (29, 3005, 103.86, 1);
-INSERT INTO payco (payco_ccpay_id, payco_cohead_id, payco_amount, payco_curr_id) VALUES (35, 3023, 0.00, 1);
-
-
-ALTER TABLE payco ENABLE TRIGGER ALL;
-
--
-- TOC entry 9639 (class 0 OID 0)
-- Dependencies: 710
_cost NUMERIC := 0.0;
BEGIN
-- cache item info
- SELECT * INTO _r
+ SELECT *, itemInvPriceRat(item_id) AS itempriceinvrat INTO _r
FROM itemsite, item
WHERE (itemsite_item_id=pItemid)
AND (itemsite_warehous_id=pSiteid)
AND (bomitem_rev_id=getActiveRevid('BOM', _r.item_id))
AND (pEffective BETWEEN bomitem_effective AND (bomitem_expires - 1));
ELSEIF (fetchMetricBool('WholesalePriceCosting')) THEN
- _cost := _r.item_listcost;
+ _cost := _r.item_listcost / _r.itempriceinvrat;
ELSE
SELECT itemcost(_r.itemsite_id) INTO _cost;
END IF;
_item RECORD;
_cust RECORD;
_shipto RECORD;
- _iteminvpricerat NUMERIC := 1.0;
+ _itempricepricerat NUMERIC := 1.0;
_listprice NUMERIC := 0.0;
_qty NUMERIC;
_asof DATE;
_asof := COALESCE(pAsOf, CURRENT_DATE);
-- Cache Item, Customer and Shipto
- SELECT item.*, itemCost(itemsite_id) AS invcost INTO _item
+ SELECT item.*, (itemCost(itemsite_id) / itemuomtouomratio(item_id, item_inv_uom_id, item_price_uom_id)) AS invcost INTO _item
FROM item LEFT OUTER JOIN itemsite ON (itemsite_item_id=item_id AND itemsite_warehous_id=pSiteid)
WHERE (item_id=pItemid);
-- Get a value here so we do not have to call the function several times
SELECT itemuomtouomratio(pItemid, pPriceUOM, _item.item_price_uom_id) AS ratio
- INTO _iteminvpricerat;
+ INTO _itempricepricerat;
-- First get a sales price if any so we when we find other prices
-- we can determine if we want that price or this price.
CASE WHEN (ipsitem_type = 'N') THEN
(ipsitem_price * itemuomtouomratio(_item.item_id, pPriceUOM, ipsitem_price_uom_id))
WHEN (ipsitem_type = 'D') THEN
- noNeg(_item.item_listprice - (_item.item_listprice * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount) * _iteminvpricerat
+ noNeg(_item.item_listprice - (_item.item_listprice * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN ((ipsitem_type = 'M') AND _long30markups AND _wholesalepricecosting) THEN
- (_item.item_listcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.item_listcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN ((ipsitem_type = 'M') AND _long30markups) THEN
- (_item.invcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.invcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN (ipsitem_type = 'M' AND _wholesalepricecosting) THEN
- (_item.item_listcost + (_item.item_listcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.item_listcost + (_item.item_listcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN (ipsitem_type = 'M') THEN
- (_item.invcost + (_item.invcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.invcost + (_item.invcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
ELSE 0.00
END AS ipsprice_price,
CASE WHEN (ipsitem_item_id=_item.item_id) THEN itemuomtouom(ipsitem_item_id, ipsitem_qty_uom_id, NULL, ipsitem_qtybreak)
CASE WHEN (ipsitem_type = 'N') THEN
(ipsitem_price * itemuomtouomratio(_item.item_id, pPriceUOM, ipsitem_price_uom_id))
WHEN (ipsitem_type = 'D') THEN
- noNeg(_item.item_listprice - (_item.item_listprice * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount) * _iteminvpricerat
+ noNeg(_item.item_listprice - (_item.item_listprice * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN ((ipsitem_type = 'M') AND _long30markups AND _wholesalepricecosting) THEN
- (_item.item_listcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.item_listcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN ((ipsitem_type = 'M') AND _long30markups) THEN
- (_item.invcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.invcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN (ipsitem_type = 'M' AND _wholesalepricecosting) THEN
- (_item.item_listcost + (_item.item_listcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.item_listcost + (_item.item_listcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
WHEN (ipsitem_type = 'M') THEN
- (_item.invcost + (_item.invcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _iteminvpricerat
+ (_item.invcost + (_item.invcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount) * _itempricepricerat
ELSE 0.00
END AS protoprice,
CASE WHEN (ipsitem_item_id=_item.item_id) THEN itemuomtouom(ipsitem_item_id, ipsitem_qty_uom_id, NULL, ipsitem_qtybreak)
--- /dev/null
+-- 4.4.1 and 4.5.0 fix - synchronize flcol_report_id
+do $$
+begin
+if fetchMetricText('ServerVersion') < '4.6.0' then
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReport'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id=285
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonth'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (375, 335)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthBudget'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (376, 336)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthDbCr'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id=387
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthPriorMonth'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (377, 337)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthPriorQuarter'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (386, 346)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthPriorYear'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (378, 338)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthQuarter'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (379, 339)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportMonthYear'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (374, 334)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportQuarter'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (380, 340)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportQuarterBudget'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (381, 341)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportQuarterPriorQuarter'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (382, 342)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportYear'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (383, 343)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportYearBudget'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (384, 344)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialReportYearPriorYear'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id in (385, 345)
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+update flcol set flcol_report_id = (select report_id from report
+ where report_name = 'FinancialTrend'
+ order by report_grade desc
+ limit 1)
+where flcol_report_id=388
+and flcol_id in (
+ select flcol_id
+ from flcol left join report on flcol_report_id = report_id
+ where report_id is null)
+;
+
+end if;
+end$$;
\ No newline at end of file
WHEN ((ipsitem_type = 'M') AND fetchMetricBool('Long30Markups') AND fetchMetricBool('WholesalePriceCosting')) THEN
(item_listcost / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN ((ipsitem_type = 'M') AND fetchMetricBool('Long30Markups')) THEN
- (itemCost(itemsite_id) / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
+ (itemCost(itemsite_id) / itemuomtouomratio(item_id, ipsitem_qty_uom_id, ipsitem_price_uom_id) /
+ (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN (ipsitem_type = 'M' AND fetchMetricBool('WholesalePriceCosting')) THEN
(item_listcost + (item_listcost * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN (ipsitem_type = 'M') THEN
- (itemCost(itemsite_id) + (itemCost(itemsite_id) * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
+ (itemCost(itemsite_id) / itemuomtouomratio(item_id, ipsitem_qty_uom_id, ipsitem_price_uom_id) +
+ (itemCost(itemsite_id) / itemuomtouomratio(item_id, ipsitem_qty_uom_id, ipsitem_price_uom_id) * ipsitem_discntprcnt) +
+ ipsitem_fixedamtdiscount)
ELSE 0.0
END) AS netPrice,
CASE WHEN (ipsitem_type='N') THEN <? value("nominal") ?>
(ipsitem_price * itemuomtouomratio(<? value('item_id') ?>, NULL, ipsitem_price_uom_id)) * iteminvpricerat(ipsitem_item_id)
WHEN (ipsitem_type = 'D') THEN
noNeg(<? value('item_listprice') ?> - (<? value('item_listprice') ?> * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount)
+ WHEN ((ipsitem_type = 'M') AND fetchMetricBool('Long30Markups') AND fetchMetricBool('WholesalePriceCosting')) THEN
+ (<? value('item_listcost') ?> / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN ((ipsitem_type = 'M') AND fetchMetricBool('Long30Markups')) THEN
(<? value('item_unitcost') ?> / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
+ WHEN (ipsitem_type = 'M' AND fetchMetricBool('WholesalePriceCosting')) THEN
+ (<? value('item_listcost') ?> + (<? value('item_listcost') ?> * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN (ipsitem_type = 'M') THEN
(<? value('item_unitcost') ?> + (<? value('item_unitcost') ?> * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
ELSE 0.00
ELSE ipsitem_qtybreak
END AS invqty,
ipsitem_qtybreak AS qtybreak,
- CASE WHEN ipsitem_type = 'N' THEN (ipsitem_price * itemuomtouomratio(<? value('item_id') ?>, NULL, ipsitem_price_uom_id)) *
- iteminvpricerat(ipsitem_item_id)
- WHEN ipsitem_type = 'D' THEN noNeg(<? value('item_listprice') ?> - (<? value('item_listprice') ?> * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount)
+ CASE WHEN ipsitem_type = 'N' THEN
+ (ipsitem_price * itemuomtouomratio(<? value('item_id') ?>, NULL, ipsitem_price_uom_id)) * iteminvpricerat(ipsitem_item_id)
+ WHEN ipsitem_type = 'D' THEN
+ noNeg(<? value('item_listprice') ?> - (<? value('item_listprice') ?> * ipsitem_discntprcnt) - ipsitem_fixedamtdiscount)
+ WHEN ((ipsitem_type = 'M') AND fetchMetricBool('Long30Markups') AND fetchMetricBool('WholesalePriceCosting')) THEN
+ (<? value('item_listcost') ?> / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN ((ipsitem_type = 'M') AND fetchMetricBool('Long30Markups')) THEN
(<? value('item_unitcost') ?> / (1.0 - ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
+ WHEN (ipsitem_type = 'M' AND fetchMetricBool('WholesalePriceCosting')) THEN
+ (<? value('item_listcost') ?> + (<? value('item_listcost') ?> * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
WHEN (ipsitem_type = 'M') THEN
(<? value('item_unitcost') ?> + (<? value('item_unitcost') ?> * ipsitem_discntprcnt) + ipsitem_fixedamtdiscount)
ELSE 0.00
END AS discountfromcust,
coitem_unitcost,
CASE WHEN (coitem_price = 0.0) THEN 0.0
- ELSE ROUND((coitem_qtyord * coitem_qty_invuomratio) *
- ((coitem_price / coitem_price_invuomratio) - (coitem_unitcost / coitem_price_invuomratio)),2)
+ ELSE ROUND(coitem_qtyord * coitem_qty_invuomratio * (coitem_price - coitem_unitcost) / coitem_price_invuomratio,2)
END AS margin,
CASE WHEN (coitem_price = 0.0) THEN 0.0
ELSE ((coitem_price - coitem_unitcost) / coitem_price)
winston.info("Applying build to database " + spec.database);
credsClone.database = spec.database;
buildDatabaseUtil.sendToDatabase(allSql, credsClone, spec, function (err, res) {
- if (spec.populateData) {
+ if (spec.populateData && creds.encryptionKeyFile) {
var populateSql = "DO $$ XT.disableLocks = true; $$ language plv8;";
- var encryptionKey = fs.readFileSync(path.join(__dirname, "../../node-datasource", creds.encryptionKeyFile), "utf8");
+ var encryptionKey = fs.readFileSync(path.resolve(__dirname, "../../node-datasource", creds.encryptionKeyFile), "utf8");
var patches = require(path.join(__dirname, "../../enyo-client/database/source/populate_data")).patches;
_.each(patches, function (patch) {
patch.encryptionKey = encryptionKey;
-<package id = "distribution-install-451"
- version = "4.5.1"
+<package id = "distribution-install-452"
+ version = "4.5.2"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking for bad xTuple ERP database version" >
- <query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.1' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
- <message>This package may not be applied to a 4.5.1+ PostBooks database.
+ <query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.2' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
+ <message>This package may not be applied to a 4.5.2+ PostBooks database.
</message>
</prerequisite>
-<package id = "distribution-upgrade-451"
- version = "4.5.1"
+<package id = "distribution-upgrade-452"
+ version = "4.5.2"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking for bad xTuple ERP database version" >
-<query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.1' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
- <message>This package may not be applied to a 4.5.1+ Distribution database.
+<query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.2' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
+ <message>This package may not be applied to a 4.5.2+ Distribution database.
</message>
</prerequisite>
-<package id = "postbooks-upgrade-451"
- version = "4.5.1"
+<package id = "postbooks-upgrade-452"
+ version = "4.5.2"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking for bad xTuple ERP database version" >
- <query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.1' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
- <message>This package may not be applied to a 4.5.1+ Postbooks database.
+ <query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.2' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
+ <message>This package may not be applied to a 4.5.2+ Postbooks database.
</message>
</prerequisite>
-<package id = "manufacturing-install-451"
- version = "4.5.1"
+<package id = "manufacturing-install-452"
+ version = "4.5.2"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking for bad xTuple ERP database version" >
- <query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.1' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
- <message>This package may not be applied to a 4.5.1+ PostBooks database.
+ <query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.2' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
+ <message>This package may not be applied to a 4.5.2+ PostBooks database.
</message>
</prerequisite>
-<package id = "manufacturing-upgrade-451"
- version = "4.5.1"
+<package id = "manufacturing-upgrade-452"
+ version = "4.5.2"
developer = "xTuple"
descrip = "load PostBooks resources"
updater = "2.2.4" >
<prerequisite type = "query"
name = "Checking for bad xTuple ERP database version" >
-<query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.1' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
- <message>This package may not be applied to a 4.5.1+ Manufacturing database.
+<query>SELECT NOT fetchMetricText('ServerVersion') > '4.5.2' AND fetchMetricText('ServerVersion')!='4.5.0Beta' AND fetchMetricText('ServerVersion')!='4.5.0RC';</query>
+ <message>This package may not be applied to a 4.5.2+ Manufacturing database.
</message>
</prerequisite>