From 2f27b8537cacfc8842a8ba9a38e3d329ff17854a Mon Sep 17 00:00:00 2001 From: jcasado Date: Wed, 20 Mar 2024 12:50:47 +0100 Subject: [PATCH 01/68] refactor: #6946 add table and floating button --- src/components/ui/VnRow.vue | 6 +- src/pages/Entry/Card/EntryNotes.vue | 156 ++++++++++++++++++---------- 2 files changed, 105 insertions(+), 57 deletions(-) diff --git a/src/components/ui/VnRow.vue b/src/components/ui/VnRow.vue index f2d2b55de..a2f89ff3f 100644 --- a/src/components/ui/VnRow.vue +++ b/src/components/ui/VnRow.vue @@ -1,17 +1,17 @@ From 0dee7e8cc9f86721f11a61e36abf62e0cbb6501c Mon Sep 17 00:00:00 2001 From: Kevin Martinez Date: Wed, 27 Mar 2024 16:51:44 -0300 Subject: [PATCH 05/68] Create worker calendar submodule --- src/pages/Worker/Card/WorkerCalendar.vue | 95 +++++++ .../Worker/Card/WorkerCalendarFilter.vue | 240 ++++++++++++++++++ src/pages/Worker/Card/WorkerCalendarItem.vue | 41 +++ src/router/modules/worker.js | 11 +- 4 files changed, 386 insertions(+), 1 deletion(-) create mode 100644 src/pages/Worker/Card/WorkerCalendar.vue create mode 100644 src/pages/Worker/Card/WorkerCalendarFilter.vue create mode 100644 src/pages/Worker/Card/WorkerCalendarItem.vue diff --git a/src/pages/Worker/Card/WorkerCalendar.vue b/src/pages/Worker/Card/WorkerCalendar.vue new file mode 100644 index 000000000..aca65750a --- /dev/null +++ b/src/pages/Worker/Card/WorkerCalendar.vue @@ -0,0 +1,95 @@ + + + + + + +es: + Search worker: Buscar trabajador + You can search by worker id or name: Puedes buscar por id o nombre del trabajador + diff --git a/src/pages/Worker/Card/WorkerCalendarFilter.vue b/src/pages/Worker/Card/WorkerCalendarFilter.vue new file mode 100644 index 000000000..d73305085 --- /dev/null +++ b/src/pages/Worker/Card/WorkerCalendarFilter.vue @@ -0,0 +1,240 @@ + + + + + + + +es: + Used: Utilizados + Spent: Utilizadas + Paid holidays: Vacaciones pagadas + of: de + days: días + hours: horas + Year: Año + Contract: Contrato + Festive: Festivo + Current day: Día actual + diff --git a/src/pages/Worker/Card/WorkerCalendarItem.vue b/src/pages/Worker/Card/WorkerCalendarItem.vue new file mode 100644 index 000000000..93b1d03c5 --- /dev/null +++ b/src/pages/Worker/Card/WorkerCalendarItem.vue @@ -0,0 +1,41 @@ + + diff --git a/src/router/modules/worker.js b/src/router/modules/worker.js index 1c722afe8..1331e7169 100644 --- a/src/router/modules/worker.js +++ b/src/router/modules/worker.js @@ -12,7 +12,7 @@ export default { redirect: { name: 'WorkerMain' }, menus: { main: ['WorkerList', 'WorkerDepartment'], - card: ['WorkerNotificationsManager', 'WorkerPda'], + card: ['WorkerNotificationsManager', 'WorkerCalendar', 'WorkerPda'], departmentCard: ['BasicData'], }, children: [ @@ -76,6 +76,15 @@ export default { component: () => import('src/pages/Worker/Card/WorkerNotificationsManager.vue'), }, + { + name: 'WorkerCalendar', + path: 'calendar', + meta: { + title: 'calendar', + icon: 'calendar_today', + }, + component: () => import('src/pages/Worker/Card/WorkerCalendar.vue'), + }, { name: 'WorkerPda', path: 'pda', From 47a588fff42e2a6dedcb50ca7b47ccacda3ef17b Mon Sep 17 00:00:00 2001 From: Kevin Martinez Date: Tue, 2 Apr 2024 09:00:15 -0300 Subject: [PATCH 06/68] Update WorkerCalendarItem --- src/pages/Worker/Card/WorkerCalendar.vue | 35 ++++++++++++------ src/pages/Worker/Card/WorkerCalendarItem.vue | 39 ++++++++++++++------ 2 files changed, 50 insertions(+), 24 deletions(-) diff --git a/src/pages/Worker/Card/WorkerCalendar.vue b/src/pages/Worker/Card/WorkerCalendar.vue index aca65750a..73111cafa 100644 --- a/src/pages/Worker/Card/WorkerCalendar.vue +++ b/src/pages/Worker/Card/WorkerCalendar.vue @@ -5,7 +5,7 @@ import WorkerCalendarFilter from 'pages/Worker/Card/WorkerCalendarFilter.vue'; import FetchData from 'components/FetchData.vue'; import { useRoute } from 'vue-router'; import { ref } from 'vue'; -import WorkerCalendarItem from "pages/Worker/Card/WorkerCalendarItem.vue"; +import WorkerCalendarItem from 'pages/Worker/Card/WorkerCalendarItem.vue'; const stateStore = useStateStore(); const route = useRoute(); @@ -67,25 +67,36 @@ const onFetchActiveContract = (data) => { - - + +
+ +
diff --git a/src/pages/Worker/Card/WorkerCalendarItem.vue b/src/pages/Worker/Card/WorkerCalendarItem.vue index 93b1d03c5..b06d8f028 100644 --- a/src/pages/Worker/Card/WorkerCalendarItem.vue +++ b/src/pages/Worker/Card/WorkerCalendarItem.vue @@ -1,9 +1,11 @@ From 33c54042dfc4129bdb8092db8d6dfc2311870e80 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 2 Apr 2024 14:12:01 +0200 Subject: [PATCH 07/68] refactor: refs #6425 translation files in .yml format and minor changes --- quasar.config.js | 10 +- src/i18n/en/index.js | 1227 ------------------------- src/i18n/es/index.js | 1227 ------------------------- src/i18n/index.js | 35 +- src/i18n/locale/en.yml | 1104 ++++++++++++++++++++++ src/i18n/locale/es.yml | 1101 ++++++++++++++++++++++ src/pages/Customer/CustomerFilter.vue | 5 - src/pages/Customer/Translation/en.js | 8 - src/pages/Customer/Translation/es.js | 8 - src/pages/Customer/locale/en.yml | 4 + src/pages/Customer/locale/es.yml | 4 + src/pages/Entry/Translation/en.js | 14 - src/pages/Entry/Translation/es.js | 14 - src/pages/Entry/locale/en.yml | 8 + src/pages/Entry/locale/es.yml | 8 + src/pages/Travel/Translation/en.js | 8 - src/pages/Travel/Translation/es.js | 8 - src/pages/Travel/locale/en.yml | 4 + src/pages/Travel/locale/es.yml | 4 + vitest.config.js | 2 +- 20 files changed, 2257 insertions(+), 2546 deletions(-) delete mode 100644 src/i18n/en/index.js delete mode 100644 src/i18n/es/index.js create mode 100644 src/i18n/locale/en.yml create mode 100644 src/i18n/locale/es.yml delete mode 100644 src/pages/Customer/Translation/en.js delete mode 100644 src/pages/Customer/Translation/es.js create mode 100644 src/pages/Customer/locale/en.yml create mode 100644 src/pages/Customer/locale/es.yml delete mode 100644 src/pages/Entry/Translation/en.js delete mode 100644 src/pages/Entry/Translation/es.js create mode 100644 src/pages/Entry/locale/en.yml create mode 100644 src/pages/Entry/locale/es.yml delete mode 100644 src/pages/Travel/Translation/en.js delete mode 100644 src/pages/Travel/Translation/es.js create mode 100644 src/pages/Travel/locale/en.yml create mode 100644 src/pages/Travel/locale/es.yml diff --git a/quasar.config.js b/quasar.config.js index 2d8289508..ef7cbbeb7 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -93,13 +93,11 @@ module.exports = configure(function (/* ctx */) { [ VueI18nPlugin({ runtimeOnly: false, + include: [ + path.resolve(__dirname, './src/i18n/locale/**'), + path.resolve(__dirname, './src/pages/**/locale/**'), + ], }), - { - // if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false` - // compositionOnly: false, - // you need to set i18n resource including paths ! - include: path.resolve(__dirname, './src/i18n/**'), - }, ], ], }, diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js deleted file mode 100644 index 80744b83d..000000000 --- a/src/i18n/en/index.js +++ /dev/null @@ -1,1227 +0,0 @@ -export default { - globals: { - lang: { - es: 'Spanish', - en: 'English', - }, - language: 'Language', - entity: 'Entity', - user: 'User', - details: 'Details', - collapseMenu: 'Collapse left menu', - backToDashboard: 'Return to dashboard', - notifications: 'Notifications', - userPanel: 'User panel', - modules: 'Modules', - pinnedModules: 'Pinned modules', - darkMode: 'Dark mode', - logOut: 'Log out', - date: 'Date', - dataSaved: 'Data saved', - dataDeleted: 'Data deleted', - search: 'Search', - changes: 'Changes', - dataCreated: 'Data created', - add: 'Add', - create: 'Create', - edit: 'Edit', - save: 'Save', - remove: 'Remove', - reset: 'Reset', - close: 'Close', - cancel: 'Cancel', - confirm: 'Confirm', - assign: 'Assign', - back: 'Back', - yes: 'Yes', - no: 'No', - noChanges: 'No changes to save', - changesToSave: 'You have changes pending to save', - confirmRemove: 'You are about to delete this row. Are you sure?', - rowAdded: 'Row added', - rowRemoved: 'Row removed', - pleaseWait: 'Please wait...', - noPinnedModules: `You don't have any pinned modules`, - summary: { - basicData: 'Basic data', - }, - today: 'Today', - yesterday: 'Yesterday', - dateFormat: 'en-GB', - microsip: 'Open in MicroSIP', - noSelectedRows: `You don't have any line selected`, - downloadCSVSuccess: 'CSV downloaded successfully', - reference: 'Reference', - agency: 'Agency', - wareHouseOut: 'Warehouse Out', - wareHouseIn: 'Warehouse In', - landed: 'Landed', - shipped: 'Shipped', - totalEntries: 'Total entries', - amount: 'Amount', - packages: 'Packages', - download: 'Download', - selectRows: 'Select all { numberRows } row(s)', - allRows: 'All { numberRows } row(s)', - markAll: 'Mark all', - requiredField: 'Required field', - class: 'clase', - type: 'Type', - reason: 'reason', - noResults: 'No results', - system: 'System', - warehouse: 'Warehouse', - company: 'Company', - fieldRequired: 'Field required', - allowedFilesText: 'Allowed file types: { allowedContentTypes }', - smsSent: 'SMS sent', - confirmDeletion: 'Confirm deletion', - confirmDeletionMessage: 'Are you sure you want to delete this?', - description: 'Description', - id: 'Id', - order: 'Order', - original: 'Original', - file: 'File', - selectFile: 'Select a file', - copyClipboard: 'Copy on clipboard', - salesPerson: 'SalesPerson', - }, - errors: { - statusUnauthorized: 'Access denied', - statusInternalServerError: 'An internal server error has ocurred', - statusBadGateway: 'It seems that the server has fall down', - statusGatewayTimeout: 'Could not contact the server', - userConfig: 'Error fetching user config', - writeRequest: 'The requested operation could not be completed', - }, - login: { - title: 'Login', - username: 'Username', - password: 'Password', - submit: 'Log in', - keepLogin: 'Keep me logged in', - loginSuccess: 'You have successfully logged in', - loginError: 'Invalid username or password', - fieldRequired: 'This field is required', - twoFactorRequired: 'Two-factor verification required', - pageTitles: { - logIn: 'Login', - }, - }, - twoFactor: { - code: 'Code', - validate: 'Validate', - insert: 'Enter the verification code', - explanation: - 'Please, enter the verification code that we have sent to your email in the next 5 minutes', - pageTitles: { - twoFactor: 'Two-Factor', - }, - }, - verifyEmail: { - pageTitles: { - verifyEmail: 'Email verification', - }, - }, - dashboard: { - pageTitles: { - dashboard: 'Dashboard', - }, - }, - customer: { - pageTitles: { - customers: 'Customers', - create: 'Create', - list: 'List', - webPayments: 'Web Payments', - extendedList: 'Extended list', - notifications: 'Notifications', - defaulter: 'Defaulter', - createCustomer: 'Create customer', - summary: 'Summary', - basicData: 'Basic data', - fiscalData: 'Fiscal data', - billingData: 'Billing data', - consignees: 'Consignees', - notes: 'Notes', - credits: 'Credits', - greuges: 'Greuges', - balance: 'Balance', - recoveries: 'Recoveries', - webAccess: 'Web access', - log: 'Log', - sms: 'Sms', - creditManagement: 'Credit management', - creditContracts: 'Credit contracts', - creditOpinion: 'Credit opinion', - others: 'Others', - }, - list: { - phone: 'Phone', - email: 'Email', - customerOrders: 'Display customer orders', - moreOptions: 'More options', - }, - card: { - customerList: 'Customer list', - customerId: 'Claim ID', - salesPerson: 'Sales person', - credit: 'Credit', - securedCredit: 'Secured credit', - payMethod: 'Pay method', - debt: 'Debt', - isDisabled: 'Customer is disabled', - isFrozen: 'Customer is frozen', - hasDebt: 'Customer has debt', - notChecked: 'Customer not checked', - noWebAccess: 'Web access is disabled', - businessTypeFk: 'Business type', - }, - summary: { - basicData: 'Basic data', - fiscalAddress: 'Fiscal address', - fiscalData: 'Fiscal data', - billingData: 'Billing data', - consignee: 'Default consignee', - businessData: 'Business data', - financialData: 'Financial data', - customerId: 'Customer ID', - name: 'Name', - contact: 'Contact', - phone: 'Phone', - mobile: 'Mobile', - email: 'Email', - salesPerson: 'Sales person', - contactChannel: 'Contact channel', - socialName: 'Social name', - fiscalId: 'Fiscal ID', - postcode: 'Postcode', - province: 'Province', - country: 'Country', - street: 'Address', - isEqualizated: 'Is equalizated', - isActive: 'Is active', - invoiceByAddress: 'Invoice by address', - verifiedData: 'Verified data', - hasToInvoice: 'Has to invoice', - notifyByEmail: 'Notify by email', - vies: 'VIES', - payMethod: 'Pay method', - bankAccount: 'Bank account', - dueDay: 'Due day', - hasLcr: 'Has LCR', - hasCoreVnl: 'Has core VNL', - hasB2BVnl: 'Has B2B VNL', - addressName: 'Address name', - addressCity: 'City', - addressStreet: 'Street', - username: 'Username', - webAccess: 'Web access', - totalGreuge: 'Total greuge', - mana: 'Mana', - priceIncreasingRate: 'Price increasing rate', - averageInvoiced: 'Average invoiced', - claimRate: 'Claming rate', - risk: 'Risk', - riskInfo: 'Invoices minus payments plus orders not yet invoiced', - credit: 'Credit', - creditInfo: `Company's maximum risk`, - securedCredit: 'Secured credit', - securedCreditInfo: `Solunion's maximum risk`, - balance: 'Balance', - balanceInfo: 'Invoices minus payments', - balanceDue: 'Balance due', - balanceDueInfo: 'Deviated invoices minus payments', - recoverySince: 'Recovery since', - businessType: 'Business Type', - city: 'City', - rating: 'Rating', - recommendCredit: 'Recommended credit', - }, - basicData: { - socialName: 'Fiscal name', - businessType: 'Business type', - contact: 'Contact', - email: 'Email', - phone: 'Phone', - mobile: 'Mobile', - salesPerson: 'Sales person', - contactChannel: 'Contact channel', - }, - extendedList: { - tableVisibleColumns: { - id: 'Identifier', - name: 'Name', - fi: 'Tax number', - salesPersonFk: 'Salesperson', - credit: 'Credit', - creditInsurance: 'Credit insurance', - phone: 'Phone', - mobile: 'Mobile', - street: 'Street', - countryFk: 'Country', - provinceFk: 'Province', - city: 'City', - postcode: 'Postcode', - email: 'Email', - created: 'Created', - businessTypeFk: 'Business type', - payMethodFk: 'Billing data', - sageTaxTypeFk: 'Sage tax type', - sageTransactionTypeFk: 'Sage tr. type', - isActive: 'Active', - isVies: 'Vies', - isTaxDataChecked: 'Verified data', - isEqualizated: 'Is equalizated', - isFreezed: 'Freezed', - hasToInvoice: 'Invoice', - hasToInvoiceByAddress: 'Invoice by address', - isToBeMailed: 'Mailing', - hasLcr: 'Received LCR', - hasCoreVnl: 'VNL core received', - hasSepaVnl: 'VNL B2B received', - }, - }, - }, - entry: { - pageTitles: { - entries: 'Entries', - list: 'List', - summary: 'Summary', - basicData: 'Basic data', - buys: 'Buys', - notes: 'Notes', - dms: 'File management', - log: 'Log', - create: 'Create', - latestBuys: 'Latest buys', - }, - list: { - newEntry: 'New entry', - landed: 'Landed', - invoiceNumber: 'Invoice number', - supplier: 'Supplier', - booked: 'Booked', - confirmed: 'Confirmed', - ordered: 'Ordered', - }, - summary: { - commission: 'Commission', - currency: 'Currency', - company: 'Company', - reference: 'Reference', - invoiceNumber: 'Invoice number', - ordered: 'Ordered', - confirmed: 'Confirmed', - booked: 'Booked', - raid: 'Raid', - excludedFromAvailable: 'Inventory', - travelReference: 'Reference', - travelAgency: 'Agency', - travelShipped: 'Shipped', - travelWarehouseOut: 'Warehouse Out', - travelDelivered: 'Delivered', - travelLanded: 'Landed', - travelWarehouseIn: 'Warehouse In', - travelReceived: 'Received', - buys: 'Buys', - quantity: 'Quantity', - stickers: 'Stickers', - package: 'Package', - weight: 'Weight', - packing: 'Packing', - grouping: 'Grouping', - buyingValue: 'Buying value', - import: 'Import', - pvp: 'PVP', - item: 'Item', - }, - basicData: { - supplier: 'Supplier', - travel: 'Travel', - reference: 'Reference', - invoiceNumber: 'Invoice number', - company: 'Company', - currency: 'Currency', - commission: 'Commission', - observation: 'Observation', - ordered: 'Ordered', - confirmed: 'Confirmed', - booked: 'Booked', - raid: 'Raid', - excludedFromAvailable: 'Inventory', - agency: 'Agency', - warehouseOut: 'Warehouse Out', - warehouseIn: 'Warehouse In', - shipped: 'Shipped', - landed: 'Landed', - id: 'ID', - }, - buys: { - groupingPrice: 'Grouping price', - packingPrice: 'Packing price', - reference: 'Reference', - observations: 'Observations', - item: 'Item', - size: 'Size', - packing: 'Packing', - grouping: 'Grouping', - buyingValue: 'Buying value', - packagingFk: 'Box', - file: 'File', - name: 'Name', - producer: 'Producer', - type: 'Type', - color: 'Color', - id: 'ID', - }, - notes: { - observationType: 'Observation type', - }, - descriptor: { - agency: 'Agency', - landed: 'Landed', - warehouseOut: 'Warehouse Out', - }, - latestBuys: { - picture: 'Picture', - itemFk: 'Item ID', - packing: 'Packing', - grouping: 'Grouping', - quantity: 'Quantity', - size: 'Size', - tags: 'Tags', - type: 'Type', - intrastat: 'Intrastat', - origin: 'Origin', - weightByPiece: 'Weight/Piece', - isActive: 'Active', - family: 'Family', - entryFk: 'Entry', - buyingValue: 'Buying value', - freightValue: 'Freight value', - comissionValue: 'Commission value', - packageValue: 'Package value', - isIgnored: 'Is ignored', - price2: 'Grouping', - price3: 'Packing', - minPrice: 'Min', - ektFk: 'Ekt', - weight: 'Weight', - packagingFk: 'Package', - packingOut: 'Package out', - landing: 'Landing', - }, - }, - ticket: { - pageTitles: { - tickets: 'Tickets', - list: 'List', - createTicket: 'Create ticket', - summary: 'Summary', - basicData: 'Basic Data', - boxing: 'Boxing', - sms: 'Sms', - notes: 'Notes', - }, - list: { - nickname: 'Nickname', - state: 'State', - shipped: 'Shipped', - landed: 'Landed', - salesPerson: 'Sales person', - total: 'Total', - }, - card: { - ticketId: 'Ticket ID', - state: 'State', - customerId: 'Customer ID', - salesPerson: 'Sales person', - agency: 'Agency', - shipped: 'Shipped', - warehouse: 'Warehouse', - customerCard: 'Customer card', - alias: 'Alias', - }, - boxing: { - expedition: 'Expedition', - item: 'Item', - created: 'Created', - worker: 'Worker', - selectTime: 'Select time:', - selectVideo: 'Select video:', - notFound: 'No videos available', - }, - summary: { - state: 'State', - salesPerson: 'Sales person', - agency: 'Agency', - zone: 'Zone', - warehouse: 'Warehouse', - route: 'Route', - invoice: 'Invoice', - shipped: 'Shipped', - landed: 'Landed', - consigneePhone: 'Consignee phone', - consigneeMobile: 'Consignee mobile', - clientPhone: 'Client phone', - clientMobile: 'Client mobile', - consignee: 'Consignee', - subtotal: 'Subtotal', - vat: 'VAT', - total: 'Total', - saleLines: 'Line items', - item: 'Item', - visible: 'Visible', - available: 'Available', - quantity: 'Quantity', - price: 'Price', - discount: 'Discount', - packing: 'Packing', - hasComponentLack: 'Component lack', - itemShortage: 'Not visible', - claim: 'Claim', - reserved: 'Reserved', - created: 'Created', - package: 'Package', - taxClass: 'Tax class', - services: 'Services', - changeState: 'Change state', - requester: 'Requester', - atender: 'Atender', - request: 'Request', - weight: 'Weight', - goTo: 'Go to', - }, - }, - claim: { - pageTitles: { - claims: 'Claims', - list: 'List', - createClaim: 'Create claim', - summary: 'Summary', - basicData: 'Basic Data', - lines: 'Lines', - photos: 'Photos', - development: 'Development', - log: 'Audit logs', - notes: 'Notes', - action: 'Action', - }, - list: { - customer: 'Customer', - assignedTo: 'Assigned', - created: 'Created', - state: 'State', - }, - rmaList: { - code: 'Code', - records: 'records', - }, - card: { - claimId: 'Claim ID', - assignedTo: 'Assigned', - created: 'Created', - state: 'State', - ticketId: 'Ticket ID', - customerSummary: 'Customer summary', - claimedTicket: 'Claimed ticket', - saleTracking: 'Sale tracking', - ticketTracking: 'Ticket tracking', - commercial: 'Commercial', - province: 'Province', - zone: 'Zone', - }, - summary: { - customer: 'Customer', - assignedTo: 'Assigned', - attendedBy: 'Attended by', - created: 'Created', - state: 'State', - details: 'Details', - item: 'Item', - landed: 'Landed', - quantity: 'Quantity', - claimed: 'Claimed', - price: 'Price', - discount: 'Discount', - total: 'Total', - actions: 'Actions', - responsibility: 'Responsibility', - company: 'Company', - person: 'Employee/Customer', - notes: 'Notes', - photos: 'Photos', - development: 'Development', - reason: 'Reason', - result: 'Result', - responsible: 'Responsible', - worker: 'Worker', - redelivery: 'Redelivery', - }, - basicData: { - customer: 'Customer', - assignedTo: 'Assigned', - created: 'Created', - state: 'State', - picked: 'Picked', - }, - photo: { - fileDescription: 'Claim id {claimId} from client {clientName} id {clientId}', - noData: 'There are no images/videos, click here or drag and drop the file', - dragDrop: 'Drag and drop it here', - }, - }, - invoiceOut: { - pageTitles: { - invoiceOuts: 'Invoice out', - list: 'List', - negativeBases: 'Negative Bases', - globalInvoicing: 'Global invoicing', - createInvoiceOut: 'Create invoice out', - summary: 'Summary', - basicData: 'Basic Data', - }, - list: { - ref: 'Reference', - issued: 'Issued', - shortIssued: 'Issued', - client: 'Client', - created: 'Created', - shortCreated: 'Created', - company: 'Company', - dued: 'Due date', - shortDued: 'Due date', - amount: 'Amount', - }, - card: { - issued: 'Issued', - client: 'Client', - company: 'Company', - customerCard: 'Customer card', - ticketList: 'Ticket List', - }, - summary: { - issued: 'Issued', - created: 'Created', - dued: 'Due', - booked: 'Booked', - company: 'Company', - taxBreakdown: 'Tax breakdown', - type: 'Type', - taxableBase: 'Taxable base', - rate: 'Rate', - fee: 'Fee', - tickets: 'Tickets', - ticketId: 'Ticket id', - nickname: 'Alias', - shipped: 'Shipped', - totalWithVat: 'Amount', - }, - globalInvoices: { - errors: { - chooseValidClient: 'Choose a valid client', - chooseValidCompany: 'Choose a valid company', - chooseValidPrinter: 'Choose a valid printer', - fillDates: 'Invoice date and the max date should be filled', - invoiceDateLessThanMaxDate: 'Invoice date can not be less than max date', - invoiceWithFutureDate: 'Exists an invoice with a future date', - noTicketsToInvoice: 'There are not tickets to invoice', - criticalInvoiceError: 'Critical invoicing error, process stopped', - }, - table: { - client: 'Client', - addressId: 'Address id', - streetAddress: 'Street', - }, - statusCard: { - percentageText: '{getPercentage}% {getAddressNumber} of {getNAddresses}', - pdfsNumberText: '{nPdfs} of {totalPdfs} PDFs', - }, - }, - negativeBases: { - from: 'From', - to: 'To', - company: 'Company', - country: 'Country', - clientId: 'Client Id', - client: 'Client', - amount: 'Amount', - base: 'Base', - ticketId: 'Ticket Id', - active: 'Active', - hasToInvoice: 'Has to Invoice', - verifiedData: 'Verified Data', - comercial: 'Comercial', - errors: { - downloadCsvFailed: 'CSV download failed', - }, - }, - }, - shelving: { - pageTitles: { - shelving: 'Shelving', - shelvingList: 'Shelving List', - create: 'Create', - summary: 'Summary', - basicData: 'Basic Data', - log: 'Logs', - }, - list: { - parking: 'Parking', - priority: 'Priority', - newShelving: 'New Shelving', - }, - summary: { - code: 'Code', - parking: 'Parking', - priority: 'Priority', - worker: 'Worker', - recyclable: 'Recyclable', - }, - basicData: { - code: 'Code', - parking: 'Parking', - priority: 'Priority', - recyclable: 'Recyclable', - }, - }, - invoiceIn: { - pageTitles: { - invoiceIns: 'Invoices In', - list: 'List', - createInvoiceIn: 'Create invoice in', - summary: 'Summary', - basicData: 'Basic data', - vat: 'VAT', - dueDay: 'Due day', - intrastat: 'Intrastat', - corrective: 'Corrective', - log: 'Logs', - }, - list: { - ref: 'Reference', - supplier: 'Supplier', - supplierRef: 'Supplier ref.', - serialNumber: 'Serial number', - serial: 'Serial', - file: 'File', - issued: 'Issued', - isBooked: 'Is booked', - awb: 'AWB', - amount: 'Amount', - }, - card: { - issued: 'Issued', - amount: 'Amount', - client: 'Client', - company: 'Company', - customerCard: 'Customer card', - ticketList: 'Ticket List', - vat: 'Vat', - dueDay: 'Due day', - intrastat: 'Intrastat', - }, - summary: { - supplier: 'Supplier', - supplierRef: 'Supplier ref.', - currency: 'Currency', - docNumber: 'Doc number', - issued: 'Expedition date', - operated: 'Operation date', - bookEntried: 'Entry date', - bookedDate: 'Booked date', - sage: 'Sage withholding', - vat: 'Undeductible VAT', - company: 'Company', - booked: 'Booked', - expense: 'Expense', - taxableBase: 'Taxable base', - rate: 'Rate', - sageVat: 'Sage vat', - sageTransaction: 'Sage transaction', - dueDay: 'Date', - bank: 'Bank', - amount: 'Amount', - foreignValue: 'Foreign value', - dueTotal: 'Due day', - noMatch: 'Do not match', - code: 'Code', - net: 'Net', - stems: 'Stems', - country: 'Country', - }, - }, - order: { - pageTitles: { - order: 'Orders', - orderList: 'List', - create: 'Create', - summary: 'Summary', - basicData: 'Basic Data', - catalog: 'Catalog', - volume: 'Volume', - lines: 'Lines', - }, - field: { - salesPersonFk: 'Sales Person', - clientFk: 'Client', - isConfirmed: 'Confirmed', - created: 'Created', - landed: 'Landed', - hour: 'Hour', - agency: 'Agency', - total: 'Total', - }, - form: { - clientFk: 'Client', - addressFk: 'Address', - landed: 'Landed', - agencyModeFk: 'Agency', - }, - list: { - newOrder: 'New Order', - }, - summary: { - basket: 'Basket', - nickname: 'Nickname', - company: 'Company', - confirmed: 'Confirmed', - notConfirmed: 'Not confirmed', - created: 'Created', - landed: 'Landed', - phone: 'Phone', - createdFrom: 'Created From', - address: 'Address', - notes: 'Notes', - subtotal: 'Subtotal', - total: 'Total', - vat: 'VAT', - state: 'State', - alias: 'Alias', - items: 'Items', - orderTicketList: 'Order Ticket List', - details: 'Details', - item: 'Item', - quantity: 'Quantity', - price: 'Price', - amount: 'Amount', - }, - }, - department: { - pageTitles: { - basicData: 'Basic data', - department: 'Department', - summary: 'Summary', - }, - name: 'Name', - code: 'Code', - chat: 'Chat', - bossDepartment: 'Boss Department', - email: 'Email', - selfConsumptionCustomer: 'Self-consumption customer', - telework: 'Telework', - notifyOnErrors: 'Notify on errors', - worksInProduction: 'Works in production', - hasToRefill: 'Fill in days without physical check-ins', - hasToSendMail: 'Send check-ins by email', - departmentRemoved: 'Department removed', - }, - worker: { - pageTitles: { - workers: 'Workers', - list: 'List', - basicData: 'Basic data', - summary: 'Summary', - notifications: 'Notifications', - workerCreate: 'New worker', - department: 'Department', - pda: 'PDA', - }, - list: { - name: 'Name', - email: 'Email', - phone: 'Phone', - mobile: 'Mobile', - active: 'Active', - department: 'Department', - schedule: 'Schedule', - newWorker: 'New worker', - }, - card: { - workerId: 'Worker ID', - name: 'Name', - email: 'Email', - phone: 'Phone', - mobile: 'Mobile', - active: 'Active', - warehouse: 'Warehouse', - agency: 'Agency', - salesPerson: 'Sales person', - }, - summary: { - basicData: 'Basic data', - boss: 'Boss', - phoneExtension: 'Phone extension', - entPhone: 'Enterprise phone', - personalPhone: 'Personal phone', - noBoss: 'No boss', - userData: 'User data', - userId: 'User ID', - role: 'Role', - sipExtension: 'Extension', - locker: 'Locker', - }, - notificationsManager: { - activeNotifications: 'Active notifications', - availableNotifications: 'Available notifications', - subscribed: 'Subscribed to the notification', - unsubscribed: 'Unsubscribed from the notification', - }, - pda: { - newPDA: 'New PDA', - currentPDA: 'Current PDA', - model: 'Model', - serialNumber: 'Serial number', - removePDA: 'Deallocate PDA', - }, - create: { - name: 'Name', - lastName: 'Last name', - birth: 'Birth', - fi: 'Fi', - code: 'Worker code', - phone: 'Phone', - postcode: 'Postcode', - province: 'Province', - city: 'City', - street: 'Street', - webUser: 'Web user', - personalEmail: 'Personal email', - company: 'Company', - boss: 'Boss', - payMethods: 'Pay method', - iban: 'IBAN', - bankEntity: 'Swift / BIC', - }, - imageNotFound: 'Image not found', - }, - wagon: { - pageTitles: { - wagons: 'Wagons', - wagonsList: 'Wagons List', - wagonCreate: 'Create wagon', - wagonEdit: 'Edit wagon', - typesList: 'Types List', - typeCreate: 'Create type', - typeEdit: 'Edit type', - wagonCounter: 'Trolley counter', - }, - type: { - name: 'Name', - submit: 'Submit', - reset: 'Reset', - trayColor: 'Tray color', - removeItem: 'Wagon type removed successfully', - }, - list: { - plate: 'Plate', - volume: 'Volume', - type: 'Type', - remove: 'Remove', - removeItem: 'Wagon removed successfully', - }, - create: { - plate: 'Plate', - volume: 'Volume', - type: 'Type', - label: 'Label', - }, - warnings: { - noData: 'No data available', - nameNotEmpty: 'Name can not be empty', - labelNotEmpty: 'Label can not be empty', - plateNotEmpty: 'Plate can not be empty', - volumeNotEmpty: 'Volume can not be empty', - typeNotEmpty: 'Type can not be empty', - maxTrays: 'You have reached the max number of trays', - minHeightBetweenTrays: 'The minimum height between trays is ', - maxWagonHeight: 'The maximum height of the wagon is ', - uncompleteTrays: 'There are incomplete trays', - }, - }, - 'route/roadmap': { - pageTitles: { - roadmap: 'Roadmap', - summary: 'Summary', - basicData: 'Basic Data', - stops: 'Stops' - }, - }, - roadmap: { - pageTitles: { - roadmap: 'Roadmap', - summary: 'Summary', - basicData: 'Basic Data', - stops: 'Stops' - }, - }, - route: { - pageTitles: { - routes: 'Routes', - cmrsList: 'External CMRs list', - RouteList: 'List', - create: 'Create', - basicData: 'Basic Data', - summary: 'Summary', - RouteRoadmap: 'Roadmaps', - RouteRoadmapCreate: 'Create roadmap', - tickets: 'Tickets', - log: 'Log', - autonomous: 'Autonomous', - }, - cmr: { - list: { - results: 'results', - cmrFk: 'CMR id', - hasCmrDms: `Attached in gestdoc`, - true: 'Yes', - false: 'No', - ticketFk: 'Ticketd id', - routeFk: 'Route id', - country: 'Country', - clientFk: 'Client id', - shipped: 'Preparation date', - viewCmr: 'View CMR', - downloadCmrs: 'Download CMRs', - }, - }, - }, - supplier: { - pageTitles: { - suppliers: 'Suppliers', - supplier: 'Supplier', - list: 'List', - create: 'Create', - summary: 'Summary', - basicData: 'Basic data', - fiscalData: 'Fiscal data', - billingData: 'Billing data', - log: 'Log', - accounts: 'Accounts', - contacts: 'Contacts', - addresses: 'Addresses', - consumption: 'Consumption', - agencyTerm: 'Agency agreement', - }, - list: { - payMethod: 'Pay method', - payDeadline: 'Pay deadline', - payDay: 'Pay day', - account: 'Account', - newSupplier: 'New supplier', - }, - summary: { - responsible: 'Responsible', - notes: 'Notes', - verified: 'Verified', - isActive: 'Is active', - billingData: 'Billing data', - payMethod: 'Pay method', - payDeadline: 'Pay deadline', - payDay: 'Día de pago', - account: 'Account', - fiscalData: 'Fiscal data', - sageTaxType: 'Sage tax type', - sageTransactionType: 'Sage transaction type', - sageWithholding: 'Sage withholding', - supplierActivity: 'Supplier activity', - healthRegister: 'Healt register', - fiscalAddress: 'Fiscal address', - socialName: 'Social name', - taxNumber: 'Tax number', - street: 'Street', - city: 'City', - postCode: 'Postcode', - province: 'Province', - country: 'Country', - }, - create: { - supplierName: 'Supplier name', - }, - basicData: { - alias: 'Alias', - workerFk: 'Responsible', - isSerious: 'Verified', - isActive: 'Active', - isPayMethodChecked: 'PayMethod checked', - note: 'Notes', - }, - fiscalData: { - name: 'Social name *', - nif: 'Tax number *', - account: 'Account', - sageTaxTypeFk: 'Sage tax type', - sageWithholdingFk: 'Sage withholding', - sageTransactionTypeFk: 'Sage transaction type', - supplierActivityFk: 'Supplier activity', - healthRegister: 'Health register', - street: 'Street', - postcode: 'Postcode', - city: 'City *', - provinceFk: 'Province', - country: 'Country', - isTrucker: 'Trucker', - isVies: 'Vies', - }, - billingData: { - payMethodFk: 'Billing data', - payDemFk: 'Payment deadline', - payDay: 'Pay day', - }, - accounts: { - iban: 'Iban', - bankEntity: 'Bank entity', - beneficiary: 'Beneficiary', - }, - contacts: { - name: 'Name', - phone: 'Phone', - mobile: 'Mobile', - email: 'Email', - observation: 'Notes', - }, - addresses: { - street: 'Street', - postcode: 'Postcode', - phone: 'Phone', - name: 'Name', - city: 'City', - province: 'Province', - mobile: 'Mobile', - }, - agencyTerms: { - agencyFk: 'Agency', - minimumM3: 'Minimum M3', - packagePrice: 'Package Price', - kmPrice: 'Km Price', - m3Price: 'M3 Price', - routePrice: 'Route price', - minimumKm: 'Minimum Km', - addRow: 'Add row', - }, - consumption: { - entry: 'Entry', - date: 'Date', - reference: 'Reference', - }, - }, - travel: { - pageTitles: { - travel: 'Travels', - list: 'List', - create: 'Create', - summary: 'Summary', - extraCommunity: 'Extra community', - travelCreate: 'New travel', - basicData: 'Basic data', - history: 'Log', - thermographs: 'Thermograph', - }, - summary: { - confirmed: 'Confirmed', - entryId: 'Entry Id', - freight: 'Freight', - package: 'Package', - delivered: 'Delivered', - received: 'Received', - entries: 'Entries', - cloneShipping: 'Clone travel', - CloneTravelAndEntries: 'Clone travel and his entries', - deleteTravel: 'Delete travel', - AddEntry: 'Add entry', - thermographs: 'Thermographs', - hb: 'HB', - }, - variables: { - search: 'Id/Reference', - agencyModeFk: 'Agency', - warehouseInFk: ' Warehouse In', - warehouseOutFk: 'Warehouse Out', - landedFrom: 'Landed from', - landedTo: 'Landed to', - continent: 'Continent out', - totalEntries: 'Total entries', - }, - basicData: { - reference: 'Reference', - agency: 'Agency', - shipped: 'Shipped', - landed: 'Landed', - warehouseOut: 'Warehouse Out', - warehouseIn: 'Warehouse In', - delivered: 'Delivered', - received: 'Received', - }, - thermographs: { - code: 'Code', - temperature: 'Temperature', - state: 'State', - destination: 'Destination', - created: 'Created', - thermograph: 'Thermograph', - reference: 'Reference', - type: 'Type', - company: 'Company', - warehouse: 'Warehouse', - travelFileDescription: 'Travel id { travelId }', - file: 'File', - }, - }, - item: { - pageTitles: { - items: 'Items', - list: 'List', - diary: 'Diary', - tags: 'Tags', - }, - descriptor: { - item: 'Item', - buyer: 'Buyer', - color: 'Color', - category: 'Category', - stems: 'Stems', - visible: 'Visible', - available: 'Available', - warehouseText: 'Calculated on the warehouse of { warehouseName }', - itemDiary: 'Item diary', - }, - }, - components: { - topbar: {}, - userPanel: { - copyToken: 'Token copied to clipboard', - settings: 'Settings', - logOut: 'Log Out', - }, - smartCard: { - downloadFile: 'Download file', - clone: 'Clone', - openCard: 'View', - openSummary: 'Summary', - }, - cardDescriptor: { - mainList: 'Main list', - summary: 'Summary', - moreOptions: 'More options', - }, - leftMenu: { - addToPinned: 'Add to pinned', - removeFromPinned: 'Remove from pinned', - }, - VnLv: { - copyText: '{copyValue} has been copied to the clipboard', - }, - iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789', - }, -}; diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js deleted file mode 100644 index 37ba8da85..000000000 --- a/src/i18n/es/index.js +++ /dev/null @@ -1,1227 +0,0 @@ -export default { - globals: { - lang: { - es: 'Español', - en: 'Inglés', - }, - language: 'Idioma', - entity: 'Entidad', - user: 'Usuario', - details: 'Detalles', - collapseMenu: 'Contraer menú lateral', - backToDashboard: 'Volver al tablón', - notifications: 'Notificaciones', - userPanel: 'Panel de usuario', - modules: 'Módulos', - pinnedModules: 'Módulos fijados', - darkMode: 'Modo oscuro', - logOut: 'Cerrar sesión', - date: 'Fecha', - dataSaved: 'Datos guardados', - dataDeleted: 'Datos eliminados', - search: 'Buscar', - changes: 'Cambios', - dataCreated: 'Datos creados', - add: 'Añadir', - create: 'Crear', - edit: 'Modificar', - save: 'Guardar', - remove: 'Eliminar', - reset: 'Restaurar', - close: 'Cerrar', - cancel: 'Cancelar', - confirm: 'Confirmar', - assign: 'Asignar', - back: 'Volver', - yes: 'Si', - no: 'No', - noChanges: 'Sin cambios que guardar', - changesToSave: 'Tienes cambios pendientes de guardar', - confirmRemove: 'Vas a eliminar este registro. ¿Continuar?', - rowAdded: 'Fila añadida', - rowRemoved: 'Fila eliminada', - pleaseWait: 'Por favor, espera...', - noPinnedModules: 'No has fijado ningún módulo', - summary: { - basicData: 'Datos básicos', - }, - today: 'Hoy', - yesterday: 'Ayer', - dateFormat: 'es-ES', - noSelectedRows: `No tienes ninguna línea seleccionada`, - microsip: 'Abrir en MicroSIP', - downloadCSVSuccess: 'Descarga de CSV exitosa', - reference: 'Referencia', - agency: 'Agencia', - wareHouseOut: 'Alm. salida', - wareHouseIn: 'Alm. entrada', - landed: 'F. entrega', - shipped: 'F. envío', - totalEntries: 'Ent. totales', - amount: 'Importe', - packages: 'Bultos', - download: 'Descargar', - selectRows: 'Seleccionar las { numberRows } filas(s)', - allRows: 'Todo { numberRows } filas(s)', - markAll: 'Marcar todo', - requiredField: 'Campo obligatorio', - class: 'clase', - type: 'Tipo', - reason: 'motivo', - noResults: 'Sin resultados', - system: 'Sistema', - warehouse: 'Almacén', - company: 'Empresa', - fieldRequired: 'Campo requerido', - allowedFilesText: 'Tipos de archivo permitidos: { allowedContentTypes }', - smsSent: 'SMS enviado', - confirmDeletion: 'Confirmar eliminación', - confirmDeletionMessage: '¿Seguro que quieres eliminar?', - description: 'Descripción', - id: 'Id', - order: 'Orden', - original: 'Original', - file: 'Fichero', - selectFile: 'Seleccione un fichero', - copyClipboard: 'Copiar en portapapeles', - salesPerson: 'Comercial', - }, - errors: { - statusUnauthorized: 'Acceso denegado', - statusInternalServerError: 'Ha ocurrido un error interno del servidor', - statusBadGateway: 'Parece ser que el servidor ha caído', - statusGatewayTimeout: 'No se ha podido contactar con el servidor', - userConfig: 'Error al obtener configuración de usuario', - writeRequest: 'No se pudo completar la operación solicitada', - }, - login: { - title: 'Inicio de sesión', - username: 'Nombre de usuario', - password: 'Contraseña', - submit: 'Iniciar sesión', - keepLogin: 'Mantener sesión iniciada', - loginSuccess: 'Inicio de sesión correcto', - loginError: 'Nombre de usuario o contraseña incorrectos', - fieldRequired: 'Este campo es obligatorio', - twoFactorRequired: 'Verificación de doble factor requerida', - pageTitles: { - logIn: 'Inicio de sesión', - }, - }, - twoFactor: { - code: 'Código', - validate: 'Validar', - insert: 'Introduce el código de verificación', - explanation: - 'Por favor, introduce el código de verificación que te hemos enviado a tu email en los próximos 5 minutos', - pageTitles: { - twoFactor: 'Doble factor', - }, - }, - verifyEmail: { - pageTitles: { - verifyEmail: 'Verificación de correo', - }, - }, - dashboard: { - pageTitles: { - dashboard: 'Tablón', - }, - }, - customer: { - pageTitles: { - customers: 'Clientes', - create: 'Crear', - list: 'Listado', - webPayments: 'Pagos Web', - extendedList: 'Listado extendido', - notifications: 'Notificaciones', - defaulter: 'Morosos', - createCustomer: 'Crear cliente', - summary: 'Resumen', - basicData: 'Datos básicos', - fiscalData: 'Datos fiscales', - billingData: 'Forma de pago', - consignees: 'Consignatarios', - notes: 'Notas', - credits: 'Créditos', - greuges: 'Greuges', - balance: 'Balance', - recoveries: 'Recobros', - webAccess: 'Acceso web', - log: 'Historial', - sms: 'Sms', - creditManagement: 'Gestión de crédito', - creditContracts: 'Contratos de crédito', - creditOpinion: 'Opinión de crédito', - others: 'Otros', - }, - list: { - phone: 'Teléfono', - email: 'Email', - customerOrders: 'Mostrar órdenes del cliente', - moreOptions: 'Más opciones', - }, - card: { - customerId: 'ID cliente', - salesPerson: 'Comercial', - credit: 'Crédito', - securedCredit: 'Crédito asegurado', - payMethod: 'Método de pago', - debt: 'Riesgo', - isDisabled: 'El cliente está desactivado', - isFrozen: 'El cliente está congelado', - hasDebt: 'El cliente tiene riesgo', - notChecked: 'El cliente no está comprobado', - noWebAccess: 'El acceso web está desactivado', - businessTypeFk: 'Tipo de negocio', - }, - summary: { - basicData: 'Datos básicos', - fiscalAddress: 'Dirección fiscal', - fiscalData: 'Datos fiscales', - billingData: 'Datos de facturación', - consignee: 'Consignatario pred.', - businessData: 'Datos comerciales', - financialData: 'Datos financieros', - customerId: 'ID cliente', - name: 'Nombre', - contact: 'Contacto', - phone: 'Teléfono', - mobile: 'Móvil', - email: 'Email', - salesPerson: 'Comercial', - contactChannel: 'Canal de contacto', - socialName: 'Razón social', - fiscalId: 'NIF/CIF', - postcode: 'Código postal', - province: 'Provincia', - country: 'País', - street: 'Calle', - isEqualizated: 'Recargo de equivalencia', - isActive: 'Activo', - invoiceByAddress: 'Facturar por consignatario', - verifiedData: 'Datos verificados', - hasToInvoice: 'Facturar', - notifyByEmail: 'Notificar por email', - vies: 'VIES', - payMethod: 'Método de pago', - bankAccount: 'Cuenta bancaria', - dueDay: 'Día de pago', - hasLcr: 'Recibido LCR', - hasCoreVnl: 'Recibido core VNL', - hasB2BVnl: 'Recibido B2B VNL', - addressName: 'Nombre de la dirección', - addressCity: 'Ciudad', - addressStreet: 'Calle', - username: 'Usuario', - webAccess: 'Acceso web', - totalGreuge: 'Greuge total', - mana: 'Maná', - priceIncreasingRate: 'Ratio de incremento de precio', - averageInvoiced: 'Facturación media', - claimRate: 'Ratio de reclamaciones', - risk: 'Riesgo', - riskInfo: 'Facturas menos recibos mas pedidos sin facturar', - credit: 'Crédito', - creditInfo: `Riesgo máximo asumido por la empresa`, - securedCredit: 'Crédito asegurado', - securedCreditInfo: `Riesgo máximo asumido por Solunion`, - balance: 'Balance', - balanceInfo: 'Facturas menos recibos', - balanceDue: 'Saldo vencido', - balanceDueInfo: 'Facturas fuera de plazo menos recibos', - recoverySince: 'Recobro desde', - businessType: 'Tipo de negocio', - city: 'Población', - rating: 'Clasificación', - recommendCredit: 'Crédito recomendado', - }, - basicData: { - socialName: 'Nombre fiscal', - businessType: 'Tipo de negocio', - contact: 'Contacto', - email: 'Email', - phone: 'Teléfono', - mobile: 'Móvil', - salesPerson: 'Comercial', - contactChannel: 'Canal de contacto', - }, - extendedList: { - tableVisibleColumns: { - id: 'Identificador', - name: 'Nombre', - fi: 'NIF / CIF', - salesPersonFk: 'Comercial', - credit: 'Crédito', - creditInsurance: 'Crédito asegurado', - phone: 'Teléfono', - mobile: 'Móvil', - street: 'Dirección fiscal', - countryFk: 'País', - provinceFk: 'Provincia', - city: 'Población', - postcode: 'Código postal', - email: 'Email', - created: 'Fecha creación', - businessTypeFk: 'Tipo de negocio', - payMethodFk: 'Forma de pago', - sageTaxTypeFk: 'Tipo de impuesto Sage', - sageTransactionTypeFk: 'Tipo tr. sage', - isActive: 'Activo', - isVies: 'Vies', - isTaxDataChecked: 'Datos comprobados', - isEqualizated: 'Recargo de equivalencias', - isFreezed: 'Congelado', - hasToInvoice: 'Factura', - hasToInvoiceByAddress: 'Factura por consigna', - isToBeMailed: 'Env. emails', - hasLcr: 'Recibido LCR', - hasCoreVnl: 'Recibido core VNL', - hasSepaVnl: 'Recibido B2B VNL', - }, - }, - }, - entry: { - pageTitles: { - entries: 'Entradas', - list: 'Listado', - summary: 'Resumen', - basicData: 'Datos básicos', - buys: 'Compras', - notes: 'Notas', - dms: 'Gestión documental', - log: 'Historial', - create: 'Crear', - latestBuys: 'Últimas compras', - }, - list: { - newEntry: 'Nueva entrada', - landed: 'F. entrega', - invoiceNumber: 'Núm. factura', - supplier: 'Proveedor', - booked: 'Asentado', - confirmed: 'Confirmado', - ordered: 'Pedida', - }, - summary: { - commission: 'Comisión', - currency: 'Moneda', - company: 'Empresa', - reference: 'Referencia', - invoiceNumber: 'Núm. factura', - ordered: 'Pedida', - confirmed: 'Confirmada', - booked: 'Contabilizada', - raid: 'Redada', - excludedFromAvailable: 'Inventario', - travelReference: 'Referencia', - travelAgency: 'Agencia', - travelShipped: 'F. envio', - travelWarehouseOut: 'Alm. salida', - travelDelivered: 'Enviada', - travelLanded: 'F. entrega', - travelWarehouseIn: 'Alm. entrada', - travelReceived: 'Recibida', - buys: 'Compras', - quantity: 'Cantidad', - stickers: 'Etiquetas', - package: 'Embalaje', - weight: 'Peso', - packing: 'Packing', - grouping: 'Grouping', - buyingValue: 'Coste', - import: 'Importe', - pvp: 'PVP', - item: 'Artículo', - }, - basicData: { - supplier: 'Proveedor', - travel: 'Envío', - reference: 'Referencia', - invoiceNumber: 'Núm. factura', - company: 'Empresa', - currency: 'Moneda', - observation: 'Observación', - commission: 'Comisión', - ordered: 'Pedida', - confirmed: 'Confirmado', - booked: 'Asentado', - raid: 'Redada', - excludedFromAvailable: 'Inventario', - agency: 'Agencia', - warehouseOut: 'Alm. salida', - warehouseIn: 'Alm. entrada', - shipped: 'F. envío', - landed: 'F. entrega', - id: 'ID', - }, - buys: { - groupingPrice: 'Precio grouping', - packingPrice: 'Precio packing', - reference: 'Referencia', - observations: 'Observaciónes', - item: 'Artículo', - size: 'Medida', - packing: 'Packing', - grouping: 'Grouping', - buyingValue: 'Coste', - packagingFk: 'Embalaje', - file: 'Fichero', - name: 'Nombre', - producer: 'Productor', - type: 'Tipo', - color: 'Color', - id: 'ID', - }, - notes: { - observationType: 'Tipo de observación', - }, - descriptor: { - agency: 'Agencia', - landed: 'F. entrega', - warehouseOut: 'Alm. salida', - }, - latestBuys: { - picture: 'Foto', - itemFk: 'ID Artículo', - packing: 'Packing', - grouping: 'Grouping', - quantity: 'Cantidad', - size: 'Medida', - tags: 'Etiquetas', - type: 'Tipo', - intrastat: 'Intrastat', - origin: 'Origen', - weightByPiece: 'Peso (gramos)/tallo', - isActive: 'Activo', - family: 'Familia', - entryFk: 'Entrada', - buyingValue: 'Coste', - freightValue: 'Porte', - comissionValue: 'Comisión', - packageValue: 'Embalaje', - isIgnored: 'Ignorado', - price2: 'Grouping', - price3: 'Packing', - minPrice: 'Min', - ektFk: 'Ekt', - weight: 'Peso', - packagingFk: 'Embalaje', - packingOut: 'Embalaje envíos', - landing: 'Llegada', - }, - }, - ticket: { - pageTitles: { - tickets: 'Tickets', - list: 'Listado', - createTicket: 'Crear ticket', - summary: 'Resumen', - basicData: 'Datos básicos', - boxing: 'Encajado', - sms: 'Sms', - notes: 'Notas', - }, - list: { - nickname: 'Alias', - state: 'Estado', - shipped: 'Enviado', - landed: 'Entregado', - salesPerson: 'Comercial', - total: 'Total', - }, - card: { - ticketId: 'ID ticket', - state: 'Estado', - customerId: 'ID cliente', - salesPerson: 'Comercial', - agency: 'Agencia', - shipped: 'Enviado', - warehouse: 'Almacén', - customerCard: 'Ficha del cliente', - alias: 'Alias', - }, - boxing: { - expedition: 'Expedición', - item: 'Artículo', - created: 'Creado', - worker: 'Trabajador', - selectTime: 'Seleccionar hora:', - selectVideo: 'Seleccionar vídeo:', - notFound: 'No hay vídeos disponibles', - }, - summary: { - state: 'Estado', - salesPerson: 'Comercial', - agency: 'Agencia', - zone: 'Zona', - warehouse: 'Almacén', - route: 'Ruta', - invoice: 'Factura', - shipped: 'Enviado', - landed: 'Entregado', - consigneePhone: 'Tel. consignatario', - consigneeMobile: 'Móv. consignatario', - clientPhone: 'Tel. cliente', - clientMobile: 'Móv. cliente', - consignee: 'Consignatario', - subtotal: 'Subtotal', - vat: 'IVA', - total: 'Total', - saleLines: 'Líneas del pedido', - item: 'Artículo', - visible: 'Visible', - available: 'Disponible', - quantity: 'Cantidad', - price: 'Precio', - discount: 'Descuento', - packing: 'Encajado', - hasComponentLack: 'Faltan componentes', - itemShortage: 'No visible', - claim: 'Reclamación', - reserved: 'Reservado', - created: 'Fecha creación', - package: 'Embalaje', - taxClass: 'Tipo IVA', - services: 'Servicios', - changeState: 'Cambiar estado', - requester: 'Solicitante', - atender: 'Comprador', - request: 'Petición de compra', - weight: 'Peso', - goTo: 'Ir a', - }, - }, - claim: { - pageTitles: { - claims: 'Reclamaciones', - list: 'Listado', - createClaim: 'Crear reclamación', - summary: 'Resumen', - basicData: 'Datos básicos', - lines: 'Líneas', - development: 'Trazabilidad', - photos: 'Fotos', - log: 'Historial', - notes: 'Notas', - action: 'Acción', - }, - list: { - customer: 'Cliente', - assignedTo: 'Asignada a', - created: 'Creada', - state: 'Estado', - }, - rmaList: { - code: 'Código', - records: 'registros', - }, - card: { - claimId: 'ID reclamación', - assignedTo: 'Asignada a', - created: 'Creada', - state: 'Estado', - ticketId: 'ID ticket', - customerSummary: 'Resumen del cliente', - claimedTicket: 'Ticket reclamado', - saleTracking: 'Líneas preparadas', - ticketTracking: 'Estados del ticket', - commercial: 'Comercial', - province: 'Provincia', - zone: 'Zona', - }, - summary: { - customer: 'Cliente', - assignedTo: 'Asignada a', - attendedBy: 'Atendida por', - created: 'Creada', - state: 'Estado', - details: 'Detalles', - item: 'Artículo', - landed: 'Entregado', - quantity: 'Cantidad', - claimed: 'Reclamado', - price: 'Precio', - discount: 'Descuento', - total: 'Total', - actions: 'Acciones', - responsibility: 'Responsabilidad', - company: 'Empresa', - person: 'Comercial/Cliente', - notes: 'Observaciones', - photos: 'Fotos', - development: 'Trazabilidad', - reason: 'Motivo', - result: 'Consecuencias', - responsible: 'Responsable', - worker: 'Trabajador', - redelivery: 'Devolución', - }, - basicData: { - customer: 'Cliente', - assignedTo: 'Asignada a', - created: 'Creada', - state: 'Estado', - picked: 'Recogida', - }, - photo: { - fileDescription: - 'Reclamacion ID {claimId} del cliente {clientName} id {clientId}', - noData: 'No hay imágenes/videos, haz click aquí o arrastra y suelta el archivo', - dragDrop: 'Arrástralo y sueltalo aquí', - }, - }, - invoiceOut: { - pageTitles: { - invoiceOuts: 'Fact. emitidas', - list: 'Listado', - negativeBases: 'Bases Negativas', - globalInvoicing: 'Facturación global', - createInvoiceOut: 'Crear fact. emitida', - summary: 'Resumen', - basicData: 'Datos básicos', - }, - list: { - ref: 'Referencia', - issued: 'Fecha emisión', - shortIssued: 'F. emisión', - client: 'Cliente', - created: 'Fecha creación', - shortCreated: 'F. creación', - company: 'Empresa', - dued: 'Fecha vencimineto', - shortDued: 'F. vencimiento', - amount: 'Importe', - }, - card: { - issued: 'Fecha emisión', - client: 'Cliente', - company: 'Empresa', - customerCard: 'Ficha del cliente', - ticketList: 'Listado de tickets', - }, - summary: { - issued: 'Fecha', - created: 'Fecha creación', - dued: 'Vencimiento', - booked: 'Contabilizada', - company: 'Empresa', - taxBreakdown: 'Desglose impositivo', - type: 'Tipo', - taxableBase: 'Base imp.', - rate: 'Tarifa', - fee: 'Cuota', - tickets: 'Tickets', - ticketId: 'Id ticket', - nickname: 'Alias', - shipped: 'F. envío', - totalWithVat: 'Importe', - }, - globalInvoices: { - errors: { - chooseValidClient: 'Selecciona un cliente válido', - chooseValidCompany: 'Selecciona una empresa válida', - chooseValidPrinter: 'Selecciona una impresora válida', - fillDates: - 'La fecha de la factura y la fecha máxima deben estar completas', - invoiceDateLessThanMaxDate: - 'La fecha de la factura no puede ser menor que la fecha máxima', - invoiceWithFutureDate: 'Existe una factura con una fecha futura', - noTicketsToInvoice: 'No existen tickets para facturar', - criticalInvoiceError: 'Error crítico en la facturación, proceso detenido', - }, - table: { - client: 'Cliente', - addressId: 'Id dirección', - streetAddress: 'Dirección fiscal', - }, - statusCard: { - percentageText: '{getPercentage}% {getAddressNumber} de {getNAddresses}', - pdfsNumberText: '{nPdfs} de {totalPdfs} PDFs', - }, - }, - negativeBases: { - from: 'Desde', - to: 'Hasta', - company: 'Empresa', - country: 'País', - clientId: 'Id cliente', - client: 'Cliente', - amount: 'Importe', - base: 'Base', - ticketId: 'Id ticket', - active: 'Activo', - hasToInvoice: 'Facturar', - verifiedData: 'Datos comprobados', - comercial: 'Comercial', - errors: { - downloadCsvFailed: 'Error al descargar CSV', - }, - }, - }, - order: { - pageTitles: { - order: 'Cesta', - orderList: 'Listado', - create: 'Crear', - summary: 'Resumen', - basicData: 'Datos básicos', - catalog: 'Catálogo', - volume: 'Volumen', - lines: 'Líneas', - }, - field: { - salesPersonFk: 'Comercial', - clientFk: 'Cliente', - isConfirmed: 'Confirmada', - created: 'Creado', - landed: 'F. entrega', - hour: 'Hora', - agency: 'Agencia', - total: 'Total', - }, - form: { - clientFk: 'Cliente', - addressFk: 'Dirección', - landed: 'F. entrega', - agencyModeFk: 'Agencia', - }, - list: { - newOrder: 'Nuevo Pedido', - }, - summary: { - basket: 'Cesta', - nickname: 'Alias', - company: 'Empresa', - confirmed: 'Confirmada', - notConfirmed: 'No confirmada', - created: 'Creado', - landed: 'F. entrega', - phone: 'Teléfono', - createdFrom: 'Creado desde', - address: 'Dirección', - notes: 'Notas', - subtotal: 'Subtotal', - total: 'Total', - vat: 'IVA', - state: 'Estado', - alias: 'Alias', - items: 'Items', - orderTicketList: 'Tickets del pedido', - details: 'Detalles', - item: 'Item', - quantity: 'Cantidad', - price: 'Precio', - amount: 'Monto', - }, - }, - shelving: { - pageTitles: { - shelving: 'Carros', - shelvingList: 'Listado de carros', - create: 'Crear', - summary: 'Resumen', - basicData: 'Datos básicos', - log: 'Historial', - }, - list: { - parking: 'Parking', - priority: 'Prioridad', - newShelving: 'Nuevo Carro', - }, - summary: { - code: 'Código', - parking: 'Parking', - priority: 'Prioridad', - worker: 'Trabajador', - recyclable: 'Reciclable', - }, - basicData: { - code: 'Código', - parking: 'Parking', - priority: 'Prioridad', - recyclable: 'Reciclable', - }, - }, - invoiceIn: { - pageTitles: { - invoiceIns: 'Fact. recibidas', - list: 'Listado', - createInvoiceIn: 'Crear fact. recibida', - summary: 'Resumen', - basicData: 'Datos básicos', - vat: 'IVA', - dueDay: 'Vencimiento', - intrastat: 'Intrastat', - corrective: 'Rectificativa', - log: 'Historial', - }, - list: { - ref: 'Referencia', - supplier: 'Proveedor', - supplierRef: 'Ref. proveedor', - serialNumber: 'Num. serie', - shortIssued: 'F. emisión', - serial: 'Serie', - file: 'Fichero', - issued: 'Fecha emisión', - isBooked: 'Conciliada', - awb: 'AWB', - amount: 'Importe', - }, - card: { - issued: 'Fecha emisión', - amount: 'Importe', - client: 'Cliente', - company: 'Empresa', - customerCard: 'Ficha del cliente', - ticketList: 'Listado de tickets', - vat: 'Iva', - dueDay: 'Fecha de vencimiento', - }, - summary: { - supplier: 'Proveedor', - supplierRef: 'Ref. proveedor', - currency: 'Divisa', - docNumber: 'Número documento', - issued: 'Fecha de expedición', - operated: 'Fecha operación', - bookEntried: 'Fecha asiento', - bookedDate: 'Fecha contable', - sage: 'Retención sage', - vat: 'Iva no deducible', - company: 'Empresa', - booked: 'Contabilizada', - expense: 'Gasto', - taxableBase: 'Base imp.', - rate: 'Tasa', - sageTransaction: 'Sage transación', - dueDay: 'Fecha', - bank: 'Caja', - amount: 'Importe', - foreignValue: 'Divisa', - dueTotal: 'Vencimiento', - code: 'Código', - net: 'Neto', - stems: 'Tallos', - country: 'País', - }, - }, - department: { - pageTitles: { - basicData: 'Basic data', - department: 'Departamentos', - summary: 'Resumen', - }, - name: 'Nombre', - code: 'Código', - chat: 'Chat', - bossDepartment: 'Jefe de departamento', - email: 'Email', - selfConsumptionCustomer: 'Cliente autoconsumo', - telework: 'Teletrabaja', - notifyOnErrors: 'Notificar errores', - worksInProduction: 'Pertenece a producción', - hasToRefill: 'Completar días sin registros físicos', - hasToSendMail: 'Enviar fichadas por mail', - departmentRemoved: 'Departamento eliminado', - }, - worker: { - pageTitles: { - workers: 'Trabajadores', - list: 'Listado', - basicData: 'Datos básicos', - summary: 'Resumen', - notifications: 'Notificaciones', - workerCreate: 'Nuevo trabajador', - department: 'Departamentos', - pda: 'PDA', - }, - list: { - name: 'Nombre', - email: 'Email', - phone: 'Teléfono', - mobile: 'Móvil', - active: 'Activo', - department: 'Departamento', - schedule: 'Horario', - newWorker: 'Nuevo trabajador', - }, - card: { - workerId: 'ID Trabajador', - name: 'Nombre', - email: 'Email', - phone: 'Teléfono', - mobile: 'Móvil', - active: 'Activo', - warehouse: 'Almacén', - agency: 'Empresa', - salesPerson: 'Comercial', - }, - summary: { - basicData: 'Datos básicos', - boss: 'Jefe', - phoneExtension: 'Extensión de teléfono', - entPhone: 'Teléfono de empresa', - personalPhone: 'Teléfono personal', - noBoss: 'Sin jefe', - userData: 'Datos de usuario', - userId: 'ID del usuario', - role: 'Rol', - sipExtension: 'Extensión', - locker: 'Taquilla', - }, - notificationsManager: { - activeNotifications: 'Notificaciones activas', - availableNotifications: 'Notificaciones disponibles', - subscribed: 'Se ha suscrito a la notificación', - unsubscribed: 'Se ha dado de baja de la notificación', - }, - pda: { - newPDA: 'Nueva PDA', - currentPDA: 'PDA Actual', - model: 'Modelo', - serialNumber: 'Número de serie', - removePDA: 'Desasignar PDA', - }, - create: { - name: 'Nombre', - lastName: 'Apellido', - birth: 'Fecha de nacimiento', - fi: 'DNI/NIF/NIE', - code: 'Código de trabajador', - phone: 'Teléfono', - postcode: 'Código postal', - province: 'Provincia', - city: 'Población', - street: 'Dirección', - webUser: 'Usuario Web', - personalEmail: 'Correo personal', - company: 'Empresa', - boss: 'Jefe', - payMethods: 'Método de pago', - iban: 'IBAN', - bankEntity: 'Swift / BIC', - }, - imageNotFound: 'No se ha encontrado la imagen', - }, - wagon: { - pageTitles: { - wagons: 'Vagones', - wagonsList: 'Listado vagones', - wagonCreate: 'Crear tipo', - wagonEdit: 'Editar tipo', - typesList: 'Listado tipos', - typeCreate: 'Crear tipo', - typeEdit: 'Editar tipo', - wagonCounter: 'Contador de carros', - }, - type: { - name: 'Nombre', - submit: 'Guardar', - reset: 'Deshacer cambios', - trayColor: 'Color de la bandeja', - removeItem: 'Tipo de vagón borrado correctamente', - }, - list: { - plate: 'Matrícula', - volume: 'Volumen', - type: 'Tipo', - remove: 'Borrar', - removeItem: 'Vagón borrado correctamente', - }, - create: { - plate: 'Matrícula', - volume: 'Volumen', - type: 'Tipo', - label: 'Etiqueta', - }, - warnings: { - noData: 'Sin datos disponibles', - nameNotEmpty: 'El nombre no puede estar vacío', - labelNotEmpty: 'La etiqueta no puede estar vacía', - plateNotEmpty: 'La matrícula no puede estar vacía', - volumeNotEmpty: 'El volumen no puede estar vacío', - typeNotEmpty: 'El tipo no puede estar vacío', - maxTrays: 'Has alcanzado el número máximo de bandejas', - minHeightBetweenTrays: 'La distancia mínima entre bandejas es ', - maxWagonHeight: 'La altura máxima del vagón es ', - uncompleteTrays: 'Hay bandejas sin completar', - }, - }, - 'route/roadmap': { - pageTitles: { - roadmap: 'Troncales', - summary: 'Resumen', - basicData: 'Datos básicos', - stops: 'Paradas' - }, - }, - roadmap: { - pageTitles: { - roadmap: 'Troncales', - summary: 'Resumen', - basicData: 'Datos básicos', - stops: 'Paradas' - }, - }, - route: { - pageTitles: { - routes: 'Rutas', - cmrsList: 'Listado de CMRs externos', - RouteList: 'Listado', - create: 'Crear', - basicData: 'Datos básicos', - summary: 'Resumen', - RouteRoadmap: 'Troncales', - RouteRoadmapCreate: 'Crear troncal', - tickets: 'Tickets', - log: 'Historial', - autonomous: 'Autónomos', - }, - cmr: { - list: { - results: 'resultados', - cmrFk: 'Id CMR', - hasCmrDms: 'Adjuntado en gestdoc', - true: 'Sí', - false: 'No', - ticketFk: 'Id ticket', - routeFk: 'Id ruta', - country: 'País', - clientFk: 'Id cliente', - shipped: 'Fecha preparación', - viewCmr: 'Ver CMR', - downloadCmrs: 'Descargar CMRs', - }, - }, - }, - supplier: { - pageTitles: { - suppliers: 'Proveedores', - supplier: 'Proveedor', - list: 'Listado', - create: 'Crear', - summary: 'Resumen', - basicData: 'Datos básicos', - fiscalData: 'Datos fiscales', - billingData: 'Forma de pago', - log: 'Historial', - accounts: 'Cuentas', - contacts: 'Contactos', - addresses: 'Direcciones', - consumption: 'Consumo', - agencyTerm: 'Acuerdo agencia', - }, - list: { - payMethod: 'Método de pago', - payDeadline: 'Plazo de pago', - payDay: 'Día de pago', - account: 'Cuenta', - newSupplier: 'Nuevo proveedor', - }, - summary: { - responsible: 'Responsable', - notes: 'Notas', - verified: 'Verificado', - isActive: 'Está activo', - billingData: 'Forma de pago', - payMethod: 'Método de pago', - payDeadline: 'Plazo de pago', - payDay: 'Día de pago', - account: 'Cuenta', - fiscalData: 'Datos fiscales', - sageTaxType: 'Tipo de impuesto Sage', - sageTransactionType: 'Tipo de transacción Sage', - sageWithholding: 'Retención sage', - supplierActivity: 'Actividad proveedor', - healthRegister: 'Pasaporte sanitario', - fiscalAddress: 'Dirección fiscal', - socialName: 'Razón social', - taxNumber: 'NIF/CIF', - street: 'Dirección', - city: 'Población', - postCode: 'Código postal', - province: 'Provincia', - country: 'País', - }, - create: { - supplierName: 'Nombre del proveedor', - }, - basicData: { - alias: 'Alias', - workerFk: 'Responsable', - isSerious: 'Verificado', - isActive: 'Activo', - isPayMethodChecked: 'Método de pago validado', - note: 'Notas', - }, - fiscalData: { - name: 'Razón social *', - nif: 'NIF/CIF *', - account: 'Cuenta', - sageTaxTypeFk: 'Tipo de impuesto sage', - sageWithholdingFk: 'Retención sage', - sageTransactionTypeFk: 'Tipo de transacción sage', - supplierActivityFk: 'Actividad proveedor', - healthRegister: 'Pasaporte sanitario', - street: 'Calle', - postcode: 'Código postal', - city: 'Población *', - provinceFk: 'Provincia', - country: 'País', - isTrucker: 'Transportista', - isVies: 'Vies', - }, - billingData: { - payMethodFk: 'Forma de pago', - payDemFk: 'Plazo de pago', - payDay: 'Día de pago', - }, - accounts: { - iban: 'Iban', - bankEntity: 'Entidad bancaria', - beneficiary: 'Beneficiario', - }, - contacts: { - name: 'Nombre', - phone: 'Teléfono', - mobile: 'Móvil', - email: 'Email', - observation: 'Notas', - }, - addresses: { - street: 'Dirección', - postcode: 'Código postal', - phone: 'Teléfono', - name: 'Nombre', - city: 'Población', - province: 'Provincia', - mobile: 'Móvil', - }, - agencyTerms: { - agencyFk: 'Agencia', - minimumM3: 'M3 mínimos', - packagePrice: 'Precio bulto', - kmPrice: 'Precio Km', - m3Price: 'Precio M3', - routePrice: 'Precio ruta', - minimumKm: 'Km mínimos', - addRow: 'Añadir fila', - }, - consumption: { - entry: 'Entrada', - date: 'Fecha', - reference: 'Referencia', - }, - }, - travel: { - pageTitles: { - travel: 'Envíos', - list: 'Listado', - create: 'Crear', - summary: 'Resumen', - extraCommunity: 'Extra comunitarios', - travelCreate: 'Nuevo envío', - basicData: 'Datos básicos', - history: 'Historial', - thermographs: 'Termógrafos', - }, - summary: { - confirmed: 'Confirmado', - entryId: 'Id entrada', - freight: 'Porte', - package: 'Embalaje', - delivered: 'Enviada', - received: 'Recibida', - entries: 'Entradas', - cloneShipping: 'Clonar envío', - CloneTravelAndEntries: 'Clonar travel y sus entradas', - deleteTravel: 'Eliminar envío', - AddEntry: 'Añadir entrada', - thermographs: 'Termógrafos', - hb: 'HB', - }, - variables: { - search: 'Id/Referencia', - agencyModeFk: 'Agencia', - warehouseInFk: 'Alm. entrada', - warehouseOutFk: ' Alm. salida', - landedFrom: 'Llegada desde', - landedTo: 'Llegada hasta', - continent: 'Cont. Salida', - totalEntries: 'Ent. totales', - }, - basicData: { - reference: 'Referencia', - agency: 'Agencia', - shipped: 'F. Envío', - landed: 'F. entrega', - warehouseOut: 'Alm. salida', - warehouseIn: 'Alm. entrada', - delivered: 'Enviada', - received: 'Recibida', - }, - thermographs: { - code: 'Código', - temperature: 'Temperatura', - state: 'Estado', - destination: 'Destino', - created: 'Fecha creación', - thermograph: 'Termógrafo', - reference: 'Referencia', - type: 'Tipo', - company: 'Empresa', - warehouse: 'Almacén', - travelFileDescription: 'Id envío { travelId }', - file: 'Fichero', - }, - }, - item: { - pageTitles: { - items: 'Artículos', - list: 'Listado', - diary: 'Histórico', - tags: 'Etiquetas', - }, - descriptor: { - item: 'Artículo', - buyer: 'Comprador', - color: 'Color', - category: 'Categoría', - stems: 'Tallos', - visible: 'Visible', - available: 'Disponible', - warehouseText: 'Calculado sobre el almacén de { warehouseName }', - itemDiary: 'Registro de compra-venta', - }, - }, - components: { - topbar: {}, - userPanel: { - copyToken: 'Token copiado al portapapeles', - settings: 'Configuración', - logOut: 'Cerrar sesión', - }, - smartCard: { - downloadFile: 'Descargar archivo', - clone: 'Clonar', - openCard: 'Ficha', - openSummary: 'Detalles', - }, - cardDescriptor: { - mainList: 'Listado principal', - summary: 'Resumen', - moreOptions: 'Más opciones', - }, - leftMenu: { - addToPinned: 'Añadir a fijados', - removeFromPinned: 'Eliminar de fijados', - }, - VnLv: { - copyText: '{copyValue} se ha copiado al portapepeles', - }, - iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789', - }, -}; diff --git a/src/i18n/index.js b/src/i18n/index.js index aee039001..331ef914a 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -1,27 +1,21 @@ -const langs = import.meta.glob(`./**/*.js`); -const files = import.meta.glob(`../pages/**/Translation/en.js`); -const importLang = {}; +const files = import.meta.glob(`./locale/*.yml`); +const modules = import.meta.glob(`../pages/**/locale/en.yml`); +const translations = {}; -for (const fileLang in langs) { - const lang = fileLang.split('/').at(1); - - import(fileLang) +for (const file in files) { + const lang = file.split('/').at(2).split('.')[0]; + import(file) .then((t) => { - importLang[lang] = t.default; + translations[lang] = t.default; }) .finally(() => { - for (const file in files) { - const splittedFile = file.split('/'); + for (const module in modules) { + const splittedFile = module.split('/'); splittedFile.pop(); - const langFiles = splittedFile.join('/') + '/' + lang + '.js'; - console.log('myFile: ', langFiles); - import(langFiles) - .then((t) => { - Object.assign(importLang[lang], t.default); - }) - .catch((err) => { - console.log('no va: ' + err, file, importLang); - }); + const moduleFiles = splittedFile.join('/') + '/' + lang + '.yml'; + import(moduleFiles).then((t) => { + Object.assign(translations[lang], t.default); + }); } }); } @@ -29,4 +23,5 @@ for (const fileLang in langs) { export const localeEquivalence = { en: 'en-GB', }; -export default importLang; + +export default translations; diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml new file mode 100644 index 000000000..909373dba --- /dev/null +++ b/src/i18n/locale/en.yml @@ -0,0 +1,1104 @@ +globals: + lang: + es: Spanish + en: English + language: Language + entity: Entity + user: User + details: Details + collapseMenu: Collapse left menu + backToDashboard: Return to dashboard + notifications: Notifications + userPanel: User panel + modules: Modules + pinnedModules: Pinned modules + darkMode: Dark mode + logOut: Log out + date: Date + dataSaved: Data saved + dataDeleted: Data deleted + search: Search + changes: Changes + dataCreated: Data created + add: Add + create: Create + edit: Edit + save: Save + remove: Remove + reset: Reset + close: Close + cancel: Cancel + confirm: Confirm + assign: Assign + back: Back + yes: 'Yes' + no: 'No' + noChanges: No changes to save + changesToSave: You have changes pending to save + confirmRemove: You are about to delete this row. Are you sure? + rowAdded: Row added + rowRemoved: Row removed + pleaseWait: Please wait... + noPinnedModules: You don't have any pinned modules + summary: + basicData: Basic data + today: Today + yesterday: Yesterday + dateFormat: en-GB + microsip: Open in MicroSIP + noSelectedRows: You don't have any line selected + downloadCSVSuccess: CSV downloaded successfully + reference: Reference + agency: Agency + wareHouseOut: Warehouse Out + wareHouseIn: Warehouse In + landed: Landed + shipped: Shipped + totalEntries: Total entries + amount: Amount + packages: Packages + download: Download + selectRows: 'Select all { numberRows } row(s)' + allRows: 'All { numberRows } row(s)' + markAll: Mark all + requiredField: Required field + class: clase + type: Type + reason: reason + noResults: No results + system: System + warehouse: Warehouse + company: Company + fieldRequired: Field required + allowedFilesText: 'Allowed file types: { allowedContentTypes }' + smsSent: SMS sent + confirmDeletion: Confirm deletion + confirmDeletionMessage: Are you sure you want to delete this? + description: Description + id: Id + order: Order + original: Original + file: File + selectFile: Select a file + copyClipboard: Copy on clipboard + salesPerson: SalesPerson +errors: + statusUnauthorized: Access denied + statusInternalServerError: An internal server error has ocurred + statusBadGateway: It seems that the server has fall down + statusGatewayTimeout: Could not contact the server + userConfig: Error fetching user config + writeRequest: The requested operation could not be completed +login: + title: Login + username: Username + password: Password + submit: Log in + keepLogin: Keep me logged in + loginSuccess: You have successfully logged in + loginError: Invalid username or password + fieldRequired: This field is required + twoFactorRequired: Two-factor verification required + pageTitles: + logIn: Login +twoFactor: + code: Code + validate: Validate + insert: Enter the verification code + explanation: >- + Please, enter the verification code that we have sent to your email in the + next 5 minutes + pageTitles: + twoFactor: Two-Factor +verifyEmail: + pageTitles: + verifyEmail: Email verification +dashboard: + pageTitles: + dashboard: Dashboard +customer: + pageTitles: + customers: Customers + create: Create + list: List + webPayments: Web Payments + extendedList: Extended list + notifications: Notifications + defaulter: Defaulter + createCustomer: Create customer + summary: Summary + basicData: Basic data + fiscalData: Fiscal data + billingData: Billing data + consignees: Consignees + notes: Notes + credits: Credits + greuges: Greuges + balance: Balance + recoveries: Recoveries + webAccess: Web access + log: Log + sms: Sms + creditManagement: Credit management + creditContracts: Credit contracts + creditOpinion: Credit opinion + others: Others + list: + phone: Phone + email: Email + customerOrders: Display customer orders + moreOptions: More options + card: + customerList: Customer list + customerId: Claim ID + salesPerson: Sales person + credit: Credit + securedCredit: Secured credit + payMethod: Pay method + debt: Debt + isDisabled: Customer is disabled + isFrozen: Customer is frozen + hasDebt: Customer has debt + notChecked: Customer not checked + noWebAccess: Web access is disabled + businessTypeFk: Business type + summary: + basicData: Basic data + fiscalAddress: Fiscal address + fiscalData: Fiscal data + billingData: Billing data + consignee: Default consignee + businessData: Business data + financialData: Financial data + customerId: Customer ID + name: Name + contact: Contact + phone: Phone + mobile: Mobile + email: Email + salesPerson: Sales person + contactChannel: Contact channel + socialName: Social name + fiscalId: Fiscal ID + postcode: Postcode + province: Province + country: Country + street: Address + isEqualizated: Is equalizated + isActive: Is active + invoiceByAddress: Invoice by address + verifiedData: Verified data + hasToInvoice: Has to invoice + notifyByEmail: Notify by email + vies: VIES + payMethod: Pay method + bankAccount: Bank account + dueDay: Due day + hasLcr: Has LCR + hasCoreVnl: Has core VNL + hasB2BVnl: Has B2B VNL + addressName: Address name + addressCity: City + addressStreet: Street + username: Username + webAccess: Web access + totalGreuge: Total greuge + mana: Mana + priceIncreasingRate: Price increasing rate + averageInvoiced: Average invoiced + claimRate: Claming rate + risk: Risk + riskInfo: Invoices minus payments plus orders not yet invoiced + credit: Credit + creditInfo: Company's maximum risk + securedCredit: Secured credit + securedCreditInfo: Solunion's maximum risk + balance: Balance + balanceInfo: Invoices minus payments + balanceDue: Balance due + balanceDueInfo: Deviated invoices minus payments + recoverySince: Recovery since + businessType: Business Type + city: City + rating: Rating + recommendCredit: Recommended credit + basicData: + socialName: Fiscal name + businessType: Business type + contact: Contact + email: Email + phone: Phone + mobile: Mobile + salesPerson: Sales person + contactChannel: Contact channel + extendedList: + tableVisibleColumns: + id: Identifier + name: Name + fi: Tax number + salesPersonFk: Salesperson + credit: Credit + creditInsurance: Credit insurance + phone: Phone + mobile: Mobile + street: Street + countryFk: Country + provinceFk: Province + city: City + postcode: Postcode + email: Email + created: Created + businessTypeFk: Business type + payMethodFk: Billing data + sageTaxTypeFk: Sage tax type + sageTransactionTypeFk: Sage tr. type + isActive: Active + isVies: Vies + isTaxDataChecked: Verified data + isEqualizated: Is equalizated + isFreezed: Freezed + hasToInvoice: Invoice + hasToInvoiceByAddress: Invoice by address + isToBeMailed: Mailing + hasLcr: Received LCR + hasCoreVnl: VNL core received + hasSepaVnl: VNL B2B received +entry: + pageTitles: + entries: Entries + list: List + summary: Summary + basicData: Basic data + buys: Buys + notes: Notes + dms: File management + log: Log + create: Create + latestBuys: Latest buys + list: + newEntry: New entry + landed: Landed + invoiceNumber: Invoice number + supplier: Supplier + booked: Booked + confirmed: Confirmed + ordered: Ordered + summary: + commission: Commission + currency: Currency + company: Company + reference: Reference + invoiceNumber: Invoice number + ordered: Ordered + confirmed: Confirmed + booked: Booked + raid: Raid + excludedFromAvailable: Inventory + travelReference: Reference + travelAgency: Agency + travelShipped: Shipped + travelWarehouseOut: Warehouse Out + travelDelivered: Delivered + travelLanded: Landed + travelWarehouseIn: Warehouse In + travelReceived: Received + buys: Buys + quantity: Quantity + stickers: Stickers + package: Package + weight: Weight + packing: Packing + grouping: Grouping + buyingValue: Buying value + import: Import + pvp: PVP + item: Item + basicData: + supplier: Supplier + travel: Travel + reference: Reference + invoiceNumber: Invoice number + company: Company + currency: Currency + commission: Commission + observation: Observation + ordered: Ordered + confirmed: Confirmed + booked: Booked + raid: Raid + excludedFromAvailable: Inventory + agency: Agency + warehouseOut: Warehouse Out + warehouseIn: Warehouse In + shipped: Shipped + landed: Landed + id: ID + buys: + groupingPrice: Grouping price + packingPrice: Packing price + reference: Reference + observations: Observations + item: Item + size: Size + packing: Packing + grouping: Grouping + buyingValue: Buying value + packagingFk: Box + file: File + name: Name + producer: Producer + type: Type + color: Color + id: ID + notes: + observationType: Observation type + descriptor: + agency: Agency + landed: Landed + warehouseOut: Warehouse Out + latestBuys: + picture: Picture + itemFk: Item ID + packing: Packing + grouping: Grouping + quantity: Quantity + size: Size + tags: Tags + type: Type + intrastat: Intrastat + origin: Origin + weightByPiece: Weight/Piece + isActive: Active + family: Family + entryFk: Entry + buyingValue: Buying value + freightValue: Freight value + comissionValue: Commission value + packageValue: Package value + isIgnored: Is ignored + price2: Grouping + price3: Packing + minPrice: Min + ektFk: Ekt + weight: Weight + packagingFk: Package + packingOut: Package out + landing: Landing +ticket: + pageTitles: + tickets: Tickets + list: List + createTicket: Create ticket + summary: Summary + basicData: Basic Data + boxing: Boxing + sms: Sms + notes: Notes + list: + nickname: Nickname + state: State + shipped: Shipped + landed: Landed + salesPerson: Sales person + total: Total + card: + ticketId: Ticket ID + state: State + customerId: Customer ID + salesPerson: Sales person + agency: Agency + shipped: Shipped + warehouse: Warehouse + customerCard: Customer card + alias: Alias + boxing: + expedition: Expedition + item: Item + created: Created + worker: Worker + selectTime: 'Select time:' + selectVideo: 'Select video:' + notFound: No videos available + summary: + state: State + salesPerson: Sales person + agency: Agency + zone: Zone + warehouse: Warehouse + route: Route + invoice: Invoice + shipped: Shipped + landed: Landed + consigneePhone: Consignee phone + consigneeMobile: Consignee mobile + clientPhone: Client phone + clientMobile: Client mobile + consignee: Consignee + subtotal: Subtotal + vat: VAT + total: Total + saleLines: Line items + item: Item + visible: Visible + available: Available + quantity: Quantity + price: Price + discount: Discount + packing: Packing + hasComponentLack: Component lack + itemShortage: Not visible + claim: Claim + reserved: Reserved + created: Created + package: Package + taxClass: Tax class + services: Services + changeState: Change state + requester: Requester + atender: Atender + request: Request + weight: Weight + goTo: Go to +claim: + pageTitles: + claims: Claims + list: List + createClaim: Create claim + summary: Summary + basicData: Basic Data + lines: Lines + photos: Photos + development: Development + log: Audit logs + notes: Notes + action: Action + list: + customer: Customer + assignedTo: Assigned + created: Created + state: State + rmaList: + code: Code + records: records + card: + claimId: Claim ID + assignedTo: Assigned + created: Created + state: State + ticketId: Ticket ID + customerSummary: Customer summary + claimedTicket: Claimed ticket + saleTracking: Sale tracking + ticketTracking: Ticket tracking + commercial: Commercial + province: Province + zone: Zone + summary: + customer: Customer + assignedTo: Assigned + attendedBy: Attended by + created: Created + state: State + details: Details + item: Item + landed: Landed + quantity: Quantity + claimed: Claimed + price: Price + discount: Discount + total: Total + actions: Actions + responsibility: Responsibility + company: Company + person: Employee/Customer + notes: Notes + photos: Photos + development: Development + reason: Reason + result: Result + responsible: Responsible + worker: Worker + redelivery: Redelivery + basicData: + customer: Customer + assignedTo: Assigned + created: Created + state: State + picked: Picked + photo: + fileDescription: 'Claim id {claimId} from client {clientName} id {clientId}' + noData: 'There are no images/videos, click here or drag and drop the file' + dragDrop: Drag and drop it here +invoiceOut: + pageTitles: + invoiceOuts: Invoice out + list: List + negativeBases: Negative Bases + globalInvoicing: Global invoicing + createInvoiceOut: Create invoice out + summary: Summary + basicData: Basic Data + list: + ref: Reference + issued: Issued + shortIssued: Issued + client: Client + created: Created + shortCreated: Created + company: Company + dued: Due date + shortDued: Due date + amount: Amount + card: + issued: Issued + client: Client + company: Company + customerCard: Customer card + ticketList: Ticket List + summary: + issued: Issued + created: Created + dued: Due + booked: Booked + company: Company + taxBreakdown: Tax breakdown + type: Type + taxableBase: Taxable base + rate: Rate + fee: Fee + tickets: Tickets + ticketId: Ticket id + nickname: Alias + shipped: Shipped + totalWithVat: Amount + globalInvoices: + errors: + chooseValidClient: Choose a valid client + chooseValidCompany: Choose a valid company + chooseValidPrinter: Choose a valid printer + fillDates: Invoice date and the max date should be filled + invoiceDateLessThanMaxDate: Invoice date can not be less than max date + invoiceWithFutureDate: Exists an invoice with a future date + noTicketsToInvoice: There are not tickets to invoice + criticalInvoiceError: 'Critical invoicing error, process stopped' + table: + client: Client + addressId: Address id + streetAddress: Street + statusCard: + percentageText: '{getPercentage}% {getAddressNumber} of {getNAddresses}' + pdfsNumberText: '{nPdfs} of {totalPdfs} PDFs' + negativeBases: + from: From + to: To + company: Company + country: Country + clientId: Client Id + client: Client + amount: Amount + base: Base + ticketId: Ticket Id + active: Active + hasToInvoice: Has to Invoice + verifiedData: Verified Data + comercial: Comercial + errors: + downloadCsvFailed: CSV download failed +shelving: + pageTitles: + shelving: Shelving + shelvingList: Shelving List + create: Create + summary: Summary + basicData: Basic Data + log: Logs + list: + parking: Parking + priority: Priority + newShelving: New Shelving + summary: + code: Code + parking: Parking + priority: Priority + worker: Worker + recyclable: Recyclable + basicData: + code: Code + parking: Parking + priority: Priority + recyclable: Recyclable +invoiceIn: + pageTitles: + invoiceIns: Invoices In + list: List + createInvoiceIn: Create invoice in + summary: Summary + basicData: Basic data + vat: VAT + dueDay: Due day + intrastat: Intrastat + corrective: Corrective + log: Logs + list: + ref: Reference + supplier: Supplier + supplierRef: Supplier ref. + serialNumber: Serial number + serial: Serial + file: File + issued: Issued + isBooked: Is booked + awb: AWB + amount: Amount + card: + issued: Issued + amount: Amount + client: Client + company: Company + customerCard: Customer card + ticketList: Ticket List + vat: Vat + dueDay: Due day + intrastat: Intrastat + summary: + supplier: Supplier + supplierRef: Supplier ref. + currency: Currency + docNumber: Doc number + issued: Expedition date + operated: Operation date + bookEntried: Entry date + bookedDate: Booked date + sage: Sage withholding + vat: Undeductible VAT + company: Company + booked: Booked + expense: Expense + taxableBase: Taxable base + rate: Rate + sageVat: Sage vat + sageTransaction: Sage transaction + dueDay: Date + bank: Bank + amount: Amount + foreignValue: Foreign value + dueTotal: Due day + noMatch: Do not match + code: Code + net: Net + stems: Stems + country: Country +order: + pageTitles: + order: Orders + orderList: List + create: Create + summary: Summary + basicData: Basic Data + catalog: Catalog + volume: Volume + lines: Lines + field: + salesPersonFk: Sales Person + clientFk: Client + isConfirmed: Confirmed + created: Created + landed: Landed + hour: Hour + agency: Agency + total: Total + form: + clientFk: Client + addressFk: Address + landed: Landed + agencyModeFk: Agency + list: + newOrder: New Order + summary: + basket: Basket + nickname: Nickname + company: Company + confirmed: Confirmed + notConfirmed: Not confirmed + created: Created + landed: Landed + phone: Phone + createdFrom: Created From + address: Address + notes: Notes + subtotal: Subtotal + total: Total + vat: VAT + state: State + alias: Alias + items: Items + orderTicketList: Order Ticket List + details: Details + item: Item + quantity: Quantity + price: Price + amount: Amount +department: + pageTitles: + basicData: Basic data + department: Department + summary: Summary + name: Name + code: Code + chat: Chat + bossDepartment: Boss Department + email: Email + selfConsumptionCustomer: Self-consumption customer + telework: Telework + notifyOnErrors: Notify on errors + worksInProduction: Works in production + hasToRefill: Fill in days without physical check-ins + hasToSendMail: Send check-ins by email + departmentRemoved: Department removed +worker: + pageTitles: + workers: Workers + list: List + basicData: Basic data + summary: Summary + notifications: Notifications + workerCreate: New worker + department: Department + pda: PDA + list: + name: Name + email: Email + phone: Phone + mobile: Mobile + active: Active + department: Department + schedule: Schedule + newWorker: New worker + card: + workerId: Worker ID + name: Name + email: Email + phone: Phone + mobile: Mobile + active: Active + warehouse: Warehouse + agency: Agency + salesPerson: Sales person + summary: + basicData: Basic data + boss: Boss + phoneExtension: Phone extension + entPhone: Enterprise phone + personalPhone: Personal phone + noBoss: No boss + userData: User data + userId: User ID + role: Role + sipExtension: Extension + locker: Locker + notificationsManager: + activeNotifications: Active notifications + availableNotifications: Available notifications + subscribed: Subscribed to the notification + unsubscribed: Unsubscribed from the notification + pda: + newPDA: New PDA + currentPDA: Current PDA + model: Model + serialNumber: Serial number + removePDA: Deallocate PDA + create: + name: Name + lastName: Last name + birth: Birth + fi: Fi + code: Worker code + phone: Phone + postcode: Postcode + province: Province + city: City + street: Street + webUser: Web user + personalEmail: Personal email + company: Company + boss: Boss + payMethods: Pay method + iban: IBAN + bankEntity: Swift / BIC + imageNotFound: Image not found +wagon: + pageTitles: + wagons: Wagons + wagonsList: Wagons List + wagonCreate: Create wagon + wagonEdit: Edit wagon + typesList: Types List + typeCreate: Create type + typeEdit: Edit type + wagonCounter: Trolley counter + type: + name: Name + submit: Submit + reset: Reset + trayColor: Tray color + removeItem: Wagon type removed successfully + list: + plate: Plate + volume: Volume + type: Type + remove: Remove + removeItem: Wagon removed successfully + create: + plate: Plate + volume: Volume + type: Type + label: Label + warnings: + noData: No data available + nameNotEmpty: Name can not be empty + labelNotEmpty: Label can not be empty + plateNotEmpty: Plate can not be empty + volumeNotEmpty: Volume can not be empty + typeNotEmpty: Type can not be empty + maxTrays: You have reached the max number of trays + minHeightBetweenTrays: 'The minimum height between trays is ' + maxWagonHeight: 'The maximum height of the wagon is ' + uncompleteTrays: There are incomplete trays +route/roadmap: + pageTitles: + roadmap: Roadmap + summary: Summary + basicData: Basic Data + stops: Stops +roadmap: + pageTitles: + roadmap: Roadmap + summary: Summary + basicData: Basic Data + stops: Stops +route: + pageTitles: + routes: Routes + cmrsList: External CMRs list + RouteList: List + create: Create + basicData: Basic Data + summary: Summary + RouteRoadmap: Roadmaps + RouteRoadmapCreate: Create roadmap + tickets: Tickets + log: Log + autonomous: Autonomous + cmr: + list: + results: results + cmrFk: CMR id + hasCmrDms: Attached in gestdoc + 'true': 'Yes' + 'false': 'No' + ticketFk: Ticketd id + routeFk: Route id + country: Country + clientFk: Client id + shipped: Preparation date + viewCmr: View CMR + downloadCmrs: Download CMRs +supplier: + pageTitles: + suppliers: Suppliers + supplier: Supplier + list: List + create: Create + summary: Summary + basicData: Basic data + fiscalData: Fiscal data + billingData: Billing data + log: Log + accounts: Accounts + contacts: Contacts + addresses: Addresses + consumption: Consumption + agencyTerm: Agency agreement + list: + payMethod: Pay method + payDeadline: Pay deadline + payDay: Pay day + account: Account + newSupplier: New supplier + summary: + responsible: Responsible + notes: Notes + verified: Verified + isActive: Is active + billingData: Billing data + payMethod: Pay method + payDeadline: Pay deadline + payDay: Día de pago + account: Account + fiscalData: Fiscal data + sageTaxType: Sage tax type + sageTransactionType: Sage transaction type + sageWithholding: Sage withholding + supplierActivity: Supplier activity + healthRegister: Healt register + fiscalAddress: Fiscal address + socialName: Social name + taxNumber: Tax number + street: Street + city: City + postCode: Postcode + province: Province + country: Country + create: + supplierName: Supplier name + basicData: + alias: Alias + workerFk: Responsible + isSerious: Verified + isActive: Active + isPayMethodChecked: PayMethod checked + note: Notes + fiscalData: + name: Social name * + nif: Tax number * + account: Account + sageTaxTypeFk: Sage tax type + sageWithholdingFk: Sage withholding + sageTransactionTypeFk: Sage transaction type + supplierActivityFk: Supplier activity + healthRegister: Health register + street: Street + postcode: Postcode + city: City * + provinceFk: Province + country: Country + isTrucker: Trucker + isVies: Vies + billingData: + payMethodFk: Billing data + payDemFk: Payment deadline + payDay: Pay day + accounts: + iban: Iban + bankEntity: Bank entity + beneficiary: Beneficiary + contacts: + name: Name + phone: Phone + mobile: Mobile + email: Email + observation: Notes + addresses: + street: Street + postcode: Postcode + phone: Phone + name: Name + city: City + province: Province + mobile: Mobile + agencyTerms: + agencyFk: Agency + minimumM3: Minimum M3 + packagePrice: Package Price + kmPrice: Km Price + m3Price: M3 Price + routePrice: Route price + minimumKm: Minimum Km + addRow: Add row + consumption: + entry: Entry + date: Date + reference: Reference +travel: + pageTitles: + travel: Travels + list: List + create: Create + summary: Summary + extraCommunity: Extra community + travelCreate: New travel + basicData: Basic data + history: Log + thermographs: Thermograph + summary: + confirmed: Confirmed + entryId: Entry Id + freight: Freight + package: Package + delivered: Delivered + received: Received + entries: Entries + cloneShipping: Clone travel + CloneTravelAndEntries: Clone travel and his entries + deleteTravel: Delete travel + AddEntry: Add entry + thermographs: Thermographs + hb: HB + variables: + search: Id/Reference + agencyModeFk: Agency + warehouseInFk: ' Warehouse In' + warehouseOutFk: Warehouse Out + landedFrom: Landed from + landedTo: Landed to + continent: Continent out + totalEntries: Total entries + basicData: + reference: Reference + agency: Agency + shipped: Shipped + landed: Landed + warehouseOut: Warehouse Out + warehouseIn: Warehouse In + delivered: Delivered + received: Received + thermographs: + code: Code + temperature: Temperature + state: State + destination: Destination + created: Created + thermograph: Thermograph + reference: Reference + type: Type + company: Company + warehouse: Warehouse + travelFileDescription: 'Travel id { travelId }' + file: File +item: + pageTitles: + items: Items + list: List + diary: Diary + tags: Tags + descriptor: + item: Item + buyer: Buyer + color: Color + category: Category + stems: Stems + visible: Visible + available: Available + warehouseText: 'Calculated on the warehouse of { warehouseName }' + itemDiary: Item diary +components: + topbar: {} + userPanel: + copyToken: Token copied to clipboard + settings: Settings + logOut: Log Out + smartCard: + downloadFile: Download file + clone: Clone + openCard: View + openSummary: Summary + cardDescriptor: + mainList: Main list + summary: Summary + moreOptions: More options + leftMenu: + addToPinned: Add to pinned + removeFromPinned: Remove from pinned + VnLv: + copyText: '{copyValue} has been copied to the clipboard' + iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789' diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml new file mode 100644 index 000000000..10b7f0ed7 --- /dev/null +++ b/src/i18n/locale/es.yml @@ -0,0 +1,1101 @@ +globals: + lang: + es: Español + en: Inglés + language: Idioma + entity: Entidad + user: Usuario + details: Detalles + collapseMenu: Contraer menú lateral + backToDashboard: Volver al tablón + notifications: Notificaciones + userPanel: Panel de usuario + modules: Módulos + pinnedModules: Módulos fijados + darkMode: Modo oscuro + logOut: Cerrar sesión + date: Fecha + dataSaved: Datos guardados + dataDeleted: Datos eliminados + search: Buscar + changes: Cambios + dataCreated: Datos creados + add: Añadir + create: Crear + edit: Modificar + save: Guardar + remove: Eliminar + reset: Restaurar + close: Cerrar + cancel: Cancelar + confirm: Confirmar + assign: Asignar + back: Volver + yes: Si + no: No + noChanges: Sin cambios que guardar + changesToSave: Tienes cambios pendientes de guardar + confirmRemove: Vas a eliminar este registro. ¿Continuar? + rowAdded: Fila añadida + rowRemoved: Fila eliminada + pleaseWait: 'Por favor, espera...' + noPinnedModules: No has fijado ningún módulo + summary: + basicData: Datos básicos + today: Hoy + yesterday: Ayer + dateFormat: es-ES + noSelectedRows: No tienes ninguna línea seleccionada + microsip: Abrir en MicroSIP + downloadCSVSuccess: Descarga de CSV exitosa + reference: Referencia + agency: Agencia + wareHouseOut: Alm. salida + wareHouseIn: Alm. entrada + landed: F. entrega + shipped: F. envío + totalEntries: Ent. totales + amount: Importe + packages: Bultos + download: Descargar + selectRows: 'Seleccionar las { numberRows } filas(s)' + allRows: 'Todo { numberRows } filas(s)' + markAll: Marcar todo + requiredField: Campo obligatorio + class: clase + type: Tipo + reason: motivo + noResults: Sin resultados + system: Sistema + warehouse: Almacén + company: Empresa + fieldRequired: Campo requerido + allowedFilesText: 'Tipos de archivo permitidos: { allowedContentTypes }' + smsSent: SMS enviado + confirmDeletion: Confirmar eliminación + confirmDeletionMessage: ¿Seguro que quieres eliminar? + description: Descripción + id: Id + order: Orden + original: Original + file: Fichero + selectFile: Seleccione un fichero + copyClipboard: Copiar en portapapeles + salesPerson: Comercial +errors: + statusUnauthorized: Acceso denegado + statusInternalServerError: Ha ocurrido un error interno del servidor + statusBadGateway: Parece ser que el servidor ha caído + statusGatewayTimeout: No se ha podido contactar con el servidor + userConfig: Error al obtener configuración de usuario + writeRequest: No se pudo completar la operación solicitada +login: + title: Inicio de sesión + username: Nombre de usuario + password: Contraseña + submit: Iniciar sesión + keepLogin: Mantener sesión iniciada + loginSuccess: Inicio de sesión correcto + loginError: Nombre de usuario o contraseña incorrectos + fieldRequired: Este campo es obligatorio + twoFactorRequired: Verificación de doble factor requerida + pageTitles: + logIn: Inicio de sesión +twoFactor: + code: Código + validate: Validar + insert: Introduce el código de verificación + explanation: >- + Por favor, introduce el código de verificación que te hemos enviado a tu + email en los próximos 5 minutos + pageTitles: + twoFactor: Doble factor +verifyEmail: + pageTitles: + verifyEmail: Verificación de correo +dashboard: + pageTitles: + dashboard: Tablón +customer: + pageTitles: + customers: Clientes + create: Crear + list: Listado + webPayments: Pagos Web + extendedList: Listado extendido + notifications: Notificaciones + defaulter: Morosos + createCustomer: Crear cliente + summary: Resumen + basicData: Datos básicos + fiscalData: Datos fiscales + billingData: Forma de pago + consignees: Consignatarios + notes: Notas + credits: Créditos + greuges: Greuges + balance: Balance + recoveries: Recobros + webAccess: Acceso web + log: Historial + sms: Sms + creditManagement: Gestión de crédito + creditContracts: Contratos de crédito + creditOpinion: Opinión de crédito + others: Otros + list: + phone: Teléfono + email: Email + customerOrders: Mostrar órdenes del cliente + moreOptions: Más opciones + card: + customerId: ID cliente + salesPerson: Comercial + credit: Crédito + securedCredit: Crédito asegurado + payMethod: Método de pago + debt: Riesgo + isDisabled: El cliente está desactivado + isFrozen: El cliente está congelado + hasDebt: El cliente tiene riesgo + notChecked: El cliente no está comprobado + noWebAccess: El acceso web está desactivado + businessTypeFk: Tipo de negocio + summary: + basicData: Datos básicos + fiscalAddress: Dirección fiscal + fiscalData: Datos fiscales + billingData: Datos de facturación + consignee: Consignatario pred. + businessData: Datos comerciales + financialData: Datos financieros + customerId: ID cliente + name: Nombre + contact: Contacto + phone: Teléfono + mobile: Móvil + email: Email + salesPerson: Comercial + contactChannel: Canal de contacto + socialName: Razón social + fiscalId: NIF/CIF + postcode: Código postal + province: Provincia + country: País + street: Calle + isEqualizated: Recargo de equivalencia + isActive: Activo + invoiceByAddress: Facturar por consignatario + verifiedData: Datos verificados + hasToInvoice: Facturar + notifyByEmail: Notificar por email + vies: VIES + payMethod: Método de pago + bankAccount: Cuenta bancaria + dueDay: Día de pago + hasLcr: Recibido LCR + hasCoreVnl: Recibido core VNL + hasB2BVnl: Recibido B2B VNL + addressName: Nombre de la dirección + addressCity: Ciudad + addressStreet: Calle + username: Usuario + webAccess: Acceso web + totalGreuge: Greuge total + mana: Maná + priceIncreasingRate: Ratio de incremento de precio + averageInvoiced: Facturación media + claimRate: Ratio de reclamaciones + risk: Riesgo + riskInfo: Facturas menos recibos mas pedidos sin facturar + credit: Crédito + creditInfo: Riesgo máximo asumido por la empresa + securedCredit: Crédito asegurado + securedCreditInfo: Riesgo máximo asumido por Solunion + balance: Balance + balanceInfo: Facturas menos recibos + balanceDue: Saldo vencido + balanceDueInfo: Facturas fuera de plazo menos recibos + recoverySince: Recobro desde + businessType: Tipo de negocio + city: Población + rating: Clasificación + recommendCredit: Crédito recomendado + basicData: + socialName: Nombre fiscal + businessType: Tipo de negocio + contact: Contacto + email: Email + phone: Teléfono + mobile: Móvil + salesPerson: Comercial + contactChannel: Canal de contacto + extendedList: + tableVisibleColumns: + id: Identificador + name: Nombre + fi: NIF / CIF + salesPersonFk: Comercial + credit: Crédito + creditInsurance: Crédito asegurado + phone: Teléfono + mobile: Móvil + street: Dirección fiscal + countryFk: País + provinceFk: Provincia + city: Población + postcode: Código postal + email: Email + created: Fecha creación + businessTypeFk: Tipo de negocio + payMethodFk: Forma de pago + sageTaxTypeFk: Tipo de impuesto Sage + sageTransactionTypeFk: Tipo tr. sage + isActive: Activo + isVies: Vies + isTaxDataChecked: Datos comprobados + isEqualizated: Recargo de equivalencias + isFreezed: Congelado + hasToInvoice: Factura + hasToInvoiceByAddress: Factura por consigna + isToBeMailed: Env. emails + hasLcr: Recibido LCR + hasCoreVnl: Recibido core VNL + hasSepaVnl: Recibido B2B VNL +entry: + pageTitles: + entries: Entradas + list: Listado + summary: Resumen + basicData: Datos básicos + buys: Compras + notes: Notas + dms: Gestión documental + log: Historial + create: Crear + latestBuys: Últimas compras + list: + newEntry: Nueva entrada + landed: F. entrega + invoiceNumber: Núm. factura + supplier: Proveedor + booked: Asentado + confirmed: Confirmado + ordered: Pedida + summary: + commission: Comisión + currency: Moneda + company: Empresa + reference: Referencia + invoiceNumber: Núm. factura + ordered: Pedida + confirmed: Confirmada + booked: Contabilizada + raid: Redada + excludedFromAvailable: Inventario + travelReference: Referencia + travelAgency: Agencia + travelShipped: F. envio + travelWarehouseOut: Alm. salida + travelDelivered: Enviada + travelLanded: F. entrega + travelWarehouseIn: Alm. entrada + travelReceived: Recibida + buys: Compras + quantity: Cantidad + stickers: Etiquetas + package: Embalaje + weight: Peso + packing: Packing + grouping: Grouping + buyingValue: Coste + import: Importe + pvp: PVP + item: Artículo + basicData: + supplier: Proveedor + travel: Envío + reference: Referencia + invoiceNumber: Núm. factura + company: Empresa + currency: Moneda + observation: Observación + commission: Comisión + ordered: Pedida + confirmed: Confirmado + booked: Asentado + raid: Redada + excludedFromAvailable: Inventario + agency: Agencia + warehouseOut: Alm. salida + warehouseIn: Alm. entrada + shipped: F. envío + landed: F. entrega + id: ID + buys: + groupingPrice: Precio grouping + packingPrice: Precio packing + reference: Referencia + observations: Observaciónes + item: Artículo + size: Medida + packing: Packing + grouping: Grouping + buyingValue: Coste + packagingFk: Embalaje + file: Fichero + name: Nombre + producer: Productor + type: Tipo + color: Color + id: ID + notes: + observationType: Tipo de observación + descriptor: + agency: Agencia + landed: F. entrega + warehouseOut: Alm. salida + latestBuys: + picture: Foto + itemFk: ID Artículo + packing: Packing + grouping: Grouping + quantity: Cantidad + size: Medida + tags: Etiquetas + type: Tipo + intrastat: Intrastat + origin: Origen + weightByPiece: Peso (gramos)/tallo + isActive: Activo + family: Familia + entryFk: Entrada + buyingValue: Coste + freightValue: Porte + comissionValue: Comisión + packageValue: Embalaje + isIgnored: Ignorado + price2: Grouping + price3: Packing + minPrice: Min + ektFk: Ekt + weight: Peso + packagingFk: Embalaje + packingOut: Embalaje envíos + landing: Llegada +ticket: + pageTitles: + tickets: Tickets + list: Listado + createTicket: Crear ticket + summary: Resumen + basicData: Datos básicos + boxing: Encajado + sms: Sms + notes: Notas + list: + nickname: Alias + state: Estado + shipped: Enviado + landed: Entregado + salesPerson: Comercial + total: Total + card: + ticketId: ID ticket + state: Estado + customerId: ID cliente + salesPerson: Comercial + agency: Agencia + shipped: Enviado + warehouse: Almacén + customerCard: Ficha del cliente + alias: Alias + boxing: + expedition: Expedición + item: Artículo + created: Creado + worker: Trabajador + selectTime: 'Seleccionar hora:' + selectVideo: 'Seleccionar vídeo:' + notFound: No hay vídeos disponibles + summary: + state: Estado + salesPerson: Comercial + agency: Agencia + zone: Zona + warehouse: Almacén + route: Ruta + invoice: Factura + shipped: Enviado + landed: Entregado + consigneePhone: Tel. consignatario + consigneeMobile: Móv. consignatario + clientPhone: Tel. cliente + clientMobile: Móv. cliente + consignee: Consignatario + subtotal: Subtotal + vat: IVA + total: Total + saleLines: Líneas del pedido + item: Artículo + visible: Visible + available: Disponible + quantity: Cantidad + price: Precio + discount: Descuento + packing: Encajado + hasComponentLack: Faltan componentes + itemShortage: No visible + claim: Reclamación + reserved: Reservado + created: Fecha creación + package: Embalaje + taxClass: Tipo IVA + services: Servicios + changeState: Cambiar estado + requester: Solicitante + atender: Comprador + request: Petición de compra + weight: Peso + goTo: Ir a +claim: + pageTitles: + claims: Reclamaciones + list: Listado + createClaim: Crear reclamación + summary: Resumen + basicData: Datos básicos + lines: Líneas + development: Trazabilidad + photos: Fotos + log: Historial + notes: Notas + action: Acción + list: + customer: Cliente + assignedTo: Asignada a + created: Creada + state: Estado + rmaList: + code: Código + records: registros + card: + claimId: ID reclamación + assignedTo: Asignada a + created: Creada + state: Estado + ticketId: ID ticket + customerSummary: Resumen del cliente + claimedTicket: Ticket reclamado + saleTracking: Líneas preparadas + ticketTracking: Estados del ticket + commercial: Comercial + province: Provincia + zone: Zona + summary: + customer: Cliente + assignedTo: Asignada a + attendedBy: Atendida por + created: Creada + state: Estado + details: Detalles + item: Artículo + landed: Entregado + quantity: Cantidad + claimed: Reclamado + price: Precio + discount: Descuento + total: Total + actions: Acciones + responsibility: Responsabilidad + company: Empresa + person: Comercial/Cliente + notes: Observaciones + photos: Fotos + development: Trazabilidad + reason: Motivo + result: Consecuencias + responsible: Responsable + worker: Trabajador + redelivery: Devolución + basicData: + customer: Cliente + assignedTo: Asignada a + created: Creada + state: Estado + picked: Recogida + photo: + fileDescription: 'Reclamacion ID {claimId} del cliente {clientName} id {clientId}' + noData: 'No hay imágenes/videos, haz click aquí o arrastra y suelta el archivo' + dragDrop: Arrástralo y sueltalo aquí +invoiceOut: + pageTitles: + invoiceOuts: Fact. emitidas + list: Listado + negativeBases: Bases Negativas + globalInvoicing: Facturación global + createInvoiceOut: Crear fact. emitida + summary: Resumen + basicData: Datos básicos + list: + ref: Referencia + issued: Fecha emisión + shortIssued: F. emisión + client: Cliente + created: Fecha creación + shortCreated: F. creación + company: Empresa + dued: Fecha vencimineto + shortDued: F. vencimiento + amount: Importe + card: + issued: Fecha emisión + client: Cliente + company: Empresa + customerCard: Ficha del cliente + ticketList: Listado de tickets + summary: + issued: Fecha + created: Fecha creación + dued: Vencimiento + booked: Contabilizada + company: Empresa + taxBreakdown: Desglose impositivo + type: Tipo + taxableBase: Base imp. + rate: Tarifa + fee: Cuota + tickets: Tickets + ticketId: Id ticket + nickname: Alias + shipped: F. envío + totalWithVat: Importe + globalInvoices: + errors: + chooseValidClient: Selecciona un cliente válido + chooseValidCompany: Selecciona una empresa válida + chooseValidPrinter: Selecciona una impresora válida + fillDates: La fecha de la factura y la fecha máxima deben estar completas + invoiceDateLessThanMaxDate: La fecha de la factura no puede ser menor que la fecha máxima + invoiceWithFutureDate: Existe una factura con una fecha futura + noTicketsToInvoice: No existen tickets para facturar + criticalInvoiceError: 'Error crítico en la facturación, proceso detenido' + table: + client: Cliente + addressId: Id dirección + streetAddress: Dirección fiscal + statusCard: + percentageText: '{getPercentage}% {getAddressNumber} de {getNAddresses}' + pdfsNumberText: '{nPdfs} de {totalPdfs} PDFs' + negativeBases: + from: Desde + to: Hasta + company: Empresa + country: País + clientId: Id cliente + client: Cliente + amount: Importe + base: Base + ticketId: Id ticket + active: Activo + hasToInvoice: Facturar + verifiedData: Datos comprobados + comercial: Comercial + errors: + downloadCsvFailed: Error al descargar CSV +order: + pageTitles: + order: Cesta + orderList: Listado + create: Crear + summary: Resumen + basicData: Datos básicos + catalog: Catálogo + volume: Volumen + lines: Líneas + field: + salesPersonFk: Comercial + clientFk: Cliente + isConfirmed: Confirmada + created: Creado + landed: F. entrega + hour: Hora + agency: Agencia + total: Total + form: + clientFk: Cliente + addressFk: Dirección + landed: F. entrega + agencyModeFk: Agencia + list: + newOrder: Nuevo Pedido + summary: + basket: Cesta + nickname: Alias + company: Empresa + confirmed: Confirmada + notConfirmed: No confirmada + created: Creado + landed: F. entrega + phone: Teléfono + createdFrom: Creado desde + address: Dirección + notes: Notas + subtotal: Subtotal + total: Total + vat: IVA + state: Estado + alias: Alias + items: Items + orderTicketList: Tickets del pedido + details: Detalles + item: Item + quantity: Cantidad + price: Precio + amount: Monto +shelving: + pageTitles: + shelving: Carros + shelvingList: Listado de carros + create: Crear + summary: Resumen + basicData: Datos básicos + log: Historial + list: + parking: Parking + priority: Prioridad + newShelving: Nuevo Carro + summary: + code: Código + parking: Parking + priority: Prioridad + worker: Trabajador + recyclable: Reciclable + basicData: + code: Código + parking: Parking + priority: Prioridad + recyclable: Reciclable +invoiceIn: + pageTitles: + invoiceIns: Fact. recibidas + list: Listado + createInvoiceIn: Crear fact. recibida + summary: Resumen + basicData: Datos básicos + vat: IVA + dueDay: Vencimiento + intrastat: Intrastat + corrective: Rectificativa + log: Historial + list: + ref: Referencia + supplier: Proveedor + supplierRef: Ref. proveedor + serialNumber: Num. serie + shortIssued: F. emisión + serial: Serie + file: Fichero + issued: Fecha emisión + isBooked: Conciliada + awb: AWB + amount: Importe + card: + issued: Fecha emisión + amount: Importe + client: Cliente + company: Empresa + customerCard: Ficha del cliente + ticketList: Listado de tickets + vat: Iva + dueDay: Fecha de vencimiento + summary: + supplier: Proveedor + supplierRef: Ref. proveedor + currency: Divisa + docNumber: Número documento + issued: Fecha de expedición + operated: Fecha operación + bookEntried: Fecha asiento + bookedDate: Fecha contable + sage: Retención sage + vat: Iva no deducible + company: Empresa + booked: Contabilizada + expense: Gasto + taxableBase: Base imp. + rate: Tasa + sageTransaction: Sage transación + dueDay: Fecha + bank: Caja + amount: Importe + foreignValue: Divisa + dueTotal: Vencimiento + code: Código + net: Neto + stems: Tallos + country: País +department: + pageTitles: + basicData: Basic data + department: Departamentos + summary: Resumen + name: Nombre + code: Código + chat: Chat + bossDepartment: Jefe de departamento + email: Email + selfConsumptionCustomer: Cliente autoconsumo + telework: Teletrabaja + notifyOnErrors: Notificar errores + worksInProduction: Pertenece a producción + hasToRefill: Completar días sin registros físicos + hasToSendMail: Enviar fichadas por mail + departmentRemoved: Departamento eliminado +worker: + pageTitles: + workers: Trabajadores + list: Listado + basicData: Datos básicos + summary: Resumen + notifications: Notificaciones + workerCreate: Nuevo trabajador + department: Departamentos + pda: PDA + list: + name: Nombre + email: Email + phone: Teléfono + mobile: Móvil + active: Activo + department: Departamento + schedule: Horario + newWorker: Nuevo trabajador + card: + workerId: ID Trabajador + name: Nombre + email: Email + phone: Teléfono + mobile: Móvil + active: Activo + warehouse: Almacén + agency: Empresa + salesPerson: Comercial + summary: + basicData: Datos básicos + boss: Jefe + phoneExtension: Extensión de teléfono + entPhone: Teléfono de empresa + personalPhone: Teléfono personal + noBoss: Sin jefe + userData: Datos de usuario + userId: ID del usuario + role: Rol + sipExtension: Extensión + locker: Taquilla + notificationsManager: + activeNotifications: Notificaciones activas + availableNotifications: Notificaciones disponibles + subscribed: Se ha suscrito a la notificación + unsubscribed: Se ha dado de baja de la notificación + pda: + newPDA: Nueva PDA + currentPDA: PDA Actual + model: Modelo + serialNumber: Número de serie + removePDA: Desasignar PDA + create: + name: Nombre + lastName: Apellido + birth: Fecha de nacimiento + fi: DNI/NIF/NIE + code: Código de trabajador + phone: Teléfono + postcode: Código postal + province: Provincia + city: Población + street: Dirección + webUser: Usuario Web + personalEmail: Correo personal + company: Empresa + boss: Jefe + payMethods: Método de pago + iban: IBAN + bankEntity: Swift / BIC + imageNotFound: No se ha encontrado la imagen +wagon: + pageTitles: + wagons: Vagones + wagonsList: Listado vagones + wagonCreate: Crear tipo + wagonEdit: Editar tipo + typesList: Listado tipos + typeCreate: Crear tipo + typeEdit: Editar tipo + wagonCounter: Contador de carros + type: + name: Nombre + submit: Guardar + reset: Deshacer cambios + trayColor: Color de la bandeja + removeItem: Tipo de vagón borrado correctamente + list: + plate: Matrícula + volume: Volumen + type: Tipo + remove: Borrar + removeItem: Vagón borrado correctamente + create: + plate: Matrícula + volume: Volumen + type: Tipo + label: Etiqueta + warnings: + noData: Sin datos disponibles + nameNotEmpty: El nombre no puede estar vacío + labelNotEmpty: La etiqueta no puede estar vacía + plateNotEmpty: La matrícula no puede estar vacía + volumeNotEmpty: El volumen no puede estar vacío + typeNotEmpty: El tipo no puede estar vacío + maxTrays: Has alcanzado el número máximo de bandejas + minHeightBetweenTrays: 'La distancia mínima entre bandejas es ' + maxWagonHeight: 'La altura máxima del vagón es ' + uncompleteTrays: Hay bandejas sin completar +route/roadmap: + pageTitles: + roadmap: Troncales + summary: Resumen + basicData: Datos básicos + stops: Paradas +roadmap: + pageTitles: + roadmap: Troncales + summary: Resumen + basicData: Datos básicos + stops: Paradas +route: + pageTitles: + routes: Rutas + cmrsList: Listado de CMRs externos + RouteList: Listado + create: Crear + basicData: Datos básicos + summary: Resumen + RouteRoadmap: Troncales + RouteRoadmapCreate: Crear troncal + tickets: Tickets + log: Historial + autonomous: Autónomos + cmr: + list: + results: resultados + cmrFk: Id CMR + hasCmrDms: Adjuntado en gestdoc + 'true': Sí + 'false': 'No' + ticketFk: Id ticket + routeFk: Id ruta + country: País + clientFk: Id cliente + shipped: Fecha preparación + viewCmr: Ver CMR + downloadCmrs: Descargar CMRs +supplier: + pageTitles: + suppliers: Proveedores + supplier: Proveedor + list: Listado + create: Crear + summary: Resumen + basicData: Datos básicos + fiscalData: Datos fiscales + billingData: Forma de pago + log: Historial + accounts: Cuentas + contacts: Contactos + addresses: Direcciones + consumption: Consumo + agencyTerm: Acuerdo agencia + list: + payMethod: Método de pago + payDeadline: Plazo de pago + payDay: Día de pago + account: Cuenta + newSupplier: Nuevo proveedor + summary: + responsible: Responsable + notes: Notas + verified: Verificado + isActive: Está activo + billingData: Forma de pago + payMethod: Método de pago + payDeadline: Plazo de pago + payDay: Día de pago + account: Cuenta + fiscalData: Datos fiscales + sageTaxType: Tipo de impuesto Sage + sageTransactionType: Tipo de transacción Sage + sageWithholding: Retención sage + supplierActivity: Actividad proveedor + healthRegister: Pasaporte sanitario + fiscalAddress: Dirección fiscal + socialName: Razón social + taxNumber: NIF/CIF + street: Dirección + city: Población + postCode: Código postal + province: Provincia + country: País + create: + supplierName: Nombre del proveedor + basicData: + alias: Alias + workerFk: Responsable + isSerious: Verificado + isActive: Activo + isPayMethodChecked: Método de pago validado + note: Notas + fiscalData: + name: Razón social * + nif: NIF/CIF * + account: Cuenta + sageTaxTypeFk: Tipo de impuesto sage + sageWithholdingFk: Retención sage + sageTransactionTypeFk: Tipo de transacción sage + supplierActivityFk: Actividad proveedor + healthRegister: Pasaporte sanitario + street: Calle + postcode: Código postal + city: Población * + provinceFk: Provincia + country: País + isTrucker: Transportista + isVies: Vies + billingData: + payMethodFk: Forma de pago + payDemFk: Plazo de pago + payDay: Día de pago + accounts: + iban: Iban + bankEntity: Entidad bancaria + beneficiary: Beneficiario + contacts: + name: Nombre + phone: Teléfono + mobile: Móvil + email: Email + observation: Notas + addresses: + street: Dirección + postcode: Código postal + phone: Teléfono + name: Nombre + city: Población + province: Provincia + mobile: Móvil + agencyTerms: + agencyFk: Agencia + minimumM3: M3 mínimos + packagePrice: Precio bulto + kmPrice: Precio Km + m3Price: Precio M3 + routePrice: Precio ruta + minimumKm: Km mínimos + addRow: Añadir fila + consumption: + entry: Entrada + date: Fecha + reference: Referencia +travel: + pageTitles: + travel: Envíos + list: Listado + create: Crear + summary: Resumen + extraCommunity: Extra comunitarios + travelCreate: Nuevo envío + basicData: Datos básicos + history: Historial + thermographs: Termógrafos + summary: + confirmed: Confirmado + entryId: Id entrada + freight: Porte + package: Embalaje + delivered: Enviada + received: Recibida + entries: Entradas + cloneShipping: Clonar envío + CloneTravelAndEntries: Clonar travel y sus entradas + deleteTravel: Eliminar envío + AddEntry: Añadir entrada + thermographs: Termógrafos + hb: HB + variables: + search: Id/Referencia + agencyModeFk: Agencia + warehouseInFk: Alm. entrada + warehouseOutFk: ' Alm. salida' + landedFrom: Llegada desde + landedTo: Llegada hasta + continent: Cont. Salida + totalEntries: Ent. totales + basicData: + reference: Referencia + agency: Agencia + shipped: F. Envío + landed: F. entrega + warehouseOut: Alm. salida + warehouseIn: Alm. entrada + delivered: Enviada + received: Recibida + thermographs: + code: Código + temperature: Temperatura + state: Estado + destination: Destino + created: Fecha creación + thermograph: Termógrafo + reference: Referencia + type: Tipo + company: Empresa + warehouse: Almacén + travelFileDescription: 'Id envío { travelId }' + file: Fichero +item: + pageTitles: + items: Artículos + list: Listado + diary: Histórico + tags: Etiquetas + descriptor: + item: Artículo + buyer: Comprador + color: Color + category: Categoría + stems: Tallos + visible: Visible + available: Disponible + warehouseText: 'Calculado sobre el almacén de { warehouseName }' + itemDiary: Registro de compra-venta +components: + topbar: {} + userPanel: + copyToken: Token copiado al portapapeles + settings: Configuración + logOut: Cerrar sesión + smartCard: + downloadFile: Descargar archivo + clone: Clonar + openCard: Ficha + openSummary: Detalles + cardDescriptor: + mainList: Listado principal + summary: Resumen + moreOptions: Más opciones + leftMenu: + addToPinned: Añadir a fijados + removeFromPinned: Eliminar de fijados + VnLv: + copyText: '{copyValue} se ha copiado al portapepeles' + iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789' diff --git a/src/pages/Customer/CustomerFilter.vue b/src/pages/Customer/CustomerFilter.vue index f9678c242..7c1afa78e 100644 --- a/src/pages/Customer/CustomerFilter.vue +++ b/src/pages/Customer/CustomerFilter.vue @@ -174,7 +174,6 @@ en: params: search: Contains fi: FI - salesPersonFk: Salesperson provinceFk: Province city: City @@ -186,8 +185,6 @@ es: params: search: Contiene fi: NIF - name: Nombre - socialName: Razón Social salesPersonFk: Comercial provinceFk: Provincia city: Ciudad @@ -196,8 +193,6 @@ es: zoneFk: Zona postcode: CP FI: NIF - - Salesperson: Comercial Province: Provincia City: Ciudad diff --git a/src/pages/Customer/Translation/en.js b/src/pages/Customer/Translation/en.js deleted file mode 100644 index 7e722c18d..000000000 --- a/src/pages/Customer/Translation/en.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - customerFilter: { - filter: { - name: 'Name', - socialName: 'Social name', - }, - }, -}; diff --git a/src/pages/Customer/Translation/es.js b/src/pages/Customer/Translation/es.js deleted file mode 100644 index 180b44ab6..000000000 --- a/src/pages/Customer/Translation/es.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - customerFilter: { - filter: { - name: 'Nombre', - socialName: 'Razón Social', - }, - }, -}; diff --git a/src/pages/Customer/locale/en.yml b/src/pages/Customer/locale/en.yml new file mode 100644 index 000000000..6eb7cfa85 --- /dev/null +++ b/src/pages/Customer/locale/en.yml @@ -0,0 +1,4 @@ +customerFilter: + filter: + name: Name + socialName: Social name diff --git a/src/pages/Customer/locale/es.yml b/src/pages/Customer/locale/es.yml new file mode 100644 index 000000000..8fed37092 --- /dev/null +++ b/src/pages/Customer/locale/es.yml @@ -0,0 +1,4 @@ +customerFilter: + filter: + name: Nombre + socialName: Razón Social diff --git a/src/pages/Entry/Translation/en.js b/src/pages/Entry/Translation/en.js deleted file mode 100644 index a810d9cea..000000000 --- a/src/pages/Entry/Translation/en.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - entryList: { - list: { - inventoryEntry: 'Inventory entry', - virtualEntry: 'Virtual entry', - }, - }, - entryFilter: { - filter: { - search: 'General search', - reference: 'Reference', - }, - }, -}; diff --git a/src/pages/Entry/Translation/es.js b/src/pages/Entry/Translation/es.js deleted file mode 100644 index 6a2eecbf3..000000000 --- a/src/pages/Entry/Translation/es.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - entryList: { - list: { - inventoryEntry: 'Es inventario', - virtualEntry: 'Es una redada', - }, - }, - entryFilter: { - filter: { - search: 'Búsqueda general', - reference: 'Referencia', - }, - }, -}; diff --git a/src/pages/Entry/locale/en.yml b/src/pages/Entry/locale/en.yml new file mode 100644 index 000000000..d52989ff9 --- /dev/null +++ b/src/pages/Entry/locale/en.yml @@ -0,0 +1,8 @@ +entryList: + list: + inventoryEntry: 'Inventory entry' + virtualEntry: 'Virtual entry' +entryFilter: + filter: + search: 'General search' + reference: 'Reference' diff --git a/src/pages/Entry/locale/es.yml b/src/pages/Entry/locale/es.yml new file mode 100644 index 000000000..2dc1dfb3a --- /dev/null +++ b/src/pages/Entry/locale/es.yml @@ -0,0 +1,8 @@ +entryList: + list: + inventoryEntry: 'Es inventario' + virtualEntry: 'Es una redada' +entryFilter: + filter: + search: 'Búsqueda general' + reference: 'Referencia' diff --git a/src/pages/Travel/Translation/en.js b/src/pages/Travel/Translation/en.js deleted file mode 100644 index a3176c923..000000000 --- a/src/pages/Travel/Translation/en.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - travelFilter: { - filter: { - warehouseOutFk: 'Warehouse Out', - warehouseInFk: 'Warehouse In', - }, - }, -}; diff --git a/src/pages/Travel/Translation/es.js b/src/pages/Travel/Translation/es.js deleted file mode 100644 index 32e9869d0..000000000 --- a/src/pages/Travel/Translation/es.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - travelFilter: { - filter: { - warehouseInFk: 'Alm. entrada', - warehouseOutFk: 'Alm. salida', - }, - }, -}; diff --git a/src/pages/Travel/locale/en.yml b/src/pages/Travel/locale/en.yml new file mode 100644 index 000000000..39242aa4f --- /dev/null +++ b/src/pages/Travel/locale/en.yml @@ -0,0 +1,4 @@ +travelFilter: + filter: + warehouseOutFk: 'Warehouse Out' + warehouseInFk: 'Warehouse In' diff --git a/src/pages/Travel/locale/es.yml b/src/pages/Travel/locale/es.yml new file mode 100644 index 000000000..70c8d9324 --- /dev/null +++ b/src/pages/Travel/locale/es.yml @@ -0,0 +1,4 @@ +travelFilter: + filter: + warehouseInFk: 'Alm. entrada' + warehouseOutFk: 'Alm. salida' diff --git a/vitest.config.js b/vitest.config.js index 5a8699e99..748bbfe0a 100644 --- a/vitest.config.js +++ b/vitest.config.js @@ -19,7 +19,7 @@ export default defineConfig({ plugins: [ vue({ template: { - transformAssetUrls + transformAssetUrls, }, }), quasar({ From 146d3e87db272449b86f3554ef33cca1ebeea21e Mon Sep 17 00:00:00 2001 From: wbuezas Date: Tue, 2 Apr 2024 12:29:31 -0300 Subject: [PATCH 08/68] Change calendar extension --- package.json | 2 +- pnpm-lock.yaml | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 94d6b556f..f4e0a0690 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "dependencies": { "@quasar/cli": "^2.3.0", "@quasar/extras": "^1.16.9", - "@quasar/quasar-ui-qcalendar": "4.0.0-beta.19", "axios": "^1.4.0", "chromium": "^3.0.3", "croppie": "^2.6.5", @@ -33,6 +32,7 @@ "@intlify/unplugin-vue-i18n": "^0.8.1", "@pinia/testing": "^0.1.2", "@quasar/app-vite": "^1.7.3", + "@quasar/quasar-app-extension-qcalendar": "4.0.0-beta.15", "@quasar/quasar-app-extension-testing-unit-vitest": "^0.4.0", "@vue/test-utils": "^2.4.4", "autoprefixer": "^10.4.14", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9feb28aaa..bdff559cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,6 @@ dependencies: '@quasar/extras': specifier: ^1.16.9 version: 1.16.9 - '@quasar/quasar-ui-qcalendar': - specifier: 4.0.0-beta.19 - version: 4.0.0-beta.19 axios: specifier: ^1.4.0 version: 1.6.7 @@ -52,6 +49,9 @@ devDependencies: '@quasar/app-vite': specifier: ^1.7.3 version: 1.7.3(eslint@8.56.0)(pinia@2.1.7)(quasar@2.14.5)(vue-router@4.2.5)(vue@3.4.19) + '@quasar/quasar-app-extension-qcalendar': + specifier: 4.0.0-beta.15 + version: 4.0.0-beta.15 '@quasar/quasar-app-extension-testing-unit-vitest': specifier: ^0.4.0 version: 0.4.0(@vue/test-utils@2.4.4)(quasar@2.14.5)(vite@5.1.4)(vitest@0.31.4)(vue@3.4.19) @@ -915,6 +915,13 @@ packages: resolution: {integrity: sha512-SlOhwzXyPQHWgQIS2ncyDdYdksCJvUYNtgsDQqzAKEG3r3d/ejOxvThle79HTK3Q6HB+gQWFG21Ux00Osr5XSw==} dev: false + /@quasar/quasar-app-extension-qcalendar@4.0.0-beta.15: + resolution: {integrity: sha512-i6hQkcP70LXLfVMPZMKQjSg3681gjZmASV3vq6ULzc0LhtBiPneLdVNNtH2itkWxAmaUj+1heQDI5Pa0F7VKLQ==} + engines: {node: '>= 10.0.0', npm: '>= 5.6.0', yarn: '>= 1.6.0'} + dependencies: + '@quasar/quasar-ui-qcalendar': 4.0.0-beta.19 + dev: true + /@quasar/quasar-app-extension-testing-unit-vitest@0.4.0(@vue/test-utils@2.4.4)(quasar@2.14.5)(vite@5.1.4)(vitest@0.31.4)(vue@3.4.19): resolution: {integrity: sha512-eyzdUdmZiCueNS+5nedjMmzdbpCetSrtdGIwW6KplW1dTzRbLiNvYUjpBOxQGmJCgEhWy9zuswJ7MZ/bTql24Q==} engines: {node: '>= 12.22.1', npm: '>= 6.14.12', yarn: '>= 1.17.3'} @@ -944,7 +951,7 @@ packages: /@quasar/quasar-ui-qcalendar@4.0.0-beta.19: resolution: {integrity: sha512-BT0G2JjgKl1bqNrY5utcYeoy8gK+U9k3Pz1YDi1OB265W/jHU6nFoWMEUdY3JdvMccwkXTL2DLVyl3eqAUyLyg==} - dev: false + dev: true /@quasar/render-ssr-error@1.0.3: resolution: {integrity: sha512-A8RF99q6/sOSe1Ighnh5syEIbliD3qUYEJd2HyfFyBPSMF+WYGXon5dmzg4nUoK662NgOggInevkDyBDJcZugg==} From fc87bb8293e88a63fc7d6443448d4b84906c6ca0 Mon Sep 17 00:00:00 2001 From: wbuezas Date: Tue, 2 Apr 2024 13:04:28 -0300 Subject: [PATCH 09/68] Add page title name --- src/i18n/en/index.js | 5 +++-- src/i18n/es/index.js | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js index 80744b83d..34ce16aa7 100644 --- a/src/i18n/en/index.js +++ b/src/i18n/en/index.js @@ -837,6 +837,7 @@ export default { workerCreate: 'New worker', department: 'Department', pda: 'PDA', + calendar: 'Calendar', }, list: { name: 'Name', @@ -955,7 +956,7 @@ export default { roadmap: 'Roadmap', summary: 'Summary', basicData: 'Basic Data', - stops: 'Stops' + stops: 'Stops', }, }, roadmap: { @@ -963,7 +964,7 @@ export default { roadmap: 'Roadmap', summary: 'Summary', basicData: 'Basic Data', - stops: 'Stops' + stops: 'Stops', }, }, route: { diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js index 37ba8da85..fee08322c 100644 --- a/src/i18n/es/index.js +++ b/src/i18n/es/index.js @@ -837,6 +837,7 @@ export default { workerCreate: 'Nuevo trabajador', department: 'Departamentos', pda: 'PDA', + calendar: 'Calendario', }, list: { name: 'Nombre', @@ -955,7 +956,7 @@ export default { roadmap: 'Troncales', summary: 'Resumen', basicData: 'Datos básicos', - stops: 'Paradas' + stops: 'Paradas', }, }, roadmap: { @@ -963,7 +964,7 @@ export default { roadmap: 'Troncales', summary: 'Resumen', basicData: 'Datos básicos', - stops: 'Paradas' + stops: 'Paradas', }, }, route: { From fb795f65ee1274f5ab69b65f4f6e42e695550de2 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 3 Apr 2024 09:49:15 +0200 Subject: [PATCH 10/68] refactor: refs #6425 test changes --- src/pages/Travel/TravelFilter.vue | 10 ++-------- src/pages/Travel/locale/en.yml | 2 ++ src/pages/Travel/locale/es.yml | 2 ++ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/pages/Travel/TravelFilter.vue b/src/pages/Travel/TravelFilter.vue index 48a31a4d8..44b9374e6 100644 --- a/src/pages/Travel/TravelFilter.vue +++ b/src/pages/Travel/TravelFilter.vue @@ -72,7 +72,7 @@ const decrement = (paramsObj, key) => { { { en: params: search: Id/Reference - agencyModeFk: Agency - - scopeDays: Days onward landedFrom: Landed from landedTo: Landed to continent: Continent out @@ -230,9 +227,6 @@ en: es: params: search: Id/Referencia - agencyModeFk: Agencia - - scopeDays: Días adelante landedFrom: Llegada desde landedTo: Llegada hasta continent: Cont. Salida diff --git a/src/pages/Travel/locale/en.yml b/src/pages/Travel/locale/en.yml index 39242aa4f..542818c16 100644 --- a/src/pages/Travel/locale/en.yml +++ b/src/pages/Travel/locale/en.yml @@ -2,3 +2,5 @@ travelFilter: filter: warehouseOutFk: 'Warehouse Out' warehouseInFk: 'Warehouse In' + agencyModeFk: Agency + scopeDays: 'Days onward' diff --git a/src/pages/Travel/locale/es.yml b/src/pages/Travel/locale/es.yml index 70c8d9324..f99e1c122 100644 --- a/src/pages/Travel/locale/es.yml +++ b/src/pages/Travel/locale/es.yml @@ -2,3 +2,5 @@ travelFilter: filter: warehouseInFk: 'Alm. entrada' warehouseOutFk: 'Alm. salida' + agencyModeFk: Agencia + scopeDays: Días adelante From 9a160d924804c3326cbd60c64b210998e7651fe1 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 3 Apr 2024 12:57:23 +0200 Subject: [PATCH 11/68] refactor: refs #6425 merged changes --- src/i18n/locale/en.yml | 24 ++++++++++++++++++++++++ src/i18n/locale/es.yml | 23 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 909373dba..24bd67bf7 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -82,6 +82,12 @@ globals: selectFile: Select a file copyClipboard: Copy on clipboard salesPerson: SalesPerson + code: 'Code' + pageTitles: + summary: 'Summary' + basicData: 'Basic data' + log: 'Logs' + parkingList: 'Parkings list' errors: statusUnauthorized: Access denied statusInternalServerError: An internal server error has ocurred @@ -459,6 +465,7 @@ ticket: request: Request weight: Weight goTo: Go to + summaryAmount: 'Summary' claim: pageTitles: claims: Claims @@ -627,6 +634,16 @@ shelving: parking: Parking priority: Priority recyclable: Recyclable +parking: + pickingOrder: 'Picking order' + sector: 'Sector' + row: 'Row' + column: 'Column' + pageTitles: + parking: 'Parking' + searchBar: + info: 'You can search by parking code' + label: 'Search parking...' invoiceIn: pageTitles: invoiceIns: Invoices In @@ -765,6 +782,7 @@ worker: workerCreate: New worker department: Department pda: PDA + log: 'Log' list: name: Name email: Email @@ -919,6 +937,7 @@ supplier: addresses: Addresses consumption: Consumption agencyTerm: Agency agreement + dms: File management list: payMethod: Pay method payDeadline: Pay deadline @@ -1087,6 +1106,11 @@ components: copyToken: Token copied to clipboard settings: Settings logOut: Log Out + localWarehouse: Local warehouse + localBank: Local bank + localCompany: Local company + userWarehouse: User warehouse + userCompany: User company smartCard: downloadFile: Download file clone: Clone diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 10b7f0ed7..349fd8b97 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -82,6 +82,12 @@ globals: selectFile: Seleccione un fichero copyClipboard: Copiar en portapapeles salesPerson: Comercial + code: 'Código', + pageTitles: + summary: 'Resumen' + basicData: 'Datos básicos' + log: 'Historial' + parkingList: 'Listado de parkings' errors: statusUnauthorized: Acceso denegado statusInternalServerError: Ha ocurrido un error interno del servidor @@ -458,6 +464,7 @@ ticket: request: Petición de compra weight: Peso goTo: Ir a + summaryAmount: 'Resumen' claim: pageTitles: claims: Reclamaciones @@ -676,6 +683,15 @@ shelving: parking: Parking priority: Prioridad recyclable: Reciclable +parking: + pickingOrder: 'Orden de recogida' + row: 'Fila' + column: 'Columna' + pageTitles: + parking: 'Parking' + searchBar: + info: 'Puedes buscar por código de parking' + label: 'Buscar parking...' invoiceIn: pageTitles: invoiceIns: Fact. recibidas @@ -762,6 +778,7 @@ worker: workerCreate: Nuevo trabajador department: Departamentos pda: PDA + log: 'Historial' list: name: Nombre email: Email @@ -916,6 +933,7 @@ supplier: addresses: Direcciones consumption: Consumo agencyTerm: Acuerdo agencia + dms: 'Gestión documental' list: payMethod: Método de pago payDeadline: Plazo de pago @@ -1084,6 +1102,11 @@ components: copyToken: Token copiado al portapapeles settings: Configuración logOut: Cerrar sesión + localWarehouse: 'Almacén local', + localBank: 'Banco local' + localCompany: 'Empresa local' + userWarehouse: 'Almacén del usuario' + userCompany: 'Empresa del usuario' smartCard: downloadFile: Descargar archivo clone: Clonar From bfee37b631c0c6d51d9ac42d91449e7ed809bcf9 Mon Sep 17 00:00:00 2001 From: wbuezas Date: Wed, 3 Apr 2024 08:08:54 -0300 Subject: [PATCH 12/68] WIP --- quasar.extensions.json | 11 +- src/components/ui/QCalendarMonthWrapper.vue | 23 ++ src/css/app.scss | 12 ++ src/i18n/en/index.js | 23 ++ src/i18n/es/index.js | 23 ++ src/pages/Worker/Card/WorkerCalendar.vue | 64 ++++-- .../Worker/Card/WorkerCalendarFilter.vue | 102 ++++++++- src/pages/Worker/Card/WorkerCalendarItem.vue | 202 +++++++++++++++--- src/stores/useWeekdayStore.js | 95 ++++++++ 9 files changed, 496 insertions(+), 59 deletions(-) create mode 100644 src/components/ui/QCalendarMonthWrapper.vue create mode 100644 src/stores/useWeekdayStore.js diff --git a/quasar.extensions.json b/quasar.extensions.json index e5c5cbfaa..867769090 100644 --- a/quasar.extensions.json +++ b/quasar.extensions.json @@ -1,7 +1,6 @@ { - "@quasar/testing-unit-vitest": { - "options": [ - "scripts" - ] - } -} \ No newline at end of file + "@quasar/testing-unit-vitest": { + "options": ["scripts"] + }, + "@quasar/qcalendar": {} +} diff --git a/src/components/ui/QCalendarMonthWrapper.vue b/src/components/ui/QCalendarMonthWrapper.vue new file mode 100644 index 000000000..49acd0e7d --- /dev/null +++ b/src/components/ui/QCalendarMonthWrapper.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/css/app.scss b/src/css/app.scss index 8e2853ab2..0e9ae66e2 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -1,5 +1,6 @@ // app global css in SCSS form @import './icons.scss'; +@import '@quasar/quasar-ui-qcalendar/src/QCalendarMonth.sass'; body.body--light { --fount-color: black; @@ -120,3 +121,14 @@ input::-webkit-inner-spin-button { -webkit-appearance: none; -moz-appearance: none; } + +// Clases para modificar el color de fecha seleccionada en componente QCalendarMonth +.q-dark div .q-calendar-mini .q-calendar-month__day.q-selected .q-calendar__button { + background-color: $primary !important; + color: white !important; +} + +.q-calendar-mini .q-calendar-month__day.q-selected .q-calendar__button { + background-color: $primary !important; + color: white !important; +} diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js index 34ce16aa7..5ca92df0a 100644 --- a/src/i18n/en/index.js +++ b/src/i18n/en/index.js @@ -1225,4 +1225,27 @@ export default { }, iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789', }, + weekdays: { + sun: 'Sunday', + mon: 'Monday', + tue: 'Tuesday', + wed: 'Wednesday', + thu: 'Thursday', + fri: 'Friday', + sat: 'Saturday', + }, + months: { + jan: 'January', + feb: 'February', + mar: 'March', + apr: 'April', + may: 'May', + jun: 'June', + jul: 'July', + aug: 'August', + sep: 'September', + oct: 'October', + nov: 'November', + dec: 'December', + }, }; diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js index fee08322c..0b63f3de5 100644 --- a/src/i18n/es/index.js +++ b/src/i18n/es/index.js @@ -1225,4 +1225,27 @@ export default { }, iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789', }, + weekdays: { + sun: 'Domingo', + mon: 'Lunes', + tue: 'Martes', + wed: 'Miércoles', + thu: 'Jueves', + fri: 'Viernes', + sat: 'Sábado', + }, + months: { + jan: 'Enero', + feb: 'Febrero', + mar: 'Marzo', + apr: 'Abril', + may: 'Mayo', + jun: 'Junio', + jul: 'Julio', + aug: 'Agosto', + sep: 'Septiembre', + oct: 'Octubre', + nov: 'Noviembre', + dec: 'Diciembre', + }, }; diff --git a/src/pages/Worker/Card/WorkerCalendar.vue b/src/pages/Worker/Card/WorkerCalendar.vue index 73111cafa..859dedb57 100644 --- a/src/pages/Worker/Card/WorkerCalendar.vue +++ b/src/pages/Worker/Card/WorkerCalendar.vue @@ -1,26 +1,35 @@ + es: Search worker: Buscar trabajador You can search by worker id or name: Puedes buscar por id o nombre del trabajador + To start adding absences, click an absence type from the right menu and then on the day you want to add an absence: Para empezar a añadir ausencias, haz clic en un tipo de ausencia desde el menu de la derecha y después en el día que quieres añadir la ausencia diff --git a/src/pages/Worker/Card/WorkerCalendarFilter.vue b/src/pages/Worker/Card/WorkerCalendarFilter.vue index d73305085..f8c1b2167 100644 --- a/src/pages/Worker/Card/WorkerCalendarFilter.vue +++ b/src/pages/Worker/Card/WorkerCalendarFilter.vue @@ -4,7 +4,7 @@ import FetchData from 'components/FetchData.vue'; import { useI18n } from 'vue-i18n'; import VnSelectFilter from 'components/common/VnSelectFilter.vue'; import { useRoute } from 'vue-router'; -import { computed, ref, watch } from 'vue'; +import { computed, ref, watch, reactive } from 'vue'; import { toDateFormat } from '../../../filters/date'; import axios from 'axios'; @@ -26,7 +26,12 @@ const props = defineProps({ }, }); -const emit = defineEmits(['update:businessFk', 'update:year', 'update:absenceType']); +const emit = defineEmits([ + 'update:businessFk', + 'update:year', + 'update:absenceType', + 'updateEvents', +]); const selectedBusinessFk = computed({ get: () => props.businessFk, @@ -35,13 +40,18 @@ const selectedBusinessFk = computed({ emit('update:businessFk', value); }, }); + const selectedYear = computed({ get: () => props.year, set: (value) => emit('update:year', value), }); + const selectedAbsenceType = computed({ get: () => props.absenceType, - set: (value) => emit('update:absenceType', value), + set: (value) => { + if (value === props.absenceType) value = null; + emit('update:absenceType', value); + }, }); const generateYears = () => { @@ -57,11 +67,19 @@ const yearList = ref(generateYears()); const contractHolidays = ref(null); const yearHolidays = ref(null); +const events = reactive({}); +const calendar = ref(null); const getHolidays = async (params) => { - return axios - .get(`Workers/${route.params.id}/holidays`, { params }) - .then((res) => res.data); + try { + const { data } = await axios.get(`Workers/${route.params.id}/holidays`, { + params, + }); + return data; + } catch (error) { + console.error('Error fetching holidays:', error); + return null; + } }; const updateContractHolidays = async () => { @@ -75,14 +93,80 @@ const updateYearHolidays = async () => { yearHolidays.value = await getHolidays({ year: selectedYear.value }); }; -watch(selectedYear, () => { +const getAbsences = async () => { + try { + const params = { + workerFk: route.params.id, + businessFk: props.businessFk, + year: props.year, + }; + const { data } = await axios.get('Calendars/absences', { params }); + if (data) onAbsencesFetched(data); + return data; + } catch (error) { + console.error('Error fetching absences:', error); + return null; + } +}; + +const refreshData = () => { updateYearHolidays(); updateContractHolidays(); + getAbsences(); +}; + +const onAbsencesFetched = (data) => { + calendar.value = data.calendar; + + let addEvent = (day, newEvent) => { + const timestamp = new Date(day).getTime(); + let event = events[timestamp]; + + if (event) { + const oldName = event.name; + Object.assign(event, newEvent); + event.name = `${oldName}, ${event.name}`; + } else events[timestamp] = newEvent; + }; + + if (data.holidays) { + data.holidays.forEach((holiday) => { + const holidayDetail = holiday.detail && holiday.detail.name; + const holidayType = holiday.type && holiday.type.name; + const holidayName = holidayDetail || holidayType; + + addEvent(holiday.dated, { + name: holidayName, + className: 'festive', + }); + }); + } + if (data.absences) { + data.absences.forEach((absence) => { + let type = absence.absenceType; + addEvent(absence.dated, { + name: type.name, + color: type.rgb, + type: type.code, + absenceId: absence.id, + }); + }); + } + + emit('updateEvents', events); + console.log('events:: ', events); +}; + +watch(selectedYear, () => { + refreshData(); }); watch(selectedBusinessFk, () => { - updateYearHolidays(); - updateContractHolidays(); + refreshData(); +}); + +defineExpose({ + refreshData, }); diff --git a/src/pages/Worker/Card/WorkerCalendarItem.vue b/src/pages/Worker/Card/WorkerCalendarItem.vue index b06d8f028..79c47063c 100644 --- a/src/pages/Worker/Card/WorkerCalendarItem.vue +++ b/src/pages/Worker/Card/WorkerCalendarItem.vue @@ -1,11 +1,17 @@ + + + + + +es: + Choose an absence type from the right menu: Elige un tipo de ausencia desde el menú de la derecha + diff --git a/src/stores/useWeekdayStore.js b/src/stores/useWeekdayStore.js new file mode 100644 index 000000000..ad898c9a7 --- /dev/null +++ b/src/stores/useWeekdayStore.js @@ -0,0 +1,95 @@ +import { reactive, ref, computed } from 'vue'; +import { useI18n } from 'vue-i18n'; +import { defineStore } from 'pinia'; + +export const useWeekdayStore = defineStore('weekdayStore', () => { + const { t } = useI18n(); + + const weekdays = [ + { code: 'sun', name: 'Sunday' }, + { code: 'mon', name: 'Monday' }, + { code: 'tue', name: 'Tuesday' }, + { code: 'wed', name: 'Wednesday' }, + { code: 'thu', name: 'Thursday' }, + { code: 'fri', name: 'Friday' }, + { code: 'sat', name: 'Saturday' }, + ]; + + const monthCodes = [ + 'jan', + 'feb', + 'mar', + 'apr', + 'may', + 'jun', + 'jul', + 'aug', + 'sep', + 'oct', + 'nov', + 'dec', + ]; + + const localeOrder = { + es: ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'], + en: ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], + }; + + const weekdaysMap = reactive({}); + const localeWeekdays = ref([]); + + const initStore = () => { + getWeekdaysMap(); + }; + + const getWeekdaysMap = () => { + if (Object.keys(weekdaysMap).length > 0) return weekdaysMap; + + weekdays.forEach((day, i) => { + const obj = { + ...day, + index: i, + char: day.name.substr(0, 1), + abr: day.name.substr(0, 3), + }; + weekdaysMap[day.code] = obj; + }); + }; + + const getLocales = computed(() => { + // El día de mañana esto permitirá ordenar los weekdays en base a el locale si se lo desea reemplazando localeOrder.es por localeOrder[locale] + const locales = []; + for (let code of localeOrder.es) { + const obj = { + ...weekdaysMap[code], + locale: t(`weekdays.${weekdaysMap[code].code}`), + localeChar: t(`weekdays.${weekdaysMap[code].code}`).substr(0, 1), + localeAbr: t(`weekdays.${weekdaysMap[code].code}`).substr(0, 3), + }; + locales.push(obj); + } + return locales; + }); + + const getLocaleMonths = computed(() => { + const locales = []; + for (let code of monthCodes) { + const obj = { + code: code, + locale: t(`months.${code}`), + }; + locales.push(obj); + } + return locales; + }); + + return { + initStore, + weekdaysMap, + localeWeekdays, + getLocales, + weekdays, + monthCodes, + getLocaleMonths, + }; +}); From 3e423867e3f85e2241e266f8f850b61e03456706 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 3 Apr 2024 13:12:00 +0200 Subject: [PATCH 13/68] fix: refs #6425 fix yml format --- src/i18n/locale/en.yml | 32 +- src/i18n/locale/es.yml | 1880 +++++++++++++++-------------- src/pages/Travel/TravelFilter.vue | 1 - src/pages/Travel/locale/en.yml | 6 +- src/pages/Travel/locale/es.yml | 4 +- 5 files changed, 963 insertions(+), 960 deletions(-) diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 24bd67bf7..0e7eedec1 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -31,8 +31,8 @@ globals: confirm: Confirm assign: Assign back: Back - yes: 'Yes' - no: 'No' + 'yes': 'Yes' + 'no': 'No' noChanges: No changes to save changesToSave: You have changes pending to save confirmRemove: You are about to delete this row. Are you sure? @@ -82,12 +82,12 @@ globals: selectFile: Select a file copyClipboard: Copy on clipboard salesPerson: SalesPerson - code: 'Code' + code: Code pageTitles: - summary: 'Summary' - basicData: 'Basic data' - log: 'Logs' - parkingList: 'Parkings list' + summary: Summary + basicData: Basic data + log: Logs + parkingList: Parkings list errors: statusUnauthorized: Access denied statusInternalServerError: An internal server error has ocurred @@ -465,7 +465,7 @@ ticket: request: Request weight: Weight goTo: Go to - summaryAmount: 'Summary' + summaryAmount: Summary claim: pageTitles: claims: Claims @@ -635,15 +635,15 @@ shelving: priority: Priority recyclable: Recyclable parking: - pickingOrder: 'Picking order' - sector: 'Sector' - row: 'Row' - column: 'Column' + pickingOrder: Picking order + sector: Sector + row: Row + column: Column pageTitles: - parking: 'Parking' + parking: Parking searchBar: - info: 'You can search by parking code' - label: 'Search parking...' + info: You can search by parking code + label: Search parking... invoiceIn: pageTitles: invoiceIns: Invoices In @@ -782,7 +782,7 @@ worker: workerCreate: New worker department: Department pda: PDA - log: 'Log' + log: Log list: name: Name email: Email diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 349fd8b97..0e7eedec1 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -1,1124 +1,1128 @@ globals: lang: - es: Español - en: Inglés - language: Idioma - entity: Entidad - user: Usuario - details: Detalles - collapseMenu: Contraer menú lateral - backToDashboard: Volver al tablón - notifications: Notificaciones - userPanel: Panel de usuario - modules: Módulos - pinnedModules: Módulos fijados - darkMode: Modo oscuro - logOut: Cerrar sesión - date: Fecha - dataSaved: Datos guardados - dataDeleted: Datos eliminados - search: Buscar - changes: Cambios - dataCreated: Datos creados - add: Añadir - create: Crear - edit: Modificar - save: Guardar - remove: Eliminar - reset: Restaurar - close: Cerrar - cancel: Cancelar - confirm: Confirmar - assign: Asignar - back: Volver - yes: Si - no: No - noChanges: Sin cambios que guardar - changesToSave: Tienes cambios pendientes de guardar - confirmRemove: Vas a eliminar este registro. ¿Continuar? - rowAdded: Fila añadida - rowRemoved: Fila eliminada - pleaseWait: 'Por favor, espera...' - noPinnedModules: No has fijado ningún módulo + es: Spanish + en: English + language: Language + entity: Entity + user: User + details: Details + collapseMenu: Collapse left menu + backToDashboard: Return to dashboard + notifications: Notifications + userPanel: User panel + modules: Modules + pinnedModules: Pinned modules + darkMode: Dark mode + logOut: Log out + date: Date + dataSaved: Data saved + dataDeleted: Data deleted + search: Search + changes: Changes + dataCreated: Data created + add: Add + create: Create + edit: Edit + save: Save + remove: Remove + reset: Reset + close: Close + cancel: Cancel + confirm: Confirm + assign: Assign + back: Back + 'yes': 'Yes' + 'no': 'No' + noChanges: No changes to save + changesToSave: You have changes pending to save + confirmRemove: You are about to delete this row. Are you sure? + rowAdded: Row added + rowRemoved: Row removed + pleaseWait: Please wait... + noPinnedModules: You don't have any pinned modules summary: - basicData: Datos básicos - today: Hoy - yesterday: Ayer - dateFormat: es-ES - noSelectedRows: No tienes ninguna línea seleccionada - microsip: Abrir en MicroSIP - downloadCSVSuccess: Descarga de CSV exitosa - reference: Referencia - agency: Agencia - wareHouseOut: Alm. salida - wareHouseIn: Alm. entrada - landed: F. entrega - shipped: F. envío - totalEntries: Ent. totales - amount: Importe - packages: Bultos - download: Descargar - selectRows: 'Seleccionar las { numberRows } filas(s)' - allRows: 'Todo { numberRows } filas(s)' - markAll: Marcar todo - requiredField: Campo obligatorio + basicData: Basic data + today: Today + yesterday: Yesterday + dateFormat: en-GB + microsip: Open in MicroSIP + noSelectedRows: You don't have any line selected + downloadCSVSuccess: CSV downloaded successfully + reference: Reference + agency: Agency + wareHouseOut: Warehouse Out + wareHouseIn: Warehouse In + landed: Landed + shipped: Shipped + totalEntries: Total entries + amount: Amount + packages: Packages + download: Download + selectRows: 'Select all { numberRows } row(s)' + allRows: 'All { numberRows } row(s)' + markAll: Mark all + requiredField: Required field class: clase - type: Tipo - reason: motivo - noResults: Sin resultados - system: Sistema - warehouse: Almacén - company: Empresa - fieldRequired: Campo requerido - allowedFilesText: 'Tipos de archivo permitidos: { allowedContentTypes }' - smsSent: SMS enviado - confirmDeletion: Confirmar eliminación - confirmDeletionMessage: ¿Seguro que quieres eliminar? - description: Descripción + type: Type + reason: reason + noResults: No results + system: System + warehouse: Warehouse + company: Company + fieldRequired: Field required + allowedFilesText: 'Allowed file types: { allowedContentTypes }' + smsSent: SMS sent + confirmDeletion: Confirm deletion + confirmDeletionMessage: Are you sure you want to delete this? + description: Description id: Id - order: Orden + order: Order original: Original - file: Fichero - selectFile: Seleccione un fichero - copyClipboard: Copiar en portapapeles - salesPerson: Comercial - code: 'Código', + file: File + selectFile: Select a file + copyClipboard: Copy on clipboard + salesPerson: SalesPerson + code: Code pageTitles: - summary: 'Resumen' - basicData: 'Datos básicos' - log: 'Historial' - parkingList: 'Listado de parkings' + summary: Summary + basicData: Basic data + log: Logs + parkingList: Parkings list errors: - statusUnauthorized: Acceso denegado - statusInternalServerError: Ha ocurrido un error interno del servidor - statusBadGateway: Parece ser que el servidor ha caído - statusGatewayTimeout: No se ha podido contactar con el servidor - userConfig: Error al obtener configuración de usuario - writeRequest: No se pudo completar la operación solicitada + statusUnauthorized: Access denied + statusInternalServerError: An internal server error has ocurred + statusBadGateway: It seems that the server has fall down + statusGatewayTimeout: Could not contact the server + userConfig: Error fetching user config + writeRequest: The requested operation could not be completed login: - title: Inicio de sesión - username: Nombre de usuario - password: Contraseña - submit: Iniciar sesión - keepLogin: Mantener sesión iniciada - loginSuccess: Inicio de sesión correcto - loginError: Nombre de usuario o contraseña incorrectos - fieldRequired: Este campo es obligatorio - twoFactorRequired: Verificación de doble factor requerida + title: Login + username: Username + password: Password + submit: Log in + keepLogin: Keep me logged in + loginSuccess: You have successfully logged in + loginError: Invalid username or password + fieldRequired: This field is required + twoFactorRequired: Two-factor verification required pageTitles: - logIn: Inicio de sesión + logIn: Login twoFactor: - code: Código - validate: Validar - insert: Introduce el código de verificación + code: Code + validate: Validate + insert: Enter the verification code explanation: >- - Por favor, introduce el código de verificación que te hemos enviado a tu - email en los próximos 5 minutos + Please, enter the verification code that we have sent to your email in the + next 5 minutes pageTitles: - twoFactor: Doble factor + twoFactor: Two-Factor verifyEmail: pageTitles: - verifyEmail: Verificación de correo + verifyEmail: Email verification dashboard: pageTitles: - dashboard: Tablón + dashboard: Dashboard customer: pageTitles: - customers: Clientes - create: Crear - list: Listado - webPayments: Pagos Web - extendedList: Listado extendido - notifications: Notificaciones - defaulter: Morosos - createCustomer: Crear cliente - summary: Resumen - basicData: Datos básicos - fiscalData: Datos fiscales - billingData: Forma de pago - consignees: Consignatarios - notes: Notas - credits: Créditos + customers: Customers + create: Create + list: List + webPayments: Web Payments + extendedList: Extended list + notifications: Notifications + defaulter: Defaulter + createCustomer: Create customer + summary: Summary + basicData: Basic data + fiscalData: Fiscal data + billingData: Billing data + consignees: Consignees + notes: Notes + credits: Credits greuges: Greuges balance: Balance - recoveries: Recobros - webAccess: Acceso web - log: Historial + recoveries: Recoveries + webAccess: Web access + log: Log sms: Sms - creditManagement: Gestión de crédito - creditContracts: Contratos de crédito - creditOpinion: Opinión de crédito - others: Otros + creditManagement: Credit management + creditContracts: Credit contracts + creditOpinion: Credit opinion + others: Others list: - phone: Teléfono + phone: Phone email: Email - customerOrders: Mostrar órdenes del cliente - moreOptions: Más opciones + customerOrders: Display customer orders + moreOptions: More options card: - customerId: ID cliente - salesPerson: Comercial - credit: Crédito - securedCredit: Crédito asegurado - payMethod: Método de pago - debt: Riesgo - isDisabled: El cliente está desactivado - isFrozen: El cliente está congelado - hasDebt: El cliente tiene riesgo - notChecked: El cliente no está comprobado - noWebAccess: El acceso web está desactivado - businessTypeFk: Tipo de negocio + customerList: Customer list + customerId: Claim ID + salesPerson: Sales person + credit: Credit + securedCredit: Secured credit + payMethod: Pay method + debt: Debt + isDisabled: Customer is disabled + isFrozen: Customer is frozen + hasDebt: Customer has debt + notChecked: Customer not checked + noWebAccess: Web access is disabled + businessTypeFk: Business type summary: - basicData: Datos básicos - fiscalAddress: Dirección fiscal - fiscalData: Datos fiscales - billingData: Datos de facturación - consignee: Consignatario pred. - businessData: Datos comerciales - financialData: Datos financieros - customerId: ID cliente - name: Nombre - contact: Contacto - phone: Teléfono - mobile: Móvil + basicData: Basic data + fiscalAddress: Fiscal address + fiscalData: Fiscal data + billingData: Billing data + consignee: Default consignee + businessData: Business data + financialData: Financial data + customerId: Customer ID + name: Name + contact: Contact + phone: Phone + mobile: Mobile email: Email - salesPerson: Comercial - contactChannel: Canal de contacto - socialName: Razón social - fiscalId: NIF/CIF - postcode: Código postal - province: Provincia - country: País - street: Calle - isEqualizated: Recargo de equivalencia - isActive: Activo - invoiceByAddress: Facturar por consignatario - verifiedData: Datos verificados - hasToInvoice: Facturar - notifyByEmail: Notificar por email + salesPerson: Sales person + contactChannel: Contact channel + socialName: Social name + fiscalId: Fiscal ID + postcode: Postcode + province: Province + country: Country + street: Address + isEqualizated: Is equalizated + isActive: Is active + invoiceByAddress: Invoice by address + verifiedData: Verified data + hasToInvoice: Has to invoice + notifyByEmail: Notify by email vies: VIES - payMethod: Método de pago - bankAccount: Cuenta bancaria - dueDay: Día de pago - hasLcr: Recibido LCR - hasCoreVnl: Recibido core VNL - hasB2BVnl: Recibido B2B VNL - addressName: Nombre de la dirección - addressCity: Ciudad - addressStreet: Calle - username: Usuario - webAccess: Acceso web - totalGreuge: Greuge total - mana: Maná - priceIncreasingRate: Ratio de incremento de precio - averageInvoiced: Facturación media - claimRate: Ratio de reclamaciones - risk: Riesgo - riskInfo: Facturas menos recibos mas pedidos sin facturar - credit: Crédito - creditInfo: Riesgo máximo asumido por la empresa - securedCredit: Crédito asegurado - securedCreditInfo: Riesgo máximo asumido por Solunion + payMethod: Pay method + bankAccount: Bank account + dueDay: Due day + hasLcr: Has LCR + hasCoreVnl: Has core VNL + hasB2BVnl: Has B2B VNL + addressName: Address name + addressCity: City + addressStreet: Street + username: Username + webAccess: Web access + totalGreuge: Total greuge + mana: Mana + priceIncreasingRate: Price increasing rate + averageInvoiced: Average invoiced + claimRate: Claming rate + risk: Risk + riskInfo: Invoices minus payments plus orders not yet invoiced + credit: Credit + creditInfo: Company's maximum risk + securedCredit: Secured credit + securedCreditInfo: Solunion's maximum risk balance: Balance - balanceInfo: Facturas menos recibos - balanceDue: Saldo vencido - balanceDueInfo: Facturas fuera de plazo menos recibos - recoverySince: Recobro desde - businessType: Tipo de negocio - city: Población - rating: Clasificación - recommendCredit: Crédito recomendado + balanceInfo: Invoices minus payments + balanceDue: Balance due + balanceDueInfo: Deviated invoices minus payments + recoverySince: Recovery since + businessType: Business Type + city: City + rating: Rating + recommendCredit: Recommended credit basicData: - socialName: Nombre fiscal - businessType: Tipo de negocio - contact: Contacto + socialName: Fiscal name + businessType: Business type + contact: Contact email: Email - phone: Teléfono - mobile: Móvil - salesPerson: Comercial - contactChannel: Canal de contacto + phone: Phone + mobile: Mobile + salesPerson: Sales person + contactChannel: Contact channel extendedList: tableVisibleColumns: - id: Identificador - name: Nombre - fi: NIF / CIF - salesPersonFk: Comercial - credit: Crédito - creditInsurance: Crédito asegurado - phone: Teléfono - mobile: Móvil - street: Dirección fiscal - countryFk: País - provinceFk: Provincia - city: Población - postcode: Código postal + id: Identifier + name: Name + fi: Tax number + salesPersonFk: Salesperson + credit: Credit + creditInsurance: Credit insurance + phone: Phone + mobile: Mobile + street: Street + countryFk: Country + provinceFk: Province + city: City + postcode: Postcode email: Email - created: Fecha creación - businessTypeFk: Tipo de negocio - payMethodFk: Forma de pago - sageTaxTypeFk: Tipo de impuesto Sage - sageTransactionTypeFk: Tipo tr. sage - isActive: Activo + created: Created + businessTypeFk: Business type + payMethodFk: Billing data + sageTaxTypeFk: Sage tax type + sageTransactionTypeFk: Sage tr. type + isActive: Active isVies: Vies - isTaxDataChecked: Datos comprobados - isEqualizated: Recargo de equivalencias - isFreezed: Congelado - hasToInvoice: Factura - hasToInvoiceByAddress: Factura por consigna - isToBeMailed: Env. emails - hasLcr: Recibido LCR - hasCoreVnl: Recibido core VNL - hasSepaVnl: Recibido B2B VNL + isTaxDataChecked: Verified data + isEqualizated: Is equalizated + isFreezed: Freezed + hasToInvoice: Invoice + hasToInvoiceByAddress: Invoice by address + isToBeMailed: Mailing + hasLcr: Received LCR + hasCoreVnl: VNL core received + hasSepaVnl: VNL B2B received entry: pageTitles: - entries: Entradas - list: Listado - summary: Resumen - basicData: Datos básicos - buys: Compras - notes: Notas - dms: Gestión documental - log: Historial - create: Crear - latestBuys: Últimas compras + entries: Entries + list: List + summary: Summary + basicData: Basic data + buys: Buys + notes: Notes + dms: File management + log: Log + create: Create + latestBuys: Latest buys list: - newEntry: Nueva entrada - landed: F. entrega - invoiceNumber: Núm. factura - supplier: Proveedor - booked: Asentado - confirmed: Confirmado - ordered: Pedida + newEntry: New entry + landed: Landed + invoiceNumber: Invoice number + supplier: Supplier + booked: Booked + confirmed: Confirmed + ordered: Ordered summary: - commission: Comisión - currency: Moneda - company: Empresa - reference: Referencia - invoiceNumber: Núm. factura - ordered: Pedida - confirmed: Confirmada - booked: Contabilizada - raid: Redada - excludedFromAvailable: Inventario - travelReference: Referencia - travelAgency: Agencia - travelShipped: F. envio - travelWarehouseOut: Alm. salida - travelDelivered: Enviada - travelLanded: F. entrega - travelWarehouseIn: Alm. entrada - travelReceived: Recibida - buys: Compras - quantity: Cantidad - stickers: Etiquetas - package: Embalaje - weight: Peso + commission: Commission + currency: Currency + company: Company + reference: Reference + invoiceNumber: Invoice number + ordered: Ordered + confirmed: Confirmed + booked: Booked + raid: Raid + excludedFromAvailable: Inventory + travelReference: Reference + travelAgency: Agency + travelShipped: Shipped + travelWarehouseOut: Warehouse Out + travelDelivered: Delivered + travelLanded: Landed + travelWarehouseIn: Warehouse In + travelReceived: Received + buys: Buys + quantity: Quantity + stickers: Stickers + package: Package + weight: Weight packing: Packing grouping: Grouping - buyingValue: Coste - import: Importe + buyingValue: Buying value + import: Import pvp: PVP - item: Artículo + item: Item basicData: - supplier: Proveedor - travel: Envío - reference: Referencia - invoiceNumber: Núm. factura - company: Empresa - currency: Moneda - observation: Observación - commission: Comisión - ordered: Pedida - confirmed: Confirmado - booked: Asentado - raid: Redada - excludedFromAvailable: Inventario - agency: Agencia - warehouseOut: Alm. salida - warehouseIn: Alm. entrada - shipped: F. envío - landed: F. entrega + supplier: Supplier + travel: Travel + reference: Reference + invoiceNumber: Invoice number + company: Company + currency: Currency + commission: Commission + observation: Observation + ordered: Ordered + confirmed: Confirmed + booked: Booked + raid: Raid + excludedFromAvailable: Inventory + agency: Agency + warehouseOut: Warehouse Out + warehouseIn: Warehouse In + shipped: Shipped + landed: Landed id: ID buys: - groupingPrice: Precio grouping - packingPrice: Precio packing - reference: Referencia - observations: Observaciónes - item: Artículo - size: Medida + groupingPrice: Grouping price + packingPrice: Packing price + reference: Reference + observations: Observations + item: Item + size: Size packing: Packing grouping: Grouping - buyingValue: Coste - packagingFk: Embalaje - file: Fichero - name: Nombre - producer: Productor - type: Tipo + buyingValue: Buying value + packagingFk: Box + file: File + name: Name + producer: Producer + type: Type color: Color id: ID notes: - observationType: Tipo de observación + observationType: Observation type descriptor: - agency: Agencia - landed: F. entrega - warehouseOut: Alm. salida + agency: Agency + landed: Landed + warehouseOut: Warehouse Out latestBuys: - picture: Foto - itemFk: ID Artículo + picture: Picture + itemFk: Item ID packing: Packing grouping: Grouping - quantity: Cantidad - size: Medida - tags: Etiquetas - type: Tipo + quantity: Quantity + size: Size + tags: Tags + type: Type intrastat: Intrastat - origin: Origen - weightByPiece: Peso (gramos)/tallo - isActive: Activo - family: Familia - entryFk: Entrada - buyingValue: Coste - freightValue: Porte - comissionValue: Comisión - packageValue: Embalaje - isIgnored: Ignorado + origin: Origin + weightByPiece: Weight/Piece + isActive: Active + family: Family + entryFk: Entry + buyingValue: Buying value + freightValue: Freight value + comissionValue: Commission value + packageValue: Package value + isIgnored: Is ignored price2: Grouping price3: Packing minPrice: Min ektFk: Ekt - weight: Peso - packagingFk: Embalaje - packingOut: Embalaje envíos - landing: Llegada + weight: Weight + packagingFk: Package + packingOut: Package out + landing: Landing ticket: pageTitles: tickets: Tickets - list: Listado - createTicket: Crear ticket - summary: Resumen - basicData: Datos básicos - boxing: Encajado + list: List + createTicket: Create ticket + summary: Summary + basicData: Basic Data + boxing: Boxing sms: Sms - notes: Notas + notes: Notes list: - nickname: Alias - state: Estado - shipped: Enviado - landed: Entregado - salesPerson: Comercial + nickname: Nickname + state: State + shipped: Shipped + landed: Landed + salesPerson: Sales person total: Total card: - ticketId: ID ticket - state: Estado - customerId: ID cliente - salesPerson: Comercial - agency: Agencia - shipped: Enviado - warehouse: Almacén - customerCard: Ficha del cliente + ticketId: Ticket ID + state: State + customerId: Customer ID + salesPerson: Sales person + agency: Agency + shipped: Shipped + warehouse: Warehouse + customerCard: Customer card alias: Alias boxing: - expedition: Expedición - item: Artículo - created: Creado - worker: Trabajador - selectTime: 'Seleccionar hora:' - selectVideo: 'Seleccionar vídeo:' - notFound: No hay vídeos disponibles + expedition: Expedition + item: Item + created: Created + worker: Worker + selectTime: 'Select time:' + selectVideo: 'Select video:' + notFound: No videos available summary: - state: Estado - salesPerson: Comercial - agency: Agencia - zone: Zona - warehouse: Almacén - route: Ruta - invoice: Factura - shipped: Enviado - landed: Entregado - consigneePhone: Tel. consignatario - consigneeMobile: Móv. consignatario - clientPhone: Tel. cliente - clientMobile: Móv. cliente - consignee: Consignatario + state: State + salesPerson: Sales person + agency: Agency + zone: Zone + warehouse: Warehouse + route: Route + invoice: Invoice + shipped: Shipped + landed: Landed + consigneePhone: Consignee phone + consigneeMobile: Consignee mobile + clientPhone: Client phone + clientMobile: Client mobile + consignee: Consignee subtotal: Subtotal - vat: IVA + vat: VAT total: Total - saleLines: Líneas del pedido - item: Artículo + saleLines: Line items + item: Item visible: Visible - available: Disponible - quantity: Cantidad - price: Precio - discount: Descuento - packing: Encajado - hasComponentLack: Faltan componentes - itemShortage: No visible - claim: Reclamación - reserved: Reservado - created: Fecha creación - package: Embalaje - taxClass: Tipo IVA - services: Servicios - changeState: Cambiar estado - requester: Solicitante - atender: Comprador - request: Petición de compra - weight: Peso - goTo: Ir a - summaryAmount: 'Resumen' + available: Available + quantity: Quantity + price: Price + discount: Discount + packing: Packing + hasComponentLack: Component lack + itemShortage: Not visible + claim: Claim + reserved: Reserved + created: Created + package: Package + taxClass: Tax class + services: Services + changeState: Change state + requester: Requester + atender: Atender + request: Request + weight: Weight + goTo: Go to + summaryAmount: Summary claim: pageTitles: - claims: Reclamaciones - list: Listado - createClaim: Crear reclamación - summary: Resumen - basicData: Datos básicos - lines: Líneas - development: Trazabilidad - photos: Fotos - log: Historial - notes: Notas - action: Acción + claims: Claims + list: List + createClaim: Create claim + summary: Summary + basicData: Basic Data + lines: Lines + photos: Photos + development: Development + log: Audit logs + notes: Notes + action: Action list: - customer: Cliente - assignedTo: Asignada a - created: Creada - state: Estado + customer: Customer + assignedTo: Assigned + created: Created + state: State rmaList: - code: Código - records: registros + code: Code + records: records card: - claimId: ID reclamación - assignedTo: Asignada a - created: Creada - state: Estado - ticketId: ID ticket - customerSummary: Resumen del cliente - claimedTicket: Ticket reclamado - saleTracking: Líneas preparadas - ticketTracking: Estados del ticket - commercial: Comercial - province: Provincia - zone: Zona + claimId: Claim ID + assignedTo: Assigned + created: Created + state: State + ticketId: Ticket ID + customerSummary: Customer summary + claimedTicket: Claimed ticket + saleTracking: Sale tracking + ticketTracking: Ticket tracking + commercial: Commercial + province: Province + zone: Zone summary: - customer: Cliente - assignedTo: Asignada a - attendedBy: Atendida por - created: Creada - state: Estado - details: Detalles - item: Artículo - landed: Entregado - quantity: Cantidad - claimed: Reclamado - price: Precio - discount: Descuento + customer: Customer + assignedTo: Assigned + attendedBy: Attended by + created: Created + state: State + details: Details + item: Item + landed: Landed + quantity: Quantity + claimed: Claimed + price: Price + discount: Discount total: Total - actions: Acciones - responsibility: Responsabilidad - company: Empresa - person: Comercial/Cliente - notes: Observaciones - photos: Fotos - development: Trazabilidad - reason: Motivo - result: Consecuencias - responsible: Responsable - worker: Trabajador - redelivery: Devolución + actions: Actions + responsibility: Responsibility + company: Company + person: Employee/Customer + notes: Notes + photos: Photos + development: Development + reason: Reason + result: Result + responsible: Responsible + worker: Worker + redelivery: Redelivery basicData: - customer: Cliente - assignedTo: Asignada a - created: Creada - state: Estado - picked: Recogida + customer: Customer + assignedTo: Assigned + created: Created + state: State + picked: Picked photo: - fileDescription: 'Reclamacion ID {claimId} del cliente {clientName} id {clientId}' - noData: 'No hay imágenes/videos, haz click aquí o arrastra y suelta el archivo' - dragDrop: Arrástralo y sueltalo aquí + fileDescription: 'Claim id {claimId} from client {clientName} id {clientId}' + noData: 'There are no images/videos, click here or drag and drop the file' + dragDrop: Drag and drop it here invoiceOut: pageTitles: - invoiceOuts: Fact. emitidas - list: Listado - negativeBases: Bases Negativas - globalInvoicing: Facturación global - createInvoiceOut: Crear fact. emitida - summary: Resumen - basicData: Datos básicos + invoiceOuts: Invoice out + list: List + negativeBases: Negative Bases + globalInvoicing: Global invoicing + createInvoiceOut: Create invoice out + summary: Summary + basicData: Basic Data list: - ref: Referencia - issued: Fecha emisión - shortIssued: F. emisión - client: Cliente - created: Fecha creación - shortCreated: F. creación - company: Empresa - dued: Fecha vencimineto - shortDued: F. vencimiento - amount: Importe + ref: Reference + issued: Issued + shortIssued: Issued + client: Client + created: Created + shortCreated: Created + company: Company + dued: Due date + shortDued: Due date + amount: Amount card: - issued: Fecha emisión - client: Cliente - company: Empresa - customerCard: Ficha del cliente - ticketList: Listado de tickets + issued: Issued + client: Client + company: Company + customerCard: Customer card + ticketList: Ticket List summary: - issued: Fecha - created: Fecha creación - dued: Vencimiento - booked: Contabilizada - company: Empresa - taxBreakdown: Desglose impositivo - type: Tipo - taxableBase: Base imp. - rate: Tarifa - fee: Cuota + issued: Issued + created: Created + dued: Due + booked: Booked + company: Company + taxBreakdown: Tax breakdown + type: Type + taxableBase: Taxable base + rate: Rate + fee: Fee tickets: Tickets - ticketId: Id ticket + ticketId: Ticket id nickname: Alias - shipped: F. envío - totalWithVat: Importe + shipped: Shipped + totalWithVat: Amount globalInvoices: errors: - chooseValidClient: Selecciona un cliente válido - chooseValidCompany: Selecciona una empresa válida - chooseValidPrinter: Selecciona una impresora válida - fillDates: La fecha de la factura y la fecha máxima deben estar completas - invoiceDateLessThanMaxDate: La fecha de la factura no puede ser menor que la fecha máxima - invoiceWithFutureDate: Existe una factura con una fecha futura - noTicketsToInvoice: No existen tickets para facturar - criticalInvoiceError: 'Error crítico en la facturación, proceso detenido' + chooseValidClient: Choose a valid client + chooseValidCompany: Choose a valid company + chooseValidPrinter: Choose a valid printer + fillDates: Invoice date and the max date should be filled + invoiceDateLessThanMaxDate: Invoice date can not be less than max date + invoiceWithFutureDate: Exists an invoice with a future date + noTicketsToInvoice: There are not tickets to invoice + criticalInvoiceError: 'Critical invoicing error, process stopped' table: - client: Cliente - addressId: Id dirección - streetAddress: Dirección fiscal + client: Client + addressId: Address id + streetAddress: Street statusCard: - percentageText: '{getPercentage}% {getAddressNumber} de {getNAddresses}' - pdfsNumberText: '{nPdfs} de {totalPdfs} PDFs' + percentageText: '{getPercentage}% {getAddressNumber} of {getNAddresses}' + pdfsNumberText: '{nPdfs} of {totalPdfs} PDFs' negativeBases: - from: Desde - to: Hasta - company: Empresa - country: País - clientId: Id cliente - client: Cliente - amount: Importe + from: From + to: To + company: Company + country: Country + clientId: Client Id + client: Client + amount: Amount base: Base - ticketId: Id ticket - active: Activo - hasToInvoice: Facturar - verifiedData: Datos comprobados + ticketId: Ticket Id + active: Active + hasToInvoice: Has to Invoice + verifiedData: Verified Data comercial: Comercial errors: - downloadCsvFailed: Error al descargar CSV -order: - pageTitles: - order: Cesta - orderList: Listado - create: Crear - summary: Resumen - basicData: Datos básicos - catalog: Catálogo - volume: Volumen - lines: Líneas - field: - salesPersonFk: Comercial - clientFk: Cliente - isConfirmed: Confirmada - created: Creado - landed: F. entrega - hour: Hora - agency: Agencia - total: Total - form: - clientFk: Cliente - addressFk: Dirección - landed: F. entrega - agencyModeFk: Agencia - list: - newOrder: Nuevo Pedido - summary: - basket: Cesta - nickname: Alias - company: Empresa - confirmed: Confirmada - notConfirmed: No confirmada - created: Creado - landed: F. entrega - phone: Teléfono - createdFrom: Creado desde - address: Dirección - notes: Notas - subtotal: Subtotal - total: Total - vat: IVA - state: Estado - alias: Alias - items: Items - orderTicketList: Tickets del pedido - details: Detalles - item: Item - quantity: Cantidad - price: Precio - amount: Monto + downloadCsvFailed: CSV download failed shelving: pageTitles: - shelving: Carros - shelvingList: Listado de carros - create: Crear - summary: Resumen - basicData: Datos básicos - log: Historial + shelving: Shelving + shelvingList: Shelving List + create: Create + summary: Summary + basicData: Basic Data + log: Logs list: parking: Parking - priority: Prioridad - newShelving: Nuevo Carro + priority: Priority + newShelving: New Shelving summary: - code: Código + code: Code parking: Parking - priority: Prioridad - worker: Trabajador - recyclable: Reciclable + priority: Priority + worker: Worker + recyclable: Recyclable basicData: - code: Código + code: Code parking: Parking - priority: Prioridad - recyclable: Reciclable + priority: Priority + recyclable: Recyclable parking: - pickingOrder: 'Orden de recogida' - row: 'Fila' - column: 'Columna' + pickingOrder: Picking order + sector: Sector + row: Row + column: Column pageTitles: - parking: 'Parking' + parking: Parking searchBar: - info: 'Puedes buscar por código de parking' - label: 'Buscar parking...' + info: You can search by parking code + label: Search parking... invoiceIn: pageTitles: - invoiceIns: Fact. recibidas - list: Listado - createInvoiceIn: Crear fact. recibida - summary: Resumen - basicData: Datos básicos - vat: IVA - dueDay: Vencimiento + invoiceIns: Invoices In + list: List + createInvoiceIn: Create invoice in + summary: Summary + basicData: Basic data + vat: VAT + dueDay: Due day intrastat: Intrastat - corrective: Rectificativa - log: Historial + corrective: Corrective + log: Logs list: - ref: Referencia - supplier: Proveedor - supplierRef: Ref. proveedor - serialNumber: Num. serie - shortIssued: F. emisión - serial: Serie - file: Fichero - issued: Fecha emisión - isBooked: Conciliada + ref: Reference + supplier: Supplier + supplierRef: Supplier ref. + serialNumber: Serial number + serial: Serial + file: File + issued: Issued + isBooked: Is booked awb: AWB - amount: Importe + amount: Amount card: - issued: Fecha emisión - amount: Importe - client: Cliente - company: Empresa - customerCard: Ficha del cliente - ticketList: Listado de tickets - vat: Iva - dueDay: Fecha de vencimiento + issued: Issued + amount: Amount + client: Client + company: Company + customerCard: Customer card + ticketList: Ticket List + vat: Vat + dueDay: Due day + intrastat: Intrastat summary: - supplier: Proveedor - supplierRef: Ref. proveedor - currency: Divisa - docNumber: Número documento - issued: Fecha de expedición - operated: Fecha operación - bookEntried: Fecha asiento - bookedDate: Fecha contable - sage: Retención sage - vat: Iva no deducible - company: Empresa - booked: Contabilizada - expense: Gasto - taxableBase: Base imp. - rate: Tasa - sageTransaction: Sage transación - dueDay: Fecha - bank: Caja - amount: Importe - foreignValue: Divisa - dueTotal: Vencimiento - code: Código - net: Neto - stems: Tallos - country: País + supplier: Supplier + supplierRef: Supplier ref. + currency: Currency + docNumber: Doc number + issued: Expedition date + operated: Operation date + bookEntried: Entry date + bookedDate: Booked date + sage: Sage withholding + vat: Undeductible VAT + company: Company + booked: Booked + expense: Expense + taxableBase: Taxable base + rate: Rate + sageVat: Sage vat + sageTransaction: Sage transaction + dueDay: Date + bank: Bank + amount: Amount + foreignValue: Foreign value + dueTotal: Due day + noMatch: Do not match + code: Code + net: Net + stems: Stems + country: Country +order: + pageTitles: + order: Orders + orderList: List + create: Create + summary: Summary + basicData: Basic Data + catalog: Catalog + volume: Volume + lines: Lines + field: + salesPersonFk: Sales Person + clientFk: Client + isConfirmed: Confirmed + created: Created + landed: Landed + hour: Hour + agency: Agency + total: Total + form: + clientFk: Client + addressFk: Address + landed: Landed + agencyModeFk: Agency + list: + newOrder: New Order + summary: + basket: Basket + nickname: Nickname + company: Company + confirmed: Confirmed + notConfirmed: Not confirmed + created: Created + landed: Landed + phone: Phone + createdFrom: Created From + address: Address + notes: Notes + subtotal: Subtotal + total: Total + vat: VAT + state: State + alias: Alias + items: Items + orderTicketList: Order Ticket List + details: Details + item: Item + quantity: Quantity + price: Price + amount: Amount department: pageTitles: basicData: Basic data - department: Departamentos - summary: Resumen - name: Nombre - code: Código + department: Department + summary: Summary + name: Name + code: Code chat: Chat - bossDepartment: Jefe de departamento + bossDepartment: Boss Department email: Email - selfConsumptionCustomer: Cliente autoconsumo - telework: Teletrabaja - notifyOnErrors: Notificar errores - worksInProduction: Pertenece a producción - hasToRefill: Completar días sin registros físicos - hasToSendMail: Enviar fichadas por mail - departmentRemoved: Departamento eliminado + selfConsumptionCustomer: Self-consumption customer + telework: Telework + notifyOnErrors: Notify on errors + worksInProduction: Works in production + hasToRefill: Fill in days without physical check-ins + hasToSendMail: Send check-ins by email + departmentRemoved: Department removed worker: pageTitles: - workers: Trabajadores - list: Listado - basicData: Datos básicos - summary: Resumen - notifications: Notificaciones - workerCreate: Nuevo trabajador - department: Departamentos + workers: Workers + list: List + basicData: Basic data + summary: Summary + notifications: Notifications + workerCreate: New worker + department: Department pda: PDA - log: 'Historial' + log: Log list: - name: Nombre + name: Name email: Email - phone: Teléfono - mobile: Móvil - active: Activo - department: Departamento - schedule: Horario - newWorker: Nuevo trabajador + phone: Phone + mobile: Mobile + active: Active + department: Department + schedule: Schedule + newWorker: New worker card: - workerId: ID Trabajador - name: Nombre + workerId: Worker ID + name: Name email: Email - phone: Teléfono - mobile: Móvil - active: Activo - warehouse: Almacén - agency: Empresa - salesPerson: Comercial + phone: Phone + mobile: Mobile + active: Active + warehouse: Warehouse + agency: Agency + salesPerson: Sales person summary: - basicData: Datos básicos - boss: Jefe - phoneExtension: Extensión de teléfono - entPhone: Teléfono de empresa - personalPhone: Teléfono personal - noBoss: Sin jefe - userData: Datos de usuario - userId: ID del usuario - role: Rol - sipExtension: Extensión - locker: Taquilla + basicData: Basic data + boss: Boss + phoneExtension: Phone extension + entPhone: Enterprise phone + personalPhone: Personal phone + noBoss: No boss + userData: User data + userId: User ID + role: Role + sipExtension: Extension + locker: Locker notificationsManager: - activeNotifications: Notificaciones activas - availableNotifications: Notificaciones disponibles - subscribed: Se ha suscrito a la notificación - unsubscribed: Se ha dado de baja de la notificación + activeNotifications: Active notifications + availableNotifications: Available notifications + subscribed: Subscribed to the notification + unsubscribed: Unsubscribed from the notification pda: - newPDA: Nueva PDA - currentPDA: PDA Actual - model: Modelo - serialNumber: Número de serie - removePDA: Desasignar PDA + newPDA: New PDA + currentPDA: Current PDA + model: Model + serialNumber: Serial number + removePDA: Deallocate PDA create: - name: Nombre - lastName: Apellido - birth: Fecha de nacimiento - fi: DNI/NIF/NIE - code: Código de trabajador - phone: Teléfono - postcode: Código postal - province: Provincia - city: Población - street: Dirección - webUser: Usuario Web - personalEmail: Correo personal - company: Empresa - boss: Jefe - payMethods: Método de pago + name: Name + lastName: Last name + birth: Birth + fi: Fi + code: Worker code + phone: Phone + postcode: Postcode + province: Province + city: City + street: Street + webUser: Web user + personalEmail: Personal email + company: Company + boss: Boss + payMethods: Pay method iban: IBAN bankEntity: Swift / BIC - imageNotFound: No se ha encontrado la imagen + imageNotFound: Image not found wagon: pageTitles: - wagons: Vagones - wagonsList: Listado vagones - wagonCreate: Crear tipo - wagonEdit: Editar tipo - typesList: Listado tipos - typeCreate: Crear tipo - typeEdit: Editar tipo - wagonCounter: Contador de carros + wagons: Wagons + wagonsList: Wagons List + wagonCreate: Create wagon + wagonEdit: Edit wagon + typesList: Types List + typeCreate: Create type + typeEdit: Edit type + wagonCounter: Trolley counter type: - name: Nombre - submit: Guardar - reset: Deshacer cambios - trayColor: Color de la bandeja - removeItem: Tipo de vagón borrado correctamente + name: Name + submit: Submit + reset: Reset + trayColor: Tray color + removeItem: Wagon type removed successfully list: - plate: Matrícula - volume: Volumen - type: Tipo - remove: Borrar - removeItem: Vagón borrado correctamente + plate: Plate + volume: Volume + type: Type + remove: Remove + removeItem: Wagon removed successfully create: - plate: Matrícula - volume: Volumen - type: Tipo - label: Etiqueta + plate: Plate + volume: Volume + type: Type + label: Label warnings: - noData: Sin datos disponibles - nameNotEmpty: El nombre no puede estar vacío - labelNotEmpty: La etiqueta no puede estar vacía - plateNotEmpty: La matrícula no puede estar vacía - volumeNotEmpty: El volumen no puede estar vacío - typeNotEmpty: El tipo no puede estar vacío - maxTrays: Has alcanzado el número máximo de bandejas - minHeightBetweenTrays: 'La distancia mínima entre bandejas es ' - maxWagonHeight: 'La altura máxima del vagón es ' - uncompleteTrays: Hay bandejas sin completar + noData: No data available + nameNotEmpty: Name can not be empty + labelNotEmpty: Label can not be empty + plateNotEmpty: Plate can not be empty + volumeNotEmpty: Volume can not be empty + typeNotEmpty: Type can not be empty + maxTrays: You have reached the max number of trays + minHeightBetweenTrays: 'The minimum height between trays is ' + maxWagonHeight: 'The maximum height of the wagon is ' + uncompleteTrays: There are incomplete trays route/roadmap: pageTitles: - roadmap: Troncales - summary: Resumen - basicData: Datos básicos - stops: Paradas + roadmap: Roadmap + summary: Summary + basicData: Basic Data + stops: Stops roadmap: pageTitles: - roadmap: Troncales - summary: Resumen - basicData: Datos básicos - stops: Paradas + roadmap: Roadmap + summary: Summary + basicData: Basic Data + stops: Stops route: pageTitles: - routes: Rutas - cmrsList: Listado de CMRs externos - RouteList: Listado - create: Crear - basicData: Datos básicos - summary: Resumen - RouteRoadmap: Troncales - RouteRoadmapCreate: Crear troncal + routes: Routes + cmrsList: External CMRs list + RouteList: List + create: Create + basicData: Basic Data + summary: Summary + RouteRoadmap: Roadmaps + RouteRoadmapCreate: Create roadmap tickets: Tickets - log: Historial - autonomous: Autónomos + log: Log + autonomous: Autonomous cmr: list: - results: resultados - cmrFk: Id CMR - hasCmrDms: Adjuntado en gestdoc - 'true': Sí + results: results + cmrFk: CMR id + hasCmrDms: Attached in gestdoc + 'true': 'Yes' 'false': 'No' - ticketFk: Id ticket - routeFk: Id ruta - country: País - clientFk: Id cliente - shipped: Fecha preparación - viewCmr: Ver CMR - downloadCmrs: Descargar CMRs + ticketFk: Ticketd id + routeFk: Route id + country: Country + clientFk: Client id + shipped: Preparation date + viewCmr: View CMR + downloadCmrs: Download CMRs supplier: pageTitles: - suppliers: Proveedores - supplier: Proveedor - list: Listado - create: Crear - summary: Resumen - basicData: Datos básicos - fiscalData: Datos fiscales - billingData: Forma de pago - log: Historial - accounts: Cuentas - contacts: Contactos - addresses: Direcciones - consumption: Consumo - agencyTerm: Acuerdo agencia - dms: 'Gestión documental' + suppliers: Suppliers + supplier: Supplier + list: List + create: Create + summary: Summary + basicData: Basic data + fiscalData: Fiscal data + billingData: Billing data + log: Log + accounts: Accounts + contacts: Contacts + addresses: Addresses + consumption: Consumption + agencyTerm: Agency agreement + dms: File management list: - payMethod: Método de pago - payDeadline: Plazo de pago - payDay: Día de pago - account: Cuenta - newSupplier: Nuevo proveedor + payMethod: Pay method + payDeadline: Pay deadline + payDay: Pay day + account: Account + newSupplier: New supplier summary: - responsible: Responsable - notes: Notas - verified: Verificado - isActive: Está activo - billingData: Forma de pago - payMethod: Método de pago - payDeadline: Plazo de pago + responsible: Responsible + notes: Notes + verified: Verified + isActive: Is active + billingData: Billing data + payMethod: Pay method + payDeadline: Pay deadline payDay: Día de pago - account: Cuenta - fiscalData: Datos fiscales - sageTaxType: Tipo de impuesto Sage - sageTransactionType: Tipo de transacción Sage - sageWithholding: Retención sage - supplierActivity: Actividad proveedor - healthRegister: Pasaporte sanitario - fiscalAddress: Dirección fiscal - socialName: Razón social - taxNumber: NIF/CIF - street: Dirección - city: Población - postCode: Código postal - province: Provincia - country: País + account: Account + fiscalData: Fiscal data + sageTaxType: Sage tax type + sageTransactionType: Sage transaction type + sageWithholding: Sage withholding + supplierActivity: Supplier activity + healthRegister: Healt register + fiscalAddress: Fiscal address + socialName: Social name + taxNumber: Tax number + street: Street + city: City + postCode: Postcode + province: Province + country: Country create: - supplierName: Nombre del proveedor + supplierName: Supplier name basicData: alias: Alias - workerFk: Responsable - isSerious: Verificado - isActive: Activo - isPayMethodChecked: Método de pago validado - note: Notas + workerFk: Responsible + isSerious: Verified + isActive: Active + isPayMethodChecked: PayMethod checked + note: Notes fiscalData: - name: Razón social * - nif: NIF/CIF * - account: Cuenta - sageTaxTypeFk: Tipo de impuesto sage - sageWithholdingFk: Retención sage - sageTransactionTypeFk: Tipo de transacción sage - supplierActivityFk: Actividad proveedor - healthRegister: Pasaporte sanitario - street: Calle - postcode: Código postal - city: Población * - provinceFk: Provincia - country: País - isTrucker: Transportista + name: Social name * + nif: Tax number * + account: Account + sageTaxTypeFk: Sage tax type + sageWithholdingFk: Sage withholding + sageTransactionTypeFk: Sage transaction type + supplierActivityFk: Supplier activity + healthRegister: Health register + street: Street + postcode: Postcode + city: City * + provinceFk: Province + country: Country + isTrucker: Trucker isVies: Vies billingData: - payMethodFk: Forma de pago - payDemFk: Plazo de pago - payDay: Día de pago + payMethodFk: Billing data + payDemFk: Payment deadline + payDay: Pay day accounts: iban: Iban - bankEntity: Entidad bancaria - beneficiary: Beneficiario + bankEntity: Bank entity + beneficiary: Beneficiary contacts: - name: Nombre - phone: Teléfono - mobile: Móvil + name: Name + phone: Phone + mobile: Mobile email: Email - observation: Notas + observation: Notes addresses: - street: Dirección - postcode: Código postal - phone: Teléfono - name: Nombre - city: Población - province: Provincia - mobile: Móvil + street: Street + postcode: Postcode + phone: Phone + name: Name + city: City + province: Province + mobile: Mobile agencyTerms: - agencyFk: Agencia - minimumM3: M3 mínimos - packagePrice: Precio bulto - kmPrice: Precio Km - m3Price: Precio M3 - routePrice: Precio ruta - minimumKm: Km mínimos - addRow: Añadir fila + agencyFk: Agency + minimumM3: Minimum M3 + packagePrice: Package Price + kmPrice: Km Price + m3Price: M3 Price + routePrice: Route price + minimumKm: Minimum Km + addRow: Add row consumption: - entry: Entrada - date: Fecha - reference: Referencia + entry: Entry + date: Date + reference: Reference travel: pageTitles: - travel: Envíos - list: Listado - create: Crear - summary: Resumen - extraCommunity: Extra comunitarios - travelCreate: Nuevo envío - basicData: Datos básicos - history: Historial - thermographs: Termógrafos + travel: Travels + list: List + create: Create + summary: Summary + extraCommunity: Extra community + travelCreate: New travel + basicData: Basic data + history: Log + thermographs: Thermograph summary: - confirmed: Confirmado - entryId: Id entrada - freight: Porte - package: Embalaje - delivered: Enviada - received: Recibida - entries: Entradas - cloneShipping: Clonar envío - CloneTravelAndEntries: Clonar travel y sus entradas - deleteTravel: Eliminar envío - AddEntry: Añadir entrada - thermographs: Termógrafos + confirmed: Confirmed + entryId: Entry Id + freight: Freight + package: Package + delivered: Delivered + received: Received + entries: Entries + cloneShipping: Clone travel + CloneTravelAndEntries: Clone travel and his entries + deleteTravel: Delete travel + AddEntry: Add entry + thermographs: Thermographs hb: HB variables: - search: Id/Referencia - agencyModeFk: Agencia - warehouseInFk: Alm. entrada - warehouseOutFk: ' Alm. salida' - landedFrom: Llegada desde - landedTo: Llegada hasta - continent: Cont. Salida - totalEntries: Ent. totales + search: Id/Reference + agencyModeFk: Agency + warehouseInFk: ' Warehouse In' + warehouseOutFk: Warehouse Out + landedFrom: Landed from + landedTo: Landed to + continent: Continent out + totalEntries: Total entries basicData: - reference: Referencia - agency: Agencia - shipped: F. Envío - landed: F. entrega - warehouseOut: Alm. salida - warehouseIn: Alm. entrada - delivered: Enviada - received: Recibida + reference: Reference + agency: Agency + shipped: Shipped + landed: Landed + warehouseOut: Warehouse Out + warehouseIn: Warehouse In + delivered: Delivered + received: Received thermographs: - code: Código - temperature: Temperatura - state: Estado - destination: Destino - created: Fecha creación - thermograph: Termógrafo - reference: Referencia - type: Tipo - company: Empresa - warehouse: Almacén - travelFileDescription: 'Id envío { travelId }' - file: Fichero + code: Code + temperature: Temperature + state: State + destination: Destination + created: Created + thermograph: Thermograph + reference: Reference + type: Type + company: Company + warehouse: Warehouse + travelFileDescription: 'Travel id { travelId }' + file: File item: pageTitles: - items: Artículos - list: Listado - diary: Histórico - tags: Etiquetas + items: Items + list: List + diary: Diary + tags: Tags descriptor: - item: Artículo - buyer: Comprador + item: Item + buyer: Buyer color: Color - category: Categoría - stems: Tallos + category: Category + stems: Stems visible: Visible - available: Disponible - warehouseText: 'Calculado sobre el almacén de { warehouseName }' - itemDiary: Registro de compra-venta + available: Available + warehouseText: 'Calculated on the warehouse of { warehouseName }' + itemDiary: Item diary components: topbar: {} userPanel: - copyToken: Token copiado al portapapeles - settings: Configuración - logOut: Cerrar sesión - localWarehouse: 'Almacén local', - localBank: 'Banco local' - localCompany: 'Empresa local' - userWarehouse: 'Almacén del usuario' - userCompany: 'Empresa del usuario' + copyToken: Token copied to clipboard + settings: Settings + logOut: Log Out + localWarehouse: Local warehouse + localBank: Local bank + localCompany: Local company + userWarehouse: User warehouse + userCompany: User company smartCard: - downloadFile: Descargar archivo - clone: Clonar - openCard: Ficha - openSummary: Detalles + downloadFile: Download file + clone: Clone + openCard: View + openSummary: Summary cardDescriptor: - mainList: Listado principal - summary: Resumen - moreOptions: Más opciones + mainList: Main list + summary: Summary + moreOptions: More options leftMenu: - addToPinned: Añadir a fijados - removeFromPinned: Eliminar de fijados + addToPinned: Add to pinned + removeFromPinned: Remove from pinned VnLv: - copyText: '{copyValue} se ha copiado al portapepeles' + copyText: '{copyValue} has been copied to the clipboard' iban_tooltip: 'IBAN: ES21 1234 5678 90 0123456789' diff --git a/src/pages/Travel/TravelFilter.vue b/src/pages/Travel/TravelFilter.vue index 819af6aee..545bb58ae 100644 --- a/src/pages/Travel/TravelFilter.vue +++ b/src/pages/Travel/TravelFilter.vue @@ -4,7 +4,6 @@ import { useI18n } from 'vue-i18n'; import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue'; import VnSelectFilter from 'src/components/common/VnSelectFilter.vue'; -import VnInput from 'src/components/common/VnInput.vue'; import FetchData from 'components/FetchData.vue'; import VnInputDate from 'components/common/VnInputDate.vue'; diff --git a/src/pages/Travel/locale/en.yml b/src/pages/Travel/locale/en.yml index 542818c16..c67eddce0 100644 --- a/src/pages/Travel/locale/en.yml +++ b/src/pages/Travel/locale/en.yml @@ -1,6 +1,6 @@ travelFilter: filter: - warehouseOutFk: 'Warehouse Out' - warehouseInFk: 'Warehouse In' + warehouseOutFk: Warehouse Out + warehouseInFk: Warehouse In agencyModeFk: Agency - scopeDays: 'Days onward' + scopeDays: Days onward diff --git a/src/pages/Travel/locale/es.yml b/src/pages/Travel/locale/es.yml index f99e1c122..8e958c074 100644 --- a/src/pages/Travel/locale/es.yml +++ b/src/pages/Travel/locale/es.yml @@ -1,6 +1,6 @@ travelFilter: filter: - warehouseInFk: 'Alm. entrada' - warehouseOutFk: 'Alm. salida' + warehouseInFk: Alm. entrada + warehouseOutFk: Alm. salida agencyModeFk: Agencia scopeDays: Días adelante From 64b10836193750f23f809936dfbfd4be338dfe2e Mon Sep 17 00:00:00 2001 From: wbuezas Date: Wed, 3 Apr 2024 09:28:38 -0300 Subject: [PATCH 14/68] Add today date --- src/pages/Worker/Card/WorkerCalendarFilter.vue | 8 +------- src/pages/Worker/Card/WorkerCalendarItem.vue | 8 +++++--- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/pages/Worker/Card/WorkerCalendarFilter.vue b/src/pages/Worker/Card/WorkerCalendarFilter.vue index f8c1b2167..41c5bb41c 100644 --- a/src/pages/Worker/Card/WorkerCalendarFilter.vue +++ b/src/pages/Worker/Card/WorkerCalendarFilter.vue @@ -157,13 +157,7 @@ const onAbsencesFetched = (data) => { console.log('events:: ', events); }; -watch(selectedYear, () => { - refreshData(); -}); - -watch(selectedBusinessFk, () => { - refreshData(); -}); +watch([selectedYear, selectedBusinessFk], () => refreshData()); defineExpose({ refreshData, diff --git a/src/pages/Worker/Card/WorkerCalendarItem.vue b/src/pages/Worker/Card/WorkerCalendarItem.vue index 79c47063c..9fe02e8cd 100644 --- a/src/pages/Worker/Card/WorkerCalendarItem.vue +++ b/src/pages/Worker/Card/WorkerCalendarItem.vue @@ -45,8 +45,9 @@ const { locale } = useI18n(); const calendarRef = ref(null); const weekdayStore = useWeekdayStore(); -const selectedDate = ref(null); +const selectedDate = ref(); const calendarEventDates = []; +const today = ref(date.formatDate(Date.vnNew(), 'YYYY-MM-DD')); const updateSelectedDate = (year) => { const _date = new Date(year, props.month - 1, 1); @@ -99,13 +100,13 @@ const handleDateSelected = (date) => { }; const getEventByTimestamp = ({ year, month, day }) => { - const stamp = date.formatDate(new Date(year, month - 1, day), 'x'); + const stamp = new Date(year, month - 1, day).getTime(); return props.events[stamp] || null; }; const getEventAttrs = (timestamp) => { const event = getEventByTimestamp(timestamp); - if (!event) return ''; + if (!event) return {}; const { name, color } = event; return { @@ -142,6 +143,7 @@ watch(props.year, (newValue) => { :weekdays="[1, 2, 3, 4, 5, 6, 0]" :disabled-weekdays="[0, 6]" :locale="locale" + :now="today" mini-mode >