 (Half Day), (Mezza Giornata)
 against same operation, per la stessa operazione
 already marked, già avviato
 and year: , ed anno: 
 at warehouse: , in magazzino: 
 by Role , dal Ruolo 
 can not be made., non può essere fatto.
 cannot be 0, non può essere 0
 cannot be deleted., non può essere eliminata.
 does not belong to the company, non appartiene alla società
 has already been submitted., già stato inviato.
 has been freezed. , è stato congelato. 
 has been freezed. 
				Only Accounts Manager can do transaction against this account, è stato congelato. 
				Solo Account Manager può effettuare la transazione di questo account
 is less than equals to zero in the system, 
						valuation rate is mandatory for this item, è inferiore o uguale a zero nel sistema, 
						tasso di valuatione obbligatorio per questo articolo
 is mandatory, è obbligatorio
 is mandatory for GL Entry, è obbligatorio per GL Entry
 is not a ledger, non è un libro mastro
 is not active, non attivo
 is not set, non è impostato
 is now the default Fiscal Year. 
			Please refresh your browser for the change to take effect., ora è l'Anno Fiscale predefinito. 
			Ricarica la pagina del browser per abilitare le modifiche.
 is present in one or many Active BOMs, è presente in una o più Di.Ba. attive
 not active or does not exists in the system, non attiva o non esiste nel sistema
 not submitted, non inviato
 or the BOM is cancelled or inactive, o la Di.Ba è rimossa o disattivata
 should be 'Yes'. As Item: , dovrebbe essere 'Si'. Come articolo: 
 should be same as that in , dovrebbe essere uguale a quello in 
 was on leave on , era in aspettativa per 
 will be over-billed against mentioned , saranno più di fatturato contro menzionato 
 will become , diventerà 
"Company History","Cronologia Azienda"
"Team Members" or "Management","Membri del team" o "Gestori"
%  Delivered,%  Consegnato
% Amount Billed,% Importo Fatturato
% Billed,% Fatturato
% Completed,% Completato
% Installed,% Installato
% Received,% Ricevuto
% of materials billed against this Purchase Order.,% di materiali fatturati su questo Ordine di Acquisto.
% of materials billed against this Sales Order,% di materiali fatturati su questo Ordine di Vendita
% of materials delivered against this Delivery Note,% dei materiali consegnati di questa Bolla di Consegna
% of materials delivered against this Sales Order,% dei materiali consegnati su questo Ordine di Vendita
% of materials ordered against this Material Request,% di materiali ordinati su questa Richiesta Materiale
% of materials received against this Purchase Order,di materiali ricevuti su questo Ordine di Acquisto
' can not be managed using Stock Reconciliation.
					You can add/delete Serial No directly, 
					to modify stock of this item.,' non può essere gestito tramite Archivio Riconciliazione. 
					Puoi aggiungere / eliminare Seriali direttamente, 
					modificare magazzino di questo oggetto.
' in Company: ,' in Azienda:
'To Case No.' cannot be less than 'From Case No.','A Case N.' non puo essere minore di 'Da Case N.'
* Will be calculated in the transaction.,'A Case N.' non puo essere minore di 'Da Case N.'
**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**,**Budget Distribuzione** aiuta distribuire il budget tra mesi, se si dispone di stagionalità nel vostro business. 

Per distribuire un budget usando questa distribuzione, impostare questa **Budget Distribuzione** a **Centro di costo**
**Currency** Master,**Valuta** Principale
**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,**Anno fiscale** rappresenta un esercizio finanziario. Tutti i dati contabili e le altre principali operazioni sono tracciati per **anno fiscale**.
. Outstanding cannot be less than zero. 
				 	Please match exact outstanding.,. Straordinario non può essere inferiore a zero. 
				 	 Confronta esattamente lo straordinario.
. Please set status of the employee as 'Left',. Si prega di impostare lo stato del dipendente a 'left'
. You can not mark his attendance as 'Present',. Non è possibile contrassegnare la sua partecipazione come 'Presente'
000 is black, fff is white,000 è nero, fff è bianco
1 Currency = [?] Fraction
For e.g. 1 USD = 100 Cent,1 Valuta = [?] Frazione
Per es. 1 € = 100 € cent
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1.Per mantenere la voce codice cliente e renderli ricercabili in base al loro codice usare questa opzione
12px,12px
13px,13px
14px,14px
15px,15px
16px,16px
2 days ago,2 giorni fà
: Duplicate row from same ,: Riga duplicata
: It is linked to other active BOM(s),: Linkato su un altra Di.Ba. attiva
: Mandatory for a Recurring Invoice.,: Obbligatorio per una Fattura Ricorrente
<a href="#!Sales Browser/Customer Group">To manage Customer Groups, click here</a>,<a href="#!Sales Browser/Customer Group">Per Gestire Gruppi Committenti, clicca qui</a>
<a href="#!Sales Browser/Item Group">Manage Item Groups</a>,<a href="#!Sales Browser/Item Group">Gestire Gruppi Articoli</a>
<a href="#!Sales Browser/Territory">To manage Territory, click here</a>,<a href="#!Sales Browser/Territory">Per gestire Territori, clicca qui</a>
<a href="#Sales Browser/Customer Group">Manage Customer Groups</a>,<a href="#Sales Browser/Customer Group">Gestire Gruppi Committenti</a>
<a href="#Sales Browser/Customer Group">To manage Territory, click here</a>,<a href="#Sales Browser/Customer Group">Per gestire Territori, clicca qui</a>
<a href="#Sales Browser/Item Group">Manage Item Groups</a>,<a href="#Sales Browser/Item Group">Gestire Gruppi Articoli</a>
<a href="#Sales Browser/Territory">Territory</a>,<a href="#Sales Browser/Territory">Territori</a>
<a href="#Sales Browser/Territory">To manage Territory, click here</a>,<a href="#Sales Browser/Territory">Per Gestire Territori, clicca qui</a>
<a onclick="msgprint('<ol>
<li><b>field:[fieldname]</b> - By Field
<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present
<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)
<li><b>Prompt</b> - Prompt user for a name
<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####
</ol>')">Naming Options</a>,<a onclick="msgprint('<ol>
<li><b>field:[fieldname]</b> - By Field
<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present
<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)
<li><b>Prompt</b> - Prompt user for a name
<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####
</ol>')">Naming Options</a>
<b>Cancel</b> allows you change Submitted documents by cancelling them and amending them.,<b>Annulla</b> consente di modificare i documenti inseriti cancellando o modificando.
<span class="sys_manager">To setup, please go to Setup > Naming Series</span>,<span class="sys_manager">Al Setup, Si prega di andare su Setup > Denominazione Serie</span>
A Customer exists with same name,Esiste un Cliente con lo stesso nome
A Lead with this email id should exist,Un Lead con questa e-mail dovrebbe esistere
A Product or a Service that is bought, sold or kept in stock.,Un prodotto o un servizio che viene acquistato, venduto o tenuto in magazzino.
A Supplier exists with same name,Esiste un Fornitore con lo stesso nome
A condition for a Shipping Rule,Una condizione per una regola di trasporto
A logical Warehouse against which stock entries are made.,Un Deposito logica contro cui sono fatte le entrate nelle scorte.
A new popup will open that will ask you to select further conditions.,Si aprirà un popup che vi chiederà di selezionare ulteriori condizioni.
A symbol for this currency. For e.g. $,Un simbolo per questa valuta. Per esempio $
A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Un distributore di terzi / rivenditore / commissionario / affiliati / rivenditore che vende i prodotti di aziende per una commissione.
A user can have multiple values for a property.,Un utente può avere più valori per una proprietà.
A+,A+
A-,A-
AB+,AB +
AB-,AB-
AMC Expiry Date,AMC Data Scadenza
ATT,ATT
Abbr,Abbr
About,About
About Us Settings,Chi siamo Impostazioni
About Us Team Member,Chi Siamo Membri Team
Above Value,Sopra Valore
Absent,Assente
Acceptance Criteria,Criterio Accettazione
Accepted,Accettato
Accepted Quantity,Quantità Accettata
Accepted Warehouse,Magazzino Accettato
Account,Conto
Account Balance,Bilancio Conto
Account Details,Dettagli conto
Account Head,Conto Capo
Account Id,ID Conto
Account Name,Nome Conto
Account Type,Tipo Conto
Account for this ,Conto per questo
Accounting,Contabilità
Accounting Year.,Contabilità Anno
Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.,Registrazione contabile congelato fino a questa data, nessuno può / Modifica voce eccetto ruolo specificato di seguito .
Accounting journal entries.,Diario scritture contabili.
Accounts,Conti
Accounts Frozen Upto,Conti congelati Fino
Accounts Payable,Conti pagabili
Accounts Receivable,Conti esigibili
Accounts Settings,Impostazioni Conti
Action,Azione
Active,Attivo
Active: Will extract emails from ,Attivo: estrarre le email da 
Activity,Attività
Activity Log,Log Attività
Activity Type,Tipo Attività
Actual,Attuale
Actual Budget,Budget Attuale
Actual Completion Date,Data Completamento Attuale
Actual Date,Stato Corrente
Actual End Date,Attuale Data Fine
Actual Invoice Date,Actual Data fattura
Actual Posting Date,Data di registrazione effettiva
Actual Qty,Q.tà Reale
Actual Qty (at source/target),Q.tà Reale (sorgente/destinazione)
Actual Qty After Transaction,Q.tà Reale dopo la Transazione
Actual Quantity,Quantità Reale
Actual Start Date,Data Inizio Effettivo
Add,Aggiungi
Add / Edit Taxes and Charges,Aggiungere / Modificare Tasse e Costi
Add A New Rule,Aggiunge una nuova regola
Add A Property,Aggiungere una Proprietà
Add Attachments,Aggiungere Allegato
Add Bookmark,Aggiungere segnalibro
Add CSS,Aggiungere CSS
Add Column,Aggiungi colonna
Add Comment,Aggiungi commento
Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.,Aggiungere ID Google Analytics : es. UA-89XXX57-1. Cerca aiuto su Google Analytics per altre informazioni.
Add Message,Aggiungere Messaggio
Add New Permission Rule,Aggiungere Nuova Autorizzazione
Add Reply,Aggiungi risposta
Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template,Aggiungere Termine e Condizione per Richiesta Materiale. Puoi preparare Termini e Condizioni ed usarlo come Modello
Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.,Aggiungere Termine e Condizione per Ricevuta d'Acquisto. Puoi preparare Termini e Condizioni ed usarlo come Modello.
Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template,Aggiungi Termini e Condizioni per la quotazione come termini di pagamento, validità dell'Offerta, ecc Si può anche preparare un Condizioni Master e utilizzare il Modello
Add Total Row,Aggiungere Riga Totale
Add a banner to the site. (small banners are usually good),Aggiungi Banner al sito. (banner piccoli sono migliori)
Add attachment,Aggiungere Allegato
Add code as &lt;script&gt;,Aggiungi codice allo script
Add new row,Aggiungi Una Nuova Riga
Add or Deduct,Aggiungere o dedurre
Add rows to set annual budgets on Accounts.,Aggiungere righe per impostare i budget annuali sui conti.
Add the name of <a href="http://google.com/webfonts" target="_blank">Google Web Font</a> e.g. "Open Sans",Aggiungi il nome <a href="http://google.com/webfonts" target="_blank">Google Web Font</a> e.g. "Open Sans"
Add to To Do,Aggiungi a Cose da Fare
Add to To Do List of,Aggiungi a lista Cose da Fare di
Add/Remove Recipients,Aggiungere/Rimuovere Destinatario
Additional Info,Informazioni aggiuntive
Address,Indirizzo
Address & Contact,Indirizzo e Contatto
Address & Contacts,Indirizzi & Contatti
Address Desc,Desc. indirizzo
Address Details,Dettagli dell'indirizzo
Address HTML,Indirizzo HTML
Address Line 1,Indirizzo, riga 1
Address Line 2,Indirizzo, riga 2
Address Title,Titolo indirizzo
Address Type,Tipo di indirizzo
Address and other legal information you may want to put in the footer.,Indirizzo e altre informazioni legali che si intende visualizzare nel piè di pagina.
Address to be displayed on the Contact Page,Indirizzo da visualizzare nella pagina Contatti
Adds a custom field to a DocType,Aggiungi campo personalizzato a DocType
Adds a custom script (client or server) to a DocType,Aggiungi Script personalizzato (client o server) al DocType
Advance Amount,Importo Anticipo
Advance amount,Importo anticipo
Advanced Scripting,Scripting Avanzato
Advanced Settings,Impostazioni Avanzate
Advances,Avanzamenti
Advertisement,Pubblicità
After Sale Installations,Installazioni Post Vendita
Against,Previsione
Against Account,Previsione Conto
Against Docname,Per Nome Doc
Against Doctype,Per Doctype
Against Document Date,Per Data Documento
Against Document Detail No,Per Dettagli Documento N
Against Document No,Per Documento N
Against Expense Account,Per Spesa Conto
Against Income Account,Per Reddito Conto
Against Journal Voucher,Per Buono Acquisto
Against Purchase Invoice,Per Fattura Acquisto
Against Sales Invoice,Per Fattura Vendita
Against Voucher,Per Tagliando
Against Voucher Type,Per tipo Tagliando
Agent,Agente
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,Gruppo aggregato di elementi **Articoli** in un altro  **articolo**. Questo è utile se in fase di installazione di un certo **Articoli** in un pacchetto e si mantiene magazzino delle confezionati **Voci** non e  l'aggregato **lotto**. 

Il pacchetto **Voce** avrà "Stock Item" come "No" e "Voce di vendita" come "Yes".

Per esempio: Se metti in vendita computer portatili e zaini separatamente e dispone di un prezzo speciale se il cliente acquista entrambi, allora il Laptop + Zaino sarà un nuovo punto di vendita distinta

Nota: BOM = Distinta materiali
Aging Date,Data invecchiamento
All Addresses.,Tutti gli indirizzi.
All Contact,Tutti i contatti
All Contacts.,Tutti i contatti.
All Customer Contact,Tutti Contatti Clienti
All Day,Intera giornata
All Employee (Active),Tutti Dipendenti (Attivi)
All Lead (Open),Tutti LEAD (Aperto)
All Products or Services.,Tutti i Prodotti o Servizi.
All Sales Partner Contact,Tutte i contatti Partner vendite 
All Sales Person,Tutti i Venditori
All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,Tutte le operazioni di vendita possono essere taggati per più **Venditori** in modo che è possibile impostare e monitorare gli obiettivi.
All Supplier Contact,Tutti i Contatti Fornitori
All account columns should be after 
							standard columns and on the right.
							If you entered it properly, next probable reason 
							could be wrong account name.
							Please rectify it in the file and try again.,Tutte le colonne di conto dovrebbe essere dopo 
							colonne standard e sulla destra.
							Se è stato inserito correttamente, la probabile ragione 
							essere nome account sbagliato.
							Correggere nel file e riprovare.
All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>
Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.,Tutti i campi relativi a valuta, tasso di conversione, export totale, export totale complessivo etc sono in <br>
Bolla di consegna, POS, Quotazioni, Fattura di Vendita, Ordini di Vendita, etc.
All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>
Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.,Tutti i campi correlati di importazione come la moneta, tasso di conversione, totale di importazione, importazione grande ecc totale sono disponibili in <br> \ nAcquisto Ricevuta, Quotazione Fornitore, Fattura di Acquisto, ordine di acquisto, ecc
All items have already been transferred 
				for this Production Order.,Tutti gli articoli sono già stati trasferiti 
				per questo Ordine di Produzione.
