mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-09 01:09:51 +00:00
Merge branch 'issue182_fix_doublon_bug' into 'master'
Adjust query to transfer relationship from one person to another See merge request Chill-Projet/chill-bundles!603
This commit is contained in:
commit
a4a4aa119e
5
.changes/unreleased/Fixed-20231030-115441.yaml
Normal file
5
.changes/unreleased/Fixed-20231030-115441.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
kind: Fixed
|
||||||
|
body: Fix merging of double person files. Adjustement relationship sql statement
|
||||||
|
time: 2023-10-30T11:54:41.028058144+01:00
|
||||||
|
custom:
|
||||||
|
Issue: "182"
|
@ -24,9 +24,19 @@ class PersonMoveRelationHandler implements PersonMoveSqlHandlerInterface
|
|||||||
|
|
||||||
public function getSqls(string $className, string $field, Person $from, Person $to): array
|
public function getSqls(string $className, string $field, Person $from, Person $to): array
|
||||||
{
|
{
|
||||||
|
/* Insert sql statement taking into account two cases.
|
||||||
|
One where the person is the fromperson and another where the person is the toperson in the relationship.*/
|
||||||
$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 +45,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