#8002 addSupportService #894

Merged
jorgep merged 17 commits from xxxx-addSupportService into dev 2024-12-11 09:49:41 +00:00
151 changed files with 758 additions and 1731 deletions
Showing only changes of commit f7c64fe6ff - Show all commits

View File

@ -4,9 +4,8 @@ import { Router } from 'src/router';
import useNotify from 'src/composables/useNotify.js';
import { useStateQueryStore } from 'src/stores/useStateQueryStore';
const session = useSession();
const { notify } = useNotify();
const stateQuery = useStateQueryStore();
let session, notify, stateQuery;
const baseUrl = '/api/';
axios.defaults.baseURL = baseUrl;
@ -51,9 +50,15 @@ const onResponseError = (error) => {
return Promise.reject(error);
};
axios.interceptors.request.use(onRequest, onRequestError);
axios.interceptors.response.use(onResponse, onResponseError);
axiosNoError.interceptors.request.use(onRequest);
axiosNoError.interceptors.response.use(onResponse);
export function setupAxios() {
session = useSession();
notify = useNotify().notify;
stateQuery = useStateQueryStore();
axios.interceptors.request.use(onRequest, onRequestError);
axios.interceptors.response.use(onResponse, onResponseError);
axiosNoError.interceptors.request.use(onRequest);
axiosNoError.interceptors.response.use(onResponse);
}
export { onRequest, onResponseError, axiosNoError };

View File

@ -4,6 +4,7 @@ import { boot } from 'quasar/wrappers';
import qFormMixin from './qformMixin';
import keyShortcut from './keyShortcut';
import { i18n } from './i18n';
import { setupAxios } from 'src/boot/axios';
import useNotify from 'src/composables/useNotify.js';
import VnInput from 'src/components/common/VnInput.vue';
import { useVnConfirm } from 'src/composables/useVnConfirm';
@ -111,4 +112,5 @@ export default boot(({ app }) => {
};
jorgep marked this conversation as resolved Outdated
Outdated
Review

Utilizaría otro fichero distinto en boot para poner este codigo, ej. cau.js

Utilizaría otro fichero distinto en boot para poner este codigo, ej. `cau.js`
notify(message ?? 'globals.error', 'negative', 'error', opts);
};
setupAxios();
});

View File