All possible Workflow States and roles of the workflow. <br>Docstatus Options: 0 is"Saved", 1 is "Submitted" and 2 is "Cancelled",Tutti i possibili stati e ruoli del flusso di lavoro del flusso di lavoro. <br>Docstatus Opzioni: 0 è "salvato", 1 è "Inviato" e 2 è "ANNULLATO"
All posts by,Tutti i messaggi di
Allocate,Assegna
Allocate leaves for the year.,Assegnare le foglie per l' anno.
Allocated Amount,Assegna Importo
Allocated Budget,Assegna Budget
Allocated amount,Assegna importo
Allow Attach,Consentire Allegati
Allow Bill of Materials,Consentire Distinta di Base
Allow Dropbox Access,Consentire Accesso DropBox
Allow Editing of Frozen Accounts For,Consenti Modifica Account Congelati per
Allow Google Drive Access,Consentire Accesso Google Drive
Allow Import,Consentire Importa
Allow Import via Data Import Tool,Consentire Import tramite Strumento Importazione Dati 
Allow Negative Balance,Consentire Bilancio Negativo
Allow Negative Stock,Consentire Magazzino Negativo
Allow Production Order,Consentire Ordine Produzione
Allow Rename,Consentire Rinominare
Allow Samples,Consentire Esempio
Allow User,Consentire Utente
Allow Users,Consentire Utenti
Allow on Submit,Consentire su Invio
Allow the following users to approve Leave Applications for block days.,Consentire i seguenti utenti per approvare le richieste per i giorni di blocco.
Allow user to login only after this hour (0-24),Consentire Login Utente solo dopo questo orario (0-24)
Allow user to login only before this hour (0-24),Consentire Login Utente solo prima di questo orario (0-24)
Allowance Percent,Tolleranza Percentuale
Allowed,Consenti
Already Registered,Già Registrato
Always use Login Id as sender,Usa sempre ID Login come mittente
Amend,Correggi
Amended From,Corretto da
Amount,Importo
Amount (Company Currency),Importo (Valuta Azienda)
Amount <=,Importo <=
Amount >=,Importo >=
An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href="http://favicon-generator.org/" target="_blank">favicon-generator.org</a>],Icona con estensione .ico. 16 x 16 px. Genera con favicon generator. [<a href="http://favicon-generator.org/" target="_blank">favicon-generator.org</a>]
Analytics,Analytics
Annual Cost To Company,Costo annuo per azienda
Annual Cost To Company can not be less than 12 months of Total Earning,Costo annuo per azienda non può essere inferiore a 12 mesi di guadagno totale
Another Salary Structure '%s' is active for employee '%s'. 
				Please make its status 'Inactive' to proceed.,Un'altra Struttura di Stipendio '%s' è attiva per il dipendente '%s'. 
				Cambiare il suo status in 'inattivo' per procedere.
Any other comments, noteworthy effort that should go in the records.,Altre osservazioni, degno di nota lo sforzo che dovrebbe andare nei registri.
Applicable Holiday List,Lista Vacanze Applicabile
Applicable To (Designation),Applicabile a (Designazione)
Applicable To (Employee),Applicabile a (Dipendente)
Applicable To (Role),Applicabile a (Ruolo)
Applicable To (User),Applicabile a (Utente)
Applicant Name,Nome del Richiedente
Applicant for a Job,Richiedente per Lavoro
Applicant for a Job.,Richiedente per Lavoro.
Applications for leave.,Richieste di Ferie
Applies to Company,Applica ad Azienda
Apply / Approve Leaves,Applica / Approvare Ferie
Apply Shipping Rule,Applica Regole Spedizione
Apply Taxes and Charges Master,Applicare tasse e le spese master
Appraisal,Valutazione
Appraisal Goal,Obiettivo di Valutazione
Appraisal Goals,Obiettivi di Valutazione
Appraisal Template,Valutazione Modello
Appraisal Template Goal,Valutazione Modello Obiettivo
Appraisal Template Title,Valutazione Titolo Modello
Approval Status,Stato Approvazione
Approved,Approvato
Approver,Certificatore
Approving Role,Regola Approvazione
Approving User,Utente Certificatore
Are you sure you want to delete the attachment?,Eliminare Veramente questo Allegato?
Arial,Arial
Arrear Amount,Importo posticipata
As a best practice, do not assign the same set of permission rule to different Roles instead set multiple Roles to the User,Una buona idea sarebbe non assegnare le stesse autorizzazioni a differenti ruoli delo stesso utente
As existing qty for item: ,Q.tà residua dell' articolo:
As per Stock UOM,Per Stock UOM
As there are existing stock transactions for this 
							item, you can not change the values of 'Has Serial No', 
							'Is Stock Item' and 'Valuation Method',Ci sono movimenti di stock per questo 
							articolo, non puoi cambiare il valore 'Ha un seriale', 
							'Articolo Stock' e 'Metodo Valutazione'
Ascending,Crescente
Assign To,Assegna a
Assigned By,Assegnato da
Assignment,Assegnazione
Assignments,Assegnazioni
Associate a DocType to the Print Format,Associare un DOCTYPE per il formato di stampa
Atleast one warehouse is mandatory,Almeno un Magazzino è obbligatorio
Attach,Allega
Attach Document Print,Allega documento Stampa
Attached To DocType,Allega aDocType
Attached To Name,Allega a Nome
Attachment,Allegato
Attachments,Allegati
Attempted to Contact,Tentativo di Contatto
Attendance,Presenze
Attendance Date,Data Presenza
Attendance Details,Dettagli presenze
Attendance From Date,Partecipazione Da Data
Attendance To Date,Partecipazione a Data
Attendance can not be marked for future dates,La Presenza non può essere inserita nel futuro
Attendance for the employee: ,Presenze Dipendenti:
Attendance record.,Archivio Presenze
Attributions,Attribuzione
Authorization Control,Controllo Autorizzazioni
Authorization Rule,Ruolo Autorizzazione
Auto Email Id,Email ID Auto
Auto Inventory Accounting,Inventario Contabilità Auto
Auto Inventory Accounting Settings,Inventario Contabilità Impostazioni Auto
Auto Material Request,Richiesta Materiale Auto
Auto Name,Nome Auto
Auto generated,Auto generato
Auto-raise Material Request if quantity goes below re-order level in a warehouse,Auto aumenta Materiale Richiesta se la quantità scende sotto il livello di riordino in un magazzino
Automatically updated via Stock Entry of type Manufacture/Repack,Aggiornato automaticamente via Archivio Entrata di tipo Produzione / Repack
Autoreply when a new mail is received,Auto-Rispondi quando si riceve una nuova mail
Available Qty at Warehouse,Quantità Disponibile a magazzino
Available Stock for Packing Items,Disponibile Magazzino per imballaggio elementi
Available in 
BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet,Disponibile in 
BOM, DDT, fatture di acquisto, ordine di produzione, ordini di acquisto, di acquisto ricevuta, fattura di vendita, ordini di vendita, Stock Entry, scheda attività
Avatar,Avatar
Average Discount,Sconto Medio
B+,B+
B-,B-
BILL,BILL
BILLJ,BILLJ
BOM,DIBA
BOM Detail No,DIBA Dettagli N.
BOM Explosion Item,DIBA Articolo Esploso
BOM Item,DIBA Articolo
BOM No,N. DiBa
BOM No. for a Finished Good Item,DiBa N. per un buon articolo finito
BOM Operation,DiBa Operazione
BOM Operations,DiBa Operazioni
BOM Replace Tool,DiBa Sostituire Strumento
BOM replaced,DiBa Sostituire
Background Color,Colore Sfondo
Background Image,Immagine Sfondo
Backup Manager,Gestione Backup
Backup Right Now,Backup ORA
Backups will be uploaded to,Backup verranno caricati su
Balances of Accounts of type "Bank or Cash",Bilancio Conti del tipo "Banca o Moneta"
Bank,Banca
Bank A/C No.,Bank A/C No.
Bank Account,Conto Banca
Bank Account No.,Conto Banca N.
Bank Clearance Summary,Sintesi Liquidazione Banca
Bank Name,Nome Banca
Bank Reconciliation,Conciliazione Banca
Bank Reconciliation Detail,Dettaglio Riconciliazione Banca
Bank Reconciliation Statement,Prospetto di Riconciliazione Banca
Bank Voucher,Buono Banca
Bank or Cash,Banca o Contante
Bank/Cash Balance,Banca/Contanti Saldo
Banner,Banner
Banner HTML,Banner HTML
Banner Image,Immagine Banner
Banner is above the Top Menu Bar.,Il Banner è sopra la Barra Menu Top
Barcode,Codice a barre
Based On,Basato su
Basic Info,Info Base
Basic Information,Informazioni di Base
Basic Rate,Tasso Base
Basic Rate (Company Currency),Tasso Base (Valuta Azienda)
Batch,Lotto
Batch (lot) of an Item.,Lotto di un articolo
Batch Finished Date,Data Termine Lotto
Batch ID,ID Lotto
Batch No,Lotto N.
Batch Started Date,Data inizio Lotto
Batch Time Logs for Billing.,Registra Tempo Lotto per Fatturazione.
Batch Time Logs for billing.,Registra Tempo Lotto per fatturazione.
Batch-Wise Balance History,Cronologia Bilanciamento Lotti-Wise
Batched for Billing,Raggruppati per la Fatturazione
Be the first one to comment,Commenta per primo
Begin this page with a slideshow of images,Inizia la pagina con una slideshow di immagini
Better Prospects,Prospettive Migliori
Bill Date,Data Fattura
Bill No,Fattura N.
Bill of Material to be considered for manufacturing,Elenco dei materiali da considerare per la produzione
Bill of Materials,Distinta Materiali
Bill of Materials (BOM),Distinta Materiali (DiBa)
Billable,Addebitabile
Billed,Addebbitato
Billed Amt,Adebbitato Amt
Billing,Fatturazione
Billing Address,Indirizzo Fatturazione
Billing Address Name,Nome Indirizzo Fatturazione
Billing Status,Stato Faturazione
Bills raised by Suppliers.,Fatture sollevate dai fornitori.
Bills raised to Customers.,Fatture sollevate dai Clienti.
Bin,Bin
Bio,Bio
Bio will be displayed in blog section etc.,Bio verrà inserita nella sezione blog etc.
Birth Date,Data di Nascita
Blob,Blob
Block Date,Data Blocco
Block Days,Giorno Blocco
Block Holidays on important days.,Blocco Vacanze in giorni importanti
Block leave applications by department.,Blocco domande uscita da ufficio.
Blog Category,Categoria Blog
Blog Intro,Intro Blog
Blog Introduction,Introduzione Blog
Blog Post,Articolo Blog
Blog Settings,Impostazioni Blog
Blog Subscriber,Abbonati Blog
Blog Title,Titolo Blog
Blogger,Blogger
Blood Group,Gruppo Discendenza
Bookmarks,Segnalibri
Branch,Ramo
Brand,Marca
Brand HTML,Marca HTML
Brand Name,Nome Marca
Brand is what appears on the top-right of the toolbar. If it is an image, make sure it
has a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px,Il Marchio appare in alto a destra nella barra degli strumenti. Se è un immagine, assicurati
che abbia lo sfondo trasparente ed use il tag img. Dimensioni di 200px x 30px
Brand master.,Marchio Originale.
Brands,Marche
Breakdown,Esaurimento
Budget,Budget
Budget Allocated,Budget Assegnato
Budget Control,Controllo Budget
Budget Detail,Dettaglio Budget
Budget Details,Dettaglii Budget
Budget Distribution,Distribuzione Budget
Budget Distribution Detail,Dettaglio Distribuzione Budget
Budget Distribution Details,Dettagli Distribuzione Budget
Budget Variance Report,Report Variazione Budget
Build Modules,Genera moduli
Build Pages,Genera Pagine
Build Server API,Genera Server API
Build Sitemap,Genera Sitemap
Bulk Email,Email di Massa
Bulk Email records.,Registra Email di Massa
Bundle items at time of sale.,Articoli Combinati e tempi di vendita.
Button,Pulsante
Buyer of Goods and Services.,Durante l'acquisto di beni e servizi.
Buying,Acquisto
Buying Amount,Importo Acquisto
Buying Settings,Impostazioni Acquisto
By,By
C-FORM/,C-FORM/
C-Form,C-Form
C-Form Applicable,C-Form Applicable
C-Form Invoice Detail,C-Form Detagli Fattura
C-Form No,C-Form N.
CI/2010-2011/,CI/2010-2011/
COMM-,COMM-
CSS,CSS
CUST,CUST
CUSTMUM,CUSTMUM
Calculate Based On,Calcola in base a
Calculate Total Score,Calcolare il punteggio totale
Calendar,Calendario
Calendar Events,Eventi del calendario
Call,Chiama
Campaign,Campagna
Campaign Name,Nome Campagna
Can only be exported by users with role 'Report Manager',Può essere esportata slo da utenti con ruolo 'Report Manager'
Cancel,Annulla
Cancel permission also allows the user to delete a document (if it is not linked to any other document).,Annulla permessi abiliti utente ad eliminare un documento (se non è collegato a nessun altro documento).
Cancelled,Annullato
Cannot ,Non è possibile
Cannot approve leave as you are not authorized to approve leaves on Block Dates.,Non può approvare lasciare come non si è autorizzati ad approvare le ferie sulle date di blocco.
Cannot change from,Non è possibile cambiare da
Cannot continue.,Non è possibile continuare.
Cannot have two prices for same Price List,Non può avere due prezzi per lo stesso Listino Prezzi
Cannot map because following condition fails: ,Non può mappare perché fallisce la condizione: 
Capacity,Capacità
Capacity Units,Unità Capacità
Carry Forward,Portare Avanti
Carry Forwarded Leaves,Portare Avanti Autorizzazione
Case No(s) already in use. Please rectify and try again.
				Recommended <b>From Case No. = %s</b>,Caso N. già in uso. Si prega di correggere e riprovare.
				Consigliato <b>Dal caso N. =%s</b>
Cash,Contante
Cash Voucher,Buono Contanti
Cash/Bank Account,Conto Contanti/Banca
Categorize blog posts.,Categorizzare i post sul blog.
Category,Categoria
Category Name,Nome Categoria
Category of customer as entered in Customer master,Categoria del cliente come inserita in master clienti
Cell Number,Numero di Telefono
Center,Centro
Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.,Alcuni documenti non devono essere modificati una volta definiti, come una fattura, per esempio. Lo stato finale di tali documenti è chiamato <b>Inserito</b>. È possibile limitare quali ruoli possono Inviare.
Change UOM for an Item.,Cambia UOM per l'articolo.
Change the starting / current sequence number of an existing series.,Cambia l'inizio/numero sequenza corrente per una serie esistente
Channel Partner,Canale Partner
Charge,Addebitare
Chargeable,Addebitabile
Chart of Accounts,Grafico dei Conti
Chart of Cost Centers,Grafico Centro di Costo
Chat,Chat
Check,Seleziona
Check / Uncheck roles assigned to the Profile. Click on the Role to find out what permissions that Role has.,Seleziona / Deseleziona ruoli assegnati al profilo. Fare clic sul ruolo per scoprire quali autorizzazioni  ha il ruolo.
Check all the items below that you want to send in this digest.,Controllare tutti gli elementi qui di seguito che si desidera inviare in questo digest.
Check how the newsletter looks in an email by sending it to your email.,Verificare come la newsletter si vede in una e-mail inviandola alla tua e-mail.
Check if recurring invoice, uncheck to stop recurring or put proper End Date,Seleziona se fattura ricorrente, deseleziona per fermare ricorrenti o mettere corretta Data di Fine
Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.,Seleziona se necessiti di fattura ricorrente periodica. Dopo aver inserito ogni fattura vendita, la sezione Ricorrenza diventa visibile.
Check if you want to send salary slip in mail to each employee while submitting salary slip,Seleziona se si desidera inviare busta paga in posta a ciascun dipendente, mentre la presentazione foglio paga
Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Seleziona se vuoi forzare l'utente a selezionare una serie prima di salvare. Altrimenti sarà NO di default.
Check this if you want to send emails as this id only (in case of restriction by your email provider).,Seleziona se vuoi inviare mail solo con questo ID (in caso di restrizione dal provider di posta elettronica).
Check this if you want to show in website,Seleziona se vuoi mostrare nel sito
Check this to disallow fractions. (for Nos),Seleziona per disabilitare frazioni. (per NOS)
Check this to make this the default letter head in all prints,Seleziona per usare questa intestazione in tutte le stampe
Check this to pull emails from your mailbox,Seleziona per scaricare la posta dal tuo account
Check to activate,Seleziona per attivare
Check to make Shipping Address,Seleziona per fare Spedizione Indirizzo
Check to make primary address,Seleziona per impostare indirizzo principale
Checked,Selezionato
Cheque,Assegno
Cheque Date,Data Assegno
Cheque Number,Controllo Numero
Child Tables are shown as a Grid in other DocTypes.,Tabelle figlio sono mostrati come una griglia in altre DOCTYPE.
City,Città
City/Town,Città/Paese
Claim Amount,Importo Reclamo
Claims for company expense.,Reclami per spese dell'azienda.
Class / Percentage,Classe / Percentuale
Classic,Classico
Classification of Customers by region,Classificazione Clienti per Regione
Clear Cache & Refresh,Cancella cache & Ricarica
Clear Table,Pulisci Tabella
Clearance Date,Data Liquidazione
Click on "Get Latest Updates",Clicca su "Aggiornamento"
Click on 'Make Sales Invoice' button to create a new Sales Invoice.,Clicca sul pulsante 'Crea Fattura Vendita' per creare una nuova Fattura di Vendita
Click on button in the 'Condition' column and select the option 'User is the creator of the document',Clicca sul pulsante nella colonna 'Condizioni' e seleziona 'Utente ha creato il documento'
Click to Expand / Collapse,Clicca per Espandere / Comprimere
Client,Intestatario
Close,Chiudi
Closed,Chiuso
Closing Account Head,Chiudere Conto Primario
Closing Date,Data Chiusura
Closing Fiscal Year,Chiusura Anno Fiscale
CoA Help,Aiuto CoA
Code,Codice
Cold Calling,Chiamata Fredda
Color,Colore
Column Break,Interruzione Colonna
Comma separated list of email addresses,Lista separata da virgola degli indirizzi email
Comment,Commento
Comment By,Commentato da
Comment By Fullname,Commento di Nome Completo
Comment Date,Data commento
Comment Docname,Commento Docname
Comment Doctype,Commento Doctype
Comment Time,Tempo Commento
Comments,Commenti
Commission Rate,Tasso Commissione
Commission Rate (%),Tasso Commissione (%)
Commission partners and targets,Commissione Partner  Obiettivi
Communication,Comunicazione
Communication HTML,Comunicazione HTML
Communication History,Storico Comunicazioni
Communication Medium,Mezzo di comunicazione
Communication log.,Log comunicazione
Company,Azienda
Company Details,Dettagli Azienda
Company History,Storico Azienda
Company History Heading,Cronologia Azienda Principale
Company Info,Info Azienda
Company Introduction,Introduzione Azienda
Company Master.,Propritario Azienda.
Company Name,Nome Azienda
Company Settings,Impostazioni Azienda
Company branches.,Rami Azienda.
Company departments.,Dipartimento dell'Azienda.
Company is missing or entered incorrect value,Azienda non esistente o valori inseriti errati
Company mismatch for Warehouse,Discordanza Azienda per Magazzino
Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Numeri di registrazione dell'azienda per il vostro riferimento. Esempio: IVA numeri di registrazione, ecc
Company registration numbers for your reference. Tax numbers etc.,Numeri di registrazione dell'azienda per il vostro riferimento. numero Tassa, ecc
Complaint,Reclamo
Complete By,Completato da
Completed,Completato
Completed Qty,Q.tà Completata
Completion Date,Data Completamento
Completion Status,Stato Completamento
Confirmed orders from Customers.,Ordini Confermati da Clienti.
Consider Tax or Charge for,Cnsidera Tasse o Cambio per
Consider this Price List for fetching rate. (only which have "For Buying" as checked),Considerate questo Listino Prezzi per andare a prendere velocità. (solo che sono "per l'acquisto di" come segno di spunta)
Considered as Opening Balance,Considerato come Apertura Saldo
Considered as an Opening Balance,Considerato come Apertura Saldo
Consultant,Consulente
Consumed Qty,Q.tà Consumata
Contact,Contatto
Contact Control,Controllo Contatto 
Contact Desc,Desc Contatto
Contact Details,Dettagli Contatto
Contact Email,Email Contatto
Contact HTML,Contatto HTML
Contact Info,Info Contatto
Contact Mobile No,Cellulare Contatto
Contact Name,Nome Contatto
Contact No.,Contatto N.
Contact Person,Persona Contatto
Contact Type,Tipo Contatto
Contact Us Settings,Impostazioni Contattaci
Contact in Future,Contatta in Futuro
Contact options, like "Sales Query, Support Query" etc each on a new line or separated by commas.,Opzioni Contatto, tipo "Query Vendite, Query Supporto" etc uno per linea o separato da virgola.
Contacted,Contattato
Content,Contenuto
Content Type,Tipo Contenuto
Content in markdown format that appears on the main side of your page,Contenuto sottolineato che appare sul lato principale della pagina
Content web page.,Contenuto Pagina Web.
Contra Voucher,Contra Voucher
Contract End Date,Data fine Contratto
Contribution (%),Contributo (%)
Contribution to Net Total,Contributo sul totale netto
Control Panel,Pannello di Controllo
Conversion Factor,Fattore di Conversione
Conversion Rate,Tasso di Conversione
Convert into Recurring Invoice,Convertire in fattura ricorrente
Converted,Convertito
Copy,Copia
Copy From Item Group,Copiare da elemento Gruppo
Copyright,Copyright
Core,Core
Cost Center,Centro di Costo
Cost Center Details,Dettaglio Centro di Costo
Cost Center Name,Nome Centro di Costo
Cost Center is mandatory for item: ,Centro di Costo obbligatorio per elemento:
Cost Center must be specified for PL Account: ,Centro di Costo deve essere specificato per Conto PL 
Cost to Company,Costo per l'Azienda
Costing,Valutazione Costi
Country,Nazione
Country Name,Nome Nazione
Create,Crea
Create Bank Voucher for the total salary paid for the above selected criteria,Crea Buono Bancario per il totale dello stipendio da pagare per i seguenti criteri
Create Production Orders,Crea Ordine Prodotto
Create Receiver List,Crea Elenco Ricezione
Create Salary Slip,Creare busta paga
Create Stock Ledger Entries when you submit a Sales Invoice,Creare scorta voci registro quando inserisci una fattura vendita
Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.,Creare un listino prezzi da Listino master e digitare tassi rif standard per ciascuno di essi. Sulla scelta di un listino prezzi in offerta, ordine di vendita o bolla di consegna, corrispondente tasso rif viene prelevato per questo articolo.
Create and Send Newsletters,Crea e Invia Newsletter
Created Account Head: ,Creato Account Principale: 
Created By,Creato da
Created Customer Issue,Creata Richiesta Cliente
Created Group ,Gruppo Creato 
Created Opportunity,Opportunità Creata
Created Support Ticket,Crea Ticket Assistenza
Creates salary slip for above mentioned criteria.,Crea busta paga per i criteri sopra menzionati.
Credentials,Credenziali
Credit,Credit
Credit Amt,Credit Amt
Credit Card Voucher,Carta Buono di credito
Credit Controller,Controllare Credito
Credit Days,Giorni Credito
Credit Limit,Limite Credito
Credit Note,Nota Credito
Credit To,Credito a
Cross Listing of Item in multiple groups,Attraversare Elenco di Articolo in più gruppi
Currency,Valuta
Currency Exchange,Cambio Valuta
Currency Format,Formato Valuta
Currency Name,Nome Valuta
Currency Settings,Impostazioni Valuta
Currency and Price List,Valuta e Lista Prezzi
Currency does not match Price List Currency for Price List,Valuta non corrisponde a Valuta Lista Prezzi per Lista Prezzi
Current Accommodation Type,Tipo di Alloggio Corrente
Current Address,Indirizzo Corrente 
Current BOM,DiBa Corrente 
Current Fiscal Year,Anno Fiscale Corrente
Current Stock,Scorta Corrente
Current Stock UOM,Scorta Corrente UOM
Current Value,Valore Corrente
Current status,Stato Corrente
Custom,Personalizzato
Custom Autoreply Message,Auto rispondi Messaggio Personalizzato
Custom CSS,CSS Personalizzato
Custom Field,Campo Personalizzato
Custom Message,Messaggio Personalizzato
Custom Reports,Report Personalizzato
Custom Script,Script Personalizzato
Custom Startup Code,Codice Avvio Personalizzato
Custom?,Personalizzato?
Customer,Cliente
Customer (Receivable) Account,Cliente (Ricevibile) Account
Customer / Item Name,Cliente / Nome voce
Customer Account,Conto Cliente
Customer Account Head,Conto Cliente Principale
Customer Address,Indirizzo Cliente
Customer Addresses And Contacts,Indirizzi e Contatti Cliente
Customer Code,Codice Cliente
Customer Codes,Codici Cliente
Customer Details,Dettagli Cliente
Customer Discount,Sconto Cliente
Customer Discounts,Sconti Cliente
Customer Feedback,Opinione Cliente
Customer Group,Gruppo Cliente
Customer Group Name,Nome Gruppo Cliente
Customer Intro,Intro Cliente
Customer Issue,Questione Cliente
Customer Issue against Serial No.,Questione Cliente per Seriale N.
Customer Name,Nome Cliente
Customer Naming By,Cliente nominato di
Customer Type,Tipo Cliente
Customer classification tree.,Albero classificazione Cliente
Customer database.,Database Cliente.
Customer's Currency,Valuta Cliente
Customer's Item Code,Codice elemento Cliente
Customer's Purchase Order Date,Data ordine acquisto Cliente
Customer's Purchase Order No,Ordine Acquisto Cliente N.
Customer's Vendor,Fornitore del Cliente
Customer's currency,Valuta del Cliente
Customer's currency - If you want to select a currency that is not the default currency, then you must also specify the Currency Conversion Rate.,Valuta del cliente - Se si desidera selezionare una valuta che non è la valuta di default, allora è necessario specificare anche il tasso di conversione di valuta.
Customers Not Buying Since Long Time,Clienti non acquisto da molto tempo
Customerwise Discount,Sconto Cliente saggio
Customize,Personalizza
Customize Form,Personalizzare modulo
Customize Form Field,Personalizzare Campo modulo
Customize Label, Print Hide, Default etc.,Personalizzare Etichetta,Nascondere Stampa, predefinito etc.
Customize the Notification,Personalizzare Notifica
Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Personalizza testo di introduzione che andrà nell'email. Ogni transazione ha un introduzione distinta.
DN,DN
DN Detail,Dettaglio DN
Daily,Giornaliero
Daily Event Digest is sent for Calendar Events where reminders are set.,Coda di Evento Giornaliero è inviato per Eventi del calendario quando è impostata la notifica.
Daily Time Log Summary,Registro Giornaliero Tempo
Danger,Pericoloso
Data,Data
Data missing in table,Dati Mancanti nella tabella
Database,Database
Database Folder ID,ID Cartella Database
Database of potential customers.,Database Potenziali Clienti.
Date,Data
Date Format,Formato Data
Date Of Retirement,Data di Ritiro
Date and Number Settings,Impostazioni Data e Numeri
Date is repeated,La Data si Ripete
Date must be in format,Data nel formato
Date of Birth,Data Compleanno
Date of Issue,Data Pubblicazione
Date of Joining,Data Adesione
Date on which lorry started from supplier warehouse,Data in cui camion partito da magazzino fornitore
Date on which lorry started from your warehouse,Data in cui camion partito da nostro magazzino
Date on which the lead was last contacted,Data ultimo contatto LEAD
Dates,Date
Datetime,Orario
Days for which Holidays are blocked for this department.,Giorni per i quali le festività sono bloccati per questo reparto.
Dealer,Commerciante
Dear,Gentile
Debit,Debito
Debit Amt,Ammontare Debito
Debit Note,Nota Debito
Debit To,Addebito a
Debit or Credit,Debito o Credito
Deduct,Detrarre
Deduction,Deduzioni
Deduction Type,Tipo Deduzione
Deduction1,Deduzione1
Deductions,Deduzioni
Default,Predefinito
Default Account,Account Predefinito
Default BOM,BOM Predefinito
Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,Conto predefinito Banca / Contante  aggiornato automaticamente in Fatture POS quando selezioni questo metodo
Default Bank Account,Conto Banca Predefinito
Default Cash Account,Conto Monete predefinito
Default Commission Rate,tasso commissione predefinito
Default Company,Azienda Predefinita
Default Cost Center,Centro di Costi Predefinito
Default Cost Center for tracking expense for this item.,Centro di Costo Predefinito di Gestione spese per questo articolo
Default Currency,Valuta Predefinito
Default Customer Group,Gruppo Clienti Predefinito
Default Expense Account,Account Spese Predefinito
Default Home Page,Home page Predefinito
Default Home Pages,Home page Predefinita
Default Income Account,Conto Predefinito Entrate
Default Item Group,Gruppo elemento Predefinito
Default Price List,Listino Prezzi Predefinito
Default Print Format,Formato Stampa Predefinito
Default Purchase Account in which cost of the item will be debited.,Conto acquisto Predefinito dove addebitare i costi.
Default Sales Partner,Partner di Vendita Predefinito
Default Settings,Impostazioni Predefinite
Default Source Warehouse,Magazzino Origine Predefinito
Default Stock UOM,Scorta UOM predefinita
Default Supplier Type,Tipo Fornitore Predefinito
Default Target Warehouse,Magazzino Destinazione Predefinito
Default Territory,Territorio Predefinito
Default Unit of Measure,Unità di Misura Predefinito
Default Valuation Method,Metodo Valutazione Predefinito
Default Value,Valore Predefinito
Default Warehouse,Magazzino Predefinito
Default Warehouse is mandatory for Stock Item.,Magazzino Predefinito Obbligatorio per Articolo Stock.
Default settings for Shopping Cart,Impostazioni Predefinito per Carrello Spesa
Default: "Contact Us",Predefinito: "Contattaci "
DefaultValue,ValorePredefinito
Defaults,Predefiniti
Define Budget for this Cost Center. To set budget action, see <a href="#!List/Company">Company Master</a>,Definire Budget per questo Centro di Costo. Per impostare azione budget, guarda <a href="#!List/Company">Azienda Master</a>
Defines actions on states and the next step and allowed roles.,Definisce le azioni su stati e il passo successivo e ruoli consentiti.
Defines workflow states and rules for a document.,Definisci stati Workflow e regole per il documento.
Delete,Elimina
Delete Row,Elimina Riga
Delivered,Consegnato
Delivered Items To Be Billed,Gli Articoli consegnati da Fatturare
Delivered Qty,Q.tà Consegnata
Delivery Address,Indirizzo Consegna
Delivery Date,Data Consegna
Delivery Details,Dettagli Consegna
Delivery Document No,Documento Consegna N.
Delivery Document Type,Tipo Documento Consegna
Delivery Note,Nota Consegna
Delivery Note Item,Nota articolo Consegna
Delivery Note Items,Nota Articoli Consegna
Delivery Note Message,Nota Messaggio Consegna
Delivery Note No,Nota Consegna N.
Delivery Note Packing Item,Nota Consegna Imballaggio articolo
Delivery Note Required,Nota Consegna Richiesta
Delivery Note Trends,Nota Consegna Tendenza
Delivery Status,Stato Consegna
Delivery Time,Tempo Consegna
Delivery To,Consegna a
Department,Dipartimento
Depend on LWP,Affidati a LWP
Depends On,Dipende da
Depends on LWP,Dipende da LWP
Descending,Decrescente
Description,Descrizione
Description HTML,Descrizione HTML
Description for listing page, in plain text, only a couple of lines. (max 140 characters),Descrizione per la pagina di profilo, in testo normale, solo un paio di righe. (max 140 caratteri)
Description for page header.,Descrizione Intestazione Pagina
Description of a Job Opening,Descrizione Offerta Lavoro
Designation,Designazione
Desktop,Desktop
Detailed Breakup of the totals,
Details,Dettagli
Deutsch,Tedesco
Did not add.,Non aggiungere.
Did not cancel,Non cancellare
Did not save,Non salvare
Difference,Differenza
Different "States" this document can exist in. Like "Open", "Pending Approval" etc.,Possono esistere diversi "Stati" dentro questo documento. Come "Aperto", "Approvazione in sospeso" etc.
Disable Customer Signup link in Login page,Disabilita Link Iscrizione Clienti nella pagina di Login
Disable Rounded Total,Disabilita Arrotondamento su Totale
Disable Signup,Disabilita Iscrizione
Disabled,Disabilitato
Discount  %,Sconto %
Discount %,% sconto
Discount (%),(%) Sconto
Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice,Il Campo Sconto sarà abilitato in Ordine di acquisto, ricevuta di acquisto, Fattura Acquisto
Discount(%),Sconto(%)
Display,Visualizzazione
Display Settings,Impostazioni Visualizzazione
Display all the individual items delivered with the main items,Visualizzare tutti gli elementi singoli spediti con articoli principali
Distinct unit of an Item,Distingui unità di un articolo
Distribute transport overhead across items.,Distribuire in testa trasporto attraverso articoli.
Distribution,Distribuzione
Distribution Id,ID Distribuzione
Distribution Name,Nome Distribuzione
Distributor,Distributore
Divorced,Divorced
Do not show any symbol like $ etc next to currencies.,Non visualizzare nessun simbolo tipo € dopo le Valute.
Doc Name,Nome Doc
Doc Status,Stato Doc
Doc Type,Tipo Doc
DocField,CampoDoc
DocPerm,PermessiDoc
DocType,TipoDoc
DocType Details,Dettaglio DocType
DocType is a Table / Form in the application.,DocType è una Tabella / Modulo nell'applicazione
DocType on which this Workflow is applicable.,DocType su cui questo flusso di lavoro è applicabile
DocType or Field,
Document,
Document Description,
Document Status transition from ,
Document Type,
Document is only editable by users of role,
Documentation,Documentazione
Documentation Generator Console,Console Generatore Documentazione
Documentation Tool,Strumento Documento
Documents,Documenti
Domain,Dominio
Download Backup,Scarica Backup
Download Materials Required,Scaricare Materiali Richiesti
Download Template,Scarica Modello
Download a report containing all raw materials with their latest inventory status,Scaricare un report contenete tutte le materie prime con il loro recente stato di inventario
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,Scarica il modello, compila i dati appropriati e allega il file modificato. 
Tutte le date e le combinazioni dei dipendenti nel periodo selezionato entreranno nel modello, con il record di presenze esistenti
Draft,Bozza
Drafts,Bozze
Drag to sort columns,Trascina per ordinare le colonne
Dropbox,Dropbox
Dropbox Access Allowed,Consentire accesso Dropbox
Dropbox Access Key,Chiave Accesso Dropbox
Dropbox Access Secret,Accesso Segreto Dropbox
Due Date,Data di scadenza
EMP/,EMP/
ESIC CARD No,ESIC CARD No
ESIC No.,ESIC No.
Earning,Rendimento
Earning & Deduction,Guadagno & Detrazione
Earning Type,Tipo Rendimento
Earning1,Rendimento1
Edit,Modifica
Editable,Modificabile
Educational Qualification,
Educational Qualification Details,
Eg. smsgateway.com/api/send_sms.cgi,
Email,Email
Email (By company),Email (per azienda)
Email Digest,Email di massa
Email Digest Settings,Impostazioni Email di Massa
Email Host,Host Email
Email Id,ID Email
Email Id must be unique, already exists for: ,Email deve essere unica, già esistente per:
Email Id where a job applicant will email e.g. "jobs@example.com",Email del candidato deve essere del tipo "jobs@example.com"
Email Login,Login Email
Email Password,Password Email
Email Sent,Invia Mail
Email Sent?,Invio Email?
Email Settings,Impostazioni email
Email Settings for Outgoing and Incoming Emails.,Impostazioni email per Messaggi in Ingresso e in Uscita
Email Signature,Firma Email
Email Use SSL,Email usa SSL
Email addresses, separted by commas,Indirizzi Email, separati da virgole
Email ids separated by commas.,ID Email separati da virgole.
Email settings for jobs email id "jobs@example.com",Impostazioni email per id email lavoro "jobs@example.com"
Email settings to extract Leads from sales email id e.g. "sales@example.com",Impostazioni email per Estrarre LEADS dall' email venditore es. "sales@example.com"
Email...,Email...
Embed image slideshows in website pages.,Includi slideshow di immagin nellae pagine del sito.
Emergency Contact Details,Dettagli Contatto Emergenza
Emergency Phone Number,Numero di Telefono Emergenze
Employee,Dipendenti
Employee Birthday,Compleanno Dipendente
Employee Designation.,Nomina Dipendente.
Employee Details,Dettagli Dipendente
Employee Education,Istruzione Dipendente
Employee External Work History,Cronologia Lavoro Esterno Dipendente
Employee Information,Informazioni Dipendente
Employee Internal Work History,Cronologia Lavoro Interno Dipendente
Employee Internal Work Historys,Cronologia Lavoro Interno Dipendente
Employee Leave Approver,Dipendente Lascia Approvatore
Employee Leave Balance,Approvazione Bilancio Dipendete
Employee Name,Nome Dipendete
Employee Number,Numero Dipendenti
Employee Records to be created by ,Record dei Dipendenti creati da
Employee Setup,Configurazione Dipendenti
Employee Type,Tipo Dipendenti
Employee grades,Grado dipendenti
Employee record is created using selected field. ,Record Dipendenti creati usando i campi selezionati. 
Employee records.,Registrazione Dipendente.
Employee: ,Dipendente: 
Employees Email Id,Email Dipendente
Employment Details,Dettagli Dipendente
Employment Type,Tipo Dipendente
Enable Auto Inventory Accounting,Abilita inventario contabile Auto
Enable Shopping Cart,Abilita Carello Acquisti
Enabled,Attivo
Enables <b>More Info.</b> in all documents,Abilita <b>Ulteriori Info.</b> in tutti i documenti
Encashment Date,Data Incasso
End Date,Data di Fine
End date of current invoice's period,Data di fine del periodo di fatturazione corrente
End of Life,Fine Vita
Ends on,Termina il
Enter Email Id to receive Error Report sent by users.
E.g.: support@iwebnotes.com,Inserisci la tua mail per ricevere Report Errori inviati dagli utenti.
es.: support@iwebnotes.com
Enter Form Type,Inserisci Tipo Modulo
Enter Row,Inserisci riga
Enter Verification Code,Inserire codice Verifica
Enter campaign name if the source of lead is campaign.,Inserisci nome Campagna se la sorgente del LEAD e una campagna.
Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set "match" permission rules. To see list of fields, go to <a href="#Form/Customize Form/Customize Form">Customize Form</a>.,Inserisci valore predefinito (chiave) e valore. Se aggiungi più valori per un campo, il primo sarà scelto. Questi dati vengono utilizzati anche per impostare le regole di autorizzazione "corrispondenti". Per vedere l'elenco dei campi, andare su <a href="#Form/Customize Form/Customize Form">Personalizza Modulo</a>.
Enter department to which this Contact belongs,Inserisci reparto a cui appartiene questo contatto
Enter designation of this Contact,Inserisci designazione di questo contatto
Enter email id separated by commas, invoice will be mailed automatically on particular date,Inserisci email separate da virgola, le fatture saranno inviate automaticamente in una data particolare
Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.,Inserisci articoli e q.tà programmate per i quali si desidera raccogliere gli ordini di produzione o scaricare materie prime per l'analisi.
Enter name of campaign if source of enquiry is campaign,Inserisci il nome della Campagna se la sorgente di indagine è la campagna
Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.),Inserisci parametri statici della url qui (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)
Enter the company name under which Account Head will be created for this Supplier,Immettere il nome della società in cui Conto Principale sarà creato per questo Fornitore
Enter the date by which payments from customer is expected against this invoice.,Immettere la data entro la quale i pagamenti da clienti è previsto contro questa fattura.
Enter url parameter for message,Inserisci parametri url per il messaggio
Enter url parameter for receiver nos,Inserisci parametri url per NOS ricevuti
Entries,Voci
Entries are not allowed against this Fiscal Year if the year is closed.,Voci non permesse in confronto ad un Anno Fiscale già chiuso.
Error,Errore
Error for,Errore per
Error: Document has been modified after you have opened it,Errore: Il Documento è stato modificato dopo averlo aperto
Estimated Material Cost,Stima costo materiale
Event,Evento
Event Individuals,Eventi Personali
Event Role,Ruolo Evento
Event Roles,Ruoli Evento
Event Start must be after End,Inizio Evento dovrà essere dopo la Fine
Event Type,Tipo Evento
Event User,Evento Utente
Events In Today's Calendar,Eventi nel Calendario di Oggi
Every Day,Tutti i Giorni
Every Month,Ogni mese
Every Week,Ogni settimana
Every Year,Ogni anno
Everyone can read,Tutti possono leggere
Example:,Esempio:
Exchange Rate,Tasso di cambio:
Excise Page Number,Accise Numero Pagina
Excise Voucher,Buono Accise
Exemption Limit,Limite Esenzione
Exhibition,Esposizione
Existing Customer,Cliente Esistente
Exit,Esci
Exit Interview Details,
Expected,
Expected Delivery Date,
Expected End Date,
Expected Start Date,
Expense Account,
Expense Account is mandatory,Conto spese è obbligatorio
Expense Claim,Rimborso Spese
Expense Claim Approved,Rimborso Spese Approvato
Expense Claim Approved Message,Messaggio Rimborso Spese Approvato
Expense Claim Detail,Dettaglio Rimborso Spese
Expense Claim Details,Dettagli Rimborso Spese
Expense Claim Rejected,Rimborso Spese Rifiutato
Expense Claim Rejected Message,Messaggio Rimborso Spese Rifiutato
Expense Claim Type,Tipo Rimborso Spese
Expense Date,
Expense Details,
Expense Head,
Expense account is mandatory for item: ,Conto spese è obbligatoria per voce: 
Expense/Adjustment Account,Spese/Adeguamento Conto
Expenses Booked,Spese Prenotazione
Expenses Included In Valuation,Spese incluse nella Valutazione
Expenses booked for the digest period,Spese Prenotazione per periodo di smistamento
Expiry Date,Data Scadenza
Export,Esporta
Exports,Esportazioni
External,Esterno
Extract Emails,Estrarre email
FCFS Rate,FCFS Rate
FIFO,FIFO
Facebook Share,Condividi su Facebook
Failed: ,Fallito: 
Family Background,Sfondo Famiglia
FavIcon,FavIcon
Fax,Fax
Features Setup,Configurazione Funzioni
Feed,Fonte
Feed Type,Tipo Fonte
Feedback,Riscontri
Female,Femmina
Fetch lead which will be converted into customer.,Preleva LEAD che sarà convertito in cliente.
Field Description,Descrizione Campo
Field Name,Nome Campo
Field Type,Tipo Campo
Field available in Delivery Note, Quotation, Sales Invoice, Sales Order,Campo disponibile nella Bolla di consegna, preventivi, fatture di vendita, ordini di vendita
Field that represents the Workflow State of the transaction (if field is not present, a new hidden Custom Field will be created),Campo che rappresenta lo stato del flusso di lavoro della transazione (se il campo non è presente, verrà creato un nuovo campo personalizzato nascosto)
Fieldname,Nomecampo
Fields,Campi
Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box,Campi separati da virgola (,) saranno inclusi in<br /><b>Cerca per</b>lista nel box di ricerca
File,File
File Data,Dati File
File Name,Nome del file
File Size,Dimensione File
File URL,URL del file
File size exceeded the maximum allowed size,La dimensione del file eccede il massimo permesso
Files Folder ID,ID Cartella File
Filing in Additional Information about the Opportunity will help you analyze your data better.,Archiviazione in Ulteriori informazioni su l'opportunità vi aiuterà ad analizzare meglio i dati.
Filing in Additional Information about the Purchase Receipt will help you analyze your data better.,Archiviazione in Ulteriori informazioni su la ricevuta di acquisto vi aiuterà ad analizzare i dati meglio.
Filling in Additional Information about the Delivery Note will help you analyze your data better.,Archiviazione in Ulteriori informazioni su la Nota di Consegna vi aiuterà ad analizzare i dati meglio.
Filling in additional information about the Quotation will help you analyze your data better.,Archiviazione in Ulteriori informazioni su la Quotazione vi aiuterà ad analizzare i dati meglio.
Filling in additional information about the Sales Order will help you analyze your data better.,Compilando ulteriori informazioni su l'ordine di vendita vi aiuterà ad analizzare meglio i dati.
Filter,Filtra
Filter By Amount,Filtra per Importo
Filter By Date,Filtra per Data
Filter based on customer,Filtro basato sul cliente
Filter based on item,Filtro basato sul articolo
Final Confirmation Date,Data Conferma Definitiva
Financial Analytics,Analisi Finanziaria
Financial Statements,Dichiarazione Bilancio
First Name,Nome
First Responded On,Ha risposto prima su
Fiscal Year,Anno Fiscale
Fixed Asset Account,Conto Patrimoniale Fisso
Float,
Float Precision,
Follow via Email,
Following Journal Vouchers have been created automatically,
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.,
Font (Heading),
Font (Text),Carattere (Testo)
Font Size (Text),Dimensione Carattere (Testo)
Fonts,Caratteri
Footer,Piè di pagina
Footer Items,elementi Piè di pagina
For All Users,Per tutti gli Utenti
For Company,Per Azienda
For Employee,Per Dipendente
For Employee Name,Per Nome Dipendente
For Item ,
For Links, enter the DocType as range
For Select, enter list of Options separated by comma,
For Production,
For Reference Only.,Solo di Riferimento
For Sales Invoice,Per Fattura di Vendita
For Server Side Print Formats,Per Formato Stampa lato Server
For Territory,Per Territorio
For UOM,Per UOM
For Warehouse,Per Magazzino
For comparative filters, start with,Per i filtri di confronto, iniziare con
For e.g. 2012, 2012-13,Per es. 2012, 2012-13
For example if you cancel and amend 'INV004' it will become a new document 'INV004-1'. This helps you to keep track of each amendment.,Ad esempio in caso di annullamento e modifica 'INV004' diventerà un nuovo documento 'INV004-1'. Questo vi aiuta a tenere traccia di ogni modifica.
For example: You want to restrict users to transactions marked with a certain property called 'Territory',Per esempio: si vuole limitare gli utenti a transazioni contrassegnate con una certa proprietà chiamata 'Territorio'
For opening balance entry account can not be a PL account,Per l'apertura di conto dell'entrata equilibrio non può essere un account di PL
For ranges,Per Intervallo
For reference,Per riferimento
For reference only.,Solo per riferimento.
For row,Per righa
For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes,Per la comodità dei clienti, questi codici possono essere utilizzati in formati di stampa, come fatture e bolle di consegna
Form,Modulo
Format: hh:mm example for one hour expiry set as 01:00. 
Max expiry will be 72 hours. Default is 24 hours,Formato: hh:mm esempio per un ora scadenza a 01:00. 
Tempo massimo scadenza 72 ore. Predefinito 24 ore
Forum,Forum
Fraction,Frazione
Fraction Units,Unità Frazione
Freeze Stock Entries,Congela scorta voci
Friday,Venerdì
From,Da
From Company,Da Azienda
From Currency,Da Valuta
From Currency and To Currency cannot be same,Da Valuta e A Valuta non possono essere gli stessi
From Customer,Da Cliente
From Date,Da Data
From Date must be before To Date,Da Data deve essere prima di A Data
From Delivery Note,Nota di Consegna
From Employee,Da Dipendente
From Lead,Da LEAD
From PR Date,Da PR Data
From Package No.,Da Pacchetto N.
From Purchase Order,Da Ordine di Acquisto
From Purchase Receipt,Da Ricevuta di Acquisto
From Sales Order,Da Ordine di Vendita
From Time,Da Periodo
From Value,Da Valore
From Value should be less than To Value,Da Valore non può essere minori di Al Valore
Frozen,Congelato
Fulfilled,Adempiuto
Full Name,Nome Completo
Fully Completed,Debitamente compilato
GL Entry,GL Entry
GL Entry: Debit or Credit amount is mandatory for ,GL Entry: Importo Debito o Credito obbligatorio per 
GRN,GRN
Gantt Chart,Diagramma di Gantt
Gantt chart of all tasks.,Diagramma di Gantt di tutte le attività.
Gender,Genere
General,Generale
General Ledger,Libro mastro generale
Generate Description HTML,Genera descrizione HTML
Generate Material Requests (MRP) and Production Orders.,
Generate Salary Slips,
Generate Schedule,
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,
Georgia,
Get,Ottieni
Get Advances Paid,Ottenere anticipo pagamento
Get Advances Received,ottenere anticipo Ricevuto
Get Current Stock,Richiedi Disponibilità
Get From ,Ottieni da 
Get Items,Ottieni articoli
Get Last Purchase Rate,Ottieni ultima quotazione acquisto
Get Non Reconciled Entries,Prendi le voci non riconciliate
Get Outstanding Invoices,Ottieni fatture non saldate
Get Purchase Receipt,Ottieni Ricevuta di Acquisto
Get Sales Orders,Ottieni Ordini di Vendita
Get Specification Details,Ottieni Specifiche Dettagli
Get Stock and Rate,Ottieni Residui e Tassi
Get Template,Ottieni Modulo
Get Terms and Conditions,Ottieni Termini e Condizioni
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.,Ottieni tasso di valutazione e disposizione di magazzino sorgente/destinazione su magazzino menzionati distacco data-ora. Se voce serializzato, si prega di premere questo tasto dopo aver inserito i numeri di serie.
Give additional details about the indent.,Fornire ulteriori dettagli sul rientro.
Global Defaults,Predefiniti Globali
Go back to home,Torna alla home
Go to Setup > <a href='#user-properties'>User Properties</a> to set 
			'territory' for diffent Users.,Vai su Setup > <a href='#user-properties'>Proprietà Utente</a> per settare 
			'territorio' per diversi Utenti.
