From: Steve Hackbarth Date: Fri, 19 Sep 2014 16:29:50 +0000 (-0400) Subject: Merge pull request #1861 from gpazo/bump470 X-Git-Tag: v4.7.0-beta.2~9 X-Git-Url: http://git.roojs.org/?a=commitdiff_plain;h=03f46609dcef2dd7b495359d71d9cdb20ac05bbd;hp=9f6da0a5d69e3e6ade54b44e0a8825885d298fa5;p=xtuple Merge pull request #1861 from gpazo/bump470 update to 4.7.0 --- diff --git a/enyo-client/database/source/wipe_views.sql b/enyo-client/database/source/wipe_views.sql index b92157597..2116aecf2 100644 --- a/enyo-client/database/source/wipe_views.sql +++ b/enyo-client/database/source/wipe_views.sql @@ -4,7 +4,7 @@ do $$ declare sqlstring text; begin - select string_agg('drop view ' || t.oid::regclass || ';', ' ') into sqlstring + select string_agg('drop view if exists ' || t.oid::regclass || ' cascade;', ' ') into sqlstring from pg_class t join pg_namespace n on n.oid = relnamespace where relkind = 'v' diff --git a/enyo-client/extensions/source/sales/database/source/manifest.js b/enyo-client/extensions/source/sales/database/source/manifest.js index ce8ba7741..a0938aaf7 100644 --- a/enyo-client/extensions/source/sales/database/source/manifest.js +++ b/enyo-client/extensions/source/sales/database/source/manifest.js @@ -10,6 +10,7 @@ "xt/views/share_users_shipto.sql", "xt/views/share_users_shipto_cntct.sql", "xt/views/share_users_shipto_addr.sql", + "xt/views/share_users_shipto_cust.sql", "xt/tables/sharetype.sql" ] } diff --git a/enyo-client/extensions/source/sales/database/source/xt/tables/sharetype.sql b/enyo-client/extensions/source/sales/database/source/xt/tables/sharetype.sql index 69301f323..3e343bf4c 100644 --- a/enyo-client/extensions/source/sales/database/source/xt/tables/sharetype.sql +++ b/enyo-client/extensions/source/sales/database/source/xt/tables/sharetype.sql @@ -54,6 +54,20 @@ insert into xt.sharetype ( 'username' ); +-- Customer that a Ship To is on CRM Account's users. +delete from xt.sharetype where sharetype_tblname = 'share_users_shipto_cust'; +insert into xt.sharetype ( + sharetype_nsname, + sharetype_tblname, + sharetype_col_obj_uuid, + sharetype_col_username +) values ( + 'xt', + 'share_users_shipto_cust', + 'obj_uuid', + 'username' +); + -- Sales Order CRM Account's users. delete from xt.sharetype where sharetype_tblname = 'share_users_cohead'; insert into xt.sharetype ( diff --git a/enyo-client/extensions/source/sales/database/source/xt/views/share_users_shipto_cust.sql b/enyo-client/extensions/source/sales/database/source/xt/views/share_users_shipto_cust.sql new file mode 100644 index 000000000..d852f1fbc --- /dev/null +++ b/enyo-client/extensions/source/sales/database/source/xt/views/share_users_shipto_cust.sql @@ -0,0 +1,31 @@ +/* + * This view lists all postgres usernames that are associated with a CRM + * Account that owns a resource. That associaiton is either the main user + * account, owner's user account, customer's sale rep's user account or + * a shared access that has been specifically granted. + * + * This view can be used to determine which users have personal privilege + * access to a Customer that a Ship To is on based on what CRM Account the + * Ship To belongs to. + */ + +select xt.create_view('xt.share_users_shipto_cust', $$ + + -- Customer that is for a Ship To CRM Account's users. + SELECT + shipto_cust_crmacct_id.obj_uuid::uuid AS obj_uuid, + username::text AS username + FROM ( + SELECT + custinfo.obj_uuid, + crmacct.crmacct_id + FROM shiptoinfo + LEFT JOIN crmacct ON crmacct_cust_id = shipto_cust_id + LEFT JOIN custinfo ON cust_id = shipto_cust_id + ) shipto_cust_crmacct_id + LEFT JOIN xt.crmacct_users USING (crmacct_id) + WHERE 1=1 + AND username IS NOT NULL + AND obj_uuid IS NOT NULL; + +$$, false);