 (Half Day),
 and year: ,
""" does not exists","""No existeix"
%  Delivered,
% Amount Billed,% Import facturat
% Billed,% Facturat
% Completed,
% Delivered,% Lliurat
% Installed,% Instal·lat
% Milestones Achieved,% Fites assolides
% Milestones Completed,% Assoliments aconseguits
% Received,% Rebut
% Tasks Completed,
% of materials billed against this Purchase Order.,% de materials facturats d'aquesta ordre de compra.
% of materials billed against this Sales Order,% De materials facturats d'aquesta Ordre de Venda
% of materials delivered against this Delivery Note,% Dels materials lliurats d'aquesta nota de lliurament
% of materials delivered against this Sales Order,
% of materials ordered against this Material Request,% De materials demanats per aquesta sol·licitud de materials
% of materials received against this Purchase Order,% Dels materials rebuts d'aquesta ordre de compra
'Actual Start Date' can not be greater than 'Actual End Date',
'Based On' and 'Group By' can not be same,
'Days Since Last Order' must be greater than or equal to zero,
'Entries' cannot be empty,
'Expected Start Date' can not be greater than 'Expected End Date',
'From Date' is required,
'From Date' must be after 'To Date',
'From Time' cannot be later than 'To Time',
'Has Serial No' can not be 'Yes' for non-stock item,
'Notification Email Addresses' not specified for recurring %s,
'Profit and Loss' type account {0} not allowed in Opening Entry,
'To Case No.' cannot be less than 'From Case No.',
'To Date' is required,
'Update Stock' for Sales Invoice {0} must be set,
* Will be calculated in the transaction.,
"**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.To distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**",
**Currency** Master,** Moneda ** MestreDivisa
**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,
1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent,
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1. Utilitza aquesta opció per mantenir el codi de l'article del client i incloure'l en les cerques en base al seu codi
90-Above,
"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group"">Add / Edit</a>"
"<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group"">Add / Edit</a>"
"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory"">Add / Edit</a>"
"<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>",
A Customer Group exists with same name please change the Customer name or rename the Customer Group,"Hi ha un grup de clients amb el mateix nom, si us plau canvia el nom del client o el nom del Grup de Clients"
A Customer exists with same name,
A Lead with this email id should exist,Hauria d'haver-hi un client potencial amb aquest correu electrònic
A Product or Service,Un producte o servei
"A Product or a Service that is bought, sold or kept in stock.",
A Supplier exists with same name,
A condition for a Shipping Rule,
A logical Warehouse against which stock entries are made.,
A symbol for this currency. For e.g. $,
A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,
"A user with ""Expense Approver"" role","Un usuari amb rol de ""Aprovador de despeses"""
AMC Expiry Date,
Abbr,Abbr
Abbreviation cannot have more than 5 characters,
Above Value,
Absent,
Acceptance Criteria,Criteris d'acceptació
Accepted,Acceptat
Accepted + Rejected Qty must be equal to Received quantity for Item {0},
Accepted Quantity,Quantitat Acceptada
Accepted Warehouse,
Account,Compte
Account Balance,Saldo del compte
Account Created: {0},Compte Creat: {0}
Account Details,Detalls del compte
Account Group,
Account Head,
Account Name,Nom del Compte
Account Type,Tipus de compte
"Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","El saldo del compte ja està en crèdit, no tens permisos per establir-lo com 'El balanç ha de ser ""com ""Dèbit """
"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'",
Account for the warehouse (Perpetual Inventory) will be created under this Account.,Es crearà un Compte per al magatzem (Inventari Permanent) en aquest Compte
Account head {0} created,
Account must be a balance sheet account,
Account with child nodes cannot be converted to ledger,
Account with existing transaction can not be converted to group.,
Account with existing transaction can not be deleted,Un compte amb transaccions no es pot eliminar
Account with existing transaction cannot be converted to ledger,El Compte de la transacció existent no es pot convertir a llibre major
Account {0} cannot be a Group,El Compte {0} no pot ser un grup
Account {0} does not belong to Company {1},El compte {0} no pertany a l'empresa {1}
Account {0} does not belong to company: {1},
Account {0} does not exist,El compte {0} no existeix
Account {0} does not exists,
Account {0} has been entered more than once for fiscal year {1},Compte {0} s'ha introduït més d'una vegada per a l'any fiscal {1}
Account {0} is frozen,El compte {0} està bloquejat
Account {0} is inactive,
Account {0} is not valid,EL compte {0} no és vàlid
Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,El compte {0} ha de ser del tipus 'd'actius fixos' perquè l'article {1} és un element d'actiu
Account {0}: Parent account {1} can not be a ledger,Compte {0}: compte pare {1} no pot ser un llibre de comptabilitat
Account {0}: Parent account {1} does not belong to company: {2},Compte {0}: el compte Pare {1} no pertany a la companyia: {2}
Account {0}: Parent account {1} does not exist,Compte {0}: el compte superior {1} no existeix
Account {0}: You can not assign itself as parent account,
Account: {0} can only be updated via Stock Transactions,El compte: {0} només pot ser actualitzat a través de transaccions d'estoc
Accountant,Accountant
Accounting,Comptabilitat
"Accounting Entries can be made against leaf nodes, called","Accounting Entries can be made against leaf nodes, called"
Accounting Entry for Stock,
"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",
Accounting journal entries.,Entrades de diari de Comptabilitat.
Accounts,Comptes
Accounts Browser,
Accounts Frozen Upto,Comptes bloquejats fins a
Accounts Manager,Gerent de Comptes
Accounts Payable,
Accounts Receivable,Comptes Per Cobrar
Accounts Settings,Ajustaments de comptabilitat
Accounts User,
Achieved,
Active,
Active: Will extract emails from ,
Activity,
Activity Log,Registre d'activitat
Activity Log:,Registre d'activitat:
Activity Type,
Actual,
Actual Budget,Pressupost Actual
Actual Completion Date,
Actual Date,Data actual
Actual End Date,Data de finalització actual
Actual Invoice Date,Data de la factura
Actual Posting Date,Data de comptabilització actual
Actual Qty,
Actual Qty (at source/target),
Actual Qty After Transaction,
Actual Qty is mandatory,La quantitat actual és obligatòria
Actual Qty: Quantity available in the warehouse.,
Actual Quantity,Quantitat real
Actual Start Date,Data d'inici real
Add,Afegir
Add / Edit Prices,Afegeix / Edita Preus
Add / Edit Taxes and Charges,Afegeix / Edita les taxes i càrrecs
Add Child,
Add Serial No,Afegir Número de sèrie
Add Taxes,Afegir Impostos
Add or Deduct,Afegir o Deduir
Add rows to set annual budgets on Accounts.,Afegir files per establir els pressupostos anuals de Comptes.
Add to Cart,
Add to calendar on this date,Afegir al calendari en aquesta data
Add/Remove Recipients,
Address,Adreça
Address & Contact,
Address & Contacts,
Address Desc,Descripció de direcció
Address Details,Detall de l'adreça
Address HTML,Adreça HTML
Address Line 1,Adreça Línia 1
Address Line 2,Adreça Línia 2
Address Template,
Address Title,
Address Title is mandatory.,Títol d'adreça obligatori.
Address Type,Tipus d'adreça
Address master.,
Administrative Expenses,
Administrative Officer,Oficial Administratiu
Administrator,Administrador
Advance Amount,
Advance Paid,Bestreta pagada
Advance amount,
Advance paid against {0} {1} cannot be greater \					than Grand Total {2},
Advances,Advances
Advertisement,Anunci
Advertising,
Aerospace,
After Sale Installations,Instal·lacions després de venda
Against,Contra
Against Account,Contra Compte
Against Docname,
Against Doctype,
Against Document Detail No,Contra Detall del document núm
Against Document No,
Against Expense Account,Contra el Compte de Despeses
Against Income Account,
Against Invoice,Contra Factura
Against Invoice Posting Date,Against Invoice Posting Date
Against Journal Voucher,Contra Assentament de Diari
Against Journal Voucher {0} does not have any unmatched {1} entry,
Against Journal Voucher {0} is already adjusted against some other voucher,
Against Purchase Invoice,
Against Purchase Order,Per l'Ordre de Compra
Against Sales Invoice,Contra la factura de venda
Against Sales Order,Contra l'Ordre de Venda
Against Supplier Invoice {0} dated {1},Contra Proveïdor Factura {0} {1} datat
Against Voucher,Contra justificant
Against Voucher No,Contra el comprovant número
Against Voucher Type,Contra el val tipus
"Against Voucher Type must be one of Purchase Order, Purchase Invoice or Journal Voucher","Against Voucher Type must be one of Purchase Order, Purchase Invoice or Journal Voucher"
"Against Voucher Type must be one of Sales Order, Sales Invoice or Journal Voucher",
Age,
Ageing Based On,Envelliment basat en
Ageing Date is mandatory for opening entry,La data d'envelliment és obligatòria per a l'entrada d'obertura
Ageing date is mandatory for opening entry,La data d'envelliment és obligatòria per a l'entrada d'obertura
Agent,Agent
"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials",
Aging Date,Data Envelliment
Aging Date is mandatory for opening entry,
Agriculture,Agricultura
Airline,Aerolínia
All,Tots
All Addresses.,
All Contact,Tots els contactes
All Contacts.,
All Customer Contact,Contacte tot client
All Customer Groups,
All Day,Tot el dia
All Employee (Active),
All Item Groups,Tots els grups d'articles
All Lead (Open),Tots els clients potencials (Obert)
All Products or Services.,Tots els Productes o Serveis.
All Sales Partner Contact,
All Sales Person,Tot el personal de vendes
All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,
All Supplier Contact,Contacte de Tot el Proveïdor
All Supplier Types,Tots els tipus de proveïdors
All Territories,Tots els territoris
"All export related fields like currency, conversion rate, export total, export grand total etc are available in Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.","Tots els camps relacionats amb l'exportació, com la moneda, taxa de conversió, el total de les exportacions, els totals de les exportacions etc estan disponibles a notes de lliurament, TPV, ofertes, factura de venda, ordre de venda, etc."
"All import related fields like currency, conversion rate, import total, import grand total etc are available in Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.","Tots els camps relacionats amb la importació com la divisa, taxa de conversió, el total de l'import, els imports acumulats, etc estan disponibles en el rebut de compra, oferta de compra, factura de compra, ordres de compra, etc."
All items have already been invoiced,S'han facturat tots els articles
All these items have already been invoiced,Tots aquests elements ja s'han facturat
Allocate,Assignar
Allocate leaves for a period.,Assignar absències per un període.
Allocate leaves for the year.,
Allocated,Situat
Allocated Amount,
Allocated Budget,Pressupost assignat
Allocated amount,Quantitat assignada
Allocated amount can not be negative,Suma assignat no pot ser negatiu
Allocated amount can not greater than unadusted amount,
Allow Bill of Materials,
Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item,Permetre llista de materials ha de ser 'Sí'. Perquè hi ha una o vàries llistes de materials actives per aquest article
Allow Children,Permetre descendents a l'arbre
Allow Dropbox Access,Allow Dropbox Access
Allow Google Drive Access,Permetre l'accés de Google Drive
Allow Negative Balance,Permetre balanç negatiu
Allow Negative Stock,Permetre existències negatives
Allow Production Order,
Allow User,Permetre a l'usuari
Allow Users,
Allow the following users to approve Leave Applications for block days.,
Allow user to edit Price List Rate in transactions,Permetre a l'usuari editar la Llista de Preus de Tarifa en transaccions
Allowance Percent,
Allowance for over-{0} crossed for Item {1},Permissió de superació {0} superat per l'article {1}
Allowance for over-{0} crossed for Item {1}.,
Allowed Role to Edit Entries Before Frozen Date,
Amended From,Modificada Des de
Amount,
Amount (Company Currency),Import (Companyia moneda)
Amount Paid,Quantitat pagada
Amount to Bill,
Amounts not reflected in bank,Les quantitats no es reflecteixen en el banc
Amounts not reflected in system,
Amt,
An Customer exists with same name,
"An Item Group exists with same name, please change the item name or rename the item group","Hi ha un grup d'articles amb el mateix nom, si us plau, canvieu el nom de l'article o del grup d'articles"
"An item exists with same name ({0}), please change the item group name or rename the item",
Analyst,Analista
Annual,Anual
Another Period Closing Entry {0} has been made after {1},
Another Salary Structure {0} is active for employee {1}. Please make its status 'Inactive' to proceed.,"Una altra estructura salarial {0} està activa per l'empleat {1}. Si us plau, passeu el seu estat a 'inactiu' per seguir."
"Any other comments, noteworthy effort that should go in the records.",
Apparel & Accessories,
Applicability,
Applicable Charges,Càrrecs aplicables
Applicable For,Aplicable per
Applicable Holiday List,Llista de vacances aplicable
Applicable Territory,
Applicable To (Designation),Aplicable a (Designació)
Applicable To (Employee),Aplicable a (Empleat)
Applicable To (Role),Aplicable a (Rol)
Applicable To (User),Aplicable a (Usuari)
Applicant Name,Nom del sol·licitant
Applicant for a Job,Sol·licitant d'ocupació
Applicant for a Job.,
Application of Funds (Assets),
Applications for leave.,
Applies to Company,S'aplica a l'empresa
Apply / Approve Leaves,
Apply On,Aplicar a
Appraisal,Avaluació
Appraisal Goal,Avaluació Meta
Appraisal Goals,Valoració d'Objectius
Appraisal Template,Plantilla d'Avaluació
Appraisal Template Goal,
Appraisal Template Title,Títol de plantilla d'avaluació
Appraisal {0} created for Employee {1} in the given date range,
Apprentice,
Approval Status,
Approval Status must be 'Approved' or 'Rejected',"Estat d'aprovació ha de ser ""Aprovat"" o ""Rebutjat"""
Approved,
Approver,
Approving Role,Aprovar Rol
Approving Role cannot be same as role the rule is Applicable To,El rol d'aprovador no pot ser el mateix que el rol al que la regla s'ha d'aplicar
Approving User,Usuari aprovador
Approving User cannot be same as user the rule is Applicable To,Approving User cannot be same as user the rule is Applicable To
Are you sure you want to STOP ,
Are you sure you want to UNSTOP ,
Arrear Amount,Arrear Amount
"As Production Order can be made for this item, it must be a stock item.",Per a poder fer aquest article Ordre de Producció cal designar-lo com a article d'estoc
As per Stock UOM,Segons Stock UDM
"As there are existing stock transactions for this item, you can not change the values of 'Has Serial No', 'Has Batch No', 'Is Stock Item' and 'Valuation Method'",
Asset,
Assistant,
Associate,
Atleast one of the Selling or Buying must be selected,Has de marcar compra o venda
Atleast one warehouse is mandatory,Almenys un magatzem és obligatori
Attach Image,
Attach Letterhead,Afegir capçalera de carta
Attach Logo,
Attach Your Picture,Adjunta la teva imatge
Attendance,Assistència
Attendance Date,
Attendance Details,
Attendance From Date,Assistència des de data
Attendance From Date and Attendance To Date is mandatory,Assistència Des de la data i Assistència a la data és obligatori
Attendance To Date,Assistència fins a la Data
Attendance can not be marked for future dates,No es poden entrar assistències per dates futures
Attendance for employee {0} is already marked,Assistència per a l'empleat {0} ja està marcat
Attendance record.,
Auditor,Auditor
Authorization Control,Control d'Autorització
Authorization Rule,
Auto Accounting For Stock Settings,
Auto Material Request,Sol·licitud de material automàtica
Auto-raise Material Request if quantity goes below re-order level in a warehouse,Puja automàticament la quantitat de material a demanar si la quantitat està per sota de nivell de re-ordre en un magatzem
Automatically compose message on submission of transactions.,Compondre automàticament el missatge en la presentació de les transaccions.
Automatically updated via Stock Entry of type Manufacture or Repack,
Automotive,Automòbil
Autoreply when a new mail is received,
Available,
Available Qty at Warehouse,
Available Stock for Packing Items,Estoc disponible per articles d'embalatge
"Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet","Disponible a la llista de materials, nota de lliurament, factura de compra, ordre de producció, ordres de compra, rebut de compra, factura de venda, ordres de venda, entrada d'estoc, fulla d'hores"
Average Age,
Average Commission Rate,Comissió de Tarifes mitjana
Average Discount,Descompte Mig
Avg Daily Outgoing,
Avg. Buying Rate,Quota de compra mitja
Awesome Products,
Awesome Services,
BOM Detail No,Detall del BOM No
BOM Explosion Item,Explosió de BOM d'article
BOM Item,Article BOM
BOM No,
BOM No. for a Finished Good Item,
BOM Operation,
BOM Operations,Operacions BOM
BOM Rate,BOM Rate
BOM Replace Tool,
BOM number is required for manufactured Item {0} in row {1},
BOM number not allowed for non-manufactured Item {0} in row {1},Número de BOM (llista de materials) no permès per l'article no-manufacturat {0} a la fila {1}
BOM recursion: {0} cannot be parent or child of {2},BOM recursiu: {0} no pot ser pare o fill de {2}
BOM replaced,
BOM {0} for Item {1} in row {2} is inactive or not submitted,
BOM {0} is not active or not submitted,
BOM {0} is not submitted or inactive BOM for Item {1},El BOM {0} no esta Presentat o està inactiu per l'article {1}
Backup Manager,
Backup Right Now,
Backups will be uploaded to,Les còpies de seguretat es pujaran a
Balance,
Balance Qty,Saldo Quantitat
Balance Sheet,Balanç
Balance Value,
Balance for Account {0} must always be {1},Balanç per compte {0} ha de ser sempre {1}
Balance must be,El balanç ha de ser
"Balances of Accounts of type ""Bank"" or ""Cash""",
Bank,Banc
Bank / Cash Account,
Bank A/C No.,Número de Compte Corrent
Bank Account,Compte Bancari
Bank Account No.,Compte Bancari No.
Bank Accounts,Comptes bancaris
Bank Clearance Summary,
Bank Draft,
Bank Name,Nom del banc
Bank Overdraft Account,Bank Overdraft Account
Bank Reconciliation,Conciliació bancària
Bank Reconciliation Detail,
Bank Reconciliation Statement,Declaració de Conciliació Bancària
Bank Voucher,
Bank/Cash Balance,Banc / Balanç de Caixa
Banking,Banca
Barcode,Codi de barres
Barcode {0} already used in Item {1},
Based On,Basat en
Basic,Bàsic
Basic Info,
Basic Information,Informació bàsica
Basic Rate,Tarifa Bàsica
Basic Rate (Company Currency),Tarifa Bàsica (En la divisa de la companyia)
Batch,
Batch (lot) of an Item.,
Batch Finished Date,
Batch ID,Identificació de lots
Batch No,Lot número
Batch Started Date,
Batch Time Logs for Billing.,
Batch Time Logs for billing.,
Batch-Wise Balance History,Batch-Wise Balance History
Batched for Billing,Agrupat per a la Facturació
Better Prospects,
Bill Date,Data de la factura
Bill No,Factura Número
Bill of Material,Llista de materials (BOM)
Bill of Material to be considered for manufacturing,
Bill of Materials (BOM),Llista de materials (BOM)
Billable,
Billed,Facturat
Billed Amount,Quantitat facturada
Billed Amt,Quantitat facturada
Billing,
Billing (Sales Invoice),
Billing Address,
Billing Address Name,Nom de l'adressa de facturació
Billing Status,Estat de facturació
Bills raised by Suppliers.,
Bills raised to Customers.,Factures enviades als clients.
Bin,Paperera
Bio,Bio
Biotechnology,
Birthday,
Block Date,Bloquejar Data
Block Days,Bloc de Dies
Block Holidays on important days.,
Block leave applications by department.,Bloquejar sol·licituds d'absències per departament.
Blog Post,Post Blog
Blog Subscriber,
Blood Group,
Both Warehouse must belong to same Company,
Box,
Branch,Branca
Brand,Marca comercial
Brand Name,
Brand master.,
Brands,
Breakdown,Breakdown
Broadcasting,
Brokerage,
Budget,Pressupost
Budget Allocated,Pressupost assignat
Budget Detail,Detall del Pressupost
Budget Details,Detalls del Pressupost
Budget Distribution,Distribució del Pressupost
Budget Distribution Detail,
Budget Distribution Details,Budget Distribution Details
Budget Variance Report,
Budget cannot be set for Group Cost Centers,
Build Report,Redactar Informe
Bundle items at time of sale.,Articles agrupats en el moment de la venda.
Business Development Manager,
Buyer of Goods and Services.,Compradors de Productes i Serveis.
Buying,
Buying & Selling,
Buying Amount,
Buying Settings,
"Buying must be checked, if Applicable For is selected as {0}",
C-Form,C-Form
C-Form Applicable,C-Form Applicable
C-Form Invoice Detail,C-Form Invoice Detail
C-Form No,
C-Form records,
CENVAT Capital Goods,
CENVAT Edu Cess,
CENVAT SHE Cess,
CENVAT Service Tax,CENVAT Service Tax
CENVAT Service Tax Cess 1,
CENVAT Service Tax Cess 2,CENVAT Service Tax Cess 2
Calculate Based On,
Calculate Total Score,Calcular Puntuació total
Calendar Events,
Call,Truca
Calls,Trucades
Campaign,Campanya
Campaign Name,
Campaign Name is required,Cal un nom de Campanya
Campaign Naming By,Naming de Campanya Per
Campaign-.####,Campanya-.####
Can be approved by {0},Pot ser aprovat per {0}
"Can not filter based on Account, if grouped by Account",
"Can not filter based on Voucher No, if grouped by Voucher","Can not filter based on Voucher No, if grouped by Voucher"
Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',
Cancel Material Visit {0} before cancelling this Customer Issue,Cancel·la la visita de material {0} abans de cancel·lar aquesta incidència de client
Cancel Material Visits {0} before cancelling this Maintenance Visit,Cancel·la Visites Materials {0} abans de cancel·lar aquesta visita de manteniment
Cancelled,
Cancelling this Stock Reconciliation will nullify its effect.,Cancel·lant aquesta reconciliació d'estocs anul·larà el seu efecte.
Cannot Cancel Opportunity as Quotation Exists,No es pot Cancel·lar Oportunitat perquè hi ha ofertes
Cannot approve leave as you are not authorized to approve leaves on Block Dates,No es pot aprovar l'absència perquè no estàs autoritzat per aprovar-les en dates bloquejades
Cannot cancel because Employee {0} is already approved for {1},No es pot cancel·lar perquè Empleat {0} ja està aprovat per {1}
Cannot cancel because submitted Stock Entry {0} exists,No es pot cancel·lar perquè l'entrada d'estoc {0} ja ha estat Presentada
Cannot carry forward {0},No es pot tirar endavant {0}
Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved.,No es poden canviar les dates de l'any finscal (inici i fi) una vegada ha estat desat
"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.",
Cannot convert Cost Center to ledger as it has child nodes,"No es pot convertir de centres de cost per al llibre major, ja que té nodes secundaris"
Cannot covert to Group because Master Type or Account Type is selected.,No es pot convertir en Grup perquè està seleccionat Type Master o Tipus de Compte.
Cannot deactive or cancle BOM as it is linked with other BOMs,No es pot Desactivar o cancelar el BOM ja que està vinculat a d'altres llistes de materials
"Cannot declare as lost, because Quotation has been made.","No es pot declarar com perdut, perquè s'han fet ofertes"
Cannot deduct when category is for 'Valuation' or 'Valuation and Total',
"Cannot delete Serial No {0} in stock. First remove from stock, then delete.",
"Cannot directly set amount. For 'Actual' charge type, use the rate field","No es pot establir directament quantitat. Per l'""Actual"" tipus de càrrec utilitzeu el camp de canvi"
"Cannot overbill for Item {0} in row {1} more than {2}. To allow overbilling, please set in Stock Settings","No es pot sobrefacturar l'element {0} a la fila {1} més de {2}. Per permetre la sobrefacturació, configura-ho a configuració d'existències"
Cannot produce more Item {0} than Sales Order quantity {1},
Cannot refer row number greater than or equal to current row number for this Charge type,No es pot fer referència número de la fila superior o igual al nombre de fila actual d'aquest tipus de càrrega
Cannot return more than {0} for Item {1},
Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,No es pot seleccionar el tipus de càrrega com 'Suma de la fila anterior' o 'Total de la fila anterior' per la primera fila
Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'Total' option for previous row amount or previous row total,"No es pot seleccionar el tipus de càrrega com 'On Anterior Suma Fila ""o"" L'anterior Fila Total ""per a la valoració. Només podeu seleccionar l'opció ""Total"" per la quantitat fila anterior o següent total de la fila"
Cannot set as Lost as Sales Order is made.,
Cannot set authorization on basis of Discount for {0},No es pot establir l'autorització sobre la base de Descompte per {0}
Capacity,Capacitat
Capacity Units,Unitats de Capacitat
Capital Account,Capital Account
Capital Equipments,Capital Equipments
Carry Forward,
Carry Forwarded Leaves,
Case No(s) already in use. Try from Case No {0},
Case No. cannot be 0,
Cash,
Cash In Hand,Efectiu disponible
Cash Voucher,Tiquet de caixa
Cash or Bank Account is mandatory for making payment entry,
Cash/Bank Account,Compte de Caixa / Banc
Casual Leave,
Cell Number,Número de cel·la
Change Abbreviation,
Change UOM for an Item.,Canviar la UDM d'un article
Change the starting / current sequence number of an existing series.,Canviar el número de seqüència inicial/actual d'una sèrie existent.
Channel Partner,Partner de Canal
Charge of type 'Actual' in row {0} cannot be included in Item Rate,Càrrec del tipus 'real' a la fila {0} no pot ser inclòs en la partida Rate
Chargeable,Facturable
Charges are updated in Purchase Receipt against each item,Els càrrecs s'actualitzen amb els rebuts de compra contra cada un dels articles
"Charges will be distributed proportionately based on item qty or amount, as per your selection","Els càrrecs es distribuiran proporcionalment basen en Quantitat o import de l'article, segons la teva selecció"
Charity and Donations,Caritat i Donacions
Chart Name,Nom del diagrama
Chart of Accounts,Pla General de Comptabilitat
Chart of Cost Centers,Gràfic de centres de cost
Check how the newsletter looks in an email by sending it to your email.,Comprova com es veu el butlletí en un correu electrònic enviant-lo al teu correu electrònic.
"Check if recurring invoice, uncheck to stop recurring or put proper End Date",
"Check if recurring order, uncheck to stop recurring or put proper End Date","Marca-ho si és una ordre recurrent, desmarca per aturar recurrents o posa la data final"
"Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.","Comproveu si necessita factures recurrents automàtiques. Després de Presentar qualsevol factura de venda, la secció recurrent serà visible."
Check if you want to send salary slip in mail to each employee while submitting salary slip,
Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Seleccioneu aquesta opció si voleu obligar l'usuari a seleccionar una sèrie abans de desar. No hi haurà cap valor per defecte si marca aquesta.
Check this if you want to show in website,Seleccioneu aquesta opció si voleu que aparegui en el lloc web
Check this to disallow fractions. (for Nos),Habiliteu aquesta opció per no permetre fraccions. (Per números)
Check this to pull emails from your mailbox,Selecciona perenviar correus electrònics de la seva bústia de correu
Check to activate,Marca per activar
Check to make Shipping Address,
Check to make primary address,Comproveu que hi hagi la direcció principal
Chemical,
Cheque,
Cheque Date,Data Xec
Cheque Number,Número de Xec
Child account exists for this account. You can not delete this account.,
City,
City/Town,Ciutat / Poble
Claim Amount,Reclamació Import
Claims for company expense.,
Class / Percentage,
Classic,
Classification of Customers by region,Classificació dels clients per regió
Clear Table,Taula en blanc
Clearance Date,Data Liquidació
Clearance Date not mentioned,No s'esmenta l'espai de dates
Clearance date cannot be before check date in row {0},La data de liquidació no pot ser anterior a la data de verificació a la fila {0}
Click on 'Make Sales Invoice' button to create a new Sales Invoice.,
Click on a link to get options to expand get options ,
Client,Client
Close,Close
Close Balance Sheet and book Profit or Loss.,
Closed,Tancat
Closing (Cr),Tancament (Cr)
Closing (Dr),Tancament (Dr)
Closing Account Head,Tancant el Compte principal
Closing Account {0} must be of type 'Liability',El Compte de tancament {0} ha de ser del tipus 'responsabilitat'
Closing Date,Data de tancament
Closing Fiscal Year,Tancant l'Any Fiscal
CoA Help,CoA Help
Code,Codi
Cold Calling,Trucades en fred
Color,Color
Column Break,
Column Break 1,Column Break 1
Comma separated list of email addresses,
Comment,
Comments,Comentaris
Commercial,Comercial
Commission,Comissió
Commission Rate,Percentatge de comissió
Commission Rate (%),Comissió (%)
Commission on Sales,Comissió de Vendes
Commission rate cannot be greater than 100,La Comissió no pot ser major que 100
Communication,Comunicació
Communication HTML,Comunicació HTML
Communication History,
Communication log.,Registre de Comunicació.
Communications,Comunicacions
Company,Empresa
Company (not Customer or Supplier) master.,Companyia (no client o proveïdor) mestre.
Company Abbreviation,Abreviatura de l'empresa
Company Details,
Company Email,Email de l'empresa
"Company Email ID not found, hence mail not sent","ID de correu electrònic de l'empresa no trobat, per tant, no s'ha enviat el correu"
Company Info,
Company Name,Nom de l'Empresa
Company Settings,
Company is missing in warehouses {0},Falta Empresa als magatzems {0}
Company is required,
Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Els números de registre de l'empresa per la teva referència. Per exemple: Els números de registre d'IVA etc
Company registration numbers for your reference. Tax numbers etc.,
"Company, Month and Fiscal Year is mandatory","Empresa, mes i de l'any fiscal és obligatòri"
Compensatory Off,Compensatori
Complete,Complet
Complete Setup,
Completed,Acabat
Completed Production Orders,
Completed Qty,Quantitat completada
Completion Date,Data d'acabament
Completion Status,Estat de finalització
Computer,Ordinador
Computers,Ordinadors
Confirmation Date,Data de confirmació
Confirmed orders from Customers.,Comandes en ferm dels clients.
Consider Tax or Charge for,Consider Tax or Charge for
Considered as Opening Balance,Considerat com a saldo d'obertura
Considered as an Opening Balance,Considerat com un saldo d'obertura
Consultant,Consultor
Consulting,Consulting
Consumable,
Consumable Cost,Cost de consumibles
Consumable cost per hour,Cost de consumibles per hora
Consumed,
Consumed Amount,
Consumed Qty,Quantitat utilitzada
Consumer Products,
Contact,Contacte
Contact Desc,Descripció del Contacte
Contact Details,
Contact Email,
Contact HTML,Contacte HTML
Contact Info,Informació de Contacte
Contact Mobile No,
Contact Name,Nom de Contacte
Contact No.,Número de Contacte
Contact Person,Persona De Contacte
Contact Type,Tipus de contacte
Contact master.,
Contacts,
Content,Contingut
Content Type,
Contra Voucher,
Contract,
Contract End Date,Data de finalització de contracte
Contract End Date must be greater than Date of Joining,La Data de finalització del contracte ha de ser major que la data d'inici
Contribution %,
Contribution (%),
Contribution Amount,Quantitat aportada
Contribution to Net Total,Contribució neta total
Conversion Factor,Factor de conversió
Conversion Factor is required,
Conversion factor cannot be in fractions,Factor de conversió no pot estar en fraccions
Conversion factor for default Unit of Measure must be 1 in row {0},
Conversion rate cannot be 0 or 1,La taxa de conversió no pot ser 0 o 1
Convert to Group,
Convert to Ledger,Convertir a llibre major
Converted,Convertit
Copy From Item Group,Copiar del Grup d'Articles
Cosmetics,Productes cosmètics
Cost Center,Centre de Cost
Cost Center Details,Detalls del centre de cost
Cost Center For Item with Item Code ',Centre de cost per l'article amb Codi d'article '
Cost Center Name,Nom del centre de cost
Cost Center is required for 'Profit and Loss' account {0},
Cost Center is required in row {0} in Taxes table for type {1},
Cost Center with existing transactions can not be converted to group,Un Centre de costos amb transaccions existents no es pot convertir en grup
Cost Center with existing transactions can not be converted to ledger,Centre de costos de les transaccions existents no es pot convertir en llibre major
Cost Center {0} does not belong to Company {1},El Centre de cost {0} no pertany a l'empresa {1}
Cost of Delivered Items,Cost dels articles lliurats
Cost of Goods Sold,Cost de Vendes
Cost of Issued Items,
Cost of Purchased Items,El cost d'articles comprats
Costing,
Country,
Country Name,Nom del país
Country wise default Address Templates,
"Country, Timezone and Currency","País, Zona horària i moneda"
Cr,Cr
Create Bank Voucher for the total salary paid for the above selected criteria,Create Bank Voucher for the total salary paid for the above selected criteria
Create Customer,
Create Material Requests,
Create New,Crear nou
Create Opportunity,Crear Oportunitats
Create Payment Entries against Orders or Invoices.,
Create Production Orders,Crear ordres de producció
Create Quotation,
Create Receiver List,Crear Llista de receptors
Create Salary Slip,Crear fulla de nòmina
Create Stock Ledger Entries when you submit a Sales Invoice,Crear moviments d'estoc quan es presenta una factura de venda
Create and Send Newsletters,
"Create and manage daily, weekly and monthly email digests.",
Create rules to restrict transactions based on values.,Crear regles per restringir les transaccions basades en valors.
Created By,Creat per
Creates salary slip for above mentioned criteria.,Crea nòmina per als criteris abans esmentats.
Creation Date,
Creation Document No,Creació document nº
Creation Document Type,Creació de tipus de document
Creation Time,
Credentials,
Credit,
Credit Amt,Credit Amt
Credit Card,Targeta De Crèdit
Credit Card Voucher,Tiquet de targeta de crèdit
Credit Controller,
Credit Days,
Credit Limit,Límit de Crèdit
Credit Note,
Credit To,Crèdit Per
Cross Listing of Item in multiple groups,Creu Fitxa d'article en diversos grups
Currency,
Currency Exchange,Valor de Canvi de divisa
Currency Name,
Currency Settings,Ajustaments de divises
Currency and Price List,
Currency exchange rate master.,Tipus de canvi principal.
Current Address,Adreça actual
Current Address Is,L'adreça actual és
Current Assets,
Current BOM,BOM actual
Current BOM and New BOM can not be same,El BOM actual i el nou no poden ser el mateix
Current Fiscal Year,Any fiscal actual
Current Liabilities,
Current Stock,Estoc actual
Current Stock UOM,
Current Value,
Custom,A mida
Custom Autoreply Message,
Custom Message,Missatge personalitzat
Customer,Client
Customer (Receivable) Account,Compte de Clients (per cobrar)
Customer / Item Name,
Customer / Lead Address,
Customer / Lead Name,nom del Client/Client Potencial
Customer > Customer Group > Territory,Client> Grup de Clients> Territori
Customer Account,
Customer Account Head,
Customer Acquisition and Loyalty,Captació i Fidelització
Customer Address,
Customer Addresses And Contacts,Adreces de clients i contactes
Customer Addresses and Contacts,Adreces de clients i contactes
Customer Code,Codi de Client
Customer Codes,Codis de clients
Customer Details,
Customer Feedback,Comentaris del client
Customer Group,Grup de Clients
Customer Group / Customer,
Customer Group Name,
Customer Id,ID del client
Customer Issue,Incidència de Client
Customer Issue against Serial No.,Incidència de client amb l'article amb número de sèrie
Customer Name,Nom del client
Customer Naming By,Customer Naming By
Customer Service,Servei Al Client
Customer database.,Base de dades de clients.
Customer is required,Es requereix client
Customer master.,
Customer required for 'Customerwise Discount',
Customer {0} does not belong to project {1},
Customer {0} does not exist,El client {0} no existeix
Customer's Item Code,
Customer's Purchase Order Date,Data de l'ordre de compra del client
Customer's Purchase Order No,
Customer's Purchase Order Number,Número de Comanda del Client
Customer's Vendor,Venedor del Client
Customers Not Buying Since Long Time,
Customers Not Buying Since Long Time ,
Customerwise Discount,
Customize,Personalitza
Customize the Notification,
Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Personalitza el text d'introducció que va com una part d'aquest correu electrònic. Cada transacció té un text introductori independent.
DN Detail,Detall DN
Daily,Diari
Daily Time Log Summary,Resum diari del registre de temps
Database Folder ID,Database Folder ID
Database of potential customers.,Base de dades de clients potencials.
Date,Data
Date Format,Format de data
Date Of Retirement,Data de la jubilació
Date Of Retirement must be greater than Date of Joining,Data de la jubilació ha de ser major que la data del contracte
Date is repeated,Data repetida
Date of Birth,Data de naixement
Date of Issue,
Date of Joining,Data d'ingrés
Date of Joining must be greater than Date of Birth,Data d'ingrés ha de ser major que la data de naixement
Date on which lorry started from supplier warehouse,
Date on which lorry started from your warehouse,Data en què el camió va sortir del teu magatzem
Dates,Dates
Days Since Last Order,
Days for which Holidays are blocked for this department.,Dies de festa que estan bloquejats per aquest departament.
Dealer,
Debit,
Debit Amt,Dèbit
Debit Note,Nota de Dèbit
Debit To,
Debit and Credit not equal for this voucher. Difference is {0}.,Dèbit i credit diferent per aquest comprovant. La diferència és {0}.
Deduct,
Deduction,Deducció
Deduction Type,
Deduction1,Deducció 1
Deductions,Deduccions
Default,Defecte
Default Account,Compte predeterminat
Default Address Template cannot be deleted,La Plantilla de la direcció predeterminada no es pot eliminar
Default Amount,Default Amount
Default BOM,BOM predeterminat
Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,El compte bancs/efectiu predeterminat s'actualitzarà automàticament a les factures de TPV quan es selecciona aquest.
Default Bank Account,
Default Buying Cost Center,Centres de cost de compres predeterminat
Default Buying Price List,Llista de preus per defecte
Default Cash Account,Compte de Tresoreria predeterminat
Default Company,
Default Cost Center,Centre de cost predeterminat
Default Currency,
Default Customer Group,
Default Expense Account,Compte de Despeses predeterminat
Default Income Account,Compte d'Ingressos predeterminat
Default Item Group,Grup d'articles predeterminat
Default Price List,Llista de preus per defecte
Default Purchase Account in which cost of the item will be debited.,Compte de Compra predeterminat en la qual es carregarà el cost de l'article.
Default Selling Cost Center,
Default Settings,
Default Source Warehouse,Magatzem d'origen predeterminat
Default Stock UOM,UDM d'estoc predeterminat
Default Supplier,
Default Supplier Type,Tipus predeterminat de Proveïdor
Default Target Warehouse,Magatzem de destí predeterminat
Default Territory,Territori per defecte
Default Unit of Measure,Unitat de mesura per defecte
"Default Unit of Measure can not be changed directly because you have already made some transaction(s) with another UOM. To change default UOM, use 'UOM Replace Utility' tool under Stock module.",
Default Valuation Method,Mètode de valoració predeterminat
Default Warehouse,Magatzem predeterminat
Default Warehouse is mandatory for stock Item.,El magatzem predeterminat és obligatòria pels articles d'estoc
Default settings for accounting transactions.,Ajustos predeterminats per a les operacions comptables.
Default settings for buying transactions.,Ajustos predeterminats per a transaccions de compra.
Default settings for selling transactions.,Ajustos predeterminats per a les transaccions de venda
Default settings for stock transactions.,
Defense,
"Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>","Definir Pressupost per a aquest centre de cost. Per configurar l'acció de pressupost, consulteu <a href=""#!List/Company"">Company Master</a>"
Del,Esborra
Delete,Esborrar
Delivered,
Delivered Amount,
Delivered Items To Be Billed,Articles lliurats pendents de facturar
Delivered Qty,Quantitat lliurada
Delivered Serial No {0} cannot be deleted,
Delivery Date,Data De Lliurament
Delivery Details,
Delivery Document No,
Delivery Document Type,Tipus de document de lliurament
Delivery Note,Nota de lliurament
Delivery Note Item,
Delivery Note Items,
Delivery Note Message,Missatge de la Nota de lliurament
Delivery Note No,Número d'albarà de lliurament
Delivery Note Required,Nota de lliurament Obligatòria
Delivery Note Trends,Nota de lliurament Trends
Delivery Note {0} is not submitted,La Nota de lliurament {0} no està presentada
Delivery Note {0} must not be submitted,La Nota de lliurament {0} no es pot presentar
Delivery Note/Sales Invoice,Nota de lliurament / Factura
Delivery Notes {0} must be cancelled before cancelling this Sales Order,
Delivery Status,Estat de l'enviament
Delivery Time,Temps de Lliurament
Delivery To,Lliurar a
Department,Departament
Department Stores,Grans Magatzems
Depends on LWP,
Depreciation,
Description,Descripció
Description HTML,Descripció HTML
Description of a Job Opening,
Designation,Designació
Designer,
Detailed Breakup of the totals,
Details,
Difference (Dr - Cr),Diferència (Dr - Cr)
Difference Account,Compte de diferències
"Difference Account must be a 'Liability' type account, since this Stock Reconciliation is an Opening Entry","El compte de diferències ha de ser un compte de tipus 'responsabilitat', ja que aquest ajust d'estocs és una entrada d'Obertura"
Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,UDMs diferents per als articles provocarà pesos nets (Total) erronis. Assegureu-vos que pes net de cada article és de la mateixa UDM.
Direct Expenses,
Direct Income,
Disable,
Disable Rounded Total,Desactivar total arrodonit
Disabled,Deshabilitat
Discount,
Discount  %,
Discount %,% Descompte
Discount (%),Descompte (%)
Discount Amount,
Discount Amount (Company Currency),
"Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice","Els camps de descompte estaran disponible a l'ordre de compra, rebut de compra, factura de compra"
Discount Percentage,%Descompte
Discount Percentage can be applied either against a Price List or for all Price List.,El percentatge de descompte es pot aplicar ja sigui contra una llista de preus o per a tot Llista de Preus.
Discount must be less than 100,Descompte ha de ser inferior a 100
Discount(%),
Dispatch,
Display all the individual items delivered with the main items,
Distinct unit of an Item,
Distribute Charges Based On,Distribuir els càrrecs en base a
Distribution,Distribució
Distribution Id,ID de Distribució
Distribution Name,Distribution Name
Distributor,Distribuïdor
Divorced,Divorciat
Do Not Contact,
Do not show any symbol like $ etc next to currencies.,
Do really want to unstop production order: ,
Do you really want to STOP ,
Do you really want to STOP this Material Request?,
Do you really want to Submit all Salary Slip for month {0} and year {1},Realment vols presentar totes les nòmines del mes {0} i any {1}
Do you really want to UNSTOP ,
Do you really want to UNSTOP this Material Request?,
Do you really want to stop production order: ,
Doc Name,Nom del document
Doc Type,
Document Description,Descripció Document
Document Type,Tipus de document
Documents,
Domain,
Don't send Employee Birthday Reminders,
Download Materials Required,Es requereix descàrrega de materials
Download Reconcilation Data,
Download Template,Descarregar plantilla
Download a report containing all raw materials with their latest inventory status,Descarrega un informe amb totes les matèries primeres amb el seu estat últim inventari
"Download the Template, fill appropriate data and attach the modified file.","Descarregueu la plantilla, omplir les dades adequades i adjuntar l'arxiu modificat."
"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Descarregueu la plantilla, ompliu les dades i adjuntar l'arxiu modificat. Apareixeran tots els registres de presència del treballador en el període marcat"
Dr,Dr
Draft,Esborrany
Dropbox,
Dropbox Access Allowed,Dropbox Access Allowed
Dropbox Access Key,Dropbox Access Key
Dropbox Access Secret,Dropbox Access Secret
Due Date,
Due Date cannot be before Posting Date,Data de venciment no pot ser anterior Data de comptabilització
Duplicate Entry. Please check Authorization Rule {0},"Entrada duplicada. Si us plau, consulteu Regla d'autorització {0}"
Duplicate Serial No entered for Item {0},Número de sèrie duplicat per l'article {0}
Duplicate entry,Entrada duplicada
Duplicate row {0} with same {1},
Duties and Taxes,Taxes i impostos
ERPNext Setup,Configuració ERPNext
Earliest,Earliest
Earnest Money,
Earning,Guany
Earning & Deduction,Guanyar i Deducció
Earning Type,
Earning1,Benefici 1
Edit,Edita
Edu. Cess on Excise,
Edu. Cess on Service Tax,Edu. Cess on Service Tax
Edu. Cess on TDS,
Education,Educació
Educational Qualification,
Educational Qualification Details,Detalls de les qualificacions de formació
Eg. smsgateway.com/api/send_sms.cgi,
Either debit or credit amount is required for {0},Es requereix ja sigui quantitat de dèbit o crèdit per {0}
Either target qty or target amount is mandatory,Cal la Quantitat destí i la origen
Either target qty or target amount is mandatory.,Tan quantitat destí com Quantitat són obligatoris.
Electrical,
Electricity Cost,Cost d'electricitat
Electricity cost per hour,
Electronics,
Email,
Email Digest,
Email Digest Settings,Ajustos del processador d'emails
Email Digest: ,
Email ID,Identificació de l'email
Email Id,Identificació de l'email
"Email Id where a job applicant will email e.g. ""jobs@example.com""","Email Id where a job applicant will email e.g. ""jobs@example.com"""
Email Notifications,Notificacions per correu electrònic
Email Sent?,
Email Settings for Outgoing and Incoming Emails.,
"Email id must be unique, already exists for {0}","L'adreça de correu electrònic ha de ser única, ja existeix per {0}"
Email ids separated by commas.,Correus electrònics separats per comes.
"Email settings for jobs email id ""jobs@example.com""",
"Email settings to extract Leads from sales email id e.g. ""sales@example.com""","Configuració de l'adreça de correu electrònic per a clients potencials amb correus electrònic comercials. Per exemple ""sales@example.com"""
Emergency Contact,Contacte d'Emergència
Emergency Contact Details,
Emergency Phone,Telèfon d'Emergència
Employee,Empleat
Employee Birthday,Aniversari d'Empleat
Employee Details,
Employee Education,Formació Empleat
Employee External Work History,Historial de treball d'Empleat extern
Employee Information,
Employee Internal Work History,Historial de treball intern de l'empleat
Employee Internal Work Historys,
Employee Leave Approver,
Employee Leave Balance,Balanç d'absències d'empleat
Employee Name,Nom de l'Empleat
Employee Number,Número d'empleat
Employee Records to be created by,Registres d'empleats a ser creats per
Employee Settings,Configuració dels empleats
Employee Type,
Employee can not be changed,
"Employee designation (e.g. CEO, Director etc.).","Designació de l'empleat (per exemple, director general, director, etc.)."
Employee master.,Taula Mestre d'Empleats.
Employee record is created using selected field. ,
Employee records.,
Employee relieved on {0} must be set as 'Left',Empleat rellevat en {0} ha de ser establert com 'Esquerra'
Employee {0} has already applied for {1} between {2} and {3},L'Empleat {0} ja ha sol·licitat {1} entre {2} i {3}
Employee {0} is not active or does not exist,L'Empleat {0} no està actiu o no existeix
Employee {0} was on leave on {1}. Cannot mark attendance.,
Employees Email Id,
Employment Details,Detalls d'Ocupació
Employment Type,Tipus d'Ocupació
Enable / disable currencies.,Activar / desactivar les divises.
Enabled,Activat
Encashment Date,Data Cobrament
End Date,
End Date can not be less than Start Date,
End date of current invoice's period,Data de finalització del període de facturació actual
End date of current order's period,Data de finalització del període de l'ordre actual
End of Life,Final de la Vida
Energy,Energia
Engineer,
Enter Verification Code,Introduïu el codi de verificació
Enter campaign name if the source of lead is campaign.,Introduïu nom de la campanya si la font de clients potencials és una campanya.
Enter department to which this Contact belongs,Introduïu departament al qual pertany aquest contacte
Enter designation of this Contact,
"Enter email id separated by commas, invoice will be mailed automatically on particular date",
"Enter email id separated by commas, order will be mailed automatically on particular date",
Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.,
Enter name of campaign if source of enquiry is campaign,
"Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)",
Enter the company name under which Account Head will be created for this Supplier,Introduïu el nom de l'empresa per la que es crearà el compte principal per aquest proveïdor
Enter url parameter for message,
Enter url parameter for receiver nos,Introdueix els paràmetres URL per als receptors
Entertainment & Leisure,Entreteniment i Oci
Entertainment Expenses,Despeses d'Entreteniment
Entries,
Entries against ,
Entries are not allowed against this Fiscal Year if the year is closed.,
Equity,
Error: {0} > {1},Error: {0}> {1}
Estimated Material Cost,Cost estimat del material
"Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Fins i tot si hi ha diverses regles de preus amb major prioritat, s'apliquen prioritats internes:"
Everyone can read,
"Example: ABCD.#####If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.","Exemple :. ABCD #####  Si la sèrie s'estableix i Número de sèrie no s'esmenta en les transaccions, llavors es crearà un número de sèrie automàticament basat en aquesta sèrie. Si sempre vol indicar explícitament els números de sèrie per a aquest article. deixeu en blanc."
Exchange Rate,Tipus De Canvi
Excise Duty 10,
Excise Duty 14,
Excise Duty 4,Impostos Especials 4
Excise Duty 8,Impostos Especials 8
Excise Duty @ 10,
Excise Duty @ 14,
Excise Duty @ 4,Excise Duty @ 4
Excise Duty @ 8,
Excise Duty Edu Cess 2,Excise Duty Edu Cess 2
Excise Duty SHE Cess 1,Excise Duty SHE Cess 1
Excise Page Number,Excise Page Number
Excise Voucher,Excise Voucher
Execution,
Executive Search,
Exhibition,Exposició
Existing Customer,Client existent
Exit,
Exit Interview Details,Detalls de l'entrevista final
Expected,Esperat
Expected Completion Date can not be less than Project Start Date,
Expected Date cannot be before Material Request Date,
Expected Delivery Date,Data de lliurament esperada
Expected Delivery Date cannot be before Purchase Order Date,Data prevista de lliurament no pot ser anterior a l'Ordre de Compra
Expected Delivery Date cannot be before Sales Order Date,Data prevista de lliurament no pot ser abans de la data de l'ordres de venda
Expected End Date,Esperat Data de finalització
Expected Start Date,Data prevista d'inici
Expected balance as per bank,Import pendent de rebre com per banc
Expense,
Expense / Difference account ({0}) must be a 'Profit or Loss' account,"El compte de despeses / diferències ({0}) ha de ser un compte ""Guany o Pèrdua '"
Expense Account,Compte de Despeses
Expense Account is mandatory,
Expense Approver,Aprovador de despeses
Expense Claim,Compte de despeses
Expense Claim Approved,
Expense Claim Approved Message,Missatge Reclamació d'aprovació de Despeses
Expense Claim Detail,Reclamació de detall de despesa
Expense Claim Details,
Expense Claim Rejected,Compte de despeses Rebutjat
Expense Claim Rejected Message,Missatge de rebuig de petició de despeses
Expense Claim Type,Expense Claim Type
Expense Claim has been approved.,El compte de despeses s'ha aprovat.
Expense Claim has been rejected.,Compte de despeses rebutjada.
Expense Claim is pending approval. Only the Expense Approver can update status.,El compte de despeses està pendent d'aprovació. Només l'aprovador de despeses pot actualitzar l'estat.
Expense Date,Data de la Despesa
Expense Details,
Expense Head,
Expense account is mandatory for item {0},El compte de despeses és obligatòria per a cada element {0}
Expense or Difference account is mandatory for Item {0} as it impacts overall stock value,
Expenses,
Expenses Booked,
Expenses Included In Valuation,Despeses incloses en la valoració
Expenses booked for the digest period,Despeses reservades pel període
Expired,Caducat
Expiry,
Expiry Date,Data De Caducitat
Exports,Exportacions
External,Extern
Extract Emails,Extracte dels correus electrònics
FCFS Rate,FCFS Rate
Failed: ,
Family Background,Antecedents de família
Fax,
Features Setup,Característiques del programa d'instal·lació
Feed,
Feed Type,
Feedback,Resposta
Female,Dona
Fetch exploded BOM (including sub-assemblies),Fetch exploded BOM (including sub-assemblies)
"Field available in Delivery Note, Quotation, Sales Invoice, Sales Order","El camp disponible a la nota de lliurament, oferta, factura de venda, ordres de venda"
Files Folder ID,ID Carpeta d'arxius
Fill the form and save it,Ompliu el formulari i deseu
Filter based on customer,Filtre basat en el client
Filter based on item,
Financial / accounting year.,
Financial Analytics,Comptabilitat analítica
Financial Chart of Accounts. Imported from file.,
Financial Services,
Financial Year End Date,Data de finalització de l'exercici fiscal
Financial Year Start Date,Data d'Inici de l'Exercici fiscal
Finished Goods,Béns Acabats
First Name,
First Responded On,Primer respost el
Fiscal Year,Any Fiscal
Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0},
Fiscal Year Start Date and Fiscal Year End Date cannot be more than a year apart.,
Fiscal Year Start Date should not be greater than Fiscal Year End Date,
Fiscal Year {0} not found.,
Fixed Asset,Actius Fixos
Fixed Assets,Actius Fixos
Fixed Cycle Cost,
Fold,fold
Follow via Email,
"Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items.",
Food,Menjar
"Food, Beverage & Tobacco",
"For 'Sales BOM' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Sales BOM' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table.","Per als articles 'BOM Vendes', magatzem, Número de sèrie i de lot No es tindran en compte en el quadre ""Packing List '.Si Magatzems i Números de lot són els mateixos per a tots els articles d'embalatge per a qualsevol article 'BOM de vendes', aquests valors es poden introduir a la taula principal d'articles, els valors es copiaran a la taula ""Packing List '."
For Company,Per a l'empresa
For Employee,Per als Empleats
For Employee Name,Per Nom de l'Empleat
For Price List,
For Production,Per Producció
For Reference Only.,
For Sales Invoice,Per Factura Vendes
For Server Side Print Formats,
For Supplier,
For Warehouse,
For Warehouse is required before Submit,Cal informar del magatzem destí abans de presentar
"For e.g. 2012, 2012-13","Per exemple, 2012, 2012-13"
For reference,
For reference only.,Només per referència.
"For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes","Per comoditat dels clients, aquests codis es poden utilitzar en formats d'impressió, com factures i albarans"
"For {0}, only credit entries can be linked against another debit entry","Per {0}, només les entrades de crèdit poden vincular-se amb un altre assentament de dèbit"
"For {0}, only debit entries can be linked against another credit entry",
Fraction,Fracció
Fraction Units,Fraction Units
Freeze Stock Entries,
Freeze Stocks Older Than [Days],Congela els estocs més vells de [dies]
Freight and Forwarding Charges,Freight and Forwarding Charges
Friday,
From,
From Bill of Materials,A partir de la llista de materials
From Company,Des de l'empresa
From Currency,De la divisa
From Currency and To Currency cannot be same,
From Customer,De Client
From Customer Issue,De Incidència de Client
From Date,
From Date cannot be greater than To Date,
From Date must be before To Date,
From Date should be within the Fiscal Year. Assuming From Date = {0},
From Datetime,
From Delivery Note,De la nota de lliurament
From Employee,
From Lead,De client potencial
From Maintenance Schedule,
From Material Request,De Sol·licituds de materials
From Opportunity,De Oportunitat
From Package No.,Del paquet número
From Purchase Order,De l'Ordre de Compra
From Purchase Receipt,
From Quotation,Des de l'oferta
From Sales Order,
From Supplier Quotation,Oferta de Proveïdor
From Time,From Time
From Value,
From and To dates required,
From value must be less than to value in row {0},De valor ha de ser inferior al valor de la fila {0}
Frozen,Bloquejat
Frozen Accounts Modifier,Modificador de Comptes bloquejats
Fulfilled,Complert
Full Name,Nom complet
Full-time,Temps complet
Fully Billed,
Fully Completed,
Fully Delivered,Totalment Lliurat
Furniture and Fixture,Mobles
Further accounts can be made under Groups but entries can be made against Ledger,"Es poden fer més comptes amb grups, però les entrades es poden fer contra Ledger"
"Further accounts can be made under Groups, but entries can be made against Ledger",
Further nodes can be only created under 'Group' type nodes,Només es poden crear més nodes amb el tipus 'Grup'
GL Entry,Entrada GL
Gantt Chart,Diagrama de Gantt
Gantt chart of all tasks.,
Gender,
General,General
General Ledger,
General Settings,Configuració general
Generate Description HTML,
Generate Material Requests (MRP) and Production Orders.,
Generate Salary Slips,
Generate Schedule,Generar Calendari
"Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.",
Generates HTML to include selected image in the description,
Get Advances Paid,Obtenir bestretes pagades
Get Advances Received,Obtenir les bestretes rebudes
Get Current Stock,
Get Items,
Get Items From Purchase Receipts,Obtenir els articles des dels rebuts de compra
Get Items From Sales Orders,Obtenir els articles des de les comandes de client
Get Items from BOM,
Get Last Purchase Rate,
Get Outstanding Invoices,Rep les factures pendents
Get Outstanding Vouchers,Get Outstanding Vouchers
Get Relevant Entries,Obtenir assentaments corresponents
Get Sales Orders,Rep ordres de venda
Get Specification Details,Obtenir Detalls d'Especificacions
Get Stock and Rate,Obtenir Estoc i tarifa
Get Template,Aconsegueix Plantilla
Get Terms and Conditions,Obtenir Termes i Condicions
Get Unreconciled Entries,
Get Weekly Off Dates,Get Weekly Off Dates
"Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Obtenir la tarifa de valorització i l'estoc disponible als magatzems origen/destí en la data esmentada. Si és un article amb número de sèrie, si us plau premeu aquest botó després d'introduir els números de sèrie."
Global Defaults,Valors per defecte globals
Global POS Setting {0} already created for company {1},L'ajust general del TPV {0} ja està creat per la companyia {1}
Global Settings,Configuració global
"Go to the appropriate group (usually Application of Funds > Current Assets > Bank Accounts and create a new Account Ledger (by clicking on Add Child) of type ""Bank""","Salta al grup apropiat (generalment Aplicació de Fons> Actius Corrents> Comptes Bancàries i crea un nou compte de major (fent clic a Afegeix fill) de tipus ""Banc"""
"Go to the appropriate group (usually Source of Funds > Current Liabilities > Taxes and Duties and create a new Account Ledger (by clicking on Add Child) of type ""Tax"" and do mention the Tax rate.","Salta al grup apropiat (en general Font dels fons> Passius actuals> Impostos i drets i crear un nou compte de major (fent clic a Afegeix Fill) de tipus ""impostos"" i fer parlar de la taxa d'impostos."
Goal,Meta
Goals,
Goods received from Suppliers.,
Google Drive,Google Drive
Google Drive Access Allowed,Accés permès a Google Drive
Government,
Graduate,Graduat
Grand Total,
Grand Total (Company Currency),Total (En la moneda de la companyia)
"Grid ""","Grid """
Grocery,Botiga
Gross Margin %,Marge Brut%
Gross Margin Value,Valor Marge Brut
Gross Pay,Sou brut
Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,
Gross Profit,Benefici Brut
Gross Profit %,Benefici Brut%
Gross Weight,Pes Brut
Gross Weight UOM,Pes brut UDM
Group,Grup
Group Node,Group Node
Group by Account,Agrupa Per Comptes
Group by Voucher,Agrupa per comprovants
Group or Ledger,Group or Ledger
Groups,Grups
Guest,Convidat
HR Manager,Gerent de Recursos Humans
HR Settings,Configuració de recursos humans
HR User,HR User
HTML / Banner that will show on the top of product list.,HTML / Banner que apareixerà a la part superior de la llista de productes.
Half Day,
Half Yearly,Semestrals
Half-yearly,
Happy Birthday!,
Hardware,Maquinari
Has Batch No,Té número de lot
Has Child Node,
Has Serial No,
Head of Marketing and Sales,
Heads (or groups) against which Accounting Entries are made and balances are maintained.,Capçaleres (o grups) contra els quals es mantenen els assentaments comptables i els saldos
Health Care,Sanitari
Health Concerns,Problemes de Salut
Health Details,Detalls de la Salut
Held On,Held On
Help HTML,
"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")","Ajuda: Per enllaçar a un altre registre en el sistema, utilitzeu ""#Form/Note/[Note Name]"" com a URL. (no utilitzis ""http://"")"
"Here you can maintain family details like name and occupation of parent, spouse and children",
"Here you can maintain height, weight, allergies, medical concerns etc","Aquí pot actualitzar l'alçada, el pes, al·lèrgies, problemes mèdics, etc."
Hide Currency Symbol,
High,
History In Company,Història a la Companyia
Hold,Mantenir
Holiday,Festiu
Holiday List,
Holiday List Name,Nom de la Llista de vacances
Holiday master.,
Holidays,Vacances
Home,Casa
Host,Amfitrió
"Host, Email and Password required if emails are to be pulled","Host, correu electrònic i la contrasenya necessaris si els correus electrònics han de ser enviats"
Hour,Hora
Hour Rate,Hour Rate
Hour Rate Labour,
Hours,hores
How Pricing Rule is applied?,Com s'aplica la regla de preus?
How frequently?,Amb quina freqüència?
"How should this currency be formatted? If not set, will use system defaults",
Human Resources,Recursos Humans
Identification of the package for the delivery (for print),La identificació del paquet per al lliurament (per imprimir)
If Income or Expense,Si ingressos o despeses
If Monthly Budget Exceeded,
"If Supplier Part Number exists for given Item, it gets stored here","Si existeix el Part Number de proveïdor per un determinat article, s'emmagatzema aquí"
If Yearly Budget Exceeded,Si s'exedeix el pressupost anual
"If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material."
"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Si es marca, número total. de dies de treball s'inclouran els festius, i això reduirà el valor de Salari per dia"
"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","If checked, the tax amount will be considered as already included in the Print Rate / Print Amount"
If different than customer address,Si és diferent de la direcció del client
"If disable, 'Rounded Total' field will not be visible in any transaction","Si ho desactives, el camp 'Arrodonir Total' no serà visible a cap transacció"
"If enabled, the system will post accounting entries for inventory automatically.","Si està activat, el sistema comptabilitza els assentaments comptables per a l'inventari automàticament."
If more than one package of the same type (for print),Si més d'un paquet del mateix tipus (per impressió)
"If multiple Pricing Rules continue to prevail, users are asked to set Priority manually to resolve conflict.","Si hi ha diverses regles de preus vàlides, es demanarà als usuaris que estableixin la prioritat manualment per resoldre el conflicte."
"If no change in either Quantity or Valuation Rate, leave the cell blank.",
"If not checked, the list will have to be added to each Department where it has to be applied.","Si no està habilitada, la llista haurà de ser afegit a cada departament en què s'ha d'aplicar."
"If selected Pricing Rule is made for 'Price', it will overwrite Price List. Pricing Rule price is the final price, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field.","Si la Regla de preus seleccionada està fet per a 'Preu', sobreescriurà Llista de Preus. El preu de la Regla de preus és el preu final, així que no s'hi aplicarà cap descompte addicional. Per tant, en les transaccions com comandes de venda, ordres de compra, etc,s'anirà a buscar al camp ""Quota"", en lloc de camp 'Quota de llista de preus'."
"If specified, send the newsletter using this email address",
"If the account is frozen, entries are allowed to restricted users.","Si el compte està bloquejat, només es permeten entrades alguns usuaris."
"If this Account represents a Customer, Supplier or Employee, set it here.","Si aquest compte representa un client, proveïdor o empleat, establir aquí."
"If two or more Pricing Rules are found based on the above conditions, Priority is applied. Priority is a number between 0 to 20 while default value is zero (blank). Higher number means it will take precedence if there are multiple Pricing Rules with same conditions.",
If you follow Quality Inspection. Enables Item QA Required and QA No in Purchase Receipt,
If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity,
"If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.",
"If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.","Si heu creat una plantilla estàndard en la configuració dels impostos de vendes i càrrecs, escolliu-ne un i feu clic al botó de sota."
"If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page",
If you involve in manufacturing activity. Enables Item 'Is Manufactured',Si s'involucra en alguna fabricació. Activa 'es fabrica'
Ignore,Ignorar
Ignore Pricing Rule,
Ignored: ,
Image,Imatge
Image View,Veure imatges
Implementation Partner,Soci d'Aplicació
Import Attendance,Importa Assistència
Import Failed!,
Import Log,Importa registre
Import Successful!,Importació correcta!
Imports,Importacions
In Hours,En Hores
In Process,
In Qty,En Quantitat
In Stock,En estoc
In Words,En Paraules
In Words (Company Currency),En paraules (Divisa de la Companyia)
In Words (Export) will be visible once you save the Delivery Note.,En paraules (exportació) seran visibles quan es desi l'albarà de lliurament.
In Words will be visible once you save the Delivery Note.,
In Words will be visible once you save the Purchase Invoice.,En paraules seran visibles un cop que guardi la factura de compra.
In Words will be visible once you save the Purchase Order.,En paraules seran visibles un cop que es guardi l'ordre de compra.
In Words will be visible once you save the Purchase Receipt.,En paraules seran visibles un cop guardi el rebut de compra.
In Words will be visible once you save the Quotation.,En paraules seran visibles un cop que es guarda la Cotització.
In Words will be visible once you save the Sales Invoice.,
In Words will be visible once you save the Sales Order.,
Incentives,Incentius
Include Reconciled Entries,Inclogui els comentaris conciliades
Include holidays in Total no. of Working Days,Inclou vacances en el número total de dies laborables
Income,Ingressos
Income / Expense,
Income Account,Compte d'ingressos
Income Booked,
Income Tax,Impost sobre els guanys
Income Year to Date,Ingressos de l'any fins a la data
Income booked for the digest period,
Incoming,
Incoming Rate,
Incoming quality inspection.,Inspecció de qualitat entrant.
Incorrect number of General Ledger Entries found. You might have selected a wrong Account in the transaction.,Nombre incorrecte d'entrades del llibre major. És possible que hi hagi seleccionat un compte erroni en la transacció.
Incorrect or Inactive BOM {0} for Item {1} at row {2},BOM incorrecte o Inactiu {0} per a l'article {1} a la fila {2}
Indicates that the package is a part of this delivery (Only Draft),
Indirect Expenses,
Indirect Income,Ingressos Indirectes
Individual,Individual
Industry,Indústria
Industry Type,Tipus d'Indústria
Inspected By,Inspeccionat per
Inspection Criteria,Criteris d'Inspecció
Inspection Required,Inspecció requerida
Inspection Type,Tipus d'Inspecció
Installation Date,
Installation Note,Nota d'instal·lació
Installation Note Item,Nota d'instal·lació de l'article
Installation Note {0} has already been submitted,La Nota d'Instal·lació {0} ja s'ha presentat
Installation Status,
Installation Time,Temps d'instal·lació
Installation date cannot be before delivery date for Item {0},Data d'instal·lació no pot ser abans de la data de lliurament d'article {0}
Installation record for a Serial No.,Registre d'instal·lació per a un nº de sèrie
Installed Qty,Quantitat instal·lada
Instructions,Instruccions
Interested,Interessat
Intern,Intern
Internal,Interna
Internet Publishing,Publicant a Internet
Introduction,Introducció
Invalid Barcode,Codi de barres no vàlid
Invalid Barcode or Serial No,
Invalid Mail Server. Please rectify and try again.,
Invalid Master Name,Invalid Master Name
Invalid User Name or Support Password. Please rectify and try again.,"Nom d'usuari o contrassenya de suport no vàlids. Si us plau, rectifica i torna a intentar-ho."
Invalid quantity specified for item {0}. Quantity should be greater than 0.,Quantitat no vàlid per a l'aricle {0}. Quantitat ha de ser major que 0.
Inventory,Inventari
Inventory & Support,Inventory & Support
Investment Banking,Banca d'Inversió
Investments,Inversions
Invoice,Factura
Invoice Date,
Invoice Details,
Invoice No,Número de Factura
Invoice Number,Número de factura
Invoice Type,Tipus de Factura
Invoice/Journal Voucher Details,Detalls de l'assentament de Diari o factura
Invoiced Amount,Quantitat facturada
Invoiced Amount (Exculsive Tax),
Is Active,Està actiu
Is Advance,És Avanç
Is Cancelled,Està cancel·lat
Is Carry Forward,Is Carry Forward
Is Default,
Is Encash,
Is Fixed Asset Item,És la partida de l'actiu fix
Is LWP,
Is Opening,
Is Opening Entry,
Is POS,És TPV
Is Primary Contact,És Contacte principal
Is Purchase Item,
Is Recurring,És recurrent
Is Sales Item,És article de venda
Is Service Item,És un servei
Is Stock Item,És un article d'estoc
Is Sub Contracted Item,Es subcontracta
Is Subcontracted,Es subcontracta
Is this Tax included in Basic Rate?,Aqeust impost està inclòs a la tarifa bàsica?
Issue,Incidència
Issue Date,
Issue Details,Detalls de la incidència
Issued Items Against Production Order,
It can also be used to create opening stock entries and to fix stock value.,També es pot utilitzar per crear entrades en existències d'obertura i fixar valor de les accions.
Item,Article
Item #{0}: Ordered qty can not less than item's minimum order qty (defined in item master).,Article # {0}: La quantitat ordenada no pot ser menor que la quantitat mínima de comanda d'article (definit a la configuració d'articles).
Item Advanced,Article Avançat
Item Barcode,Codi de barres d'article
Item Batch Nos,Números de Lot d'articles
Item Classification,
Item Code,Codi de l'article
Item Code > Item Group > Brand,Codi de l'article> Grup Element> Marca
Item Code and Warehouse should already exist.,
Item Code cannot be changed for Serial No.,El Codi de l'article no es pot canviar de número de sèrie
Item Code is mandatory because Item is not automatically numbered,El codi de l'article és obligatori perquè no s'havia numerat automàticament
Item Code required at Row No {0},
Item Customer Detail,Item Customer Detail
Item Description,
Item Desription,Desription de l'article
Item Details,Detalls de l'article
Item Group,Grup d'articles
Item Group Name,Nom del Grup d'Articles
Item Group Tree,Arbre de grups d'article
Item Group not mentioned in item master for item {0},
Item Groups in Details,Els grups d'articles en detalls
Item Image (if not slideshow),
Item Name,
Item Naming By,
Item Price,Preu d'article
Item Prices,Preus de l'article
Item Quality Inspection Parameter,
Item Reorder,
Item Row {0}: Purchase Receipt {1} does not exist in above 'Purchase Receipts' table,Article Fila {0}: Compra de Recepció {1} no existeix a la taulat 'Rebuts de compra'
Item Serial No,Número de sèrie d'article
Item Serial Nos,
Item Shortage Report,Informe d'escassetat d'articles
Item Supplier,
Item Supplier Details,Detalls d'article Proveïdor
Item Tax,Impost d'article
Item Tax Amount,Suma d'impostos d'articles
Item Tax Rate,
Item Tax Row {0} must have account of type Tax or Income or Expense or Chargeable,La fila de l'impost d'article {0} ha de tenir en compte el tipus d'impostos o ingressos o despeses o imposable
Item Tax1,Impost d'article 1
Item To Manufacture,Article a fabricar
Item UOM,
Item Website Specification,Especificacions d'article al Web
Item Website Specifications,Especificacions del web d'articles
Item Wise Tax Detail,Detall d'impostos de tots els articles
Item Wise Tax Detail ,
Item is required,Es requereix un article
Item is updated,L'article s'ha actualitzat
Item master.,Mestre d'articles.
"Item must be a purchase item, as it is present in one or many Active BOMs",
Item must be added using 'Get Items from Purchase Receipts' button,
Item or Warehouse for row {0} does not match Material Request,
Item table can not be blank,
Item to be manufactured or repacked,Article que es fabricarà o embalarà de nou
Item valuation rate is recalculated considering landed cost voucher amount,La taxa de valorització de l'article es torna a calcular tenint en compte landed cost voucher amount
Item valuation updated,
Item will be saved by this name in the data base.,
Item {0} appears multiple times in Price List {1},
Item {0} does not exist,
Item {0} does not exist in the system or has expired,L'Article {0} no existeix en el sistema o ha caducat
Item {0} does not exist in {1} {2},
Item {0} has already been returned,
Item {0} has been entered multiple times against same operation,
Item {0} has been entered multiple times with same description or date,Article {0} s'ha introduït diverses vegades amb la mateixa descripció o data
Item {0} has been entered multiple times with same description or date or warehouse,
Item {0} has been entered twice,L'Article {0} ha estat entrat dues vegades
Item {0} has reached its end of life on {1},
Item {0} ignored since it is not a stock item,Article {0} ignorat ja que no és un article d'estoc
Item {0} is cancelled,L'article {0} està cancel·lat
Item {0} is not Purchase Item,Article {0} no és article de Compra
Item {0} is not a serialized Item,Article {0} no és un article serialitzat
Item {0} is not a stock Item,Article {0} no és un article d'estoc
Item {0} is not active or end of life has been reached,L'article {0} no està actiu o ha arribat al final de la seva vida
Item {0} is not setup for Serial Nos. Check Item master,L'Article {0} no està configurat per a números de sèrie. Comprova la configuració d'articles
Item {0} is not setup for Serial Nos. Column must be blank,L'Article {0} no està configurat per números de sèrie. La columna ha d'estar en blanc
Item {0} must be Sales Item,L'Article {0} ha de ser article de Vendes
Item {0} must be Sales or Service Item in {1},
Item {0} must be Service Item,
Item {0} must be a Purchase Item,L'Article {0} ha de ser un article de compra
Item {0} must be a Sales Item,L'Article {0} ha de ser un article de Vendes
Item {0} must be a Service Item.,Article {0} ha de ser un element de servei.
Item {0} must be a Sub-contracted Item,
Item {0} must be a stock Item,Article {0} ha de ser un d'article de l'estoc
Item {0} must be manufactured or sub-contracted,L'Article {0} s'ha de fabricar o subcontractar
Item {0} not found,Article {0} no trobat
Item {0} with Serial No {1} is already installed,L'article {0} amb número de sèrie {1} ja està instal·lat
Item {0} with same description entered twice,Article {0} amb mateixa descripció entrar dues vegades
"Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.","Els detalls d'Article, garantia, AMC (Contracte de Manteniment Anual) es recuperaran automàticament quan es selecciona el Número de sèrie."
Item-wise Price List Rate,Llista de Preus de tarifa d'article
Item-wise Purchase History,Historial de compres d'articles
Item-wise Purchase Register,Registre de compra d'articles
Item-wise Sales History,
Item-wise Sales Register,
Item: {0} does not exist in the system,Article: {0} no existeix en el sistema
"Item: {0} managed batch-wise, can not be reconciled using \					Stock Reconciliation, instead use Stock Entry",
Item: {0} not found in the system,Article: {0} no es troba en el sistema
Items,Articles
Items To Be Requested,Articles que s'han de demanar
Items required,
"Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty","Els productes que es sol·licitaran i que estan ""Esgotat"", considerant tots els magatzems basat en Quantitat projectada i quantitat mínima de comanda"
Items which do not exist in Item master can also be entered on customer's request,
Itemwise Discount,Descompte d'articles
Itemwise Recommended Reorder Level,Nivell d'articles recomanat per a tornar a passar comanda
Job Applicant,Job Applicant
Job Opening,Obertura de treball
Job Profile,Perfil Laboral
Job Title,
"Job profile, qualifications required etc.","Perfil del lloc, formació necessària, etc."
Jobs Email Settings,Configuració de les tasques de correu electrònic
Journal Entries,Entrades de diari
Journal Entry,Entrada de diari
Journal Voucher,Assentament de Diari
Journal Voucher Detail,Detall d'assentament de diari
Journal Voucher Detail No,
Journal Voucher {0} does not have account {1} or already matched against other voucher,L'assentament de Diari {0} no té compte {1} o coincideix amb un altre assentament
"Journal Voucher {0} is linked against Order {1}, check if it should be pulled as advance in this invoice.","L'assentament de Diari {0} està enllaçat amb l'Ordre {1}, comproveu si s'ha de llençar com a avançament en aquesta factura."
Journal Vouchers {0} are un-linked,
"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ",
Keep a track of communication related to this enquiry which will help for future reference.,
Keep it web friendly 900px (w) by 100px (h),
Key Performance Area,
Key Responsibility Area,Àrea de Responsabilitat clau
Kg,
LR Date,LR Date
LR No,LR No
Label,Etiqueta
Landed Cost Help,
Landed Cost Item,
Landed Cost Purchase Receipt,
Landed Cost Taxes and Charges,
Landed Cost Voucher,
Landed Cost Voucher Amount,
Language,Idioma
Last Name,Cognoms
Last Order Amount,
Last Purchase Rate,
Last Sales Order Date,
Latest,Més recent
Lead,Client potencial
Lead Details,Detalls del client potencial
Lead Id,Identificador del client potencial
Lead Name,
Lead Owner,Responsable del client potencial
Lead Source,Origen de clients potencials
Lead Status,Estat de l'enviament
Lead Time Date,
Lead Time Days,
Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.,El temps d'arribada és el nombre de dies en què s'espera que aquest article al vostre magatzem. Aquest dia s'informa a Sol·licitud de material quan se selecciona aquest article.
Lead Type,Tipus de client potencial
Lead must be set if Opportunity is made from Lead,S'ha d'indicar el client potencial si la oportunitat té el seu origen en un client potencial
Leave Allocation,Assignació d'absència
Leave Allocation Tool,
Leave Application,
Leave Approver,Aprovador d'absències
Leave Approver Name,Nom de l'aprovador d'absències
Leave Approvers,Aprovadors d'absències
Leave Balance Before Application,Leave Balance Before Application
Leave Block List,
Leave Block List Allow,Leave Block List Allow
Leave Block List Allowed,Llista d'absències permeses bloquejades
Leave Block List Date,
Leave Block List Dates,
Leave Block List Name,
Leave Blocked,Absència bloquejada
Leave Control Panel,
Leave Encashed?,Leave Encashed?
Leave Encashment Amount,
Leave Type,
Leave Type Name,
Leave Without Pay,Absències sense sou
Leave application has been approved.,La sol·licitud d'autorització d'absència ha estat aprovada.
Leave application has been rejected.,
Leave approver must be one of {0},L'aprovador d'absències ha de ser un de {0}
Leave blank if considered for all branches,Deixar en blanc si es considera per a totes les branques
Leave blank if considered for all departments,Deixar en blanc si es considera per a tots els departaments
Leave blank if considered for all designations,Deixar en blanc si es considera per a totes les designacions
Leave blank if considered for all employee types,Deixar en blanc si es considera per a tot tipus d'empleats
"Leave can be approved by users with Role, ""Leave Approver""","L'absència només la pot aprovar un usuari amb rol, ""Revisador d'absències"""
Leave of type {0} cannot be longer than {1},Una absència del tipus {0} no pot ser de més de {1}
Leaves Allocated Successfully for {0},
Leaves for type {0} already allocated for Employee {1} for Fiscal Year {0},Les absències per al tipus {0} ja han estat assignades per Empleat {1} per a l'Any Fiscal {0}
Leaves must be allocated in multiples of 0.5,
Ledger,
Ledgers,Llibres majors
Left,Esquerra
Legal,Legal
Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.,
Legal Expenses,
Letter Head,Capçalera de la carta
Letter Heads for print templates.,
Level,Nivell
Lft,Lft
Liability,Responsabilitat
Link,
List a few of your customers. They could be organizations or individuals.,
List a few of your suppliers. They could be organizations or individuals.,Enumera alguns de les teves proveïdors. Poden ser les organitzacions o individuals.
List items that form the package.,Llista d'articles que formen el paquet.
List of users who can edit a particular Note,Llista d'usuaris que poden editar una nota en particular
List this Item in multiple groups on the website.,Fes una llista d'articles en diversos grups en el lloc web.
"List your products or services that you buy or sell. Make sure to check the Item Group, Unit of Measure and other properties when you start.","Publica els teus productes o serveis de compra o venda Assegura't de revisar el Grup d'articles, unitat de mesura i altres propietats quan comencis"
"List your tax heads (e.g. VAT, Excise; they should have unique names) and their standard rates. This will create a standard template, which you can edit and add more later.","Enumereu els seus impostos principals (per exemple, IVA, impostos especials: han de tenir noms únics) i les seves quotes estàndard. Això crearà una plantilla estàndard, que pot editar i afegir més tard."
Loading...,Carregant ...
Loans (Liabilities),Préstecs (passius)
Loans and Advances (Assets),Préstecs i bestretes (Actius)
Local,
"Log of Activities performed by users against Tasks that can be used for tracking time, billing.","Bloc d'activitats realitzades pels usuaris durant les feines que es poden utilitzar per al seguiment del temps, facturació."
Login,Iniciar Sessió
Login with your new User ID,
Logo,Logo
Logo and Letter Heads,
Lost,
Lost Reason,
Low,
Lower Income,Lower Income
MTN Details,MTN Details
Main,
Main Reports,Informes principals
Maintain Same Rate Throughout Sales Cycle,Mantenir la mateixa tarifa durant tot el cicle de vendes
Maintain same rate throughout purchase cycle,
Maintenance,Manteniment
Maintenance Date,
Maintenance Details,Detalls de Manteniment
Maintenance Manager,Gerent de Manteniment
Maintenance Schedule,
Maintenance Schedule Detail,Detall del Programa de manteniment
Maintenance Schedule Item,Programa de manteniment d'articles
Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule',"El programa de manteniment no es genera per a tots els articles Si us plau, feu clic a ""Generar Planificació"""
Maintenance Schedule {0} exists against {0},
Maintenance Schedule {0} must be cancelled before cancelling this Sales Order,Programa de manteniment {0} ha de ser cancel·lat abans de cancel·lar aquesta comanda de vendes
Maintenance Schedules,Programes de manteniment
Maintenance Status,
Maintenance Time,Temps de manteniment
Maintenance Type,Tipus de Manteniment
Maintenance User,Usuari de Manteniment
Maintenance Visit,
Maintenance Visit Purpose,Manteniment Motiu de visita
Maintenance Visit {0} must be cancelled before cancelling this Sales Order,
Maintenance start date can not be before delivery date for Serial No {0},Data d'inici de manteniment no pot ser abans de la data de lliurament pel número de sèrie {0}
Major/Optional Subjects,Major/Optional Subjects
Make ,
Make Accounting Entry For Every Stock Movement,Feu Entrada Comptabilitat Per Cada moviment d'estoc
Make Bank Voucher,Fer justificant bancari
Make Credit Note,
Make Debit Note,Fer Nota de Dèbit
Make Delivery,Feu Lliurament
Make Difference Entry,
Make Excise Invoice,Feu Factura impostos especials
Make Installation Note,Fer nota s'instal·lació
Make Invoice,Fer Factura
Make Journal Voucher,
Make Maint. Schedule,Fer Planificació de Manteniment
Make Maint. Visit,Make Maint. Visita
Make Maintenance Visit,
Make Packing Slip,
Make Payment,Realitzar Pagament
Make Payment Entry,Feu Entrada Pagament
Make Purchase Invoice,
Make Purchase Order,
Make Purchase Receipt,Fes el rebut de compra
Make Salary Slip,
Make Salary Structure,
Make Sales Invoice,Fer Factura Vendes
Make Sales Order,
Make Supplier Quotation,Fer Oferta de Proveïdor
Make Time Log Batch,Fer un registre de temps
Make new POS Setting,
Male,Home
Manage Customer Group Tree.,
Manage Sales Partners.,Administrar Punts de vendes.
Manage Sales Person Tree.,Organigrama de vendes
Manage Territory Tree.,
Manage cost of operations,
Management,
Manager,Gerent
"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.","Obligatori si Article d'estoc és ""Sí"". També el magatzem predeterminat en què la quantitat reservada s'estableix a partir d'ordres de venda."
Manufacture,
Manufacture against Sales Order,Fabricació contra ordre de vendes
Manufactured Item,
Manufactured Qty,Quantitat fabricada
Manufactured quantity will be updated in this warehouse,
Manufactured quantity {0} cannot be greater than planned quanitity {1} in Production Order {2},La quantitat fabricada {0} no pot ser més gran que la quantitat planificada {1} a l'ordre de producció {2}
Manufacturer,Fabricant
Manufacturer Part Number,PartNumber del fabricant
Manufacturing,
Manufacturing Manager,Gerent de Fàbrica
Manufacturing Quantity,Quantitat a fabricar
Manufacturing Quantity is mandatory,Quantitat de fabricació és obligatori
Manufacturing User,Usuari de fabricació
Margin,
Marital Status,Estat Civil
Market Segment,
Marketing,Màrqueting
Marketing Expenses,Despeses de Màrqueting
Married,
Mass Mailing,Mass Mailing
Master Name,Nom Mestre
Master Name is mandatory if account type is Warehouse,El Nom principal és obligatori si el tipus de compte és Magatzem
Master Type,
Masters,Màsters
Match non-linked Invoices and Payments.,
Material Issue,
Material Manager,
Material Master Manager,Material Master Manager
Material Receipt,
Material Request,Sol·licitud de materials
Material Request Detail No,Número de detall de petició de material
Material Request For Warehouse,Sol·licitud de material per al magatzem
Material Request Item,Material Request Item
Material Request Items,
Material Request No,Número de sol·licitud de Material
Material Request Type,
Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Per l'article {1} es poden fer un màxim de {0} sol·licituds de materials destinats a l'ordre de venda {2}
Material Request used to make this Stock Entry,
Material Request {0} is cancelled or stopped,Material de Sol·licitud {0} es cancel·la o s'atura
Material Requests for which Supplier Quotations are not created,Les sol·licituds de material per als quals no es creen Ofertes de Proveïdor
Material Requests {0} created,Sol·licituds de material {0} creats
Material Requirement,Requirement de Material
Material Transfer,
Material User,Material User
Materials,
Materials Required (Exploded),Materials necessaris (explotat)
Max 5 characters,Max 5 caràcters
Max Days Leave Allowed,Màxim de dies d'absència permesos
Max Discount (%),Descompte màxim (%)
Max Qty,Quantitat màxima
Max discount allowed for item: {0} is {1}%,Descompte màxim permès per l'article: {0} és {1}%
Maximum Amount,
Maximum {0} rows allowed,Màxim {0} files permeses
Maxiumm discount for Item {0} is {1}%,Maxim descompte per article {0} és {1}%
Medical,
Medium,Medium
"Merging is only possible if following properties are same in both records. Group or Ledger, Root Type, Company",
Message,Missatge
Message Parameter,Paràmetre del Missatge
Message Sent,Missatge enviat
Message updated,Missatge actualitzat
Messages,Missatges
Messages greater than 160 characters will be split into multiple messages,
Middle Income,Ingrés Mig
Milestone,Fita
Milestone Date,Data de la fita
Milestones,Fites
Milestones will be added as Events in the Calendar,S'afegiran les fites com esdeveniments en el calendari
Min Order Qty,
Min Qty,Quantitat mínima
Min Qty can not be greater than Max Qty,Quantitat mínima no pot ser major que Quantitat màxima
Minimum Amount,Quantitat mínima
Minimum Inventory Level,
Minimum Order Qty,Quantitat de comanda mínima
Minute,
Misc Details,Detalls diversos
Miscellaneous Expenses,
Miscelleneous,
Mobile No,Número de Mòbil
Mobile No.,
Mode of Payment,
Modern,Modern
Monday,Dilluns
Month,Mes
Monthly,
Monthly Attendance Sheet,Full d'Assistència Mensual
Monthly Earning & Deduction,Ingressos mensuals i Deducció
Monthly Salary Register,Registre de Salari mensual
Monthly salary statement.,
More Details,Més detalls
More Info,Més Info
Motion Picture & Video,Cinema i vídeo
Moving Average,
Moving Average Rate,Moving Average Rate
Mr,Sr
Ms,Sra
Multiple Item prices.,Múltiples Preus d'articles
"Multiple Price Rule exists with same criteria, please resolve \			conflict by assigning priority. Price Rules: {0}",
Music,
Must be Whole Number,Ha de ser nombre enter
Name,Nom
Name and Description,Nom i descripció
Name and Employee ID,
"Name of new Account. Note: Please don't create accounts for Customers and Suppliers, they are created automatically from the Customer and Supplier master",
Name of person or organization that this address belongs to.,Nom de la persona o organització a la que pertany aquesta direcció.
Name of the Budget Distribution,Name of the Budget Distribution
Naming Series,
Negative Quantity is not allowed,No s'admenten quantitats negatives
Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5},
Negative Valuation Rate is not allowed,No es permeten els ràtios de valoració negatius
Net Pay,Pay Net
Net Pay (in words) will be visible once you save the Salary Slip.,El sou net (en paraules) serà visible un cop que es guardi la nòmina.
Net Profit / Loss,Guany/Pèrdua neta
Net Total,Total Net
Net Total (Company Currency),Net Total (En la moneda de la Companyia)
Net Weight,Pes Net
Net Weight UOM,
Net Weight of each Item,Pes net de cada article
Net pay cannot be negative,Salari net no pot ser negatiu
Never,Mai
New Account,
New Account Name,
New BOM,
New Communications,Noves Comunicacions
New Company,Nova Empresa
New Cost Center,Nou Centre de Cost
New Cost Center Name,Nou nom de centres de cost
New Customer Revenue,
New Customers,Clients Nous
New Delivery Notes,Noves notes de lliurament
New Enquiries,Noves consultes
New Leads,
New Leave Application,
New Leaves Allocated,Noves absències Assignades
New Leaves Allocated (In Days),
New Material Requests,Noves peticions de material
New Projects,Nous Projectes
New Purchase Orders,Noves ordres de compra
New Purchase Receipts,Nous rebuts de compra
New Quotations,
New Sales Orders,
New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,
New Stock Entries,
New Stock UOM,Nova UDM d'existències
New Stock UOM is required,
New Stock UOM must be different from current stock UOM,
New Supplier Quotations,
New Support Tickets,Nous Tiquets de Suport
New UOM must NOT be of type Whole Number,La nova UDM no pot ser de tipus Número sencer
New Workplace,Nou lloc de treball
New {0},Nova {0}
New {0} Name,Nou {0} Nom
New {0}: #{1},
Newsletter,Newsletter
Newsletter Content,Contingut del Newsletter
Newsletter Status,Estat de la Newsletter
Newsletter has already been sent,El Newsletter ja s'ha enviat
"Newsletters to contacts, leads.","Newsletters a contactes, clients potencials."
Newspaper Publishers,Editors de Newspapers
Next,
Next Contact By,Següent Contactar Per
Next Contact Date,Data del següent contacte
Next Date,
Next Recurring {0} will be created on {1},Següent Recurrent {0} es crearà a {1}
Next email will be sent on:,El següent correu electrònic s'enviarà a:
No,No
No Customer Accounts found.,
No Customer or Supplier Accounts found,No s'han trobat comptes de clients ni proveïdors
No Data,No hi ha dades
No Item with Barcode {0},Número d'article amb Codi de barres {0}
No Item with Serial No {0},
No Items to pack,No hi ha articles per embalar
No Permission,No permission
No Production Orders created,
No Remarks,Sense Observacions
No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.,No s'han trobat comptes de Proveïdor. Els Comptes de Proveïdor s'identifiquen amb base en el valor de 'Type Master' en registre de compte.
No Updates For,
No accounting entries for the following warehouses,No hi ha assentaments comptables per als següents magatzems
No address added yet.,
No contacts added yet.,Encara no hi ha contactes.
No default Address Template found. Please create a new one from Setup > Printing and Branding > Address Template.,"No hi ha adreça predeterminada. Si us plau, crea'n una de nova a Configuració> Premsa i Branding> plantilla d'adreça."
No default BOM exists for Item {0},
No description given,
No employee found,No s'ha trobat cap empeat
No employee found!,No s'ha trobat cap empleat!
No of Requested SMS,No de SMS sol·licitada
No of Sent SMS,No d'SMS enviats
No of Visits,Número de Visites
No permission,No permission
No permission to use Payment Tool,
No record found,No s'ha trobat registre
No records found in the Invoice table,
No records found in the Payment table,No hi ha registres a la taula de Pagaments
No salary slip found for month: ,
Non Profit,Sense ànim de lucre
Nos,
Not Active,No Actiu
Not Applicable,No Aplicable
Not Available,No Disponible
Not Billed,
Not Delivered,
Not In Stock,No disponible
Not Sent,No Enviat
Not Set,
Not allowed to update stock transactions older than {0},No es permet actualitzar les transaccions de valors més grans de {0}
Not authorized to edit frozen Account {0},No autoritzat per editar el compte bloquejat {0}
Not authroized since {0} exceeds limits,
Not permitted,No permès
Note,Nota
Note User,
Note is a free page where users can share documents / notes,Note és una pàgina gratuïta on els usuaris poden compartir documents/notes
"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Nota: Les còpies de seguretat i arxius no s'eliminen de Dropbox, hauràs de fer-ho manualment."
"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.",
Note: Due Date exceeds the allowed credit days by {0} day(s),Nota: Data de venciment és superior als dies de crèdit permesos en {0} dia(es)
Note: Email will not be sent to disabled users,
"Note: If payment is not made against any reference, make Journal Voucher manually.","Nota: Si el pagament no es fa per una referència concreta, fes l'assentament de Diari manualment."
Note: Item {0} entered multiple times,Nota: L'article {0} entrat diverses vegades
Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,"Nota: L'entrada de pagament no es crearà perquè no s'ha especificat 'Caixa o compte bancari"""
Note: Reference Date {0} is after invoice due date {1},
Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,
Note: There is not enough leave balance for Leave Type {0},Note: There is not enough leave balance for Leave Type {0}
Note: This Cost Center is a Group. Cannot make accounting entries against groups.,
Note: {0},
Notes,Notes
Notes:,Notes:
Nothing to request,Res per sol·licitar
Notice (days),
Notification Control,
Notification Email Address,Dir Adreça de correu electrònic per notificacions
Notify by Email on creation of automatic Material Request,
Number Format,
Number of Order,Número d'ordre
Offer Date,Data d'Oferta
Office,
Office Equipments,Material d'oficina
Office Maintenance Expenses,Despeses de manteniment d'oficines
Office Rent,lloguer de l'oficina
Old Parent,Antic Pare
On Net Total,En total net
On Previous Row Amount,A limport de la fila anterior
On Previous Row Total,Total fila anterior
Online Auctions,Subhastes en línia
Only Leave Applications with status 'Approved' can be submitted,"Només es poden presentar les Aplicacions d'absència amb estat ""Aprovat"""
"Only Serial Nos with status ""Available"" can be delivered.","Només es poden lliurar els números de Sèrie amb l'estat ""disponible"""
Only leaf nodes are allowed in transaction,Només els nodes fulla es permet l'entrada de transaccions
Only the selected Leave Approver can submit this Leave Application,Només l'aprovador d'absències seleccionat pot presentar aquesta sol·licitud
Open,Obert
Open Production Orders,
Open Tickets,
Opening (Cr),
Opening (Dr),Obertura (Dr)
Opening Date,Data d'obertura
Opening Entry,Entrada Obertura
Opening Qty,Quantitat d'obertura
Opening Time,Temps d'obertura
Opening for a Job.,
Operating Cost,Cost de funcionament
Operation Description,Descripció de la operació
Operation No,Número d'Operació
Operation Time (mins),Temps de l'Operació (minuts)
Operation {0} is repeated in Operations Table,Operació {0} es repeteix a la Taula d'Operacions
Operation {0} not present in Operations Table,
Operations,Operacions
Opportunity,
Opportunity Date,Data oportunitat
Opportunity From,Oportunitat De
Opportunity Item,Opportunity Item
Opportunity Items,Articles d'oferta
Opportunity Lost,
Opportunity Type,Tipus d'Oportunitats
Optional. This setting will be used to filter in various transactions.,
Order Type,Tipus d'ordre
Order Type must be one of {0},Tipus d'ordre ha de ser un de {0}
Ordered,
Ordered Items To Be Billed,
Ordered Items To Be Delivered,
Ordered Qty,Quantitat demanada
"Ordered Qty: Quantity ordered for purchase, but not received.",
Ordered Quantity,Quantitat demanada
Orders released for production.,Comandes llançades per a la producció.
Organization Name,
Organization Profile,
Organization branch master.,Organization branch master.
Organization unit (department) master.,Unitat d'Organització (departament) mestre.
Other,Un altre
Other Details,Altres detalls
Others,Altres
Out Qty,Quantitat de sortida
Out of AMC,Fora d'AMC
Out of Warranty,
Outgoing,
Outstanding Amount,Quantitat Pendent
Outstanding for {0} cannot be less than zero ({1}),Excedent per {0} no pot ser menor que zero ({1})
Overdue,Endarrerit
Overdue: ,
Overhead,
Overheads,Overheads
Overlapping conditions found between:,La superposició de les condicions trobades entre:
Overview,Visió de conjunt
Owned,Propietat de
Owner,Propietari
P L A - Cess Portion,
PL or BS,PL o BS
PO Date,PO Date
PO No,
POP3 Mail Server,POP3 Mail Server
POP3 Mail Settings,
POP3 mail server (e.g. pop.gmail.com),Servidor de correu POP3 (per exemple pop.gmail.com)
POP3 server e.g. (pop.gmail.com),
POS,TPV
POS Setting,Ajustos TPV
POS Setting required to make POS Entry,Ajust TPV requereix fer l'entrada TPV
POS Setting {0} already created for user: {1} and company {2},Ajust TPV {0} ja creat per a l'usuari: {1} i companyia {2}
POS View,
PR Detail,
Package Item Details,Detalls d'embalatge d'articles
Package Items,Articles d'embalatge
Package Weight Details,
Packed Item,Article amb embalatge
Packed quantity must equal quantity for Item {0} in row {1},Quantitat embalada ha de ser igual a la quantitat d'articles per {0} a la fila {1}
Packing Details,Detalls del embalatge
Packing List,Llista De Embalatge
Packing Slip,
Packing Slip Item,Albarà d'article
Packing Slip Items,Fulla d'embalatge d'articles
Packing Slip(s) cancelled,Fulla(s) d'embalatge cancel·lat
Page Break,Salt de pàgina
Page Name,Nom de pàgina
Paid,Pagat
Paid Amount,Quantitat pagada
Paid amount + Write Off Amount can not be greater than Grand Total,
Pair,Parell
Parameter,
Parent Account,
Parent Cost Center,
Parent Customer Group,
Parent Detail docname,
Parent Item,
Parent Item Group,Grup d'articles pare
Parent Item {0} must be not Stock Item and must be a Sales Item,Pares d'article {0} no pot de ser article d'estoc i ha de ser un article de Vendes
Parent Party Type,Parent Party Type
Parent Sales Person,Parent Sales Person
Parent Territory,Parent Territory
Parent Website Route,Parent Website Route
Parenttype,
Part-time,Temps parcial
Partially Completed,
Partly Billed,Parcialment Facturat
Partly Delivered,Parcialment Lliurat
Partner Target Detail,
Partner Type,Tipus de Partner
Partner's Website,Lloc Web dels Partners
Party,Party
Party Account,
Party Details,Party Details
Party Type,Tipus Partit
Party Type Name,Party Type Name
Passive,Passiu
Passport Number,Nombre de Passaport
Password,
Pay To / Recd From,Pagar a/Rebut de
Payable,
Payables,Comptes per Pagar
Payables Group,
Payment Account,
Payment Amount,Quantitat de pagament
Payment Days,Dies de pagament
Payment Due Date,Data de pagament
Payment Mode,Mètode de pagament
Payment Pending,
Payment Period Based On Invoice Date,Període de pagament basat en Data de la factura
Payment Received,Pagament rebut
Payment Reconciliation,Reconciliació de Pagaments
Payment Reconciliation Invoice,Factura de Pagament de Reconciliació
Payment Reconciliation Invoices,Factures de conciliació de pagaments
Payment Reconciliation Payment,Payment Reconciliation Payment
Payment Reconciliation Payments,Payment Reconciliation Payments
Payment Tool,Eina de Pagament
Payment Tool Detail,Detall mitjà de Pagament
Payment Tool Details,Detalls eina de pagament
Payment Type,Tipus de Pagament
Payment against {0} {1} cannot be greater \					than Outstanding Amount {2},
Payment cannot be made for empty cart,El pagament no es pot fer per al carro buit
Payment of salary for the month {0} and year {1},
Payments,Pagaments
Payments Made,
Payments Received,Pagaments rebuts
Payments made during the digest period,
Payments received during the digest period,Els pagaments rebuts durant el període
Payroll Settings,Ajustaments de Nòmines
Pending,
Pending Amount,A l'espera de l'Import
Pending Items {0} updated,Articles pendents {0} actualitzats
Pending Review,
Pending SO Items For Purchase Request,A l'espera dels Articles de la SO per la sol·licitud de compra
Pension Funds,
Percentage Allocation,Percentatge d'Assignació
Percentage Allocation should be equal to 100%,Percentatge d'assignació ha de ser igual a 100%
Percentage variation in quantity to be allowed while receiving or delivering this item.,Variació percentual tolerable en la quantitat al rebre o lliurar aquest article.
Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,
Performance appraisal.,
Period,
Period Closing Entry,Entrada de Tancament de Període
Period Closing Voucher,Comprovant de tancament de període
Period From and Period To dates mandatory for recurring %s,Període Des de i Període Fins a obligatoris per recurrent %s
Periodicity,
Permanent Address,Adreça Permanent
Permanent Address Is,Adreça permanent
Permission,Permís
Personal,Personal
Personal Details,
Personal Email,Email Personal
Pharmaceutical,
Pharmaceuticals,Farmacèutics
Phone,
Phone No,
Piecework,Treball a preu fet
Pincode,Codi PIN
Place of Issue,Lloc de la incidència
Plan for maintenance visits.,Pla de visites de manteniment.
Planned Qty,
"Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured.","Planificada Quantitat: Quantitat, per a això, ordre de la producció s'ha elevat, però està a l'espera de ser fabricats."
Planned Quantity,Quantitat planificada
Planning,Planificació
Plant,Planta
Plant and Machinery,Instal·lacions tècniques i maquinària
Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,Si us plau entra una abreviació o Nom curt correctament perquè s'afegirà com sufix a tots Comptes principals
Please Update SMS Settings,
Please add expense voucher details,"Si us plau, afegeix els detalls del comprovant de despeses"
Please add to Modes of Payment from Setup.,
Please click on 'Generate Schedule',"Si us plau, feu clic a ""Generar Planificació"""
Please click on 'Generate Schedule' to fetch Serial No added for Item {0},"Si us plau, feu clic a ""Generar Planificació 'per reservar números de sèrie per l'article {0}"
Please click on 'Generate Schedule' to get schedule,
Please create Customer from Lead {0},"Si us plau, crea Client a partir del client potencial {0}"
Please create Salary Structure for employee {0},
Please create new account from Chart of Accounts.,"Si us plau, creu un nou compte de Pla de Comptes."
Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.,Please do NOT create Account (Ledgers) for Customers and Suppliers. Es creen directament dels mestres client / proveïdor.
Please enter 'Expected Delivery Date',"Si us plau, introdueixi 'la data prevista de lliurament'"
Please enter 'Is Subcontracted' as Yes or No,
Please enter 'Repeat on Day of Month' field value,
Please enter Account Receivable/Payable group in company master,
Please enter Approving Role or Approving User,Si us plau entra el rol d'aprovació o l'usuari aprovador
Please enter BOM for Item {0} at row {1},"Si us plau, introduïu la llista de materials per a l'article {0} a la fila {1}"
Please enter Company,Si us plau entra l'Empresa
Please enter Cost Center,Si us plau entra el centre de cost
Please enter Delivery Note No or Sales Invoice No to proceed,
Please enter Employee Id of this sales parson,Si us plau ingressi l'Id d'Empleat d'aquest venedor
Please enter Expense Account,
Please enter Item Code to get batch no,
Please enter Item Code.,"Si us plau, introduïu el codi d'article."
Please enter Item first,Si us plau entra primer l'article
Please enter Maintaince Details first,Si us plau entra primer els detalls de manteniment
Please enter Master Name once the account is created.,"Si us plau, introduïu el nom un cop creat el compte."
Please enter Payment Amount in atleast one row,
Please enter Planned Qty for Item {0} at row {1},Si us plau entra la quantitat Planificada per l'article {0} a la fila {1}
Please enter Production Item first,Si us plau indica primer l'Article a Producció
Please enter Purchase Receipt No to proceed,Si us plau entra el número de rebut de compra per a continuar
Please enter Purchase Receipt first,Si us plau primer entra el rebut de compra
Please enter Purchase Receipts,Si us plau ingressi rebuts de compra
Please enter Reference date,"Si us plau, introduïu la data de referència"
Please enter Taxes and Charges,Entra les taxes i càrrecs
Please enter Warehouse for which Material Request will be raised,Si us plau indica el Magatzem en què es faràa la Sol·licitud de materials
Please enter Write Off Account,Si us plau indica el Compte d'annotació
Please enter atleast 1 invoice in the table,"Si us plau, introdueixi almenys 1 factura a la taula"
Please enter company first,
Please enter company name first,Si us plau introdueix el nom de l'empresa primer
Please enter default Unit of Measure,
Please enter default currency in Company Master,
Please enter email address,Introduïu l'adreça de correu electrònic
Please enter item details,
Please enter message before sending,
Please enter parent account group for warehouse {0},
Please enter parent cost center,
Please enter quantity for Item {0},Introduïu la quantitat d'articles per {0}
Please enter relieving date.,Please enter relieving date.
Please enter sales order in the above table,
Please enter the Against Vouchers manually,Introduïu manualment la partida dels comprovants
Please enter valid Company Email,Si us plau entra un correu electrònic d'empresa vàlid
Please enter valid Email Id,Si us plau introdueixi un correu electrònic vàlid
Please enter valid Personal Email,Si us plau entreu un correu electrònic personal vàlid
Please enter valid mobile nos,Entra números de mòbil vàlids
Please find attached {0} #{1},Troba adjunt {0} #{1}
Please install dropbox python module,
Please mention no of visits required,
Please pull items from Delivery Note,
Please remove this Invoice {0} from C-Form {1},
Please save the Newsletter before sending,
Please save the document before generating maintenance schedule,"Si us plau, guardi el document abans de generar el programa de manteniment"
Please see attachment,
"Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row",
Please select Bank Account,
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,
Please select Category first,"Si us plau, Selecciona primer la Categoria"
Please select Charge Type first,Seleccioneu Tipus de Càrrec primer
Please select Fiscal Year,
Please select Group or Ledger value,Seleccioneu valor de Grup o Llibre major
Please select Incharge Person's name,"Si us plau, seleccioneu el nom de la persona al càrrec"
"Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM",
Please select Price List,Seleccionla llista de preus
Please select Start Date and End Date for Item {0},Seleccioneu data d'inici i data de finalització per a l'article {0}
Please select Time Logs.,Seleccioneu registres de temps
Please select a csv file,Seleccioneu un arxiu csv
Please select a valid csv file with data,
Please select a value for {0} quotation_to {1},Please select a value for {0} quotation_to {1}
"Please select an ""Image"" first","Seleccioneu una ""imatge"" primer"
Please select charge type first,
Please select company first,Si us plau primer seleccioneu l'empresa
Please select company first.,Si us plau seleccioneu l'empresa en primer lloc.
Please select item code,Seleccioneu el codi de l'article
Please select month and year,Selecciona el mes i l'any
Please select prefix first,Seleccioneu el prefix primer
Please select the document type first,Si us plau. Primer seleccioneu el tipus de document
Please select weekly off day,Si us plau seleccioni el dia lliure setmanal
Please select {0},
Please select {0} first,Seleccioneu {0} primer
Please select {0} first.,
Please set Dropbox access keys in your site config,Please set Dropbox access keys in your site config
Please set Google Drive access keys in {0},Please set Google Drive access keys in {0}
Please set User ID field in an Employee record to set Employee Role,
Please set default Cash or Bank account in Mode of Payment {0},"Si us plau, estableix pagament en efectiu o Compte bancari predeterminat a la Forma de pagament {0}"
Please set default value {0} in Company {0},"Si us plau, estableix el valor per defecte {0} a l'empresa {0}"
Please set {0},"Si us plau, estableix {0}"
Please setup Employee Naming System in Human Resource > HR Settings,Please setup Employee Naming System in Human Resource > HR Settings
Please setup numbering series for Attendance via Setup > Numbering Series,"Si us plau, configureu sèries de numeració per a l'assistència a través de Configuració> Sèries de numeració"
Please setup your POS Preferences,
Please setup your chart of accounts before you start Accounting Entries,"Si us plau, configura el teu pla de comptes abans de començar els assentaments comptables"
Please specify,
Please specify Company,
Please specify Company to proceed,
Please specify Default Currency in Company Master and Global Defaults,
Please specify a,"Si us plau, especifiqueu un"
Please specify a valid 'From Case No.',"Si us plau, especifica un 'Des del Cas Número' vàlid"
Please specify a valid Row ID for {0} in row {1},"Si us plau, especifiqueu un ID de fila vàlid per {0} a la fila {1}"
Please specify either Quantity or Valuation Rate or both,
Please submit to update Leave Balance.,Presenta per actualitzar el balanç d'absències
Plot,Plot
Point of Sale,Punt de Venda
Point-of-Sale Setting,Ajustos de Punt de Venda
Post Graduate,Postgrau
Postal,Postal
Postal Expenses,Despeses postals
Posting Date,Data de publicació
Posting Time,Temps d'enviament
Posting date and posting time is mandatory,
Posting timestamp must be after {0},Data i hora d'enviament ha de ser posterior a {0}
Potential Sales Deal,
Potential opportunities for selling.,
Preferred Billing Address,
Preferred Shipping Address,Adreça d'enviament preferida
Prefix,Prefix
Present,Present
Prevdoc DocType,Prevdoc Doctype
Prevdoc Doctype,Prevdoc Doctype
Preview,
Previous,
Previous Work Experience,Experiència laboral anterior
Price,Preu
Price / Discount,
Price List,
Price List Currency,Price List Currency
Price List Currency not selected,No s'ha escollit una divisa per la llista de preus
Price List Exchange Rate,Tipus de canvi per a la llista de preus
Price List Master,Llista de preus Mestre
Price List Name,nom de la llista de preus
Price List Rate,
Price List Rate (Company Currency),Tarifa de preus (en la moneda de la companyia)
Price List master.,
Price List must be applicable for Buying or Selling,
Price List not found or disabled,La llista de preus no existeix o està deshabilitada
Price List not selected,
Price List {0} is disabled,La llista de preus {0} està deshabilitada
Price or Discount,
Pricing Rule,Regla preus
Pricing Rule Help,Ajuda de la Regla de preus
"Pricing Rule is first selected based on 'Apply On' field, which can be Item, Item Group or Brand.",
"Pricing Rule is made to overwrite Price List / define discount percentage, based on some criteria.","Regla de preus està feta per a sobreescriure la llista de preus/defineix percentatge de descompte, en base a algun criteri."
Pricing Rules are further filtered based on quantity.,
Primary,Primari
Print Format Style,
Print Heading,Imprimir Capçalera
Print Without Amount,
Print and Stationary,
Printing and Branding,Printing and Branding
Priority,Prioritat
Private,
Private Equity,Private Equity
Privilege Leave,Privilege Leave
Probation,Probation
Process Payroll,Process Payroll
Produced,Produït
Produced Quantity,Quantitat produïda
Product Enquiry,Consulta de producte
Production,
Production Order,Ordre de Producció
Production Order status is {0},
Production Order {0} must be cancelled before cancelling this Sales Order,
Production Order {0} must be submitted,L'Ordre de Producció {0} ha d'estar Presentada
Production Orders,Ordres de Producció
Production Orders in Progress,
Production Plan Item,Pla de Producció d'articles
Production Plan Items,Articles del Pla de Producció
Production Plan Sales Order,
Production Plan Sales Orders,
Production Planning Tool,
Production order number is mandatory for stock entry purpose manufacture,El Número d'ordre de producció és obligatori per a les entrades d'estoc de fabricació
Products,
"Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.","Els productes s'ordenaran per pes-antiguitat en les recerques predeterminades. A més del pes-antiguitat, el producte apareixerà més amunt a la llista."
Professional Tax,Impost Professionals
Profit and Loss,Pèrdues i Guanys
Profit and Loss Statement,Guanys i Pèrdues
Project,
Project Costing,Costos del projecte
Project Details,Detalls del projecte
Project Id,Identificació del projecte
Project Manager,Gerent De Projecte
Project Milestone,
Project Milestones,
Project Name,Nom del projecte
Project Start Date,
Project Status,Estat del Projecte
Project Type,Tipus de Projecte
Project Value,Valor de Projecte
Project activity / task.,
Project master.,
Project will get saved and will be searchable with project name given,Es desarà el projecte i es podrà buscar amb el nom assignat
Project wise Stock Tracking,
Project wise Stock Tracking ,
Project-wise data is not available for Quotation,
Projected,Projectat
Projected Qty,Quantitat projectada
Projects,
Projects & System,Projectes i Sistema
Projects Manager,
Projects User,Usuari de Projectes
Prompt for Email on Submission of,Demana el correu electrònic al Presentar
Proposal Writing,Redacció de propostes
Provide email id registered in company,Provide email id registered in company
Provisional Profit / Loss (Credit),Compte de guanys / pèrdues provisional (Crèdit)
Public,
Published on website at: {0},
Publishing,Publicant
Pull sales orders (pending to deliver) based on the above criteria,
Purchase,
Purchase / Manufacture Details,
Purchase Analytics,Anàlisi de Compres
Purchase Common,Purchase Common
Purchase Details,
Purchase Discounts,
Purchase Invoice,Factura de Compra
Purchase Invoice Advance,Factura de compra anticipada
Purchase Invoice Advances,Anticips de Factura de Compra
Purchase Invoice Item,
Purchase Invoice Trends,Tendències de les Factures de Compra
Purchase Invoice {0} is already submitted,La Factura de compra {0} ja està Presentada
Purchase Item,
Purchase Manager,Gerent de Compres
Purchase Master Manager,Administraodr principal de compres
Purchase Order,
Purchase Order Item,Ordre de compra d'articles
Purchase Order Item No,Ordre de Compra No. l'article
Purchase Order Item Supplied,Article de l'ordre de compra Subministrat
Purchase Order Items,Ordre de Compra d'articles
Purchase Order Items Supplied,Articles de l'ordre de compra lliurats
Purchase Order Items To Be Billed,Ordre de Compra articles a facturar
Purchase Order Items To Be Received,Articles a rebre de l'ordre de compra
Purchase Order Message,Missatge de les Ordres de Compra
Purchase Order Required,
Purchase Order Trends,
Purchase Order number required for Item {0},Número d'ordre de Compra per {0}
Purchase Order {0} is 'Stopped',
Purchase Order {0} is not submitted,
Purchase Orders given to Suppliers.,Ordres de compra donades a Proveïdors.
Purchase Price List,Llista de preus de Compra
Purchase Receipt,Albarà de compra
Purchase Receipt Item,
Purchase Receipt Item Supplied,Rebut de compra dels articles subministrats
Purchase Receipt Item Supplieds,
Purchase Receipt Items,Rebut de compra d'articles
Purchase Receipt Message,
Purchase Receipt No,Número de rebut de compra
Purchase Receipt Required,Es requereix rebut de compra
Purchase Receipt Trends,Purchase Receipt Trends
Purchase Receipt must be submitted,
Purchase Receipt number required for Item {0},
Purchase Receipt {0} is not submitted,El rebut de compra {0} no està presentat
Purchase Receipts,Rebut de compra
Purchase Register,
Purchase Return,Devolució de Compra
Purchase Returned,Compra retornada
Purchase Taxes and Charges,
Purchase Taxes and Charges Master,Purchase Taxes and Charges Master
Purchase User,Usuari de compres
"Purchase rate for item: {0} not found, which is required to book accounting entry (expense). Please mention item price against a buying price list.",
Purchse Order number required for Item {0},
Purpose,Propòsit
Purpose must be one of {0},Propòsit ha de ser un de {0}
QA Inspection,Inspecció de qualitat
Qty,Quantitat
Qty Consumed Per Unit,
Qty To Manufacture,Quantitat a fabricar
Qty as per Stock UOM,La quantitat d'existències ha d'estar expresada en la UDM
Qty to Deliver,Quantitat a lliurar
Qty to Order,
Qty to Receive,
Qty to Transfer,Quantitat a Transferir
Qualification,Qualificació
Quality,Qualitat
Quality Inspection,Inspecció de Qualitat
Quality Inspection Parameters,
Quality Inspection Reading,
Quality Inspection Readings,Lectures d'inspecció de qualitat
Quality Inspection required for Item {0},Inspecció de qualitat requerida per a l'article {0}
Quality Management,Gestió de la Qualitat
Quality Manager,Gerent de Qualitat
Quantity,
Quantity Requested for Purchase,
Quantity and Rate,
Quantity and Warehouse,Quantitat i Magatzem
Quantity cannot be a fraction in row {0},La quantitat no pot ser una fracció a la fila {0}
Quantity for Item {0} must be less than {1},
Quantity in row {0} ({1}) must be same as manufactured quantity {2},
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,
Quantity required for Item {0} in row {1},
Quarter,Trimestre
Quarterly,Trimestral
Quick Help,Ajuda Ràpida
Quotation,Oferta
Quotation Item,
Quotation Items,
Quotation Lost Reason,
Quotation Message,
Quotation To,Oferta per
Quotation Trends,Quotation Trends
Quotation {0} is cancelled,L'annotació {0} està cancel·lada
Quotation {0} not of type {1},
Quotations received from Suppliers.,Ofertes rebudes dels proveïdors.
Quotes to Leads or Customers.,Cotitzacions a clients potencials o a clients.
Raise Material Request when stock reaches re-order level,
Raised By,Raised By
Raised By (Email),Raised By (Email)
Random,
Range,
Rate,Tarifa
Rate ,
Rate (%),Tarifa (%)
Rate (Company Currency),
Rate Of Materials Based On,Tarifa de materials basats en
Rate and Amount,
Rate at which Customer Currency is converted to customer's base currency,Canvi al qual la divisa del client es converteix la moneda base del client
Rate at which Price list currency is converted to company's base currency,Valor pel qual la divisa de la llista de preus es converteix a la moneda base de la companyia
Rate at which Price list currency is converted to customer's base currency,
Rate at which customer's currency is converted to company's base currency,Rati a la qual es converteix la divisa del client es converteix en la moneda base de la companyia
Rate at which supplier's currency is converted to company's base currency,Equivalència a la qual la divisa del proveïdor es converteixen a la moneda base de la companyia
Rate at which this tax is applied,Rati a la qual s'aplica aquest impost
Raw Material,Matèria Primera
Raw Material Item Code,
Raw Materials Supplied,Matèries primeres subministrades
Raw Materials Supplied Cost,
Raw material cannot be same as main Item,
Re-Open Ticket,Reobrir tiquet
Re-Order Level,
Re-Order Qty,
Re-order,
Re-order Level,Reordenar Nivell
Re-order Qty,Quantitat per comanda de manteniment de mínims
Read,Llegir
Reading 1,Lectura 1
Reading 10,Reading 10
Reading 2,
Reading 3,Lectura 3
Reading 4,Reading 4
Reading 5,Lectura 5
Reading 6,
Reading 7,
Reading 8,Lectura 8
Reading 9,Lectura 9
Real Estate,Real Estate
Reason,
Reason for Leaving,
Reason for Resignation,Motiu del cessament
Reason for losing,Motiu de pèrdua
Recd Quantity,Recd Quantitat
Receivable,Compte per cobrar
Receivable / Payable account will be identified based on the field Master Type,Receivable / Payable account will be identified based on the field Master Type
Receivables,Cobrables
Receivables / Payables,
Receivables Group,
Received,Rebut
Received Date,Data de recepció
Received Items To Be Billed,Articles rebuts per a facturar
Received Or Paid,
Received Qty,Quantitat rebuda
Received and Accepted,Rebut i acceptat
Receiver List,
Receiver List is empty. Please create Receiver List,"La llista de receptors és buida. Si us plau, crea la Llista de receptors"
Receiver Parameter,Paràmetre de Receptor
Recipients,Destinataris
Reconcile,Conciliar
Reconciliation Data,Reconciliation Data
Reconciliation HTML,
Reconciliation JSON,
Record item movement.,Desa el Moviment d'article
Recurring Id,
Recurring Invoice,Factura Recurrent
Recurring Order,Ordre Recurrent
Recurring Type,Tipus Recurrent
Reduce Deduction for Leave Without Pay (LWP),Reduir Deducció per absències sense sou (LWP)
Reduce Earning for Leave Without Pay (LWP),Reduir el guany per absències sense sou (LWP)
Ref,
Ref Code,Codi de Referència
Ref Date,
Ref SQ,
Reference,referència
Reference #{0} dated {1},Referència #{0} amb data {1}
Reference Date,Data de Referència
Reference Name,Referència Nom
Reference No,Referència número
Reference No & Reference Date is required for {0},
Reference No is mandatory if you entered Reference Date,
Reference Number,
Reference Row #,Referència Fila #
Refresh,refrescar
Registration Details,Detalls de registre
Registration Info,
Rejected,Rebutjat
Rejected Quantity,Quantitat Rebutjada
Rejected Serial No,Número de sèrie Rebutjat
Rejected Warehouse,Magatzem no conformitats
Rejected Warehouse is mandatory against regected item,Cal indicar el magatzem de no conformitats per la partida rebutjada
Relation,Relació
Relieving Date,
Relieving Date must be greater than Date of Joining,
Remark,
Remarks,Observacions
Remove item if charges is not applicable to that item,Treure article si els càrrecs no és aplicable a aquest
Rename,Canviar el nom
Rename Log,Canviar el nom de registre
Rename Tool,Eina de canvi de nom
Rent Cost,Cost de lloguer
Rent per hour,Lloguer per hores
Rented,Llogat
Reorder Level,
Reorder Qty,Quantitat per a generar comanda
Repack,Torneu a embalar
Repeat Customer Revenue,
Repeat Customers,
Repeat on Day of Month,
Replace,Reemplaçar
Replace Item / BOM in all BOMs,
"Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Reemplaçar una llista de materials(BOM) a totes les altres llistes de materials(BOM) on s'utilitza. Substituirà l'antic enllaç de llista de materials(BOM), s'actualitzarà el cost i es regenerarà la taula ""BOM Explosionat"", segons la nova llista de materials"
Replied,Respost
Report Date,Data de l'informe
Report Type,
Report Type is mandatory,
Reports to,Informes a
Reqd By Date,Reqd By Date
Reqd by Date,Reqd By Date
Request Type,
Request for Information,Sol·licitud d'Informació
Request for purchase.,Sol·licitud de venda.
Requested,
Requested For,Requerida Per
Requested Items To Be Ordered,
Requested Items To Be Transferred,Articles sol·licitats per a ser transferits
Requested Qty,
"Requested Qty: Quantity requested for purchase, but not ordered.","Quantitat Sol·licitada: Quantitat sol·licitada per a la compra, però sense demanar."
Requests for items.,Sol·licituds d'articles.
Required By,Requerit per
Required Date,
Required Qty,Quantitat necessària
Required only for sample item.,Només és necessari per l'article de mostra.
Required raw materials issued to the supplier for producing a sub - contracted item.,Matèries primeres necessàries emeses al proveïdor per a la producció d'un sub - element contractat.
Research,Recerca
Research & Development,
Researcher,Investigador
Reseller,Revenedor
Reserved,
Reserved Qty,
"Reserved Qty: Quantity ordered for sale, but not delivered.",
Reserved Quantity,Quantitat reservades
Reserved Warehouse,Magatzem Reservat
Reserved Warehouse in Sales Order / Finished Goods Warehouse,Magatzem Reservat a Ordres de venda / Magatzem de productes acabats
Reserved Warehouse is missing in Sales Order,Falta la reserva de magatzem a ordres de venda
Reserved Warehouse required for stock Item {0} in row {1},
Reserved warehouse required for stock item {0},
Reserves and Surplus,Reserves i Superàvit
Reset Filters,
Resignation Letter Date,
Resolution,
Resolution Date,
Resolution Details,
Resolved By,Resolta Per
Rest Of The World,Resta del món
Retail,Venda al detall
Retail & Wholesale,Al detall i a l'engròs
Retailer,
Review Date,Data de revisió
Rgt,Rgt
Role Allowed to edit frozen stock,
Role that is allowed to submit transactions that exceed credit limits set.,Rol al que es permet presentar les transaccions que excedeixin els límits de crèdit establerts.
Root Type,
Root Type is mandatory,Root Type is mandatory
Root account can not be deleted,
Root cannot be edited.,Root no es pot editar.
Root cannot have a parent cost center,
Rounded Off,
Rounded Total,Total Arrodonit
Rounded Total (Company Currency),Total arrodonit (en la divisa de la companyia)
Row # ,
Row # {0}: ,
Row #{0}: Please specify Serial No for Item {1},Fila #{0}: Si us plau especifica el número de sèrie per l'article {1}
Row {0}: Account {1} does not match with {2} {3} Name,
Row {0}: Account {1} does not match with {2} {3} account,Fila {0}: Compte {1} no coincideix amb el compte {2} {3}
Row {0}: Allocated amount {1} must be less than or equals to JV amount {2},Fila {0}: quantitat assignada {1} ha de ser menor o igual a l'import JV {2}
Row {0}: Allocated amount {1} must be less than or equals to invoice outstanding amount {2},Fila {0}: quantitat assignada {1} ha de ser menor o igual a quantitat pendent de facturar {2}
Row {0}: Conversion Factor is mandatory,Fila {0}: el factor de conversió és obligatori
Row {0}: Credit entry can not be linked with a {1},
Row {0}: Debit entry can not be linked with a {1},
Row {0}: Payment Amount cannot be greater than Outstanding Amount,Fila {0}: Quantitat de pagament no pot ser superior a quantitat lliurada
Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Fila {0}: El pagament contra Vendes / Ordre de Compra sempre ha d'estar marcat com a pagamet anticipat (bestreta)
Row {0}: Payment amount can not be negative,
Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,"Fila {0}: Si us plau, vegeu ""És Avanç 'contra el Compte {1} si es tracta d'una entrada amb antelació."
Row {0}: Qty is mandatory,Fila {0}: Quantitat és obligatori
"Row {0}: Qty not avalable in warehouse {1} on {2} {3}.					Available Qty: {4}, Transfer Qty: {5}",
"Row {0}: To set {1} periodicity, difference between from and to date \						must be greater than or equal to {2}",
Row {0}: {1} is not a valid {2},La fila {0}: {1} no és vàlida per {2}
Row {0}:Start Date must be before End Date,
Rules for adding shipping costs.,Regles per afegir les despeses d'enviament.
Rules for applying pricing and discount.,
Rules to calculate shipping amount for a sale,
S.O. No.,S.O. No.
SHE Cess on Excise,SHE Cess on Excise
SHE Cess on Service Tax,SHE Cess on Service Tax
SHE Cess on TDS,SHE Cess on TDS
SMS Center,Centre d'SMS
SMS Gateway URL,SMS Gateway URL
SMS Log,
SMS Parameter,Paràmetre SMS
SMS Sender Name,
SMS Settings,Ajustaments de SMS
SO Date,SO Date
SO Pending Qty,
SO Qty,SO Qty
Salary,
Salary Information,Informació sobre sous
Salary Manager,
Salary Mode,Salary Mode
Salary Slip,
Salary Slip Deduction,Deducció de la fulla de nòmina
Salary Slip Earning,Salary Slip Earning
Salary Slip of employee {0} already created for this month,
Salary Structure,Estructura salarial
Salary Structure Deduction,Salary Structure Deduction
Salary Structure Earning,Salary Structure Earning
Salary Structure Earnings,
Salary breakup based on Earning and Deduction.,Salary breakup based on Earning and Deduction.
Salary components.,Components salarials.
Salary template master.,Salary template master.
Sales,
Sales Analytics,
Sales BOM,
Sales BOM Help,
Sales BOM Item,BOM d'article de venda
Sales BOM Items,BOM d'articles de venda
Sales Browser,Analista de Vendes
Sales Details,
Sales Discounts,Descomptes de venda
Sales Email Settings,Ajustos dels correus electrònics de vendes
Sales Expenses,Despeses de venda
Sales Extras,
Sales Funnel,Sales Funnel
Sales Invoice,Factura de vendes
Sales Invoice Advance,Factura proforma
Sales Invoice Item,
Sales Invoice Items,
Sales Invoice Message,Missatge de Factura de vendes
Sales Invoice No,Factura No
Sales Invoice Trends,Tendències de Factures de Vendes
Sales Invoice {0} has already been submitted,
Sales Invoice {0} must be cancelled before cancelling this Sales Order,La factura {0} ha de ser cancel·lada abans de cancel·lar aquesta comanda de vendes
Sales Item,Article de venda
Sales Manager,Gerent De Vendes
Sales Master Manager,Gerent de vendes
Sales Order,Ordre de Venda
Sales Order Date,
Sales Order Item,
Sales Order Items,
Sales Order Message,
Sales Order No,Ordre de Venda No
Sales Order Required,
Sales Order Trends,Sales Order Trends
Sales Order required for Item {0},Ordres de venda requerides per l'article {0}
Sales Order {0} is not submitted,
Sales Order {0} is not valid,
Sales Order {0} is stopped,
Sales Partner,
Sales Partner Name,Nom del revenedor
Sales Partner Target,Sales Partner Target
Sales Partners Commission,Comissió dels revenedors
Sales Person,
Sales Person Name,Nom del venedor
Sales Person Target Variance Item Group-Wise,Sales Person Target Variance Item Group-Wise
Sales Person Targets,
Sales Person-wise Transaction Summary,Resum de transaccions de vendes Persona-savi
Sales Price List,Llista de preus de venda
Sales Register,Registre de vendes
Sales Return,Devolucions de vendes
Sales Returned,
Sales Taxes and Charges,Els impostos i càrrecs de venda
Sales Taxes and Charges Master,Configuració d'Impostos i càrregues
Sales Team,Equip de vendes
Sales Team Details,
Sales Team1,Equip de Vendes 1
Sales User,Usuari de vendes
Sales and Purchase,Compra i Venda
Sales campaigns.,Campanyes de venda.
Salutation,Salutació
Sample Size,Mida de la mostra
Sanctioned Amount,Sanctioned Amount
Saturday,
Schedule,
Schedule Date,
Schedule Details,
Scheduled,
Scheduled Date,Data Prevista
Scheduled to send to {0},Programat per enviar a {0}
Scheduled to send to {0} recipients,
Scheduler Failed Events,Scheduler Failed Events
School/University,
Score (0-5),Puntuació (0-5)
Score Earned,Score Earned
Score must be less than or equal to 5,Score ha de ser menor que o igual a 5
Scrap %,Scrap%
Seasonality for setting budgets.,Estacionalitat per fixar els pressupostos.
Secretary,Secretari
Secured Loans,Préstecs Garantits
Securities & Commodity Exchanges,Securities & Commodity Exchanges
Securities and Deposits,
"See ""Rate Of Materials Based On"" in Costing Section",
"Select ""Yes"" for sub - contracting items","Seleccioneu ""Sí"" per a articles subcontractables"
"Select ""Yes"" if this item is used for some internal purpose in your company.","Seleccioneu ""Sí"" si aquest article s'utilitza per a algun propòsit intern en la seva empresa."
"Select ""Yes"" if this item represents some work like training, designing, consulting etc.","Seleccioneu ""Sí"" si aquest article representa algun treball com formació, disseny, consultoria, etc."
"Select ""Yes"" if you are maintaining stock of this item in your Inventory.",
"Select ""Yes"" if you supply raw materials to your supplier to manufacture this item.","Seleccioneu ""Sí"" si subministres matèries primeres al teu proveïdor per a la fabricació d'aquest material."
Select Budget Distribution to unevenly distribute targets across months.,Seleccioneu Pressupost distribució per distribuir de manera desigual a través d'objectius mesos.
"Select Budget Distribution, if you want to track based on seasonality.","Seleccioneu Pressupost Distribució, si voleu fer un seguiment basat en l'estacionalitat."
Select Company...,
Select DocType,
Select Fiscal Year,Seleccioneu l'any fiscal
Select Fiscal Year...,Seleccioneu l'Any Fiscal ...
Select Items,Seleccionar elements
Select Sales Orders,
Select Sales Orders from which you want to create Production Orders.,Seleccioneu ordres de venda a partir del qual vol crear ordres de producció.
Select Time Logs and Submit to create a new Sales Invoice.,Selecciona Registres de temps i Presenta per a crear una nova factura de venda.
Select Transaction,Seleccionar Transacció
Select Your Language,Selecciona el teu idioma
Select account head of the bank where cheque was deposited.,
Select company name first.,Seleccioneu el nom de l'empresa en primer lloc.
Select template from which you want to get the Goals,
Select the Employee for whom you are creating the Appraisal.,Seleccioneu l'empleat per al qual està creant l'Avaluació.
Select the period when the invoice will be generated automatically,Seleccioneu el període en què la factura es generarà de forma automàtica
Select the relevant company name if you have multiple companies,Seleccioneu el nom de societats corresponent si disposa de diverses empreses
Select the relevant company name if you have multiple companies.,Seleccioneu el nom de societats corresponent si disposa de diverses empreses.
Select type of transaction,Seleccioneu el tipus de transacció
Select who you want to send this newsletter to,
Select your home country and check the timezone and currency.,Seleccioni el seu país d'origen i tria la zona horària i la moneda.
"Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt.",
"Selecting ""Yes"" will allow this item to figure in Sales Order, Delivery Note","En seleccionar ""Sí"" permetrà que aquest article estigui en ordres de venda, i notes de lliurament"
"Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.","En seleccionar ""Sí"" li permetrà crear la llista de materials que mostra la matèria primera i els costos operatius incorreguts en la fabricació d'aquest element."
"Selecting ""Yes"" will allow you to make a Production Order for this item.",
"Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.","En seleccionar ""Sí"" li donarà una identitat única a cada entitat d'aquest article que es pot veure a la taula mestre de Números de sèrie"
Selling,Vendes
Selling Amount,
Selling Rate,La tarifa de venda
Selling Settings,
"Selling must be checked, if Applicable For is selected as {0}",
Send,
Send Autoreply,
Send Email,
Send From,
Send Notifications To,Enviar notificacions a
Send Now,
Send SMS,Enviar SMS
Send To,Enviar a
Send To Type,Enviar a Tipus
Send automatic emails to Contacts on Submitting transactions.,Enviar correus electrònics automàtics als Contactes al Presentar les transaccions
Send mass SMS to your contacts,
Send regular summary reports via Email.,Enviar informes periòdics resumits per correu electrònic.
Send to this list,Enviar a la llista
Sender Name,
Sent,
Sent On,
Separate production order will be created for each finished good item.,
Serial #,
Serial No,Número de sèrie
Serial No / Batch,Número de sèrie / lot
Serial No Details,
Serial No Service Contract Expiry,Número de sèrie del contracte de venciment del servei
Serial No Status,Estat del número de sèrie
Serial No Warranty Expiry,Venciment de la garantia del número de sèrie
Serial No is mandatory for Item {0},
Serial No {0} created,
Serial No {0} does not belong to Delivery Note {1},El número de sèrie {0} no pertany a la nota de lliurament {1}
Serial No {0} does not belong to Item {1},El número de Sèrie {0} no pertany a l'article {1}
Serial No {0} does not belong to Warehouse {1},
Serial No {0} does not exist,El número de sèrie {0} no existeix
Serial No {0} has already been received,
Serial No {0} is under maintenance contract upto {1},
Serial No {0} is under warranty upto {1},El número de sèrie {0} està en garantia fins {1}
Serial No {0} not found,
Serial No {0} not in stock,El número de sèrie {0} no està en estoc
Serial No {0} quantity {1} cannot be a fraction,Número de sèrie {0} quantitat {1} no pot ser una fracció
Serial No {0} status must be 'Available' to Deliver,
Serial Nos Required for Serialized Item {0},Nº de Sèrie Necessari per article serialitzat {0}
Serial Number Series,
Serial number {0} entered more than once,
Serialized Item {0} cannot be updated \					using Stock Reconciliation,
Series,Sèrie
Series List for this Transaction,Llista de Sèries per a aquesta transacció
Series Updated,
Series Updated Successfully,
Series is mandatory,
Series {0} already used in {1},La sèrie {0} ja s'utilitza a {1}
Service,Servei
Service Address,Adreça de Servei
Service Tax,Service Tax
Services,Serveis
Set,Setembre
"Set Default Values like Company, Currency, Current Fiscal Year, etc.",
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,
Set Status as Available,Estableix l'estat com Disponible
Set as Default,Estableix com a predeterminat
Set as Lost,Establir com a Perdut
Set prefix for numbering series on your transactions,Establir prefix de numeracions seriades a les transaccions
Set targets Item Group-wise for this Sales Person.,Establir Grup d'articles per aquest venedor.
Setting Account Type helps in selecting this Account in transactions.,Configurar el Tipus de compte ajuda en la selecció d'aquest compte en les transaccions.
Setting this Address Template as default as there is no other default,
Setting up...,S'està configurant ...
Settings,Ajustos
Settings for Accounts,Ajustaments de Comptes
Settings for Buying Module,Ajustaments del mòdul de Compres
Settings for HR Module,
Settings for Selling Module,Ajustos Mòdul de vendes
"Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""",
Setup,Ajustos
Setup Already Complete!!,Configuració acabada !!
Setup Complete,Instal·lació completa
Setup SMS gateway settings,
Setup Series,
Setup Wizard,Assistent de configuració
Setup incoming server for jobs email id. (e.g. jobs@example.com),Setup incoming server for jobs email id. (e.g. jobs@example.com)
Setup incoming server for sales email id. (e.g. sales@example.com),
Setup incoming server for support email id. (e.g. support@example.com),
Share,
Share With,Compartir amb
Shareholders Funds,Fons dels Accionistes
Shipments to customers.,Enviaments a clients.
Shipping,
Shipping Account,Compte d'Enviaments
Shipping Address,Adreça d'nviament
Shipping Address Name,Nom de l'Adreça d'enviament
Shipping Amount,Total de l'enviament
Shipping Rule,Regla d'enviament
Shipping Rule Condition,Condicions d'enviaments
Shipping Rule Conditions,Condicions d'enviament
Shipping Rule Label,
Shop,Botiga
Shopping Cart,
Short biography for website and other publications.,Breu biografia de la pàgina web i altres publicacions.
Shortage Qty,Quantitat escassetat
"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Mostra ""En estock"" o ""No en estoc"", basat en l'estoc disponible en aquest magatzem."
"Show / Hide features like Serial Nos, POS etc.","Mostra / Amaga característiques com Nº de Sèrie, TPV etc."
Show In Website,Mostra en el lloc web
Show a slideshow at the top of the page,Mostra una presentació de diapositives a la part superior de la pàgina
Show in Website,
Show this slideshow at the top of the page,
Show zero values,Mostra valors zero
Shown in Website,
Sick Leave,
Signature,
Signature to be appended at the end of every email,Firma que s'afegeix al final de cada correu electrònic
Single,Solter
Single unit of an Item.,Unitat individual d'un article
Sit tight while your system is being setup. This may take a few moments.,"Si us plau, espera mentre el sistema està essent configurat. Aquest procés pot trigar una estona."
Slideshow,Slideshow
Soap & Detergent,Sabó i Detergent
Software,
Software Developer,Desenvolupador de Programari
"Sorry, Serial Nos cannot be merged","Ho sentim, els números de sèrie no es poden combinar"
"Sorry, companies cannot be merged",
Source,
Source File,Arxiu d'origen
Source Warehouse,Magatzem d'origen
Source and target warehouse cannot be same for row {0},
Source of Funds (Liabilities),Font dels fons (Passius)
Source warehouse is mandatory for row {0},Magatzem d'origen obligatori per a la fila {0}
Spartan,
"Special Characters except ""-"" and ""/"" not allowed in naming series","Els caràcters especials excepte ""-"" i ""/"" no es permeten en el nomenament de sèries"
Specification Details,Specification Details
Specifications,Especificacions
Specify Exchange Rate to convert one currency into another,
"Specify a list of Territories, for which, this Price List is valid",Especifiqueu una llista de territoris on aquesta llista de preus és vàlida
"Specify a list of Territories, for which, this Shipping Rule is valid",
"Specify a list of Territories, for which, this Taxes Master is valid",Especifiqueu la llista de territoris on s'aplica aquest Patró d'Impostos
Specify conditions to calculate shipping amount,Especifica les condicions d'enviament per calcular l'import del transport
"Specify the operations, operating cost and give a unique Operation no to your operations.","Especifiqueu les operacions, el cost d'operació i dona una número d'operació únic a les operacions."
Split Delivery Note into packages.,
Sports,Esports
Sr,
Standard,Estàndard
Standard Buying,Compra Standard
Standard Reports,Informes estàndard
Standard Selling,Standard Selling
"Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.",
Standard contract terms for Sales or Purchase.,
"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.10. Add or Deduct: Whether you want to add or deduct the tax.",
"Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.",
Start,Començar
Start Date,
Start POS,Inicia TPV
Start date of current invoice's period,Data inicial del període de facturació actual
Start date of current order's period,Data inicial del període de l'ordre actual
Start date should be less than end date for Item {0},La data d'inici ha de ser anterior a la data de finalització per l'article {0}
State,
Statement of Account,Estat de compte
Static Parameters,Paràmetres estàtics
Status,
Status must be one of {0},Estat ha de ser un {0}
Status of {0} {1} is now {2},Situació de {0} {1} és ara {2}
Status updated to {0},Estat actualitzat a {0}
Statutory info and other general information about your Supplier,Informació legal i altra informació general sobre el Proveïdor
Stay Updated,
Stock,Estoc
Stock Adjustment,Ajust d'estoc
Stock Adjustment Account,Compte d'Ajust d'estocs
Stock Ageing,
Stock Analytics,
Stock Assets,Actius
Stock Balance,Saldos d'estoc
Stock Entries already created for Production Order ,
Stock Entry,Entrada estoc
Stock Entry Detail,Detall de les entrades d'estoc
Stock Expenses,Despeses d'estoc
Stock Frozen Upto,Estoc bloquejat fins a
Stock Item,Article d'estoc
Stock Ledger,
Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,Les entrades d'ajust d'estocs i les entrades de GL estan inserits en els rebuts de compra seleccionats
Stock Ledger Entry,
Stock Ledger entries balances updated,Saldos d'entrades de moviments d'estocs actualitzats
Stock Level,Nivell d'existències
Stock Liabilities,Stock Liabilities
Stock Projected Qty,Quantitat d'estoc previst
Stock Queue (FIFO),
Stock Received But Not Billed,Estoc Rebudes però no facturats
Stock Reconcilation Data,
Stock Reconcilation Template,Plantilla d'ajust d'estoc
Stock Reconciliation,Reconciliació d'Estoc
"Stock Reconciliation can be used to update the stock on a particular date, usually as per physical inventory.",
Stock Settings,Ajustaments d'estocs
Stock UOM,UDM de l'Estoc
Stock UOM Replace Utility,Utilitat de susbtitució de les UDM de l'estoc
Stock UOM updatd for Item {0},S'ha actualitzat la UDM de l'article {0}
Stock Uom,UDM de l'Estoc
Stock Value,
Stock Value Difference,Diferència del valor d'estoc
Stock balance in Batch {0} will become negative {1} for Item {2} at Warehouse {3},
Stock balances updated,Imatges de saldos actualitzats
Stock cannot be updated against Delivery Note {0},L'estoc no es pot actualitzar contra la Nota de Lliurament {0}
Stock entries exist against warehouse {0} cannot re-assign or modify 'Master Name',Stock entries exist against warehouse {0} cannot re-assign or modify 'Master Name'
Stock transactions before {0} are frozen,
Stock: ,
Stop,Atura
Stop Birthday Reminders,Aturar recordatoris d'aniversari
Stop users from making Leave Applications on following days.,No permetis que els usuaris realitzin Aplicacions d'absències els següents dies.
Stopped,Detingut
Stopped order cannot be cancelled. Unstop to cancel.,
Stores,Botigues
Stub,
Sub Assemblies,Sub Assemblies
"Sub-currency. For e.g. ""Cent""","Parts de moneda. Per exemple ""Cèntims"""
Subcontract,
Subcontracted,Subcontractat
Subject,
Submit Salary Slip,Presentar nòmina
Submit all salary slips for the above selected criteria,Presenta totes les nòmines amb els criteris anteriorment seleccionats
Submit this Production Order for further processing.,Presentar aquesta ordre de producció per al seu posterior processament.
Submitted,
Subsidiary,Filial
Successful: ,
Successfully Reconciled,Reconciliats amb èxit
Suggestions,Suggeriments
Sunday,
Supplier,
Supplier (Payable) Account,Proveïdor (a pagar) Compte
Supplier (vendor) name as entered in supplier master,Nom del Proveïdor (venedor) tal i com es va entrar a la configuració de proveïdors
Supplier > Supplier Type,Proveïdor > Tipus Proveïdor
Supplier Account,
Supplier Account Head,
Supplier Address,Adreça del Proveïdor
Supplier Addresses and Contacts,Adreces i contactes dels proveïdors
Supplier Details,
Supplier Id,Identificador de Proveïdor
Supplier Invoice Date,Data Factura Proveïdor
Supplier Invoice No,Número de Factura de Proveïdor
Supplier Name,Nom del proveïdor
Supplier Naming By,NOmenament de proveïdors per
Supplier Part Number,PartNumber del proveïdor
Supplier Quotation,
Supplier Quotation Item,Oferta del proveïdor d'article
Supplier Reference,Referència Proveïdor
Supplier Type,Tipus de Proveïdor
Supplier Type / Supplier,
Supplier Type master.,Taula mestre de tipus de proveïdor
Supplier Warehouse,Magatzem Proveïdor
Supplier Warehouse mandatory for sub-contracted Purchase Receipt,
Supplier database.,
Supplier master.,Supplier master.
Supplier of Goods or Services.,
Supplier warehouse where you have issued raw materials for sub - contracting,Magatzem del proveïdor en què ha enviat les matèries primeres per a la subcontractació
Supplier(s),Proveïdor (s)
Supplier-Wise Sales Analytics,
Support,Suport
Support Analtyics,
Support Analytics,
Support Email,
Support Email Settings,
Support Manager,Gerent de Suport
Support Password,Contrasenya de suport
Support Team,Equip de suport
Support Ticket,Tiquet de suport
Support queries from customers.,
Symbol,
Sync Support Mails,Sincronitzar Suport Mails
Sync with Dropbox,Sincronització amb Dropbox
Sync with Google Drive,Sincronitza amb Google Drive
System,Sistema
System Balance,Balanç de Sistema
System Manager,Administrador del sistema
System Settings,
"System User (login) ID. If set, it will become default for all HR forms.","System User (login) ID. If set, it will become default for all HR forms."
System for managing Backups,
TDS (Advertisement),TDS (Publicitat)
TDS (Commission),TDS (Comissió)
TDS (Contractor),TDS (contractista)
TDS (Interest),
TDS (Rent),
TDS (Salary),
Table for Item that will be shown in Web Site,Taula d'article que es mostra en el lloc web
Taken,
Target,Objectiu
Target  Amount,
Target Detail,
Target Details,Detalls del destí
Target Details1,Target Details1
Target Distribution,Target Distribution
Target On,Target On
Target Qty,
Target Warehouse,Magatzem destí
Target warehouse in row {0} must be same as Production Order,El magatzem de destinació de la fila {0} ha de ser igual que l'Ordre de Producció
Target warehouse is mandatory for row {0},Magatzem destí obligatori per a la fila {0}
Task,
Task Details,Detalls de la feina
Task Subject,
Tasks,
Tax,Impost
Tax Amount After Discount Amount,Suma d'impostos Després del Descompte
Tax Assets,
Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items,
Tax Rate,Tax Rate
Tax and other salary deductions.,
Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges,Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges
Tax template for buying transactions.,Plantilla d'Impostos per a les transaccions de compres
Tax template for selling transactions.,
Taxes,
Taxes and Charges,Impostos i càrrecs
Taxes and Charges Added,Impostos i càrregues afegides
Taxes and Charges Added (Company Currency),Impostos i Càrrecs Afegits (Divisa de la Companyia)
Taxes and Charges Calculation,
Taxes and Charges Deducted,Impostos i despeses deduïdes
Taxes and Charges Deducted (Company Currency),
Taxes and Charges Total,
Taxes and Charges Total (Company Currency),Els impostos i càrrecs totals (Divisa de la Companyia)
Technology,Tecnologia
Telecommunications,Telecomunicacions
Telephone Expenses,Despeses telefòniques
Television,Televisió
Template,
Template for performance appraisals.,Plantilla per a les avaluacions d'acompliment.
Template of terms or contract.,Plantilla de termes o contracte.
Temporary Accounts (Assets),Comptes temporals (Actius)
Temporary Accounts (Liabilities),
Temporary Assets,
Temporary Liabilities,Passius temporals
Term Details,Detalls termini
Terms,Condicions
Terms and Conditions,Condicions
Terms and Conditions Content,Contingut de Termes i Condicions
Terms and Conditions Details,
Terms and Conditions Template,Plantilla de Termes i Condicions
Terms and Conditions1,Termes i Condicions 1
Terretory,
Territory,Territori
Territory / Customer,
Territory Manager,Gerent de Territory
Territory Name,Nom del Territori
Territory Target Variance Item Group-Wise,
Territory Targets,
Test,Prova
Test Email Id,Test Email Id
Test the Newsletter,Proveu el Newsletter
The BOM which will be replaced,Llista de materials que serà substituïda
The First User: You,
"The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",
The Organization,L'Organització
"The account head under Liability, in which Profit/Loss will be booked","El compte capçalera amb responsabilitat, en el que es farà l'assentament de Guany / Pèrdua"
The date on which next invoice will be generated. It is generated on submit.,La data en què es generarà la següent factura. Es genera al Presentar.
The date on which recurring invoice will be stop,La data en què s'atura la factura recurrent
The date on which recurring order will be stop,La data en què s'aturarà la comanda recurrent
"The day of the month on which auto invoice will be generated e.g. 05, 28 etc","El dia del mes en què es generarà factura automàtica, per exemple 05, 28, etc."
"The day of the month on which auto invoice will be generated e.g. 05, 28 etc ",
"The day of the month on which auto order will be generated e.g. 05, 28 etc","El dia del mes en el qual l'ordre automàtic es generarà per exemple 05, 28, etc."
"The day of the month on which auto order will be generated e.g. 05, 28 etc ",
The day(s) on which you are applying for leave are holiday. You need not apply for leave.,
The first Leave Approver in the list will be set as the default Leave Approver,El primer aprovadorde d'absències de la llista s'establirà com a predeterminat
The first user will become the System Manager (you can change that later).,El primer usuari es convertirà en l'Administrador del sistema (pot canviar això més endavant).
The gross weight of the package. Usually net weight + packaging material weight. (for print),"El pes brut del paquet. En general, el pes net + embalatge pes del material. (Per imprimir)"
The name of your company for which you are setting up this system.,El nom de la teva empresa per a la qual està creant aquest sistema.
The net weight of this package. (calculated automatically as sum of net weight of items),
The new BOM after replacement,
The rate at which Bill Currency is converted into company's base currency,El canvi al qual la divisa de la Factura es converteix a la moneda base de la companyia
The selected item cannot have Batch,
The unique id for tracking all recurring invoices. It is generated on submit.,L'identificador únic per al seguiment de totes les factures recurrents. Es genera al Presentar.
The unique id for tracking all recurring invoices. It is generated on submit.,
"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Llavors Tarifes de Preu es filtren sobre la base de client, grup de clients, Territori, Proveïdor, Tipus Proveïdor, Campanya, soci de vendes, etc."
There are more holidays than working days this month.,
"There can only be one Shipping Rule Condition with 0 or blank value for ""To Value""",
There is not enough leave balance for Leave Type {0},There is not enough leave balance for Leave Type {0}
There is nothing to edit.,
There was an error. One probable reason could be that you haven't saved the form. Please contact support@erpnext.com if the problem persists.,"S'ha produït un error. Una raó probable podria ser que no ha guardat el formulari. Si us plau, poseu-vos en contacte amb support@erpnext.com si el problema persisteix."
There were errors.,Hi han hagut errors.
There were no updates in the items selected for this digest.,
This Currency is disabled. Enable to use in transactions,Aquesta moneda és deshabilitada Habilitala per a utilitzar-la en les transaccions
This Leave Application is pending approval. Only the Leave Approver can update status.,
This Time Log Batch has been billed.,Aquest registre de temps ha estat facturat.
This Time Log Batch has been cancelled.,Aquest registre de temps ha estat cancel·lat.
This Time Log conflicts with {0},
This format is used if country specific format is not found,Aquest format s'utilitza si no hi ha el format específic de cada país
This is a root account and cannot be edited.,Es tracta d'un compte principal i no es pot editar.
This is a root customer group and cannot be edited.,Es tracta d'un grup de clients de l'arrel i no es pot editar.
This is a root item group and cannot be edited.,This is a root item group and cannot be edited.
This is a root sales person and cannot be edited.,
This is a root territory and cannot be edited.,This is a root territory and cannot be edited.
This is an example website auto-generated from ERPNext,
This is the number of the last created transaction with this prefix,Aquest és el nombre de l'última transacció creat amb aquest prefix
This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.,Aquesta eina us ajuda a actualitzar o corregir la quantitat i la valoració dels estocs en el sistema. Normalment s'utilitza per sincronitzar els valors del sistema i el que realment hi ha en els magatzems.
This will be used for setting rule in HR module,
Thread HTML,Thread HTML
Thursday,Dijous
Time Log,Hora de registre
Time Log Batch,Registre de temps
Time Log Batch Detail,Detall del registre de temps
Time Log Batch Details,Detalls del registre de temps
Time Log Batch {0} must be 'Submitted',S'ha de 'Presentar' el registre de temps {0}
Time Log Status must be Submitted.,
Time Log for tasks.,Registre de temps per a les tasques.
Time Log is not billable,Registre d'hores no facturable
Time Log {0} must be 'Submitted',
Time Zone,Fus horari
Time Zones,Zones horàries
Time and Budget,Temps i Pressupost
Time at which items were delivered from warehouse,Moment en què els articles van ser lliurats des del magatzem
Time at which materials were received,Moment en què es van rebre els materials
Title,Títol
Titles for print templates e.g. Proforma Invoice.,"Títols per a plantilles d'impressió, per exemple, factura proforma."
To,
To Currency,
To Date,
To Date should be same as From Date for Half Day leave,
To Date should be within the Fiscal Year. Assuming To Date = {0},
To Datetime,To Datetime
To Discuss,Per Discutir
To Do List,
To Package No.,Al paquet No.
To Produce,Per a Produir
To Time,
To Value,
To Warehouse,Magatzem destí
"To add child nodes, explore tree and click on the node under which you want to add more nodes.","Per afegir nodes secundaris, explora arbre i feu clic al node en el qual voleu afegir més nodes."
"To assign this issue, use the ""Assign"" button in the sidebar.","Per assignar aquest problema, utilitzeu el botó ""Assignar"" a la barra lateral."
To create a Bank Account,Per crear un compte de banc
To create a Tax Account,Per crear un compte d'impostos
"To create an Account Head under a different company, select the company and save customer.","Per crear un Compte principal per una companyia diferent, seleccioneu l'empresa i deseu el client."
To date cannot be before from date,Fins a la data no pot ser anterior a partir de la data
To enable <b>Point of Sale</b> features,
To enable <b>Point of Sale</b> view,To enable <b>Point of Sale</b> view
To get Item Group in details table,Per obtenir Grup d'articles a la taula detalls
"To include tax in row {0} in Item rate, taxes in rows {1} must also be included","Per incloure l'impost a la fila {0} en la tarifa d'article, els impostos a les files {1} també han de ser inclosos"
"To merge, following properties must be same for both items",
"To not apply Pricing Rule in a particular transaction, all applicable Pricing Rules should be disabled.",
"To set this Fiscal Year as Default, click on 'Set as Default'","Per establir aquest any fiscal predeterminat, feu clic a ""Estableix com a predeterminat"""
To track any installation or commissioning related work after sales,To track any installation or commissioning related work after sales
"To track brand name in the following documents Delivery Note, Opportunity, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No",
To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.,Per realitzar el seguiment de l'article en vendes i documents de compra en base als seus números de sèrie. Aquest és també pugui utilitzat per rastrejar informació sobre la garantia del producte.
To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>
To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,
Too many columns. Export the report and print it using a spreadsheet application.,Massa columnes. Exporta l'informe i utilitza una aplicació de full de càlcul.
Tools,
Total,
Total ({0}),
Total Absent,
Total Achieved,Total Aconseguit
Total Actual,Actual total
Total Advance,Avanç total
Total Amount,Quantitat total
Total Amount To Pay,Import total a pagar
Total Amount in Words,Suma total en Paraules
Total Billing This Year: ,
Total Characters,
Total Claimed Amount,
Total Commission,Total Comissió
Total Cost,Cost total
Total Credit,Crèdit Total
Total Debit,Dèbit total
Total Debit must be equal to Total Credit. The difference is {0},
Total Deduction,Deducció total
Total Earning,Benefici total
Total Experience,
Total Fixed Cost,Cost Total Fix
Total Hours,Total d'hores
Total Hours (Expected),Total d'hores (esperat)
Total Invoiced Amount,Suma total facturada
Total Leave Days,Dies totals d'absències
Total Leaves Allocated,Absències totals assignades
Total Message(s),Total Missatge(s)
Total Operating Cost,Cost total de funcionament
Total Order Considered,
Total Order Value,Valor Total de la comanda
Total Outgoing,Sortint total
Total Payment Amount,Suma total de Pagament
Total Points,Punts totals
Total Present,
Total Qty,Quantitat total
Total Raw Material Cost,Cost Total de Matèries Primeres
Total Revenue,Ingressos totals
Total Sanctioned Amount,
Total Score (Out of 5),Puntuació total (de 5)
Total Target,
Total Tax (Company Currency),
Total Taxes and Charges,Total d'impostos i càrrecs
Total Taxes and Charges (Company Currency),Total Impostos i càrrecs (En la moneda de la Companyia)
Total Variable Cost,
Total Variance,
Total advance ({0}) against Order {1} cannot be greater \				than the Grand Total ({2}),
Total allocated percentage for sales team should be 100,El Percentatge del total assignat per a l'equip de vendes ha de ser de 100
Total amount of invoices received from suppliers during the digest period,Import total de les factures rebudes dels proveïdors durant el període
Total amount of invoices sent to the customer during the digest period,Import total de les factures enviades al client durant el període
Total cannot be zero,El total no pot ser zero
Total in words,Total en paraules
Total points for all goals should be 100. It is {0},
Total weightage assigned should be 100%. It is {0},El pes total assignat ha de ser 100%. És {0}
Total(Amt),
Total(Qty),
Totals,
Track Leads by Industry Type.,Seguiment dels clients potencials per tipus d'indústria.
Track separate Income and Expense for product verticals or divisions.,Seguiment d'Ingressos i Despeses per separat per a les verticals de productes o divisions.
Track this Delivery Note against any Project,
Track this Sales Order against any Project,Seguir aquesta Ordre Vendes cap algun projecte
Transaction,Transacció
Transaction Date,Data de Transacció
Transaction not allowed against stopped Production Order {0},No es permet la transacció cap a l'ordre de producció aturada {0}
Transfer,Transferència
Transfer Material,Transferir material
Transfer Raw Materials,Transferència de Matèries Primeres
Transferred Qty,Quantitat Transferida
Transportation,Transports
Transporter Info,Informació del transportista
Transporter Name,Nom Transportista
Transporter lorry number,Número de de camió del transportista
Travel,Viatges
Travel Expenses,
Tree Type,
Tree of Item Groups.,Arbre dels grups d'articles.
Tree of finanial Cost Centers.,
Tree of finanial accounts.,Arbre dels comptes financers
Trial Balance,Balanç provisional
Tuesday,Dimarts
Type,Tipus
Type of document to rename.,Tipus de document per canviar el nom.
"Type of leaves like casual, sick etc.",
Types of Expense Claim.,
Types of activities for Time Sheets,Tipus d'activitats per a les fitxes de Temps
"Types of employment (permanent, contract, intern etc.).",
UOM Conversion Detail,
UOM Conversion Details,
UOM Conversion Factor,
UOM Conversion factor is required in row {0},
UOM Name,Nom UDM
UOM coversion factor required for UOM: {0} in Item: {1},Es necessita un factor de coversió per la UDM: {0} per l'article: {1}
Under AMC,Sota AMC
Under Graduate,
Under Warranty,Sota Garantia
Unit,Unitat
Unit of Measure,Unitat de mesura
Unit of Measure {0} has been entered more than once in Conversion Factor Table,La unitat de mesura {0} s'ha introduït més d'una vegada a la taula de valors de conversió
"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).","Unitat de mesura d'aquest article (per exemple kg, unitat, parell)."
Units/Hour,
Units/Shifts,Units/Shifts
Unpaid,No pagat
Unreconciled Payment Details,Detalls de Pagaments Sense conciliar
Unscheduled,
Unsecured Loans,
Unstop,Desencallar
Unstop Material Request,Desbloqueja la sol·licitud material
Unstop Purchase Order,
Unsubscribed,
Upcoming Calendar Events (max 10),
Update,
Update Clearance Date,
Update Cost,Actualització de Costos
Update Finished Goods,Actualitzar Productes Acabats
Update Series,Actualitza Sèries
Update Series Number,
Update Stock,
Update additional costs to calculate landed cost of items,
Update bank payment dates with journals.,Actualització de les dates de pagament dels bancs amb les revistes.
Update clearance date of Journal Entries marked as 'Bank Vouchers',Update clearance date of Journal Entries marked as 'Bank Vouchers'
Updated,
Updated Birthday Reminders,Actualitzat recordatoris d'aniversari
Upload Attendance,Pujar Assistència
Upload Backups to Dropbox,Upload Backups to Dropbox
Upload Backups to Google Drive,Upload Backups to Google Drive
Upload HTML,
Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,
Upload attendance from a .csv file,
Upload stock balance via csv.,
Upload your letter head and logo - you can edit them later.,
Upper Income,
Urgent,Urgent
Use Multi-Level BOM,
Use SSL,Utilitza SSL
Used for Production Plan,S'utilitza per al Pla de Producció
User,
User ID,ID d'usuari
User ID not set for Employee {0},ID d'usuari no entrat per l'Empleat {0}
User Name,
User Name or Support Password missing. Please enter and try again.,Falta el Nom d'usuari o la contrasenya. Si us plau entra-ho i torna a intentar-ho.
User Remark,
User Remark will be added to Auto Remark,User Remark will be added to Auto Remark
User Specific,Específiques d'usuari
User must always select,
User {0} is already assigned to Employee {1},L'usuari {0} ja està assignat a l'Empleat {1}
User {0} is disabled,
Username,Nom d'usuari
Users who can approve a specific employee's leave applications,Els usuaris que poden aprovar les sol·licituds de llicència d'un empleat específic
Users with this role are allowed to create / modify accounting entry before frozen date,Els usuaris amb aquest rol poden crear/modificar assentaments comptables abans de la data de bloqueig
Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Els usuaris amb aquest rol poden establir comptes bloquejats i crear/modificar els assentaments comptables contra els comptes bloquejats
Utilities,Utilitats
Utility Expenses,
Valid For Territories,
Valid From,Vàlid des
Valid Upto,Vàlid Fins
Valid for Territories,
Validate,Validar
Valuation,Valoració
Valuation Method,Mètode de Valoració
Valuation Rate,Tarifa de Valoració
Valuation Rate required for Item {0},Es necessita tarifa de valoració per l'article {0}
Valuation and Total,Valoració i total
Value,Valor
Value or Qty,Valor o Quantitat
Variance,Desacord
Vehicle Dispatch Date,Vehicle Dispatch Date
Vehicle No,
Venture Capital,
Verified By,Verified Per
View Details,
View Ledger,
View Now,
Visit report for maintenance call.,
Voucher #,Comprovant #
Voucher Detail No,Número de detall del comprovant
Voucher Detail Number,Voucher Detail Number
Voucher ID,Val ID
Voucher No,Número de comprovant
Voucher Type,
Voucher Type and Date,Tipus d'Vals i Data
Walk In,
Warehouse,Magatzem
Warehouse Contact Info,Informació del contacte del magatzem
Warehouse Detail,Detall Magatzem
Warehouse Name,Nom Magatzem
Warehouse and Reference,Magatzem i Referència
Warehouse can not be deleted as stock ledger entry exists for this warehouse.,El Magatzem no es pot eliminar perquè hi ha entrades al llibre major d'existències d'aquest magatzem.
Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Magatzem només es pot canviar a través d'entrada d'estoc / Nota de lliurament / recepció de compra
Warehouse cannot be changed for Serial No.,
Warehouse is mandatory for stock Item {0} in row {1},El magatzem és obligatòria per l'article d'estoc {0} a la fila {1}
Warehouse not found in the system,Magatzem no trobat al sistema
Warehouse required for stock Item {0},Magatzem necessari per a l'article d'estoc {0}
Warehouse where you are maintaining stock of rejected items,Magatzem en què es desen les existències dels articles rebutjats
Warehouse {0} can not be deleted as quantity exists for Item {1},
Warehouse {0} does not belong to company {1},
Warehouse {0} does not exist,El magatzem {0} no existeix
Warehouse {0}: Company is mandatory,Magatzem {0}: Empresa és obligatori
Warehouse {0}: Parent account {1} does not bolong to the company {2},
Warehouse-wise Item Reorder,Warehouse-wise Item Reorder
Warehouses,Magatzems
Warehouses.,Magatzems.
Warn,Advertir
Warning: Leave application contains following block dates,
Warning: Material Requested Qty is less than Minimum Order Qty,Advertència: La quantitat de Material sol·licitada és inferior a la Quantitat mínima
Warning: Sales Order {0} already exists against same Purchase Order number,Advertència: La comanda de client {0} ja existeix de la mateixa Ordre de Compra
Warning: System will not check overbilling since amount for Item {0} in {1} is zero,Advertència: El sistema no comprovarà sobrefacturació si la quantitat de l'article {0} a {1} és zero
Warranty / AMC Details,Detalls de la Garantia/AMC
Warranty / AMC Status,Garantia / Estat de l'AMC
Warranty Expiry Date,Data final de garantia
Warranty Period (Days),Període de garantia (Dies)
Warranty Period (in days),Període de garantia (en dies)
We buy this Item,Comprem aquest article
We sell this Item,Venem aquest article
Website,Lloc web
Website Description,Descripció del lloc web
Website Item Group,
Website Item Groups,Grups d'article del Web
Website Manager,Gestor de la Pàgina web
Website Settings,Configuració del lloc web
Website Warehouse,Lloc Web del magatzem
Wednesday,
Weekly,
Weekly Off,
Weight UOM,UDM del pes
"Weight is mentioned,\nPlease mention ""Weight UOM"" too","S'esmenta Pes, \n Si us plau, indica també ""UDM del pes"""
Weightage,
Weightage (%),Ponderació (%)
Welcome,Benvinguda
Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,
Welcome to ERPNext. Please select your language to begin the Setup Wizard.,
What does it do?,
"When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.","Quan es ""Presenta"" alguna de les operacions marcades, s'obre automàticament un correu electrònic emergent per enviar un correu electrònic al ""Contacte"" associat a aquesta transacció, amb la transacció com un arxiu adjunt. L'usuari pot decidir enviar, o no, el correu electrònic."
"When submitted, the system creates difference entries to set the given stock and valuation on this date.","Quan es presenta, el sistema crea entrades de diferència per ajustar l'estoc i la valoració en aquesta data."
Where items are stored.,Lloc d'emmagatzematge dels articles.
Where manufacturing operations are carried out.,On es duen a terme les operacions de fabricació.
Widowed,
Will be calculated automatically when you enter the details,Es calculen automàticament quan introdueix els detalls
Will be updated after Sales Invoice is Submitted.,
Will be updated when batched.,Will be updated when batched.
Will be updated when billed.,S'actualitzarà quan es facturi.
Wire Transfer,
With Operations,Amb Operacions
Work Details,Detalls de treball
Work Done,
Work In Progress,
Work-in-Progress Warehouse,Magatzem de treballs en procés
Work-in-Progress Warehouse is required before Submit,Es requereix Magatzem de treballs en procés abans de Presentar
Working,Treballant
Working Days,
Workstation,Lloc de treball
Workstation Name,Nom de l'Estació de treball
Write Off Account,
Write Off Amount,Anota la quantitat
Write Off Amount <=,Anota la quantitat <=
Write Off Based On,Anotació basada en
Write Off Cost Center,
Write Off Outstanding Amount,Write Off Outstanding Amount
Write Off Voucher,Anotar el comprovant
Wrong Template: Unable to find head row.,Plantilla incorrecte: No es pot trobar la capçalera de la fila.
Year,Any
Year Closed,Any Tancat
Year End Date,
Year Name,
Year Start Date,Any Data d'Inici
Year of Passing,Any de defunció
Yearly,Anual
Yes,Sí
You are not authorized to add or update entries before {0},
You are not authorized to set Frozen value,No estàs autoritzat per establir el valor bloquejat
You are the Expense Approver for this record. Please Update the 'Status' and Save,"Ets l'aprovador de despeses per a aquest registre. Actualitza l '""Estat"" i Desa"
You are the Leave Approver for this record. Please Update the 'Status' and Save,
You can enter any date manually,
You can enter the minimum quantity of this item to be ordered.,Podeu introduir la quantitat mínima d'aquest article al demanar-lo.
You can not change rate if BOM mentioned agianst any item,No es pot canviar la tarifa si el BOM va cap a un article
You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,"No es pot deixar d'indicar el Número de nota de Lliurament Nota i Número de Factura. Si us plau, indica algun dels dos."
You can not enter current voucher in 'Against Journal Voucher' column,No pots entrar aquest assentament a la columna 'Contra assentament de Diari'
You can set Default Bank Account in Company master,Podeu configurar el compte bancari predeterminat a la configuració d'Empresa
You can start by selecting backup frequency and granting access for sync,Pots començar per seleccionar la freqüència de còpia de seguretat i la concessió d'accés per a la sincronització
You can submit this Stock Reconciliation.,Podeu presentar aquesta Reconciliació d'estoc.
You can update either Quantity or Valuation Rate or both.,Pot actualitzar Quantitat o Tipus de valoració o ambdós.
You cannot credit and debit same account at the same time,No es pot configurar el mateix compte com crèdit i dèbit a la vegada
You have entered duplicate items. Please rectify and try again.,"Has introduït articles duplicats. Si us plau, rectifica-ho i torna a intentar-ho."
You may need to update: {0},
You must Save the form before proceeding,Has de desar el formulari abans de continuar
Your Customer's TAX registration numbers (if applicable) or any general information,
Your Customers,Els teus Clients
Your Login Id,ID d'usuari
Your Products or Services,Els Productes o Serveis de la teva companyia
Your Suppliers,Els seus Proveïdors
Your email address,La seva adreça de correu electrònic
Your financial year begins on,
Your financial year ends on,El seu exercici acaba el
Your sales person who will contact the customer in future,La seva persona de vendes que es comunicarà amb el client en el futur
Your sales person will get a reminder on this date to contact the customer,
Your setup is complete. Refreshing...,La seva configuració s'ha completat. Actualitzant ...
Your support email id - must be a valid email - this is where your emails will come!,El teu correu electrònic d'identificació - ha de ser un correu electrònic vàlid - aquí és on arribaran els teus correus electrònics!
[Error],[Error]
[Select],[Select]
`Freeze Stocks Older Than` should be smaller than %d days.,`Bloqueja els estocs més antics que' ha de ser menor de %d dies.
and,i
are not allowed.,no estan permesos.
assigned by,
cannot be greater than 100,
disabled user,
"e.g. ""Build tools for builders""","per exemple ""Construir eines per als constructors """
"e.g. ""MC""","per exemple ""MC """
"e.g. ""My Company LLC""",
e.g. 5,per exemple 5
"e.g. Bank, Cash, Credit Card","per exemple bancària, Efectiu, Targeta de crèdit"
"e.g. Kg, Unit, Nos, m","per exemple kg, unitat, m"
e.g. VAT,"per exemple, l'IVA"
eg. Cheque Number,
example: Next Day Shipping,exemple: Enviament Dia següent
fold,fold
hidden,Ocult
hours,hores
lft,
old_parent,old_parent
rgt,
to,a
website page link,website page link
{0} '{1}' not in Fiscal Year {2},
{0} ({1}) must have role 'Expense Approver',{0} ({1}) ha de tenir rol 'aprovador de despeses'
{0} ({1}) must have role 'Leave Approver',
{0} Credit limit {1} crossed,
{0} Recipients,{0} Destinataris
{0} Serial Numbers required for Item {0}. Only {0} provided.,{0} Números de sèrie d'articles requerits per {0}. Només {0} prevista.
{0} Tree,{0} Arbre
{0} against Purchase Order {1},{0} contra l'Ordre de Compra {1}
{0} against Sales Invoice {1},
{0} against Sales Order {1},
{0} budget for Account {1} against Cost Center {2} will exceed by {3},
{0} can not be negative,{0} no pot ser negatiu
{0} created,{0} creat
{0} days from {1},{0} dies des de {1}
{0} does not belong to Company {1},
{0} entered twice in Item Tax,{0} entrat dues vegades en l'Impost d'article
{0} is an invalid email address in 'Notification \					Email Address',
{0} is mandatory,{0} és obligatori
{0} is mandatory for Item {1},{0} és obligatori per l'article {1}
{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} és obligatori. Potser el registre de canvi de divisa no es crea per {1} a {2}.
{0} is not a stock Item,{0} no és un article d'estoc
{0} is not a valid Batch Number for Item {1},
{0} is not a valid Leave Approver. Removing row #{1}.,
{0} is not a valid email id,{0} no és un correu electrònicvàlid
{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.,"{0} és ara l'Any Fiscal.oer defecte Si us plau, actualitzi el seu navegador perquè el canvi tingui efecte."
{0} is required,{0} és necessari
{0} must be a Purchased or Sub-Contracted Item in row {1},{0} ha de ser un article de compra o de subcontractació a la fila {1}
{0} must be reduced by {1} or you should increase overflow tolerance,{0} ha de ser reduït per {1} o s'ha d'augmentar la tolerància de desbordament
{0} valid serial nos for Item {1},
{0} {1} against Bill {2} dated {3},{0} {1} contra la factura {2} de data {3}
{0} {1} has already been submitted,{0} {1} ja s'ha presentat
{0} {1} has been modified. Please refresh.,"{0} {1} ha estat modificat. Si us plau, actualitzia"
{0} {1} is fully billed,
{0} {1} is not submitted,
{0} {1} is stopped,{0} {1} està aturat
{0} {1} must be submitted,{0} {1} s'ha de Presentar
{0} {1} not in any Fiscal Year. For more details check {2}.,"{0} {1} sense any fiscal. Per a més detalls, consulta {2}."
{0} {1} status is 'Stopped',"{0} {1} L'Estat és ""Aturat '"
{0} {1} status is Stopped,{0} {1} Estat Aturat
{0} {1} status is Unstopped,{0} {1} Estat és no aturat
{0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Centre de Cost és obligatori per l'article {2}
{0}: {1} not found in Invoice Details table,