Goal,Obiettivo
Goals,Obiettivi
Goods received from Suppliers.,Merci ricevute dai fornitori.
Google Analytics ID,ID Google Analytics
Google Drive,
Google Drive Access Allowed,
Google Plus One,Google+ One
Google Web Font (Heading),Google Web Font (Intestazione)
Google Web Font (Text),Google Web Font (Testo)
Grade,Qualità
Graduate,Laureato:
Grand Total,Totale Generale
Grand Total (Company Currency),Totale generale (valuta Azienda)
Gratuity LIC ID,Gratuità ID LIC
Gross Margin %,Margine Lordo %
Gross Margin Value,Valore Margine Lordo
Gross Pay,Retribuzione lorda
Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,retribuzione lorda + Importo posticipata + Importo incasso - Deduzione totale
Gross Profit,Utile lordo
Gross Profit (%),Utile Lordo (%)
Gross Weight,Peso Lordo
Gross Weight UOM,Peso Lordo UOM
Group,Gruppo
Group or Ledger,Gruppo o Registro
Groups,Gruppi
HR,HR
HR Settings,Impostazioni HR
HTML,HTML
HTML / Banner that will show on the top of product list.,HTML / Banner verrà mostrato sulla parte superiore della lista dei prodotti.
Half Day,Mezza Giornata
Half Yearly,Semestrale
Half-yearly,Seme-strale
Has Batch No,Ha Lotto N.
Has Child Node,Ha un Nodo Figlio
Has Serial No,
Header,
Heading,
Heading Text As,
Heads (or groups) against which Accounting Entries are made and balances are maintained.,
Health Concerns,
Health Details,
Held On,
Help,
Help HTML,Aiuto HTML
Help: To link to another record in the system, use "#Form/Note/[Note Name]" as the Link URL. (don't use "http://"),Aiuto: Per creare un collegamento a un altro record nel sistema, utilizza "#Form/Note/[Note Name]" come URL di collegamento. (non usare "http://")
Helvetica Neue,Helvetica Neue
Hence, maximum allowed Manufacturing Quantity,Quindi, massima Quantità di Produzione consentita
Here you can maintain family details like name and occupation of parent, spouse and children,Qui è possibile mantenere i dettagli della famiglia come il nome e l'occupazione del genitore, coniuge e figli
Here you can maintain height, weight, allergies, medical concerns etc,Qui è possibile mantenere l'altezza, il peso, le allergie, le preoccupazioni mediche ecc
Hey there! You need to put at least one item in 
				the item table.,Hey lì! Hai bisogno di mettere almeno un elemento nella 
				tabella elemento.
Hey! There should remain at least one System Manager,Hey! Si dovrebbe mantenere almeno un Gestore di sistema
Hidden,Nascosto
Hide Actions,Nascondi Azioni
Hide Copy,Nascondi Copia
Hide Currency Symbol,Nascondi Simbolo Valuta
Hide Email,Nascondi Email
Hide Heading,Nascondi Intestazione
Hide Print,Nascondi Stampa
Hide Toolbar,Nascondi la Barra degli strumenti
High,Alto
Highlight,Mettere in luce
History,Cronologia
History In Company,Cronologia Aziendale
Hold,Trattieni
Holiday,Vacanza
Holiday List,Elenco Vacanza
Holiday List Name,Nome Elenco Vacanza
Holidays,Vacanze
Home,Home
Home Page,Home Page
Home Page is Products,
Home Pages,
Host,
Host, Email and Password required if emails are to be pulled,
Hour Rate,
Hour Rate Consumable,
Hour Rate Electricity,
Hour Rate Labour,
Hour Rate Rent,
Hours,Ore
How frequently?,Con quale frequenza?
How should this currency be formatted? If not set, will use system defaults,Come dovrebbe essere formattata questa valuta? Se non impostato, userà valori predefiniti di sistema
How to upload,Come caricare
Human Resources,Risorse Umane
Hurray! The day(s) on which you are applying for leave 
					coincide with holiday(s). You need not apply for leave.,Evviva! Il giorno in cui stai richiedendo un permesso 
					coincide con le vacanze. Non è necessario chiedere un permesso.
I,I
ID (name) of the entity whose property is to be set,ID (nome) del soggetto la cui proprietà deve essere impostata
IDT,IDT
II,II
III,
IN,
INV,
INV/10-11/,
ITEM,
IV,
Icon,
Icon will appear on the button,
Id of the profile will be the email.,ID del profilo sarà l'email.
Identification of the package for the delivery (for print),
If Income or Expense,
If Monthly Budget Exceeded,
If Sale BOM is defined, the actual BOM of the Pack is displayed as table.
Available in Delivery Note and Sales Order,
If Supplier Part Number exists for given Item, it gets stored here,
If Yearly Budget Exceeded,
If a User does not have access at Level 0, then higher levels are meaningless,
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, all other workflows become inactive.,
If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.,
If checked, the Home page will be the default Item Group for the website.,
If checked, the tax amount will be considered as already included in the Print Rate / Print Amount,
If disable, 'Rounded Total' field will not be visible in any transaction,
If enabled, the system will post accounting entries for inventory automatically.,
If image is selected, color will be ignored (attach first),
If more than one package of the same type (for print),
If non standard port (e.g. 587),
If not applicable please enter: NA,
If not checked, the list will have to be added to each Department where it has to be applied.,
If not, create a,
If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.,
If specified, send the newsletter using this email address,
If the 'territory' Link Field exists, it will give you an option to select it,
If the account is frozen, entries are allowed for the "Account Manager" only.,
If this Account represents a Customer, Supplier or Employee, set it here.,
If you follow Quality Inspection<br>
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.,
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<br>
Enables item <b>Is Manufactured</b>,
Ignore,
Ignored: ,
Image,
Image Link,
Image View,
Implementation Partner,
Import,
Import Attendance,
Import Log,
Important dates and commitments in your project life cycle,
Imports,
In Dialog,
In Filter,
In Hours,
In List View,
In Process,
In Report Filter,
In Row,
In Store,
In Words,
In Words (Company Currency),
In Words (Export) will be visible once you save the Delivery Note.,
In Words will be visible once you save the Delivery Note.,
In Words will be visible once you save the Purchase Invoice.,
In Words will be visible once you save the Purchase Order.,
In Words will be visible once you save the Purchase Receipt.,
In Words will be visible once you save the Quotation.,
In Words will be visible once you save the Sales Invoice.,
In Words will be visible once you save the Sales Order.,
In response to,
In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.,
Incentives,
Incharge Name,
Income / Expense,
Income Account,
Income Booked,
Income Year to Date,
Income booked for the digest period,
Incoming,
Incoming / Support Mail Setting,
Incoming Rate,
Incoming Time,
Incoming quality inspection.,
Index,
Indicates that the package is a part of this delivery,
Individual,
Individuals,
Industry,
Industry Type,
Info,
Insert After,
Insert Code,
Insert Row,
Insert Style,
Inspected By,
Inspection Criteria,
Inspection Required,
Inspection Type,
Installation Date,
Installation Note,
Installation Note Item,
Installation Status,
Installation Time,
Installation record for a Serial No.,
Installed Qty,
Instructions,
Int,
Integrations,
Interested,
Internal,
Introduce your company to the website visitor.,
Introduction,
Introductory information for the Contact Us Page,
Invalid Delivery Note. Delivery Note should exist and should be in 
				draft state. Please rectify and try again.,
Invalid Email,
Invalid Email Address,
Invalid Leave Approver,
Inventory,
Inverse,
Invoice Date,
Invoice Details,
Invoice No,
Invoice Period From Date,
Invoice Period To Date,
Is Active,
Is Advance,
Is Asset Item,
Is Cancelled,
Is Carry Forward,
Is Child Table,
Is Default,
Is Encash,
Is LWP,
Is Mandatory Field,
Is Opening,
Is Opening Entry,
Is PL Account,
Is POS,
Is Primary Contact,
Is Purchase Item,
Is Sales Item,
Is Service Item,
Is Single,
Is Standard,
Is Stock Item,
Is Sub Contracted Item,
Is Subcontracted,
Is Submittable,
Is it a Custom DocType created by you?,
Is this Tax included in Basic Rate?,
Issue,
Issue Date,
Issue Details,
Issued Items Against Production Order,
It is needed to fetch Item Details.,
It was raised because the (actual + ordered + indented - reserved) 
						quantity reaches re-order level when the following record was created,
Italiano,
Item,
Item Advanced,
Item Barcode,
Item Batch Nos,
Item Classification,
Item Code,
Item Code (item_code) is mandatory because Item naming is not sequential.,
Item Customer Detail,
Item Description,
Item Desription,
Item Details,
Item Group,
Item Group Name,
Item Groups in Details,
Item Image (if not slideshow),
Item Name,
Item Naming By,
Item Price,
Item Prices,
Item Quality Inspection Parameter,
Item Reorder,
Item Serial No,
Item Serial Nos,
Item Supplier,
Item Supplier Details,
Item Tax,
Item Tax Amount,
Item Tax Rate,
Item Tax1,
Item To Manufacture,
Item UOM,
Item Website Specification,
Item Website Specifications,
Item Wise Tax Detail ,
Item classification.,
Item to be manufactured or repacked,
Item will be saved by this name in the data base.,
Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.,
Item-Wise Price List,
Item-wise Last Purchase Rate,
Item-wise Purchase History,
Item-wise Purchase Register,
Item-wise Sales History,
Item-wise Sales Register,
Items,
Items to be requested which are "Out of Stock" considering all warehouses based on projected qty and minimum order qty,
Items which do not exist in Item master can also be entered on customer's request,
Itemwise Discount,
Itemwise Recommended Reorder Level,
JSON,
JV,
Javascript,
Javascript to append to the head section of the page.,
Job Applicant,
Job Opening,
Job Profile,
Job Title,
Job profile, qualifications required etc.,
Jobs Email Settings,Impostazioni email Lavoro
Journal Entries,
Journal Entry,
Journal Entry for inventory that is received but not yet invoiced,
Journal Voucher,
Journal Voucher Detail,
Journal Voucher Detail No,
KRA,
Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ,
Keep a track of all communications,
Keep a track of communication related to this enquiry which will help for future reference.,
Key,
Key Performance Area,
Key Responsibility Area,
LEAD,
LEAD/10-11/,
LEAD/MUMBAI/,
LR Date,
LR No,
Label,
Label Help,
Lacs,
Landed Cost Item,
Landed Cost Items,
Landed Cost Purchase Receipt,
Landed Cost Purchase Receipts,
Landed Cost Wizard,
Landing Page,
Language,Lingua
Language preference for user interface (only if available).,Lingua preferita per l'interfaccia (se disponibile)
Last Contact Date,
Last IP,
Last Login,
Last Name,Cognome
Last Purchase Rate,
Lato,
Lead,
Lead Details,
Lead Lost,
Lead Name,
Lead Owner,
Lead Source,
Lead Status,
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.,
Lead Type,
Leave Allocation,
Leave Allocation Tool,
Leave Application,
Leave Approver,
Leave Approver can be one of,
Leave Approvers,
Leave Balance Before Application,
Leave Block List,
Leave Block List Allow,
Leave Block List Allowed,
Leave Block List Date,
Leave Block List Dates,
Leave Block List Name,
Leave Blocked,
Leave Control Panel,
Leave Encashed?,
Leave Encashment Amount,
Leave Setup,
Leave Type,
Leave Type Name,
Leave Without Pay,
Leave allocations.,
Leave blank if considered for all branches,
Leave blank if considered for all departments,
Leave blank if considered for all designations,
Leave blank if considered for all employee types,
Leave blank if considered for all grades,
Leave blank if you have not decided the end date.,
Leave by,
Leave can be approved by users with Role, "Leave Approver",
Ledger,
Left,
Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.,
Letter Head,
Letter Head Image,
Letter Head Name,
Level,
Level 0 is for document level permissions, higher levels for field level permissions.,
Lft,
Link,
Link to other pages in the side bar and next section,
Linked In Share,
Linked With,
List,
List items that form the package.,
List of holidays.,
List of patches executed,
List of records in which this document is linked,
List of users who can edit a particular Note,
List this Item in multiple groups on the website.,
Live Chat,
Load Print View on opening of an existing form,
Loading,
Loading Report,
Log,
Log of Activities performed by users against Tasks that can be used for tracking time, billing.,
Log of Scheduler Errors,
Login After,
Login Before,
Login Id,
Logo,
Logout,
Long Text,
Lost Reason,
Low,
Lower Income,
Lucida Grande,
MIS Control,
MREQ-,
MTN Details,
Mail Footer,
Mail Password,
Mail Port,
Mail Server,
Main Reports,
Main Section,
Maintain Same Rate Throughout Sales Cycle,
Maintain same rate throughout purchase cycle,
Maintenance,
Maintenance Date,
Maintenance Details,
Maintenance Schedule,
Maintenance Schedule Detail,
Maintenance Schedule Item,
Maintenance Schedules,
Maintenance Status,
Maintenance Time,
Maintenance Type,
Maintenance Visit,
Maintenance Visit Purpose,
Major/Optional Subjects,
Make Bank Voucher,
Make Difference Entry,
Make Time Log Batch,
Make a new,
Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,
Male,
Manage cost of operations,
Manage exchange rates for currency conversion,
Mandatory,
Mandatory if Stock Item is "Yes". Also the default warehouse where reserved quantity is set from Sales Order.,
Manufacture against Sales Order,
Manufacture/Repack,
Manufactured Qty,
Manufactured quantity will be updated in this warehouse,
Manufacturer,
Manufacturer Part Number,
Manufacturing,
Manufacturing Quantity,
Margin,
Marital Status,
Market Segment,
Married,
Mass Mailing,
Master,
Master Name,
Master Type,
Masters,
Match,
Match non-linked Invoices and Payments.,
Material Issue,
Material Receipt,
Material Request,
Material Request Date,
Material Request Detail No,
Material Request For Warehouse,
Material Request Item,
Material Request Items,
Material Request No,
Material Request Type,
Material Request used to make this Stock Entry,
Material Transfer,
Materials,
Materials Required (Exploded),
Materials Requirement Planning (MRP),
Max 500 rows only.,
Max Attachments,
Max Days Leave Allowed,
Max Discount (%),
Meaning of Submit, Cancel, Amend,
Medium,
Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href="#Form/Style Settings">Style Settings</a>,
Merge,
Merge Into,
Merge Warehouses,
Merging is only possible between Group-to-Group or 
					Ledger-to-Ledger,
Merging is only possible if following 
					properties are same in both records.
					Group or Ledger, Debit or Credit, Is PL Account,
Message,
Message Parameter,
Message greater than 160 character will be splitted into multiple mesage,
Messages,
Method,
Middle Income,
Middle Name (Optional),
Milestone,
Milestone Date,
Milestones,
Milestones will be added as Events in the Calendar,
Millions,
Min Order Qty,
Minimum Order Qty,
Misc,
Misc Details,
Miscellaneous,
Miscelleneous,
Mobile No,
Mobile No.,
Mode of Payment,
Modern,
Modified Amount,
Modified by,
Module,
Module Def,
Module Name,
Modules,
Monday,
Month,
Monthly,
Monthly Attendance Sheet,
Monthly Salary Register,
Monthly salary statement.,
Monthly salary template.,
More,
More Details,
More Info,
More content for the bottom of the page.,
Moving Average,
Moving Average Rate,
Mr,
Ms,
Multiple Item Prices,
Mupltiple Item prices.,
Must be Whole Number,
Must have report permission to access this report.,
Must specify a Query to run,
My Settings,
NL-,
Name,
Name Case,
Name and Description,
Name and Employee ID,
Name as entered in Sales Partner master,
Name is required,
Name of organization from where lead has come,
Name of person or organization that this address belongs to.,
Name of the Budget Distribution,
Name of the entity who has requested for the Material Request,
Naming,
Naming Series,
Naming Series mandatory,
Negative balance is not allowed for account ,
Net Pay,
Net Pay (in words) will be visible once you save the Salary Slip.,
Net Total,
Net Total (Company Currency),
Net Weight,
Net Weight UOM,
Net Weight of each Item,
Net pay can not be greater than 1/12th of Annual Cost To Company,
Net pay can not be negative,
Never,
New,
New BOM,
New Communications,
New Delivery Notes,
New Enquiries,
New Leads,
New Leave Application,
New Leaves Allocated,
New Leaves Allocated (In Days),
New Material Requests,
New Password,
New Projects,
New Purchase Orders,
New Purchase Receipts,
New Quotations,
New Record,
New Sales Orders,
New Stock Entries,
New Stock UOM,
New Supplier Quotations,
New Support Tickets,
New Workplace,
New value to be set,
Newsletter,
Newsletter Content,
Newsletter Status,
Newsletters to contacts, leads.,
Next Communcation On,
Next Contact By,
Next Contact Date,
Next Date,
Next State,
Next actions,
Next email will be sent on:,
No,
No Account found in csv file, 
							May be company abbreviation is not correct,
No Action,
No Communication tagged with this ,
No Copy,
No Customer Accounts found. Customer Accounts are identified based on 
			'Master Type' value in account record.,
No Item found with Barcode,
No Items to Pack,
No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user.,
No Permission,
No Permission to ,
No Permissions set for this criteria.,
No Report Loaded. Please use query-report/[Report Name] to run a report.,
No Supplier Accounts found. Supplier Accounts are identified based on 
			'Master Type' value in account record.,
No User Properties found.,
No default BOM exists for item: ,
No further records,
No of Requested SMS,
No of Sent SMS,
No of Visits,
No one,
No permission to write / remove.,
No record found,
No records tagged.,
No salary slip found for month: ,
No table is created for Single DocTypes, all values are stored in tabSingles as a tuple.,
None,
None: End of Workflow,
Not,
Not Active,
Not Applicable,
Not Billed,
Not Delivered,
Not Found,
Not Linked to any record.,
Not Permitted,
Not allowed for: ,
Not enough permission to see links.,
Not in Use,
Not interested,
Not linked,
Note,
Note User,
Note is a free page where users can share documents / notes,
Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.,
Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.,
Note: Email will not be sent to disabled users,
Note: For best results, images must be of the same size and width must be greater than height.,
Note: Other permission rules may also apply,
Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts,
Note: maximum attachment size = 1mb,
Notes,
Nothing to show,
Notice - Number of Days,
Notification Control,
Notification Email Address,
Notify By Email,
Notify by Email on creation of automatic Material Request,
Number Format,
O+,
O-,
OPPT,
Office,
Old Parent,
On,
On Net Total,
On Previous Row Amount,
On Previous Row Total,
Once you have set this, the users will only be able access documents with that property.,
Only Administrator allowed to create Query / Script Reports,
Only Administrator can save a standard report. Please rename and save.,
Only Allow Edit For,
Only Stock Items are allowed for Stock Entry,
Only System Manager can create / edit reports,
Only leaf nodes are allowed in transaction,
Open,
Open Sans,
Open Tickets,
Opening Date,
Opening Entry,
Opening Time,
Opening for a Job.,
Operating Cost,
Operation Description,
Operation No,
Operation Time (mins),
Operations,
Opportunity,
Opportunity Date,
Opportunity From,
Opportunity Item,
Opportunity Items,
Opportunity Lost,
Opportunity Type,
Options,
Options Help,
Order Confirmed,
Order Lost,
Order Type,
Ordered Items To Be Billed,
Ordered Items To Be Delivered,
Ordered Quantity,
Orders released for production.,
Organization Profile,
Original Message,
Other,
Other Details,
Out,
Out of AMC,
Out of Warranty,
Outgoing,
Outgoing Mail Server,
Outgoing Mails,
Outstanding Amount,
Outstanding for Voucher ,
Over Heads,
Overhead,
Overlapping Conditions found between,
Owned,
PAN Number,
PF No.,
PF Number,
PI/2011/,
PIN,
PO,
POP3 Mail Server,
POP3 Mail Server (e.g. pop.gmail.com),
POP3 Mail Settings,
POP3 mail server (e.g. pop.gmail.com),
POP3 server e.g. (pop.gmail.com),
POS Setting,
PR Detail,
PRO,
PS,
Package Item Details,
Package Items,
Package Weight Details,
Packing Details,
Packing Detials,
Packing List,
Packing Slip,
Packing Slip Item,
Packing Slip Items,
Packing Slip(s) Cancelled,
Page,
Page Background,
Page Border,
Page Break,
Page HTML,
Page Headings,
Page Links,
Page Name,
Page Role,
Page Text,
Page content,
Page not found,
Page text and background is same color. Please change.,
Page to show on the website
,
Page url name (auto-generated) (add ".html"),
Paid Amount,
Parameter,
Parent Account,
Parent Cost Center,
Parent Customer Group,
Parent Detail docname,
Parent Item,
Parent Item Group,
Parent Label,
Parent Sales Person,
Parent Territory,
Parent is required.,
Parenttype,
Partially Completed,
Participants,
Partly Billed,
Partly Delivered,
Partner Target Detail,
Partner Type,
Partner's Website,
Passport Number,
Password,
Password Expires in (days),
Patch,
Patch Log,
Pay To / Recd From,
Payables,
Payables Group,
Payment Collection With Ageing,
Payment Entries,
Payment Entry has been modified after you pulled it. 
			Please pull it again.,
Payment Made With Ageing,
Payment Reconciliation,
Payment Terms,
Payment days,
Payment to Invoice Matching Tool,
Payment to Invoice Matching Tool Detail,
Payments,
Payments Made,
Payments Received,
Payments made during the digest period,
Payments received during the digest period,
Payroll Setup,
Pending,
Pending Review,
Pending SO Items For Purchase Request,
Percent,
Percent Complete,
Percentage Allocation,
Percentage Allocation should be equal to ,
Percentage variation in quantity to be allowed while receiving or delivering this item.,
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 Closing Voucher,
Periodicity,
Perm Level,
Permanent Accommodation Type,
Permanent Address,
Permission,
Permission Level,
Permission Levels,
Permission Manager,
Permission Rules,
Permissions,
Permissions Settings,
Permissions are automatically translated to Standard Reports and Searches,
Permissions are set on Roles and Document Types (called DocTypes) by restricting read, edit, make new, submit, cancel, amend and report rights.,
Permissions at higher levels are 'Field Level' permissions. All Fields have a 'Permission Level' set against them and the rules defined at that permissions apply to the field. This is useful incase you want to hide or make certain field read-only.,
Permissions at level 0 are 'Document Level' permissions, i.e. they are primary for access to the document.,
Permissions translate to Users based on what Role they are assigned,
Person,
Person To Be Contacted,
Personal,
Personal Details,
Personal Email,
Phone,
Phone No,
Phone No.,
Pick Columns,
Pincode,
Place of Issue,
Plan for maintenance visits.,
Planned Qty,
Planned Quantity,
Plant,
Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,
Please Update Stock UOM with the help of Stock UOM Replace Utility.,
Please attach a file first.,
Please attach a file or set a URL,
Please check,
Please enter Default Unit of Measure,
Please enter Delivery Note No or Sales Invoice No to proceed,
Please enter Expense Account,
Please enter Expense/Adjustment Account,
Please enter Purchase Receipt No to proceed,
Please enter valid,
Please enter valid ,
Please install dropbox python module,
Please make sure that there are no empty columns in the file.,
Please mention default value for ',
Please refresh to get the latest document.,
Please save the Newsletter before sending.,
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 Date on which you want to run the report,
Please select Time Logs.,
Please select a,
Please select a csv file,
Please select a file or url,
Please select a service item or change the order type to Sales.,
Please select a sub-contracted item or do not sub-contract the transaction.,
Please select a valid csv file with data.,
Please select month and year,
Please select the document type first,
Please select: ,
Please set Dropbox access keys in,
Please set Google Drive access keys in,
Please specify,
Please specify Company,
Please specify Company to proceed,
Please specify Default Currency in Company Master 
			and Global Defaults,
Please specify a,
Please specify a Price List which is valid for Territory,
Please specify a valid,
Please specify a valid 'From Case No.',
Please specify currency in Company,
Point of Sale,
Point-of-Sale Setting,
Post Graduate,
Post Topic,
Postal,
Posting Date,
Posting Date Time cannot be before,
Posting Time,
Posts,
Potential Sales Deal,
Potential opportunities for selling.,
Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.,
Preferred Billing Address,
Preferred Shipping Address,
Prefix,
Present,
Prevdoc DocType,
Prevdoc Doctype,
Preview,
Previous Work Experience,
Price,
Price List,
Price List Country,
Price List Currency,
Price List Currency Conversion Rate,
Price List Exchange Rate,
Price List Master,
Price List Name,
Price List Rate,
Price List Rate (Company Currency),
Price Lists and Rates,
Primary,
Print Format,
Print Format Style,
Print Format Type,
Print Heading,
Print Hide,
Print Width,
Print Without Amount,
Print...,
Priority,
Private,
Proceed to Setup,
Process,
Process Payroll,
Produced Quantity,
Product Enquiry,
Production Order,
Production Plan Item,
Production Plan Items,
Production Plan Sales Order,
Production Plan Sales Orders,
Production Planning (MRP),
Production Planning Tool,
Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.,
Profile,
Profile Defaults,
Profile Represents a User in the system.,
Profile of a Blogger,
Profile of a blog writer.,
Project,
Project Costing,
Project Details,
Project Milestone,
Project Milestones,
Project Name,
Project Start Date,
Project Type,
Project Value,
Project activity / task.,
Project master.,
Project will get saved and will be searchable with project name given,
Project wise Stock Tracking,
Projected Qty,
Projects,
Prompt for Email on Submission of,
Properties,
Property,
Property Setter,
Property Setter overrides a standard DocType or Field property,
Property Type,
Provide email id registered in company,
Public,
Published,
Published On,
Pull Emails from the Inbox and attach them as Communication records (for known contacts).,
Pull Payment Entries,
Pull items from Sales Order mentioned in the above table.,
Pull sales orders (pending to deliver) based on the above criteria,
Purchase,
Purchase Analytics,
Purchase Common,
Purchase Date,
Purchase Details,
Purchase Discounts,
Purchase Document No,
Purchase Document Type,
Purchase In Transit,
Purchase Invoice,
Purchase Invoice Advance,
Purchase Invoice Advances,
Purchase Invoice Item,
Purchase Invoice Trends,
Purchase Order,
Purchase Order Date,
Purchase Order Item,
Purchase Order Item No,
Purchase Order Item Supplied,
Purchase Order Items,
Purchase Order Items Supplied,
Purchase Order Items To Be Billed,
Purchase Order Items To Be Received,
Purchase Order Message,
Purchase Order Required,
Purchase Order Trends,
Purchase Order sent by customer,
Purchase Orders given to Suppliers.,
Purchase Receipt,
Purchase Receipt Item,
Purchase Receipt Item Supplied,
Purchase Receipt Item Supplieds,
Purchase Receipt Items,
Purchase Receipt Message,
Purchase Receipt No,
Purchase Receipt Required,
Purchase Receipt Trends,
Purchase Register,
Purchase Return,
Purchase Returned,
Purchase Taxes and Charges,
Purchase Taxes and Charges Master,
Purpose,
Purpose must be one of ,
Python Module Name,
QA Inspection,
QAI/11-12/,
QTN,
Qty,
Qty Consumed Per Unit,
Qty To Manufacture,
Qty as per Stock UOM,
Qualification,
Quality,
Quality Inspection,
Quality Inspection Parameters,
Quality Inspection Reading,
Quality Inspection Readings,
Quantity,
Quantity Requested for Purchase,
Quantity already manufactured,
Quantity and Rate,
Quantity and Warehouse,
Quantity cannot be a fraction.,
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,
Quantity should be equal to Manufacturing Quantity. ,
Quarter,
Quarterly,
Query,
Query Options,
Query Report,
Query must be a SELECT,
Quick Help for Setting Permissions,
Quick Help for User Properties,
Quotation,
Quotation Date,
Quotation Item,
Quotation Items,
Quotation Lost Reason,
Quotation Message,
Quotation Sent,
Quotation Series,
Quotation To,
Quotation Trend,
Quotations received from Suppliers.,
Quotes to Leads or Customers.,
Raise Material Request,
Raise Material Request when stock reaches re-order level,
Raise Production Order,
Raised By,
Raised By (Email),
Random,
Range,
Rate,
Rate ,
Rate (Company Currency),
Rate Of Materials Based On,
Rate and Amount,
Rate at which Customer Currency is converted to customer's base currency,
Rate at which Price list currency is converted to company's base currency,
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,
Rate at which supplier's currency is converted to company's base currency,
Rate at which this tax is applied,
Raw Material Item Code,
Raw Materials Supplied,
Raw Materials Supplied Cost,
Re-Order Level,
Re-Order Qty,
Re-order,
Re-order Level,
Re-order Qty,
Read,
Read Only,
Reading 1,
Reading 10,
Reading 2,
Reading 3,
Reading 4,
Reading 5,
Reading 6,
Reading 7,
Reading 8,
Reading 9,
Reason,
Reason for Leaving,
Reason for Resignation,
Recd Quantity,
Receivable / Payable account will be identified based on the field Master Type,
Receivables,
Receivables / Payables,
Receivables Group,
Received Date,
Received Items To Be Billed,
Received Qty,
Received and Accepted,
Receiver List,
Receiver Parameter,
Recipient,
Recipients,
Reconciliation Data,
Reconciliation HTML,
Reconciliation JSON,
Record item movement.,
Recurring Id,
Recurring Invoice,
Recurring Type,
Ref Code,
Ref Date is Mandatory if Ref Number is specified,
Ref DocType,
Ref Name,
Ref Rate,
Ref SQ,
Ref Type,
Reference,
Reference Date,
Reference Name,
Reference Number,
Reference Type,
Refresh,
Registered but disabled.,
Registration Details,
Registration Details Emailed.,
Registration Info,
Rejected,
Rejected Quantity,
Rejected Serial No,
Rejected Warehouse,
Relation,
Relieving Date,
Relieving Date of employee is ,
Remark,
Remarks,
Remove Bookmark,
Rename Log,
Rename Tool,
Rename...,
Rented,
Repeat On,
Repeat Till,
Repeat on Day of Month,
Repeat this Event,
Replace,
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,
Replied,
Report,
Report Builder,Crea Report
Report Builder reports are managed directly by the report builder. Nothing to do.,
Report Date,I Report  del Creatore di report sono gestiti dal creatore di report. Niente altro
Report Hide,
Report Name,
Report Type,
Report was not saved (there were errors),
Reports,
Reports to,
Represents the states allowed in one document and role assigned to change the state.,
Reqd,
Reqd By Date,
Request Type,
Request for Information,
Request for purchase.,
Requested By,
Requested Items To Be Ordered,
Requested Items To Be Transferred,
Requests for items.,
Required By,
Required Date,
Required Qty,
Required only for sample item.,
Required raw materials issued to the supplier for producing a sub - contracted item.,
Reseller,
Reserved Quantity,
Reserved Warehouse,
Resignation Letter Date,
Resolution,
Resolution Date,
Resolution Details,
Resolved By,
Restrict IP,
Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),
Restricting By User,
Retail,
Retailer,
Review Date,
Rgt,
Right,
Role,
Role Allowed to edit frozen stock,
Role Name,
Role that is allowed to submit transactions that exceed credit limits set.,
Roles,
Roles Assigned,
Roles Assigned To User,
Roles HTML,
Root ,
Root cannot have a parent cost center,
Rounded Total,
Rounded Total (Company Currency),
Row,
Row ,
Row #,
Row # ,
Rules defining transition of state in the workflow.,
Rules for how states are transitions, like next state and which role is allowed to change state etc.,
Rules to calculate shipping amount for a sale,
SLE Exists,
SMS,
SMS Center,
SMS Control,
SMS Gateway URL,
SMS Log,
SMS Parameter,
SMS Parameters,
SMS Sender Name,
SMS Settings,
SMTP Server (e.g. smtp.gmail.com),
SO,
SO Date,
SO Pending Qty,
SO/10-11/,
SO1112,
SQTN,
STE,
SUP,
SUPP,
SUPP/10-11/,
Salary,
Salary Information,
Salary Manager,
Salary Mode,
Salary Slip,
Salary Slip Deduction,
Salary Slip Earning,
Salary Structure,
Salary Structure Deduction,
Salary Structure Earning,
Salary Structure Earnings,
Salary components.,
Sales,
Sales Analytics,
Sales BOM,
Sales BOM Help,
Sales BOM Item,
Sales BOM Items,
Sales Common,
Sales Details,
Sales Discounts,
Sales Email Settings,
Sales Extras,
Sales Invoice,
Sales Invoice Advance,
Sales Invoice Item,
Sales Invoice Items,
Sales Invoice Message,
Sales Invoice No,
Sales Invoice Trends,
Sales Order,
Sales Order Date,
Sales Order Item,
Sales Order Items,
Sales Order Message,
Sales Order No,
Sales Order Required,
Sales Order Trend,
Sales Partner,
Sales Partner Name,
Sales Partner Target,
Sales Partners Commission,
Sales Person,
Sales Person Incharge,
Sales Person Name,
Sales Person Target Variance (Item Group-Wise),
Sales Person Targets,
Sales Person-wise Transaction Summary,
Sales Rate,
Sales Register,
Sales Return,
Sales Taxes and Charges,
Sales Taxes and Charges Master,
Sales Team,
Sales Team Details,
Sales Team1,
Sales and Purchase,
Sales campaigns,
Sales persons and targets,
Sales taxes template.,
Sales territories.,
Salutation,
Same file has already been attached to the record,
Sample Size,
Sanctioned Amount,
Saturday,
Save,
Schedule,
Schedule Details,
Scheduled,
Scheduled Confirmation Date,
Scheduled Date,
Scheduler Log,
School/University,
Score (0-5),
Score Earned,
Scrap %,
Script,
Script Report,
Script Type,
Script to attach to all web pages.,
Search,
Search Fields,
Seasonality for setting budgets.,
Section Break,
Security Settings,Impostazioni Sicurezza
See "Rate Of Materials Based On" in Costing Section,
Select,
Select "Yes" for sub - contracting items,
Select "Yes" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.,
Select "Yes" if this item is used for some internal purpose in your company.,
Select "Yes" if this item represents some work like training, designing, consulting 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.,
Select All,
Select Attachments,
Select Budget Distribution to unevenly distribute targets across months.,
Select Budget Distribution, if you want to track based on seasonality.,
Select Customer,
Select Digest Content,
Select DocType,
Select Document Type,
Select Document Type or Role to start.,
Select PR,
Select Print Format,
Select Print Heading,
Select Report Name,
Select Role,
Select Sales Orders,
Select Sales Orders from which you want to create Production Orders.,
Select Terms and Conditions,
Select Time Logs and Submit to create a new Sales Invoice.,
Select Transaction,
Select Type,
Select User or Property to start.,
Select a Banner Image first.,
Select account head of the bank where cheque was deposited.,
Select an image of approx width 150px with a transparent background for best results.,
Select company name first.,
Select dates to create a new ,
Select name of Customer to whom project belongs,
Select or drag across time slots to create a new event.,
Select template from which you want to get the Goals,
Select the Employee for whom you are creating the Appraisal.,
Select the currency in which price list is maintained,
Select the label after which you want to insert new field.,
Select the period when the invoice will be generated automatically,
Select the price list as entered in "Price List" master. This will pull the reference rates of items against this price list as specified in "Item" master.,
Select the relevant company name if you have multiple companies,
Select the relevant company name if you have multiple companies.,
Select who you want to send this newsletter to,
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,
Selecting "Yes" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.,
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.,
Selling,
Selling Settings,
Send,
Send Autoreply,
Send Email,
Send From,
Send Invite Email,
Send Me A Copy,
Send Notifications To,
Send Print in Body and Attachment,
Send SMS,
Send To,
Send To Type,
Send an email reminder in the morning,
Send automatic emails to Contacts on Submitting transactions.,
Send mass SMS to your contacts,
Send regular summary reports via Email.,
Send to this list,
Sender,
Sender Name,
Sending newsletters is not allowed for Trial users, 
				to prevent abuse of this feature.,
