details: https://code.openbravo.com/erp/devel/pi/rev/7ce25dd045fc changeset: 30658:7ce25dd045fc user: Nono Carballo <nonofce <at> gmail.com> date: Tue Nov 15 11:27:10 2016 -0500 summary: Fixes issue 34286: Product selector allows wrong storage bin in shipment window
The Product Complete selector, when used in goods shipment window, allowed select products in storage bin not belonging to the on-hand warehouses. A new column was added to the M_PRODUCT_STOCK_V view to retrieve the warehouse and the filter expresion of Product Complete selector was modified to include the filter by on-hand warehouses, when used in goods shipment window. details: https://code.openbravo.com/erp/devel/pi/rev/f050573e9a37 changeset: 30659:f050573e9a37 user: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com> date: Tue Nov 15 18:53:31 2016 +0100 summary: Related to issue 34286: Code review improvements Product selector in Goods Shipment window should also display products with no stock. diffstat: src-db/database/model/views/M_PRODUCT_STOCK_V.xml | 2 +- src-db/database/sourcedata/AD_COLUMN.xml | 37 +++++++++++++++++++++++ src-db/database/sourcedata/OBUISEL_SELECTOR.xml | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) diffs (68 lines): diff -r fdf6a30ff33d -r f050573e9a37 src-db/database/model/views/M_PRODUCT_STOCK_V.xml --- a/src-db/database/model/views/M_PRODUCT_STOCK_V.xml Fri Nov 11 13:00:32 2016 -0500 +++ b/src-db/database/model/views/M_PRODUCT_STOCK_V.xml Tue Nov 15 18:53:31 2016 +0100 @@ -1,4 +1,4 @@ <?xml version="1.0"?> <database name="VIEW M_PRODUCT_STOCK_V"> - <view name="M_PRODUCT_STOCK_V"><![CDATA[SELECT p.m_product_id || sd.m_storage_detail_id AS m_product_stock_v_id, l.ad_client_id, l.ad_org_id, l.isactive, sd.created, sd.createdby, sd.updated, sd.updatedby, sd.m_product_id, sd.qtyonhand, sd.qtyorderonhand, sd.preqtyonhand, sd.preqtyorderonhand, sd.c_uom_id, sd.m_product_uom_id, sd.m_attributesetinstance_id, sd.m_locator_id, 'Y' AS stocked FROM m_storage_detail sd JOIN m_locator l ON sd.m_locator_id = l.m_locator_id JOIN m_product p ON sd.m_product_id = p.m_product_id AND p.isactive = 'Y' WHERE sd.qtyonhand <> 0 OR COALESCE(sd.qtyorderonhand, 0) <> 0 UNION ALL SELECT p.m_product_id AS m_product_stock_v_id, p.ad_client_id, p.ad_org_id, p.isactive, p.created, p.createdby, p.updated, p.updatedby, p.m_product_id, 0 AS qtyonhand, NULL AS qtyorderonhand, 0 AS preqtyonhand, NULL AS preqtyorderonhand, p.c_uom_id, NULL AS m_product_uom_id, CASE p.attrsetvaluetype WHEN 'D' THEN p.m_attributesetinstance_id ELSE NULL END AS m_attributesetinst ance_id, NULL AS m_locator_id, 'N' AS stocked FROM m_product p WHERE p.isgeneric = 'N']]></view> + <view name="M_PRODUCT_STOCK_V"><![CDATA[SELECT p.m_product_id || sd.m_storage_detail_id AS m_product_stock_v_id, l.ad_client_id, l.ad_org_id, l.isactive, sd.created, sd.createdby, sd.updated, sd.updatedby, sd.m_product_id, sd.qtyonhand, sd.qtyorderonhand, sd.preqtyonhand, sd.preqtyorderonhand, sd.c_uom_id, sd.m_product_uom_id, sd.m_attributesetinstance_id, sd.m_locator_id, 'Y' AS stocked, l.m_warehouse_id FROM m_storage_detail sd JOIN m_locator l ON sd.m_locator_id = l.m_locator_id JOIN m_product p ON sd.m_product_id = p.m_product_id AND p.isactive = 'Y' WHERE sd.qtyonhand <> 0 OR COALESCE(sd.qtyorderonhand, 0) <> 0 UNION ALL SELECT p.m_product_id AS m_product_stock_v_id, p.ad_client_id, p.ad_org_id, p.isactive, p.created, p.createdby, p.updated, p.updatedby, p.m_product_id, 0 AS qtyonhand, NULL AS qtyorderonhand, 0 AS preqtyonhand, NULL AS preqtyorderonhand, p.c_uom_id, NULL AS m_product_uom_id, CASE p.attrsetvaluetype WHEN 'D' THEN p.m_attributesetinstance_id ELSE NULL END AS m_attributesetinstance_id, NULL AS m_locator_id, 'N' AS stocked, NULL AS m_warehouse_id FROM m_product p WHERE p.isgeneric = 'N']]></view> </database> diff -r fdf6a30ff33d -r f050573e9a37 src-db/database/sourcedata/AD_COLUMN.xml --- a/src-db/database/sourcedata/AD_COLUMN.xml Fri Nov 11 13:00:32 2016 -0500 +++ b/src-db/database/sourcedata/AD_COLUMN.xml Tue Nov 15 18:53:31 2016 +0100 @@ -360622,6 +360622,43 @@ <!--D1237164C5EC4B7C80DCA5E9ED525724--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> <!--D1237164C5EC4B7C80DCA5E9ED525724--></AD_COLUMN> +<!--D13ED1C864DB4720B31E0E6D3FB71298--><AD_COLUMN> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_COLUMN_ID><![CDATA[D13ED1C864DB4720B31E0E6D3FB71298]]></AD_COLUMN_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <NAME><![CDATA[Warehouse]]></NAME> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <DESCRIPTION><![CDATA[The location where products arrive to or are sent from.]]></DESCRIPTION> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <HELP><![CDATA[The Warehouse identifies a unique Warehouse where products are stored or Services are provided.]]></HELP> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <COLUMNNAME><![CDATA[M_Warehouse_ID]]></COLUMNNAME> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_TABLE_ID><![CDATA[FF8080812E381D1E012E3898C5DD0010]]></AD_TABLE_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_REFERENCE_ID><![CDATA[19]]></AD_REFERENCE_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <FIELDLENGTH><![CDATA[32]]></FIELDLENGTH> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISKEY><![CDATA[N]]></ISKEY> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISPARENT><![CDATA[N]]></ISPARENT> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISMANDATORY><![CDATA[N]]></ISMANDATORY> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <SEQNO><![CDATA[190]]></SEQNO> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_ELEMENT_ID><![CDATA[459]]></AD_ELEMENT_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING> +<!--D13ED1C864DB4720B31E0E6D3FB71298--> <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK> +<!--D13ED1C864DB4720B31E0E6D3FB71298--></AD_COLUMN> + <!--D160BFBF2CD74DAEB9FF7C425874E282--><AD_COLUMN> <!--D160BFBF2CD74DAEB9FF7C425874E282--> <AD_COLUMN_ID><![CDATA[D160BFBF2CD74DAEB9FF7C425874E282]]></AD_COLUMN_ID> <!--D160BFBF2CD74DAEB9FF7C425874E282--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r fdf6a30ff33d -r f050573e9a37 src-db/database/sourcedata/OBUISEL_SELECTOR.xml --- a/src-db/database/sourcedata/OBUISEL_SELECTOR.xml Fri Nov 11 13:00:32 2016 -0500 +++ b/src-db/database/sourcedata/OBUISEL_SELECTOR.xml Tue Nov 15 18:53:31 2016 +0100 @@ -351,7 +351,7 @@ <!--4C8BC3E8E56441F4B8C98C684A0C9212--> <AD_REFERENCE_ID><![CDATA[800011]]></AD_REFERENCE_ID> <!--4C8BC3E8E56441F4B8C98C684A0C9212--> <AD_TABLE_ID><![CDATA[FF8080812E381D1E012E3898C5DD0010]]></AD_TABLE_ID> <!--4C8BC3E8E56441F4B8C98C684A0C9212--> <WHERECLAUSE><![CDATA[e.active='Y']]></WHERECLAUSE> -<!--4C8BC3E8E56441F4B8C98C684A0C9212--> <FILTER_EXPRESSION><![CDATA["( (\'"+OB.getWindowId()+"\' in (\'800051\', \'800052\', \'800096\') and e.product.production = true and e.stocked = false) or (\'"+OB.getWindowId()+"\' in (\'170\') and e.product.stocked = true) or (\'"+OB.getWindowId()+"\' in (\'800092\') and e.product.purchase = true) or \'"+OB.getWindowId()+"\' not in (\'800051\', \'800052\', \'800096\',\'170\',\'800092\'))"]]></FILTER_EXPRESSION> +<!--4C8BC3E8E56441F4B8C98C684A0C9212--> <FILTER_EXPRESSION><![CDATA["( (\'"+OB.getWindowId()+"\' in (\'800051\', \'800052\', \'800096\') and e.product.production = true and e.stocked = false) or (\'"+OB.getWindowId()+"\' in (\'170\') and e.product.stocked = true) or (\'"+OB.getWindowId()+"\' in (\'800092\') and e.product.purchase = true) or (\'"+OB.getWindowId()+"\' in (\'169\') and (e.warehouse.id is null or e.warehouse.id in (select ow.warehouse.id from OrganizationWarehouse ow where ow.organization.id = \'"+ OB.getParameters().get("inpadOrgId")+"\'))) or \'"+OB.getWindowId()+"\' not in (\'800051\', \'800052\', \'800096\',\'170\',\'800092\',\'169\'))"]]></FILTER_EXPRESSION> <!--4C8BC3E8E56441F4B8C98C684A0C9212--> <OBCLKER_TEMPLATE_ID><![CDATA[9314DE8599AD44E7BFC4CC50699042AB]]></OBCLKER_TEMPLATE_ID> <!--4C8BC3E8E56441F4B8C98C684A0C9212--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--4C8BC3E8E56441F4B8C98C684A0C9212--> <VALUEFIELD_ID><![CDATA[D5CD42F686A14DFA949052B99900D679]]></VALUEFIELD_ID> ------------------------------------------------------------------------------ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits