fix(commercial) : merge pays embed dans countryOptions (clients) + desc migration (ERP-116)
- edit.vue : countryOptions merge la valeur country deja stockee sur chaque adresse, comme les autres selects de l'ecran (resilience ERP-102 : le select ne se vide plus si /countries echoue ou si un pays est hors referentiel). - new.vue : France garantie en fallback dans les options si /countries echoue (coherent avec la preselection par defaut du draft d'adresse). - migration : getDescription corrigee (7 pays seedes, Suisse incluse).
This commit is contained in:
@@ -556,8 +556,19 @@ const contactOptions = computed<RefOption[]>(() =>
|
|||||||
|
|
||||||
// Pays : referentiel `country` charge via l'API (ERP-116), en remplacement de
|
// Pays : referentiel `country` charge via l'API (ERP-116), en remplacement de
|
||||||
// l'ancienne liste codee en dur. Valeur = nom du pays (l'adresse stocke
|
// l'ancienne liste codee en dur. Valeur = nom du pays (l'adresse stocke
|
||||||
// `country` en chaine libre, donc value === label).
|
// `country` en chaine libre, donc value === label). On merge la valeur deja
|
||||||
const countryOptions = computed<RefOption[]>(() => referentials.countries.value)
|
// stockee sur chaque adresse (embed) — comme les autres selects de cet ecran —
|
||||||
|
// pour ne pas vider le select si `/countries` echoue (resilience ERP-102) ou si
|
||||||
|
// un pays historique n'appartient pas au referentiel.
|
||||||
|
const embedCountryOptions = computed<RefOption[]>(() =>
|
||||||
|
mergeOptions([], (client.value?.addresses ?? [])
|
||||||
|
.map(a => a.country)
|
||||||
|
.filter((c): c is string => !!c)
|
||||||
|
.map(c => ({ value: c, label: c }))),
|
||||||
|
)
|
||||||
|
const countryOptions = computed<RefOption[]>(() =>
|
||||||
|
mergeOptions(referentials.countries.value, embedCountryOptions.value),
|
||||||
|
)
|
||||||
|
|
||||||
const relationOptions = computed<RefOption[]>(() => [
|
const relationOptions = computed<RefOption[]>(() => [
|
||||||
{ value: 'distributeur', label: t('commercial.clients.form.main.relationDistributor') },
|
{ value: 'distributeur', label: t('commercial.clients.form.main.relationDistributor') },
|
||||||
|
|||||||
@@ -785,8 +785,15 @@ const contactOptions = computed<RefOption[]>(() =>
|
|||||||
|
|
||||||
// Pays disponibles : referentiel `country` charge via l'API (ERP-116), en
|
// Pays disponibles : referentiel `country` charge via l'API (ERP-116), en
|
||||||
// remplacement de l'ancienne liste codee en dur. France reste preselectionnee
|
// remplacement de l'ancienne liste codee en dur. France reste preselectionnee
|
||||||
// par defaut sur chaque adresse (cf. valeur initiale du draft d'adresse).
|
// par defaut sur chaque adresse (cf. valeur initiale du draft d'adresse) : on
|
||||||
const countryOptions = computed<RefOption[]>(() => referentials.countries.value)
|
// garantit donc sa presence en fallback si `/countries` echoue (resilience
|
||||||
|
// ERP-102), pour ne pas afficher un select vide sur une valeur deja soumise.
|
||||||
|
const countryOptions = computed<RefOption[]>(() => {
|
||||||
|
const list = referentials.countries.value
|
||||||
|
return list.some(c => c.value === 'France')
|
||||||
|
? list
|
||||||
|
: [{ value: 'France', label: 'France' }, ...list]
|
||||||
|
})
|
||||||
|
|
||||||
// Type d'adresse (Select) obligatoire + RG-1.10 (>= 1 site) + RG-1.11 (email
|
// Type d'adresse (Select) obligatoire + RG-1.10 (>= 1 site) + RG-1.11 (email
|
||||||
// facturation si Facturation) sur chaque adresse.
|
// facturation si Facturation) sur chaque adresse.
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ final class Version20260609100000 extends AbstractMigration
|
|||||||
{
|
{
|
||||||
public function getDescription(): string
|
public function getDescription(): string
|
||||||
{
|
{
|
||||||
return 'ERP-116 : table country (referentiel pays) + seed des 6 pays.';
|
return 'ERP-116 : table country (referentiel pays) + seed des 7 pays.';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function up(Schema $schema): void
|
public function up(Schema $schema): void
|
||||||
|
|||||||
Reference in New Issue
Block a user