Sent Mail,
Sent On,
Sent Quotation,
Separate production order will be created for each finished good item.,
Serial No,
Serial No Details,
Serial No Service Contract Expiry,
Serial No Status,
Serial No Warranty Expiry,
Serialized Item: ',
Series,
Series List for this Transaction,
Server,
Service Address,
Services,
Session Expired. Logging you out,
Session Expires in (time),
Session Expiry,
Session Expiry in Hours e.g. 06:00,
Set Banner from Image,
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,
Set Login and Password if authentication is required.,
Set New Password,Imposta la password
Set Value,
Set a new password and "Save",Impostare nuova Password e "Salva"
Set prefix for numbering series on your transactions,
Set targets Item Group-wise for this Sales Person.,
Set your background color, font and image (tiled),
Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.,
Setting Account Type helps in selecting this Account in transactions.,
Settings,
Settings for About Us Page.,
Settings for Accounts,
Settings for Buying Module,
Settings for Contact Us Page,
Settings for Contact Us Page.,
Settings for Selling Module,
Settings for the About Us Page,
Settings to extract Job Applicants from a mailbox e.g. "jobs@example.com",
Setup,
Setup Control,
Setup Series,
Setup of Shopping Cart.,
Setup of fonts and background.,
Setup of top navigation bar, footer and logo.,
Setup to pull emails from support email account,
Share,
Share With,
Shipments to customers.,
Shipping,
Shipping Account,
Shipping Address,
Shipping Address Name,
Shipping Amount,
Shipping Rule,
Shipping Rule Condition,
Shipping Rule Conditions,
Shipping Rule Label,
Shipping Rules,
Shop,
Shopping Cart,
Shopping Cart Price List,
Shopping Cart Price Lists,
Shopping Cart Settings,
Shopping Cart Shipping Rule,
Shopping Cart Shipping Rules,
Shopping Cart Taxes and Charges Master,
Shopping Cart Taxes and Charges Masters,
Short Bio,
Short Name,
Short biography for website and other publications.,
Shortcut,
Show "In Stock" or "Not in Stock" based on stock available in this warehouse.,
Show Details,
Show In Website,
Show Print First,
Show a slideshow at the top of the page,
Show in Website,
Show rows with zero values,
Show this slideshow at the top of the page,
Showing only for,
Signature,
Signature to be appended at the end of every email,
Single,
Single Post (article).,
Single unit of an Item.,
Sitemap Domain,
Slideshow,
Slideshow Items,
Slideshow Name,
Slideshow like display for the website,
Small Text,
Solid background color (default light gray),
Sorry we were unable to find what you were looking for.,
Sorry you are not permitted to view this page.,
Sorry! We can only allow upto 100 rows for Stock Reconciliation.,
Sorry. Companies cannot be merged,
Sorry. Serial Nos. cannot be merged,
Sort By,
Source,
Source Warehouse,
Source and Target Warehouse cannot be same,
Source of th,
Source of the lead. If via a campaign, select "Campaign",
Spartan,
Special Page Settings,
Specification Details,
Specify Exchange Rate to convert one currency into another,
Specify a list of Territories, for which, this Price List is valid,
Specify a list of Territories, for which, this Shipping Rule is valid,
Specify a list of Territories, for which, this Taxes Master is valid,
Specify conditions to calculate shipping amount,
Split Delivery Note into packages.,
Standard,
Standard Rate,
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 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 Date,
Start Report For,
Start date of current invoice's period,
Starts on,
Startup,
State,
States,
Static Parameters,
Status,
Status must be one of ,
Status should be Submitted,
Statutory info and other general information about your Supplier,
Stock,
Stock Adjustment Account,
Stock Adjustment Cost Center,
Stock Ageing,
Stock Analytics,
Stock Balance,
Stock Entry,
Stock Entry Detail,
Stock Frozen Upto,
Stock In Hand Account,
Stock Ledger,
Stock Ledger Entry,
Stock Level,
Stock Qty,
Stock Queue (FIFO),
Stock Received But Not Billed,
Stock Reconciliation,
Stock Reconciliation file not uploaded,
Stock Settings,
Stock UOM,
Stock UOM Replace Utility,
Stock Uom,
Stock Value,
Stock Value Difference,
Stop,
Stop users from making Leave Applications on following days.,
Stopped,
Structure cost centers for budgeting.,
Structure of books of accounts.,
Style,
Style Settings,
Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange,
Sub-currency. For e.g. "Cent",
Sub-domain provided by erpnext.com,
Subcontract,
Subdomain,
Subject,
Submit,
Submit Salary Slip,
Submit all salary slips for the above selected criteria,
Submitted,
Submitted Record cannot be deleted,
Subsidiary,
Success,
Successful: ,
Suggestion,
Suggestions,
Sunday,
Supplier,
Supplier (Payable) Account,
Supplier (vendor) name as entered in supplier master,
Supplier Account Head,
Supplier Address,
Supplier Details,
Supplier Intro,
Supplier Invoice Date,
Supplier Invoice No,
Supplier Name,
Supplier Naming By,
Supplier Part Number,
Supplier Quotation,
Supplier Quotation Item,
Supplier Reference,
Supplier Shipment Date,
Supplier Shipment No,
Supplier Type,
Supplier Warehouse,
Supplier Warehouse mandatory subcontracted purchase receipt,
Supplier classification.,
Supplier database.,
Supplier of Goods or Services.,
Supplier warehouse where you have issued raw materials for sub - contracting,
Supplier's currency,
Support,
Support Analytics,
Support Email,
Support Email Id,
Support Password,
Support Ticket,
Support queries from customers.,
Symbol,
Sync Inbox,
Sync Support Mails,
Sync with Dropbox,
Sync with Google Drive,
System,
System Defaults,
System Settings,
System User,Utente di sistema
System User (login) ID. If set, it will become default for all HR forms.,
System for managing Backups,
System generated mails will be sent from this email id.,
TL-,
TLB-,
Table,
Table for Item that will be shown in Web Site,
Tag,
Tag Name,
Tags,
Tahoma,
Target,
Target  Amount,
Target Detail,
Target Details,
Target Details1,
Target Distribution,
Target Qty,
Target Warehouse,
Task,
Task Details,
Tax,
Tax Calculation,
Tax Category can not be 'Valuation' or 'Valuation and Total' 
					as all items are non-stock items,
