split PersonEntity/Repo into Rbac and Real Entity/Repo and use in Relation for faster lazy loading #130
@ -5,10 +5,11 @@
|
|||||||
--changeset timotheus.pokorra:hs-global-integration-znuny endDelimiter:--//
|
--changeset timotheus.pokorra:hs-global-integration-znuny endDelimiter:--//
|
||||||
-- TODO.impl: also select column debitorNumber and do not filter anymore for '00'
|
-- TODO.impl: also select column debitorNumber and do not filter anymore for '00'
|
||||||
CREATE OR REPLACE VIEW hs_integration.contact AS
|
CREATE OR REPLACE VIEW hs_integration.contact AS
|
||||||
SELECT DISTINCT ON (uuid)
|
SELECT DISTINCT ON (contact_uuid)
|
||||||
partner.partnernumber as partnernumber,
|
partner.partnernumber as partnernumber,
|
||||||
debitor.defaultprefix as defaultprefix,
|
debitor.defaultprefix as defaultprefix,
|
||||||
c.uuid as uuid,
|
partner.uuid as partner_uuid,
|
||||||
|
c.uuid as contact_uuid,
|
||||||
(CASE WHEN per.salutation <> '' THEN per.salutation ELSE NULL END) as salutation,
|
(CASE WHEN per.salutation <> '' THEN per.salutation ELSE NULL END) as salutation,
|
||||||
(CASE WHEN per.givenname <> '' THEN per.givenname ELSE NULL END) as givenname,
|
(CASE WHEN per.givenname <> '' THEN per.givenname ELSE NULL END) as givenname,
|
||||||
(CASE WHEN per.familyname <> '' THEN per.familyname ELSE NULL END) as familyname,
|
(CASE WHEN per.familyname <> '' THEN per.familyname ELSE NULL END) as familyname,
|
||||||
@ -38,10 +39,11 @@ CREATE OR REPLACE VIEW hs_integration.contact AS
|
|||||||
JOIN hs_office.contact AS c ON c.uuid = pRel.contactuuid
|
JOIN hs_office.contact AS c ON c.uuid = pRel.contactuuid
|
||||||
JOIN hs_office.person AS per ON per.uuid = pRel.holderuuid
|
JOIN hs_office.person AS per ON per.uuid = pRel.holderuuid
|
||||||
UNION
|
UNION
|
||||||
SELECT DISTINCT ON (uuid)
|
SELECT DISTINCT ON (contact_uuid)
|
||||||
partner.partnernumber as partnernumber,
|
partner.partnernumber as partnernumber,
|
||||||
debitor.defaultprefix as defaultprefix,
|
debitor.defaultprefix as defaultprefix,
|
||||||
c.uuid as uuid,
|
partner.uuid as partner_uuid,
|
||||||
|
c.uuid as contact_uuid,
|
||||||
(CASE WHEN per.salutation <> '' THEN per.salutation ELSE NULL END) as salutation,
|
(CASE WHEN per.salutation <> '' THEN per.salutation ELSE NULL END) as salutation,
|
||||||
(CASE WHEN per.givenname <> '' THEN per.givenname ELSE NULL END) as givenname,
|
(CASE WHEN per.givenname <> '' THEN per.givenname ELSE NULL END) as givenname,
|
||||||
(CASE WHEN per.familyname <> '' THEN per.familyname ELSE NULL END) as familyname,
|
(CASE WHEN per.familyname <> '' THEN per.familyname ELSE NULL END) as familyname,
|
||||||
@ -73,7 +75,7 @@ CREATE OR REPLACE VIEW hs_integration.contact AS
|
|||||||
JOIN hs_office.person AS per ON per.uuid = relation.holderuuid;
|
JOIN hs_office.person AS per ON per.uuid = relation.holderuuid;
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW hs_integration.ticket_customer_user AS
|
CREATE OR REPLACE VIEW hs_integration.ticket_customer_user AS
|
||||||
SELECT c.uuid,
|
SELECT c.contact_uuid,
|
||||||
max(c.partnernumber)::text as number,
|
max(c.partnernumber)::text as number,
|
||||||
max(c.defaultprefix) as code,
|
max(c.defaultprefix) as code,
|
||||||
max(c.email) as login,
|
max(c.email) as login,
|
||||||
@ -96,7 +98,27 @@ CREATE OR REPLACE VIEW hs_integration.ticket_customer_user AS
|
|||||||
string_agg(CASE WHEN relation.mark IS NULL THEN relation.type::text ELSE CONCAT(relation.type::text, ':', relation.mark::text) END, '/'::text) AS comment,
|
string_agg(CASE WHEN relation.mark IS NULL THEN relation.type::text ELSE CONCAT(relation.type::text, ':', relation.mark::text) END, '/'::text) AS comment,
|
||||||
1 AS valid
|
1 AS valid
|
||||||
FROM hs_integration.contact AS c
|
FROM hs_integration.contact AS c
|
||||||
JOIN hs_office.relation AS relation ON c.uuid = relation.contactuuid
|
JOIN hs_office.relation AS relation ON c.contact_uuid = relation.contactuuid
|
||||||
WHERE (c.defaultprefix != 'hsh' OR (c.partnernumber = 10000 AND c.email = 'hostmaster@hostsharing.net'))
|
WHERE (c.defaultprefix != 'hsh' OR (c.partnernumber = 10000 AND c.email = 'hostmaster@hostsharing.net'))
|
||||||
GROUP BY c.uuid;
|
GROUP BY c.contact_uuid;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW hs_integration.ticket_customer_company AS
|
||||||
|
SELECT
|
||||||
|
partner.partnernumber::text as number,
|
||||||
|
debitor.defaultprefix as code,
|
||||||
|
concat_ws('/'::text, to_char(lower(membership.validity), 'YYYY-MM-DD'::text), to_char(upper(membership.validity) - INTERVAL '1 days', 'YYYY-MM-DD'::text)) AS comment,
|
||||||
|
1 AS valid
|
||||||
|
FROM hs_office.partner AS partner
|
||||||
|
JOIN hs_office.relation AS pRel
|
||||||
|
ON pRel.type = 'PARTNER'
|
||||||
|
AND pRel.uuid = partner.partnerRelUuid
|
||||||
|
JOIN hs_office.relation AS dRel
|
||||||
|
ON dRel.type = 'DEBITOR'
|
||||||
|
AND dRel.anchorUuid = pRel.holderUuid
|
||||||
|
JOIN hs_office.debitor AS debitor
|
||||||
|
ON debitor.debitorreluuid = dRel.uuid
|
||||||
|
AND debitor.debitornumbersuffix = '00'
|
||||||
|
LEFT OUTER JOIN hs_office.membership AS membership ON membership.partneruuid = partner.uuid
|
||||||
|
ORDER BY number;
|
||||||
|
|
||||||
--//
|
--//
|
Loading…
Reference in New Issue
Block a user