@ -50,25 +50,25 @@ const loading = ref(false);
const tableColumns = computed(() => [
{
label: t('entry.buys.id'),
label: t('globals.id'),
name: 'id',
field: 'id',
align: 'left',
},
{
label: t('entry.buys.name'),
label: t('globals.name'),
name: 'name',
field: 'name',
align: 'left',
},
{
label: t('entry.buys.size'),
label: t('globals.size'),
name: 'size',
field: 'size',
align: 'left',
},
{
label: t('entry.buys.producer'),
label: t('globals.producer'),
name: 'producerName',
field: 'producer',
align: 'left',
@ -152,10 +152,10 @@ const selectItem = ({ id }) => {
</span>
<h1 class="title">{{ t('Filter item') }}</h1>
<VnRow>
<VnInput :label="t('entry.buys.name')" v-model="itemFilterParams.name" />
<VnInput :label="t('globals.name')" v-model="itemFilterParams.name" />
<VnInput :label="t('entry.buys.size')" v-model="itemFilterParams.size" />
<VnSelect
:label="t('entry.buys.producer')"
:label="t('globals.producer')"
:options="producersOptions"
hide-selected
option-label="name"
@ -163,7 +163,7 @@ const selectItem = ({ id }) => {
v-model="itemFilterParams.producerFk"
/>
<VnSelect
:label="t('entry.buys.type')"
:label="t('globals.type')"
:options="ItemTypesOptions"
hide-selected
option-label="name"

View File

@ -48,13 +48,13 @@ const loading = ref(false);
const tableColumns = computed(() => [
{
label: t('entry.basicData.id'),
label: t('globals.id'),
name: 'id',
field: 'id',
align: 'left',
},
{
label: t('entry.basicData.warehouseOut'),
label: t('globals.warehouseOut'),
name: 'warehouseOutFk',
field: 'warehouseOutFk',
align: 'left',
@ -62,7 +62,7 @@ const tableColumns = computed(() => [
warehousesOptions.value.find((warehouse) => warehouse.id === val).name,
},
{
label: t('entry.basicData.warehouseIn'),
label: t('globals.warehouseIn'),
name: 'warehouseInFk',
field: 'warehouseInFk',
align: 'left',
@ -70,14 +70,14 @@ const tableColumns = computed(() => [
warehousesOptions.value.find((warehouse) => warehouse.id === val).name,
},
{
label: t('entry.basicData.shipped'),
label: t('globals.shipped'),
name: 'shipped',
field: 'shipped',
align: 'left',
format: (val) => toDate(val),
},
{
label: t('entry.basicData.landed'),
label: t('globals.landed'),
name: 'landed',
field: 'landed',
align: 'left',
@ -146,7 +146,7 @@ const selectTravel = ({ id }) => {
<h1 class="title">{{ t('Filter travels') }}</h1>
<VnRow>
<VnSelect
:label="t('entry.basicData.agency')"
:label="t('globals.agency')"
:options="agenciesOptions"
hide-selected
option-label="name"
@ -154,7 +154,7 @@ const selectTravel = ({ id }) => {
v-model="travelFilterParams.agencyModeFk"
/>
<VnSelect
:label="t('entry.basicData.warehouseOut')"
:label="t('globals.warehouseOut')"
:options="warehousesOptions"
hide-selected
option-label="name"
@ -162,7 +162,7 @@ const selectTravel = ({ id }) => {
v-model="travelFilterParams.warehouseOutFk"
/>
<VnSelect
:label="t('entry.basicData.warehouseIn')"
:label="t('globals.warehouseIn')"
:options="warehousesOptions"
hide-selected
option-label="name"
@ -170,11 +170,11 @@ const selectTravel = ({ id }) => {
v-model="travelFilterParams.warehouseInFk"
/>
<VnInputDate
:label="t('entry.basicData.shipped')"
:label="t('globals.shipped')"
v-model="travelFilterParams.shipped"
/>
<VnInputDate
:label="t('entry.basicData.landed')"
:label="t('globals.landed')"
v-model="travelFilterParams.landed"
/>
</VnRow>

View File

@ -248,7 +248,7 @@ const removeTag = (index, params, search) => {
>
<QItemSection class="col">
<VnSelect
:label="t('components.itemsFilterPanel.tag')"
:label="t('globals.tag')"
v-model="value.selectedTag"
:options="tagOptions"
option-label="name"

View File

@ -163,7 +163,7 @@ function addDefaultData(data) {
/>
<QFile
ref="inputFileRef"
:label="t('entry.buys.file')"
:label="t('globals.file')"
v-model="dms.files"
:multiple="false"
:accept="allowedContentTypes"

View File

@ -8,9 +8,13 @@ import useNotify from './useNotify';
import { useTokenConfig } from './useTokenConfig';
const TOKEN_MULTIMEDIA = 'tokenMultimedia';
const TOKEN = 'token';
let router;
export default {
setup() {
router = useRouter();
},
};
export function useSession() {
const router = useRouter();
const { notify } = useNotify();
let isCheckingToken = false;
let intervalId = null;

View File

@ -59,7 +59,7 @@ globals:
downloadCSVSuccess: CSV downloaded successfully
reference: Reference
agency: Agency
wareHouseOut: Warehouse Out
warehouseOut: Warehouse Out
wareHouseIn: Warehouse In
landed: Landed
shipped: Shipped
@ -106,6 +106,26 @@ globals:
weight: Weight
error: Ups! Something went wrong
recalc: Recalculate
alias: Alias
vat: VAT
intrastat: Intrastat
tags: Tags
size: Size
producer: Producer
origin: Origin
state: State
subtotal: Subtotal
visible: Visible
price: Price
client: Client
country: Country
phone: Phone
mobile: Mobile
postcode: Postcode
street: Street
tag: Tag
ticketId: Ticket ID
confirmed: Confirmed
small: Small
medium: Medium
big: Big
@ -300,13 +320,10 @@ globals:
maxTemperature: Max
minTemperature: Min
params:
id: ID
clientFk: Client id
salesPersonFk: Sales person
warehouseFk: Warehouse
provinceFk: Province
from: From
To: To
stateFk: State
email: Email
SSN: SSN
@ -336,16 +353,12 @@ login:
loginError: Invalid username or password
fieldRequired: This field is required
twoFactorRequired: Two-factor verification required
twoFactor:
code: Code
twoFactorRequired:
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
verifyEmail:
pageTitles:
verifyEmail: Email verification
recoverPassword:
userOrEmail: User or recovery email
explanation: >-
@ -362,15 +375,7 @@ cau:
entry:
list:
newEntry: New entry
landed: Landed
invoiceNumber: Invoice number
supplier: Supplier
booked: Booked
confirmed: Confirmed
ordered: Ordered
tableVisibleColumns:
id: Id
reference: Reference
created: Creation
supplierFk: Supplier
isBooked: Booked
@ -383,236 +388,117 @@ entry:
summary:
commission: Commission
currency: Currency
company: Company
reference: Reference
invoiceNumber: Invoice number
ordered: Ordered
confirmed: Confirmed
booked: Booked
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
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
printedStickers: Printed stickers
notes:
observationType: Observation type
descriptor:
agency: Agency
landed: Landed
warehouseOut: Warehouse Out
latestBuys:
tableVisibleColumns:
image: 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
description: Description
packageValue: Package value
isIgnored: Is ignored
price2: Grouping
price3: Packing
minPrice: Min
ektFk: Ekt
weight: Weight
packagingFk: Package
packingOut: Package out
landing: Landing
isExcludedFromAvailable: Es inventory
ticket:
pageTitles:
tickets: Tickets
list: List
ticketCreate: New ticket
summary: Summary
basicData: Basic Data
boxing: Boxing
sms: Sms
notes: Notes
sale: Sale
dms: File management
volume: Volume
observation: Notes
ticketAdvance: Advance tickets
futureTickets: Future tickets
purchaseRequest: Purchase request
weeklyTickets: Weekly tickets
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
ticketList: Ticket List
newOrder: New Order
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
collection: Collection
route: Route
invoice: Invoice
shipped: Shipped
landed: Landed
consigneePhone: Consignee phone
consigneeMobile: Consignee mobile
consigneeAddress: Consignee address
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
requester: Requester
atender: Atender
request: Request
weight: Weight
goTo: Go to
summaryAmount: Summary
purchaseRequest: Purchase request
service: Service
description: Description
attender: Attender
ok: Ok
create:
client: Client
address: Address
landed: Landed
warehouse: Warehouse
agency: Agency
invoiceOut:
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
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:
@ -626,22 +512,14 @@ invoiceOut:
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
@ -654,15 +532,6 @@ shelving:
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
parking:
pickingOrder: Picking order
@ -675,56 +544,27 @@ parking:
order:
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
confirm: Confirm
confirmLines: Confirm lines
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
@ -733,47 +573,11 @@ department:
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
notes: Notas
dms: My documentation
pbx: Private Branch Exchange
log: Log
calendar: Calendar
timeControl: Time control
locker: Locker
balance: Balance
medical: Medical
operator: Operator
list:
name: Name
email: Email
phone: Phone
mobile: Mobile
active: Active
department: Department
schedule: Schedule
newWorker: New worker
card:
workerId: Worker ID
user: User
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
@ -805,19 +609,12 @@ worker:
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
@ -829,16 +626,13 @@ worker:
endDate: End date
center: Training center
invoice: Invoice
amount: Amount
remark: Remark
hasDiploma: Has diploma
medical:
tableVisibleColumns:
date: Date
time: Hour
center: Formation Center
invoice: Invoice
amount: Amount
isFit: Fit
remark: Observations
imageNotFound: Image not found
@ -862,18 +656,7 @@ worker:
isOnReservationMode: Reservation mode
machine: Machine
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
wagonTray: Tray List
type:
name: Name
submit: Submit
reset: Reset
trayColor: Tray color
@ -881,13 +664,10 @@ wagon:
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
@ -904,26 +684,17 @@ wagon:
supplier:
list:
payMethod: Pay method
payDeadline: Pay deadline
payDay: Pay day
account: Account
newSupplier: New supplier
tableVisibleColumns:
id: Id
name: Name
nif: NIF/CIF
nickname: Alias
account: Account
payMethod: Pay Method
payDay: Pay Day
country: Country
summary:
responsible: Responsible
notes: Notes
verified: Verified
isActive: Is active
billingData: Billing data
payMethod: Pay method
payDeadline: Pay deadline
payDay: Pay day
account: Account
@ -936,15 +707,10 @@ supplier:
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
@ -959,36 +725,18 @@ supplier:
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
@ -1000,25 +748,16 @@ supplier:
addRow: Add row
consumption:
entry: Entry
date: Date
reference: Reference
travel:
travelList:
tableVisibleColumns:
id: Id
ref: Reference
agency: Agency
shipped: Shipped
landed: Landed
shipHour: Shipment Hour
landHour: Landing Hour
warehouseIn: Warehouse in
warehouseOut: Warehouse out
totalEntries: Total entries
totalEntriesTooltip: Total entries
daysOnward: Landed days onwards
summary:
confirmed: Confirmed
entryId: Entry Id
freight: Freight
package: Package
@ -1031,64 +770,89 @@ 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
daysInForward: Days in forward
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:
descriptor:
buyer: Buyer
color: Color
category: Category
available: Available
warehouseText: 'Calculated on the warehouse of { warehouseName }'
itemDiary: Item diary
list:
id: Identifier
stems: Stems
category: Category
typeName: Type
isActive: Active
userName: Buyer
weightByPiece: Weight/Piece
stemMultiplier: Multiplier
fixedPrice:
itemFk: Item ID
groupingPrice: Grouping price
packingPrice: Packing price
hasMinPrice: Has min price
minPrice: Min price
started: Started
ended: Ended
create:
priority: Priority
buyRequest:
requester: Requester
requested: Requested
attender: Atender
achieved: Achieved
concept: Concept
summary:
otherData: Other data
tax: Tax
botanical: Botanical
barcode: Barcode
completeName: Complete name
family: Familiy
stems: Stems
multiplier: Multiplier
buyer: Buyer
doPhoto: Do photo
intrastatCode: Intrastat code
ref: Reference
relevance: Relevance
weight: Weight (gram)/stem
units: Units/box
expense: Expense
generic: Generic
recycledPlastic: Recycled plastic
nonRecycledPlastic: Non recycled plastic
minSalesQuantity: Min sales quantity
genus: Genus
specie: Specie
components:
topbar: {}
itemsFilterPanel:
typeFk: Type
tag: Tag
value: Value
# ItemFixedPriceFilter
buyerFk: Buyer
warehouseFk: Warehouse
started: From
ended: To
mine: For me
hasMinPrice: Minimum price
# LatestBuysFilter
salesPersonFk: Buyer
supplierFk: Supplier
from: From
to: To
active: Is active
visible: Is visible
floramondo: Is floramondo
showBadDates: Show future items
userPanel:
copyToken: Token copied to clipboard
settings: Settings
logOut: Log Out
localWarehouse: Local warehouse
localBank: Local bank
localCompany: Local company
@ -1096,7 +860,6 @@ components:
userCompany: User company
smartCard:
downloadFile: Download file
clone: Clone
openCard: View
openSummary: Summary
cardDescriptor:

View File

@ -58,8 +58,8 @@ globals:
downloadCSVSuccess: Descarga de CSV exitosa
reference: Referencia
agency: Agencia
wareHouseOut: Alm. salida
wareHouseIn: Alm. entrada
warehouseOut: Alm. salida
warehouseIn: Alm. entrada
landed: F. entrega
shipped: F. envío
totalEntries: Ent. totales
@ -108,6 +108,26 @@ globals:
weight: Peso
error: ¡Ups! Algo salió mal
recalc: Recalcular
alias: Alias
vat: IVA
intrastat: Intrastat
tags: Etiquetas
size: Medida
producer: Productor
origin: Origen
state: Estado
subtotal: Subtotal
visible: Visible
price: Precio
client: Cliente
country: País
phone: Teléfono
mobile: Móvil
postcode: Código postal
street: Dirección
tag: Etiqueta
ticketId: ID ticket
confirmed: Confirmado
small: Pequeño/a
medium: Mediano/a
big: Grande
@ -304,13 +324,10 @@ globals:
maxTemperature: Máx
minTemperature: Mín
params:
id: Id
clientFk: Id cliente
salesPersonFk: Comercial
warehouseFk: Almacén
provinceFk: Provincia
from: Desde
To: Hasta
stateFk: Estado
departmentFk: Departamento
email: Correo
@ -341,13 +358,9 @@ login:
fieldRequired: Este campo es obligatorio
twoFactorRequired: Verificación de doble factor requerida
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
verifyEmail:
pageTitles:
verifyEmail: Verificación de correo
recoverPassword:
userOrEmail: Usuario o correo de recuperación
explanation: >-
@ -364,15 +377,7 @@ cau:
entry:
list:
newEntry: Nueva entrada
landed: F. entrega
invoiceNumber: Núm. factura
supplier: Proveedor
booked: Asentado
confirmed: Confirmado
ordered: Pedida
tableVisibleColumns:
id: Id
reference: Referencia
created: Creación
supplierFk: Proveedor
isBooked: Asentado
@ -385,11 +390,8 @@ entry:
summary:
commission: Comisión
currency: Moneda
company: Empresa
reference: Referencia
invoiceNumber: Núm. factura
ordered: Pedida
confirmed: Confirmada
booked: Contabilizada
excludedFromAvailable: Inventario
travelReference: Referencia
@ -398,230 +400,108 @@ entry:
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
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
printedStickers: Etiquetas impresas
notes:
observationType: Tipo de observación
descriptor:
agency: Agencia
landed: F. entrega
warehouseOut: Alm. salida
latestBuys:
tableVisibleColumns:
image: 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
description: Descripción
packageValue: Embalaje
isIgnored: Ignorado
price2: Grouping
price3: Packing
minPrice: Min
ektFk: Ekt
weight: Peso
packagingFk: Embalaje
packingOut: Embalaje envíos
landing: Llegada
isExcludedFromAvailable: Es inventario
ticket:
pageTitles:
tickets: Tickets
list: Listado
ticketCreate: Nuevo ticket
summary: Resumen
basicData: Datos básicos
boxing: Encajado
sms: Sms
notes: Notas
sale: Lineas del pedido
dms: Gestión documental
volume: Volumen
observation: Notas
ticketAdvance: Adelantar tickets
futureTickets: Tickets a futuro
expedition: Expedición
purchaseRequest: Petición de compra
weeklyTickets: Tickets programados
saleTracking: Líneas preparadas
services: Servicios
tracking: Estados
components: Componentes
pictures: Fotos
packages: Embalajes
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
ticketList: Listado de tickets
newOrder: Nuevo pedido
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
collection: Colección
route: Ruta
invoice: Factura
shipped: Enviado
landed: Entregado
consigneePhone: Tel. consignatario
consigneeMobile: Móv. consignatario
consigneeAddress: Dir. 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
requester: Solicitante
atender: Comprador
request: Petición de compra
weight: Peso
goTo: Ir a
summaryAmount: Resumen
purchaseRequest: Petición de compra
service: Servicio
description: Descripción
attender: Consignatario
create:
client: Cliente
address: Dirección
landed: F. entrega
warehouse: Almacén
agency: Agencia
invoiceOut:
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:
@ -635,20 +515,14 @@ invoiceOut:
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:
company: Empresa
country: País
clientId: Id cliente
client: Cliente
amount: Importe
base: Base
ticketId: Id ticket
active: Activo
hasToInvoice: Facturar
verifiedData: Datos comprobados
@ -658,43 +532,24 @@ invoiceOut:
order:
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: Artículos
orderTicketList: Tickets del pedido
details: Detalles
item: Item
quantity: Cantidad
price: Precio
amount: Monto
confirm: Confirmar
confirmLines: Confirmar lineas
@ -704,15 +559,6 @@ shelving:
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
parking:
pickingOrder: Orden de recogida
@ -722,15 +568,8 @@ parking:
info: Puedes buscar por código de parking
label: Buscar parking...
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
@ -739,48 +578,11 @@ department:
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
notes: Notas
dms: Mi documentación
pbx: Centralita
log: Historial
calendar: Calendario
timeControl: Control de horario
locker: Taquilla
balance: Balance
formation: Formación
medical: Mutua
operator: Operario
list:
name: Nombre
email: Email
phone: Teléfono
mobile: Móvil
active: Activo
department: Departamento
schedule: Horario
newWorker: Nuevo trabajador
card:
workerId: ID Trabajador
user: Usuario
name: Nombre
email: Correo personal
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
@ -803,19 +605,12 @@ worker:
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
@ -827,16 +622,13 @@ worker:
endDate: Fecha Fin
center: Centro Formación
invoice: Factura
amount: Importe
remark: Bonficado
hasDiploma: Diploma
medical:
tableVisibleColumns:
date: Fecha
time: Hora
center: Centro de Formación
invoice: Factura
amount: Importe
isFit: Apto
remark: Observaciones
imageNotFound: No se ha encontrado la imagen
@ -861,18 +653,7 @@ worker:
machine: Máquina
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
wagonTray: Listado bandejas
type:
name: Nombre
submit: Guardar
reset: Deshacer cambios
trayColor: Color de la bandeja
@ -880,13 +661,9 @@ wagon:
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
@ -902,26 +679,16 @@ wagon:
supplier:
list:
payMethod: Método de pago
payDeadline: Plazo de pago
payDay: Día de pago
account: Cuenta
newSupplier: Nuevo proveedor
tableVisibleColumns:
id: Id
name: Nombre
nif: NIF/CIF
nickname: Alias
account: Cuenta
payMethod: Método de pago
payDay: Dia de pago
country: País
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
@ -934,15 +701,11 @@ supplier:
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
@ -957,36 +720,17 @@ supplier:
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
@ -998,25 +742,16 @@ supplier:
addRow: Añadir fila
consumption:
entry: Entrada
date: Fecha
reference: Referencia
travel:
travelList:
tableVisibleColumns:
id: Id
ref: Referencia
agency: Agencia
shipped: F.envío
shipHour: Hora de envío
landHour: Hora de llegada
landed: F.entrega
warehouseIn: Alm.salida
warehouseOut: Alm.entrada
totalEntries:
totalEntriesTooltip: Entradas totales
daysOnward: Días de llegada en adelante
summary:
confirmed: Confirmado
entryId: Id entrada
freight: Porte
package: Embalaje
@ -1029,62 +764,88 @@ travel:
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
daysInForward: Días redada
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:
descriptor:
buyer: Comprador
color: Color
category: Categoría
available: Disponible
warehouseText: 'Calculado sobre el almacén de { warehouseName }'
itemDiary: Registro de compra-venta
list:
id: Identificador
stems: Tallos
category: Reino
typeName: Tipo
isActive: Activo
weightByPiece: Peso (gramos)/tallo
userName: Comprador
stemMultiplier: Multiplicador
fixedPrice:
itemFk: ID Artículo
groupingPrice: Precio grouping
packingPrice: Precio packing
hasMinPrice: Tiene precio mínimo
minPrice: Precio min
started: Inicio
ended: Fin
create:
priority: Prioridad
summary:
otherData: Otros datos
tax: IVA
botanical: Botánico
barcode: Código de barras
completeName: Nombre completo
family: Familia
stems: Tallos
multiplier: Multiplicador
buyer: Comprador
doPhoto: Hacer foto
intrastatCode: Código intrastat
ref: Referencia
relevance: Relevancia
weight: Peso (gramos)/tallo
units: Unidades/caja
expense: Gasto
generic: Genérico
recycledPlastic: Plástico reciclado
nonRecycledPlastic: Plástico no reciclado
minSalesQuantity: Cantidad mínima de venta
genus: Genus
specie: Specie
buyRequest:
requester: Solicitante
requested: Solicitado
attender: Comprador
achieved: Conseguido
concept: Concepto
components:
topbar: {}
itemsFilterPanel:
typeFk: Tipo
tag: Etiqueta
value: Valor
# ItemFixedPriceFilter
buyerFk: Comprador
warehouseFk: Almacén
started: Desde
ended: Hasta
mine: Para mi
hasMinPrice: Precio mínimo
# LatestBuysFilter
salesPersonFk: Comprador
supplierFk: Proveedor
active: Activo
visible: Visible
floramondo: Floramondo
showBadDates: Ver items a futuro
userPanel:
copyToken: Token copiado al portapapeles
settings: Configuración
logOut: Cerrar sesión
localWarehouse: Almacén local
localBank: Banco local
localCompany: Empresa local
@ -1092,7 +853,6 @@ components:
userCompany: Empresa del usuario
smartCard:
downloadFile: Descargar archivo
clone: Clonar
openCard: Ficha
openSummary: Detalles
viewSummary: Vista previa

View File

@ -37,7 +37,7 @@ const redirectToAccountBasicData = (_, { id }) => {
<div class="column q-gutter-sm">
<VnInput
v-model="data.name"
:label="t('account.create.name')"
:label="t('globals.name')"
:rules="validate('VnUser.name')"
/>
<VnInput
@ -47,12 +47,12 @@ const redirectToAccountBasicData = (_, { id }) => {
/>
<VnInput
v-model="data.email"
:label="t('account.create.email')"
:label="t('globals.params.email')"
type="email"
:rules="validate('VnUser.email')"
/>
<VnSelect
:label="t('account.create.role')"
:label="t('account.card.role')"
v-model="data.roleFk"
:options="rolesOptions"
option-value="id"
@ -63,7 +63,7 @@ const redirectToAccountBasicData = (_, { id }) => {
/>
<VnInput
v-model="data.password"
:label="t('account.create.password')"
:label="t('ldap.password')"
type="password"
:rules="validate('VnUser.password')"
/>

View File

@ -45,7 +45,7 @@ const rolesOptions = ref([]);
<QItem class="q-my-sm">
<QItemSection>
<VnInput
:label="t('account.card.name')"
:label="t('globals.name')"
v-model="params.name"
lazy-rules
is-outlined

View File

@ -102,11 +102,11 @@ onMounted(async () => await getInitialLdapConfig());
<QBtn
class="q-ml-none"
color="primary"
:label="t('ldap.testConnection')"
:label="t('account.card.testConnection')"
@click="onTestConection()"
>
<QTooltip>
{{ t('ldap.testConnection') }}
{{ t('account.card.testConnection') }}
</QTooltip>
</QBtn>
</template>
@ -114,7 +114,7 @@ onMounted(async () => await getInitialLdapConfig());
<VnRow class="row q-gutter-md">
<div class="col">
<QCheckbox
:label="t('ldap.enableSync')"
:label="t('account.card.enableSync')"
v-model="data.hasData"
@update:model-value="($event) => (hasData = $event)"
:toggle-indeterminate="false"
@ -146,7 +146,7 @@ onMounted(async () => await getInitialLdapConfig());
/>
<VnInput :label="t('ldap.userDN')" clearable v-model="data.userDn" />
<VnInput
:label="t('ldap.groupDN')"
:label="t('account.card.groupDN')"
clearable
v-model="data.groupDn"
/>

View File

@ -110,12 +110,12 @@ onMounted(async () => await getInitialSambaConfig());
<QBtn
class="q-ml-none"
color="primary"
:label="t('samba.testConnection')"
:label="t('account.card.testConnection')"
:disable="formModel.hasChanges"
@click="onTestConection()"
>
<QTooltip>
{{ t('samba.testConnection') }}
{{ t('account.card.testConnection') }}
</QTooltip>
</QBtn>
</template>
@ -123,7 +123,7 @@ onMounted(async () => await getInitialSambaConfig());
<VnRow class="row q-gutter-md">
<div class="col">
<QCheckbox
:label="t('samba.enableSync')"
:label="t('account.card.enableSync')"
v-model="data.hasData"
@update:model-value="($event) => (hasData = $event)"
:toggle-indeterminate="false"

View File

@ -36,15 +36,12 @@ const onDataSaved = ({ id }) => {
<template #form-inputs="{ data }">
<VnRow>
<div class="col">
<VnInput v-model="data.alias" :label="t('mailAlias.name')" />
<VnInput v-model="data.alias" :label="t('globals.name')" />
</div>
</VnRow>
<VnRow>
<div class="col">
<VnInput
v-model="data.description"
:label="t('mailAlias.description')"
/>
<VnInput v-model="data.description" :label="t('role.description')" />
</div>
</VnRow>
</template>

View File

@ -11,8 +11,8 @@ const { t } = useI18n();
<FormModel model="Alias">
<template #form="{ data }">
<div class="column q-gutter-y-md">
<VnInput v-model="data.alias" :label="t('mailAlias.name')" />
<VnInput v-model="data.description" :label="t('mailAlias.description')" />
<VnInput v-model="data.alias" :label="t('globals.name')" />
<VnInput v-model="data.description" :label="t('role.description')" />
<QCheckbox :label="t('mailAlias.isPublic')" v-model="data.isPublic" />
</div>
</template>

View File

@ -71,7 +71,7 @@ const removeAlias = () => {
</QItem>
</template>
<template #body="{ entity }">
<VnLv :label="t('mailAlias.description')" :value="entity.description" />
<VnLv :label="t('role.description')" :value="entity.description" />
</template>
</CardDescriptor>
</template>

View File

@ -42,8 +42,8 @@ const entityId = computed(() => $props.id || route.params.id);
<QIcon name="open_in_new" />
</router-link>
</QCardSection>
<VnLv :label="t('mailAlias.id')" :value="alias.id" />
<VnLv :label="t('mailAlias.description')" :value="alias.description" />
<VnLv :label="t('role.id')" :value="alias.id" />
<VnLv :label="t('role.description')" :value="alias.description" />
</QCard>
</template>
</CardSummary>

View File

@ -36,7 +36,7 @@ watch(
<div class="q-gutter-y-sm">
<VnInput v-model="data.name" :label="t('account.card.nickname')" />
<VnInput v-model="data.nickname" :label="t('account.card.alias')" />
<VnInput v-model="data.email" :label="t('account.card.email')" />
<VnInput v-model="data.email" :label="t('globals.params.email')" />
<VnSelect
url="Languages"
v-model="data.lang"

View File

@ -54,7 +54,7 @@ const hasAccount = ref(false);
</template>
<template #before>
<!-- falla id :id="entityId.value" collection="user" size="160x160" -->
<VnImg :id="entityId" collection="user" resolution="160x160" class="photo">
<VnImg :id="entityId" collection="user" resolution="520x520" class="photo">
<template #error>
<div
class="absolute-full picture text-center q-pa-md flex flex-center"

View File

@ -29,7 +29,7 @@ const props = defineProps({
<QItem class="q-my-sm">
<QItemSection>
<VnInput
:label="t('role.name')"
:label="t('globals.name')"
v-model="params.name"
lazy-rules
is-outlined

View File

@ -12,15 +12,12 @@ const { t } = useI18n();
<template #form="{ data }">
<VnRow>
<div class="col">
<VnInput v-model="data.name" :label="t('role.card.name')" />
<VnInput v-model="data.name" :label="t('globals.name')" />
</div>
</VnRow>
<VnRow>
<div class="col">
<VnInput
v-model="data.description"
:label="t('role.card.description')"
/>
<VnInput v-model="data.description" :label="t('role.description')" />
</div>
</VnRow>
</template>

View File

@ -58,7 +58,7 @@ const removeRole = async () => {
</QItem>
</template>
<template #body="{ entity }">
<VnLv :label="t('role.card.description')" :value="entity.description" />
<VnLv :label="t('role.description')" :value="entity.description" />
</template>
</CardDescriptor>
</template>

View File

@ -22,15 +22,12 @@ const { t } = useI18n();
<template #form-inputs="{ data }">
<VnRow>
<div class="col">
<VnInput v-model="data.name" :label="t('role.card.name')" />
<VnInput v-model="data.name" :label="t('globals.name')" />
</div>
</VnRow>
<VnRow>
<div class="col">
<VnInput
v-model="data.description"
:label="t('role.card.description')"
/>
<VnInput v-model="data.description" :label="t('role.description')" />
</div>
</VnRow>
</template>

View File

@ -44,9 +44,9 @@ const filter = {
<QIcon name="open_in_new" />
</a>
</QCardSection>
<VnLv :label="t('role.card.id')" :value="role.id" />
<VnLv :label="t('role.card.name')" :value="role.name" />
<VnLv :label="t('role.card.description')" :value="role.description" />
<VnLv :label="t('role.id')" :value="role.id" />
<VnLv :label="t('globals.name')" :value="role.name" />
<VnLv :label="t('role.description')" :value="role.description" />
</QCard>
</template>
</CardSummary>

View File

@ -1,32 +1,15 @@
account:
pageTitles:
users: Users
list: Users
roles: Roles
alias: Mail aliasses
accounts: Accounts
ldap: LDAP
samba: Samba
acls: ACLs
connections: Connections
inheritedRoles: Inherited Roles
subRoles: Sub Roles
newRole: New role
privileges: Privileges
mailAlias: Mail Alias
mailForwarding: Mail Forwarding
accountCreate: New user
aliasUsers: Users
card:
name: Name
nickname: User
role: Role
email: Email
alias: Alias
lang: Language
roleFk: Role
newUser: New user
ticketTracking: Ticket tracking
enableSync: Habilitar sincronización
groupDN: DN grupos
testConnection: Probar conexión
privileges:
delegate: Can delegate privileges
enabled: Account enabled!
@ -74,11 +57,7 @@ account:
search: Search user
searchInfo: You can search by id, name or nickname
create:
name: Name
nickname: Nickname
email: Email
role: Role
password: Password
active: Active
mailForwarding:
forwardingMail: Forward email
@ -86,50 +65,30 @@ account:
enableMailForwarding: Enable mail forwarding
mailInputInfo: All emails will be forwarded to the specified address.
role:
pageTitles:
inheritedRoles: Inherited Roles
subRoles: Sub Roles
card:
description: Description
id: Id
name: Name
newRole: New role
searchRoles: Search role
searchInfo: Search role by id or name
name: Name
description: Description
id: Id
mailAlias:
pageTitles:
aliasUsers: Users
search: Search mail alias
searchInfo: Search alias by id or name
alias: Alias
description: Description
id: Id
newAlias: New alias
name: Name
isPublic: Public
ldap:
enableSync: Enable synchronization
server: Server
rdn: RDN
userDN: User DN
filter: Filter
groupDN: Group DN
testConnection: Test connection
success: LDAP connection established!
password: Password
samba:
enableSync: Enable synchronization
domainController: Domain controller
domainAD: AD domain
userAD: AD user
groupDN: Group DN
passwordAD: AD password
domainPart: User DN (without domain part)
verifyCertificate: Verify certificate
testConnection: Test connection
success: Samba connection established!
accounts:
homedir: Homedir base
@ -147,8 +106,6 @@ connections:
created: Created
killSession: Kill session
acls:
role: Role
accessType: Access type
permissions: Permission
search: Search acls
searchInfo: Search acls by model name

View File

@ -1,27 +1,7 @@
account:
pageTitles:
users: Usuarios
list: Usuarios
roles: Roles
alias: Alias de correo
accounts: Cuentas
ldap: LDAP
samba: Samba
acls: ACLs
connections: Conexiones
inheritedRoles: Roles heredados
newRole: Nuevo rol
subRoles: Subroles
privileges: Privilegios
mailAlias: Alias de correo
mailForwarding: Reenvío de correo
accountCreate: Nuevo usuario
aliasUsers: Usuarios
card:
nickname: Usuario
name: Nombre
role: Rol
email: Mail
alias: Alias
lang: Idioma
roleFk: Rol
@ -33,6 +13,9 @@ account:
deactivated: ¡Usuario desactivado!
newUser: Nuevo usuario
twoFactor: Doble factor
enableSync: Habilitar sincronización
groupDN: DN grupos
testConnection: Probar conexión
privileges:
delegate: Puede delegar privilegios
actions:
@ -73,11 +56,7 @@ account:
search: Buscar usuario
searchInfo: Puedes buscar por id, nombre o usuario
create:
name: Nombre
nickname: Nombre mostrado
email: Email
role: Rol
password: Contraseña
active: Activo
mailForwarding:
forwardingMail: Dirección de reenvío
@ -85,51 +64,30 @@ account:
enableMailForwarding: Habilitar redirección de correo
mailInputInfo: Todos los correos serán reenviados a la dirección especificada, no se mantendrá copia de los mismos en el buzón del usuario.
role:
pageTitles:
inheritedRoles: Roles heredados
subRoles: Subroles
newRole: Nuevo rol
card:
description: Descripción
id: Id
name: Nombre
newRole: Nuevo rol
searchRoles: Buscar roles
searchInfo: Buscar rol por id o nombre
name: Nombre
description: Descripción
id: Id
mailAlias:
pageTitles:
aliasUsers: Usuarios
search: Buscar alias de correo
searchInfo: Buscar alias por id o nombre
alias: Alias
description: Descripción
id: Id
newAlias: Nuevo alias
name: Nombre
isPublic: Público
ldap:
password: Contraseña
enableSync: Habilitar sincronización
server: Servidor
rdn: RDN
userDN: DN usuarios
filter: Filtro
groupDN: DN grupos
testConnection: Probar conexión
success: ¡Conexión con LDAP establecida!
samba:
enableSync: Habilitar sincronización
domainController: Controlador de dominio
domainAD: Dominio AD
groupDN: DN grupos
userAD: Usuario AD
passwordAD: Contraseña AD
domainPart: DN usuarios (sin la parte del dominio)
verifyCertificate: Verificar certificado
testConnection: Probar conexión
success: ¡Conexión con Samba establecida!
accounts:
homedir: Directorio base para carpetas de usuario
@ -147,8 +105,6 @@ connections:
created: Creado
killSession: Matar sesión
acls:
role: Rol
accessType: Tipo de acceso
permissions: Permiso
search: Buscar acls
searchInfo: Buscar acls por nombre

View File

@ -55,7 +55,7 @@ const exprBuilder = (param, value) => {
/>
<VnSelect
:input-debounce="0"
:label="t('customer.basicData.businessType')"
:label="t('customer.summary.businessType')"
:options="businessTypes"
:rules="validate('client.businessTypeFk')"
emit-value
@ -67,13 +67,13 @@ const exprBuilder = (param, value) => {
</VnRow>
<VnRow>
<VnInput
:label="t('customer.basicData.contact')"
:label="t('customer.summary.contact')"
:rules="validate('client.contact')"
clearable
v-model="data.contact"
/>
<VnInput
:label="t('customer.basicData.email')"
:label="t('globals.params.email')"
:rules="validate('client.email')"
clearable
type="email"
@ -90,13 +90,13 @@ const exprBuilder = (param, value) => {
</VnRow>
<VnRow>
<VnInput
:label="t('customer.basicData.phone')"
:label="t('customer.extendedList.tableVisibleColumns.phone')"
:rules="validate('client.phone')"
clearable
v-model="data.phone"
/>
<VnInput
:label="t('customer.basicData.mobile')"
:label="t('customer.summary.mobile')"
:rules="validate('client.mobile')"
clearable
v-model="data.mobile"
@ -106,7 +106,7 @@ const exprBuilder = (param, value) => {
<VnSelect
url="Workers/search"
v-model="data.salesPersonFk"
:label="t('customer.basicData.salesPerson')"
:label="t('customer.summary.salesPerson')"
:params="{
departmentCodes: ['VT', 'shopping'],
}"
@ -144,7 +144,7 @@ const exprBuilder = (param, value) => {
option-value="id"
option-label="name"
emit-value
:label="t('customer.basicData.contactChannel')"
:label="t('customer.summary.contactChannel')"
map-options
:rules="validate('client.contactChannelFk')"
:input-debounce="0"

View File

@ -53,11 +53,17 @@ const setData = (entity) => (data.value = useCardDescription(entity?.name, entit
<CustomerDescriptorMenu :customer="entity" />
</template>
<template #body="{ entity }">
<VnLv :label="t('customer.card.payMethod')" :value="entity.payMethod.name" />
<VnLv :label="t('customer.card.credit')" :value="toCurrency(entity.credit)" />
<VnLv
:label="t('customer.card.securedCredit')"
:label="t('customer.summary.payMethod')"
:value="entity.payMethod.name"
/>
<VnLv
:label="t('customer.summary.credit')"
:value="toCurrency(entity.credit)"
/>
<VnLv
:label="t('customer.summary.securedCredit')"
:value="toCurrency(entity.creditInsurance)"
/>
@ -66,7 +72,7 @@ const setData = (entity) => (data.value = useCardDescription(entity?.name, entit
:value="toCurrency(entity.debt)"
:info="t('customer.summary.riskInfo')"
/>
<VnLv :label="t('customer.card.salesPerson')">
<VnLv :label="t('customer.summary.salesPerson')">
<template #value>
<VnUserLink
v-if="entity.salesPersonUser"
@ -77,7 +83,7 @@ const setData = (entity) => (data.value = useCardDescription(entity?.name, entit
</template>
</VnLv>
<VnLv
:label="t('customer.card.businessTypeFk')"
:label="t('customer.extendedList.tableVisibleColumns.businessTypeFk')"
:value="entity.businessType.description"
/>
</template>

View File

@ -87,7 +87,7 @@ const sumRisk = ({ clientRisks }) => {
<VnLv :label="t('customer.summary.contact')" :value="entity.contact" />
<VnLv :value="entity.phone">
<template #label>
{{ t('customer.summary.phone') }}
{{ t('customer.extendedList.tableVisibleColumns.phone') }}
<VnLinkPhone :phone-number="entity.phone" />
</template>
</VnLv>
@ -105,7 +105,7 @@ const sumRisk = ({ clientRisks }) => {
</VnLv>
<VnLv :value="entity.email" copy
><template #label>
{{ t('customer.summary.email') }}
{{ t('globals.params.email') }}
<VnLinkMail email="entity.email"></VnLinkMail> </template
></VnLv>
<VnLv
@ -219,7 +219,7 @@ const sumRisk = ({ clientRisks }) => {
:value="entity.defaultAddress.city"
/>
<VnLv
:label="t('customer.summary.addressStreet')"
:label="t('customer.summary.street')"
:value="entity.defaultAddress.street"
/>
</QCard>

View File

@ -34,7 +34,7 @@ defineProps({
<QItem class="q-mb-sm">
<QItemSection>
<VnInput
:label="t('customerFilter.filter.name')"
:label="t('globals.name')"
v-model="params.name"
is-outlined
/>
@ -43,7 +43,7 @@ defineProps({
<QItem class="q-mb-sm">
<QItemSection>
<VnInput
:label="t('customerFilter.filter.socialName')"
:label="t('customer.summary.socialName')"
v-model="params.socialName"
is-outlined
/>

View File

@ -77,7 +77,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.credit'),
label: t('customer.summary.credit'),
name: 'credit',
columnFilter: {
component: 'number',
@ -115,7 +115,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.mobile'),
label: t('customer.summary.mobile'),
name: 'mobile',
cardVisible: true,
columnFilter: {
@ -162,17 +162,17 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.city'),
label: t('customer.summary.city'),
name: 'city',
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.postcode'),
label: t('customer.summary.postcode'),
name: 'postcode',
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.email'),
label: t('globals.params.email'),
name: 'email',
cardVisible: true,
},
@ -207,7 +207,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.payMethodFk'),
label: t('customer.summary.payMethodFk'),
name: 'payMethodFk',
columnFilter: {
component: 'select',
@ -250,7 +250,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.isActive'),
label: t('customer.summary.isActive'),
name: 'isActive',
chip: {
color: null,
@ -279,7 +279,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.isEqualizated'),
label: t('customer.summary.isEqualizated'),
name: 'isEqualizated',
create: true,
columnFilter: {
@ -325,7 +325,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.hasLcr'),
label: t('customer.summary.hasLcr'),
name: 'hasLcr',
columnFilter: {
inWhere: true,
@ -333,7 +333,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('customer.extendedList.tableVisibleColumns.hasCoreVnl'),
label: t('customer.summary.hasCoreVnl'),
name: 'hasCoreVnl',
columnFilter: {
inWhere: true,
@ -424,7 +424,7 @@ function handleLocation(data, location) {
<VnSelect
url="Workers/search"
v-model="data.salesPersonFk"
:label="t('customer.basicData.salesPerson')"
:label="t('customer.summary.salesPerson')"
:params="{
departmentCodes: ['VT', 'shopping'],
}"

View File

@ -1,21 +1,5 @@
customerFilter:
filter:
name: Name
socialName: Social name
customer:
list:
phone: Phone
email: Email
customerOrders: Display customer orders
moreOptions: More options
card:
customerList: Customer list
customerId: Claim ID
salesPerson: Sales person
credit: Credit
risk: Risk
securedCredit: Secured credit
payMethod: Pay method
debt: Debt
isFrozen: Customer frozen
hasDebt: Customer has debt
@ -23,9 +7,7 @@ customer:
notChecked: Customer no checked
webAccountInactive: Web account inactive
noWebAccess: Web access is disabled
businessType: Business type
passwordRequirements: 'The password must have at least { length } length characters, {nAlpha} alphabetic characters, {nUpper} capital letters, {nDigits} digits and {nPunct} symbols (Ex: $%&.)\n'
businessTypeFk: Business type
summary:
basicData: Basic data
fiscalAddress: Fiscal address
@ -37,9 +19,7 @@ customer:
customerId: Customer ID
name: Name
contact: Contact
phone: Phone
mobile: Mobile
email: Email
salesPerson: Sales person
contactChannel: Contact channel
socialName: Social name
@ -63,7 +43,6 @@ customer:
hasB2BVnl: Has B2B VNL
addressName: Address name
addressCity: City
addressStreet: Street
username: Username
webAccess: Web access
totalGreuge: Total greuge
@ -92,45 +71,27 @@ customer:
goToLines: Go to lines
basicData:
socialName: Fiscal name
businessType: Business type
contact: Contact
youCanSaveMultipleEmails: You can save multiple emails
email: Email
phone: Phone
mobile: Mobile
salesPerson: Sales person
contactChannel: Contact channel
previousClient: Previous client
extendedList:
tableVisibleColumns:
id: Identifier
name: Name
socialName: Social 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

View File

@ -1,22 +1,7 @@
Search customer: Buscar cliente
You can search by customer id or name: Puedes buscar por id o nombre del cliente
customerFilter:
filter:
name: Nombre
socialName: Razón Social
customer:
list:
phone: Teléfono
email: Email
customerOrders: Mostrar órdenes del cliente
moreOptions: Más opciones
card:
customerId: ID cliente
salesPerson: Comercial
credit: Crédito
risk: Riesgo
securedCredit: Crédito asegurado
payMethod: Método de pago
debt: Riesgo
isFrozen: Cliente congelado
hasDebt: Cliente con riesgo
@ -24,9 +9,7 @@ customer:
notChecked: Cliente no comprobado
webAccountInactive: Sin acceso web
noWebAccess: El acceso web está desactivado
businessType: Tipo de negocio
passwordRequirements: 'La contraseña debe tener al menos { length } caracteres de longitud, {nAlpha} caracteres alfabéticos, {nUpper} letras mayúsculas, {nDigits} dígitos y {nPunct} símbolos (Ej: $%&.)'
businessTypeFk: Tipo de negocio
summary:
basicData: Datos básicos
fiscalAddress: Dirección fiscal
@ -38,9 +21,7 @@ customer:
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
@ -64,7 +45,6 @@ customer:
hasB2BVnl: Recibido B2B VNL
addressName: Nombre de la dirección
addressCity: Ciudad
addressStreet: Calle
username: Usuario
webAccess: Acceso web
totalGreuge: Greuge total
@ -93,45 +73,27 @@ customer:
goToLines: Ir a líneas
basicData:
socialName: Nombre fiscal
businessType: Tipo de negocio
contact: Contacto
youCanSaveMultipleEmails: Puede guardar varios correos electrónicos encadenándolos mediante comas sin espacios{','} ejemplo{':'} user{'@'}dominio{'.'}com, user2{'@'}dominio{'.'}com siendo el primer correo electrónico el principal
email: Email
phone: Teléfono
mobile: Móvil
salesPerson: Comercial
contactChannel: Canal de contacto
previousClient: Cliente anterior
extendedList:
tableVisibleColumns:
id: Identificador
name: Nombre
socialName: Razón social
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

View File

@ -20,16 +20,16 @@ const { t } = useI18n();
<template #form="{ data, validate }">
<VnRow>
<VnInput
:label="t('department.name')"
:label="t('globals.name')"
v-model="data.name"
:rules="validate('department.name')"
:rules="validate('globals.name')"
clearable
autofocus
/>
<VnInput
v-model="data.code"
:label="t('department.code')"
:rules="validate('department.code')"
:label="t('globals.code')"
:rules="validate('globals.code')"
clearable
/>
</VnRow>
@ -42,8 +42,8 @@ const { t } = useI18n();
/>
<VnInput
v-model="data.notificationEmail"
:label="t('department.email')"
:rules="validate('department.email')"
:label="t('globals.params.email')"
:rules="validate('globals.params.email')"
clearable
/>
</VnRow>

View File

@ -45,16 +45,8 @@ onMounted(async () => {
/>
<div class="full-width row wrap justify-between content-between">
<div class="column" style="min-width: 50%">
<VnLv
:label="t('department.name')"
:value="department.name"
dash
/>
<VnLv
:label="t('department.code')"
:value="department.code"
dash
/>
<VnLv :label="t('globals.name')" :value="department.name" dash />
<VnLv :label="t('globals.code')" :value="department.code" dash />
<VnLv
:label="t('department.chat')"
:value="department.chatName"

View File

@ -52,7 +52,7 @@ const onFilterTravelSelected = (formData, id) => {
<template #form="{ data }">
<VnRow>
<VnSelect
:label="t('entry.basicData.supplier')"
:label="t('globals.supplier')"
v-model="data.supplierFk"
url="Suppliers"
option-value="id"
@ -107,18 +107,15 @@ const onFilterTravelSelected = (formData, id) => {
</VnSelectDialog>
</VnRow>
<VnRow>
<VnInput
v-model="data.reference"
:label="t('entry.basicData.reference')"
/>
<VnInput v-model="data.reference" :label="t('globals.reference')" />
</VnRow>
<VnRow>
<VnInput
v-model="data.invoiceNumber"
:label="t('entry.basicData.invoiceNumber')"
:label="t('entry.summary.invoiceNumber')"
/>
<VnSelect
:label="t('entry.basicData.company')"
:label="t('globals.company')"
v-model="data.companyFk"
:options="companiesOptions"
option-value="id"
@ -130,14 +127,14 @@ const onFilterTravelSelected = (formData, id) => {
</VnRow>
<VnRow>
<VnSelect
:label="t('entry.basicData.currency')"
:label="t('entry.summary.currency')"
v-model="data.currencyFk"
:options="currenciesOptions"
option-value="id"
option-label="code"
/>
<QInput
:label="t('entry.basicData.commission')"
:label="t('entry.summary.commission')"
v-model="data.commission"
type="number"
autofocus
@ -155,17 +152,11 @@ const onFilterTravelSelected = (formData, id) => {
/>
</VnRow>
<VnRow>
<QCheckbox
v-model="data.isOrdered"
:label="t('entry.basicData.ordered')"
/>
<QCheckbox
v-model="data.isConfirmed"
:label="t('entry.basicData.confirmed')"
/>
<QCheckbox v-model="data.isOrdered" :label="t('entry.summary.ordered')" />
<QCheckbox v-model="data.isConfirmed" :label="t('globals.confirmed')" />
<QCheckbox
v-model="data.isExcludedFromAvailable"
:label="t('entry.basicData.excludedFromAvailable')"
:label="t('entry.summary.excludedFromAvailable')"
/>
<QCheckbox
v-if="isAdministrative()"

View File

@ -5,7 +5,6 @@ import { useI18n } from 'vue-i18n';
import { QBtn } from 'quasar';
import VnPaginate from 'src/components/ui/VnPaginate.vue';
import FetchData from 'src/components/FetchData.vue';
import VnSelect from 'components/common/VnSelect.vue';
import VnInput from 'src/components/common/VnInput.vue';
import FetchedTags from 'components/ui/FetchedTags.vue';
@ -157,13 +156,13 @@ const tableColumnComponents = computed(() => ({
const entriesTableColumns = computed(() => {
return [
{
label: t('entry.summary.item'),
label: t('globals.item'),
field: 'itemFk',
name: 'item',
align: 'left',
},
{
label: t('entry.summary.quantity'),
label: t('globals.quantity'),
field: 'quantity',
name: 'quantity',
align: 'left',
@ -187,7 +186,7 @@ const entriesTableColumns = computed(() => {
align: 'left',
},
{
label: t('entry.summary.weight'),
label: t('globals.weight'),
field: 'weight',
name: 'weight',
align: 'left',
@ -212,13 +211,13 @@ const entriesTableColumns = computed(() => {
format: (value) => toCurrency(value),
},
{
label: t('entry.buys.groupingPrice'),
label: t('item.fixedPrice.groupingPrice'),
field: 'price2',
name: 'price2',
align: 'left',
},
{
label: t('entry.buys.packingPrice'),
label: t('item.fixedPrice.packingPrice'),
field: 'price3',
name: 'price3',
align: 'left',

View File

@ -35,7 +35,7 @@ const packagingsOptions = ref([]);
const columns = computed(() => [
{
label: t('entry.buys.item'),
label: t('globals.item'),
name: 'item',
field: 'itemFk',
options: lastItemBuysOptions.value,
@ -56,19 +56,19 @@ const columns = computed(() => [
align: 'left',
},
{
label: t('entry.buys.packing'),
label: t('entry.summary.packing'),
name: 'packing',
field: 'packing',
align: 'left',
},
{
label: t('entry.buys.grouping'),
label: t('entry.summary.grouping'),
name: 'grouping',
field: 'grouping',
align: 'left',
},
{
label: t('entry.buys.buyingValue'),
label: t('entry.summary.buyingValue'),
name: 'buyingValue',
field: 'buyingValue',
align: 'left',
@ -200,7 +200,7 @@ const redirectToBuysView = () => {
<VnRow>
<QFile
ref="inputFileRef"
:label="t('entry.buys.file')"
:label="t('globals.file')"
v-model="importData.file"
:multiple="false"
accept=".json"
@ -220,10 +220,7 @@ const redirectToBuysView = () => {
</VnRow>
<div v-if="importData.file">
<VnRow>
<VnInput
:label="t('entry.buys.reference')"
v-model="importData.ref"
/>
<VnInput :label="t('globals.reference')" v-model="importData.ref" />
</VnRow>
<VnRow>
<VnInput

View File

@ -73,14 +73,11 @@ const showEntryReport = () => {
</QItem>
</template>
<template #body="{ entity }">
<VnLv
:label="t('entry.descriptor.agency')"
:value="entity.travel?.agency?.name"
/>
<VnLv :label="t('globals.agency')" :value="entity.travel?.agency?.name" />
<VnLv :label="t('shipped')" :value="toDate(entity.travel?.shipped)" />
<VnLv :label="t('landed')" :value="toDate(entity.travel?.landed)" />
<VnLv
:label="t('entry.descriptor.warehouseOut')"
:label="t('globals.warehouseOut')"
:value="entity.travel?.warehouseOut?.name"
/>
</template>

View File

@ -84,7 +84,7 @@ const tableColumnComponents = {
const entriesTableColumns = computed(() => {
return [
{
label: t('entry.summary.quantity'),
label: t('globals.quantity'),
field: 'quantity',
name: 'quantity',
align: 'left',
@ -102,7 +102,7 @@ const entriesTableColumns = computed(() => {
align: 'left',
},
{
label: t('entry.summary.weight'),
label: t('globals.weight'),
field: 'weight',
name: 'weight',
align: 'left',
@ -188,8 +188,8 @@ const fetchEntryBuys = async () => {
:label="t('entry.summary.currency')"
:value="entry.currency?.name"
/>
<VnLv :label="t('entry.summary.company')" :value="entry.company.code" />
<VnLv :label="t('entry.summary.reference')" :value="entry.reference" />
<VnLv :label="t('globals.company')" :value="entry.company.code" />
<VnLv :label="t('globals.reference')" :value="entry.reference" />
<VnLv
:label="t('entry.summary.invoiceNumber')"
:value="entry.invoiceNumber"
@ -217,7 +217,7 @@ const fetchEntryBuys = async () => {
/>
<VnLv :label="t('shipped')" :value="toDate(entry.travel.shipped)" />
<VnLv
:label="t('entry.summary.travelWarehouseOut')"
:label="t('globals.warehouseOut')"
:value="entry.travel.warehouseOut?.name"
/>
<QCheckbox
@ -227,7 +227,7 @@ const fetchEntryBuys = async () => {
/>
<VnLv :label="t('landed')" :value="toDate(entry.travel.landed)" />
<VnLv
:label="t('entry.summary.travelWarehouseIn')"
:label="t('globals.warehouseIn')"
:value="entry.travel.warehouseIn?.name"
/>
<QCheckbox
@ -250,7 +250,7 @@ const fetchEntryBuys = async () => {
:disable="true"
/>
<QCheckbox
:label="t('entry.summary.confirmed')"
:label="t('globals.confirmed')"
v-model="entry.isConfirmed"
:disable="true"
/>

View File

@ -35,7 +35,7 @@ const entriesTableColumns = computed(() => [
{
align: 'left',
name: 'item',
label: t('entry.summary.item'),
label: t('globals.item'),
field: (row) => row.item.name,
},
{

View File

@ -40,7 +40,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.packing'),
label: t('entry.summary.packing'),
name: 'packing',
columnFilter: {
component: 'number',
@ -49,7 +49,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.grouping'),
label: t('entry.summary.grouping'),
name: 'grouping',
columnFilter: {
component: 'number',
@ -58,7 +58,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.quantity'),
label: t('globals.quantity'),
name: 'quantity',
columnFilter: {
component: 'number',
@ -67,12 +67,12 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.description'),
label: t('globals.description'),
name: 'description',
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.size'),
label: t('globals.size'),
name: 'size',
columnFilter: {
component: 'number',
@ -81,27 +81,27 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.tags'),
label: t('globals.tags'),
name: 'tags',
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.type'),
label: t('globals.type'),
name: 'type',
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.intrastat'),
label: t('globals.intrastat'),
name: 'intrastat',
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.origin'),
label: t('globals.origin'),
name: 'origin',
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.weightByPiece'),
label: t('globals.weightByPiece'),
name: 'weightByPiece',
columnFilter: {
component: 'number',
@ -129,7 +129,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.buyingValue'),
label: t('entry.summary.buyingValue'),
name: 'buyingValue',
columnFilter: {
component: 'number',
@ -156,7 +156,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.packageValue'),
label: t('entry.buys.packageValue'),
name: 'packageValue',
columnFilter: {
component: 'number',
@ -202,7 +202,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.weight'),
label: t('globals.weight'),
name: 'weight',
columnFilter: {
component: 'number',
@ -211,7 +211,7 @@ const columns = [
},
{
align: 'left',
label: t('entry.latestBuys.tableVisibleColumns.packagingFk'),
label: t('entry.buys.packagingFk'),
name: 'packagingFk',
columnFilter: {
component: 'number',

View File

@ -47,14 +47,14 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('entry.list.tableVisibleColumns.id'),
label: t('globals.id'),
name: 'id',
isTitle: true,
cardVisible: true,
},
{
align: 'left',
label: t('entry.list.tableVisibleColumns.reference'),
label: t('globals.reference'),
name: 'reference',
isTitle: true,
component: 'input',

View File

@ -355,10 +355,10 @@ const createInvoiceInCorrection = async () => {
</QItem>
</template>
<template #body="{ entity }">
<VnLv :label="t('invoiceIn.card.issued')" :value="toDate(entity.issued)" />
<VnLv :label="t('invoiceIn.list.issued')" :value="toDate(entity.issued)" />
<VnLv :label="t('invoiceIn.summary.booked')" :value="toDate(entity.booked)" />
<VnLv :label="t('invoiceIn.card.amount')" :value="toCurrency(totalAmount)" />
<VnLv :label="t('invoiceIn.summary.supplier')">
<VnLv :label="t('invoiceIn.list.amount')" :value="toCurrency(totalAmount)" />
<VnLv :label="t('invoiceIn.list.supplier')">
<template #value>
<span class="link">
{{ entity?.supplier?.nickname }}

View File

@ -95,7 +95,7 @@ const dueDayColumns = ref([
},
{
name: 'amount',
label: 'invoiceIn.summary.amount',
label: 'invoiceIn.list.amount',
field: (row) => row.amount,
format: (value) => toCurrency(value),
sortable: true,
@ -123,7 +123,7 @@ const intrastatColumns = ref([
},
{
name: 'amount',
label: 'invoiceIn.summary.amount',
label: 'invoiceIn.list.amount',
field: (row) => toCurrency(row.amount),
sortable: true,
align: 'left',
@ -210,7 +210,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
/>
</QCardSection>
<VnLv
:label="t('invoiceIn.summary.supplier')"
:label="t('invoiceIn.list.supplier')"
:value="entity.supplier?.name"
>
<template #value>
@ -221,7 +221,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
</template>
</VnLv>
<VnLv
:label="t('invoiceIn.summary.supplierRef')"
:label="t('invoiceIn.list.supplierRef')"
:value="entity.supplierRef"
/>
<VnLv
@ -271,7 +271,7 @@ const getLink = (param) => `#/invoice-in/${entityId.value}/${param}`;
:value="entity.expenseDeductible?.name"
/>
<VnLv
:label="t('invoiceIn.summary.company')"
:label="t('invoiceIn.card.company')"
:value="entity.company?.code"
/>
<VnLv :label="t('invoiceIn.isBooked')" :value="invoiceIn?.isBooked" />

View File

@ -83,7 +83,7 @@ const redirectToInvoiceInBasicData = (__, { id }) => {
</template>
</VnSelect>
<VnInput
:label="t('invoiceIn.summary.supplierRef')"
:label="t('invoiceIn.list.supplierRef')"
v-model="data.supplierRef"
/>
</VnRow>

View File

@ -50,7 +50,7 @@ const cols = computed(() => [
{
align: 'left',
name: 'serial',
label: t('invoiceIn.list.serial'),
label: t('invoiceIn.serial'),
},
{
align: 'left',
@ -151,7 +151,7 @@ const cols = computed(() => [
</template>
</VnSelect>
<VnInput
:label="t('invoiceIn.summary.supplierRef')"
:label="t('invoiceIn.list.supplierRef')"
v-model="data.supplierRef"
/>
<VnSelect

View File

@ -5,14 +5,11 @@ invoiceIn:
ref: Reference
supplier: Supplier
supplierRef: Supplier ref.
serial: Serial
file: File
issued: Issued
awb: AWB
amount: Amount
card:
issued: Issued
amount: Amount
client: Client
company: Company
customerCard: Customer card
@ -21,8 +18,6 @@ invoiceIn:
dueDay: Due day
intrastat: Intrastat
summary:
supplier: Supplier
supplierRef: Supplier ref.
currency: Currency
issued: Expedition date
operated: Operation date
@ -30,7 +25,6 @@ invoiceIn:
bookedDate: Booked date
sage: Sage withholding
vat: Undeductible VAT
company: Company
expense: Expense
taxableBase: Taxable base
rate: Rate
@ -38,7 +32,6 @@ invoiceIn:
sageTransaction: Sage transaction
dueDay: Date
bank: Bank
amount: Amount
foreignValue: Foreign value
dueTotal: Due day
noMatch: Do not match

View File

@ -11,8 +11,6 @@ invoiceIn:
awb: AWB
amount: Importe
card:
issued: Fecha emisión
amount: Importe
client: Cliente
company: Empresa
customerCard: Ficha del cliente
@ -20,8 +18,6 @@ invoiceIn:
vat: Iva
dueDay: Fecha de vencimiento
summary:
supplier: Proveedor
supplierRef: Ref. proveedor
currency: Divisa
docNumber: Número documento
issued: Fecha de expedición
@ -30,14 +26,12 @@ invoiceIn:
bookedDate: Fecha contable
sage: Retención sage
vat: Iva no deducible
company: Empresa
expense: Gasto
taxableBase: Base imp.
rate: Tasa
sageTransaction: Sage transación
dueDay: Fecha
bank: Caja
amount: Importe
foreignValue: Divisa
dueTotal: Vencimiento
code: Código

View File

@ -69,7 +69,7 @@ const setData = (entity) => (data.value = useCardDescription(entity.ref, entity.
<template #body="{ entity }">
<VnLv :label="t('invoiceOut.card.issued')" :value="toDate(entity.issued)" />
<VnLv :label="t('globals.amount')" :value="toCurrency(entity.amount)" />
<VnLv v-if="entity.client" :label="t('invoiceOut.card.client')">
<VnLv v-if="entity.client" :label="t('globals.client')">
<template #value>
<span class="link">
{{ entity.client.name }}
@ -79,7 +79,7 @@ const setData = (entity) => (data.value = useCardDescription(entity.ref, entity.
</VnLv>
<VnLv
v-if="entity.company"
:label="t('invoiceOut.card.company')"
:label="t('globals.company')"
:value="entity.company.code"
/>
</template>

View File

@ -42,7 +42,7 @@ function fetch() {
const taxColumns = ref([
{
name: 'item',
label: 'invoiceOut.summary.type',
label: 'globals.type',
field: (row) => row.name,
sortable: true,
},
@ -72,21 +72,21 @@ const taxColumns = ref([
const ticketsColumns = ref([
{
name: 'item',
label: t('invoiceOut.summary.ticketId'),
label: t('globals.ticketId'),
field: (row) => row.id,
sortable: true,
align: 'left',
},
{
name: 'nickname',
label: t('invoiceOut.summary.nickname'),
label: t('globals.alias'),
field: (row) => row.nickname,
sortable: true,
align: 'left',
},
{
name: 'landed',
label: t('invoiceOut.summary.shipped'),
label: t('globals.shipped'),
field: (row) => row.shipped,
format: (value) => toDate(value),
sortable: true,
@ -124,18 +124,12 @@ const ticketsColumns = ref([
:label="t('invoiceOut.summary.dued')"
:value="toDate(invoiceOut.dued)"
/>
<VnLv
:label="t('invoiceOut.summary.created')"
:value="toDate(invoiceOut.created)"
/>
<VnLv :label="t('globals.created')" :value="toDate(invoiceOut.created)" />
<VnLv
:label="t('invoiceOut.summary.booked')"
:value="toDate(invoiceOut.booked)"
/>
<VnLv
:label="t('invoiceOut.summary.company')"
:value="invoiceOut.company.code"
/>
<VnLv :label="t('globals.company')" :value="invoiceOut.company.code" />
</QCard>
<QCard class="vn-three">
<VnTitle :text="t('invoiceOut.summary.taxBreakdown')" />

View File

@ -59,7 +59,7 @@ const columns = computed(() => [
field: 'clientId',
},
{
label: t('invoiceOut.globalInvoices.table.client'),
label: t('globals.client'),
field: 'clientName',
name: 'clientName',
align: 'left',

View File

@ -33,7 +33,7 @@ const props = defineProps({
<QItemSection>
<VnInputDate
v-model="params.from"
:label="t('invoiceOut.negativeBases.from')"
:label="t('globals.from')"
is-outlined
/>
</QItemSection>
@ -42,7 +42,7 @@ const props = defineProps({
<QItemSection>
<VnInputDate
v-model="params.to"
:label="t('invoiceOut.negativeBases.to')"
:label="t('globals.to')"
is-outlined
/>
</QItemSection>
@ -51,7 +51,7 @@ const props = defineProps({
<QItemSection>
<VnInput
v-model="params.company"
:label="t('invoiceOut.negativeBases.company')"
:label="t('globals.company')"
is-outlined
/>
</QItemSection>
@ -60,7 +60,7 @@ const props = defineProps({
<QItemSection>
<VnInput
v-model="params.country"
:label="t('invoiceOut.negativeBases.country')"
:label="t('globals.country')"
is-outlined
/>
</QItemSection>
@ -79,7 +79,7 @@ const props = defineProps({
<QItemSection>
<VnInput
v-model="params.clientSocialName"
:label="t('invoiceOut.negativeBases.client')"
:label="t('globals.client')"
is-outlined
/>
</QItemSection>
@ -88,7 +88,7 @@ const props = defineProps({
<QItemSection>
<VnInputNumber
v-model="params.amount"
:label="t('invoiceOut.negativeBases.amount')"
:label="t('globals.amount')"
is-outlined
/>
</QItemSection>

View File

@ -9,9 +9,6 @@ invoiceOutList:
id: ID
ref: Referencia
issued: Fecha emisión
customer: Cliente
company: Empresa
amount: Importe
created: F. creación
dueDate: F. máxima
invoiceOutSerial: Serial
@ -20,12 +17,12 @@ invoiceOutList:
DownloadPdf: Descargar PDF
InvoiceOutSummary: Resumen
negativeBases:
country: País
clientId: ID del cliente
client: Cliente
base: Base
ticketId: Ticket
active: Activo
hasToInvoice: Debe facturar
verifiedData: Datos verificados
commercial: Comercial
country: País
clientId: ID del cliente
client: Cliente
base: Base
ticketId: Ticket
active: Activo
hasToInvoice: Debe facturar
verifiedData: Datos verificados
commercial: Comercial

View File

@ -42,7 +42,7 @@ onMounted(async () => {
:required="true"
/>
<VnInput
:label="t('createIntrastatForm.description')"
:label="t('itemBasicData.description')"
v-model="data.description"
:required="true"
/>

View File

@ -140,10 +140,7 @@ const openRegularizeStockForm = () => {
</span>
</template>
</VnLv>
<VnLv
:label="t('item.descriptor.producer')"
:value="dashIfEmpty(entity.subName)"
/>
<VnLv :label="t('globals.producer')" :value="dashIfEmpty(entity.subName)" />
<VnLv
v-if="entity.value5"
:label="t('item.descriptor.color')"
@ -157,7 +154,7 @@ const openRegularizeStockForm = () => {
/>
<VnLv
v-if="entity.value7"
:label="t('item.descriptor.stems')"
:label="t('item.list.stems')"
:value="entity.value7"
/>
</template>

View File

@ -75,7 +75,7 @@ const handlePhotoUpdated = (evt = false) => {
<QIcon name="vn:item" />
</div>
<div class="text-grey-5" style="opacity: 0.4">
{{ t('item.descriptor.item') }}
{{ t('globals.item') }}
</div>
</div>
</div>
@ -107,7 +107,7 @@ const handlePhotoUpdated = (evt = false) => {
>
<div class="col column items-center">
<span class="text-uppercase color-vn-white" style="font-size: 11px">
{{ t('item.descriptor.visible') }}
{{ t('globals.visible') }}
</span>
<span class="text-weight-bold text-h5 color-vn-white">{{ visible }}</span>
</div>

View File

@ -90,7 +90,7 @@ const columns = computed(() => [
format: (val) => dashIfEmpty(val),
},
{
label: t('itemDiary.reference'),
label: t('itemBasicData.reference'),
field: 'reference',
name: 'reference',
align: 'left',

View File

@ -59,7 +59,7 @@ const columns = computed(() => [
align: 'center',
},
{
label: t('lastEntries.warehouse'),
label: t('itemDiary.warehouse'),
name: 'warehouse',
field: 'warehouse',
align: 'left',
@ -94,7 +94,7 @@ const columns = computed(() => [
format: (val) => dashIfEmpty(val),
},
{
label: t('lastEntries.packing'),
label: t('shelvings.packing'),
name: 'packing',
align: 'center',
},
@ -104,7 +104,7 @@ const columns = computed(() => [
align: 'center',
},
{
label: t('lastEntries.stems'),
label: t('itemBasicData.stems'),
name: 'stems',
field: 'stems',
align: 'center',
@ -188,7 +188,7 @@ onUnmounted(() => (stateStore.rightDrawer = false));
<VnSubToolbar>
<template #st-data>
<VnInputDate
:label="t('lastEntries.since')"
:label="t('itemDiary.since')"
dense
v-model="from"
class="q-mr-lg"

View File

@ -55,13 +55,13 @@ const getUrl = (id, param) => `#/Item/${id}/${param}`;
<QCard class="vn-one">
<VnTitle
:url="getUrl(entityId, 'basic-data')"
:text="t('item.summary.basicData')"
:text="t('globals.summary.basicData')"
/>
<VnLv :label="t('item.summary.name')" :value="item.name" />
<VnLv :label="t('globals.name')" :value="item.name" />
<VnLv :label="t('item.summary.completeName')" :value="item.longName" />
<VnLv :label="t('item.summary.family')" :value="item.itemType.name" />
<VnLv :label="t('item.summary.size')" :value="item.size" />
<VnLv :label="t('item.summary.origin')" :value="item.origin.name" />
<VnLv :label="t('globals.size')" :value="item.size" />
<VnLv :label="t('globals.origin')" :value="item.origin.name" />
<VnLv :label="t('item.summary.stems')" :value="item.stems" />
<VnLv
:label="t('item.summary.multiplier')"
@ -96,7 +96,7 @@ const getUrl = (id, param) => `#/Item/${id}/${param}`;
:value="item.intrastat.id"
/>
<VnLv
:label="t('item.summary.intrastat')"
:label="t('globals.intrastat')"
:value="item.intrastat.description"
/>
<VnLv :label="t('item.summary.ref')" :value="item.comment" />
@ -115,7 +115,7 @@ const getUrl = (id, param) => `#/Item/${id}/${param}`;
/>
</QCard>
<QCard class="vn-one">
<VnTitle :url="getUrl(entityId, 'tags')" :text="t('item.summary.tags')" />
<VnTitle :url="getUrl(entityId, 'tags')" :text="t('globals.tags')" />
<VnLv
v-for="(tag, index) in tags"
:key="index"
@ -126,7 +126,7 @@ const getUrl = (id, param) => `#/Item/${id}/${param}`;
<QCard class="vn-one" v-if="item.description">
<VnTitle
:url="getUrl(entityId, 'basic-data')"
:text="t('item.summary.description')"
:text="t('globals.description')"
/>
<p v-text="item.description" />
</QCard>

View File

@ -151,7 +151,7 @@ const insertTag = (rows) => {
:is-clearable="false"
/>
<VnInput
:label="t('itemTags.relevancy')"
:label="t('itemBasicData.relevancy')"
type="number"
v-model="row.priority"
:required="true"

View File

@ -86,12 +86,9 @@ onBeforeMount(async () => {
>
<template #form="{ data }">
<VnRow>
<VnInput
v-model="data.provisionalName"
:label="t('item.create.name')"
/>
<VnInput v-model="data.provisionalName" :label="t('globals.name')" />
<VnSelect
:label="t('item.create.tag')"
:label="t('globals.tag')"
v-model="data.tag"
:options="tagsOptions"
option-value="id"
@ -109,7 +106,7 @@ onBeforeMount(async () => {
</VnRow>
<VnRow>
<VnSelect
:label="t('item.create.type')"
:label="t('globals.type')"
v-model="data.typeFk"
:options="itemTypesOptions"
option-label="name"
@ -133,7 +130,7 @@ onBeforeMount(async () => {
</template>
</VnSelect>
<VnSelect
:label="t('item.create.intrastat')"
:label="t('globals.intrastat')"
v-model="data.intrastatFk"
:options="intrastatsOptions"
option-label="description"
@ -156,7 +153,7 @@ onBeforeMount(async () => {
</VnRow>
<VnRow>
<VnSelect
:label="t('item.create.origin')"
:label="t('globals.origin')"
v-model="data.originFk"
:options="originsOptions"
option-value="id"

View File

@ -132,7 +132,7 @@ const columns = computed(() => [
},
{
label: t('item.fixedPrice.warehouse'),
label: t('globals.warehouse'),
field: 'warehouseFk',
name: 'warehouseFk',
...defaultColumnAttrs,
@ -192,7 +192,7 @@ const editTableFieldsOptions = [
},
{
field: 'warehouseFk',
label: t('item.fixedPrice.warehouse'),
label: t('globals.warehouse'),
component: 'select',
attrs: {
options: [],

View File

@ -80,7 +80,7 @@ const columns = computed(() => [
cardVisible: true,
},
{
label: t('item.list.grouping'),
label: t('entry.summary.grouping'),
name: 'grouping',
align: 'left',
columnFilter: {
@ -89,7 +89,7 @@ const columns = computed(() => [
},
},
{
label: t('item.list.packing'),
label: t('entry.summary.packing'),
name: 'packing',
align: 'left',
columnFilter: {
@ -118,7 +118,7 @@ const columns = computed(() => [
cardVisible: true,
},
{
label: t('item.list.size'),
label: t('globals.size'),
name: 'size',
align: 'left',
columnFilter: {
@ -165,7 +165,7 @@ const columns = computed(() => [
},
},
{
label: t('item.list.intrastat'),
label: t('globals.intrastat'),
name: 'intrastat',
align: 'left',
component: 'select',
@ -184,7 +184,7 @@ const columns = computed(() => [
cardVisible: true,
},
{
label: t('item.list.origin'),
label: t('globals.origin'),
name: 'origin',
align: 'left',
component: 'select',
@ -258,7 +258,7 @@ const columns = computed(() => [
component: 'checkbox',
},
{
label: t('item.list.producer'),
label: t('globals.producer'),
name: 'producer',
align: 'left',
component: 'select',
@ -275,7 +275,7 @@ const columns = computed(() => [
},
},
{
label: t('item.list.landed'),
label: t('globals.landed'),
name: 'landed',
align: 'left',
component: 'date',

View File

@ -40,7 +40,7 @@ watch(
const columns = computed(() => [
{
label: t('item.buyRequest.ticketId'),
label: t('globals.ticketId'),
name: 'ticketFk',
align: 'left',
isId: true,
@ -50,7 +50,7 @@ const columns = computed(() => [
cardVisible: true,
},
{
label: t('item.buyRequest.shipped'),
label: t('globals.shipped'),
name: 'shipped',
align: 'left',
component: 'date',
@ -90,7 +90,7 @@ const columns = computed(() => [
columnClass: 'shrink',
},
{
label: t('item.buyRequest.price'),
label: t('globals.price'),
name: 'price',
align: 'left',
format: (row) => toCurrency(row.price),
@ -115,7 +115,7 @@ const columns = computed(() => [
columnClass: 'shrink',
},
{
label: t('item.buyRequest.item'),
label: t('globals.item'),
name: 'item',
align: 'left',
component: 'input',
@ -137,7 +137,7 @@ const columns = computed(() => [
columnClass: 'expand',
},
{
label: t('item.buyRequest.state'),
label: t('globals.state'),
name: 'state',
format: (row) => getState(row.isOk),
align: 'left',

View File

@ -10,11 +10,6 @@ shared:
fragile: Frágil
summary:
id: id
code: Código
name: Nombre
worker: Trabajador
category: Reino
temperature: Temperatura
life: Vida
promo: Promoción
itemPackingType: Tipo de embalaje

View File

@ -16,7 +16,6 @@ itemDiary:
date: Date
origin: Origin
state: State
reference: Reference
entity: Entity
in: In
out: Out
@ -48,22 +47,17 @@ itemBasicData:
createIntrastatForm:
title: New intrastat
identifier: Identifier
description: Description
tax:
country: Country
class: Class
lastEntries:
since: Since
to: To
ig: Ig
warehouse: Warehouse
landed: Landed
entry: Entry
pvp: PVP
label: Label
packing: Packing
grouping: Grouping
stems: Stems
quantity: Quantity
cost: Cost
kg: Kg.
@ -77,7 +71,6 @@ itemTags:
addTag: Add tag
tag: Tag
value: Value
relevancy: Relevancy
searchbar:
label: Search item
info: Search by item id

View File

@ -16,7 +16,6 @@ itemDiary:
date: Fecha
origin: Origen
state: Estado
reference: Referencia
entity: Entidad
in: Entrada
out: Salida
@ -48,22 +47,17 @@ itemBasicData:
createIntrastatForm:
title: Nuevo intrastat
identifier: Identificador
description: Descripción
tax:
country: País
class: Clase
lastEntries:
since: Desde
to: Hasta
ig: Ig
warehouse: Almacén
landed: F. Entrega
entry: Entrada
pvp: PVP
label: Etiquetas
packing: Packing
grouping: Grouping
stems: Tallos
quantity: Cantidad
cost: Coste
kg: Kg.
@ -77,7 +71,6 @@ itemTags:
addTag: Añadir etiqueta
tag: Etiqueta
value: Valor
relevancy: Relevancia
searchbar:
label: Buscar artículo
info: Buscar por id de artículo

View File

@ -44,7 +44,7 @@ const columns = computed(() => [
format: (row) => toDateTimeFormat(row.date_make),
},
{
label: t('salesOrdersTable.client'),
label: t('salesClientsTable.client'),
name: 'clientFk',
align: 'left',
columnFilter: {
@ -63,7 +63,7 @@ const columns = computed(() => [
columnFilter: false,
},
{
label: t('salesOrdersTable.salesPerson'),
label: t('salesClientsTable.salesPerson'),
name: 'salesPersonFk',
align: 'left',
optionFilter: 'firstName',

View File

@ -77,7 +77,7 @@ const columns = computed(() => [
},
},
{
label: t('salesTicketsTable.client'),
label: t('salesClientsTable.client'),
name: 'clientFk',
align: 'left',
field: 'nickname',
@ -91,7 +91,7 @@ const columns = computed(() => [
},
},
{
label: t('salesTicketsTable.salesPerson'),
label: t('salesClientsTable.salesPerson'),
name: 'salesPersonFk',
field: 'userName',
align: 'left',
@ -108,7 +108,7 @@ const columns = computed(() => [
},
},
{
label: t('salesTicketsTable.date'),
label: t('salesClientsTable.date'),
name: 'shippedDate',
align: 'left',
columnFilter: {

View File

@ -13,8 +13,6 @@ salesOrdersTable:
delete: Delete
dateSend: Send date
dateMake: Make date
client: Client
salesPerson: Salesperson
deleteConfirmMessage: All the selected elements will be deleted. Are you sure you want to continue?
agency: Agency
import: Import
@ -29,9 +27,6 @@ salesTicketsTable:
componentLack: Component lack
tooLittle: Ticket too little
identifier: Identifier
client: Client
salesPerson: Salesperson
date: Date
theoretical: Theoretical
practical: Practical
province: Province

View File

@ -13,8 +13,6 @@ salesOrdersTable:
delete: Eliminar
dateSend: Fecha de envío
dateMake: Fecha de realización
client: Cliente
salesPerson: Comercial
deleteConfirmMessage: Todos los elementos seleccionados serán eliminados. ¿Seguro que quieres continuar?
agency: Agencia
import: Importe
@ -29,9 +27,6 @@ salesTicketsTable:
componentLack: Faltan componentes
tooLittle: Ticket demasiado pequeño
identifier: Identificador
client: Cliente
salesPerson: Comercial
date: Fecha
theoretical: Teórica
practical: Práctica
province: Provincia

View File

@ -162,7 +162,7 @@ const onClientChange = async (clientId) => {
<VnRow>
<VnInputDate
placeholder="dd-mm-aaa"
:label="t('order.form.landed')"
:label="t('globals.landed')"
v-model="data.landed"
@update:model-value="
() => fetchAgencyList(data.landed, data.addressFk)

View File

@ -185,7 +185,7 @@ onMounted(async () => {
<VnRow class="row q-gutter-md q-mb-md">
<VnInputDate
placeholder="dd-mm-aaa"
:label="t('order.form.landed')"
:label="t('globals.landed')"
v-model="data.landed"
@update:model-value="
() => fetchAgencyList(data.landed, data.addressId)

View File

@ -67,7 +67,7 @@ const setData = (entity) => {
};
const getConfirmationValue = (isConfirmed) => {
return t(isConfirmed ? 'order.summary.confirmed' : 'order.summary.notConfirmed');
return t(isConfirmed ? 'globals.confirmed' : 'order.summary.notConfirmed');
};
const total = ref(null);
@ -94,7 +94,7 @@ const total = ref(null);
</template>
<template #body="{ entity }">
<VnLv
:label="t('order.summary.state')"
:label="t('globals.state')"
:value="getConfirmationValue(entity.isConfirmed)"
/>
<VnLv :label="t('order.field.salesPersonFk')">
@ -105,9 +105,9 @@ const total = ref(null);
</span>
</template>
</VnLv>
<VnLv :label="t('order.summary.landed')" :value="toDate(entity?.landed)" />
<VnLv :label="t('order.field.agency')" :value="entity?.agencyMode?.name" />
<VnLv :label="t('order.summary.alias')" :value="entity?.address?.nickname" />
<VnLv :label="t('globals.landed')" :value="toDate(entity?.landed)" />
<VnLv :label="t('globals.agency')" :value="entity?.agencyMode?.name" />
<VnLv :label="t('globals.alias')" :value="entity?.address?.nickname" />
<VnLv
:label="t('order.summary.items')"
:value="(entity?.rows?.length || DEFAULT_ITEMS).toString()"

View File

@ -30,7 +30,7 @@ const descriptorData = useArrayData('orderData');
const detailsColumns = ref([
{
name: 'item',
label: t('order.summary.item'),
label: t('globals.item'),
field: (row) => row?.item?.id,
sortable: true,
},
@ -41,12 +41,12 @@ const detailsColumns = ref([
},
{
name: 'quantity',
label: t('order.summary.quantity'),
label: t('globals.quantity'),
field: (row) => row?.quantity,
},
{
name: 'price',
label: t('order.summary.price'),
label: t('globals.price'),
field: (row) => toCurrency(row?.price),
},
{
@ -98,7 +98,7 @@ async function handleConfirm() {
:text="t('globals.pageTitles.basicData')"
/>
<VnLv label="ID" :value="entity.id" />
<VnLv :label="t('order.summary.nickname')" dash>
<VnLv :label="t('globals.alias')" dash>
<template #value>
<span class="link">
{{ dashIfEmpty(entity?.address?.nickname) }}
@ -107,11 +107,11 @@ async function handleConfirm() {
</template>
</VnLv>
<VnLv
:label="t('order.summary.company')"
:label="t('globals.company')"
:value="entity?.address?.companyFk"
/>
<VnLv
:label="t('order.summary.confirmed')"
:label="t('globals.confirmed')"
:value="Boolean(entity?.isConfirmed)"
/>
</QCard>
@ -125,14 +125,14 @@ async function handleConfirm() {
:value="toDateHourMinSec(entity?.created)"
/>
<VnLv
:label="t('order.summary.confirmed')"
:label="t('globals.confirmed')"
:value="toDateHourMinSec(entity?.confirmed)"
/>
<VnLv
:label="t('order.summary.landed')"
:label="t('globals.landed')"
:value="toDateHourMinSec(entity?.landed)"
/>
<VnLv :label="t('order.summary.phone')">
<VnLv :label="t('globals.phone')">
<template #value>
{{ dashIfEmpty(entity?.address?.phone) }}
<a
@ -164,7 +164,7 @@ async function handleConfirm() {
<VnTitle :text="t('order.summary.total')" />
<VnLv>
<template #label>
<span class="text-h6">{{ t('order.summary.subtotal') }}</span>
<span class="text-h6">{{ t('globals.subtotal') }}</span>
</template>
<template #value>
<span class="text-h6">{{
@ -174,7 +174,7 @@ async function handleConfirm() {
</VnLv>
<VnLv>
<template #label>
<span class="text-h6">{{ t('order.summary.vat') }}</span>
<span class="text-h6">{{ t('globals.vat') }}</span>
</template>
<template #value>
<span class="text-h6">{{ toCurrency(entity?.VAT) }}</span>
@ -190,14 +190,14 @@ async function handleConfirm() {
</VnLv>
</QCard>
<QCard>
<VnTitle :text="t('order.summary.details')" />
<VnTitle :text="t('globals.details')" />
<QTable :columns="detailsColumns" :rows="entity?.rows" flat>
<template #header="props">
<QTr :props="props">
<QTh auto-width>{{ t('order.summary.item') }}</QTh>
<QTh auto-width>{{ t('globals.item') }}</QTh>
<QTh>{{ t('globals.description') }}</QTh>
<QTh auto-width>{{ t('order.summary.quantity') }}</QTh>
<QTh auto-width>{{ t('order.summary.price') }}</QTh>
<QTh auto-width>{{ t('globals.quantity') }}</QTh>
<QTh auto-width>{{ t('globals.price') }}</QTh>
<QTh auto-width>{{ t('order.summary.amount') }}</QTh>
</QTr>
</template>

View File

@ -53,9 +53,9 @@ const setData = (entity) => (data.value = useCardDescription(entity.code, entity
@on-fetch="setData"
>
<template #body="{ entity }">
<VnLv :label="t('shelving.summary.code')" :value="entity.code" />
<VnLv :label="t('shelving.summary.parking')" :value="entity.parking?.code" />
<VnLv v-if="entity.worker" :label="t('shelving.summary.worker')">
<VnLv :label="t('globals.code')" :value="entity.code" />
<VnLv :label="t('shelving.list.parking')" :value="entity.parking?.code" />
<VnLv v-if="entity.worker" :label="t('globals.worker')">
<template #value>
<VnUserLink
:name="entity.worker?.user?.nickname"

View File

@ -58,7 +58,7 @@ const onSave = (shelving, newShelving) => {
<VnRow>
<VnInput
v-model="data.code"
:label="t('shelving.basicData.code')"
:label="t('globals.code')"
:rules="validate('Shelving.code')"
/>
<VnSelect
@ -68,7 +68,7 @@ const onSave = (shelving, newShelving) => {
option-label="code"
:filter-options="['id', 'code']"
:fields="['id', 'code']"
:label="t('shelving.basicData.parking')"
:label="t('shelving.list.parking')"
:rules="validate('Shelving.parkingFk')"
/>
</VnRow>
@ -76,12 +76,12 @@ const onSave = (shelving, newShelving) => {
<VnInput
v-model="data.priority"
type="number"
:label="t('shelving.basicData.priority')"
:label="t('shelving.list.priority')"
:rules="validate('Shelving.priority')"
/>
<QCheckbox
v-model="data.isRecyclable"
:label="t('shelving.basicData.recyclable')"
:label="t('shelving.summary.recyclable')"
:rules="validate('Shelving.isRecyclable')"
/>
</VnRow>

View File

@ -54,16 +54,13 @@ const filter = {
{{ t('globals.pageTitles.basicData') }}
<QIcon name="open_in_new" />
</RouterLink>
<VnLv :label="t('shelving.summary.code')" :value="entity.code" />
<VnLv :label="t('globals.code')" :value="entity.code" />
<VnLv
:label="t('shelving.summary.parking')"
:label="t('shelving.list.parking')"
:value="entity.parking?.code"
/>
<VnLv
:label="t('shelving.summary.priority')"
:value="entity.priority"
/>
<VnLv v-if="entity.worker" :label="t('shelving.summary.worker')">
<VnLv :label="t('shelving.list.priority')" :value="entity.priority" />
<VnLv v-if="entity.worker" :label="t('globals.worker')">
<template #value>
<VnUserLink
:name="entity.worker?.user?.nickname"

View File

@ -69,16 +69,13 @@ const redirectToUpdateView = (addressData) => {
@click="redirectToUpdateView(row)"
>
<template #list-items>
<VnLv :label="t('globals.street')" :value="row.street" />
<VnLv
:label="t('supplier.addresses.street')"
:value="row.street"
/>
<VnLv
:label="t('supplier.addresses.postcode')"
:label="t('globals.postcode')"
:value="`${row.postalCode} - ${row.city}, ${row.province.name}`"
/>
<VnLv
:label="t('supplier.addresses.phone')"
:label="t('globals.phone')"
:value="`${row.phone}, ${row.mobile}`"
/>
</template>

View File

@ -72,14 +72,8 @@ function handleLocation(data, location) {
>
<template #form="{ data, validate }">
<VnRow>
<VnInput
v-model="data.nickname"
:label="t('supplier.addresses.name')"
/>
<VnInput
v-model="data.street"
:label="t('supplier.addresses.street')"
/>
<VnInput v-model="data.nickname" :label="t('globals.name')" />
<VnInput v-model="data.street" :label="t('globals.street')" />
</VnRow>
<VnRow>
<VnLocation
@ -101,14 +95,8 @@ function handleLocation(data, location) {
</VnLocation>
</VnRow>
<VnRow>
<VnInput
v-model="data.phone"
:label="t('supplier.addresses.phone')"
/>
<VnInput
v-model="data.mobile"
:label="t('supplier.addresses.mobile')"
/>
<VnInput v-model="data.phone" :label="t('globals.phone')" />
<VnInput v-model="data.mobile" :label="t('globals.mobile')" />
</VnRow>
</template>
</FormModel>

View File

@ -26,7 +26,7 @@ const companySizes = [
<VnRow>
<VnInput
v-model="data.nickname"
:label="t('supplier.basicData.alias')"
:label="t('globals.alias')"
:rules="validate('supplier.nickname')"
clearable
/>

View File

@ -58,7 +58,7 @@ const formatPayDems = (data) => {
</VnRow>
<VnRow>
<QInput
:label="t('supplier.billingData.payDay')"
:label="t('supplier.summary.payDay')"
type="number"
v-model="data.payDay"
/>

View File

@ -190,13 +190,11 @@ onMounted(async () => {
<span>{{ row.id }}</span>
</QTd>
<QTd no-hover>
<span class="label">{{ t('supplier.consumption.date') }}: </span>
<span class="label">{{ t('globals.date') }}: </span>
<span>{{ toDate(row.shipped) }}</span></QTd
>
<QTd colspan="6" no-hover>
<span class="label"
>{{ t('supplier.consumption.reference') }}:
</span>
<span class="label">{{ t('globals.reference') }}: </span>
<span>{{ row.invoiceNumber }}</span>
</QTd>
</QTr>

View File

@ -44,21 +44,12 @@ const insertRow = () => {
<VnRow class="row q-gutter-md">
<VnInput
input-name-focusable
:label="t('supplier.contacts.name')"
:label="t('globals.name')"
v-model="row.name"
/>
<VnInput
:label="t('supplier.contacts.phone')"
v-model="row.phone"
/>
<VnInput
:label="t('supplier.contacts.mobile')"
v-model="row.mobile"
/>
<VnInput
:label="t('supplier.contacts.email')"
v-model="row.email"
/>
<VnInput :label="t('globals.phone')" v-model="row.phone" />
<VnInput :label="t('globals.mobile')" v-model="row.mobile" />
<VnInput :label="t('globals.params.email')" v-model="row.email" />
</VnRow>
<VnRow class="row q-gutter-md">
<QInput

View File

@ -116,7 +116,7 @@ const getEntryQueryParams = (supplier) => {
<VnLv :label="t('supplier.summary.taxNumber')" :value="entity.nif" />
<VnLv label="Alias" :value="entity.nickname" />
<VnLv
:label="t('supplier.summary.payMethod')"
:label="t('supplier.list.payMethod')"
:value="entity?.payMethod?.name"
/>
<VnLv

View File

@ -147,16 +147,12 @@ function handleLocation(data, location) {
/>
<VnInput
v-model="data.healthRegister"
:label="t('supplier.fiscalData.healthRegister')"
:label="t('supplier.summary.healthRegister')"
clearable
/>
</VnRow>
<VnRow>
<VnInput
v-model="data.street"
:label="t('supplier.fiscalData.street')"
clearable
/>
<VnInput v-model="data.street" :label="t('globals.street')" clearable />
</VnRow>
<VnRow>
<VnLocation

View File

@ -60,7 +60,7 @@ const getUrl = (section) => `#/supplier/${entityId.value}/${section}`;
/>
</template>
</VnLv>
<VnLv :label="t('supplier.summary.notes')" class="q-mb-xs">
<VnLv :label="t('globals.notes')" class="q-mb-xs">
<template #value>
<span> {{ dashIfEmpty(supplier.note) }} </span>
</template>
@ -98,7 +98,7 @@ const getUrl = (section) => `#/supplier/${entityId.value}/${section}`;
:text="t('supplier.summary.billingData')"
/>
<VnLv
:label="t('supplier.summary.payMethod')"
:label="t('supplier.list.payMethod')"
:value="supplier.payMethod?.name"
dash
/>
@ -147,19 +147,16 @@ const getUrl = (section) => `#/supplier/${entityId.value}/${section}`;
/>
<VnLv :label="t('supplier.summary.socialName')" :value="supplier.name" />
<VnLv :label="t('supplier.summary.taxNumber')" :value="supplier.nif" />
<VnLv :label="t('supplier.summary.street')" :value="supplier.street" />
<VnLv :label="t('globals.street')" :value="supplier.street" />
<VnLv :label="t('supplier.summary.city')" :value="supplier.city" />
<VnLv
:label="t('supplier.summary.postCode')"
:value="supplier.postCode"
/>
<VnLv :label="t('globals.postCode')" :value="supplier.postCode" />
<VnLv
:label="t('supplier.summary.province')"
:value="supplier.province?.name"
dash
/>
<VnLv
:label="t('supplier.summary.country')"
:label="t('globals.country')"
:value="supplier.country?.name"
dash
/>

View File

@ -12,13 +12,13 @@ const tableRef = ref();
const columns = computed(() => [
{
align: 'left',
label: t('supplier.list.tableVisibleColumns.id'),
label: t('globals.id'),
name: 'id',
isTitle: true,
},
{
align: 'left',
label: t('supplier.list.tableVisibleColumns.name'),
label: t('globals.name'),
name: 'socialName',
create: true,
columnFilter: {
@ -35,7 +35,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('supplier.list.tableVisibleColumns.nickname'),
label: t('globals.alias'),
name: 'alias',
columnFilter: {
name: 'search',
@ -51,7 +51,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('supplier.list.tableVisibleColumns.payMethod'),
label: t('supplier.list.payMethod'),
name: 'payMethod',
columnFilter: {
inWhere: true,
@ -70,7 +70,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('supplier.list.tableVisibleColumns.payDay'),
label: t('supplier.summary.payDay'),
name: 'payDay',
columnFilter: {
inWhere: true,
@ -79,7 +79,7 @@ const columns = computed(() => [
},
{
align: 'left',
label: t('supplier.list.tableVisibleColumns.country'),
label: t('globals.country'),
name: 'country',
columnFilter: {
component: 'select',

View File

@ -299,7 +299,7 @@ async function getZone(options) {
<QForm>
<VnRow>
<VnSelect
:label="t('basicData.client')"
:label="t('ticketList.client')"
v-model="clientId"
option-value="id"
option-label="name"
@ -322,7 +322,7 @@ async function getZone(options) {
</template>
</VnSelect>
<VnSelect
:label="t('basicData.warehouse')"
:label="t('ticketList.warehouse')"
v-model="warehouseId"
option-value="id"
option-label="name"
@ -330,7 +330,7 @@ async function getZone(options) {
hide-selected
map-options
:required="true"
:rules="validate('basicData.warehouse')"
:rules="validate('ticketList.warehouse')"
/>
</VnRow>
<VnRow>
@ -396,7 +396,7 @@ async function getZone(options) {
</VnRow>
<VnRow class="row q-gutter-md q-mb-md no-wrap">
<VnSelect
:label="t('basicData.company')"
:label="t('ticketList.company')"
v-model="formData.companyFk"
option-value="id"
option-label="code"
@ -404,7 +404,7 @@ async function getZone(options) {
hide-selected
map-options
:required="true"
:rules="validate('basicData.company')"
:rules="validate('ticketList.company')"
/>
<VnSelect
:label="t('basicData.agency')"
@ -419,7 +419,7 @@ async function getZone(options) {
/>
<VnSelect
ref="zoneSelectRef"
:label="t('basicData.zone')"
:label="t('ticketList.zone')"
v-model="zoneId"
option-value="id"
option-label="name"
@ -427,7 +427,7 @@ async function getZone(options) {
:fields="['id', 'name']"
sort-by="id"
:where="zoneWhere"
:rules="validate('basicData.zone')"
:rules="validate('ticketList.zone')"
:required="true"
:disable="!canEditZone"
@update:options="getZone"
@ -447,10 +447,10 @@ async function getZone(options) {
</VnRow>
<VnRow>
<VnInputDate
:label="t('basicData.shipped')"
:label="t('ticketList.shipped')"
v-model="formData.shipped"
:required="true"
:rules="validate('basicData.shipped')"
:rules="validate('ticketList.shipped')"
/>
<VnInputTime
:label="t('basicData.shippedHour')"

View File

@ -60,7 +60,7 @@ const createTicket = async () => {
<template #form-inputs="{ data }">
<VnRow>
<VnInputDate
:label="t('expedition.landed')"
:label="t('basicData.landed')"
v-model="data.landed"
:model-value="date"
/>

View File

@ -136,13 +136,13 @@ async function getVideoList(expeditionId, timed) {
<QItemLabel class="text-h6">#{{ expedition.id }}</QItemLabel>
</QItemSection>
<QItemSection>
<QItemLabel caption>{{ t('ticket.boxing.created') }}</QItemLabel>
<QItemLabel caption>{{ t('globals.created') }}</QItemLabel>
<QItemLabel>
{{
date.formatDate(expedition.created, 'YYYY-MM-DD HH:mm:ss')
}}
</QItemLabel>
<QItemLabel caption>{{ t('ticket.boxing.item') }}</QItemLabel>
<QItemLabel caption>{{ t('globals.item') }}</QItemLabel>
<QItemLabel>{{ expedition.packagingItemFk }}</QItemLabel>
<QItemLabel caption>{{ t('ticket.boxing.worker') }}</QItemLabel>
<QItemLabel>{{ expedition.userName }}</QItemLabel>

View File

@ -72,7 +72,7 @@ const salesFilter = computed(() => ({
const columns = computed(() => [
{
label: t('ticketComponents.item'),
label: t('basicData.item'),
name: 'item',
align: 'left',
},
@ -92,13 +92,13 @@ const columns = computed(() => [
columnFilter: false,
},
{
label: t('ticketComponents.description'),
label: t('basicData.description'),
name: 'description',
align: 'left',
columnClass: 'expand',
},
{
label: t('ticketComponents.quantity'),
label: t('basicData.quantity'),
name: 'quantity',
field: 'quantity',
align: 'left',
@ -116,12 +116,12 @@ const columns = computed(() => [
align: 'left',
},
{
label: t('ticketComponents.import'),
label: t('advanceTickets.import'),
name: 'import',
align: 'left',
},
{
label: t('ticketComponents.total'),
label: t('basicData.total'),
name: 'total',
align: 'left',
},
@ -184,7 +184,7 @@ onUnmounted(() => (stateStore.rightDrawer = false));
<QCard class="q-pa-sm color-vn-text" bordered flat style="border-color: black">
<QCardSection horizontal>
<span class="text-weight-bold text-subtitle1 text-center full-width">
{{ t('ticketComponents.total') }}
{{ t('basicData.total') }}
</span>
</QCardSection>
<QCardSection horizontal>
@ -226,9 +226,7 @@ onUnmounted(() => (stateStore.rightDrawer = false));
</span>
</QCardSection>
<QCardSection horizontal>
<span class="q-mr-xs color-vn-label">
{{ t('ticketComponents.price') }}:
</span>
<span class="q-mr-xs color-vn-label"> {{ t('basicData.price') }}: </span>
<span>{{ toCurrency(ticketData?.zonePrice, 'EUR', 2) }}</span>
</QCardSection>
<QCardSection horizontal>
@ -238,18 +236,14 @@ onUnmounted(() => (stateStore.rightDrawer = false));
<span>{{ toCurrency(ticketData?.zoneBonus, 'EUR', 2) }}</span>
</QCardSection>
<QCardSection horizontal>
<span class="q-mr-xs color-vn-label">
{{ t('ticketComponents.zone') }}:
</span>
<span class="q-mr-xs color-vn-label"> {{ t('ticketList.zone') }}: </span>
<span class="link">
{{ dashIfEmpty(ticketData?.zone?.name) }}
<ZoneDescriptorProxy :id="ticketData?.zone?.id" />
</span>
</QCardSection>
<QCardSection v-if="ticketData?.zone?.isVolumetric" horizontal>
<span class="q-mr-xs color-vn-label">
{{ t('ticketComponents.volume') }}:
</span>
<span class="q-mr-xs color-vn-label"> {{ t('volume.volume') }}: </span>
<span>{{ ticketVolume }}</span>
</QCardSection>
<QCardSection horizontal>

View File

@ -32,10 +32,7 @@ const attendersOptions = ref([]);
>
<template #form-inputs="{ data }">
<VnRow>
<VnInput
v-model="data.description"
:label="t('purchaseRequest.description')"
/>
<VnInput v-model="data.description" :label="t('basicData.description')" />
<VnSelect
:label="t('purchaseRequest.atender')"
v-model="data.attenderFk"
@ -48,13 +45,13 @@ const attendersOptions = ref([]);
<VnRow>
<VnInput
v-model="data.quantity"
:label="t('purchaseRequest.quantity')"
:label="t('basicData.quantity')"
type="number"
min="1"
/>
<VnInput
v-model="data.price"
:label="t('purchaseRequest.price')"
:label="t('basicData.price')"
type="number"
step="0.01"
min="0"

View File

@ -34,7 +34,7 @@ onMounted(async () => {
<VnRow>
<VnInput
ref="nameInputRef"
:label="t('service.description')"
:label="t('basicData.description')"
v-model="data.name"
:required="true"
/>

View File

@ -39,7 +39,7 @@ const onStateFkChange = (formData) => (formData.userFk = user.value.id);
<VnRow>
<VnSelect
v-model="data.stateFk"
:label="t('tracking.state')"
:label="t('ticketList.state')"
:options="statesOptions"
@update:model-value="onStateFkChange(data)"
hide-selected
@ -47,7 +47,7 @@ const onStateFkChange = (formData) => (formData.userFk = user.value.id);
option-value="id"
/>
<VnSelect
:label="t('tracking.worker')"
:label="t('expedition.worker')"
v-model="data.userFk"
url="Workers/search"
fields=" ['id', 'name']"

View File

@ -125,7 +125,7 @@ function ticketFilter(ticket) {
</span>
</template>
</VnLv>
<VnLv v-if="entity.ticketState" :label="t('ticket.card.state')">
<VnLv v-if="entity.ticketState" :label="t('globals.state')">
<template #value>
<QBadge
text-color="black"
@ -135,7 +135,7 @@ function ticketFilter(ticket) {
</QBadge>
</template>
</VnLv>
<VnLv :label="t('ticket.summary.salesPerson')">
<VnLv :label="t('globals.salesPerson')">
<template #value>
<VnUserLink
:name="entity.client?.salesPersonUser?.name"
@ -144,16 +144,16 @@ function ticketFilter(ticket) {
</template>
</VnLv>
<VnLv
:label="t('ticket.card.shipped')"
:label="t('globals.shipped')"
:value="toDateTimeFormat(entity.shipped)"
/>
<VnLv
v-if="entity.agencyMode"
:label="t('ticket.card.agency')"
:label="t('globals.agency')"
:value="entity.agencyMode.name"
/>
<VnLv :label="t('ticket.card.warehouse')" :value="entity.warehouse?.name" />
<VnLv :label="t('ticket.card.alias')" :value="entity.nickname" />
<VnLv :label="t('globals.warehouse')" :value="entity.warehouse?.name" />
<VnLv :label="t('globals.alias')" :value="entity.nickname" />
</template>
<template #icons="{ entity }">
<QCardActions class="q-gutter-x-xs">

View File

@ -57,7 +57,7 @@ const columns = computed(() => [
},
},
{
label: t('expedition.item'),
label: t('basicData.item'),
name: 'packagingItemFk',
align: 'left',
cardVisible: true,
@ -107,7 +107,7 @@ const columns = computed(() => [
format: (row) => toDateTimeFormat(row.created),
},
{
label: t('expedition.state'),
label: t('ticketList.state'),
name: 'state',
align: 'left',
cardVisible: true,
@ -129,7 +129,7 @@ const columns = computed(() => [
const logTableColumns = computed(() => [
{
label: t('expedition.state'),
label: t('ticketList.state'),
name: 'state',
field: 'state',
align: 'center',

View File

@ -88,7 +88,7 @@ async function handleSave() {
:disable="!!row.id"
/>
<VnInput
:label="t('ticketNotes.description')"
:label="t('basicData.description')"
v-model="row.description"
class="col"
@keyup.enter="handleSave"

View File

@ -93,7 +93,7 @@ watch(
</template>
</VnSelect>
<VnInput
:label="t('package.quantity')"
:label="t('basicData.quantity')"
v-model.number="row.quantity"
class="col"
type="number"

Some files were not shown because too many files have changed in this diff Show More