Tax Master,
Tax Rate,
Tax Template for Purchase,
Tax Template for Sales,
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,
Taxable,
Taxes,
Taxes and Charges,
Taxes and Charges Added,
Taxes and Charges Added (Company Currency),
Taxes and Charges Calculation,
Taxes and Charges Deducted,
Taxes and Charges Deducted (Company Currency),
Taxes and Charges Total,
Taxes and Charges Total (Company Currency),
Taxes and Charges1,
Team Members,
Team Members Heading,
Template for employee performance appraisals.,
Template of terms or contract.,
Term Details,
Terms and Conditions,
Terms and Conditions Content,
Terms and Conditions Details,
Terms and Conditions Template,
Terms and Conditions1,
Territory,
Territory Manager,
Territory Name,
Territory Target Variance (Item Group-Wise),
Territory Targets,
Test,
Test Email Id,
Test Runner,
Test the Newsletter,
Text,
Text Align,
Text Editor,
The "Web Page" that is the website home page,
The BOM which will be replaced,
The Item that represents the Package. This Item must have "Is Stock Item" as "No" and "Is Sales Item" as "Yes",
The date at which current entry is made in system.,
The date at which current entry will get or has actually executed.,
The date on which next invoice will be generated. It is generated on submit.
,
The date on which recurring invoice will be stop,
The day of the month on which auto invoice will be generated e.g. 05, 28 etc ,
The first Leave Approver in the list will be set as the default Leave Approver,
The gross weight of the package. Usually net weight + packaging material weight. (for print),
The name of your company / website as you want to appear on browser title bar. All pages will have this as the prefix to the title.,
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,
The system provides pre-defined roles, but you can <a href='#List/Role'>add new roles</a> to set finer permissions,
The unique id for tracking all recurring invoices. It is generated on submit.,
Then By (optional),
These properties are Link Type fields from all Documents.,
These properties can also be used to 'assign' a particular document, whose property matches with the User's property to a User. These can be set using the <a href='#permission-manager'>Permission Manager</a>,
These properties will appear as values in forms that contain them.,
These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.,
This Price List will be selected as default for all Customers under this Group.,
This Time Log Batch has been billed.,
This Time Log Batch has been cancelled.,
This Time Log conflicts with,
This account will be used to maintain value of available stock,
This currency will get fetched in Purchase transactions of this supplier,
This currency will get fetched in Sales transactions of this customer,
This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by "Merge Into" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.,
This feature is only applicable to self hosted instances,
This field will appear only if the fieldname defined here has value OR the rules are true (examples): <br>
myfield
eval:doc.myfield=='My Value'<br>
eval:doc.age>18,
This goes above the slideshow.,
This is PERMANENT action and you cannot undo. Continue?,
This is an auto generated Material Request.,
This is permanent action and you cannot undo. Continue?,
This is the number of the last created transaction with this prefix,
This message goes away after you create your first customer.,
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.,
This will be used for setting rule in HR module,
Thread HTML,
Thursday,
Time,
Time Log,
Time Log Batch,
Time Log Batch Detail,
Time Log Batch Details,
Time Log Batch status must be 'Submitted',
Time Log Status must be Submitted.,
Time Log for tasks.,
Time Log is not billable,
Time Log must have status 'Submitted',
Time Zone,
Time Zones,
Time and Budget,
Time at which items were delivered from warehouse,
Time at which materials were received,
Title,
Title / headline of your page,
Title Case,
Title Prefix,
To,
To Currency,
To Date,
To Discuss,
To Do,
To Do List,
To PR Date,
To Package No.,
To Reply,
To Time,
To Value,
To Warehouse,
To add a tag, open the document and click on "Add Tag" on the sidebar,
To assign this issue, use the "Assign" button in the sidebar.,
To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.,
To create an Account Head under a different company, select the company and save customer.,
To enable <b>Point of Sale</b> features,
To fetch items again, click on 'Get Items' button 
						or update the Quantity manually.,
