 (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.
Packed 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
Messages greater than 160 characters will be split into multiple messages,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