mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Adjust query to transfer relationship from one person to another depending on whether original person was in the to or from position
This commit is contained in:
parent
b2aa465b03
commit
39bb06b991
@ -26,7 +26,15 @@ class PersonMoveRelationHandler implements PersonMoveSqlHandlerInterface
|
|||||||
{
|
{
|
||||||
$insertSql = sprintf(<<<'SQL'
|
$insertSql = sprintf(<<<'SQL'
|
||||||
INSERT INTO chill_person_relationships (id, relation_id, reverse, createdat, createdby_id, fromperson_id, toperson_id)
|
INSERT INTO chill_person_relationships (id, relation_id, reverse, createdat, createdby_id, fromperson_id, toperson_id)
|
||||||
SELECT nextval('chill_person_relationships_id_seq'), relation_id, reverse, createdat, createdby_id, fromperson_id, toperson_id
|
SELECT nextval('chill_person_relationships_id_seq'), relation_id, reverse, createdat, createdby_id,
|
||||||
|
CASE
|
||||||
|
WHEN cpr.fromperson_id = %d THEN %d
|
||||||
|
ELSE cpr.fromperson_id
|
||||||
|
END as fromperson,
|
||||||
|
CASE
|
||||||
|
WHEN cpr.toperson_id = %d THEN %d
|
||||||
|
ELSE cpr.toperson_id
|
||||||
|
END as toperson
|
||||||
FROM chill_person_relationships cpr
|
FROM chill_person_relationships cpr
|
||||||
WHERE fromperson_id = %d OR toperson_id = %d
|
WHERE fromperson_id = %d OR toperson_id = %d
|
||||||
AND NOT EXISTS (
|
AND NOT EXISTS (
|
||||||
@ -35,7 +43,7 @@ class PersonMoveRelationHandler implements PersonMoveSqlHandlerInterface
|
|||||||
cpr2.fromperson_id = %d AND cpr2.toperson_id = %d
|
cpr2.fromperson_id = %d AND cpr2.toperson_id = %d
|
||||||
OR cpr2.fromperson_id = %d AND cpr2.toperson_id = %d
|
OR cpr2.fromperson_id = %d AND cpr2.toperson_id = %d
|
||||||
);
|
);
|
||||||
SQL, $from->getId(), $from->getId(), $to->getId(), $from->getId(), $from->getId(), $to->getId());
|
SQL, $from->getId(), $to->getId(), $from->getId(), $to->getId(), $from->getId(), $from->getId(), $to->getId(), $from->getId(), $from->getId(), $to->getId());
|
||||||
|
|
||||||
$deleteSql = [
|
$deleteSql = [
|
||||||
sprintf('DELETE FROM chill_person_relationships WHERE fromperson_id = %d', $from->getId()),
|
sprintf('DELETE FROM chill_person_relationships WHERE fromperson_id = %d', $from->getId()),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user