To format columns, give column labels in the query.,
To further restrict permissions based on certain values in a document, use the 'Condition' settings.,
To get Item Group in details table,
To manage multiple series please go to Setup > Manage Series,
To restrict a User of a particular Role to documents that are explicitly assigned to them,
To restrict a User of a particular Role to documents that are only self-created.,
To set reorder level, item must be Purchase Item,
To set user roles, just go to <a href='#List/Profile'>Setup > Users</a> and click on the user to assign roles.,
To track any installation or commissioning related work after sales,
To track brand name in the following documents<br>
Delivery Note, Enuiry, 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.,
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.,
ToDo,
Tools,
Top,
Top Bar,
Top Bar Background,
Top Bar Item,
Top Bar Items,
Top Bar Text,
Top Bar text and background is same color. Please change.,
Total,
Total (sum of) points distribution for all goals should be 100.,
Total Advance,
Total Amount,
Total Amount To Pay,
Total Amount in Words,
Total Billing This Year: ,
Total Claimed Amount,
Total Commission,
Total Cost,
Total Credit,
Total Debit,
Total Deduction,
Total Earning,
Total Experience,
Total Hours,
Total Hours (Expected),
Total Invoiced Amount,
Total Leave Days,
Total Leaves Allocated,
Total Operating Cost,
Total Points,
Total Raw Material Cost,
Total SMS Sent,
Total Sanctioned Amount,
Total Score (Out of 5),
Total Tax (Company Currency),
Total Taxes and Charges,
Total Taxes and Charges (Company Currency),
Total amount of invoices received from suppliers during the digest period,
Total amount of invoices sent to the customer during the digest period,
Total days in month,
Total in words,
Totals,
Track separate Income and Expense for product verticals or divisions.,
Track this Delivery Note against any Project,
Track this Sales Invoice against any Project,
Track this Sales Order against any Project,
Transaction,
Transaction Date,
Transfer,
Transition Rules,
Transporter Info,
Transporter Name,
Transporter lorry number,
Trash Reason,
Tree of item classification,
Trial Balance,
Tuesday,
Tweet will be shared via your user account (if specified),
Twitter Share,
Twitter Share via,
Type,
Type of document to rename.,
Type of employment master.,
Type of leaves like casual, sick etc.,
Types of Expense Claim.,
Types of activities for Time Sheets,
UOM,
UOM Conversion Detail,
UOM Conversion Details,
UOM Conversion Factor,
UOM Details,
UOM Name,
UOM Replace Utility,
UPPER CASE,
UPPERCASE,
URL,
Unable to complete request: ,
Under AMC,
Under Graduate,
Under Warranty,
Unit of Measure,
Unit of measurement of this item (e.g. Kg, Unit, No, Pair).,
Units/Hour,
Units/Shifts,
Unmatched Amount,
Unpaid,
Unread Messages,
Unscheduled,
Unsubscribed,
Upcoming Events for Today,
Update,
Update Clearance Date,
Update Field,
Update PR,
Update Series,
Update Series Number,
Update Stock,
Update Stock should be checked.,
Update Value,
Update allocated amount in the above table and then click "Allocate" button,
Update bank payment dates with journals.,
Update is in progress. This may take some time.,Aggiornamento in corso. Può richiedere del tempo.
Updated,
Upload Attachment,
Upload Attendance,
Upload Backups to Dropbox,
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 a file,
Upload and Import,
Upload attendance from a .csv file,
Upload stock balance via csv.,
Uploading...,
Upper Income,
Urgent,
Use Multi-Level BOM,
Use SSL,
User,
User Cannot Create,
User Cannot Search,
User ID,
User Image,Immagine Utente
User Name,
User Remark,
User Remark will be added to Auto Remark,
User Tags,
User Type,
User must always select,
User not allowed entry in the Warehouse,
User not allowed to delete.,
UserRole,
Username,
Users who can approve a specific employee's leave applications,
Users with this role are allowed to do / modify accounting entry before frozen date,
Utilities,
Utility,
Valid For Territories,
Valid Upto,
Valid for Buying or Selling?,
Valid for Territories,
Validate,
Valuation,
Valuation Method,
Valuation Rate,
Valuation and Total,
Value,
Value missing for,
Vehicle Dispatch Date,
Vehicle No,
Verdana,
Verified By,
Visit,
Visit report for maintenance call.,
Voucher Detail No,
Voucher ID,
Voucher Import Tool,
Voucher No,
Voucher Type,
Voucher Type and Date,
Waiting for Customer,
Walk In,
Warehouse,
Warehouse Contact Info,
Warehouse Detail,
Warehouse Name,
Warehouse Type,
Warehouse User,
Warehouse Users,
Warehouse and Reference,
Warehouse does not belong to company.,
Warehouse where you are maintaining stock of rejected items,
Warehouse-Wise Stock Balance,
Warehouse-wise Item Reorder,
Warehouses,
Warn,
Warning,
Warning: Leave application contains following block dates,
Warranty / AMC Details,
Warranty / AMC Status,
Warranty Expiry Date,
Warranty Period (Days),
Warranty Period (in days),
Web Content,
Web Page,
Website,
Website Description,
Website Item Group,
Website Item Groups,
Website Overall Settings,
Website Script,
Website Settings,
Website Slideshow,
Website Slideshow Item,
Website User,Utente Web
Website Warehouse,
Wednesday,
Weekly,
Weekly Off,
Weight UOM,
Weightage,
Weightage (%),
Welcome,
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.,
When you <b>Amend</b> a document after cancel and save it, it will get a new number that is a version of the old number.,
Where items are stored.,
Where manufacturing operations are carried out.,
Widowed,
Width,
Will be calculated automatically when you enter the details,
Will be fetched from Customer,
Will be updated after Sales Invoice is Submitted.,
Will be updated when batched.,
Will be updated when billed.,
Will be used in url (usually first name).,
With Operations,
Work Details,
Work Done,
Work In Progress,
Work-in-Progress Warehouse,
Workflow,
Workflow Action,
Workflow Action Master,
Workflow Action Name,
Workflow Document State,
Workflow Document States,
Workflow Name,
Workflow State,
Workflow State Field,
Workflow State Name,
Workflow Transition,
Workflow Transitions,
Workflow state represents the current state of a document.,
Workflow will start after saving.,
Working,
Workstation,
Workstation Name,
Write,
Write Off Account,
Write Off Amount,
Write Off Amount <=,
Write Off Based On,
Write Off Cost Center,
Write Off Outstanding Amount,
Write Off Voucher,
Write a Python file in the same folder where this is saved and return column and result.,
Write a SELECT query. Note result is not paged (all data is sent in one go).,
Write sitemap.xml,
Write titles and introductions to your blog.,
Writers Introduction,
Wrong Template: Unable to find head row.,
Year,
Year Closed,
Year Name,
Year Start Date,
Year of Passing,
Yearly,
Yes,
Yesterday,
You are not authorized to do/modify back dated entries before ,
You can create more earning and deduction type from Setup --> HR,
You can enter any date manually,
You can enter the minimum quantity of this item to be ordered.,
You can not enter both Delivery Note No and Sales Invoice No. 
					Please enter any one.,
