 (Half Day), (Mezza Giornata)
 against sales order,contro l&#39;ordine di vendita
 against same operation, per la stessa operazione
 already marked, già avviato
 and year: ,e anno:
 as it is stock Item or packing item,in quanto è disponibile articolo o elemento dell&#39;imballaggio
 at warehouse: ,in magazzino:
 by Role ,per Ruolo
 can not be made., non può essere fatto.
 can not be marked as a ledger as it has existing child,non può essere contrassegnato come un libro mastro in quanto ha bambino esistente
 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 Accounts Manager può fare un&#39;operazione contro questo account
" is less than equals to zero in the system, \						valuation rate is mandatory for this item","è inferiore uguale a zero nel sistema, \ tasso valutazione è obbligatoria 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.,è quello di default anno fiscale. \ Si prega di aggiornare il browser per la modifica abbia effetto.
 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 &#39;sì&#39;. Come articolo:
 should be same as that in ,dovrebbe essere uguale a quello in
 was on leave on ,era in aspettativa per
 will be ,sarà
 will be over-billed against mentioned ,saranno oltre becco contro menzionato
 will become ,diventerà
"""Company History""",&quot;La storia della società&quot;
"""Team Members"" or ""Management""",&quot;Membri del team&quot; o &quot;gestione&quot;
%  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.","&#39;Non possono essere gestiti con Archivio Riconciliazione. \ È possibile aggiungere / eliminare Serial No direttamente, \ da modificare stock di questo oggetto."
' in Company: ,&#39;In compagnia:
'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à nella tua business.To 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.,. Eccezionale non può essere inferiore a zero. \ Si prega di corrispondere esattamente eccezionale.
. 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 = [?] FractionFor e.g. 1 USD = 100 Cent,"1 Valuta = FractionFor ad esempio, 1 USD = 100 Cent [?]"
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1.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 ,: Duplica riga dalla stessa
: 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 i gruppi di clienti, 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 Territorio, 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 Territorio, 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"">Territorio</a>"
"<a href=""#Sales Browser/Territory"">To manage Territory, click here</a>","<a href=""#Sales Browser/Territory"">Per gestire Territorio, 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>')"">Opzioni di denominazione</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"">Per impostare, si prega di andare su Setup&gt; Serie Naming</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 ,Tenere conto di 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: Will 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 ** ** ** 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 ** e non l&#39;aggregato ** articolo. ** Il pacchetto ** Voce ** avrà &quot;è Stock Item&quot; come &quot;No&quot; e &quot;Is Voce di vendita&quot; come &quot;Sì&quot;, per esempio:. Se metti in vendita computer portatili e zaini separatamente e dispone di un prezzo speciale se il cliente acquista sia , quindi il computer portatile + Zaino sarà una nuova Vendite BOM Item.Note: 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, il prossimo probabile ragione \ potrebbe essere nome account sbagliato. Si prega di rettificare 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 correlati esportazione come moneta, tasso di conversione, totale delle esportazioni, l&#39;esportazione totale generale ecc sono disponibili in <br> Bolla di consegna, POS, Quotation, fattura di vendita, ordini di vendita, ecc"
"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, import totale generale ecc sono disponibili in <br> Acquisto 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 del flusso di lavoro e ruoli del flusso di lavoro. <br> Docstatus Opzioni: 0 è &quot;salvato&quot;, 1 è &quot;sottoposto&quot; e 2 è &quot;Annullato&quot;"
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 edit Price List Rate in transactions,Consenti all&#39;utente di modificare Listino cambio nelle transazioni
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
Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,"Un&#39;altra struttura di stipendio &#39;% s&#39; è attivo per dipendente &#39;% s&#39;. Fare il suo status di &#39;inattivo&#39; di procedere, per favore."
"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: ,Per quanto qty esistente per la voce:
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'","Poiché non vi sono operazioni di magazzino esistenti per questa voce \, non è possibile modificare i valori di &#39;Ha Serial No&#39;, \ &#39;è Stock articolo&#39; e &#39;Metodo di Valutazione&#39;"
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: ,La frequenza per il dipendente:
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,Disponibile
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
Birthday,Compleanno
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 ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Marca è ciò che appare in alto a destra della barra degli strumenti. Se si tratta di un&#39;immagine, accertarsi che ithas uno sfondo trasparente e utilizzare il tag &lt;img /&gt;. Mantenere dimensioni 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
Bummer! There are more holidays than working days this month.,Disdetta! Ci sono più vacanze di giorni lavorativi del mese.
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 ,Impossibile
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 delete Serial No in warehouse. First remove from warehouse, then delete.","Impossibile eliminare Serial No in magazzino. Innanzitutto rimuovere dal magazzino, quindi eliminare."
Cannot edit standard fields,Non è possibile modificare i campi standard
Cannot have two prices for same Price List,Non può avere due prezzi per lo stesso Listino Prezzi
Cannot map because following condition fails: ,Impossibile mappare perché seguente condizione fallisce:
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 (s) già in uso. Si prega di correggere e riprovare. Raccomandato <b>Da =% sentenza 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,Completare
Complete By,Completato da
Completed,Completato
Completed Production Orders,Completati gli ordini di produzione
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 di contatto, come &quot;Query vendite, il supporto delle query&quot;, ecc ciascuno su una nuova riga o separati da virgole."
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 oggetto:
Cost Center must be specified for PL Account: ,Centro di costo deve essere specificato per Conto PL:
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 Material Requests,Creare Richieste Materiale
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 Responsabile:
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.
Creation Date,Data di creazione
Creation Document No,Creazione di documenti No
Creation Document Type,Creazione tipo di documento
Creation Time,Tempo di creazione
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 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 Buying Price List,Predefinito acquisto Prezzo di listino
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,Predefinito Fornitore
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 l&#39;azione di bilancio, vedi <a href=""#!List/Company"">Azienda Maestro</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 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
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,Breakup dettagliato dei totali
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.","Diverso &quot;Uniti&quot; questo documento può esistere in Come &quot;Open&quot;, &quot;In attesa di approvazione&quot;, ecc"
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,DocType Campo
Document,Documento
Document Description,Descrizione del documento
Document Numbering Series,Documento serie di numerazione
Document Status transition from ,Documento di transizione di stato da
Document Type,Tipo di documento
Document is only editable by users of role,Documento è modificabile solo dagli utenti del ruolo
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, compilare i dati appropriati e fissare le date file.All modificati e combinati dipendente nel periodo selezionato verrà nel modello, con 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,Titolo di studio
Educational Qualification Details,Titolo di studio Dettagli
Eg. smsgateway.com/api/send_sms.cgi,Ad es. 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 id deve essere unico, esiste già 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 di essere creati da
Employee Setup,Configurazione Dipendenti
Employee Type,Tipo Dipendenti
Employee grades,Grado dipendenti
Employee record is created using selected field. ,Record dipendente viene creato utilizzando campo selezionato.
Employee records.,Registrazione Dipendente.
Employee: ,Lavoratore:
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 email Id ricevere Rapporto errore inviato dal users.Eg: 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 campi valore di default (chiavi) e valori. Se si aggiungono più valori per un campo, il primo sarà scelto. Questi dati vengono utilizzati anche per impostare le regole di autorizzazione &quot;match&quot;. Per vedere l&#39;elenco dei campi, andare al <a href=""#Form/Customize Form/Customize Form"">modulo di Personalizzazione</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 End must be after Start,Fine evento deve essere dopo l&#39;inizio
Event Individuals,Eventi Personali
Event Role,Ruolo Evento
Event Roles,Ruoli Evento
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:
"Example: ABCD.#####If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.","Esempio:. ABCD # # # # # Se serie è ambientata e Serial No non è menzionata nelle transazioni, verrà creato il numero di serie quindi automatica sulla base di questa serie. Se si vuole sempre di menzionare esplicitamente i numeri d&#39;ordine per questo prodotto. lasciare vuoto."
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,Uscire Dettagli Intervista
Expected,Previsto
Expected Delivery Date,Data prevista di consegna
Expected End Date,Data prevista di fine
Expected Start Date,Data prevista di inizio
Expense Account,Conto uscite
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 Data
Expense Details,Dettagli spese
Expense Head,Expense Capo
Expense account is mandatory for item: ,Conto spese è obbligatoria per oggetto:
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: ,Impossibile:
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,Galleggiare
Float Precision,Float Precision
Follow via Email,Seguire via Email
Following Journal Vouchers have been created automatically,A seguito Buoni Journal sono stati creati automaticamente
"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.","Seguendo tabella mostrerà i valori, se i capi sono sub - contratto. Questi valori saranno prelevati dal maestro del &quot;Bill of Materials&quot; di sub - elementi contrattuali."
Font (Heading),Font (rubrica)
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 ,Per la voce
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma","Per i collegamenti, inserire il DocType come rangeFor Selezionare, immettere lista di opzioni separate da virgole"
For Production,Per la produzione
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 Bill of Materials,Da Bill of Materials
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: debito o di credito importo è obbligatoria 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.,Generare richieste di materiali (MRP) e ordini di produzione.
Generate Salary Slips,Generare buste paga
Generate Schedule,Genera Programma
"Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Generare imballaggio scivola per i pacchetti da consegnare. Usato per comunicare il numero del pacchetto, contenuto della confezione e il suo peso."
Generates HTML to include selected image in the description,Genera HTML per includere immagine selezionata nella descrizione
Georgia,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 Items From Sales Orders,Ottieni elementi da ordini di vendita
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 settimanali Date Off
"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 a Impostazioni&gt; <a href='#user-properties'>Proprietà utente</a> di impostare \ &#39;territorio&#39; per gli utenti diffent.
Goal,Obiettivo
Goals,Obiettivi
Goods received from Suppliers.,Merci ricevute dai fornitori.
Google Analytics ID,ID Google Analytics
Google Drive,Google Drive
Google Drive Access Allowed,Google Accesso unità domestici
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
Happy Birthday!,Buon compleanno!
Has Batch No,Ha Lotto N.
Has Child Node,Ha un Nodo Figlio
Has Serial No,Ha Serial No
Header,Intestazione
Heading,Intestazione
Heading Text As,Rubrica testo come
Heads (or groups) against which Accounting Entries are made and balances are maintained.,Teste (o gruppi) a fronte del quale le scritture contabili sono fatti e gli equilibri sono mantenuti.
Health Concerns,Preoccupazioni per la salute
Health Details,Dettagli Salute
Held On,Held On
Help,Aiuto
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, utilizzare &quot;# Form / Note / [Nota Nome]&quot;, come il collegamento URL. (Non usare &quot;http://&quot;)"
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 there! Hai bisogno di mettere almeno un elemento \ tabella alla voce.
Hey! All these items have already been invoiced.,Hey! Tutti questi elementi sono già stati fatturati.
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 page è Prodotti
Home Pages,Home Pages
Host,Host
"Host, Email and Password required if emails are to be pulled","Host, e-mail e la password necessari se le email sono di essere tirato"
Hour Rate,Vota ora
Hour Rate Consumable,Ora Vota consumabili
Hour Rate Electricity,Ora Vota Elettricità
Hour Rate Labour,Ora Vota Labour
Hour Rate Rent,Ora Vota 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
Hrvatski,Hrvatski
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 (s), su cui si stanno applicando per lasciare \ coincide con le vacanze (s). 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,III
IN,IN
INV,INV
INV/10-11/,INV/10-11 /
ITEM,ARTICOLO
IV,IV
Icon,Icona
Icon will appear on the button,Icona apparirà sul tasto
Id of the profile will be the email.,ID del profilo sarà l'email.
Identification of the package for the delivery (for print),Identificazione del pacchetto per la consegna (per la stampa)
If Income or Expense,Se proventi od oneri
If Monthly Budget Exceeded,Se Budget mensile superato
"If Sale BOM is defined, the actual BOM of the Pack is displayed as table.Available in Delivery Note and Sales Order","Se Vendita BOM è definita, la distinta base effettiva del pacchetto viene visualizzato come table.Available nella bolla di consegna e ordine di vendita"
"If Supplier Part Number exists for given Item, it gets stored here","Se il numero di parte del fornitore esiste per dato voce, che viene memorizzato qui"
If Yearly Budget Exceeded,Se Budget annuale superato
"If a User does not have access at Level 0, then higher levels are meaningless","Se un utente non ha accesso al livello 0, quindi i livelli più elevati sono senza senso"
"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.","Se selezionato, distinta per gli elementi sub-assemblaggio sarà considerato per ottenere materie prime. In caso contrario, tutti gli elementi sub-assemblaggio saranno trattati come materia prima."
"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Se selezionato, non totale. di giorni lavorativi includerà vacanze, e questo ridurrà il valore di salario per ogni giorno"
"If checked, all other workflows become inactive.","Se selezionata, tutti gli altri flussi di lavoro diventano inattivi."
"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.","Se selezionato, una e-mail con un formato HTML allegato sarà aggiunto ad una parte del corpo del messaggio e allegati. Per inviare solo come allegato, deselezionare questa."
"If checked, the Home page will be the default Item Group for the website.","Se selezionato, la pagina iniziale sarà il Gruppo Item predefinita per il sito web."
"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","Se selezionato, l&#39;importo della tassa sarà considerata già inclusa nel Stampa Valuta / Stampa Importo"
"If disable, 'Rounded Total' field will not be visible in any transaction","Se disabilitare, &#39;Rounded totale&#39; campo non sarà visibile in qualsiasi transazione"
"If enabled, the system will post accounting entries for inventory automatically.","Se abilitato, il sistema pubblicherà le scritture contabili per l&#39;inventario automatico."
"If image is selected, color will be ignored (attach first)","Se si seleziona un&#39;immagine, il colore viene ignorata (allegare prima)"
If more than one package of the same type (for print),Se più di un pacchetto dello stesso tipo (per la stampa)
If non standard port (e.g. 587),Se la porta non standard (ad esempio 587)
If not applicable please enter: NA,Se non applicabile Inserisci: NA
"If not checked, the list will have to be added to each Department where it has to be applied.","Se non controllati, la lista dovrà essere aggiunto a ciascun Dipartimento dove deve essere applicato."
"If not, create a","Se non, creare un"
"If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.","Se impostato, l&#39;immissione dei dati è consentito solo per gli utenti specificati. Altrimenti, l&#39;ingresso è consentito a tutti gli utenti con i permessi necessari."
"If specified, send the newsletter using this email address","Se specificato, inviare la newsletter tramite questo indirizzo e-mail"
"If the 'territory' Link Field exists, it will give you an option to select it","Se il &#39;territorio&#39; Link campo esiste, che vi darà la possibilità di selezionare la"
"If the account is frozen, entries are allowed for the ""Account Manager"" only.","Se l&#39;account viene bloccato, le voci sono consentiti per l &#39;&quot;Account Manager&quot; solo."
"If this Account represents a Customer, Supplier or Employee, set it here.","Se questo account rappresenta un cliente, fornitore o dipendente, impostare qui."
If you follow Quality Inspection<br>Enables item QA Required and QA No in Purchase Receipt,Se seguite Controllo Qualità <br> Abilita elemento QA obbligatori e QA No in Acquisto Ricevuta
If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity,Se si dispone di team di vendita e vendita Partners (Partner di canale) possono essere taggati e mantenere il loro contributo per l&#39;attività di vendita
"If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.","Se è stato creato un modello standard in Acquisto tasse e le spese master, selezionarne uno e fare clic sul pulsante qui sotto."
"If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.","Se è stato creato un modello standard in tasse sulla vendita e Spese master, selezionarne uno e fare clic sul pulsante qui sotto."
"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","Se si è a lungo stampare formati, questa funzione può essere usato per dividere la pagina da stampare su più pagine con tutte le intestazioni e piè di pagina in ogni pagina"
If you involve in manufacturing activity<br>Enables item <b>Is Manufactured</b>,Se si coinvolgono in attività di produzione <br> Abilita elemento <b>è prodotto</b>
Ignore,Ignora
Ignored: ,Ignorato:
Image,Immagine
Image Link,Immagine link
Image View,Visualizza immagine
Implementation Partner,Partner di implementazione
Import,Importazione
Import Attendance,Import presenze
Import Log,Importa Log
Important dates and commitments in your project life cycle,Date importanti e gli impegni nel ciclo di vita del progetto
Imports,Importazioni
In Dialog,Nella finestra di dialogo
In Filter,In Filtro
In Hours,In Hours
In List View,In elenco Visualizza
In Process,In Process
In Report Filter,In Report Filter
In Row,In fila
In Words,In Parole
In Words (Company Currency),In Parole (Azienda valuta)
In Words (Export) will be visible once you save the Delivery Note.,In Parole (Export) sarà visibile una volta che si salva il DDT.
In Words will be visible once you save the Delivery Note.,In parole saranno visibili una volta che si salva il DDT.
In Words will be visible once you save the Purchase Invoice.,In parole saranno visibili una volta che si salva la Fattura di Acquisto.
In Words will be visible once you save the Purchase Order.,In parole saranno visibili una volta che si salva di Acquisto.
In Words will be visible once you save the Purchase Receipt.,In parole saranno visibili una volta che si salva la ricevuta di acquisto.
In Words will be visible once you save the Quotation.,In parole saranno visibili una volta che si salva il preventivo.
In Words will be visible once you save the Sales Invoice.,In parole saranno visibili una volta che si salva la fattura di vendita.
In Words will be visible once you save the Sales Order.,In parole saranno visibili una volta che si salva l&#39;ordine di vendita.
In response to,In risposta a
"In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","Nel Permission Manager, fare clic sul pulsante nella colonna &#39;Stato&#39; per il ruolo che si desidera limitare."
Incentives,Incentivi
Incharge Name,InCharge Nome
Include holidays in Total no. of Working Days,Includi vacanze in totale n. dei giorni lavorativi
Income / Expense,Proventi / oneri
Income Account,Conto Conto
Income Booked,Reddito Prenotato
Income Year to Date,Reddito da inizio anno
Income booked for the digest period,Reddito prenotato per il periodo digest
Incoming,In arrivo
Incoming / Support Mail Setting,Incoming / Supporto Impostazione posta
Incoming Rate,Rate in ingresso
Incoming quality inspection.,Controllo di qualità in arrivo.
Index,Indice
Indicates that the package is a part of this delivery,Indica che il pacchetto è una parte di questa consegna
Individual,Individuale
Individuals,Individui
Industry,Industria
Industry Type,Tipo Industria
Info,Info
Insert After,Inserisci dopo
Insert Below,Inserisci sotto
Insert Code,Inserire codice
Insert Row,Inserisci riga
Insert Style,Inserire Style
Inspected By,Verifica a cura di
Inspection Criteria,Criteri di ispezione
Inspection Required,Ispezione Obbligatorio
Inspection Type,Tipo di ispezione
Installation Date,Data di installazione
Installation Note,Installazione Nota
Installation Note Item,Installazione Nota articolo
Installation Status,Stato di installazione
Installation Time,Tempo di installazione
Installation record for a Serial No.,Record di installazione per un numero di serie
Installed Qty,Qtà installata
Instructions,Istruzione
Int,Int.
Integrations,Integrazioni
Interested,Interessati
Internal,Interno
Introduce your company to the website visitor.,Introdurre la vostra azienda per il visitatore del sito.
Introduction,Introduzione
Introductory information for the Contact Us Page,Informazioni introduttive per la pagina Contattaci
Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Invalid Consegna Nota. Consegna Nota deve esistere e deve essere in stato di bozza. Si prega di correggere e riprovare.
Invalid Email,Email non valida
Invalid Email Address,Indirizzo e-mail non valido
Invalid Item or Warehouse Data,Articolo non valido o Data Warehouse
Invalid Leave Approver,Invalid Lascia Approvatore
Inventory,Inventario
Inverse,Inverse
Invoice Date,Data fattura
Invoice Details,Dettagli Fattura
Invoice No,Fattura n
Invoice Period From Date,Fattura Periodo Dal Data
Invoice Period To Date,Periodo Fattura Per Data
Is Active,È attivo
Is Advance,È Advance
Is Asset Item,È Asset articolo
Is Cancelled,Viene Annullato
Is Carry Forward,È portare avanti
Is Child Table,È Tavola Bambino
Is Default,È Default
Is Encash,È incassare
Is LWP,È LWP
Is Mandatory Field,È Campo obbligatorio
Is Opening,Sta aprendo
Is Opening Entry,Sta aprendo Entry
Is PL Account,È l&#39;account PL
Is POS,È POS
Is Primary Contact,È primario di contatto
Is Purchase Item,È Acquisto Voce
Is Sales Item,È Voce vendite
Is Service Item,È il servizio Voce
Is Single,È single
Is Standard,È standard
Is Stock Item,È Stock articolo
Is Sub Contracted Item,È sub articolo Contrattato
Is Subcontracted,Di subappalto
Is Submittable,È Submittable
Is it a Custom DocType created by you?,E &#39;un DOCTYPE personalizzato creato da voi?
Is this Tax included in Basic Rate?,È questa tassa inclusi nel prezzo base?
Issue,Questione
Issue Date,Data di Emissione
Issue Details,Dettagli del problema
Issued Items Against Production Order,Articoli emesso contro Ordine di produzione
It is needed to fetch Item Details.,E &#39;necessario per recuperare i dettagli del prodotto.
It was raised because the (actual + ordered + indented - reserved) 						quantity reaches re-order level when the following record was created,E &#39;stato sollevato perché il (reale + ordinato + frastagliata - riservato) quantità raggiunge il livello di riordino quando il record seguente è stato creato
Item,Articolo
Item Advanced,Voce Avanzata
Item Barcode,Barcode articolo
Item Batch Nos,Nn batch Voce
Item Classification,Classificazione articolo
Item Code,Codice Articolo
Item Code (item_code) is mandatory because Item naming is not sequential.,Codice Articolo (item_code) è obbligatoria in quanto denominazione articolo non è sequenziale.
Item Code cannot be changed for Serial No.,Codice Articolo non può essere modificato per Serial No.
Item Customer Detail,Dettaglio articolo cliente
Item Description,Voce Descrizione
Item Desription,Desription articolo
Item Details,Dettagli articolo
Item Group,Gruppo articoli
Item Group Name,Articolo Group
Item Groups in Details,Gruppi di articoli in Dettagli
Item Image (if not slideshow),Articolo Immagine (se non slideshow)
Item Name,Nome dell&#39;articolo
Item Naming By,Articolo Naming By
Item Price,Articolo Prezzo
Item Prices,Voce Prezzi
Item Quality Inspection Parameter,Voce di controllo di qualità dei parametri
Item Reorder,Articolo riordino
Item Serial No,Articolo N. d&#39;ordine
Item Serial Nos,Voce n ° di serie
Item Supplier,Articolo Fornitore
Item Supplier Details,Voce Fornitore Dettagli
Item Tax,Tax articolo
Item Tax Amount,Articolo fiscale Ammontare
Item Tax Rate,Articolo Tax Rate
Item Tax1,Articolo Imposta1
Item To Manufacture,Articolo per la fabbricazione
Item UOM,Articolo UOM
Item Website Specification,Specifica Sito
Item Website Specifications,Articolo Specifiche Website
Item Wise Tax Detail ,Articolo Wise Particolare fiscale
Item classification.,Articolo classificazione.
Item must have 'Has Serial No' as 'Yes',L&#39;oggetto deve avere &#39;Ha Serial No&#39; a &#39;Sì&#39;
Item to be manufactured or repacked,Voce da fabbricati o nuovamente imballati
Item will be saved by this name in the data base.,L&#39;oggetto sarà salvato con questo nome nella banca dati.
"Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.","Item, Garanzia, AMC (annuale Contratto di Manutenzione) Dettagli viene prelevato automaticamente quando si seleziona il numero di serie."
Item-Wise Price List,Articolo-saggio Listino
Item-wise Last Purchase Rate,Articolo-saggio Ultimo Purchase Rate
Item-wise Purchase History,Articolo-saggio Cronologia acquisti
Item-wise Purchase Register,Articolo-saggio Acquisto Registrati
Item-wise Sales History,Articolo-saggio Storia Vendite
Item-wise Sales Register,Vendite articolo-saggio Registrati
Items,Articoli
"Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty",Articoli da richieste che sono &quot;out of stock&quot; considerando tutti i magazzini in base qty proiettata e qty minimo di ordine
Items which do not exist in Item master can also be entered on customer's request,Voci che non esistono in master articolo possono essere inseriti su richiesta del cliente
Itemwise Discount,Sconto Itemwise
Itemwise Recommended Reorder Level,Itemwise consigliata riordino Livello
JSON,JSON
JV,JV
JavaScript Format: wn.query_reports['REPORTNAME'] = {},Formato JavaScript: wn.query_reports [&#39;REPORTNAME&#39;] = {}
Javascript,Javascript
Javascript to append to the head section of the page.,Javascript da aggiungere alla sezione head della pagina.
Job Applicant,Candidato di lavoro
Job Opening,Apertura di lavoro
Job Profile,Profilo di lavoro
Job Title,Professione
"Job profile, qualifications required etc.","Profilo professionale, le qualifiche richieste, ecc"
Jobs Email Settings,Impostazioni email Lavoro
Journal Entries,Prime note
Journal Entry,Journal Entry
Journal Entry for inventory that is received but not yet invoiced,"Diario per l&#39;inventario che viene ricevuto, ma non ancora fatturati"
Journal Voucher,Journal Voucher
Journal Voucher Detail,Journal Voucher Detail
Journal Voucher Detail No,Journal Voucher Detail No
KRA,KRA
"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Tenere traccia delle campagne di vendita. Tenere traccia di Leads, preventivi, vendite Ordine ecc dalle campagne per misurare il ritorno sull&#39;investimento."
Keep a track of all communications,Mantenere una traccia di tutte le comunicazioni
Keep a track of communication related to this enquiry which will help for future reference.,Tenere una traccia delle comunicazioni relative a questa indagine che contribuirà per riferimento futuro.
Key,Chiave
Key Performance Area,Area Key Performance
Key Responsibility Area,Area Responsabilità Chiave
LEAD,PIOMBO
LEAD/10-11/,LEAD/10-11 /
LEAD/MUMBAI/,LEAD / Mumbai /
LR Date,LR Data
LR No,LR No
Label,Etichetta
Label Help,Etichetta Help
Lacs,Lacs
Landed Cost Item,Landed Cost articolo
Landed Cost Items,Landed voci di costo
Landed Cost Purchase Receipt,Landed Cost ricevuta di acquisto
Landed Cost Purchase Receipts,Sbarcati costo di acquisto Receipts
Landed Cost Wizard,Wizard Landed Cost
Landing Page,Pagina di destinazione
Language,Lingua
Language preference for user interface (only if available).,Lingua preferita per l'interfaccia (se disponibile)
Last Contact Date,Ultimo contatto Data
Last IP,Ultimo IP
Last Login,Ultimo Login
Last Name,Cognome
Last Purchase Rate,Ultimo Purchase Rate
Lato,Lato
Lead,Portare
Lead Details,Piombo dettagli
Lead Lost,Piombo Perso
Lead Name,Piombo Nome
Lead Owner,Piombo Proprietario
Lead Source,Piombo Fonte
Lead Status,Senza piombo
Lead Time Date,Piombo Ora Data
Lead Time Days,Portare il tempo Giorni
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.,Piombo giorni Tempo è il numero di giorni per cui questa voce è previsto nel vostro magazzino. Questi giorni vengono recuperati in Materiale Richiesta quando si seleziona questa voce.
Lead Type,Piombo Tipo
Leave Allocation,Lascia Allocazione
Leave Allocation Tool,Lascia strumento Allocazione
Leave Application,Lascia Application
Leave Approver,Lascia Approvatore
Leave Approver can be one of,Lascia approvatore può essere una delle
Leave Approvers,Lascia Approvatori
Leave Balance Before Application,Lascia equilibrio prima applicazione
Leave Block List,Lascia Block List
Leave Block List Allow,Lascia Block List Consentire
Leave Block List Allowed,Lascia Block List ammessi
Leave Block List Date,Lascia Block List Data
Leave Block List Dates,Lascia Blocco Elenco date
Leave Block List Name,Lascia Block List Nome
Leave Blocked,Lascia Bloccato
Leave Control Panel,Lascia il Pannello di controllo
Leave Encashed?,Lascia incassati?
Leave Encashment Amount,Lascia Incasso Importo
Leave Setup,Lascia Setup
Leave Type,Lascia Tipo
Leave Type Name,Lascia Tipo Nome
Leave Without Pay,Lascia senza stipendio
Leave allocations.,Lascia allocazioni.
Leave blank if considered for all branches,Lasciare vuoto se considerato per tutti i rami
Leave blank if considered for all departments,Lasciare vuoto se considerato per tutti i reparti
Leave blank if considered for all designations,Lasciare vuoto se considerato per tutte le designazioni
Leave blank if considered for all employee types,Lasciare vuoto se considerato per tutti i tipi dipendenti
Leave blank if considered for all grades,Lasciare vuoto se considerato per tutti i gradi
Leave blank if you have not decided the end date.,Lasciare vuoto se non avete deciso la data di fine.
Leave by,Lasciare da parte
"Leave can be approved by users with Role, ""Leave Approver""","Lascia può essere approvato dagli utenti con il ruolo, &quot;Leave Approvatore&quot;"
Ledger,Ledger
Left,Sinistra
Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.,Legal Entity / Controllata con una tabella separata dei conti appartenenti all&#39;Organizzazione.
Letter Head,Carta intestata
Letter Head Image,Lettera Responsabile Immagine
Letter Head Name,Lettera Responsabile Nome
Level,Livello
"Level 0 is for document level permissions, higher levels for field level permissions.","Il livello 0 è per le autorizzazioni a livello di documento, i livelli più elevati per le autorizzazioni a livello di campo."
Lft,Lft
Link,Collegamento
Link to other pages in the side bar and next section,Link verso altre pagine nella barra laterale e sezione successiva
Linked In Share,Linked In Condividi
Linked With,Collegato con
List,Lista
List items that form the package.,Voci di elenco che formano il pacchetto.
List of holidays.,Elenco dei giorni festivi.
List of patches executed,Elenco delle patch eseguite
List of records in which this document is linked,Elenco dei record in cui questo documento è collegato
List of users who can edit a particular Note,Lista di utenti che possono modificare un particolare Nota
List this Item in multiple groups on the website.,Elenco questo articolo a più gruppi sul sito.
Live Chat,Live Chat
Load Print View on opening of an existing form,Caricare Stampa Vedi sulla apertura di un modulo esistente
Loading,Caricamento
Loading Report,Caricamento report
Log,Entra
"Log of Activities performed by users against Tasks that can be used for tracking time, billing.","Log delle attività svolte dagli utenti contro le attività che possono essere utilizzati per tenere traccia del tempo, la fatturazione."
Log of Scheduler Errors,Log di errori di pianificazione
Login After,Accedi Dopo
Login Before,Accedi Prima
Login Id,ID di accesso
Logo,Logo
Logout,Esci
Long Text,Testo lungo
Lost Reason,Perso Motivo
Low,Basso
Lower Income,Reddito più basso
Lucida Grande,Lucida Grande
MIS Control,MIS controllo
MREQ-,MREQ-
MTN Details,MTN Dettagli
Mail Footer,Posta Footer
Mail Password,Mail Password
Mail Port,Mail Port
Mail Server,Mail Server
Main Reports,Rapporti principali
Main Section,Sezione principale
Maintain Same Rate Throughout Sales Cycle,Mantenere la stessa velocità per tutto il ciclo di vendita
Maintain same rate throughout purchase cycle,Mantenere la stessa velocità per tutto il ciclo di acquisto
Maintenance,Manutenzione
Maintenance Date,Manutenzione Data
Maintenance Details,Dettagli di manutenzione
Maintenance Schedule,Programma di manutenzione
Maintenance Schedule Detail,Programma di manutenzione Dettaglio
Maintenance Schedule Item,Programma di manutenzione Voce
Maintenance Schedules,Programmi di manutenzione
Maintenance Status,Stato di manutenzione
Maintenance Time,Tempo di Manutenzione
Maintenance Type,Tipo di manutenzione
Maintenance Visit,Visita di manutenzione
Maintenance Visit Purpose,Visita di manutenzione Scopo
Major/Optional Subjects,Principali / Opzionale Soggetti
Make Bank Voucher,Fai Voucher Banca
Make Difference Entry,Fai la Differenza Entry
Make Time Log Batch,Fai Tempo Log Batch
Make a new,Effettuare una nuova
Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Assicurarsi che le operazioni che si desidera limitare hanno &#39;territorio&#39; un campo link che mappa un maestro &#39;territorio&#39;.
Male,Maschio
Manage cost of operations,Gestione dei costi delle operazioni di
Manage exchange rates for currency conversion,Gestione tassi di cambio per la conversione di valuta
Mandatory,Obbligatorio
"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.",Obbligatorio se Disponibile Articolo è &quot;Sì&quot;. Anche il magazzino di default in cui quantitativo riservato è impostato da ordine di vendita.
Manufacture against Sales Order,Produzione contro Ordine di vendita
Manufacture/Repack,Fabbricazione / Repack
Manufactured Qty,Quantità Prodotto
Manufactured quantity will be updated in this warehouse,Quantità prodotta sarà aggiornato in questo magazzino
Manufacturer,Fabbricante
Manufacturer Part Number,Codice produttore
Manufacturing,Produzione
Manufacturing Quantity,Produzione Quantità
Margin,Margine
Marital Status,Stato civile
Market Segment,Segmento di Mercato
Married,Sposato
Mass Mailing,Mailing di massa
Master,Maestro
Master Name,Maestro Nome
Master Type,Master
Masters,Masters
Match,Fiammifero
Match non-linked Invoices and Payments.,Partita Fatture non collegati e pagamenti.
Material Issue,Material Issue
Material Receipt,Materiale Ricevuta
Material Request,Materiale Richiesta
Material Request Date,Materiale Data di Richiesta
Material Request Detail No,Materiale richiesta dettaglio No
Material Request For Warehouse,Richiesta di materiale per il magazzino
Material Request Item,Materiale Richiesta articolo
Material Request Items,Materiale Richiesta Articoli
Material Request No,Materiale Richiesta No
Material Request Type,Materiale Tipo di richiesta
Material Request used to make this Stock Entry,Richiesta di materiale usato per fare questo Stock Entry
Material Requests for which Supplier Quotations are not created,Richieste di materiale con le quotazioni dei fornitori non sono creati
Material Requirement,Material Requirement
Material Transfer,Material Transfer
Materials,Materiali
Materials Required (Exploded),Materiali necessari (esploso)
Max 500 rows only.,Solo Max 500 righe.
Max Attachments,Numero massimo allegati
Max Days Leave Allowed,Max giorni di ferie domestici
Max Discount (%),Sconto Max (%)
"Meaning of Submit, Cancel, Amend","Significato dei Submit, cancellare, rettificare"
Medium,Media
"Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href=""#Form/Style Settings"">Style Settings</a>","Le voci di menu nella barra superiore. Per impostare il colore della barra superiore, vai a <a href=""#Form/Style Settings"">Impostazioni di stile</a>"
Merge,Unisci
Merge Into,Unire in
Merge Warehouses,Unisci Magazzini
Merging is only possible between Group-to-Group or 					Ledger-to-Ledger,La fusione è possibile solo tra il gruppo-a-gruppo o Ledger-to-Ledger
"Merging is only possible if following \					properties are same in both records.					Group or Ledger, Debit or Credit, Is PL Account","La fusione è possibile solo se seguendo \ proprietà sono uguali in entrambi i record. Gruppo o Ledger, di debito o di credito, è l&#39;account PL"
Message,Messaggio
Message Parameter,Messaggio Parametro
Message greater than 160 character will be splitted into multiple mesage,Messaggio maggiore di 160 caratteri verrà divisa in mesage multipla
Messages,Messaggi
Method,Metodo
Middle Income,Reddito Medio
Middle Name (Optional),Nome (facoltativo)
Milestone,Milestone
Milestone Date,Milestone Data
Milestones,Milestones
Milestones will be added as Events in the Calendar,Pietre miliari saranno aggiunti come eventi nel calendario
Millions,Milioni
Min Order Qty,Qtà ordine minimo
Minimum Order Qty,Qtà ordine minimo
Misc,Varie
Misc Details,Varie Dettagli
Miscellaneous,Varie
Miscelleneous,Miscelleneous
Mobile No,Cellulare No
Mobile No.,Cellulare No.
Mode of Payment,Modalità di Pagamento
Modern,Moderna
Modified Amount,Importo modificato
Modified by,Modificato da
Module,Modulo
Module Def,Modulo Def
Module Name,Nome modulo
Modules,Moduli
Monday,Lunedi
Month,Mese
Monthly,Mensile
Monthly Attendance Sheet,Foglio presenze mensile
Monthly Earning & Deduction,Guadagno mensile &amp; Deduzione
Monthly Salary Register,Stipendio mensile Registrati
Monthly salary statement.,Certificato di salario mensile.
Monthly salary template.,Modello di stipendio mensile.
More,Più
More Details,Maggiori dettagli
More Info,Ulteriori informazioni
More content for the bottom of the page.,Più contenuti per la parte inferiore della pagina.
Moving Average,Media mobile
Moving Average Rate,Media mobile Vota
Mr,Sig.
Ms,Ms
Multiple Item Prices,Molteplici Voce Prezzi
Multiple root nodes not allowed.,Nodi principali multipli non ammessi.
Mupltiple Item prices.,Mupltiple prezzi degli articoli.
Must be Whole Number,Devono essere intere Numero
Must have report permission to access this report.,Deve avere relazione di permesso di accedere a questo rapporto.
Must specify a Query to run,Necessario specificare una query per eseguire
My Settings,Le mie impostazioni
NL-,NL-
Name,Nome
Name Case,Nome Caso
Name and Description,Nome e descrizione
Name and Employee ID,Nome e ID dipendente
Name as entered in Sales Partner master,Nome come iscritto nel Vendite Partner maestro
Name is required,Il nome è obbligatorio
Name of organization from where lead has come,Nome dell&#39;organizzazione da cui cavo è arrivato
Name of person or organization that this address belongs to.,Nome della persona o organizzazione che questo indirizzo appartiene.
Name of the Budget Distribution,Nome della distribuzione del bilancio
Name of the entity who has requested for the Material Request,Nome del soggetto che ha chiesto per il materiale Request
Naming,Naming
Naming Series,Naming Series
Naming Series mandatory,Naming Serie obbligatorio
Negative balance is not allowed for account ,Saldo negativo non è consentito per conto
Net Pay,Retribuzione netta
Net Pay (in words) will be visible once you save the Salary Slip.,Pay netto (in lettere) sarà visibile una volta che si salva il foglio paga.
Net Total,Total Net
Net Total (Company Currency),Totale netto (Azienda valuta)
Net Weight,Peso netto
Net Weight UOM,UOM Peso netto
Net Weight of each Item,Peso netto di ogni articolo
Net pay can not be negative,Retribuzione netta non può essere negativo
Never,Mai
New,Nuovo
New BOM,Nuovo BOM
New Communications,New Communications
New Delivery Notes,Nuovi Consegna Note
New Enquiries,Nuove Richieste
New Leads,New Leads
New Leave Application,Nuovo Lascia Application
New Leaves Allocated,Nuove foglie allocato
New Leaves Allocated (In Days),Nuove foglie attribuiti (in giorni)
New Material Requests,Nuovo materiale Richieste
New Password,Nuova password
New Projects,Nuovi Progetti
New Purchase Orders,Nuovi Ordini di acquisto
New Purchase Receipts,Nuovo acquisto Ricevute
New Quotations,Nuove citazioni
New Record,Nuovo Record
New Sales Orders,Nuovi Ordini di vendita
New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,Nuova serie No non può avere Warehouse. Warehouse deve essere impostato da dell&#39;entrata Stock o ricevuta di acquisto
New Stock Entries,Nuove entrate nelle scorte
New Stock UOM,Nuovo UOM Archivio
New Supplier Quotations,Nuove citazioni Fornitore
New Support Tickets,Nuovi biglietti di supporto
New Workplace,Nuovo posto di lavoro
New value to be set,Nuovo valore da impostare
Newsletter,Newsletter
Newsletter Content,Newsletter Contenuto
Newsletter Status,Newsletter di stato
"Newsletters to contacts, leads.","Newsletter ai contatti, lead."
Next Communcation On,Avanti Comunicazione sui
Next Contact By,Avanti Contatto Con
Next Contact Date,Avanti Contact Data
Next Date,Avanti Data
Next State,Stato Successivo
Next actions,Prossime azioni
Next email will be sent on:,Email prossimo verrà inviato:
No,No
"No Account found in csv file, 							May be company abbreviation is not correct","Nessun account trovato nel csv, Può essere abbreviazione azienda non è corretto"
No Action,Nessuna azione
No Communication tagged with this ,Nessuna comunicazione con i tag presente
No Copy,No Copy
No Customer Accounts found. Customer Accounts are identified based on \			'Master Type' value in account record.,Nessun cliente ha trovato. Contabilità clienti vengono identificati in base al valore &#39;Master&#39; \ in considerazione record.
No Item found with Barcode,Nessun articolo trovato con i codici a barre
No Items to Pack,Articoli da imballare
No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user.,No Lasciare approvazioni. Assegnare &#39;Lascia Approvatore&#39; Role a atleast un utente.
No Permission,Nessuna autorizzazione
No Permission to ,Nessun permesso di
No Permissions set for this criteria.,Nessun permessi impostati per questo criterio.
No Report Loaded. Please use query-report/[Report Name] to run a report.,No Segnala Loaded. Si prega di utilizzare query report / [Nome report] per eseguire un report.
No Supplier Accounts found. Supplier Accounts are identified based on \			'Master Type' value in account record.,Nessun account Fornitore trovato. Contabilità fornitori sono identificati sulla base del valore &#39;Master&#39; \ in considerazione record.
No User Properties found.,Nessun proprietà utente trovato.
No default BOM exists for item: ,No BOM esiste per impostazione predefinita articolo:
No further records,Nessun ulteriore record
No of Requested SMS,No di SMS richiesto
No of Sent SMS,No di SMS inviati
No of Visits,No di visite
No one,Nessuno
No permission to edit,Non hai il permesso di modificare
No permission to write / remove.,Non hai il permesso di scrivere / eliminare.
No record found,Nessun record trovato
No records tagged.,Nessun record marcati.
No salary slip found for month: ,Nessun foglio paga trovato per mese:
"No table is created for Single DocTypes, all values are stored in tabSingles as a tuple.","Nessuna tabella viene creata per DOCTYPE singoli, tutti i valori sono memorizzati in tabSingles come una tupla."
None,Nessuno
None: End of Workflow,Nessuno: Fine del flusso di lavoro
Not,Non
Not Active,Non attivo
Not Applicable,Non Applicabile
Not Available,Non disponibile
Not Billed,Non fatturata
Not Delivered,Non consegnati
Not Found,Not Found
Not Linked to any record.,Non legati a nessun record.
Not Permitted,Non Consentito
Not allowed for: ,Non è consentito per:
Not enough permission to see links.,Non basta il permesso di vedere i link.
Not interested,Non interessato
Not linked,Non linkato
Note,Nota
Note User,Nota User
Note is a free page where users can share documents / notes,Nota è una pagina libera in cui gli utenti possono condividere documenti / note
"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Nota: I backup ei file non vengono eliminati da Dropbox, sarà necessario eliminarli manualmente."
"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.","Nota: I backup ei file non vengono eliminati da Google Drive, sarà necessario eliminarli manualmente."
Note: Email will not be sent to disabled users,Nota: E-mail non sarà inviato agli utenti disabili
"Note: For best results, images must be of the same size and width must be greater than height.","Nota: Per ottenere risultati ottimali, le immagini devono essere della stessa dimensione e la larghezza non deve essere superiore all&#39;altezza."
Note: Other permission rules may also apply,Nota: si possono verificare anche altre regole di autorizzazione
Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts,Nota: È possibile gestire più indirizzi o Contatti via Indirizzi &amp; Contatti
Note: maximum attachment size = 1mb,Nota: la dimensione massima allegato = 1MB
Notes,Note
Nothing to show,Niente da mostrare
Notice - Number of Days,Avviso - Numero di giorni
Notification Control,Controllo di notifica
Notification Email Address,Indirizzo e-mail di notifica
Notify By Email,Notifica via e-mail
Notify by Email on creation of automatic Material Request,Notifica tramite e-mail sulla creazione di Richiesta automatica Materiale
Number Format,Formato numero
O+,O +
O-,O-
OPPT,OPPT
Office,Ufficio
Old Parent,Vecchio genitore
On,On
On Net Total,Sul totale netto
On Previous Row Amount,Sul Fila Indietro Importo
On Previous Row Total,Sul Fila Indietro totale
"Once you have set this, the users will only be able access documents with that property.","Una volta impostato questo, gli utenti saranno in grado di accedere solo i documenti con tale proprietà."
Only Administrator allowed to create Query / Script Reports,Solo amministratore ha permesso di creare delle query / Script Reports
Only Administrator can save a standard report. Please rename and save.,Solo amministratore può salvare un report standard. Si prega di rinominare e salvare.
Only Allow Edit For,Consenti solo Edit Per
"Only Serial Nos with status ""Available"" can be delivered.",Possono essere consegnati solo i numeri seriali con stato &quot;Disponibile&quot;.
Only Stock Items are allowed for Stock Entry,Solo Archivio articoli sono ammessi per la Stock Entry
Only System Manager can create / edit reports,Solo il Gestore di sistema in grado di creare / modificare i rapporti
Only leaf nodes are allowed in transaction,Solo i nodi foglia sono ammessi nelle transazioni
Open,Aprire
Open Production Orders,Aprire ordini di produzione
Open Sans,Aperte Sans
Open Tickets,Biglietti Open
Opening Date,Data di apertura
Opening Entry,Apertura Entry
Opening Time,Tempo di apertura
Opening for a Job.,Apertura di un lavoro.
Operating Cost,Costo di gestione
Operation Description,Operazione Descrizione
Operation No,Operazione No
Operation Time (mins),Tempo di funzionamento (min)
Operations,Operazioni
Opportunity,Opportunità
Opportunity Date,Opportunity Data
Opportunity From,Opportunità da
Opportunity Item,Opportunità articolo
Opportunity Items,Articoli Opportunità
Opportunity Lost,Occasione persa
Opportunity Type,Tipo di Opportunità
Options,Opzioni
Options Help,Opzioni Aiuto
Order Confirmed,Ordine confermato
Order Lost,Ordine perduto
Order Type,Tipo di ordine
Ordered Items To Be Billed,Articoli ordinati da fatturare
Ordered Items To Be Delivered,Articoli ordinati da consegnare
Ordered Quantity,Ordinato Quantità
Orders released for production.,Gli ordini rilasciati per la produzione.
Organization Profile,Profilo dell&#39;organizzazione
Original Message,Original Message
Other,Altro
Other Details,Altri dettagli
Out,Fuori
Out of AMC,Fuori di AMC
Out of Warranty,Fuori garanzia
Outgoing,In partenza
Outgoing Mail Server,Server posta in uscita
Outgoing Mails,Mail in uscita
Outstanding Amount,Eccezionale Importo
Outstanding for Voucher ,Eccezionale per i Voucher
Over Heads,Sopra le teste
Overhead,Overhead
Overlapping Conditions found between,Condizioni sovrapposte trovati tra
Owned,Di proprietà
PAN Number,Numero PAN
PF No.,PF No.
PF Number,Numero PF
PI/2011/,PI/2011 /
PIN,PIN
PO,PO
POP3 Mail Server,POP3 Mail Server
POP3 Mail Server (e.g. pop.gmail.com),POP3 Mail Server (ad esempio pop.gmail.com)
POP3 Mail Settings,Impostazioni di posta POP3
POP3 mail server (e.g. pop.gmail.com),POP3 server di posta (ad esempio pop.gmail.com)
POP3 server e.g. (pop.gmail.com),Server POP3 per esempio (pop.gmail.com)
POS Setting,POS Impostazione
POS View,POS View
PR Detail,PR Dettaglio
PRO,PRO
PS,PS
Package Item Details,Confezione Articolo Dettagli
Package Items,Articoli della confezione
Package Weight Details,Pacchetto peso
Packing Details,Particolari dell&#39;imballaggio
Packing Detials,Detials imballaggio
Packing List,Lista di imballaggio
Packing Slip,Documento di trasporto
Packing Slip Item,Distinta di imballaggio articolo
Packing Slip Items,Imballaggio elementi slittamento
Packing Slip(s) Cancelled,Bolla di accompagnamento (s) Annullato
Page,Pagina
Page Background,Sfondo pagina
Page Border,Bordo pagina
Page Break,Interruzione di pagina
Page HTML,Pagina HTML
Page Headings,Pagina Rubriche
Page Links,Pagina Links
Page Name,Nome pagina
Page Role,Pagina Ruolo
Page Text,Pagina di testo
Page content,Contenuto della pagina
Page not found,Pagina non trovata
Page text and background is same color. Please change.,Testo di pagina e lo sfondo è dello stesso colore. Per favore cambia.
Page to show on the website,Pagina di mostrare sul sito
"Page url name (auto-generated) (add "".html"")",Pagina nome url (generata automaticamente) (aggiungere &quot;. Html&quot;)
Paid Amount,Importo pagato
Parameter,Parametro
Parent Account,Account principale
Parent Cost Center,Parent Centro di costo
Parent Customer Group,Parent Gruppo clienti
Parent Detail docname,Parent Dettaglio docname
Parent Item,Parent Item
Parent Item Group,Capogruppo Voce
Parent Label,Parent Label
Parent Sales Person,Parent Sales Person
Parent Territory,Territorio genitore
Parent is required.,È richiesta Parent.
Parenttype,ParentType
Partially Completed,Parzialmente completato
Participants,Partecipanti
Partly Billed,Parzialmente Fatturato
Partly Delivered,Parzialmente Consegnato
Partner Target Detail,Partner di destinazione Dettaglio
Partner Type,Tipo di partner
Partner's Website,Sito del Partner
Passive,Passive
Passport Number,Numero di passaporto
Password,Parola d&#39;ordine
Password Expires in (days),La password scade in (giorni)
Patch,Patch
Patch Log,Patch Log
Pay To / Recd From,Pay To / RECD Da
Payables,Debiti
Payables Group,Debiti Gruppo
Payment Collection With Ageing,Collezione di pagamento Con Invecchiamento
Payment Days,Giorni di Pagamento
Payment Entries,Voci di pagamento
Payment Entry has been modified after you pulled it. 			Please pull it again.,Entrata pagamento è stato modificato dopo l&#39;tirato. Si prega di tirare di nuovo.
Payment Made With Ageing,Pagamento effettuato con Invecchiamento
Payment Reconciliation,Riconciliazione Pagamento
Payment Terms,Condizioni di pagamento
Payment to Invoice Matching Tool,Pagamento a fattura Matching Tool
Payment to Invoice Matching Tool Detail,Pagamento a fattura Corrispondenza Dettaglio Strumento
Payments,Pagamenti
Payments Made,Pagamenti effettuati
Payments Received,Pagamenti ricevuti
Payments made during the digest period,I pagamenti effettuati nel periodo digest
Payments received during the digest period,I pagamenti ricevuti durante il periodo di digest
Payroll Setup,Setup Payroll
Pending,In attesa
Pending Review,In attesa recensione
Pending SO Items For Purchase Request,Elementi in sospeso così per Richiesta di Acquisto
Percent,Percentuale
Percent Complete,Percentuale completamento
Percentage Allocation,Percentuale di allocazione
Percentage Allocation should be equal to ,Percentuale assegnazione dovrebbe essere uguale a
Percentage variation in quantity to be allowed while receiving or delivering this item.,Variazione percentuale della quantità di essere consentito durante la ricezione o la consegna di questo oggetto.
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.,Percentuale si è permesso di ricevere o consegnare di più contro la quantità ordinata. Per esempio: Se avete ordinato 100 unità. e il vostro assegno è 10% poi si è permesso di ricevere 110 unità.
Performance appraisal.,Valutazione delle prestazioni.
Period Closing Voucher,Periodo di chiusura Voucher
Periodicity,Periodicità
Perm Level,Perm Livello
Permanent Accommodation Type,Permanente Tipo Alloggio
Permanent Address,Indirizzo permanente
Permission,Autorizzazione
Permission Level,Livello di autorizzazione
Permission Levels,Livelli di autorizzazione
Permission Manager,Permission Manager
Permission Rules,Regole di autorizzazione
Permissions,Permessi di Scrittura
Permissions Settings,Impostazioni delle autorizzazioni
Permissions are automatically translated to Standard Reports and Searches,Le autorizzazioni vengono tradotti automaticamente al report standard e Ricerche
"Permissions are set on Roles and Document Types (called DocTypes) by restricting read, edit, make new, submit, cancel, amend and report rights.","I permessi sono impostati su Ruoli e tipi di documenti (chiamato DOCTYPE) limitando leggere, modificare, creare nuovo, sostengono, cancellare, modificare e segnalare i diritti."
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.,Autorizzazioni a livelli più alti sono permessi &#39;livello di campo&#39;. Tutti i campi hanno stabilito un &#39;livello di autorizzazione&#39; contro di loro e le regole definite a che le autorizzazioni si applicano al campo. Ciò è utile in caso si desidera nascondere o rendere certo campo di sola lettura.
"Permissions at level 0 are 'Document Level' permissions, i.e. they are primary for access to the document.","Permessi di livello 0 sono permessi &#39;a livello di documento&#39;, cioè sono primario per l&#39;accesso al documento."
Permissions translate to Users based on what Role they are assigned,Permessi traducono per gli utenti in base a ciò di ruolo sono assegnati
Person,Persona
Person To Be Contacted,Persona da contattare
Personal,Personale
Personal Details,Dettagli personali
Personal Email,Personal Email
Phone,Telefono
Phone No,N. di telefono
Phone No.,No. Telefono
Pick Columns,Scegli Colonne
Pincode,PINCODE
Place of Issue,Luogo di emissione
Plan for maintenance visits.,Piano per le visite di manutenzione.
Planned Qty,Qtà Planned
Planned Quantity,Prevista Quantità
Plant,Impianto
Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,Inserisci Abbreviazione o Nome breve correttamente in quanto verrà aggiunto come suffisso a tutti i Capi account.
Please Update Stock UOM with the help of Stock UOM Replace Utility.,Si prega di aggiornare Archivio UOM con l&#39;aiuto di Archivio UOM Replace Utility.
Please attach a file first.,Si prega di allegare un file.
Please attach a file or set a URL,Si prega di allegare un file o impostare un URL
Please check,Si prega di verificare
Please enter Default Unit of Measure,Inserisci unità di misura predefinita
Please enter Delivery Note No or Sales Invoice No to proceed,Inserisci il DDT o fattura di vendita No No per procedere
Please enter Employee Number,Inserisci il numero dei dipendenti
Please enter Expense Account,Inserisci il Conto uscite
Please enter Expense/Adjustment Account,Inserisci Expense / regolazione account
Please enter Purchase Receipt No to proceed,Inserisci Acquisto Ricevuta No per procedere
Please enter Reserved Warehouse for item ,Inserisci Magazzino riservata per la voce
Please enter valid,Inserisci valido
Please enter valid ,Inserisci valido
Please install dropbox python module,Si prega di installare dropbox modulo python
Please make sure that there are no empty columns in the file.,Assicurarsi che non ci sono le colonne vuote nel file prega.
Please mention default value for ',Si prega di citare il valore di default per &#39;
Please reduce qty.,Ridurre qty.
Please refresh to get the latest document.,Si prega di aggiornamento per ottenere l&#39;ultimo documento.
Please save the Newsletter before sending.,Si prega di salvare la newsletter prima dell&#39;invio.
Please select Bank Account,Seleziona conto bancario
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Si prega di selezionare il riporto se anche voi volete includere equilibrio precedente anno fiscale di parte per questo anno fiscale
Please select Date on which you want to run the report,Seleziona la data in cui si desidera eseguire il report
Please select Naming Neries,Seleziona Neries di denominazione
Please select Price List,Seleziona Listino Prezzi
Please select Time Logs.,Si prega di selezionare Time Diari.
Please select a,Si prega di selezionare una
Please select a csv file,Seleziona un file csv
Please select a file or url,Si prega di selezionare un file o URL
Please select a service item or change the order type to Sales.,Si prega di selezionare una voce di servizio o modificare il tipo di ordine di vendite.
Please select a sub-contracted item or do not sub-contract the transaction.,Si prega di selezionare una voce di subappalto o non fare subappaltare la transazione.
Please select a valid csv file with data.,Si prega di selezionare un file csv con i dati validi.
Please select month and year,Si prega di selezionare mese e anno
Please select the document type first,Si prega di selezionare il tipo di documento prima
Please select: ,Si prega di selezionare:
Please set Dropbox access keys in,Si prega di impostare le chiavi di accesso a Dropbox
Please set Google Drive access keys in,Si prega di impostare Google chiavi di accesso di unità in
Please setup Employee Naming System in Human Resource > HR Settings,Si prega di impostazione dei dipendenti sistema di nomi delle risorse umane&gt; Impostazioni HR
Please specify,Si prega di specificare
Please specify Company,Si prega di specificare Azienda
Please specify Company to proceed,Si prega di specificare Società di procedere
Please specify Default Currency in Company Master \			and Global Defaults,Si prega di specificare Valuta predefinita nel Master Company \ e dei valori predefiniti globali
Please specify a,Si prega di specificare una
Please specify a Price List which is valid for Territory,Si prega di specificare una lista di prezzi è valido per il Territorio
Please specify a valid,Si prega di specificare una valida
Please specify a valid 'From Case No.',Si prega di specificare una valida &#39;Dalla sentenza n&#39;
Please specify currency in Company,Si prega di specificare la valuta in Azienda
Point of Sale,Punto di vendita
Point-of-Sale Setting,Point-of-Sale Setting
Post Graduate,Post Laurea
Post Topic,Posta Topic
Postal,Postale
Posting Date,Data di registrazione
Posting Date Time cannot be before,Data di registrazione Il tempo non può essere prima
Posting Time,Tempo Distacco
Posts,Messaggi
Potential Sales Deal,Potenziale accordo di vendita
Potential opportunities for selling.,Potenziali opportunità di vendita.
"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Di precisione per i campi Float (quantità, sconti, percentuali ecc). Galleggianti vengono arrotondate per eccesso al decimali specificati. Default = 3"
Preferred Billing Address,Preferito Indirizzo di fatturazione
Preferred Shipping Address,Preferito Indirizzo spedizione
Prefix,Prefisso
Present,Presente
Prevdoc DocType,Prevdoc DocType
Prevdoc Doctype,Prevdoc Doctype
Preview,Anteprima
Previous Work Experience,Lavoro precedente esperienza
Price,Prezzo
Price List,Listino Prezzi
Price List Currency,Prezzo di listino Valuta
Price List Currency Conversion Rate,Prezzo di listino Valuta Tasso di conversione
Price List Exchange Rate,Listino Prezzi Tasso di Cambio
Price List Master,Prezzo di listino principale
Price List Name,Prezzo di listino Nome
Price List Rate,Prezzo di listino Vota
Price List Rate (Company Currency),Prezzo di listino Prezzo (Azienda valuta)
Price List for Costing,Listino prezzi per il calcolo dei costi
Price Lists and Rates,Listini prezzi e tariffe
Primary,Primaria
Print Format,Formato Stampa
Print Format Style,Formato Stampa Style
Print Format Type,Stampa Tipo di formato
Print Heading,Stampa Rubrica
Print Hide,Stampa Hide
Print Width,Larghezza di stampa
Print Without Amount,Stampare senza Importo
Print...,Stampa ...
Priority,Priorità
Private,Privato
Proceed to Setup,Procedere con l&#39;impostazione
Process,Processo
Process Payroll,Processo Payroll
Produced Quantity,Prodotto Quantità
Product Enquiry,Prodotto Inchiesta
Production Order,Ordine di produzione
Production Orders,Ordini di produzione
Production Orders in Progress,Ordini di produzione in corso
Production Plan Item,Produzione Piano Voce
Production Plan Items,Produzione Piano Articoli
Production Plan Sales Order,Produzione Piano di ordini di vendita
Production Plan Sales Orders,Produzione piano di vendita Ordini
Production Planning (MRP),Pianificazione della produzione (MRP)
Production Planning Tool,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.","I prodotti saranno ordinati in peso-età nelle ricerche predefinite. Più il peso-età, più alto è il prodotto verrà visualizzato nell&#39;elenco."
Profile,Profilo
Profile Defaults,Defaults Profilo
Profile Represents a User in the system.,Profilo Rappresenta un utente nel sistema.
Profile of a Blogger,Profilo di un Blogger
Profile of a blog writer.,Profilo di uno scrittore blog.
Project,Progetto
Project Costing,Progetto Costing
Project Details,Dettagli del progetto
Project Milestone,Progetto Milestone
Project Milestones,Tappe del progetto
Project Name,Nome del progetto
Project Start Date,Data di inizio del progetto
Project Type,Tipo di progetto
Project Value,Valore di progetto
Project activity / task.,Attività / attività del progetto.
Project master.,Progetto Master.
Project will get saved and will be searchable with project name given,Progetto avranno salvato e sarà consultabile con il nome di progetto dato
Project wise Stock Tracking,Progetto saggio Archivio monitoraggio
Projected Qty,Qtà Proiettata
Projects,Progetti
Prompt for Email on Submission of,Richiedi Email su presentazione di
Properties,Proprietà
Property,Proprietà
Property Setter,Setter Proprietà
Property Setter overrides a standard DocType or Field property,Setter proprietà sostituisce un immobile docType campo standard
Property Type,Tipo di proprietà
Provide email id registered in company,Fornire id-mail registrato in azienda
Public,Pubblico
Published,Pubblicato
Published On,Edizione del
Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Tirare mail dalla posta in arrivo e collegarli come record di comunicazione (per contatti conosciuti).
Pull Payment Entries,Tirare le voci di pagamento
Pull sales orders (pending to deliver) based on the above criteria,Tirare ordini di vendita (in attesa di consegnare) sulla base dei criteri di cui sopra
Purchase,Acquisto
Purchase / Manufacture Details,Acquisto / Produzione Dettagli
Purchase Analytics,Acquisto Analytics
Purchase Common,Comuni di acquisto
Purchase Details,"Acquisto, i dati"
Purchase Discounts,Acquisto Sconti
Purchase In Transit,Acquisto In Transit
Purchase Invoice,Acquisto Fattura
Purchase Invoice Advance,Acquisto Advance Fattura
Purchase Invoice Advances,Acquisto anticipi fatture
Purchase Invoice Item,Acquisto Articolo Fattura
Purchase Invoice Trends,Acquisto Tendenze Fattura
Purchase Order,Ordine di acquisto
Purchase Order Date,Ordine di acquisto Data
Purchase Order Item,Ordine di acquisto dell&#39;oggetto
Purchase Order Item No,Acquisto fig
Purchase Order Item Supplied,Ordine di acquisto Articolo inserito
Purchase Order Items,Acquisto Ordine Articoli
Purchase Order Items Supplied,Ordine di Acquisto Standard di fornitura
Purchase Order Items To Be Billed,Ordine di Acquisto Articoli da fatturare
Purchase Order Items To Be Received,Ordine di Acquisto Oggetti da ricevere
Purchase Order Message,Ordine di acquisto Message
Purchase Order Required,Ordine di Acquisto Obbligatorio
Purchase Order Trends,Acquisto Tendenze Ordine
Purchase Order sent by customer,Ordine di acquisto inviato dal cliente
Purchase Orders given to Suppliers.,Ordini di acquisto prestate a fornitori.
Purchase Receipt,RICEVUTA
Purchase Receipt Item,RICEVUTA articolo
Purchase Receipt Item Supplied,Acquisto Ricevuta Articolo inserito
Purchase Receipt Item Supplieds,RICEVUTA Voce Supplieds
Purchase Receipt Items,Acquistare oggetti Receipt
Purchase Receipt Message,RICEVUTA Messaggio
Purchase Receipt No,RICEVUTA No
Purchase Receipt Required,Acquisto necessaria la ricevuta
Purchase Receipt Trends,Acquisto Tendenze Receipt
Purchase Register,Acquisto Registrati
Purchase Return,Acquisto Ritorno
Purchase Returned,Acquisto restituito
Purchase Taxes and Charges,Acquisto Tasse e Costi
Purchase Taxes and Charges Master,Acquisto Tasse e Spese master
Purpose,Scopo
Purpose must be one of ,Scopo deve essere uno dei
Python Module Name,Python Nome modulo
QA Inspection,Ispezione QA
QAI/11-12/,QAI/11-12 /
QTN,QTN
Qty,Qtà
Qty Consumed Per Unit,Quantità consumata per unità
Qty To Manufacture,Quantità di fabbricare
Qty as per Stock UOM,Quantità come da UOM Archivio
Qualification,Qualifica
Quality,Qualità
Quality Inspection,Controllo Qualità
Quality Inspection Parameters,Parametri di controllo qualità
Quality Inspection Reading,Lettura Controllo Qualità
Quality Inspection Readings,Letture di controllo di qualità
Quantity,Quantità
Quantity Requested for Purchase,Quantità a fini di acquisto
Quantity already manufactured,Quantità già prodotto
Quantity and Rate,Quantità e Prezzo
Quantity and Warehouse,Quantità e Magazzino
Quantity cannot be a fraction.,Quantità non può essere una frazione.
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Quantità di prodotto ottenuto dopo la produzione / reimballaggio da determinati quantitativi di materie prime
Quantity should be equal to Manufacturing Quantity. ,Quantità dovrebbe essere uguale a Manufacturing pezzi.
Quarter,Quartiere
Quarterly,Trimestrale
Query,Query
Query Options,Opzioni query
Query Report,Rapporto sulle query
Query must be a SELECT,Query deve essere una SELEZIONA
Quick Help for Setting Permissions,Guida rapida per Impostazione delle autorizzazioni
Quick Help for User Properties,Guida rapida per la proprietà utente
Quotation,Quotazione
Quotation Date,Preventivo Data
Quotation Item,Quotazione articolo
Quotation Items,Voci di quotazione
Quotation Lost Reason,Quotazione Perso Motivo
Quotation Message,Quotazione Messaggio
Quotation Sent,Quotazione Sent
Quotation Series,Serie Quotazione
Quotation To,Preventivo A
Quotation Trend,Quotazione Trend
Quotations received from Suppliers.,Citazioni ricevute dai fornitori.
Quotes to Leads or Customers.,Citazioni a clienti o contatti.
Raise Material Request when stock reaches re-order level,Sollevare Materiale Richiesta quando le azione raggiunge il livello di riordino
Raised By,Sollevata dal
Raised By (Email),Sollevata da (e-mail)
Random,Casuale
Range,Gamma
Rate,Vota
Rate ,Vota
Rate (Company Currency),Vota (Azienda valuta)
Rate Of Materials Based On,Tasso di materiali a base di
Rate and Amount,Aliquota e importo
Rate at which Customer Currency is converted to customer's base currency,Velocità con cui valuta Cliente viene convertito in valuta di base del cliente
Rate at which Price list currency is converted to company's base currency,Tasso al quale Listino valuta viene convertita in valuta di base dell&#39;azienda
Rate at which Price list currency is converted to customer's base currency,Tasso al quale Listino valuta viene convertita in valuta di base del cliente
Rate at which customer's currency is converted to company's base currency,Tasso al quale la valuta del cliente viene convertito in valuta di base dell&#39;azienda
Rate at which supplier's currency is converted to company's base currency,Tasso al quale la valuta del fornitore viene convertito in valuta di base dell&#39;azienda
Rate at which this tax is applied,Tasso a cui viene applicata questa tassa
Raw Material Item Code,Materia Codice Articolo
Raw Materials Supplied,Materie prime fornite
Raw Materials Supplied Cost,Materie prime fornite Costo
Re-Order Level,Re-Order Livello
Re-Order Qty,Re-Order Qty
Re-order,Re-order
Re-order Level,Livello di riordino
Re-order Qty,Re-order Qtà
Read,Leggi
Read Only,Solo lettura
Reading 1,Lettura 1
Reading 10,Reading 10
Reading 2,Lettura 2
Reading 3,Reading 3
Reading 4,Reading 4
Reading 5,Lettura 5
Reading 6,Lettura 6
Reading 7,Leggendo 7
Reading 8,Lettura 8
Reading 9,Lettura 9
Reason,Motivo
Reason for Leaving,Ragione per lasciare
Reason for Resignation,Motivo della Dimissioni
Recd Quantity,RECD Quantità
Receivable / Payable account will be identified based on the field Master Type,Conto da ricevere / pagare sarà identificato in base al campo Master
Receivables,Crediti
Receivables / Payables,Crediti / Debiti
Receivables Group,Gruppo Crediti
Received Date,Data Received
Received Items To Be Billed,Oggetti ricevuti da fatturare
Received Qty,Quantità ricevuta
Received and Accepted,Ricevuti e accettati
Receiver List,Lista Ricevitore
Receiver Parameter,Ricevitore Parametro
Recipient,Destinatario
Recipients,Destinatari
Reconciliation Data,Dati Riconciliazione
Reconciliation HTML,Riconciliazione HTML
Reconciliation JSON,Riconciliazione JSON
Record item movement.,Registrare il movimento dell&#39;oggetto.
Recurring Id,Id ricorrente
Recurring Invoice,Fattura ricorrente
Recurring Type,Tipo ricorrente
Reduce Deduction for Leave Without Pay (LWP),Ridurre Deduzione per aspettativa senza assegni (LWP)
Reduce Earning for Leave Without Pay (LWP),Ridurre Guadagnare in aspettativa senza assegni (LWP)
Ref Code,Rif. Codice
Ref Date is Mandatory if Ref Number is specified,Rif. Data è obbligatorio se viene specificato Numero Rif.
Ref DocType,Rif. DocType
Ref Name,Rif. Nome
Ref Rate,Rif. Vota
Ref SQ,Rif. SQ
Ref Type,Tipo Rif.
Reference,Riferimento
Reference Date,Data di riferimento
Reference DocName,Riferimento DocName
Reference DocType,Riferimento DocType
Reference Name,Nome di riferimento
Reference Number,Numero di riferimento
Reference Type,Tipo di riferimento
Refresh,Refresh
Registered but disabled.,Registrato ma disabilitato.
Registration Details,Dettagli di registrazione
Registration Details Emailed.,Dettagli di registrazione ricevuta via email.
Registration Info,Informazioni di Registrazione
Rejected,Rifiutato
Rejected Quantity,Rifiutato Quantità
Rejected Serial No,Rifiutato Serial No
Rejected Warehouse,Magazzino Rifiutato
Relation,Relazione
Relieving Date,Alleviare Data
Relieving Date of employee is ,Alleviare Data di dipendenti è
Remark,Osservazioni
Remarks,Osservazioni
Remove Bookmark,Rimuovere Bookmark
Rename Log,Rinominare Entra
Rename Tool,Rename Tool
Rename...,Rinomina ...
Rented,Affittato
Repeat On,Ripetere On
Repeat Till,Ripetere Fino
Repeat on Day of Month,Ripetere il Giorno del mese
Repeat this Event,Ripetere questo evento
Replace,Sostituire
Replace Item / BOM in all BOMs,Sostituire Voce / BOM in tutte le distinte base
"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","Sostituire un particolare distinta base in tutte le altre distinte base in cui viene utilizzato. Sostituirà il vecchio link BOM, aggiornare costo e rigenerare &quot;Explosion articolo BOM&quot; tavolo come da nuovo BOM"
Replied,Ha risposto
Report,Segnala
Report Builder,Report Builder
Report Builder reports are managed directly by the report builder. Nothing to do.,Report di Generatore report vengono gestite direttamente dal costruttore rapporto. Niente da fare.
Report Date,Data Segnala
Report Hide,Segnala Hide
Report Name,Nome rapporto
Report Type,Tipo di rapporto
Report was not saved (there were errors),Relazione non è stato salvato (ci sono stati errori)
Reports,Rapporti
Reports to,Relazioni al
Represents the states allowed in one document and role assigned to change the state.,Rappresenta gli stati ammessi in un unico documento e ruolo assegnato per cambiare lo stato.
Reqd,Reqd
Reqd By Date,Reqd Per Data
Request Type,Tipo di richiesta
Request for Information,Richiesta di Informazioni
Request for purchase.,Richiesta di acquisto.
Requested By,Richiesto da
Requested Items To Be Ordered,Elementi richiesti da ordinare
Requested Items To Be Transferred,Voci si chiede il trasferimento
Requests for items.,Le richieste di articoli.
Required By,Richiesto da
Required Date,Data richiesta
Required Qty,Quantità richiesta
Required only for sample item.,Richiesto solo per la voce di esempio.
Required raw materials issued to the supplier for producing a sub - contracted item.,Materie prime necessarie rilasciate al fornitore per la produzione di un sotto - voce contratta.
Reseller,Rivenditore
Reserved Quantity,Riservato Quantità
Reserved Warehouse,Riservato Warehouse
Reserved Warehouse in Sales Order / Finished Goods Warehouse,Warehouse Riservato a ordini di vendita / Magazzino prodotti finiti
Reserved Warehouse is missing in Sales Order,Riservato Warehouse manca in ordine di vendita
Resignation Letter Date,Lettera di dimissioni Data
Resolution,Risoluzione
Resolution Date,Risoluzione Data
Resolution Details,Dettagli risoluzione
Resolved By,Deliberato dall&#39;Assemblea
Restrict IP,Limitare 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),"Limitare l&#39;utente da solo questo indirizzo IP. Più indirizzi IP possono essere aggiunti separando con virgole. Accetta anche gli indirizzi IP parziali, come (111.111.111)"
Restricting By User,Limitare per utente
Retail,Vendita al dettaglio
Retailer,Dettagliante
Review Date,Data di revisione
Rgt,Rgt
Right,Giusto
Role,Ruolo
Role Allowed to edit frozen stock,Ruolo ammessi da modificare stock congelato
Role Name,Nome Ruolo
Role that is allowed to submit transactions that exceed credit limits set.,Ruolo che è consentito di presentare le transazioni che superano i limiti di credito stabiliti.
Roles,Ruoli
Roles Assigned,Ruoli assegnati
Roles Assigned To User,Ruoli assegnati a utenti
Roles HTML,Ruoli HTML
Root ,Root
Root cannot have a parent cost center,Root non può avere un centro di costo genitore
Rounded Total,Totale arrotondato
Rounded Total (Company Currency),Totale arrotondato (Azienda valuta)
Row,Riga
Row ,Riga
Row #,Row #
Row # ,Row #
Rules defining transition of state in the workflow.,Regole che definiscono transizione di stato nel flusso di lavoro.
"Rules for how states are transitions, like next state and which role is allowed to change state etc.","Regole per come gli stati sono transizioni, come prossimo stato e quale ruolo può cambiare stato ecc"
Rules to calculate shipping amount for a sale,Regole per il calcolo dell&#39;importo di trasporto per una vendita
SMS,SMS
SMS Center,Centro SMS
SMS Control,SMS Control
SMS Gateway URL,SMS Gateway URL
SMS Log,SMS Log
SMS Parameter,SMS Parametro
SMS Parameters,SMS Parametri
SMS Sender Name,SMS Sender Nome
SMS Settings,Impostazioni SMS
SMTP Server (e.g. smtp.gmail.com),SMTP Server (ad es smtp.gmail.com)
SO,SO
SO Date,SO Data
SO Pending Qty,SO attesa Qtà
SO/10-11/,SO/10-11 /
SO1112,SO1112
SQTN,SQTN
STE,STE
SUP,SUP
SUPP,SUPP
SUPP/10-11/,SUPP/10-11 /
Salary,Stipendio
Salary Information,Informazioni stipendio
Salary Manager,Stipendio Direttore
Salary Mode,Modalità di stipendio
Salary Slip,Stipendio slittamento
Salary Slip Deduction,Stipendio slittamento Deduzione
Salary Slip Earning,Stipendio slittamento Guadagnare
Salary Structure,Struttura salariale
Salary Structure Deduction,Struttura salariale Deduzione
Salary Structure Earning,Struttura salariale Guadagnare
Salary Structure Earnings,Utile struttura salariale
Salary breakup based on Earning and Deduction.,Stipendio rottura basato sul guadagno e di deduzione.
Salary components.,Componenti stipendio.
Sales,Vendite
Sales Analytics,Analisi dei dati di vendita
Sales BOM,BOM Vendite
Sales BOM Help,Vendite BOM Aiuto
Sales BOM Item,Vendite BOM articolo
Sales BOM Items,Vendite BOM Articoli
Sales Common,Vendite comuni
Sales Details,Dettagli di vendita
Sales Discounts,Sconti di vendita
Sales Email Settings,Vendite E-mail Impostazioni
Sales Extras,Extra di vendita
Sales Invoice,Fattura Commerciale
Sales Invoice Advance,Fattura Advance
Sales Invoice Item,Fattura Voce
Sales Invoice Items,Fattura di vendita Articoli
Sales Invoice Message,Fattura Messaggio
Sales Invoice No,Fattura Commerciale No
Sales Invoice Trends,Fattura di vendita Tendenze
Sales Order,Ordine di vendita
Sales Order Date,Ordine di vendita Data
Sales Order Item,Sales Order Item
Sales Order Items,Ordini di vendita Articoli
Sales Order Message,Sales Order Messaggio
Sales Order No,Ordine di vendita No
Sales Order Required,Ordine di vendita richiesto
Sales Order Trend,Ordine di vendita Trend
Sales Partner,Partner di vendita
Sales Partner Name,Vendite Partner Nome
Sales Partner Target,Vendite Partner di destinazione
Sales Partners Commission,Vendite Partners Commissione
Sales Person,Addetto alle vendite
Sales Person Incharge,Sales Person Incharge
Sales Person Name,Vendite Nome persona
Sales Person Target Variance (Item Group-Wise),Vendite persona bersaglio Varianza (Articolo Group-Wise)
Sales Person Targets,Sales Person Obiettivi
Sales Person-wise Transaction Summary,Sales Person-saggio Sintesi dell&#39;Operazione
Sales Register,Commerciale Registrati
Sales Return,Ritorno di vendite
Sales Returned,Vendite restituiti
Sales Taxes and Charges,Tasse di vendita e oneri
Sales Taxes and Charges Master,Tasse di vendita e oneri master
Sales Team,Team di vendita
Sales Team Details,Vendite team Dettagli
Sales Team1,Vendite Team1
Sales and Purchase,Vendita e Acquisto
Sales campaigns,Campagne di vendita
Sales persons and targets,Le persone e gli obiettivi di vendita
Sales taxes template.,Le imposte di vendita modello.
Sales territories.,Territori di vendita.
Salutation,Appellativo
Same file has already been attached to the record,Stesso file è già stato attaccato al record
Sample Size,Dimensione del campione
Sanctioned Amount,Importo sanzionato
Saturday,Sabato
Save,Salva
Schedule,Pianificare
Schedule Details,Dettagli di pianificazione
Scheduled,Pianificate
Scheduled Confirmation Date,Programmata Conferma Data
Scheduled Date,Data prevista
Scheduler Log,Scheduler Log
School/University,Scuola / Università
Score (0-5),Punteggio (0-5)
Score Earned,Punteggio Earned
Scrap %,Scrap%
Script,Script
Script Report,Segnala Script
Script Type,Tipo di script
Script to attach to all web pages.,Script di allegare a tutte le pagine web.
Search,Cerca
Search Fields,Campi di ricerca
Seasonality for setting budgets.,Stagionalità di impostazione budget.
Section Break,Interruzione di sezione
Security Settings,Impostazioni di sicurezza
"See ""Rate Of Materials Based On"" in Costing Section",Vedere &quot;tasso di materiali a base di&quot; in Costing Sezione
Select,Selezionare
"Select ""Yes"" for sub - contracting items",Selezionare &quot;Sì&quot; per i sub - articoli contraenti
"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.","Selezionare &quot;Sì&quot; se l&#39;oggetto deve essere inviato ad un cliente o ricevuto da un fornitore come un campione. Bolle di consegna e le ricevute di acquisto dovranno aggiornare i livelli di stock, ma non ci sarà alcuna fattura nei confronti di questo oggetto."
"Select ""Yes"" if this item is used for some internal purpose in your company.",Selezionare &quot;Sì&quot; se l&#39;oggetto è utilizzato per uno scopo interno nella vostra azienda.
"Select ""Yes"" if this item represents some work like training, designing, consulting etc.","Selezionare &quot;Sì&quot; se l&#39;oggetto rappresenta un lavoro come la formazione, progettazione, consulenza, ecc"
"Select ""Yes"" if you are maintaining stock of this item in your Inventory.",Selezionare &quot;Sì&quot; se si sta mantenendo magazzino di questo articolo nel tuo inventario.
"Select ""Yes"" if you supply raw materials to your supplier to manufacture this item.",Selezionare &quot;Sì&quot; se si forniscono le materie prime per il vostro fornitore per la fabbricazione di questo oggetto.
Select All,Seleziona tutto
Select Attachments,Selezionare Allegati
Select Budget Distribution to unevenly distribute targets across months.,Selezionare Budget Distribution per distribuire uniformemente gli obiettivi in ​​tutta mesi.
"Select Budget Distribution, if you want to track based on seasonality.","Selezionare Budget distribuzione, se si desidera tenere traccia in base a stagionalità."
Select Customer,Selezionare clienti
Select Digest Content,Selezionare Digest Contenuto
Select DocType,Selezionare DocType
Select Document Type,Seleziona tipo di documento
Select Document Type or Role to start.,Selezionare tipo di documento o di ruolo per iniziare.
Select Items,Selezionare Elementi
Select PR,Selezionare PR
Select Print Format,Selezionare Formato di stampa
Select Print Heading,Selezionare Stampa Rubrica
Select Report Name,Selezionare Nome rapporto
Select Role,Scegliere Ruolo
Select Sales Orders,Selezionare Ordini di vendita
Select Sales Orders from which you want to create Production Orders.,Selezionare gli ordini di vendita da cui si desidera creare gli ordini di produzione.
Select Terms and Conditions,Selezionare Termini e Condizioni
Select Time Logs and Submit to create a new Sales Invoice.,Selezionare Time Diari e Invia per creare una nuova fattura di vendita.
Select Transaction,Selezionare Transaction
Select Type,Seleziona tipo
Select User or Property to start.,Selezionare Utente o immobile per iniziare.
Select a Banner Image first.,Selezionare un Banner Immagine prima.
Select account head of the bank where cheque was deposited.,Selezionare conto capo della banca in cui assegno è stato depositato.
Select an image of approx width 150px with a transparent background for best results.,Selezionare un&#39;immagine di circa larghezza 150px con sfondo trasparente per i migliori risultati.
Select company name first.,Selezionare il nome della società prima.
Select dates to create a new ,Seleziona le date per creare un nuovo
Select name of Customer to whom project belongs,Selezionare il nome del cliente a cui appartiene progetto
Select or drag across time slots to create a new event.,Selezionare o trascinare gli intervalli di tempo per creare un nuovo evento.
Select template from which you want to get the Goals,Selezionare modello da cui si desidera ottenere gli Obiettivi
Select the Employee for whom you are creating the Appraisal.,Selezionare il dipendente per il quale si sta creando la valutazione.
Select the currency in which price list is maintained,Scegliere la valuta in cui listino è mantenuta
Select the label after which you want to insert new field.,Selezionare l&#39;etichetta dopo la quale si desidera inserire nuovo campo.
Select the period when the invoice will be generated automatically,Selezionare il periodo in cui la fattura viene generato automaticamente
"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.","Selezionare il listino prezzi, come indicato in &quot;prezzo di listino&quot; maestro. Questo tirerà i tassi di riferimento di elementi contro questo listino prezzi, come specificato nel master &quot;Item&quot;."
Select the relevant company name if you have multiple companies,"Selezionare il relativo nome della società, se si dispone di più le aziende"
Select the relevant company name if you have multiple companies.,"Selezionare il relativo nome della società, se si dispone di più aziende."
Select who you want to send this newsletter to,Selezionare a chi si desidera inviare questa newsletter ad
"Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt.","Selezionando &quot;Sì&quot;, consentirà a questa voce di apparire in ordine di acquisto, ricevuta di acquisto."
"Selecting ""Yes"" will allow this item to figure in Sales Order, Delivery Note","Selezionando &quot;Sì&quot; permetterà questo elemento per capire in ordine di vendita, di consegna Note"
"Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.",Selezionando &quot;Sì&quot; vi permetterà di creare distinta base che mostra delle materie prime e dei costi operativi sostenuti per la produzione di questo elemento.
"Selecting ""Yes"" will allow you to make a Production Order for this item.",Selezionando &quot;Sì&quot; vi permetterà di fare un ordine di produzione per questo articolo.
"Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.",Selezionando &quot;Sì&quot; darà una identità unica di ciascun soggetto di questa voce che può essere visualizzato nel Serial Nessun maestro.
Selling,Vendere
Selling Settings,Vendere Impostazioni
Send,Invia
Send Autoreply,Invia Autoreply
Send Email,Invia Email
Send From,Invia Dalla
Send Invite Email,Invia invito e-mail
Send Me A Copy,Inviami una copia
Send Notifications To,Inviare notifiche ai
Send Print in Body and Attachment,Invia Stampa in Corpo e Allegati
Send SMS,Invia SMS
Send To,Invia a
Send To Type,Send To Type
Send an email reminder in the morning,Invia un promemoria tramite email al mattino
Send automatic emails to Contacts on Submitting transactions.,Inviare email automatiche ai Contatti sul Invio transazioni.
Send mass SMS to your contacts,Invia SMS di massa ai tuoi contatti
Send regular summary reports via Email.,Invia rapporti di sintesi periodici via email.
Send to this list,Invia a questa lista
Sender,Mittente
Sender Name,Nome mittente
"Sending newsletters is not allowed for Trial users, \				to prevent abuse of this feature.","L&#39;invio di newsletter non è consentito per gli utenti di prova, \ per impedire l&#39;abuso di questa funzione."
Sent Mail,Posta inviata
Sent On,Inviata il
Sent Quotation,Quotazione Inviati
Separate production order will be created for each finished good item.,Ordine di produzione separata verrà creato per ogni buon prodotto finito.
Serial No,Serial No
Serial No Details,Serial No Dettagli
Serial No Service Contract Expiry,Serial No Contratto di Servizio di scadenza
Serial No Status,Serial No Stato
Serial No Warranty Expiry,Serial No Garanzia di scadenza
Serial No created,Serial No creato
Serial No does not belong to Item,Serial No non appartiene alla Voce
Serial No must exist to transfer out.,Serial No deve esistere per il trasferimento fuori.
Serial No qty cannot be a fraction,Serial No qty non può essere una frazione
Serial No status must be 'Available' to Deliver,Numero seriale di stato deve essere &#39;disponibile&#39; per fornire
Serial Nos do not match with qty,N ° di serie non corrispondono con qty
Serial Number Series,Serial Number Series
Serialized Item: ',Articolo Serialized: &#39;
Series List for this Transaction,Lista Serie per questa transazione
Server,Server
Service Address,Service Indirizzo
Services,Servizi
Session Expired. Logging you out,Sessione scaduta. Registrazione fuori
Session Expires in (time),Sessione scade a (tempo)
Session Expiry,Sessione di scadenza
Session Expiry in Hours e.g. 06:00,Sessione di scadenza in ore es 06:00
Set Banner from Image,Impostare Banner da immagine
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Impostare la voce del budget di Gruppo-saggi su questo territorio. È inoltre possibile includere la stagionalità impostando la distribuzione.
Set Login and Password if authentication is required.,"Impostare Login e Password, se è richiesta l&#39;autenticazione."
Set New Password,Imposta nuova password
Set Value,Imposta valore
"Set a new password and ""Save""",Impostare una nuova password e &quot;Salva&quot;
Set prefix for numbering series on your transactions,Impostare prefisso per numerazione serie sulle transazioni
Set targets Item Group-wise for this Sales Person.,Fissare obiettivi Item Group-saggio per questo venditore.
"Set your background color, font and image (tiled)","Impostare il colore di sfondo, font e immagini (piastrelle)"
"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.","Impostare le impostazioni SMTP di posta in uscita qui. Tutto il sistema genera le notifiche, e-mail andranno da questo server di posta. Se non si è sicuri, lasciare vuoto per utilizzare i server ERPNext (e-mail verranno comunque inviati dal vostro id e-mail) o contattare il proprio provider di posta."
Setting Account Type helps in selecting this Account in transactions.,Impostazione Tipo di account aiuta nella scelta questo account nelle transazioni.
Settings,Impostazioni
Settings for About Us Page.,Impostazioni per Chi Siamo.
Settings for Accounts,Impostazioni per gli account
Settings for Buying Module,Impostazioni per l&#39;acquisto del modulo
Settings for Contact Us Page,Impostazioni per contattarci Pagina
Settings for Contact Us Page.,Impostazioni per la pagina contatti.
Settings for Selling Module,Impostazioni per la vendita di moduli
Settings for the About Us Page,Impostazioni per la Chi Siamo
"Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""",Impostazioni per estrarre richiedenti lavoro di una casella di posta ad esempio &quot;jobs@example.com&quot;
Setup,Setup
Setup Control,Controllo del programma di
Setup Series,Serie Setup
Setup of Shopping Cart.,Impostazione di Carrello.
Setup of fonts and background.,Installazione di font e lo sfondo.
"Setup of top navigation bar, footer and logo.","Impostazione di barra di navigazione superiore, piè di pagina e il logo."
Setup to pull emails from support email account,SETUP per tirare email da account di posta elettronica di supporto
Share,Condividi
Share With,Condividi
Shipments to customers.,Le spedizioni verso i clienti.
Shipping,Spedizione
Shipping Account,Account Spedizione
Shipping Address,Indirizzo di spedizione
Shipping Address Name,Spedizione Nome Indirizzo
Shipping Amount,Importo spedizione
Shipping Rule,Spedizione Rule
Shipping Rule Condition,Spedizione Regola Condizioni
Shipping Rule Conditions,Spedizione condizioni regola
Shipping Rule Label,Spedizione Etichetta Regola
Shipping Rules,Regole di Spedizione
Shop,Negozio
Shopping Cart,Carrello spesa
Shopping Cart Price List,Carrello Prezzo di listino
Shopping Cart Price Lists,Carrello Listini
Shopping Cart Settings,Carrello Impostazioni
Shopping Cart Shipping Rule,Carrello Spedizioni Rule
Shopping Cart Shipping Rules,Carrello Regole di Spedizione
Shopping Cart Taxes and Charges Master,Carrello Tasse e Spese master
Shopping Cart Taxes and Charges Masters,Carrello Tasse e Costi Masters
Short Bio,Breve Bio
Short Name,Nome breve
Short biography for website and other publications.,Breve biografia per il sito web e altre pubblicazioni.
Shortcut,Scorciatoia
"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Mostra &quot;Disponibile&quot; o &quot;Non disponibile&quot; sulla base di scorte disponibili in questo magazzino.
Show Details,Mostra dettagli
Show In Website,Mostra Nel Sito
Show Print First,Mostra Stampa Prima
Show a slideshow at the top of the page,Visualizzare una presentazione in cima alla pagina
Show in Website,Mostra nel Sito
Show rows with zero values,Mostra righe con valori pari a zero
Show this slideshow at the top of the page,Mostra questo slideshow in cima alla pagina
Showing only for,Mostrando solo per
Signature,Firma
Signature to be appended at the end of every email,Firma da aggiungere alla fine di ogni e-mail
Single,Singolo
Single Post (article).,Messaggio singolo (articolo).
Single unit of an Item.,Unità singola di un articolo.
Sitemap Domain,Mappa del sito Dominio
Slideshow,Slideshow
Slideshow Items,Articoli Slideshow
Slideshow Name,Nome Slideshow
Slideshow like display for the website,Slideshow come schermo per il sito web
Small Text,Testo piccolo
Solid background color (default light gray),Colore di sfondo a tinta unita (grigio chiaro di default)
Sorry we were unable to find what you were looking for.,Spiacente non siamo riusciti a trovare quello che stavi cercando.
Sorry you are not permitted to view this page.,Mi dispiace che non sei autorizzato a visualizzare questa pagina.
Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Spiacente! Possiamo permettere che solo fino a 100 righe per Archivio Riconciliazione.
"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Spiacente! Non è possibile cambiare la valuta di default dell&#39;azienda, perché ci sono operazioni in essere contro di esso. Avrete bisogno di cancellare tali operazioni se si desidera cambiare la valuta di default."
Sorry. Companies cannot be merged,Mi dispiace. Le aziende non possono essere unite
Sorry. Serial Nos. cannot be merged,Mi dispiace. Serial numeri non può essere unita
Sort By,Ordina per
Source,Fonte
Source Warehouse,Fonte Warehouse
Source and Target Warehouse cannot be same,Origine e di destinazione Warehouse non può essere lo stesso
Source of th,Fonte del secolo
"Source of the lead. If via a campaign, select ""Campaign""","Fonte del piombo. Se attraverso una campagna, selezionare &quot;Campagna&quot;"
Spartan,Spartan
Special Page Settings,Impostazioni di pagina speciale
Specification Details,Specifiche Dettagli
Specify Exchange Rate to convert one currency into another,Specificare Tasso di cambio per convertire una valuta in un&#39;altra
"Specify a list of Territories, for which, this Price List is valid","Specifica una lista di territori, per il quale, questo listino prezzi è valido"
"Specify a list of Territories, for which, this Shipping Rule is valid","Specifica una lista di territori, per la quale, questa regola di trasporto è valido"
"Specify a list of Territories, for which, this Taxes Master is valid","Specifica una lista di territori, per il quale, questo Tasse Master è valido"
Specify conditions to calculate shipping amount,Specificare le condizioni per il calcolo dell&#39;importo di spedizione
Split Delivery Note into packages.,Split di consegna Nota in pacchetti.
Standard,Standard
Standard Rate,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.","Termini e condizioni standard, che possono essere aggiunti alla Vendita e Purchases.Examples: 1. Validità della offer.1. Condizioni di pagamento (in anticipo, a credito, parte prima, ecc) .1. Ciò che è più (o da pagare da parte del Cliente) .1. Sicurezza / utilizzo warning.1. Garanzia se any.1. Restituisce Policy.1. Condizioni di trasporto, se applicable.1. Modi di controversie indirizzamento, indennizzo, responsabilità, ecc.1. Indirizzo e contatti della vostra azienda."
"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.10. Add or Deduct: Whether you want to add or deduct the tax.","Modello fiscale standard che può essere applicato a tutte le transazioni di acquisto. Questo modello può contenere lista delle teste di IVA, le altre teste di spesa come la &quot;spedizione&quot;, &quot;assicurazione&quot;, &quot;Gestione&quot;, ecc aliquota # # # # NotaIl si definisce qui sarà normale dell&#39;imposta tutti ** Articoli per ** . Se ci sono ** ** Articoli che hanno tassi diversi, questi devono essere aggiunti nel ** Articolo Tax ** tavolo del ** Item ** master. # # # # Descrizione di Columns1. Tipo di calcolo: - Questo può essere il totale netto ** ** (che è la somma delle quantità di base). - ** Il Fila Indietro totale / Importo ** (per le imposte o oneri cumulativi). Se si seleziona questa opzione, l&#39;imposta sarà applicata come percentuale della riga precedente (nella tabella delle imposte) o importo totale. - ** Actual ** (come detto) .2. Account Responsabile: Il libro mastro account con cui questa tassa sarà booked3. Centro di costo: se l&#39;imposta / tassa è un reddito (come spese di spedizione) o la spesa che deve essere prenotato fronte di un costo Center.4. Descrizione: Descrizione della tassa (che sarà stampato in fatture / preventivi) .5. Vota: Tax rate.6. Importo: Tassa amount.7. Totale: totale cumulativo a questo point.8. Inserisci Row: se sulla base di &quot;Precedente totale riga&quot; è possibile selezionare il numero di riga che sarà preso come base per il calcolo (di default è la riga precedente) .9. Considerare fiscale o Carica per: In questa sezione è possibile specificare se l&#39;imposta / tassa è solo per valutazione (non una parte del totale) o solo per il totale (non aggiunge valore al prodotto) o per both.10. Aggiungere o detrarre: Se si desidera aggiungere o detrarre l&#39;imposta."
"Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.","Modello fiscale standard che può essere applicato a tutte le transazioni di vendita. Questo modello può contenere lista delle teste di IVA, le altre teste di costi / ricavi come &quot;spedizione&quot;, &quot;assicurazione&quot;, &quot;Gestione&quot;, ecc # # # # Nota Il tax rate si definisce qui sarà normale dell&#39;imposta tutti ** gli articoli per **. Se ci sono ** ** Articoli che hanno tassi diversi, questi devono essere aggiunti nel ** Articolo Tax ** tavolo del ** Item ** master. # # # # Descrizione di Columns1. Tipo di calcolo: - Questo può essere il totale netto ** ** (che è la somma delle quantità di base). - ** Il Fila Indietro totale / Importo ** (per le imposte o oneri cumulativi). Se si seleziona questa opzione, l&#39;imposta sarà applicata come percentuale della riga precedente (nella tabella delle imposte) o importo totale. - ** Actual ** (come detto) .2. Account Responsabile: Il libro mastro account con cui questa tassa sarà booked3. Centro di costo: se l&#39;imposta / tassa è un reddito (come spese di spedizione) o la spesa che deve essere prenotato fronte di un costo Center.4. Descrizione: Descrizione della tassa (che sarà stampato in fatture / preventivi) .5. Vota: Tax rate.6. Importo: Tassa amount.7. Totale: totale cumulativo a questo point.8. Inserisci Row: se sulla base di &quot;Precedente totale riga&quot; è possibile selezionare il numero di riga che sarà preso come base per il calcolo (di default è la riga precedente) .9. È questa tassa inclusi nel prezzo base:? Se si seleziona questa, vuol dire che questa tassa non verrà mostrato sotto la tabella voce, ma sarà incluso nella tariffa di base nella vostra tabella principale voce. Questo è utile quando si vuole dare un prezzo flat (imposte comprese) prezzo ai clienti."
Start Date,Data di inizio
Start Report For,Inizio Rapporto Per
Start date of current invoice's period,Data finale del periodo di fatturazione corrente Avviare
Starts on,Inizia il
Startup,Startup
State,Stato
States,Stati
Static Parameters,Parametri statici
Status,Stato
Status must be one of ,Stato deve essere uno dei
Status should be Submitted,Stato deve essere presentato
Statutory info and other general information about your Supplier,Sindaco informazioni e altre informazioni generali sulla tua Fornitore
Stock,Azione
Stock Adjustment Account,Conto di regolazione Archivio
Stock Adjustment Cost Center,Regolazione Archivio Centro di costo
Stock Ageing,Invecchiamento Archivio
Stock Analytics,Analytics Archivio
Stock Balance,Archivio Balance
Stock Entry,Archivio Entry
Stock Entry Detail,Dell&#39;entrata Stock Detail
Stock Frozen Upto,Archivio Congelati Fino
Stock In Hand Account,Archivio Account mano
Stock Ledger,Ledger Archivio
Stock Ledger Entry,Ledger Archivio Entry
Stock Level,Stock Level
Stock Qty,Disponibilità Quantità
Stock Queue (FIFO),Coda Archivio (FIFO)
Stock Received But Not Billed,Archivio ricevuti ma non Fatturati
Stock Reconciliation,Riconciliazione Archivio
Stock Reconciliation file not uploaded,File di riconciliazione Stock non caricato
Stock Settings,Impostazioni immagini
Stock UOM,UOM Archivio
Stock UOM Replace Utility,Archivio UOM Replace Utility
Stock Uom,UOM Archivio
Stock Value,Archivio Valore
Stock Value Difference,Valore Archivio Differenza
Stop,Arresto
Stop users from making Leave Applications on following days.,Impedire agli utenti di effettuare Lascia le applicazioni in giorni successivi.
Stopped,Arrestato
Structure cost centers for budgeting.,Centri di costo di struttura per il budgeting.
Structure of books of accounts.,Struttura dei libri dei conti.
Style,Stile
Style Settings,Regolazioni
"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Style rappresenta il colore del pulsante: Successo - Verde, Pericolo - Rosso, Inverse - Nero, primario - Dark Blue, Info - Light Blue, Warning - Arancione"
"Sub-currency. For e.g. ""Cent""","Sub-valuta. Per esempio, &quot;Cent&quot;"
Sub-domain provided by erpnext.com,Sub-dominio fornito dal erpnext.com
Subcontract,Subappaltare
Subdomain,Sottodominio
Subject,Soggetto
Submit,Presentare
Submit Salary Slip,Invia Stipendio slittamento
Submit all salary slips for the above selected criteria,Inviare tutti i fogli paga per i criteri sopra selezionati
Submitted,Inserito
Submitted Record cannot be deleted,Record presentata non può essere cancellato
Subsidiary,Sussidiario
Success,Successo
Successful: ,Successo:
Suggestion,Suggerimento
Suggestions,Suggerimenti
Sunday,Domenica
Supplier,Fornitore
Supplier (Payable) Account,Fornitore (da pagare) Conto
Supplier (vendor) name as entered in supplier master,Nome del fornitore (venditore) come è entrato in master fornitore
Supplier Account Head,Fornitore Account testa
Supplier Address,Fornitore Indirizzo
Supplier Details,Fornitore Dettagli
Supplier Intro,Intro Fornitore
Supplier Invoice Date,Fornitore Data fattura
Supplier Invoice No,Fornitore fattura n
Supplier Name,Nome fornitore
Supplier Naming By,Fornitore di denominazione
Supplier Part Number,Numero di parte del fornitore
Supplier Quotation,Quotazione Fornitore
Supplier Quotation Item,Fornitore Quotazione articolo
Supplier Reference,Fornitore di riferimento
Supplier Shipment Date,Fornitore Data di spedizione
Supplier Shipment No,Fornitore Spedizione No
Supplier Type,Tipo Fornitore
Supplier Warehouse,Magazzino Fornitore
Supplier Warehouse mandatory subcontracted purchase receipt,Magazzino Fornitore obbligatoria ricevuta di acquisto subappaltato
Supplier classification.,Classificazione fornitore.
Supplier database.,Banca dati dei fornitori.
Supplier of Goods or Services.,Fornitore di beni o servizi.
Supplier warehouse where you have issued raw materials for sub - contracting,Magazzino del fornitore in cui è stato rilasciato materie prime per la sub - contraente
Supplier's currency,Valuta del fornitore
Support,Sostenere
Support Analytics,Analytics Support
Support Email,Supporto Email
Support Email Id,Supporto Email Id
Support Password,Supporto password
Support Ticket,Support Ticket
Support queries from customers.,Supportare le query da parte dei clienti.
Symbol,Simbolo
Sync Inbox,Sincronizzazione Posta in arrivo
Sync Support Mails,Sincronizza mail di sostegno
Sync with Dropbox,Sincronizzazione con Dropbox
Sync with Google Drive,Sincronizzazione con Google Drive
System,Sistema
System Defaults,Valori predefiniti di sistema
System Settings,Impostazioni di sistema
System User,Utente di sistema
"System User (login) ID. If set, it will become default for all HR forms.","Utente di sistema (login) ID. Se impostato, esso diventerà di default per tutti i moduli HR."
System for managing Backups,Sistema per la gestione dei backup
System generated mails will be sent from this email id.,Sistema di posta elettronica generati saranno spediti da questa e-mail id.
TL-,TL-
TLB-,TLB-
Table,Tavolo
Table for Item that will be shown in Web Site,Tabella per la voce che verrà mostrato nel sito Web
Tag,Tag
Tag Name,Nome del tag
Tags,Tag
Tahoma,Tahoma
Target,Obiettivo
Target  Amount,L&#39;importo previsto
Target Detail,Obiettivo Particolare
Target Details,Dettagli di destinazione
Target Details1,Obiettivo Dettagli1
Target Distribution,Distribuzione di destinazione
Target Qty,Obiettivo Qtà
Target Warehouse,Obiettivo Warehouse
Task,Task
Task Details,Attività Dettagli
Tax,Tax
Tax Calculation,Calcolo delle imposte
Tax Category can not be 'Valuation' or 'Valuation and Total' 					as all items are non-stock items,"Categoria fiscale non può essere &#39;di Valutazione&#39; o &#39;di valutazione e totale&#39;, come tutti gli oggetti sono elementi non-azione"
Tax Master,Tax Maestro
Tax Rate,Aliquota fiscale
Tax Template for Purchase,Template fiscale per l&#39;acquisto
Tax Template for Sales,Template fiscale per le vendite
Tax and other salary deductions.,Fiscale e di altre deduzioni salariali.
Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges,Tax tavolo dettaglio prelevato da padrone voce come una stringa e conservato in questo field.Used per imposte e oneri
Taxable,Imponibile
Taxes,Tasse
Taxes and Charges,Tasse e Costi
Taxes and Charges Added,Tasse e spese aggiuntive
Taxes and Charges Added (Company Currency),Tasse e spese aggiuntive (Azienda valuta)
Taxes and Charges Calculation,Tasse e le spese di calcolo
Taxes and Charges Deducted,Tasse e oneri dedotti
Taxes and Charges Deducted (Company Currency),Tasse e oneri dedotti (Azienda valuta)
Taxes and Charges Total,Tasse e oneri Totale
Taxes and Charges Total (Company Currency),Tasse e oneri Totale (Azienda valuta)
Taxes and Charges1,Tasse e Charges1
Team Members,Membri del Team
Team Members Heading,Membri del team Rubrica
Template for employee performance appraisals.,Modello per la valutazione delle prestazioni dei dipendenti.
Template of terms or contract.,Template di termini o di contratto.
Term Details,Dettagli termine
Terms and Conditions,Termini e Condizioni
Terms and Conditions Content,Termini e condizioni contenuti
Terms and Conditions Details,Termini e condizioni dettagli
Terms and Conditions Template,Termini e condizioni Template
Terms and Conditions1,Termini e Condizioni 1
Territory,Territorio
Territory Manager,Territory Manager
Territory Name,Territorio Nome
Territory Target Variance (Item Group-Wise),Territorio di destinazione Varianza (Articolo Group-Wise)
Territory Targets,Obiettivi Territorio
Test,Prova
Test Email Id,Prova Email Id
Test Runner,Test Runner
Test the Newsletter,Provare la Newsletter
Text,Testo
Text Align,Allineamento testo
Text Editor,Editor di testo
"The ""Web Page"" that is the website home page",La &quot;Pagina Web&quot; che è la home page del sito
The BOM which will be replaced,La distinta base che sarà sostituito
"The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",L&#39;articolo che rappresenta il pacchetto. Questo elemento deve avere &quot;è Stock Item&quot; come &quot;No&quot; e &quot;Is Voce di vendita&quot; come &quot;Yes&quot;
"The account head under Liability, in which Profit/Loss will be booked","La testa account con responsabilità, in cui sarà prenotato Utile / Perdita"
The date at which current entry is made in system.,La data in cui è fatto voce corrente nel sistema.
The date at which current entry will get or has actually executed.,La data in cui la voce corrente avrà o ha effettivamente eseguito.
The date on which next invoice will be generated. It is generated on submit.,La data in cui verrà generato fattura successiva. Si è generato su submit.
The date on which recurring invoice will be stop,La data in cui fattura ricorrente sarà ferma
"The day of the month on which auto invoice will be generated e.g. 05, 28 etc ","Il giorno del mese in cui verrà generato fattura auto ad esempio 05, 28, ecc"
The first Leave Approver in the list will be set as the default Leave Approver,Lascia il primo responsabile approvazione della lista sarà impostato come predefinito Lascia Approver
The gross weight of the package. Usually net weight + packaging material weight. (for print),Il peso lordo del pacchetto. Di solito peso netto + peso materiale di imballaggio. (Per la stampa)
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.,Il nome della vostra azienda / sito web come si desidera visualizzare sulla barra del titolo del browser. Tutte le pagine avranno questo come prefisso per il titolo.
The net weight of this package. (calculated automatically as sum of net weight of items),Il peso netto di questo pacchetto. (Calcolato automaticamente come somma del peso netto delle partite)
The new BOM after replacement,Il nuovo BOM dopo la sostituzione
The rate at which Bill Currency is converted into company's base currency,La velocità con cui Bill valuta viene convertita in valuta di base dell&#39;azienda
"The system provides pre-defined roles, but you can <a href='#List/Role'>add new roles</a> to set finer permissions","Il sistema fornisce i ruoli predefiniti, ma è possibile <a href='#List/Role'>aggiungere nuovi ruoli</a> per impostare le autorizzazioni più fini"
The unique id for tracking all recurring invoices. It is generated on submit.,L&#39;ID univoco per il monitoraggio tutte le fatture ricorrenti. Si è generato su submit.
Then By (optional),Poi per (opzionale)
These properties are Link Type fields from all Documents.,Queste proprietà sono di collegamento Tipo campi da tutti i documenti.
"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>","Queste proprietà possono essere utilizzati anche per &#39;assegnare&#39; un particolare documento, la cui proprietà corrisponde con la proprietà per l&#39;utente di un utente. Questi possono essere impostati utilizzando il <a href='#permission-manager'>Permission Manager</a>"
These properties will appear as values in forms that contain them.,Queste proprietà appariranno come valori in forme che li contengono.
These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.,Questi valori saranno aggiornati automaticamente nelle transazioni e anche sarà utile per limitare le autorizzazioni per l&#39;utente sulle operazioni che contengono questi valori.
This Price List will be selected as default for all Customers under this Group.,Questo listino prezzi sarà selezionato come predefinito per tutti i clienti in questo Gruppo.
This Time Log Batch has been billed.,Questo Log Batch Ora è stato fatturato.
This Time Log Batch has been cancelled.,Questo Log Batch Ora è stato annullato.
This Time Log conflicts with,Questa volta i conflitti di registro con
This account will be used to maintain value of available stock,Questo account verrà utilizzato per mantenere il valore delle scorte disponibili
This currency will get fetched in Purchase transactions of this supplier,Questa moneta avranno recuperato in operazioni di acquisto di questa azienda
This currency will get fetched in Sales transactions of this customer,Questa moneta avranno recuperato nelle transazioni di vendita di questo cliente
"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.","Questa funzione è per la fusione magazzini duplicati. Sostituirà tutti i link di questo magazzino da &quot;Unisci in un&quot; magazzino. Dopo la fusione è possibile eliminare questo magazzino, come livello di azione per questo deposito sarà a zero."
This feature is only applicable to self hosted instances,Questa funzione è applicabile solo alle istanze self hosted
This field will appear only if the fieldname defined here has value OR the rules are true (examples): <br>myfieldeval:doc.myfield=='My Value'<br>eval:doc.age>18,Questo campo viene visualizzato solo se il nome del campo definito qui ha valore o le regole sono vere (esempi): <br> myfieldeval: doc.myfield == &#39;il mio valore&#39; <br> eval: doc.age&gt; 18
This goes above the slideshow.,Questo va al di sopra della presentazione.
This is PERMANENT action and you cannot undo. Continue?,Questa è l&#39;azione permanente e non può essere annullata. Continuare?
This is an auto generated Material Request.,Questo è un auto generato Material Request.
This is permanent action and you cannot undo. Continue?,Questa è l&#39;azione permanente e non può essere annullata. Continuare?
This is the number of the last created transaction with this prefix,Questo è il numero dell&#39;ultimo transazione creata con questo prefisso
This message goes away after you create your first customer.,Questo messaggio va via dopo aver creato il vostro primo cliente.
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.,Questo strumento consente di aggiornare o correggere la quantità e la valutazione delle azioni nel sistema. Viene tipicamente utilizzato per sincronizzare i valori di sistema e ciò che realmente esiste nei vostri magazzini.
This will be used for setting rule in HR module,Questo verrà utilizzato per regola impostazione nel modulo HR
Thread HTML,HTML Discussione
Thursday,Giovedi
Time,Volta
Time Log,Tempo di Log
Time Log Batch,Tempo Log Batch
Time Log Batch Detail,Ora Dettaglio Batch Log
Time Log Batch Details,Tempo Log Dettagli batch
Time Log Batch status must be 'Submitted',Stato batch Tempo Log deve essere &#39;Inviato&#39;
Time Log Status must be Submitted.,Tempo Log Stato deve essere presentata.
Time Log for tasks.,Tempo di log per le attività.
Time Log is not billable,Tempo di log non è fatturabile
Time Log must have status 'Submitted',Tempo di log deve avere lo status di &#39;Inviato&#39;
Time Zone,Time Zone
Time Zones,Time Zones
Time and Budget,Tempo e budget
Time at which items were delivered from warehouse,Ora in cui gli elementi sono stati consegnati dal magazzino
Time at which materials were received,Ora in cui sono stati ricevuti i materiali
Title,Titolo
Title / headline of your page,Titolo / intestazione della pagina
Title Case,Titolo Caso
Title Prefix,Title Prefix
To,A
To Currency,Per valuta
To Date,Di sesso
To Discuss,Per Discutere
To Do,To Do
To Do List,To Do List
To PR Date,Per PR Data
To Package No.,A Pacchetto no
To Reply,Per Rispondi
To Time,Per Tempo
To Value,Per Valore
To Warehouse,A Magazzino
"To add a tag, open the document and click on ""Add Tag"" on the sidebar","Per aggiungere un tag, aprire il documento e fare clic su &quot;Aggiungi Tag&quot; sulla barra laterale"
"To assign this issue, use the ""Assign"" button in the sidebar.","Per assegnare questo problema, utilizzare il pulsante &quot;Assegna&quot; nella barra laterale."
"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.","Per creare automaticamente biglietti di supporto dalla tua posta in arrivo, impostare le impostazioni POP3 qui. Idealmente è necessario creare un id e-mail separata per il sistema ERP in modo che tutte le email saranno sincronizzati nel sistema da quella mail id. Se non si è sicuri, contattare il proprio provider di posta."
"To create an Account Head under a different company, select the company and save customer.","Per creare un account in testa una società diversa, selezionare l&#39;azienda e salvare cliente."
To enable <b>Point of Sale</b> features,Per abilitare la funzionalità <b>Point of Sale</b>
To enable more currencies go to Setup > Currency,Per abilitare più valute andare su Setup&gt; valuta
"To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Per scaricare nuovamente elementi, fare clic su &#39;Get per&#39; pulsante \ o aggiornare la quantità manualmente."
"To format columns, give column labels in the query.","Per formattare le colonne, dare etichette di colonna nella query."
"To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Per limitare ulteriormente i permessi in base a determinati valori di un documento, utilizzare le impostazioni di &#39;condizione&#39;."
To get Item Group in details table,Per ottenere Gruppo di elementi in dettaglio tabella
To manage multiple series please go to Setup > Manage Series,Per gestire più serie preghiamo di andare su Setup&gt; Gestisci Serie
To restrict a User of a particular Role to documents that are explicitly assigned to them,Per impedire a un utente di un particolare ruolo a documenti che sono esplicitamente assegnati a loro
To restrict a User of a particular Role to documents that are only self-created.,Per impedire a un utente di un particolare ruolo a documenti che sono solo auto-creato.
"To set reorder level, item must be Purchase Item","Per impostare il livello di riordino, articolo deve essere di acquisto dell&#39;oggetto"
"To set user roles, just go to <a href='#List/Profile'>Setup > Users</a> and click on the user to assign roles.","Per impostare i ruoli utente, basta andare su <a href='#List/Profile'>Impostazioni&gt; Utenti</a> e fare clic sull&#39;utente per assegnare ruoli."
To track any installation or commissioning related work after sales,Per tenere traccia di alcuna installazione o messa in attività collegate post-vendita
"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","Per tenere traccia di marca nei seguenti documenti <br> Bolla di consegna, Enuiry, Materiale Richiesta, articolo, ordine di acquisto, Buono Acquisto, l&#39;Acquirente Ricevuta, Preventivo, fattura di vendita, distinta base di vendita, ordini di vendita, Serial No"
To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.,Per tenere traccia di voce in documenti di vendita e di acquisto in base alle loro n ° di serie. Questo è può anche usato per rintracciare informazioni sulla garanzia del prodotto.
To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,"Per tenere traccia di elementi in documenti di vendita e acquisto con nos lotti <br> <b>Industria preferita: Chimica, ecc</b>"
To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Per tenere traccia di elementi con codice a barre. Si sarà in grado di inserire articoli nel DDT e fattura di vendita attraverso la scansione del codice a barre del prodotto.
ToDo,ToDo
Tools,Strumenti
Top,Superiore
Top Bar,Top Bar
Top Bar Background,Top Bar Background
Top Bar Item,Top Bar articolo
Top Bar Items,Top Articoli Bar
Top Bar Text,Top Bar Text
Top Bar text and background is same color. Please change.,Top Bar testo e sfondo è dello stesso colore. Per favore cambia.
Total,Totale
Total (sum of) points distribution for all goals should be 100.,Totale (somma di) Distribuzione punti per tutti gli obiettivi dovrebbe essere di 100.
Total Advance,Totale Advance
Total Amount,Totale Importo
Total Amount To Pay,Importo totale da pagare
Total Amount in Words,Importo totale in parole
Total Billing This Year: ,Fatturazione questo Anno:
Total Claimed Amount,Totale importo richiesto
Total Commission,Commissione Totale
Total Cost,Costo totale
Total Credit,Totale credito
Total Debit,Debito totale
Total Deduction,Deduzione totale
Total Earning,Guadagnare totale
Total Experience,Esperienza totale
Total Hours,Totale ore
Total Hours (Expected),Totale ore (prevista)
Total Invoiced Amount,Totale Importo fatturato
Total Leave Days,Totale Lascia Giorni
Total Leaves Allocated,Totale Foglie allocati
Total Operating Cost,Totale costi di esercizio
Total Points,Totale Punti
Total Raw Material Cost,Raw Material Total Cost
Total SMS Sent,Totale SMS Inviati
Total Sanctioned Amount,Totale importo sanzionato
Total Score (Out of 5),Punteggio totale (i 5)
Total Tax (Company Currency),Totale IVA (Azienda valuta)
Total Taxes and Charges,Totale imposte e oneri
Total Taxes and Charges (Company Currency),Totale tasse e spese (Azienda valuta)
Total Working Days In The Month,Giorni di lavoro totali nel mese
Total amount of invoices received from suppliers during the digest period,Importo totale delle fatture ricevute dai fornitori durante il periodo di digest
Total amount of invoices sent to the customer during the digest period,Importo totale delle fatture inviate al cliente durante il periodo di digest
Total in words,Totale in parole
Total production order qty for item,La produzione totale qty di ordine per la voce
Totals,Totali
Track separate Income and Expense for product verticals or divisions.,Traccia Entrate e uscite separati per verticali di prodotto o divisioni.
Track this Delivery Note against any Project,Sottoscrivi questa bolla di consegna contro ogni progetto
Track this Sales Invoice against any Project,Sottoscrivi questa fattura di vendita nei confronti di qualsiasi progetto
Track this Sales Order against any Project,Traccia questo ordine di vendita nei confronti di qualsiasi progetto
Transaction,Transazioni
Transaction Date,Transaction Data
Transfer,Trasferimento
Transition Rules,Regole di transizione
Transporter Info,Info Transporter
Transporter Name,Trasportatore Nome
Transporter lorry number,Numero di camion Transporter
Trash Reason,Trash Motivo
Tree of item classification,Albero di classificazione voce
Trial Balance,Bilancio di verifica
Tuesday,Martedì
Tweet will be shared via your user account (if specified),Tweet sarà condiviso tramite il proprio account utente (se specificato)
Twitter Share,Twitter Condividi
Twitter Share via,Twitter Condividi via
Type,Tipo
Type of document to rename.,Tipo di documento da rinominare.
Type of employment master.,Tipo di maestro del lavoro.
"Type of leaves like casual, sick etc.","Tipo di foglie come casuale, malati ecc"
Types of Expense Claim.,Tipi di Nota Spese.
Types of activities for Time Sheets,Tipi di attività per i fogli Tempo
UOM,UOM
UOM Conversion Detail,UOM Dettaglio di conversione
UOM Conversion Details,UM Dettagli di conversione
UOM Conversion Factor,Fattore di Conversione UOM
UOM Conversion Factor is mandatory,Fattore di Conversione UOM è obbligatorio
UOM Details,UM Dettagli
UOM Name,UOM Nome
UOM Replace Utility,UOM Replace Utility
UPPER CASE,MAIUSCOLO
UPPERCASE,MAIUSCOLO
URL,URL
Unable to complete request: ,Impossibile completare la richiesta:
Under AMC,Sotto AMC
Under Graduate,Sotto Laurea
Under Warranty,Sotto Garanzia
Unit of Measure,Unità di misura
"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).","Unità di misura di questo oggetto (es. Kg, Unità, No, coppia)."
Units/Hour,Unità / Hour
Units/Shifts,Unità / turni
Unmatched Amount,Importo senza pari
Unpaid,Non pagata
Unread Messages,Messaggi non letti
Unscheduled,Non in programma
Unsubscribed,Sottoscritte
Upcoming Events for Today,Prossimi eventi di oggi
Update,Aggiornare
Update Clearance Date,Aggiornare Liquidazione Data
Update Field,Aggiorna campo
Update PR,Aggiornamento PR
Update Series,Update
Update Series Number,Aggiornamento Numero di Serie
Update Stock,Aggiornare Archivio
Update Stock should be checked.,Magazzino Update deve essere controllato.
Update Value,Aggiornamento del valore
"Update allocated amount in the above table and then click ""Allocate"" button",Aggiornamento dell&#39;importo stanziato nella precedente tabella e quindi fare clic su pulsante &quot;allocato&quot;
Update bank payment dates with journals.,Risale aggiornamento versamento bancario con riviste.
Update is in progress. This may take some time.,Aggiornamento è in corso. Questo potrebbe richiedere del tempo.
Updated,Aggiornato
Upload Attachment,Upload Attachment
Upload Attendance,Carica presenze
Upload Backups to Dropbox,Carica backup di Dropbox
Upload Backups to Google Drive,Carica backup di Google Drive
Upload HTML,Carica HTML
Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Carica un file csv con due colonne:. L&#39;antico nome e il nuovo nome. Max 500 righe.
Upload a file,Carica un file
Upload and Import,Carica e Importa
Upload attendance from a .csv file,Carica presenze da un file. Csv
Upload stock balance via csv.,Carica equilibrio magazzino tramite csv.
Uploading...,Caricamento ...
Upper Income,Reddito superiore
Urgent,Urgente
Use Multi-Level BOM,Utilizzare BOM Multi-Level
Use SSL,Usa SSL
User,Utente
User Cannot Create,L&#39;utente non può creare
User Cannot Search,L&#39;utente non può cercare
User ID,ID utente
User Image,Immagine Immagine
User Name,Nome Utente
User Remark,Osservazioni utenti
User Remark will be added to Auto Remark,Osservazioni utente verrà aggiunto al Remark Auto
User Tags,Tags utente
User Type,Tipo di utente
User must always select,L&#39;utente deve sempre selezionare
User not allowed entry in the Warehouse,Utente non consentito l&#39;ingresso nel magazzino
User not allowed to delete.,L&#39;utente non ha permesso di eliminare.
UserRole,UserRole
Username,Nome utente
Users who can approve a specific employee's leave applications,Gli utenti che possono approvare le richieste di congedo di un dipendente specifico
Users with this role are allowed to do / modify accounting entry before frozen date,Gli utenti con questo ruolo sono autorizzati a fare / modificare registrazione contabile prima della data congelato
Utilities,Utilità
Utility,Utility
Valid For Territories,Valido per i territori
Valid Upto,Valido Fino
Valid for Buying or Selling?,Valido per comprare o vendere?
Valid for Territories,Valido per Territori
Validate,Convalida
Valuation,Valorizzazione
Valuation Method,Metodo di valutazione
Valuation Rate,Valorizzazione Vota
Valuation and Total,Valutazione e Total
Value,Valore
Value missing for,Valore mancante per
Vehicle Dispatch Date,Veicolo Spedizione Data
Vehicle No,Veicolo No
Verdana,Verdana
Verified By,Verificato da
Visit,Visita
Visit report for maintenance call.,Visita rapporto per chiamata di manutenzione.
Voucher Detail No,Voucher Detail No
Voucher ID,ID Voucher
Voucher Import Tool,Voucher Strumento di importazione
Voucher No,Voucher No
Voucher Type,Voucher Tipo
Voucher Type and Date,Tipo di Voucher e Data
WIP Warehouse required before Submit,WIP Warehouse richiesto prima Submit
Waiting for Customer,In attesa di clienti
Walk In,Walk In
Warehouse,Magazzino
Warehouse Contact Info,Magazzino contatto
Warehouse Detail,Magazzino Dettaglio
Warehouse Name,Magazzino Nome
Warehouse User,Warehouse User
Warehouse Users,Warehouse Utenti
Warehouse and Reference,Magazzino e di riferimento
Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Warehouse può essere modificato solo tramite dell&#39;entrata Stock / DDT / ricevuta di acquisto
Warehouse cannot be changed for Serial No.,Magazzino non può essere modificato per Serial No.
Warehouse does not belong to Item,Warehouse non appartiene alla Voce
Warehouse does not belong to company.,Warehouse non appartiene alla società.
Warehouse where you are maintaining stock of rejected items,Magazzino dove si sta mantenendo magazzino di articoli rifiutati
Warehouse-Wise Stock Balance,Magazzino-saggio Stock Balance
Warehouse-wise Item Reorder,Magazzino-saggio Voce riordino
Warehouses,Magazzini
Warn,Avvisa
Warning,Attenzione
Warning: Leave application contains following block dates,Attenzione: Lascia applicazione contiene seguenti date di blocco
Warranty / AMC Details,Garanzia / AMC Dettagli
Warranty / AMC Status,Garanzia / AMC Stato
Warranty Expiry Date,Garanzia Data di scadenza
Warranty Period (Days),Periodo di garanzia (Giorni)
Warranty Period (in days),Periodo di garanzia (in giorni)
Web Content,Web Content
Web Page,Pagina Web
Website,Sito
Website Description,Descrizione del sito
Website Item Group,Sito Gruppo Articolo
Website Item Groups,Sito gruppi di articoli
Website Overall Settings,Sito Impostazioni generali
Website Script,Script Sito
Website Settings,Impostazioni Sito
Website Slideshow,Presentazione sito web
Website Slideshow Item,Sito Slideshow articolo
Website User,Website Utente
Website Warehouse,Magazzino sito web
Wednesday,Mercoledì
Weekly,Settimanale
Weekly Off,Settimanale Off
Weight UOM,Peso UOM
Weightage,Weightage
Weightage (%),Weightage (%)
Welcome,Benvenuto
"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.","Quando una qualsiasi delle operazioni controllate sono &quot;inviati&quot;, una e-mail a comparsa visualizzata automaticamente per inviare una e-mail agli associati &quot;Contatto&quot; in tale operazione, con la transazione come allegato. L&#39;utente può o non può inviare l&#39;e-mail."
"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.","Quando si <b>modifica</b> un documento dopo annullare e salvarlo, otterrà un nuovo numero, che è una versione del vecchio numero."
Where items are stored.,Dove gli elementi vengono memorizzati.
Where manufacturing operations are carried out.,Qualora le operazioni di produzione sono effettuate.
Widowed,Vedovo
Width,Larghezza
Will be calculated automatically when you enter the details,Vengono calcolati automaticamente quando si entra nei dettagli
Will be fetched from Customer,Viene prelevato da clienti
Will be updated after Sales Invoice is Submitted.,Saranno aggiornate dopo fattura di vendita sia presentata.
Will be updated when batched.,Verrà aggiornato quando dosati.
Will be updated when billed.,Verrà aggiornato quando fatturati.
Will be used in url (usually first name).,Saranno utilizzati in url (solitamente nome).
With Operations,Con operazioni
Work Details,Dettagli lavoro
Work Done,Attività svolta
Work In Progress,Work In Progress
Work-in-Progress Warehouse,Work-in-Progress Warehouse
Workflow,Flusso di lavoro
Workflow Action,Azione del flusso di lavoro
Workflow Action Master,Flusso di lavoro Azione Maestro
Workflow Action Name,Flusso di lavoro Nome Azione
Workflow Document State,Workflow di Stato Documento
Workflow Document States,Workflow Document Uniti
Workflow Name,Nome flusso di lavoro
Workflow State,Stato del flusso di lavoro
Workflow State Field,Flusso di lavoro di campo Stato
Workflow State Name,Flusso di lavoro Nome Stato
Workflow Transition,Transizione del flusso di lavoro
Workflow Transitions,Le transizioni di workflow
Workflow state represents the current state of a document.,Stato di workflow rappresenta lo stato corrente di un documento.
Workflow will start after saving.,Flusso di lavoro avrà inizio dopo il salvataggio.
Working,Lavoro
Workstation,Stazione di lavoro
Workstation Name,Nome workstation
Write,Scrivere
Write Off Account,Scrivi Off account
Write Off Amount,Scrivi Off Importo
Write Off Amount <=,Scrivi Off Importo &lt;=
Write Off Based On,Scrivi Off Basato Su
Write Off Cost Center,Scrivi Off Centro di costo
Write Off Outstanding Amount,Scrivi Off eccezionale Importo
Write Off Voucher,Scrivi Off Voucher
Write a Python file in the same folder where this is saved and return column and result.,Scrivere un file Python nella stessa cartella in cui questo viene salvato e colonna di ritorno e risultato.
Write a SELECT query. Note result is not paged (all data is sent in one go).,Scrivere una query SELECT. Nota risultato non è paging (tutti i dati vengono inviati in una sola volta).
Write sitemap.xml,Scrivi sitemap.xml
Write titles and introductions to your blog.,Scrivi i titoli e le introduzioni al tuo blog.
Writers Introduction,Scrittori Introduzione
Wrong Template: Unable to find head row.,Template Sbagliato: Impossibile trovare la linea di testa.
Year,Anno
Year Closed,Anno Chiuso
Year Name,Anno Nome
Year Start Date,Anno Data di inizio
Year of Passing,Anni dal superamento
Yearly,Annuale
Yes,Sì
Yesterday,Ieri
You are not authorized to do/modify back dated entries before ,Non sei autorizzato a fare / modificare indietro voci datate prima
You can enter any date manually,È possibile immettere qualsiasi data manualmente
You can enter the minimum quantity of this item to be ordered.,È possibile inserire la quantità minima di questo oggetto da ordinare.
You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,Non è possibile immettere sia Consegna Nota No e Fattura n \ Inserisci uno qualsiasi.
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.,È possibile impostare diversi &quot;proprietà&quot; di utenti di impostare i valori di default e di applicare le regole di autorizzazione in base al valore di queste proprietà in varie forme.
You can start by selecting backup frequency and \					granting access for sync,Si può iniziare selezionando la frequenza di backup e \ accesso concessione per la sincronizzazione
You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,È possibile utilizzare <a href='#Form/Customize Form'>Personalizza modulo</a> per impostare i livelli sui campi.
You may need to update: ,Potrebbe essere necessario aggiornare:
Your Customer's TAX registration numbers (if applicable) or any general information,FISCALI numeri di registrazione del vostro cliente (se applicabile) o qualsiasi informazione generale
"Your download is being built, this may take a few moments...","Il download è in costruzione, l&#39;operazione potrebbe richiedere alcuni minuti ..."
Your letter head content,Il tuo contenuto testa lettera
Your sales person who will contact the customer in future,Il vostro agente di commercio che si metterà in contatto il cliente in futuro
Your sales person who will contact the lead in future,Il vostro agente di commercio che si metterà in contatto l&#39;iniziativa in futuro
Your sales person will get a reminder on this date to contact the customer,Il rivenditore avrà un ricordo in questa data per contattare il cliente
Your sales person will get a reminder on this date to contact the lead,Il rivenditore avrà un ricordo in questa data per contattare il piombo
Your support email id - must be a valid email - this is where your emails will come!,Il vostro supporto e-mail id - deve essere un indirizzo email valido - questo è dove i vostri messaggi di posta elettronica verranno!
[Error],[Errore]
[Label]:[Field Type]/[Options]:[Width],[Label]: [Tipo di campo] / [Opzioni]: [Larghezza]
add your own CSS (careful!),aggiungere la tua CSS (attenzione!)
adjust,regolare
align-center,allineare-center
align-justify,allineamento giustificare
align-left,allineamento a sinistra
align-right,allineare a destra
also be included in Item's rate,anche essere incluso nel tasso di articolo
and,e
arrow-down,freccia verso il basso
arrow-left,freccia-sinistra
arrow-right,freccia-destra
arrow-up,freccia-up
assigned by,assegnato da
asterisk,asterisco
backward,indietro
ban-circle,ban-cerchio
barcode,codice a barre
bell,campana
bold,grassetto
book,libro
bookmark,segnalibro
briefcase,ventiquattrore
bullhorn,megafono
calendar,calendario
camera,fotocamera
cancel,annullare
cannot be 0, non può essere 0
cannot be empty,non può essere vuoto
cannot be greater than 100,non può essere maggiore di 100
cannot be included in Item's rate,non può essere incluso nel tasso di articolo
"cannot have a URL, because it has child item(s)","non può avere un URL, perché ha elemento figlio (s)"
cannot start with,non può iniziare con
certificate,certificato
check,controllare
chevron-down,chevron-down
chevron-left,chevron-sinistra
chevron-right,chevron-destra
chevron-up,chevron-up
circle-arrow-down,cerchio-freccia-giù
circle-arrow-left,cerchio-freccia-sinistra
circle-arrow-right,cerchio-freccia-destra
circle-arrow-up,cerchio-freccia-up
cog,COG
comment,commento
create a Custom Field of type Link (Profile) and then use the 'Condition' settings to map that field to the Permission rule.,Creare un campo personalizzato di tipo Link (profilo) e quindi utilizzare le impostazioni di &#39;condizione&#39; di mappare il campo per la regola di autorizzazione.
dd-mm-yyyy,gg-mm-aaaa
dd/mm/yyyy,gg / mm / aaaa
deactivate,disattivare
does not belong to BOM: ,non appartiene a BOM:
does not exist,non esiste
does not have role 'Leave Approver',non ha il ruolo &#39;Lascia Approvatore&#39;
does not match,non corrisponde
download,caricare
download-alt,download-alt
"e.g. Bank, Cash, Credit Card","per esempio bancario, contanti, carta di credito"
"e.g. Kg, Unit, Nos, m","ad esempio Kg, unità, nn, m"
edit,modificare
eg. Cheque Number,ad es. Numero Assegno
eject,espellere
english,inglese
envelope,busta
español,español
example: Next Day Shipping,esempio: Next Day spedizione
example: http://help.erpnext.com,Esempio: http://help.erpnext.com
exclamation-sign,esclamazione-sign
eye-close,occhio da vicino
eye-open,occhio-apertura
facetime-video,FaceTime-video
fast-backward,indietro veloce
fast-forward,fast-forward
file,File
film,pellicola
filter,filtrare
fire,fuoco
flag,bandiera
folder-close,cartella-close
folder-open,cartella-aprire
font,carattere
forward,inoltrare
français,français
fullscreen,fullscreen
gift,donazione
glass,vetro
globe,globo
hand-down,mano-down
hand-left,mano sinistra
hand-right,mano destra
hand-up,mano-up
has been entered atleast twice,è stato inserito atleast due volte
have a common territory,avere un territorio comune
have the same Barcode,avere lo stesso codice a barre
hdd,hdd
headphones,auricolare
heart,cuore
home,domestico
icon,icona
in,in
inbox,casella di posta
indent-left,trattino-sinistra
indent-right,trattino-destra
info-sign,Info-sign
is a cancelled Item,è un articolo cancellato
is linked in,è legata in
is not a Stock Item,Non è un Disponibile Articolo
is not allowed.,non è permesso.
italic,corsivo
leaf,foglia
lft,LFT
list,elenco
list-alt,list-alt
lock,bloccare
lowercase,minuscolo
magnet,magnete
map-marker,mappa-marcatore
minus,meno
minus-sign,segno meno
mm-dd-yyyy,gg-mm-aaaa
mm/dd/yyyy,gg / mm / aaaa
move,spostare
music,musica
must be one of,deve essere una delle
nederlands,Nederlands
not a purchase item,Non una voce di acquisto
not a sales item,Non una voce di vendite
not a service item.,Non una voce di servizio.
not a sub-contracted item.,Non una voce di subappalto.
not in,non in
not within Fiscal Year,non entro l&#39;anno fiscale
of,di
of type Link,Tipo di collegamento
off,spento
ok,ok
ok-circle,ok-cerchio
ok-sign,ok-sign
old_parent,old_parent
or,oppure
pause,pausa
pencil,matita
picture,immagine
plane,piano
play,giocare
play-circle,play-cerchio
plus,più
plus-sign,segno più
português,português
português brasileiro,Português Brasileiro
print,stampare
qrcode,QRCode
question-sign,domanda-sign
random,casuale
reached its end of life on,raggiunto la fine della vita sulla
refresh,aggiornamento
remove,rimuovere
remove-circle,remove-cerchio
remove-sign,rimuovere-sign
repeat,ripetizione
resize-full,resize-pieno
resize-horizontal,resize-orizzontale
resize-small,resize-small
resize-vertical,resize-verticale
retweet,rispondi
rgt,rgt
road,stradale
screenshot,screenshot
search,ricerca
share,Condividi
share-alt,share-alt
shopping-cart,shopping cart
should be 100%,dovrebbe essere 100%
signal,segnalare
star,stella
star-empty,star-vuoto
step-backward,passo indietro
step-forward,passo in avanti
stop,smettere
tag,tag
tags,tags
"target = ""_blank""",target = &quot;_blank&quot;
tasks,compiti
text-height,text-altezza
text-width,testo a larghezza
th,Th
th-large,th-grande
th-list,th-list
thumbs-down,pollice in giù
thumbs-up,pollice in su
time,volta
tint,tinta
to,a
"to be included in Item's rate, it is required that: ","da includere nel tasso di voce, è necessario che:"
trash,cestinare
upload,caricare
user,utente
user_image_show,user_image_show
values and dates,valori e le date
volume-down,volume-giù
volume-off,volume-off
volume-up,volume-up
warning-sign,avvertimento-sign
website page link,sito web link alla pagina
which is greater than sales order qty ,che è maggiore di vendite ordine qty
wrench,chiave
yyyy-mm-dd,aaaa-mm-gg
zoom-in,Zoom-in
zoom-out,zoom-out
=======
 (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,