Anomalie #15941
ferméArgument contact is empty suite à une migration 18.10 > 20.03.14
Description
backlog :
Maarcourrier en 2003.14 suite à une migration d'une 18.10
je fais une recherche globale avec 500 résutats en superadmin et j'ai l'erreur suivante :
Fatal error: Uncaught Exception: Argument contact is empty in /var/www/html/MaarchCourrier/src/core/models/ValidatorModel.php:28 Stack trace: #0 /var/www/html/MaarchCourrier/src/app/contact/controllers/ContactController.php(1561): SrcCore\models\ValidatorModel::notEmpty(Array, Array) #1 /var/www/html/MaarchCourrier/src/app/contact/controllers/ContactController.php(1439): Contact\controllers\ContactController::getFormattedOnlyContact(Array) #2 /var/www/html/MaarchCourrier/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php(799): Contact\controllers\ContactController::getFormattedContacts(Array) #3 /var/www/html/MaarchCourrier/core/class/class_core_tools.php(1258): require('/var/www/html/M...') #4 /var/www/html/MaarchCourrier/apps/maarch_entreprise/index.php(225): core_tools->insert_page() #5 {main} thrown in /var/www/html/MaarchCourrier/src/core/models/ValidatorModel.php on line 28
Analyse
certains courriers sont associés à des contacts qui n'existent pas dans la table contact, en plus d'etre associés aux bons contacts.
1/ On affiche un courrier qui bug, il est associé a 2 contacts
grigny_2003=# select * from resource_contacts where res_id = 4535;
-[ RECORD 1 ]------
id | 2
res_id | 4535
item_id | 216
type | user
mode | recipient
-[ RECORD 2 ]------
id | 223
res_id | 4535
item_id | 5651
type | contact
mode | sender
-[ RECORD 3 ]------
id | 224
res_id | 4535
item_id | 1595
type | contact
mode | sender
Un des deux n'existe pas :
grigny_2003=# select * from contacts where id = 5651;
(0 ligne)
grigny_2003=# select * from contacts where id = 1595;
-[ RECORD 1 ]-------+----------------------------
id | 1595
civility |
firstname |
lastname |
company | COTTEL Réseaux
department |
function |
address_number |
address_street |
address_additional1 |
address_additional2 |
address_postcode |
address_town |
address_country |
email |
phone |
communication_means |
notes |
creator | 236
creation_date | 2019-10-14 12:00:28.315447
modification_date |
enabled | t
custom_fields | {"5": "Adresse principale"}
external_id | {"m2m": ""}
et ce probleme est présent sur d'autres courriers :
select count(*) from resource_contacts where item_id not in (select id from contacts)
-[ RECORD 1 ]
count | 90
Pour résoudre nous avons passés les commandes suivantes :
delete from resource_contacts where id in (select id from resource_contacts where item_id not in (select id from contacts) and mode = 'sender');
DELETE 83
grigny_2003=# delete from resource_contacts where id in (select id from resource_contacts where item_id not in (select id from contacts) and mode = 'recipient');
DELETE 7
--> probleme résolu
Mis à jour par Emmanuel DILLARD il y a presque 4 ans
- Statut changé de A qualifier à R&D - A étudier
Mis à jour par Emmanuel DILLARD il y a presque 4 ans
- Statut changé de R&D - A étudier à Etude planifiée
Mis à jour par Emmanuel DILLARD il y a presque 4 ans
- Echéance changé de 18/01/2021 à 25/01/2021
Mis à jour par Emmanuel DILLARD il y a presque 4 ans
- Echéance
25/01/2021supprimé - Statut changé de Etude planifiée à 17
- Assigné à changé de Emmanuel DILLARD à Robin SALDINGER
Des correctifs ont été faits en 20.03.13.
Possible d'avoir la base avant migration ?
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Priorité changé de 2-Sérieux à 3-Mineur
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Statut changé de 17 à Complément d'Informations
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Projet changé de 298 à Backlog Courrier
- Version cible changé de Inscription Backlog Courrier à Inscription Backlog
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Statut changé de Complément d'Informations à Clôturé
Cette demande est en attente de complément d'information depuis plus de 60 jours.
Elle est clôturée automatiquement.
Si vous pensez que c'est une erreur, vous pouvez la remettre en traitement