You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,
You can start by selecting backup frequency and 
					granting access for sync,
You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,
You may need to update: ,
Your Customer's TAX registration numbers (if applicable) or any general information,
Your download is being built, this may take a few moments...,
Your letter head content,
Your sales person who will contact the customer in future,
Your sales person who will contact the lead in future,
Your sales person will get a reminder on this date to contact the customer,
Your sales person will get a reminder on this date to contact the lead,
Your support email id - must be a valid email - this is where your emails will come!,
[Label]:[Field Type]/[Options]:[Width],
add your own CSS (careful!),
adjust,
align-center,
align-justify,
align-left,
align-right,
also be included in Item's rate,
and,
arrow-down,
arrow-left,
arrow-right,
arrow-up,
assigned by,
asterisk,
backward,
ban-circle,
barcode,
bell,
bold,
book,
bookmark,
briefcase,
bullhorn,
calendar,
camera,
cancel,
cannot be 0,
cannot be empty,
cannot be greater than 100,
cannot be included in Item's rate,
cannot have a URL, because it has child item(s),
cannot start with,
certificate,
check,
chevron-down,
chevron-left,
chevron-right,
chevron-up,
circle-arrow-down,
circle-arrow-left,
circle-arrow-right,
circle-arrow-up,
cog,
comment,
create a Custom Field of type Link (Profile) and then use the 'Condition' settings to map that field to the Permission rule.,
dd-mm-yyyy,
dd/mm/yyyy,
deactivate,
does not belong to BOM: ,
does not exist,
does not have role 'Leave Approver',
does not match,
download,
download-alt,
e.g. Bank, Cash, Credit Card,
e.g. Kg, Unit, Nos, m,
edit,
eg. Cheque Number,
eject,
english,
envelope,
español,
example: Next Day Shipping,
example: http://help.erpnext.com,
exclamation-sign,
eye-close,
eye-open,
facetime-video,
fast-backward,
fast-forward,
file,
film,
filter,
fire,
flag,
folder-close,
folder-open,
font,
forward,
français,
fullscreen,
gift,
glass,
globe,
hand-down,
hand-left,
hand-right,
hand-up,
has been entered atleast twice,
have a common territory,
have the same Barcode,
hdd,
headphones,
heart,
home,
icon,
in,
inbox,
indent-left,
indent-right,
info-sign,
is a cancelled Item,
is linked in,
is not a Stock Item,
is not allowed.,
italic,
leaf,
lft,
list,
list-alt,
lock,
lowercase,
magnet,
map-marker,
minus,
minus-sign,
mm-dd-yyyy,
mm/dd/yyyy,
move,
music,
must be one of,
not a purchase item,
not a sales item,
not a service item.,
not a sub-contracted item.,
not in,
not within Fiscal Year,
of,
of type Link,
off,
ok,
ok-circle,
ok-sign,
old_parent,
or,
pause,
pencil,
picture,
plane,
play,
play-circle,
plus,
plus-sign,
print,
qrcode,
question-sign,
random,
reached its end of life on,
refresh,
remove,
remove-circle,
remove-sign,
repeat,
resize-full,
resize-horizontal,
resize-small,
resize-vertical,
retweet,
rgt,
road,
screenshot,
search,
share,
share-alt,
shopping-cart,
should be 100%,
signal,
star,
star-empty,
step-backward,
step-forward,
stop,
tag,
tags,
target = "_blank",
tasks,
text-height,
text-width,
th,
th-large,
th-list,
thumbs-down,
thumbs-up,
time,
tint,
to,
to be included in Item's rate, it is required that: ,
trash,
upload,
user,
user_image_show,
values and dates,
volume-down,
volume-off,
volume-up,
warning-sign,
website page link,
wrench,
yyyy-mm-dd,
zoom-in,
zoom-out,
