TP-20240927-importfixes (#115)
Co-authored-by: Timotheus Pokorra <timotheus.pokorra@solidcharity.com> Co-authored-by: Dev und Test fuer hsadminng <hsh03-hsngdev@h50.hostsharing.net> Reviewed-on: https://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/115 Reviewed-by: Michael Hoennig <michael.hoennig@hostsharing.net> Co-authored-by: Timotheus Pokorra <timotheus.pokorra@hostsharing.net> Co-committed-by: Timotheus Pokorra <timotheus.pokorra@hostsharing.net>
This commit is contained in:
committed by
Michael Hoennig
parent
35db9aad43
commit
d7caf3b0f8
@ -8,5 +8,6 @@ public enum HsOfficeRelationType {
|
||||
VIP_CONTACT,
|
||||
DEBITOR,
|
||||
OPERATIONS,
|
||||
OPERATIONS_ALERT,
|
||||
SUBSCRIBER
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ components:
|
||||
- REPRESENTATIVE
|
||||
- VIP_CONTACT
|
||||
- OPERATIONS
|
||||
- OPERATIONS_ALERT
|
||||
- SUBSCRIBER
|
||||
|
||||
HsOfficeRelation:
|
||||
|
@ -12,6 +12,7 @@ CREATE TYPE hs_office.RelationType AS ENUM (
|
||||
'DEBITOR',
|
||||
'VIP_CONTACT',
|
||||
'OPERATIONS',
|
||||
'OPERATIONS_ALERT',
|
||||
'SUBSCRIBER');
|
||||
|
||||
CREATE CAST (character varying as hs_office.RelationType) WITH INOUT AS IMPLICIT;
|
||||
|
@ -7,7 +7,7 @@
|
||||
--changeset michael.hoennig:hs-office-coopshares-MIGRATION-mapping endDelimiter:--//
|
||||
-- ----------------------------------------------------------------------------
|
||||
|
||||
CREATE TABLE hs_office.coopsharestransaction_legacy_id
|
||||
CREATE TABLE hs_office.coopsharetx_legacy_id
|
||||
(
|
||||
uuid uuid NOT NULL REFERENCES hs_office.coopsharetx(uuid),
|
||||
member_share_id integer NOT NULL
|
||||
@ -19,10 +19,10 @@ CREATE TABLE hs_office.coopsharestransaction_legacy_id
|
||||
--changeset michael.hoennig:hs-office-coopshares-MIGRATION-sequence endDelimiter:--//
|
||||
-- ----------------------------------------------------------------------------
|
||||
|
||||
CREATE SEQUENCE IF NOT EXISTS hs_office.coopsharestransaction_legacy_id_seq
|
||||
CREATE SEQUENCE IF NOT EXISTS hs_office.coopsharetx_legacy_id_seq
|
||||
AS integer
|
||||
START 1000000000
|
||||
OWNED BY hs_office.coopsharestransaction_legacy_id.member_share_id;
|
||||
OWNED BY hs_office.coopsharetx_legacy_id.member_share_id;
|
||||
--//
|
||||
|
||||
|
||||
@ -30,9 +30,9 @@ CREATE SEQUENCE IF NOT EXISTS hs_office.coopsharestransaction_legacy_id_seq
|
||||
--changeset michael.hoennig:hs-office-coopshares-MIGRATION-default endDelimiter:--//
|
||||
-- ----------------------------------------------------------------------------
|
||||
|
||||
ALTER TABLE hs_office.coopsharestransaction_legacy_id
|
||||
ALTER TABLE hs_office.coopsharetx_legacy_id
|
||||
ALTER COLUMN member_share_id
|
||||
SET DEFAULT nextVal('hs_office.coopsharestransaction_legacy_id_seq');
|
||||
SET DEFAULT nextVal('hs_office.coopsharetx_legacy_id_seq');
|
||||
|
||||
--/
|
||||
|
||||
@ -41,8 +41,8 @@ ALTER TABLE hs_office.coopsharestransaction_legacy_id
|
||||
-- ----------------------------------------------------------------------------
|
||||
|
||||
CALL base.defineContext('schema-migration');
|
||||
INSERT INTO hs_office.coopsharestransaction_legacy_id(uuid, member_share_id)
|
||||
SELECT uuid, nextVal('hs_office.coopsharestransaction_legacy_id_seq') FROM hs_office.coopsharetx;
|
||||
INSERT INTO hs_office.coopsharetx_legacy_id(uuid, member_share_id)
|
||||
SELECT uuid, nextVal('hs_office.coopsharetx_legacy_id_seq') FROM hs_office.coopsharetx;
|
||||
--/
|
||||
|
||||
|
||||
@ -58,8 +58,8 @@ begin
|
||||
raise exception 'invalid usage of trigger';
|
||||
end if;
|
||||
|
||||
INSERT INTO hs_office.coopsharestransaction_legacy_id VALUES
|
||||
(NEW.uuid, nextVal('hs_office.coopsharestransaction_legacy_id_seq'));
|
||||
INSERT INTO hs_office.coopsharetx_legacy_id VALUES
|
||||
(NEW.uuid, nextVal('hs_office.coopsharetx_legacy_id_seq'));
|
||||
|
||||
return NEW;
|
||||
end; $$;
|
||||
@ -83,7 +83,7 @@ begin
|
||||
raise exception 'invalid usage of trigger';
|
||||
end if;
|
||||
|
||||
DELETE FROM hs_office.coopsharestransaction_legacy_id
|
||||
DELETE FROM hs_office.coopsharetx_legacy_id
|
||||
WHERE uuid = OLD.uuid;
|
||||
|
||||
return OLD;
|
||||
|
@ -0,0 +1,8 @@
|
||||
--liquibase formatted sql
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
--changeset timotheus.pokorra:hs-integration-SCHEMA endDelimiter:--//
|
||||
-- ----------------------------------------------------------------------------
|
||||
CREATE SCHEMA hs_integration;
|
||||
--//
|
@ -0,0 +1,18 @@
|
||||
--liquibase formatted sql
|
||||
|
||||
-- ============================================================================
|
||||
--changeset timotheus.pokorra:hs-global-integration-kimai endDelimiter:--//
|
||||
-- TODO.impl: also select column debitorNumber and do not filter anymore for '00'
|
||||
CREATE OR REPLACE VIEW hs_integration.time_customer AS
|
||||
SELECT p.partnernumber, debitor.defaultprefix
|
||||
FROM hs_office.partner p
|
||||
JOIN hs_office.relation AS pRel
|
||||
ON pRel.type = 'PARTNER'
|
||||
AND pRel.uuid = p.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';
|
||||
--//
|
@ -0,0 +1,102 @@
|
||||
|
||||
--liquibase formatted sql
|
||||
|
||||
-- ============================================================================
|
||||
--changeset timotheus.pokorra:hs-global-integration-znuny endDelimiter:--//
|
||||
-- TODO.impl: also select column debitorNumber and do not filter anymore for '00'
|
||||
CREATE OR REPLACE VIEW hs_integration.contact AS
|
||||
SELECT DISTINCT ON (uuid)
|
||||
partner.partnernumber as partnernumber,
|
||||
debitor.defaultprefix as defaultprefix,
|
||||
c.uuid as uuid,
|
||||
(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.familyname <> '' THEN per.familyname ELSE NULL END) as familyname,
|
||||
(CASE WHEN per.title <> '' THEN per.title ELSE NULL END) as title,
|
||||
(CASE WHEN per.tradename <> '' THEN per.tradename ELSE NULL END) as tradename,
|
||||
(CASE WHEN c.postaladdress->>'co' <> '' THEN c.postaladdress->>'co' ELSE NULL END) as co,
|
||||
c.postaladdress->>'street' as street,
|
||||
c.postaladdress->>'zipcode' as zipcode,
|
||||
c.postaladdress->>'city' as city,
|
||||
c.postaladdress->>'country' as country,
|
||||
c.phonenumbers->>'phone_private' as phone_private,
|
||||
c.phonenumbers->>'phone_office' as phone_office,
|
||||
c.phonenumbers->>'phone_mobile' as phone_mobile,
|
||||
c.phonenumbers->>'fax' as fax,
|
||||
c.emailaddresses->>'main' as email
|
||||
FROM hs_office.partner AS partner
|
||||
JOIN hs_office.partner_legacy_id AS partner_lid ON partner_lid.uuid = partner.uuid
|
||||
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'
|
||||
JOIN hs_office.contact AS c ON c.uuid = pRel.contactuuid
|
||||
JOIN hs_office.person AS per ON per.uuid = pRel.holderuuid
|
||||
UNION
|
||||
SELECT DISTINCT ON (uuid)
|
||||
partner.partnernumber as partnernumber,
|
||||
debitor.defaultprefix as defaultprefix,
|
||||
c.uuid as uuid,
|
||||
(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.familyname <> '' THEN per.familyname ELSE NULL END) as familyname,
|
||||
(CASE WHEN per.title <> '' THEN per.title ELSE NULL END) as title,
|
||||
(CASE WHEN per.tradename <> '' THEN per.tradename ELSE NULL END) as tradename,
|
||||
(CASE WHEN c.postaladdress->>'co' <> '' THEN c.postaladdress->>'co' ELSE NULL END) as co,
|
||||
c.postaladdress->>'street' as street,
|
||||
c.postaladdress->>'zipcode' as zipcode,
|
||||
c.postaladdress->>'city' as city,
|
||||
c.postaladdress->>'country' as country,
|
||||
c.phonenumbers->>'phone_private' as phone_private,
|
||||
c.phonenumbers->>'phone_office' as phone_office,
|
||||
c.phonenumbers->>'phone_mobile' as phone_mobile,
|
||||
c.phonenumbers->>'fax' as fax,
|
||||
c.emailaddresses->>'main' as email
|
||||
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'
|
||||
JOIN hs_office.relation AS rs1 ON rs1.uuid = partner.partnerreluuid AND rs1.type = 'PARTNER'
|
||||
JOIN hs_office.relation AS relation ON relation.anchoruuid = rs1.holderuuid
|
||||
JOIN hs_office.contact AS c ON c.uuid = relation.contactuuid
|
||||
JOIN hs_office.person AS per ON per.uuid = relation.holderuuid;
|
||||
|
||||
CREATE OR REPLACE VIEW hs_integration.ticket_customer_user AS
|
||||
SELECT c.uuid,
|
||||
max(c.partnernumber)::text as number,
|
||||
max(c.defaultprefix) as code,
|
||||
max(c.email) as login,
|
||||
max(c.salutation) as salut,
|
||||
max(c.givenname) as firstname,
|
||||
max(c.familyname) as lastname,
|
||||
max(c.title) as title,
|
||||
max(c.tradename) as firma,
|
||||
max(c.co) as co,
|
||||
max(c.street) as street,
|
||||
max(c.zipcode) as zipcode,
|
||||
max(c.city) as city,
|
||||
max(c.country) as country,
|
||||
max(concat_ws(', '::text, c.phone_office, c.phone_private)) AS phone,
|
||||
max(c.phone_private) as phone_private,
|
||||
max(c.phone_office) as phone_office,
|
||||
max(c.phone_mobile) as mobile,
|
||||
max(c.fax) as fax,
|
||||
max(c.email) as email,
|
||||
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
|
||||
FROM hs_integration.contact AS c
|
||||
JOIN hs_office.relation AS relation ON c.uuid = relation.contactuuid
|
||||
WHERE (c.defaultprefix != 'hsh' OR (c.partnernumber = 10000 AND c.email = 'hostmaster@hostsharing.net'))
|
||||
GROUP BY c.uuid;
|
||||
--//
|
@ -171,3 +171,9 @@ databaseChangeLog:
|
||||
file: db/changelog/7-hs-hosting/701-hosting-asset/7018-hs-hosting-asset-test-data.sql
|
||||
- include:
|
||||
file: db/changelog/9-hs-global/9000-statistics.sql
|
||||
- include:
|
||||
file: db/changelog/9-hs-global/9100-hs-integration-schema.sql
|
||||
- include:
|
||||
file: db/changelog/9-hs-global/9110-integration-kimai.sql
|
||||
- include:
|
||||
file: db/changelog/9-hs-global/9120-integration-znuny.sql
|
Reference in New Issue
Block a user