 (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 = [?] Fraction
For 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 del 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 en 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,Data d'envelliment és obligatori 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,All Contact
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,ID de correu electrònic
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,Plegar
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,Identificació de l'enviament
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,Sense Permís
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 per data
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,De venda
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.

#### Note

The 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 Columns

1. 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 booked
3. 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.

#### Note

The 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 Columns

1. 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 booked
3. 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,Factura de Proveïdor No
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 metre 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
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.,
"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,
