diff --git a/frontend/i18n/locales/fr.json b/frontend/i18n/locales/fr.json index b3c0490..a01ee69 100644 --- a/frontend/i18n/locales/fr.json +++ b/frontend/i18n/locales/fr.json @@ -99,6 +99,90 @@ "phoneFormat": "Format de téléphone invalide (attendu : XX XX XX XX XX).", "emailFormat": "Format d'email invalide.", "addressCategoryForbidden": "Une catégorie « Distributeur » ou « Courtier » ne peut pas qualifier une adresse." + }, + "form": { + "title": "Ajouter un client", + "submit": "Valider", + "duplicateCompany": "Un client portant ce nom de société existe déjà.", + "main": { + "companyName": "Nom de l'entreprise", + "firstName": "Prénom", + "lastName": "Nom", + "email": "Email", + "phonePrimary": "Téléphone", + "phoneSecondary": "Téléphone (2)", + "addPhone": "Ajouter un numéro", + "categories": "Catégories", + "relation": "Relation", + "relationNone": "Aucune", + "relationDistributor": "Distributeur", + "relationBroker": "Courtier", + "distributorName": "Nom du distributeur", + "brokerName": "Nom du courtier", + "triageService": "Prestation de triage" + }, + "information": { + "description": "Description", + "competitors": "Concurrents", + "foundedAt": "Date de création", + "employeesCount": "Nombre de salariés", + "revenueAmount": "Chiffre d'affaires", + "profitAmount": "Résultat", + "directorName": "Dirigeant" + }, + "contact": { + "title": "Contact {n}", + "lastName": "Nom", + "firstName": "Prénom", + "jobTitle": "Fonction", + "email": "Email", + "phonePrimary": "Téléphone", + "phoneSecondary": "Téléphone (2)", + "addPhone": "Ajouter un numéro", + "remove": "Supprimer le contact", + "add": "Nouveau contact" + }, + "address": { + "title": "Adresse {n}", + "prospect": "Prospect", + "delivery": "Adresse de livraison", + "billing": "Facturation", + "categories": "Catégorie", + "country": "Pays", + "postalCode": "Code postal", + "city": "Ville", + "street": "Adresse", + "streetComplement": "Adresse complémentaire", + "sites": "Sites Starseed", + "contacts": "Contact(s) rattaché(s)", + "billingEmail": "Email de facturation", + "remove": "Supprimer l'adresse", + "add": "Nouvelle adresse", + "degraded": "Service d'adresse indisponible : saisie de la ville et de l'adresse en mode libre." + }, + "accounting": { + "siren": "SIREN", + "accountNumber": "Numéro de compte", + "tvaMode": "Mode de TVA", + "nTva": "N° de TVA", + "paymentDelay": "Délai de règlement", + "paymentType": "Type de règlement", + "bank": "Banque", + "ribTitle": "RIB {n}", + "ribLabel": "Libellé", + "ribBic": "BIC", + "ribIban": "IBAN", + "addRib": "Ajouter un RIB", + "removeRib": "Supprimer le RIB" + }, + "confirmDelete": { + "title": "Confirmer la suppression", + "contact": "Supprimer ce contact ?", + "address": "Supprimer cette adresse ?", + "rib": "Supprimer ce RIB ?", + "cancel": "Annuler", + "confirm": "Confirmer" + } } } }, diff --git a/frontend/modules/commercial/pages/clients/new.vue b/frontend/modules/commercial/pages/clients/new.vue new file mode 100644 index 0000000..f7b782c --- /dev/null +++ b/frontend/modules/commercial/pages/clients/new.vue @@ -0,0 +1,891 @@ + + + {{ t('commercial.clients.form.title') }} + + + + + + + + + + + main.categoryIris = v.map(String)" + /> + + main.distributorIri = v === null ? null : String(v)" + /> + main.brokerIri = v === null ? null : String(v)" + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + contacts[index] = v" + @remove="askRemoveContact(index)" + /> + + + + + + + + + + + addresses[index] = v" + @remove="askRemoveAddress(index)" + @degraded="onAddressDegraded" + /> + + + + + + + + + + + + + + + accounting.tvaModeIri = v === null ? null : String(v)" + /> + + accounting.paymentDelayIri = v === null ? null : String(v)" + /> + + accounting.bankIri = v === null ? null : String(v)" + /> + + + + + + + {{ t('commercial.clients.form.accounting.ribTitle', { n: index + 1 }) }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ t('commercial.clients.form.confirmDelete.title') }} + + {{ confirmModal.message }} + + + + + + + + +
{{ confirmModal.message }}