Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion scripts/partner_merge/02_build_map.sql
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,11 @@ SELECT m.master_id,
sum(f.comenzi_v) + mf.comenzi_v AS comenzi_v_asteptate,
sum(f.comenzi_a) + mf.comenzi_a AS comenzi_a_asteptate,
sum(f.livrari) + mf.livrari AS livrari_asteptate,
round(sum(f.sold) + mf.sold, 2) AS sold_asteptat
round(sum(f.sold) + mf.sold, 2) AS sold_asteptat,
-- Denumirile fișelor absorbite, capturate ACUM: după merge ele nu mai există,
-- deci un JOIN în 04 nu ar mai găsi nimic. Servesc la corectarea manuală a
-- masterilor cu denumire degradată (vezi 04, secțiunea E).
string_agg(DISTINCT f.name, ' | ') AS denumiri_absorbite
FROM pm_map m
JOIN pm_face f ON f.id = m.old_id
JOIN pm_face mf ON mf.id = m.master_id
Expand Down
11 changes: 6 additions & 5 deletions scripts/partner_merge/04_verify.sql
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,11 @@ WHERE r.facturi <> s.facturi_asteptate
ORDER BY 1 LIMIT 50;

\echo ''
\echo '== D. Referințe orfane rămase (legături polimorfe — fără protecție FK) =='
\echo '== D. Orfani polimorfi ÎN TOATĂ BAZA (stare preexistentă, nu efectul acestui lot) =='
-- ATENȚIE la interpretare: numără orfanii din toată baza, inclusiv cei lăsați de ștergeri
-- anterioare făcute din interfață sau din alte scripturi. Efectul lotului curent se citește
-- din verificarea de la finalul lui 03, care filtrează pe pm_map. O valoare nenulă aici NU
-- înseamnă că unificarea a lăsat referințe în urmă.
SELECT 'mail_activity' AS unde, count(*) AS orfane FROM mail_activity WHERE res_model='res.partner' AND res_id NOT IN (SELECT id FROM res_partner)
UNION ALL SELECT 'ir_attachment', count(*) FROM ir_attachment WHERE res_model='res.partner' AND res_id NOT IN (SELECT id FROM res_partner)
UNION ALL SELECT 'mail_message', count(*) FROM mail_message WHERE model='res.partner' AND res_id NOT IN (SELECT id FROM res_partner)
Expand All @@ -86,10 +90,7 @@ SELECT p.id, p.name AS denumire_master, p.vat,
WHEN p.name !~ ' ' AND p.name ~ '[[:lower:]][[:upper:]]' THEN 'cuvinte lipite (import prost)'
WHEN p.name !~ ' ' AND length(p.name) > 8 THEN 'fără spații'
END AS motiv,
-- denumirea de pe fișele absorbite, ca alternativă de corectare
(SELECT string_agg(DISTINCT o.name, ' | ')
FROM pm_map m JOIN res_partner o ON o.id = m.old_id
WHERE m.master_id = p.id) AS variante_absorbite
s.denumiri_absorbite AS variante_absorbite
FROM pm_snapshot s JOIN res_partner p ON p.id = s.master_id
WHERE p.name ~ '^[A-Z]{0,2}[0-9]{4,}$'
OR (p.name !~ ' ' AND (p.name ~ '[[:lower:]][[:upper:]]' OR length(p.name) > 8))
Expand Down
Loading