 (Half Day), (Mezza Giornata)
 against sales order,contro l&#39;ordine di vendita
 against same operation, per la stessa operazione
 already marked, già avviato
 and year: ,e anno:
 as it is stock Item or packing item,in quanto è disponibile articolo o elemento dell&#39;imballaggio
 at warehouse: ,in magazzino:
 by Role ,per Ruolo
 can not be made., non può essere fatto.
 can not be marked as a ledger as it has existing child,non può essere contrassegnato come un libro mastro in quanto ha bambino esistente
 cannot be 0, non può essere 0
 cannot be deleted., non può essere eliminata.
 does not belong to the company, non appartiene alla società
 has already been submitted., già stato inviato.
 has been freezed. ,è stato congelato.
 has been freezed. \				Only Accounts Manager can do transaction against this account,è stato congelato. \ Solo Accounts Manager può fare un&#39;operazione contro questo account
" is less than equals to zero in the system, \						valuation rate is mandatory for this item","è inferiore uguale a zero nel sistema, \ tasso valutazione è obbligatoria per questo articolo"
 is mandatory, è obbligatorio
 is mandatory for GL Entry, è obbligatorio per GL Entry
 is not a ledger, non è un libro mastro
 is not active, non attivo
 is not set, non è impostato
 is now the default Fiscal Year. \			Please refresh your browser for the change to take effect.,è quello di default anno fiscale. \ Si prega di aggiornare il browser per la modifica abbia effetto.
 is present in one or many Active BOMs, è presente in una o più Di.Ba. attive
 not active or does not exists in the system, non attiva o non esiste nel sistema
 not submitted, non inviato
 or the BOM is cancelled or inactive, o la Di.Ba è rimossa o disattivata
 should be 'Yes'. As Item: ,dovrebbe essere &#39;sì&#39;. Come articolo:
 should be same as that in ,dovrebbe essere uguale a quello in
 was on leave on ,era in aspettativa per
 will be ,sarà
 will be over-billed against mentioned ,saranno oltre becco contro menzionato
 will become ,diventerà
"""Company History""",&quot;La storia della società&quot;
"""Team Members"" or ""Management""",&quot;Membri del team&quot; o &quot;gestione&quot;
%  Delivered,%  Consegnato
% Amount Billed,% Importo Fatturato
% Billed,% Fatturato
% Completed,% Completato
% Installed,% Installato
% Received,% Ricevuto
% of materials billed against this Purchase Order.,% di materiali fatturati su questo Ordine di Acquisto.
% of materials billed against this Sales Order,% di materiali fatturati su questo Ordine di Vendita
% of materials delivered against this Delivery Note,% dei materiali consegnati di questa Bolla di Consegna
% of materials delivered against this Sales Order,% dei materiali consegnati su questo Ordine di Vendita
% of materials ordered against this Material Request,% di materiali ordinati su questa Richiesta Materiale
% of materials received against this Purchase Order,di materiali ricevuti su questo Ordine di Acquisto
"' can not be managed using Stock Reconciliation.\					You can add/delete Serial No directly, \					to modify stock of this item.","&#39;Non possono essere gestiti con Archivio Riconciliazione. \ È possibile aggiungere / eliminare Serial No direttamente, \ da modificare stock di questo oggetto."
' in Company: ,&#39;In compagnia:
'To Case No.' cannot be less than 'From Case No.','A Case N.' non puo essere minore di 'Da Case N.'
* Will be calculated in the transaction.,'A Case N.' non puo essere minore di 'Da Case N.'
"**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.To distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**","Budget ** Distribuzione ** aiuta distribuire il budget tra mesi, se si dispone di stagionalità nella tua business.To distribuire un budget usando questa distribuzione, impostare questa ** Budget Distribuzione ** a ** Centro di costo **"
**Currency** Master,**Valuta** Principale
**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,**Anno fiscale** rappresenta un esercizio finanziario. Tutti i dati contabili e le altre principali operazioni sono tracciati per **anno fiscale**.
. Outstanding cannot be less than zero. \				 	Please match exact outstanding.,. Eccezionale non può essere inferiore a zero. \ Si prega di corrispondere esattamente eccezionale.
. Please set status of the employee as 'Left',. Si prega di impostare lo stato del dipendente a 'left'
. You can not mark his attendance as 'Present',. Non è possibile contrassegnare la sua partecipazione come 'Presente'
"000 is black, fff is white","000 è nero, fff è bianco"
1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent,"1 Valuta = FractionFor ad esempio, 1 USD = 100 Cent [?]"
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1.Per mantenere la voce codice cliente e renderli ricercabili in base al loro codice usare questa opzione
12px,12px
13px,13px
14px,14px
15px,15px
16px,16px
2 days ago,2 giorni fà
: Duplicate row from same ,: Duplica riga dalla stessa
: It is linked to other active BOM(s),: Linkato su un altra Di.Ba. attiva
: Mandatory for a Recurring Invoice.,: Obbligatorio per una Fattura Ricorrente
"<a href=""#!Sales Browser/Customer Group"">To manage Customer Groups, click here</a>","<a href=""#!Sales Browser/Customer Group"">Per gestire i gruppi di clienti, clicca qui</a>"
"<a href=""#!Sales Browser/Item Group"">Manage Item Groups</a>","<a href=""#!Sales Browser/Item Group"">Gestire Gruppi Articoli</a>"
"<a href=""#!Sales Browser/Territory"">To manage Territory, click here</a>","<a href=""#!Sales Browser/Territory"">Per gestire Territorio, clicca qui</a>"
"<a href=""#Sales Browser/Customer Group"">Manage Customer Groups</a>","<a href=""#Sales Browser/Customer Group"">Gestire Gruppi Committenti</a>"
"<a href=""#Sales Browser/Customer Group"">To manage Territory, click here</a>","<a href=""#Sales Browser/Customer Group"">Per gestire Territorio, clicca qui</a>"
"<a href=""#Sales Browser/Item Group"">Manage Item Groups</a>","<a href=""#Sales Browser/Item Group"">Gestire Gruppi Articoli</a>"
"<a href=""#Sales Browser/Territory"">Territory</a>","<a href=""#Sales Browser/Territory"">Territorio</a>"
"<a href=""#Sales Browser/Territory"">To manage Territory, click here</a>","<a href=""#Sales Browser/Territory"">Per gestire Territorio, clicca qui</a>"
"<a onclick=""msgprint('<ol>\<li><b>field:[fieldname]</b> - By Field\<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present\<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)\<li><b>Prompt</b> - Prompt user for a name\<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####\</ol>')"">Naming Options</a>","<a onclick=""msgprint('<ol>\<li><b>field:[fieldname]</b> - By Field\<li><b>naming_series:</b> - By Naming Series (field called naming_series must be present\<li><b>eval:[expression]</b> - Evaluate an expression in python (self is doc)\<li><b>Prompt</b> - Prompt user for a name\<li><b>[series]</b> - Series by prefix (separated by a dot); for example PRE.#####\</ol>')"">Opzioni di denominazione</a>"
<b>Cancel</b> allows you change Submitted documents by cancelling them and amending them.,<b>Annulla</b> consente di modificare i documenti inseriti cancellando o modificando.
"<span class=""sys_manager"">To setup, please go to Setup > Naming Series</span>","<span class=""sys_manager"">Per impostare, si prega di andare su Setup&gt; Serie Naming</span>"
A Customer exists with same name,Esiste un Cliente con lo stesso nome
A Lead with this email id should exist,Un Lead con questa e-mail dovrebbe esistere
"A Product or a Service that is bought, sold or kept in stock.","Un prodotto o un servizio che viene acquistato, venduto o tenuto in magazzino."
A Supplier exists with same name,Esiste un Fornitore con lo stesso nome
A condition for a Shipping Rule,Una condizione per una regola di trasporto
A logical Warehouse against which stock entries are made.,Un Deposito logica contro cui sono fatte le entrate nelle scorte.
A new popup will open that will ask you to select further conditions.,Si aprirà un popup che vi chiederà di selezionare ulteriori condizioni.
A symbol for this currency. For e.g. $,Un simbolo per questa valuta. Per esempio $
A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Un distributore di terzi / rivenditore / commissionario / affiliati / rivenditore che vende i prodotti di aziende per una commissione.
A user can have multiple values for a property.,Un utente può avere più valori per una proprietà.
A+,A+
A-,A-
AB+,AB +
AB-,AB-
AMC Expiry Date,AMC Data Scadenza
ATT,ATT
Abbr,Abbr
About,About
About Us Settings,Chi siamo Impostazioni
About Us Team Member,Chi Siamo Membri Team
Above Value,Sopra Valore
Absent,Assente
Acceptance Criteria,Criterio Accettazione
Accepted,Accettato
Accepted Quantity,Quantità Accettata
Accepted Warehouse,Magazzino Accettato
Account,Conto
Account Balance,Bilancio Conto
Account Details,Dettagli conto
Account Head,Conto Capo
Account Id,ID Conto
Account Name,Nome Conto
Account Type,Tipo Conto
Account for this ,Tenere conto di questo
Accounting,Contabilità
Accounting Year.,Contabilità Anno
"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Registrazione contabile congelato fino a questa data, nessuno può / Modifica voce eccetto ruolo specificato di seguito."
Accounting journal entries.,Diario scritture contabili.
Accounts,Conti
Accounts Frozen Upto,Conti congelati Fino
Accounts Payable,Conti pagabili
Accounts Receivable,Conti esigibili
Accounts Settings,Impostazioni Conti
Action,Azione
Active,Attivo
Active: Will extract emails from ,Attivo: Will estrarre le email da
Activity,Attività
Activity Log,Log Attività
Activity Type,Tipo Attività
Actual,Attuale
Actual Budget,Budget Attuale
Actual Completion Date,Data Completamento Attuale
Actual Date,Stato Corrente
Actual End Date,Attuale Data Fine
Actual Invoice Date,Actual Data fattura
Actual Posting Date,Data di registrazione effettiva
Actual Qty,Q.tà Reale
Actual Qty (at source/target),Q.tà Reale (sorgente/destinazione)
Actual Qty After Transaction,Q.tà Reale dopo la Transazione
Actual Quantity,Quantità Reale
Actual Start Date,Data Inizio Effettivo
Add,Aggiungi
Add / Edit Taxes and Charges,Aggiungere / Modificare Tasse e Costi
Add A New Rule,Aggiunge una nuova regola
Add A Property,Aggiungere una Proprietà
Add Attachments,Aggiungere Allegato
Add Bookmark,Aggiungere segnalibro
Add CSS,Aggiungere CSS
Add Column,Aggiungi colonna
Add Comment,Aggiungi commento
Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.,Aggiungere ID Google Analytics : es. UA-89XXX57-1. Cerca aiuto su Google Analytics per altre informazioni.
Add Message,Aggiungere Messaggio
Add New Permission Rule,Aggiungere Nuova Autorizzazione
Add Reply,Aggiungi risposta
Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template,Aggiungere Termine e Condizione per Richiesta Materiale. Puoi preparare Termini e Condizioni ed usarlo come Modello
Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.,Aggiungere Termine e Condizione per Ricevuta d'Acquisto. Puoi preparare Termini e Condizioni ed usarlo come Modello.
"Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template","Aggiungi Termini e Condizioni per la quotazione come termini di pagamento, validità dell'Offerta, ecc Si può anche preparare un Condizioni Master e utilizzare il Modello"
Add Total Row,Aggiungere Riga Totale
Add a banner to the site. (small banners are usually good),Aggiungi Banner al sito. (banner piccoli sono migliori)
Add attachment,Aggiungere Allegato
Add code as &lt;script&gt;,Aggiungi codice allo script
Add new row,Aggiungi Una Nuova Riga
Add or Deduct,Aggiungere o dedurre
Add rows to set annual budgets on Accounts.,Aggiungere righe per impostare i budget annuali sui conti.
"Add the name of <a href=""http://google.com/webfonts"" target=""_blank"">Google Web Font</a> e.g. ""Open Sans""","Aggiungi il nome <a href=""http://google.com/webfonts"" target=""_blank"">Google Web Font</a> e.g. ""Open Sans"""
Add to To Do,Aggiungi a Cose da Fare
Add to To Do List of,Aggiungi a lista Cose da Fare di
Add/Remove Recipients,Aggiungere/Rimuovere Destinatario
Additional Info,Informazioni aggiuntive
Address,Indirizzo
Address & Contact,Indirizzo e Contatto
Address & Contacts,Indirizzi & Contatti
Address Desc,Desc. indirizzo
Address Details,Dettagli dell'indirizzo
Address HTML,Indirizzo HTML
Address Line 1,"Indirizzo, riga 1"
Address Line 2,"Indirizzo, riga 2"
Address Title,Titolo indirizzo
Address Type,Tipo di indirizzo
Address and other legal information you may want to put in the footer.,Indirizzo e altre informazioni legali che si intende visualizzare nel piè di pagina.
Address to be displayed on the Contact Page,Indirizzo da visualizzare nella pagina Contatti
Adds a custom field to a DocType,Aggiungi campo personalizzato a DocType
Adds a custom script (client or server) to a DocType,Aggiungi Script personalizzato (client o server) al DocType
Advance Amount,Importo Anticipo
Advance amount,Importo anticipo
Advanced Scripting,Scripting Avanzato
Advanced Settings,Impostazioni Avanzate
Advances,Avanzamenti
Advertisement,Pubblicità
After Sale Installations,Installazioni Post Vendita
Against,Previsione
Against Account,Previsione Conto
Against Docname,Per Nome Doc
Against Doctype,Per Doctype
Against Document Date,Per Data Documento
Against Document Detail No,Per Dettagli Documento N
Against Document No,Per Documento N
Against Expense Account,Per Spesa Conto
Against Income Account,Per Reddito Conto
Against Journal Voucher,Per Buono Acquisto
Against Purchase Invoice,Per Fattura Acquisto
Against Sales Invoice,Per Fattura Vendita
Against Voucher,Per Tagliando
Against Voucher Type,Per tipo Tagliando
Agent,Agente
"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials","Gruppo aggregato di elementi ** ** ** in un altro articolo. ** Questo è utile se in fase di installazione di un certo ** Articoli ** in un pacchetto e si mantiene magazzino delle confezionati ** Voci ** e non l&#39;aggregato ** articolo. ** Il pacchetto ** Voce ** avrà &quot;è Stock Item&quot; come &quot;No&quot; e &quot;Is Voce di vendita&quot; come &quot;Sì&quot;, per esempio:. Se metti in vendita computer portatili e zaini separatamente e dispone di un prezzo speciale se il cliente acquista sia , quindi il computer portatile + Zaino sarà una nuova Vendite BOM Item.Note: BOM = Distinta materiali"
Aging Date,Data invecchiamento
All Addresses.,Tutti gli indirizzi.
All Contact,Tutti i contatti
All Contacts.,Tutti i contatti.
All Customer Contact,Tutti Contatti Clienti
All Day,Intera giornata
All Employee (Active),Tutti Dipendenti (Attivi)
All Lead (Open),Tutti LEAD (Aperto)
All Products or Services.,Tutti i Prodotti o Servizi.
All Sales Partner Contact,Tutte i contatti Partner vendite
All Sales Person,Tutti i Venditori
All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,Tutte le operazioni di vendita possono essere taggati per più **Venditori** in modo che è possibile impostare e monitorare gli obiettivi.
All Supplier Contact,Tutti i Contatti Fornitori
"All account columns should be after \							standard columns and on the right.							If you entered it properly, next probable reason \							could be wrong account name.							Please rectify it in the file and try again.","Tutte le colonne di conto dovrebbe essere dopo \ colonne standard e sulla destra. Se è stato inserito correttamente, il prossimo probabile ragione \ potrebbe essere nome account sbagliato. Si prega di rettificare nel file e riprovare."
"All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.","Tutti i campi correlati esportazione come moneta, tasso di conversione, totale delle esportazioni, l&#39;esportazione totale generale ecc sono disponibili in <br> Bolla di consegna, POS, Quotation, fattura di vendita, ordini di vendita, ecc"
"All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.","Tutti i campi correlati di importazione come la moneta, tasso di conversione, totale di importazione, import totale generale ecc sono disponibili in <br> Acquisto Ricevuta, Quotazione Fornitore, Fattura di Acquisto, ordine di acquisto, ecc"
All items have already been transferred \				for this Production Order.,Tutti gli articoli sono già stati trasferiti \ per questo ordine di produzione.
"All possible Workflow States and roles of the workflow. <br>Docstatus Options: 0 is""Saved"", 1 is ""Submitted"" and 2 is ""Cancelled""","Tutti i possibili stati del flusso di lavoro e ruoli del flusso di lavoro. <br> Docstatus Opzioni: 0 è &quot;salvato&quot;, 1 è &quot;sottoposto&quot; e 2 è &quot;Annullato&quot;"
All posts by,Tutti i messaggi di
Allocate,Assegna
Allocate leaves for the year.,Assegnare le foglie per l' anno.
Allocated Amount,Assegna Importo
Allocated Budget,Assegna Budget
Allocated amount,Assegna importo
Allow Attach,Consentire Allegati
Allow Bill of Materials,Consentire Distinta di Base
Allow Dropbox Access,Consentire Accesso DropBox
Allow Editing of Frozen Accounts For,Consenti Modifica Account Congelati per
Allow Google Drive Access,Consentire Accesso Google Drive
Allow Import,Consentire Importa
Allow Import via Data Import Tool,Consentire Import tramite Strumento Importazione Dati
Allow Negative Balance,Consentire Bilancio Negativo
Allow Negative Stock,Consentire Magazzino Negativo
Allow Production Order,Consentire Ordine Produzione
Allow Rename,Consentire Rinominare
Allow Samples,Consentire Esempio
Allow User,Consentire Utente
Allow Users,Consentire Utenti
Allow on Submit,Consentire su Invio
Allow the following users to approve Leave Applications for block days.,Consentire i seguenti utenti per approvare le richieste per i giorni di blocco.
Allow user to edit Price List Rate in transactions,Consenti all&#39;utente di modificare Listino cambio nelle transazioni
Allow user to login only after this hour (0-24),Consentire Login Utente solo dopo questo orario (0-24)
Allow user to login only before this hour (0-24),Consentire Login Utente solo prima di questo orario (0-24)
Allowance Percent,Tolleranza Percentuale
Allowed,Consenti
Already Registered,Già Registrato
Always use Login Id as sender,Usa sempre ID Login come mittente
Amend,Correggi
Amended From,Corretto da
Amount,Importo
Amount (Company Currency),Importo (Valuta Azienda)
Amount <=,Importo <=
Amount >=,Importo >=
"An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]","Icona con estensione .ico. 16 x 16 px. Genera con favicon generator. [<a href=""http://favicon-generator.org/"" target=""_blank"">favicon-generator.org</a>]"
Analytics,Analytics
Another Salary Structure '%s' is active for employee '%s'. 				Please make its status 'Inactive' to proceed.,"Un&#39;altra struttura di stipendio &#39;% s&#39; è attivo per dipendente &#39;% s&#39;. Fare il suo status di &#39;inattivo&#39; di procedere, per favore."
"Any other comments, noteworthy effort that should go in the records.","Altre osservazioni, degno di nota lo sforzo che dovrebbe andare nei registri."
Applicable Holiday List,Lista Vacanze Applicabile
Applicable To (Designation),Applicabile a (Designazione)
Applicable To (Employee),Applicabile a (Dipendente)
Applicable To (Role),Applicabile a (Ruolo)
Applicable To (User),Applicabile a (Utente)
Applicant Name,Nome del Richiedente
Applicant for a Job,Richiedente per Lavoro
Applicant for a Job.,Richiedente per Lavoro.
Applications for leave.,Richieste di Ferie
Applies to Company,Applica ad Azienda
Apply / Approve Leaves,Applica / Approvare Ferie
Apply Shipping Rule,Applica Regole Spedizione
Apply Taxes and Charges Master,Applicare tasse e le spese master
Appraisal,Valutazione
Appraisal Goal,Obiettivo di Valutazione
Appraisal Goals,Obiettivi di Valutazione
Appraisal Template,Valutazione Modello
Appraisal Template Goal,Valutazione Modello Obiettivo
Appraisal Template Title,Valutazione Titolo Modello
Approval Status,Stato Approvazione
Approved,Approvato
Approver,Certificatore
Approving Role,Regola Approvazione
Approving User,Utente Certificatore
Are you sure you want to delete the attachment?,Eliminare Veramente questo Allegato?
Arial,Arial
Arrear Amount,Importo posticipata
"As a best practice, do not assign the same set of permission rule to different Roles instead set multiple Roles to the User",Una buona idea sarebbe non assegnare le stesse autorizzazioni a differenti ruoli delo stesso utente
As existing qty for item: ,Per quanto qty esistente per la voce:
As per Stock UOM,Per Stock UOM
"As there are existing stock transactions for this \							item, you can not change the values of 'Has Serial No', \							'Is Stock Item' and 'Valuation Method'","Poiché non vi sono operazioni di magazzino esistenti per questa voce \, non è possibile modificare i valori di &#39;Ha Serial No&#39;, \ &#39;è Stock articolo&#39; e &#39;Metodo di Valutazione&#39;"
Ascending,Crescente
Assign To,Assegna a
Assigned By,Assegnato da
Assignment,Assegnazione
Assignments,Assegnazioni
Associate a DocType to the Print Format,Associare un DOCTYPE per il formato di stampa
Atleast one warehouse is mandatory,Almeno un Magazzino è obbligatorio
Attach,Allega
Attach Document Print,Allega documento Stampa
Attached To DocType,Allega aDocType
Attached To Name,Allega a Nome
Attachment,Allegato
Attachments,Allegati
Attempted to Contact,Tentativo di Contatto
Attendance,Presenze
Attendance Date,Data Presenza
Attendance Details,Dettagli presenze
Attendance From Date,Partecipazione Da Data
Attendance To Date,Partecipazione a Data
Attendance can not be marked for future dates,La Presenza non può essere inserita nel futuro
Attendance for the employee: ,La frequenza per il dipendente:
Attendance record.,Archivio Presenze
Attributions,Attribuzione
Authorization Control,Controllo Autorizzazioni
Authorization Rule,Ruolo Autorizzazione
Auto Email Id,Email ID Auto
Auto Inventory Accounting,Inventario Contabilità Auto
Auto Inventory Accounting Settings,Inventario Contabilità Impostazioni Auto
Auto Material Request,Richiesta Materiale Auto
Auto Name,Nome Auto
Auto generated,Auto generato
Auto-raise Material Request if quantity goes below re-order level in a warehouse,Auto aumenta Materiale Richiesta se la quantità scende sotto il livello di riordino in un magazzino
Automatically updated via Stock Entry of type Manufacture/Repack,Aggiornato automaticamente via Archivio Entrata di tipo Produzione / Repack
Autoreply when a new mail is received,Auto-Rispondi quando si riceve una nuova mail
Available,Disponibile
Available Qty at Warehouse,Quantità Disponibile a magazzino
Available Stock for Packing Items,Disponibile Magazzino per imballaggio elementi
"Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet","Disponibile in BOM, DDT, fatture di acquisto, ordine di produzione, ordini di acquisto, di acquisto ricevuta, fattura di vendita, ordini di vendita, Stock Entry, scheda attività"
Avatar,Avatar
Average Discount,Sconto Medio
B+,B+
B-,B-
BILL,BILL
BILLJ,BILLJ
BOM,DIBA
BOM Detail No,DIBA Dettagli N.
BOM Explosion Item,DIBA Articolo Esploso
BOM Item,DIBA Articolo
BOM No,N. DiBa
BOM No. for a Finished Good Item,DiBa N. per un buon articolo finito
BOM Operation,DiBa Operazione
BOM Operations,DiBa Operazioni
BOM Replace Tool,DiBa Sostituire Strumento
BOM replaced,DiBa Sostituire
Background Color,Colore Sfondo
Background Image,Immagine Sfondo
Backup Manager,Gestione Backup
Backup Right Now,Backup ORA
Backups will be uploaded to,Backup verranno caricati su
"Balances of Accounts of type ""Bank or Cash""","Bilancio Conti del tipo ""Banca o Moneta"""
Bank,Banca
Bank A/C No.,Bank A/C No.
Bank Account,Conto Banca
Bank Account No.,Conto Banca N.
Bank Clearance Summary,Sintesi Liquidazione Banca
Bank Name,Nome Banca
Bank Reconciliation,Conciliazione Banca
Bank Reconciliation Detail,Dettaglio Riconciliazione Banca
Bank Reconciliation Statement,Prospetto di Riconciliazione Banca
Bank Voucher,Buono Banca
Bank or Cash,Banca o Contante
Bank/Cash Balance,Banca/Contanti Saldo
Banner,Banner
Banner HTML,Banner HTML
Banner Image,Immagine Banner
Banner is above the Top Menu Bar.,Il Banner è sopra la Barra Menu Top
Barcode,Codice a barre
Based On,Basato su
Basic Info,Info Base
Basic Information,Informazioni di Base
Basic Rate,Tasso Base
Basic Rate (Company Currency),Tasso Base (Valuta Azienda)
Batch,Lotto
Batch (lot) of an Item.,Lotto di un articolo
Batch Finished Date,Data Termine Lotto
Batch ID,ID Lotto
Batch No,Lotto N.
Batch Started Date,Data inizio Lotto
Batch Time Logs for Billing.,Registra Tempo Lotto per Fatturazione.
Batch Time Logs for billing.,Registra Tempo Lotto per fatturazione.
Batch-Wise Balance History,Cronologia Bilanciamento Lotti-Wise
Batched for Billing,Raggruppati per la Fatturazione
Be the first one to comment,Commenta per primo
Begin this page with a slideshow of images,Inizia la pagina con una slideshow di immagini
Better Prospects,Prospettive Migliori
Bill Date,Data Fattura
Bill No,Fattura N.
Bill of Material to be considered for manufacturing,Elenco dei materiali da considerare per la produzione
Bill of Materials,Distinta Materiali
Bill of Materials (BOM),Distinta Materiali (DiBa)
Billable,Addebitabile
Billed,Addebbitato
Billed Amt,Adebbitato Amt
Billing,Fatturazione
Billing Address,Indirizzo Fatturazione
Billing Address Name,Nome Indirizzo Fatturazione
Billing Status,Stato Faturazione
Bills raised by Suppliers.,Fatture sollevate dai fornitori.
Bills raised to Customers.,Fatture sollevate dai Clienti.
Bin,Bin
Bio,Bio
Bio will be displayed in blog section etc.,Bio verrà inserita nella sezione blog etc.
Birth Date,Data di Nascita
Birthday,Compleanno
Blob,Blob
Block Date,Data Blocco
Block Days,Giorno Blocco
Block Holidays on important days.,Blocco Vacanze in giorni importanti
Block leave applications by department.,Blocco domande uscita da ufficio.
Blog Category,Categoria Blog
Blog Intro,Intro Blog
Blog Introduction,Introduzione Blog
Blog Post,Articolo Blog
Blog Settings,Impostazioni Blog
Blog Subscriber,Abbonati Blog
Blog Title,Titolo Blog
Blogger,Blogger
Blood Group,Gruppo Discendenza
Bookmarks,Segnalibri
Branch,Ramo
Brand,Marca
Brand HTML,Marca HTML
Brand Name,Nome Marca
"Brand is what appears on the top-right of the toolbar. If it is an image, make sure ithas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px","Marca è ciò che appare in alto a destra della barra degli strumenti. Se si tratta di un&#39;immagine, accertarsi che ithas uno sfondo trasparente e utilizzare il tag &lt;img /&gt;. Mantenere dimensioni 200px x 30px"
Brand master.,Marchio Originale.
Brands,Marche
Breakdown,Esaurimento
Budget,Budget
Budget Allocated,Budget Assegnato
Budget Control,Controllo Budget
Budget Detail,Dettaglio Budget
Budget Details,Dettaglii Budget
Budget Distribution,Distribuzione Budget
Budget Distribution Detail,Dettaglio Distribuzione Budget
Budget Distribution Details,Dettagli Distribuzione Budget
Budget Variance Report,Report Variazione Budget
Build Modules,Genera moduli
Build Pages,Genera Pagine
Build Server API,Genera Server API
Build Sitemap,Genera Sitemap
Bulk Email,Email di Massa
Bulk Email records.,Registra Email di Massa
Bummer! There are more holidays than working days this month.,Disdetta! Ci sono più vacanze di giorni lavorativi del mese.
Bundle items at time of sale.,Articoli Combinati e tempi di vendita.
Button,Pulsante
Buyer of Goods and Services.,Durante l'acquisto di beni e servizi.
Buying,Acquisto
Buying Amount,Importo Acquisto
Buying Settings,Impostazioni Acquisto
By,By
C-FORM/,C-FORM/
C-Form,C-Form
C-Form Applicable,C-Form Applicable
C-Form Invoice Detail,C-Form Detagli Fattura
C-Form No,C-Form N.
CI/2010-2011/,CI/2010-2011/
COMM-,COMM-
CSS,CSS
CUST,CUST
CUSTMUM,CUSTMUM
Calculate Based On,Calcola in base a
Calculate Total Score,Calcolare il punteggio totale
Calendar,Calendario
Calendar Events,Eventi del calendario
Call,Chiama
Campaign,Campagna
Campaign Name,Nome Campagna
Can only be exported by users with role 'Report Manager',Può essere esportata slo da utenti con ruolo 'Report Manager'
Cancel,Annulla
Cancel permission also allows the user to delete a document (if it is not linked to any other document).,Annulla permessi abiliti utente ad eliminare un documento (se non è collegato a nessun altro documento).
Cancelled,Annullato
Cannot ,Impossibile
Cannot approve leave as you are not authorized to approve leaves on Block Dates.,Non può approvare lasciare come non si è autorizzati ad approvare le ferie sulle date di blocco.
Cannot change from,Non è possibile cambiare da
Cannot continue.,Non è possibile continuare.
"Cannot delete Serial No in warehouse. First remove from warehouse, then delete.","Impossibile eliminare Serial No in magazzino. Innanzitutto rimuovere dal magazzino, quindi eliminare."
Cannot edit standard fields,Non è possibile modificare i campi standard
Cannot have two prices for same Price List,Non può avere due prezzi per lo stesso Listino Prezzi
Cannot map because following condition fails: ,Impossibile mappare perché seguente condizione fallisce:
Capacity,Capacità
Capacity Units,Unità Capacità
Carry Forward,Portare Avanti
Carry Forwarded Leaves,Portare Avanti Autorizzazione
Case No(s) already in use. Please rectify and try again.				Recommended <b>From Case No. = %s</b>,Caso n (s) già in uso. Si prega di correggere e riprovare. Raccomandato <b>Da =% sentenza n s</b>
Cash,Contante
Cash Voucher,Buono Contanti
Cash/Bank Account,Conto Contanti/Banca
Categorize blog posts.,Categorizzare i post sul blog.
Category,Categoria
Category Name,Nome Categoria
Category of customer as entered in Customer master,Categoria del cliente come inserita in master clienti
Cell Number,Numero di Telefono
Center,Centro
"Certain documents should not be changed once final, like an Invoice for example. The final state for such documents is called <b>Submitted</b>. You can restrict which roles can Submit.","Alcuni documenti non devono essere modificati una volta definiti, come una fattura, per esempio. Lo stato finale di tali documenti è chiamato <b>Inserito</b>. È possibile limitare quali ruoli possono Inviare."
Change UOM for an Item.,Cambia UOM per l'articolo.
Change the starting / current sequence number of an existing series.,Cambia l'inizio/numero sequenza corrente per una serie esistente
Channel Partner,Canale Partner
Charge,Addebitare
Chargeable,Addebitabile
Chart of Accounts,Grafico dei Conti
Chart of Cost Centers,Grafico Centro di Costo
Chat,Chat
Check,Seleziona
Check / Uncheck roles assigned to the Profile. Click on the Role to find out what permissions that Role has.,Seleziona / Deseleziona ruoli assegnati al profilo. Fare clic sul ruolo per scoprire quali autorizzazioni  ha il ruolo.
Check all the items below that you want to send in this digest.,Controllare tutti gli elementi qui di seguito che si desidera inviare in questo digest.
Check how the newsletter looks in an email by sending it to your email.,Verificare come la newsletter si vede in una e-mail inviandola alla tua e-mail.
"Check if recurring invoice, uncheck to stop recurring or put proper End Date","Seleziona se fattura ricorrente, deseleziona per fermare ricorrenti o mettere corretta Data di Fine"
"Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.","Seleziona se necessiti di fattura ricorrente periodica. Dopo aver inserito ogni fattura vendita, la sezione Ricorrenza diventa visibile."
Check if you want to send salary slip in mail to each employee while submitting salary slip,"Seleziona se si desidera inviare busta paga in posta a ciascun dipendente, mentre la presentazione foglio paga"
Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Seleziona se vuoi forzare l'utente a selezionare una serie prima di salvare. Altrimenti sarà NO di default.
Check this if you want to send emails as this id only (in case of restriction by your email provider).,Seleziona se vuoi inviare mail solo con questo ID (in caso di restrizione dal provider di posta elettronica).
Check this if you want to show in website,Seleziona se vuoi mostrare nel sito
Check this to disallow fractions. (for Nos),Seleziona per disabilitare frazioni. (per NOS)
Check this to make this the default letter head in all prints,Seleziona per usare questa intestazione in tutte le stampe
Check this to pull emails from your mailbox,Seleziona per scaricare la posta dal tuo account
Check to activate,Seleziona per attivare
Check to make Shipping Address,Seleziona per fare Spedizione Indirizzo
Check to make primary address,Seleziona per impostare indirizzo principale
Checked,Selezionato
Cheque,Assegno
Cheque Date,Data Assegno
Cheque Number,Controllo Numero
Child Tables are shown as a Grid in other DocTypes.,Tabelle figlio sono mostrati come una griglia in altre DOCTYPE.
City,Città
City/Town,Città/Paese
Claim Amount,Importo Reclamo
Claims for company expense.,Reclami per spese dell'azienda.
Class / Percentage,Classe / Percentuale
Classic,Classico
Classification of Customers by region,Classificazione Clienti per Regione
Clear Cache & Refresh,Cancella cache & Ricarica
Clear Table,Pulisci Tabella
Clearance Date,Data Liquidazione
"Click on ""Get Latest Updates""","Clicca su ""Aggiornamento"""
Click on 'Make Sales Invoice' button to create a new Sales Invoice.,Clicca sul pulsante 'Crea Fattura Vendita' per creare una nuova Fattura di Vendita
Click on button in the 'Condition' column and select the option 'User is the creator of the document',Clicca sul pulsante nella colonna 'Condizioni' e seleziona 'Utente ha creato il documento'
Click to Expand / Collapse,Clicca per Espandere / Comprimere
Client,Intestatario
Close,Chiudi
Closed,Chiuso
Closing Account Head,Chiudere Conto Primario
Closing Date,Data Chiusura
Closing Fiscal Year,Chiusura Anno Fiscale
CoA Help,Aiuto CoA
Code,Codice
Cold Calling,Chiamata Fredda
Color,Colore
Column Break,Interruzione Colonna
Comma separated list of email addresses,Lista separata da virgola degli indirizzi email
Comment,Commento
Comment By,Commentato da
Comment By Fullname,Commento di Nome Completo
Comment Date,Data commento
Comment Docname,Commento Docname
Comment Doctype,Commento Doctype
Comment Time,Tempo Commento
Comments,Commenti
Commission Rate,Tasso Commissione
Commission Rate (%),Tasso Commissione (%)
Commission partners and targets,Commissione Partner  Obiettivi
Communication,Comunicazione
Communication HTML,Comunicazione HTML
Communication History,Storico Comunicazioni
Communication Medium,Mezzo di comunicazione
Communication log.,Log comunicazione
Company,Azienda
Company Details,Dettagli Azienda
Company History,Storico Azienda
Company History Heading,Cronologia Azienda Principale
Company Info,Info Azienda
Company Introduction,Introduzione Azienda
Company Master.,Propritario Azienda.
Company Name,Nome Azienda
Company Settings,Impostazioni Azienda
Company branches.,Rami Azienda.
Company departments.,Dipartimento dell'Azienda.
Company is missing or entered incorrect value,Azienda non esistente o valori inseriti errati
Company mismatch for Warehouse,Discordanza Azienda per Magazzino
Company registration numbers for your reference. Example: VAT Registration Numbers etc.,"Numeri di registrazione dell'azienda per il vostro riferimento. Esempio: IVA numeri di registrazione, ecc"
Company registration numbers for your reference. Tax numbers etc.,"Numeri di registrazione dell'azienda per il vostro riferimento. numero Tassa, ecc"
Complaint,Reclamo
Complete,Completare
Complete By,Completato da
Completed,Completato
Completed Production Orders,Completati gli ordini di produzione
Completed Qty,Q.tà Completata
Completion Date,Data Completamento
Completion Status,Stato Completamento
Confirmed orders from Customers.,Ordini Confermati da Clienti.
Consider Tax or Charge for,Cnsidera Tasse o Cambio per
"Consider this Price List for fetching rate. (only which have ""For Buying"" as checked)","Considerate questo Listino Prezzi per andare a prendere velocità. (solo che sono ""per l'acquisto di"" come segno di spunta)"
Considered as Opening Balance,Considerato come Apertura Saldo
Considered as an Opening Balance,Considerato come Apertura Saldo
Consultant,Consulente
Consumed Qty,Q.tà Consumata
Contact,Contatto
Contact Control,Controllo Contatto
Contact Desc,Desc Contatto
Contact Details,Dettagli Contatto
Contact Email,Email Contatto
Contact HTML,Contatto HTML
Contact Info,Info Contatto
Contact Mobile No,Cellulare Contatto
Contact Name,Nome Contatto
Contact No.,Contatto N.
Contact Person,Persona Contatto
Contact Type,Tipo Contatto
Contact Us Settings,Impostazioni Contattaci
Contact in Future,Contatta in Futuro
"Contact options, like ""Sales Query, Support Query"" etc each on a new line or separated by commas.","Opzioni di contatto, come &quot;Query vendite, il supporto delle query&quot;, ecc ciascuno su una nuova riga o separati da virgole."
Contacted,Contattato
Content,Contenuto
Content Type,Tipo Contenuto
Content in markdown format that appears on the main side of your page,Contenuto sottolineato che appare sul lato principale della pagina
Content web page.,Contenuto Pagina Web.
Contra Voucher,Contra Voucher
Contract End Date,Data fine Contratto
Contribution (%),Contributo (%)
Contribution to Net Total,Contributo sul totale netto
Control Panel,Pannello di Controllo
Conversion Factor,Fattore di Conversione
Conversion Rate,Tasso di Conversione
Convert into Recurring Invoice,Convertire in fattura ricorrente
Converted,Convertito
Copy,Copia
Copy From Item Group,Copiare da elemento Gruppo
Copyright,Copyright
Core,Core
Cost Center,Centro di Costo
Cost Center Details,Dettaglio Centro di Costo
Cost Center Name,Nome Centro di Costo
Cost Center is mandatory for item: ,Centro di costo è obbligatorio per oggetto:
Cost Center must be specified for PL Account: ,Centro di costo deve essere specificato per Conto PL:
Costing,Valutazione Costi
Country,Nazione
Country Name,Nome Nazione
Create,Crea
Create Bank Voucher for the total salary paid for the above selected criteria,Crea Buono Bancario per il totale dello stipendio da pagare per i seguenti criteri
Create Material Requests,Creare Richieste Materiale
Create Production Orders,Crea Ordine Prodotto
Create Receiver List,Crea Elenco Ricezione
Create Salary Slip,Creare busta paga
Create Stock Ledger Entries when you submit a Sales Invoice,Creare scorta voci registro quando inserisci una fattura vendita
"Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.","Creare un listino prezzi da Listino master e digitare tassi rif standard per ciascuno di essi. Sulla scelta di un listino prezzi in offerta, ordine di vendita o bolla di consegna, corrispondente tasso rif viene prelevato per questo articolo."
Create and Send Newsletters,Crea e Invia Newsletter
Created Account Head: ,Creato Account Responsabile:
Created By,Creato da
Created Customer Issue,Creata Richiesta Cliente
Created Group ,Gruppo creato
Created Opportunity,Opportunità Creata
Created Support Ticket,Crea Ticket Assistenza
Creates salary slip for above mentioned criteria.,Crea busta paga per i criteri sopra menzionati.
Creation Date,Data di creazione
Creation Document No,Creazione di documenti No
Creation Document Type,Creazione tipo di documento
Creation Time,Tempo di creazione
Credentials,Credenziali
Credit,Credit
Credit Amt,Credit Amt
Credit Card Voucher,Carta Buono di credito
Credit Controller,Controllare Credito
Credit Days,Giorni Credito
Credit Limit,Limite Credito
Credit Note,Nota Credito
Credit To,Credito a
Cross Listing of Item in multiple groups,Attraversare Elenco di Articolo in più gruppi
Currency,Valuta
Currency Exchange,Cambio Valuta
Currency Format,Formato Valuta
Currency Name,Nome Valuta
Currency Settings,Impostazioni Valuta
Currency and Price List,Valuta e Lista Prezzi
Currency does not match Price List Currency for Price List,Valuta non corrisponde a Valuta Lista Prezzi per Lista Prezzi
Current Accommodation Type,Tipo di Alloggio Corrente
Current Address,Indirizzo Corrente
Current BOM,DiBa Corrente
Current Fiscal Year,Anno Fiscale Corrente
Current Stock,Scorta Corrente
Current Stock UOM,Scorta Corrente UOM
Current Value,Valore Corrente
Current status,Stato Corrente
Custom,Personalizzato
Custom Autoreply Message,Auto rispondi Messaggio Personalizzato
Custom CSS,CSS Personalizzato
Custom Field,Campo Personalizzato
Custom Message,Messaggio Personalizzato
Custom Reports,Report Personalizzato
Custom Script,Script Personalizzato
Custom Startup Code,Codice Avvio Personalizzato
Custom?,Personalizzato?
Customer,Cliente
Customer (Receivable) Account,Cliente (Ricevibile) Account
Customer / Item Name,Cliente / Nome voce
Customer Account Head,Conto Cliente Principale
Customer Address,Indirizzo Cliente
Customer Addresses And Contacts,Indirizzi e Contatti Cliente
Customer Code,Codice Cliente
Customer Codes,Codici Cliente
Customer Details,Dettagli Cliente
Customer Discount,Sconto Cliente
Customer Discounts,Sconti Cliente
Customer Feedback,Opinione Cliente
Customer Group,Gruppo Cliente
Customer Group Name,Nome Gruppo Cliente
Customer Intro,Intro Cliente
Customer Issue,Questione Cliente
Customer Issue against Serial No.,Questione Cliente per Seriale N.
Customer Name,Nome Cliente
Customer Naming By,Cliente nominato di
Customer Type,Tipo Cliente
Customer classification tree.,Albero classificazione Cliente
Customer database.,Database Cliente.
Customer's Currency,Valuta Cliente
Customer's Item Code,Codice elemento Cliente
Customer's Purchase Order Date,Data ordine acquisto Cliente
Customer's Purchase Order No,Ordine Acquisto Cliente N.
Customer's Vendor,Fornitore del Cliente
Customer's currency,Valuta del Cliente
"Customer's currency - If you want to select a currency that is not the default currency, then you must also specify the Currency Conversion Rate.","Valuta del cliente - Se si desidera selezionare una valuta che non è la valuta di default, allora è necessario specificare anche il tasso di conversione di valuta."
Customers Not Buying Since Long Time,Clienti non acquisto da molto tempo
Customerwise Discount,Sconto Cliente saggio
Customize,Personalizza
Customize Form,Personalizzare modulo
Customize Form Field,Personalizzare Campo modulo
"Customize Label, Print Hide, Default etc.","Personalizzare Etichetta,Nascondere Stampa, predefinito etc."
Customize the Notification,Personalizzare Notifica
Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Personalizza testo di introduzione che andrà nell'email. Ogni transazione ha un introduzione distinta.
DN,DN
DN Detail,Dettaglio DN
Daily,Giornaliero
Daily Event Digest is sent for Calendar Events where reminders are set.,Coda di Evento Giornaliero è inviato per Eventi del calendario quando è impostata la notifica.
Daily Time Log Summary,Registro Giornaliero Tempo
Danger,Pericoloso
Data,Data
Data missing in table,Dati Mancanti nella tabella
Database,Database
Database Folder ID,ID Cartella Database
Database of potential customers.,Database Potenziali Clienti.
Date,Data
Date Format,Formato Data
Date Of Retirement,Data di Ritiro
Date and Number Settings,Impostazioni Data e Numeri
Date is repeated,La Data si Ripete
Date must be in format,Data nel formato
Date of Birth,Data Compleanno
Date of Issue,Data Pubblicazione
Date of Joining,Data Adesione
Date on which lorry started from supplier warehouse,Data in cui camion partito da magazzino fornitore
Date on which lorry started from your warehouse,Data in cui camion partito da nostro magazzino
Date on which the lead was last contacted,Data ultimo contatto LEAD
Dates,Date
Datetime,Orario
Days for which Holidays are blocked for this department.,Giorni per i quali le festività sono bloccati per questo reparto.
Dealer,Commerciante
Dear,Gentile
Debit,Debito
Debit Amt,Ammontare Debito
Debit Note,Nota Debito
Debit To,Addebito a
Debit or Credit,Debito o Credito
Deduct,Detrarre
Deduction,Deduzioni
Deduction Type,Tipo Deduzione
Deduction1,Deduzione1
Deductions,Deduzioni
Default,Predefinito
Default Account,Account Predefinito
Default BOM,BOM Predefinito
Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,Conto predefinito Banca / Contante  aggiornato automaticamente in Fatture POS quando selezioni questo metodo
Default Bank Account,Conto Banca Predefinito
Default Buying Price List,Predefinito acquisto Prezzo di listino
Default Cash Account,Conto Monete predefinito
Default Commission Rate,tasso commissione predefinito
Default Company,Azienda Predefinita
Default Cost Center,Centro di Costi Predefinito
Default Cost Center for tracking expense for this item.,Centro di Costo Predefinito di Gestione spese per questo articolo
Default Currency,Valuta Predefinito
Default Customer Group,Gruppo Clienti Predefinito
Default Expense Account,Account Spese Predefinito
Default Home Page,Home page Predefinito
Default Home Pages,Home page Predefinita
Default Income Account,Conto Predefinito Entrate
Default Item Group,Gruppo elemento Predefinito
Default Price List,Listino Prezzi Predefinito
Default Print Format,Formato Stampa Predefinito
Default Purchase Account in which cost of the item will be debited.,Conto acquisto Predefinito dove addebitare i costi.
Default Sales Partner,Partner di Vendita Predefinito
Default Settings,Impostazioni Predefinite
Default Source Warehouse,Magazzino Origine Predefinito
Default Stock UOM,Scorta UOM predefinita
Default Supplier,Predefinito Fornitore
Default Supplier Type,Tipo Fornitore Predefinito
Default Target Warehouse,Magazzino Destinazione Predefinito
Default Territory,Territorio Predefinito
Default Unit of Measure,Unità di Misura Predefinito
Default Valuation Method,Metodo Valutazione Predefinito
Default Value,Valore Predefinito
Default Warehouse,Magazzino Predefinito
Default Warehouse is mandatory for Stock Item.,Magazzino Predefinito Obbligatorio per Articolo Stock.
Default settings for Shopping Cart,Impostazioni Predefinito per Carrello Spesa
"Default: ""Contact Us""","Predefinito: ""Contattaci """
DefaultValue,ValorePredefinito
Defaults,Predefiniti
"Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>","Definire Budget per questo centro di costo. Per impostare l&#39;azione di bilancio, vedi <a href=""#!List/Company"">Azienda Maestro</a>"
Defines actions on states and the next step and allowed roles.,Definisce le azioni su stati e il passo successivo e ruoli consentiti.
Defines workflow states and rules for a document.,Definisci stati Workflow e regole per il documento.
Delete,Elimina
Delete Row,Elimina Riga
Delivered,Consegnato
Delivered Items To Be Billed,Gli Articoli consegnati da Fatturare
Delivered Qty,Q.tà Consegnata
Delivery Date,Data Consegna
Delivery Details,Dettagli Consegna
Delivery Document No,Documento Consegna N.
Delivery Document Type,Tipo Documento Consegna
Delivery Note,Nota Consegna
Delivery Note Item,Nota articolo Consegna
Delivery Note Items,Nota Articoli Consegna
Delivery Note Message,Nota Messaggio Consegna
Delivery Note No,Nota Consegna N.
Delivery Note Packing Item,Nota Consegna Imballaggio articolo
Delivery Note Required,Nota Consegna Richiesta
Delivery Note Trends,Nota Consegna Tendenza
Delivery Status,Stato Consegna
Delivery Time,Tempo Consegna
Delivery To,Consegna a
Department,Dipartimento
Depends On,Dipende da
Depends on LWP,Dipende da LWP
Descending,Decrescente
Description,Descrizione
Description HTML,Descrizione HTML
"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Descrizione per la pagina di profilo, in testo normale, solo un paio di righe. (max 140 caratteri)"
Description for page header.,Descrizione Intestazione Pagina
Description of a Job Opening,Descrizione Offerta Lavoro
Designation,Designazione
Desktop,Desktop
Detailed Breakup of the totals,Breakup dettagliato dei totali
Details,Dettagli
Deutsch,Tedesco
Did not add.,Non aggiungere.
Did not cancel,Non cancellare
Did not save,Non salvare
Difference,Differenza
"Different ""States"" this document can exist in. Like ""Open"", ""Pending Approval"" etc.","Diverso &quot;Uniti&quot; questo documento può esistere in Come &quot;Open&quot;, &quot;In attesa di approvazione&quot;, ecc"
Disable Customer Signup link in Login page,Disabilita Link Iscrizione Clienti nella pagina di Login
Disable Rounded Total,Disabilita Arrotondamento su Totale
Disable Signup,Disabilita Iscrizione
Disabled,Disabilitato
Discount  %,Sconto %
Discount %,% sconto
Discount (%),(%) Sconto
"Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice","Il Campo Sconto sarà abilitato in Ordine di acquisto, ricevuta di acquisto, Fattura Acquisto"
Discount(%),Sconto(%)
Display,Visualizzazione
Display Settings,Impostazioni Visualizzazione
Display all the individual items delivered with the main items,Visualizzare tutti gli elementi singoli spediti con articoli principali
Distinct unit of an Item,Distingui unità di un articolo
Distribute transport overhead across items.,Distribuire in testa trasporto attraverso articoli.
Distribution,Distribuzione
Distribution Id,ID Distribuzione
Distribution Name,Nome Distribuzione
Distributor,Distributore
Divorced,Divorced
Do not show any symbol like $ etc next to currencies.,Non visualizzare nessun simbolo tipo € dopo le Valute.
Doc Name,Nome Doc
Doc Status,Stato Doc
Doc Type,Tipo Doc
DocField,CampoDoc
DocPerm,PermessiDoc
DocType,TipoDoc
DocType Details,Dettaglio DocType
DocType is a Table / Form in the application.,DocType è una Tabella / Modulo nell'applicazione
DocType on which this Workflow is applicable.,DocType su cui questo flusso di lavoro è applicabile
DocType or Field,DocType Campo
Document,Documento
Document Description,Descrizione del documento
Document Numbering Series,Documento serie di numerazione
Document Status transition from ,Documento di transizione di stato da
Document Type,Tipo di documento
Document is only editable by users of role,Documento è modificabile solo dagli utenti del ruolo
Documentation,Documentazione
Documentation Generator Console,Console Generatore Documentazione
Documentation Tool,Strumento Documento
Documents,Documenti
Domain,Dominio
Download Backup,Scarica Backup
Download Materials Required,Scaricare Materiali Richiesti
Download Template,Scarica Modello
Download a report containing all raw materials with their latest inventory status,Scaricare un report contenete tutte le materie prime con il loro recente stato di inventario
"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Scarica il modello, compilare i dati appropriati e fissare le date file.All modificati e combinati dipendente nel periodo selezionato verrà nel modello, con record di presenze esistenti"
Draft,Bozza
Drafts,Bozze
Drag to sort columns,Trascina per ordinare le colonne
Dropbox,Dropbox
Dropbox Access Allowed,Consentire accesso Dropbox
Dropbox Access Key,Chiave Accesso Dropbox
Dropbox Access Secret,Accesso Segreto Dropbox
Due Date,Data di scadenza
EMP/,EMP/
ESIC CARD No,ESIC CARD No
ESIC No.,ESIC No.
Earning,Rendimento
Earning & Deduction,Guadagno & Detrazione
Earning Type,Tipo Rendimento
Earning1,Rendimento1
Edit,Modifica
Editable,Modificabile
Educational Qualification,Titolo di studio
Educational Qualification Details,Titolo di studio Dettagli
Eg. smsgateway.com/api/send_sms.cgi,Ad es. smsgateway.com / api / send_sms.cgi
Email,Email
Email (By company),Email (per azienda)
Email Digest,Email di massa
Email Digest Settings,Impostazioni Email di Massa
Email Host,Host Email
Email Id,ID Email
"Email Id must be unique, already exists for: ","Email id deve essere unico, esiste già per:"
"Email Id where a job applicant will email e.g. ""jobs@example.com""","Email del candidato deve essere del tipo ""jobs@example.com"""
Email Login,Login Email
Email Password,Password Email
Email Sent,Invia Mail
Email Sent?,Invio Email?
Email Settings,Impostazioni email
Email Settings for Outgoing and Incoming Emails.,Impostazioni email per Messaggi in Ingresso e in Uscita
Email Signature,Firma Email
Email Use SSL,Email usa SSL
"Email addresses, separted by commas","Indirizzi Email, separati da virgole"
Email ids separated by commas.,ID Email separati da virgole.
"Email settings for jobs email id ""jobs@example.com""","Impostazioni email per id email lavoro ""jobs@example.com"""
"Email settings to extract Leads from sales email id e.g. ""sales@example.com""","Impostazioni email per Estrarre LEADS dall' email venditore es. ""sales@example.com"""
Email...,Email...
Embed image slideshows in website pages.,Includi slideshow di immagin nellae pagine del sito.
Emergency Contact Details,Dettagli Contatto Emergenza
Emergency Phone Number,Numero di Telefono Emergenze
Employee,Dipendenti
Employee Birthday,Compleanno Dipendente
Employee Designation.,Nomina Dipendente.
Employee Details,Dettagli Dipendente
Employee Education,Istruzione Dipendente
Employee External Work History,Cronologia Lavoro Esterno Dipendente
Employee Information,Informazioni Dipendente
Employee Internal Work History,Cronologia Lavoro Interno Dipendente
Employee Internal Work Historys,Cronologia Lavoro Interno Dipendente
Employee Leave Approver,Dipendente Lascia Approvatore
Employee Leave Balance,Approvazione Bilancio Dipendete
Employee Name,Nome Dipendete
Employee Number,Numero Dipendenti
Employee Records to be created by,Record dei dipendenti di essere creati da
Employee Setup,Configurazione Dipendenti
Employee Type,Tipo Dipendenti
Employee grades,Grado dipendenti
Employee record is created using selected field. ,Record dipendente viene creato utilizzando campo selezionato.
Employee records.,Registrazione Dipendente.
Employee: ,Lavoratore:
Employees Email Id,Email Dipendente
Employment Details,Dettagli Dipendente
Employment Type,Tipo Dipendente
Enable Auto Inventory Accounting,Abilita inventario contabile Auto
Enable Shopping Cart,Abilita Carello Acquisti
Enabled,Attivo
Enables <b>More Info.</b> in all documents,Abilita <b>Ulteriori Info.</b> in tutti i documenti
Encashment Date,Data Incasso
End Date,Data di Fine
End date of current invoice's period,Data di fine del periodo di fatturazione corrente
End of Life,Fine Vita
Ends on,Termina il
Enter Email Id to receive Error Report sent by users.E.g.: support@iwebnotes.com,Inserisci email Id ricevere Rapporto errore inviato dal users.Eg: support@iwebnotes.com
Enter Form Type,Inserisci Tipo Modulo
Enter Row,Inserisci riga
Enter Verification Code,Inserire codice Verifica
Enter campaign name if the source of lead is campaign.,Inserisci nome Campagna se la sorgente del LEAD e una campagna.
"Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set ""match"" permission rules. To see list of fields, go to <a href=""#Form/Customize Form/Customize Form"">Customize Form</a>.","Inserisci campi valore di default (chiavi) e valori. Se si aggiungono più valori per un campo, il primo sarà scelto. Questi dati vengono utilizzati anche per impostare le regole di autorizzazione &quot;match&quot;. Per vedere l&#39;elenco dei campi, andare al <a href=""#Form/Customize Form/Customize Form"">modulo di Personalizzazione</a> ."
Enter department to which this Contact belongs,Inserisci reparto a cui appartiene questo contatto
Enter designation of this Contact,Inserisci designazione di questo contatto
"Enter email id separated by commas, invoice will be mailed automatically on particular date","Inserisci email separate da virgola, le fatture saranno inviate automaticamente in una data particolare"
Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.,Inserisci articoli e q.tà programmate per i quali si desidera raccogliere gli ordini di produzione o scaricare materie prime per l'analisi.
Enter name of campaign if source of enquiry is campaign,Inserisci il nome della Campagna se la sorgente di indagine è la campagna
"Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)","Inserisci parametri statici della url qui (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)"
Enter the company name under which Account Head will be created for this Supplier,Immettere il nome della società in cui Conto Principale sarà creato per questo Fornitore
Enter the date by which payments from customer is expected against this invoice.,Immettere la data entro la quale i pagamenti da clienti è previsto contro questa fattura.
Enter url parameter for message,Inserisci parametri url per il messaggio
Enter url parameter for receiver nos,Inserisci parametri url per NOS ricevuti
Entries,Voci
Entries are not allowed against this Fiscal Year if the year is closed.,Voci non permesse in confronto ad un Anno Fiscale già chiuso.
Error,Errore
Error for,Errore per
Error: Document has been modified after you have opened it,Errore: Il Documento è stato modificato dopo averlo aperto
Estimated Material Cost,Stima costo materiale
Event,Evento
Event End must be after Start,Fine evento deve essere dopo l&#39;inizio
Event Individuals,Eventi Personali
Event Role,Ruolo Evento
Event Roles,Ruoli Evento
Event Type,Tipo Evento
Event User,Evento Utente
Events In Today's Calendar,Eventi nel Calendario di Oggi
Every Day,Tutti i Giorni
Every Month,Ogni mese
Every Week,Ogni settimana
Every Year,Ogni anno
Everyone can read,Tutti possono leggere
Example:,Esempio:
"Example: ABCD.#####If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.","Esempio:. ABCD # # # # # Se serie è ambientata e Serial No non è menzionata nelle transazioni, verrà creato il numero di serie quindi automatica sulla base di questa serie. Se si vuole sempre di menzionare esplicitamente i numeri d&#39;ordine per questo prodotto. lasciare vuoto."
Exchange Rate,Tasso di cambio:
Excise Page Number,Accise Numero Pagina
Excise Voucher,Buono Accise
Exemption Limit,Limite Esenzione
Exhibition,Esposizione
Existing Customer,Cliente Esistente
Exit,Esci
Exit Interview Details,Uscire Dettagli Intervista
Expected,Previsto
Expected Delivery Date,Data prevista di consegna
Expected End Date,Data prevista di fine
Expected Start Date,Data prevista di inizio
Expense Account,Conto uscite
Expense Account is mandatory,Conto spese è obbligatorio
Expense Claim,Rimborso Spese
Expense Claim Approved,Rimborso Spese Approvato
Expense Claim Approved Message,Messaggio Rimborso Spese Approvato
Expense Claim Detail,Dettaglio Rimborso Spese
Expense Claim Details,Dettagli Rimborso Spese
Expense Claim Rejected,Rimborso Spese Rifiutato
Expense Claim Rejected Message,Messaggio Rimborso Spese Rifiutato
Expense Claim Type,Tipo Rimborso Spese
Expense Date,Expense Data
Expense Details,Dettagli spese
Expense Head,Expense Capo
Expense account is mandatory for item: ,Conto spese è obbligatoria per oggetto:
Expense/Adjustment Account,Spese/Adeguamento Conto
Expenses Booked,Spese Prenotazione
Expenses Included In Valuation,Spese incluse nella Valutazione
Expenses booked for the digest period,Spese Prenotazione per periodo di smistamento
Expiry Date,Data Scadenza
Export,Esporta
Exports,Esportazioni
External,Esterno
Extract Emails,Estrarre email
FCFS Rate,FCFS Rate
FIFO,FIFO
Facebook Share,Condividi su Facebook
Failed: ,Impossibile:
Family Background,Sfondo Famiglia
FavIcon,FavIcon
Fax,Fax
Features Setup,Configurazione Funzioni
Feed,Fonte
Feed Type,Tipo Fonte
Feedback,Riscontri
Female,Femmina
Fetch lead which will be converted into customer.,Preleva LEAD che sarà convertito in cliente.
Field Description,Descrizione Campo
Field Name,Nome Campo
Field Type,Tipo Campo
"Field available in Delivery Note, Quotation, Sales Invoice, Sales Order","Campo disponibile nella Bolla di consegna, preventivi, fatture di vendita, ordini di vendita"
"Field that represents the Workflow State of the transaction (if field is not present, a new hidden Custom Field will be created)","Campo che rappresenta lo stato del flusso di lavoro della transazione (se il campo non è presente, verrà creato un nuovo campo personalizzato nascosto)"
Fieldname,Nomecampo
Fields,Campi
"Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Campi separati da virgola (,) saranno inclusi in<br /><b>Cerca per</b>lista nel box di ricerca"
File,File
File Data,Dati File
File Name,Nome del file
File Size,Dimensione File
File URL,URL del file
File size exceeded the maximum allowed size,La dimensione del file eccede il massimo permesso
Files Folder ID,ID Cartella File
Filing in Additional Information about the Opportunity will help you analyze your data better.,Archiviazione in Ulteriori informazioni su l'opportunità vi aiuterà ad analizzare meglio i dati.
Filing in Additional Information about the Purchase Receipt will help you analyze your data better.,Archiviazione in Ulteriori informazioni su la ricevuta di acquisto vi aiuterà ad analizzare i dati meglio.
Filling in Additional Information about the Delivery Note will help you analyze your data better.,Archiviazione in Ulteriori informazioni su la Nota di Consegna vi aiuterà ad analizzare i dati meglio.
Filling in additional information about the Quotation will help you analyze your data better.,Archiviazione in Ulteriori informazioni su la Quotazione vi aiuterà ad analizzare i dati meglio.
Filling in additional information about the Sales Order will help you analyze your data better.,Compilando ulteriori informazioni su l'ordine di vendita vi aiuterà ad analizzare meglio i dati.
Filter,Filtra
Filter By Amount,Filtra per Importo
Filter By Date,Filtra per Data
Filter based on customer,Filtro basato sul cliente
Filter based on item,Filtro basato sul articolo
Final Confirmation Date,Data Conferma Definitiva
Financial Analytics,Analisi Finanziaria
Financial Statements,Dichiarazione Bilancio
First Name,Nome
First Responded On,Ha risposto prima su
Fiscal Year,Anno Fiscale
Fixed Asset Account,Conto Patrimoniale Fisso
Float,Galleggiare
Float Precision,Float Precision
Follow via Email,Seguire via Email
Following Journal Vouchers have been created automatically,A seguito Buoni Journal sono stati creati automaticamente
"Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items.","Seguendo tabella mostrerà i valori, se i capi sono sub - contratto. Questi valori saranno prelevati dal maestro del &quot;Bill of Materials&quot; di sub - elementi contrattuali."
Font (Heading),Font (rubrica)
Font (Text),Carattere (Testo)
Font Size (Text),Dimensione Carattere (Testo)
Fonts,Caratteri
Footer,Piè di pagina
Footer Items,elementi Piè di pagina
For All Users,Per tutti gli Utenti
For Company,Per Azienda
For Employee,Per Dipendente
For Employee Name,Per Nome Dipendente
For Item ,Per la voce
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma","Per i collegamenti, inserire il DocType come rangeFor Selezionare, immettere lista di opzioni separate da virgole"
For Production,Per la produzione
For Reference Only.,Solo di Riferimento
For Sales Invoice,Per Fattura di Vendita
For Server Side Print Formats,Per Formato Stampa lato Server
For Territory,Per Territorio
For UOM,Per UOM
For Warehouse,Per Magazzino
"For comparative filters, start with","Per i filtri di confronto, iniziare con"
"For e.g. 2012, 2012-13","Per es. 2012, 2012-13"
For example if you cancel and amend 'INV004' it will become a new document 'INV004-1'. This helps you to keep track of each amendment.,Ad esempio in caso di annullamento e modifica 'INV004' diventerà un nuovo documento 'INV004-1'. Questo vi aiuta a tenere traccia di ogni modifica.
For example: You want to restrict users to transactions marked with a certain property called 'Territory',Per esempio: si vuole limitare gli utenti a transazioni contrassegnate con una certa proprietà chiamata 'Territorio'
For opening balance entry account can not be a PL account,Per l'apertura di conto dell'entrata equilibrio non può essere un account di PL
For ranges,Per Intervallo
For reference,Per riferimento
For reference only.,Solo per riferimento.
For row,Per righa
"For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes","Per la comodità dei clienti, questi codici possono essere utilizzati in formati di stampa, come fatture e bolle di consegna"
Form,Modulo
Format: hh:mm example for one hour expiry set as 01:00. Max expiry will be 72 hours. Default is 24 hours,Formato: hh:mm esempio per un ora scadenza a 01:00. Tempo massimo scadenza 72 ore. Predefinito 24 ore
Forum,Forum
Fraction,Frazione
Fraction Units,Unità Frazione
Freeze Stock Entries,Congela scorta voci
Friday,Venerdì
From,Da
From Bill of Materials,Da Bill of Materials
From Company,Da Azienda
From Currency,Da Valuta
From Currency and To Currency cannot be same,Da Valuta e A Valuta non possono essere gli stessi
From Customer,Da Cliente
From Date,Da Data
From Date must be before To Date,Da Data deve essere prima di A Data
From Delivery Note,Nota di Consegna
From Employee,Da Dipendente
From Lead,Da LEAD
From PR Date,Da PR Data
From Package No.,Da Pacchetto N.
From Purchase Order,Da Ordine di Acquisto
From Purchase Receipt,Da Ricevuta di Acquisto
From Sales Order,Da Ordine di Vendita
From Time,Da Periodo
From Value,Da Valore
From Value should be less than To Value,Da Valore non può essere minori di Al Valore
Frozen,Congelato
Fulfilled,Adempiuto
Full Name,Nome Completo
Fully Completed,Debitamente compilato
GL Entry,GL Entry
GL Entry: Debit or Credit amount is mandatory for ,GL Entry: debito o di credito importo è obbligatoria per
GRN,GRN
Gantt Chart,Diagramma di Gantt
Gantt chart of all tasks.,Diagramma di Gantt di tutte le attività.
Gender,Genere
General,Generale
General Ledger,Libro mastro generale
Generate Description HTML,Genera descrizione HTML
Generate Material Requests (MRP) and Production Orders.,Generare richieste di materiali (MRP) e ordini di produzione.
Generate Salary Slips,Generare buste paga
Generate Schedule,Genera Programma
"Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Generare imballaggio scivola per i pacchetti da consegnare. Usato per comunicare il numero del pacchetto, contenuto della confezione e il suo peso."
Generates HTML to include selected image in the description,Genera HTML per includere immagine selezionata nella descrizione
Georgia,Georgia
Get,Ottieni
Get Advances Paid,Ottenere anticipo pagamento
Get Advances Received,ottenere anticipo Ricevuto
Get Current Stock,Richiedi Disponibilità
Get From ,Ottieni da
Get Items,Ottieni articoli
Get Items From Sales Orders,Ottieni elementi da ordini di vendita
Get Last Purchase Rate,Ottieni ultima quotazione acquisto
Get Non Reconciled Entries,Prendi le voci non riconciliate
Get Outstanding Invoices,Ottieni fatture non saldate
Get Purchase Receipt,Ottieni Ricevuta di Acquisto
Get Sales Orders,Ottieni Ordini di Vendita
Get Specification Details,Ottieni Specifiche Dettagli
Get Stock and Rate,Ottieni Residui e Tassi
Get Template,Ottieni Modulo
Get Terms and Conditions,Ottieni Termini e Condizioni
Get Weekly Off Dates,Get settimanali Date Off
"Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Ottieni tasso di valutazione e disposizione di magazzino sorgente/destinazione su magazzino menzionati distacco data-ora. Se voce serializzato, si prega di premere questo tasto dopo aver inserito i numeri di serie."
Give additional details about the indent.,Fornire ulteriori dettagli sul rientro.
Global Defaults,Predefiniti Globali
Go back to home,Torna alla home
Go to Setup > <a href='#user-properties'>User Properties</a> to set \			'territory' for diffent Users.,Vai a Impostazioni&gt; <a href='#user-properties'>Proprietà utente</a> di impostare \ &#39;territorio&#39; per gli utenti diffent.
Goal,Obiettivo
Goals,Obiettivi
Goods received from Suppliers.,Merci ricevute dai fornitori.
Google Analytics ID,ID Google Analytics
Google Drive,Google Drive
Google Drive Access Allowed,Google Accesso unità domestici
Google Plus One,Google+ One
Google Web Font (Heading),Google Web Font (Intestazione)
Google Web Font (Text),Google Web Font (Testo)
Grade,Qualità
Graduate,Laureato:
Grand Total,Totale Generale
Grand Total (Company Currency),Totale generale (valuta Azienda)
Gratuity LIC ID,Gratuità ID LIC
Gross Margin %,Margine Lordo %
Gross Margin Value,Valore Margine Lordo
Gross Pay,Retribuzione lorda
Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,retribuzione lorda + Importo posticipata + Importo incasso - Deduzione totale
Gross Profit,Utile lordo
Gross Profit (%),Utile Lordo (%)
Gross Weight,Peso Lordo
Gross Weight UOM,Peso Lordo UOM
Group,Gruppo
Group or Ledger,Gruppo o Registro
Groups,Gruppi
HR,HR
HR Settings,Impostazioni HR
HTML,HTML
HTML / Banner that will show on the top of product list.,HTML / Banner verrà mostrato sulla parte superiore della lista dei prodotti.
Half Day,Mezza Giornata
Half Yearly,Semestrale
Half-yearly,Seme-strale
Happy Birthday!,Buon compleanno!
Has Batch No,Ha Lotto N.
Has Child Node,Ha un Nodo Figlio
Has Serial No,Ha Serial No
Header,Intestazione
Heading,Intestazione
Heading Text As,Rubrica testo come
Heads (or groups) against which Accounting Entries are made and balances are maintained.,Teste (o gruppi) a fronte del quale le scritture contabili sono fatti e gli equilibri sono mantenuti.
Health Concerns,Preoccupazioni per la salute
Health Details,Dettagli Salute
Held On,Held On
Help,Aiuto
Help HTML,Aiuto HTML
"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")","Aiuto: Per creare un collegamento a un altro record nel sistema, utilizzare &quot;# Form / Note / [Nota Nome]&quot;, come il collegamento URL. (Non usare &quot;http://&quot;)"
Helvetica Neue,Helvetica Neue
"Hence, maximum allowed Manufacturing Quantity","Quindi, massima Quantità di Produzione consentita"
"Here you can maintain family details like name and occupation of parent, spouse and children","Qui è possibile mantenere i dettagli della famiglia come il nome e l'occupazione del genitore, coniuge e figli"
"Here you can maintain height, weight, allergies, medical concerns etc","Qui è possibile mantenere l'altezza, il peso, le allergie, le preoccupazioni mediche ecc"
Hey there! You need to put at least one item in \				the item table.,Hey there! Hai bisogno di mettere almeno un elemento \ tabella alla voce.
Hey! All these items have already been invoiced.,Hey! Tutti questi elementi sono già stati fatturati.
Hey! There should remain at least one System Manager,Hey! Si dovrebbe mantenere almeno un Gestore di sistema
Hidden,Nascosto
Hide Actions,Nascondi Azioni
Hide Copy,Nascondi Copia
Hide Currency Symbol,Nascondi Simbolo Valuta
Hide Email,Nascondi Email
Hide Heading,Nascondi Intestazione
Hide Print,Nascondi Stampa
Hide Toolbar,Nascondi la Barra degli strumenti
High,Alto
Highlight,Mettere in luce
History,Cronologia
History In Company,Cronologia Aziendale
Hold,Trattieni
Holiday,Vacanza
Holiday List,Elenco Vacanza
Holiday List Name,Nome Elenco Vacanza
Holidays,Vacanze
Home,Home
Home Page,Home Page
Home Page is Products,Home page è Prodotti
Home Pages,Home Pages
Host,Host
"Host, Email and Password required if emails are to be pulled","Host, e-mail e la password necessari se le email sono di essere tirato"
Hour Rate,Vota ora
Hour Rate Consumable,Ora Vota consumabili
Hour Rate Electricity,Ora Vota Elettricità
Hour Rate Labour,Ora Vota Labour
Hour Rate Rent,Ora Vota Rent
Hours,Ore
How frequently?,Con quale frequenza?
"How should this currency be formatted? If not set, will use system defaults","Come dovrebbe essere formattata questa valuta? Se non impostato, userà valori predefiniti di sistema"
How to upload,Come caricare
Hrvatski,Hrvatski
Human Resources,Risorse Umane
Hurray! The day(s) on which you are applying for leave \					coincide with holiday(s). You need not apply for leave.,"Evviva! Il giorno (s), su cui si stanno applicando per lasciare \ coincide con le vacanze (s). Non è necessario chiedere un permesso."
I,I
ID (name) of the entity whose property is to be set,ID (nome) del soggetto la cui proprietà deve essere impostata
IDT,IDT
II,II
III,III
IN,IN
INV,INV
INV/10-11/,INV/10-11 /
ITEM,ARTICOLO
IV,IV
Icon,Icona
Icon will appear on the button,Icona apparirà sul tasto
Id of the profile will be the email.,ID del profilo sarà l'email.
Identification of the package for the delivery (for print),Identificazione del pacchetto per la consegna (per la stampa)
If Income or Expense,Se proventi od oneri
If Monthly Budget Exceeded,Se Budget mensile superato
"If Sale BOM is defined, the actual BOM of the Pack is displayed as table.Available in Delivery Note and Sales Order","Se Vendita BOM è definita, la distinta base effettiva del pacchetto viene visualizzato come table.Available nella bolla di consegna e ordine di vendita"
"If Supplier Part Number exists for given Item, it gets stored here","Se il numero di parte del fornitore esiste per dato voce, che viene memorizzato qui"
If Yearly Budget Exceeded,Se Budget annuale superato
"If a User does not have access at Level 0, then higher levels are meaningless","Se un utente non ha accesso al livello 0, quindi i livelli più elevati sono senza senso"
"If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Se selezionato, distinta per gli elementi sub-assemblaggio sarà considerato per ottenere materie prime. In caso contrario, tutti gli elementi sub-assemblaggio saranno trattati come materia prima."
"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Se selezionato, non totale. di giorni lavorativi includerà vacanze, e questo ridurrà il valore di salario per ogni giorno"
"If checked, all other workflows become inactive.","Se selezionata, tutti gli altri flussi di lavoro diventano inattivi."
"If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Se selezionato, una e-mail con un formato HTML allegato sarà aggiunto ad una parte del corpo del messaggio e allegati. Per inviare solo come allegato, deselezionare questa."
"If checked, the Home page will be the default Item Group for the website.","Se selezionato, la pagina iniziale sarà il Gruppo Item predefinita per il sito web."
"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","Se selezionato, l&#39;importo della tassa sarà considerata già inclusa nel Stampa Valuta / Stampa Importo"
"If disable, 'Rounded Total' field will not be visible in any transaction","Se disabilitare, &#39;Rounded totale&#39; campo non sarà visibile in qualsiasi transazione"
"If enabled, the system will post accounting entries for inventory automatically.","Se abilitato, il sistema pubblicherà le scritture contabili per l&#39;inventario automatico."
"If image is selected, color will be ignored (attach first)","Se si seleziona un&#39;immagine, il colore viene ignorata (allegare prima)"
If more than one package of the same type (for print),Se più di un pacchetto dello stesso tipo (per la stampa)
If non standard port (e.g. 587),Se la porta non standard (ad esempio 587)
If not applicable please enter: NA,Se non applicabile Inserisci: NA
"If not checked, the list will have to be added to each Department where it has to be applied.","Se non controllati, la lista dovrà essere aggiunto a ciascun Dipartimento dove deve essere applicato."
"If not, create a","Se non, creare un"
"If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.","Se impostato, l&#39;immissione dei dati è consentito solo per gli utenti specificati. Altrimenti, l&#39;ingresso è consentito a tutti gli utenti con i permessi necessari."
"If specified, send the newsletter using this email address","Se specificato, inviare la newsletter tramite questo indirizzo e-mail"
"If the 'territory' Link Field exists, it will give you an option to select it","Se il &#39;territorio&#39; Link campo esiste, che vi darà la possibilità di selezionare la"
"If the account is frozen, entries are allowed for the ""Account Manager"" only.","Se l&#39;account viene bloccato, le voci sono consentiti per l &#39;&quot;Account Manager&quot; solo."
"If this Account represents a Customer, Supplier or Employee, set it here.","Se questo account rappresenta un cliente, fornitore o dipendente, impostare qui."
If you follow Quality Inspection<br>Enables item QA Required and QA No in Purchase Receipt,Se seguite Controllo Qualità <br> Abilita elemento QA obbligatori e QA No in Acquisto Ricevuta
If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity,Se si dispone di team di vendita e vendita Partners (Partner di canale) possono essere taggati e mantenere il loro contributo per l&#39;attività di vendita
"If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.","Se è stato creato un modello standard in Acquisto tasse e le spese master, selezionarne uno e fare clic sul pulsante qui sotto."
"If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.","Se è stato creato un modello standard in tasse sulla vendita e Spese master, selezionarne uno e fare clic sul pulsante qui sotto."
"If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page","Se si è a lungo stampare formati, questa funzione può essere usato per dividere la pagina da stampare su più pagine con tutte le intestazioni e piè di pagina in ogni pagina"
If you involve in manufacturing activity<br>Enables item <b>Is Manufactured</b>,Se si coinvolgono in attività di produzione <br> Abilita elemento <b>è prodotto</b>
Ignore,Ignora
Ignored: ,Ignorato:
Image,Immagine
Image Link,Immagine link
Image View,Visualizza immagine
Implementation Partner,Partner di implementazione
Import,Importazione
Import Attendance,Import presenze
Import Log,Importa Log
Important dates and commitments in your project life cycle,Date importanti e gli impegni nel ciclo di vita del progetto
Imports,Importazioni
In Dialog,Nella finestra di dialogo
In Filter,In Filtro
In Hours,In Hours
In List View,In elenco Visualizza
In Process,In Process
In Report Filter,In Report Filter
In Row,In fila
In Words,In Parole
In Words (Company Currency),In Parole (Azienda valuta)
In Words (Export) will be visible once you save the Delivery Note.,In Parole (Export) sarà visibile una volta che si salva il DDT.
In Words will be visible once you save the Delivery Note.,In parole saranno visibili una volta che si salva il DDT.
In Words will be visible once you save the Purchase Invoice.,In parole saranno visibili una volta che si salva la Fattura di Acquisto.
In Words will be visible once you save the Purchase Order.,In parole saranno visibili una volta che si salva di Acquisto.
In Words will be visible once you save the Purchase Receipt.,In parole saranno visibili una volta che si salva la ricevuta di acquisto.
In Words will be visible once you save the Quotation.,In parole saranno visibili una volta che si salva il preventivo.
In Words will be visible once you save the Sales Invoice.,In parole saranno visibili una volta che si salva la fattura di vendita.
In Words will be visible once you save the Sales Order.,In parole saranno visibili una volta che si salva l&#39;ordine di vendita.
In response to,In risposta a
"In the Permission Manager, click on the button in the 'Condition' column for the Role you want to restrict.","Nel Permission Manager, fare clic sul pulsante nella colonna &#39;Stato&#39; per il ruolo che si desidera limitare."
Incentives,Incentivi
Incharge Name,InCharge Nome
Include holidays in Total no. of Working Days,Includi vacanze in totale n. dei giorni lavorativi
Income / Expense,Proventi / oneri
Income Account,Conto Conto
Income Booked,Reddito Prenotato
Income Year to Date,Reddito da inizio anno
Income booked for the digest period,Reddito prenotato per il periodo digest
Incoming,In arrivo
Incoming / Support Mail Setting,Incoming / Supporto Impostazione posta
Incoming Rate,Rate in ingresso
Incoming quality inspection.,Controllo di qualità in arrivo.
Index,Indice
Indicates that the package is a part of this delivery,Indica che il pacchetto è una parte di questa consegna
Individual,Individuale
Individuals,Individui
Industry,Industria
Industry Type,Tipo Industria
Info,Info
Insert After,Inserisci dopo
Insert Below,Inserisci sotto
Insert Code,Inserire codice
Insert Row,Inserisci riga
Insert Style,Inserire Style
Inspected By,Verifica a cura di
Inspection Criteria,Criteri di ispezione
Inspection Required,Ispezione Obbligatorio
Inspection Type,Tipo di ispezione
Installation Date,Data di installazione
Installation Note,Installazione Nota
Installation Note Item,Installazione Nota articolo
Installation Status,Stato di installazione
Installation Time,Tempo di installazione
Installation record for a Serial No.,Record di installazione per un numero di serie
Installed Qty,Qtà installata
Instructions,Istruzione
Int,Int.
Integrations,Integrazioni
Interested,Interessati
Internal,Interno
Introduce your company to the website visitor.,Introdurre la vostra azienda per il visitatore del sito.
Introduction,Introduzione
Introductory information for the Contact Us Page,Informazioni introduttive per la pagina Contattaci
Invalid Delivery Note. Delivery Note should exist and should be in 				draft state. Please rectify and try again.,Invalid Consegna Nota. Consegna Nota deve esistere e deve essere in stato di bozza. Si prega di correggere e riprovare.
Invalid Email,Email non valida
Invalid Email Address,Indirizzo e-mail non valido
Invalid Item or Warehouse Data,Articolo non valido o Data Warehouse
Invalid Leave Approver,Invalid Lascia Approvatore
Inventory,Inventario
Inverse,Inverse
Invoice Date,Data fattura
Invoice Details,Dettagli Fattura
Invoice No,Fattura n
Invoice Period From Date,Fattura Periodo Dal Data
Invoice Period To Date,Periodo Fattura Per Data
Is Active,È attivo
Is Advance,È Advance
Is Asset Item,È Asset articolo
Is Cancelled,Viene Annullato
Is Carry Forward,È portare avanti
Is Child Table,È Tavola Bambino
Is Default,È Default
Is Encash,È incassare
Is LWP,È LWP
Is Mandatory Field,È Campo obbligatorio
Is Opening,Sta aprendo
Is Opening Entry,Sta aprendo Entry
Is PL Account,È l&#39;account PL
Is POS,È POS
Is Primary Contact,È primario di contatto
Is Purchase Item,È Acquisto Voce
Is Sales Item,È Voce vendite
Is Service Item,È il servizio Voce
Is Single,È single
Is Standard,È standard
Is Stock Item,È Stock articolo
Is Sub Contracted Item,È sub articolo Contrattato
Is Subcontracted,Di subappalto
Is Submittable,È Submittable
Is it a Custom DocType created by you?,E &#39;un DOCTYPE personalizzato creato da voi?
Is this Tax included in Basic Rate?,È questa tassa inclusi nel prezzo base?
Issue,Questione
Issue Date,Data di Emissione
Issue Details,Dettagli del problema
Issued Items Against Production Order,Articoli emesso contro Ordine di produzione
It is needed to fetch Item Details.,E &#39;necessario per recuperare i dettagli del prodotto.
It was raised because the (actual + ordered + indented - reserved) 						quantity reaches re-order level when the following record was created,E &#39;stato sollevato perché il (reale + ordinato + frastagliata - riservato) quantità raggiunge il livello di riordino quando il record seguente è stato creato
Item,Articolo
Item Advanced,Voce Avanzata
Item Barcode,Barcode articolo
Item Batch Nos,Nn batch Voce
Item Classification,Classificazione articolo
Item Code,Codice Articolo
Item Code (item_code) is mandatory because Item naming is not sequential.,Codice Articolo (item_code) è obbligatoria in quanto denominazione articolo non è sequenziale.
Item Code cannot be changed for Serial No.,Codice Articolo non può essere modificato per Serial No.
Item Customer Detail,Dettaglio articolo cliente
Item Description,Voce Descrizione
Item Desription,Desription articolo
Item Details,Dettagli articolo
Item Group,Gruppo articoli
Item Group Name,Articolo Group
Item Groups in Details,Gruppi di articoli in Dettagli
Item Image (if not slideshow),Articolo Immagine (se non slideshow)
Item Name,Nome dell&#39;articolo
Item Naming By,Articolo Naming By
Item Price,Articolo Prezzo
Item Prices,Voce Prezzi
Item Quality Inspection Parameter,Voce di controllo di qualità dei parametri
Item Reorder,Articolo riordino
Item Serial No,Articolo N. d&#39;ordine
Item Serial Nos,Voce n ° di serie
Item Supplier,Articolo Fornitore
Item Supplier Details,Voce Fornitore Dettagli
Item Tax,Tax articolo
Item Tax Amount,Articolo fiscale Ammontare
Item Tax Rate,Articolo Tax Rate
Item Tax1,Articolo Imposta1
Item To Manufacture,Articolo per la fabbricazione
Item UOM,Articolo UOM
Item Website Specification,Specifica Sito
Item Website Specifications,Articolo Specifiche Website
Item Wise Tax Detail ,Articolo Wise Particolare fiscale
Item classification.,Articolo classificazione.
Item must have 'Has Serial No' as 'Yes',L&#39;oggetto deve avere &#39;Ha Serial No&#39; a &#39;Sì&#39;
Item to be manufactured or repacked,Voce da fabbricati o nuovamente imballati
Item will be saved by this name in the data base.,L&#39;oggetto sarà salvato con questo nome nella banca dati.
"Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.","Item, Garanzia, AMC (annuale Contratto di Manutenzione) Dettagli viene prelevato automaticamente quando si seleziona il numero di serie."
Item-Wise Price List,Articolo-saggio Listino
Item-wise Last Purchase Rate,Articolo-saggio Ultimo Purchase Rate
Item-wise Purchase History,Articolo-saggio Cronologia acquisti
Item-wise Purchase Register,Articolo-saggio Acquisto Registrati
Item-wise Sales History,Articolo-saggio Storia Vendite
Item-wise Sales Register,Vendite articolo-saggio Registrati
Items,Articoli
"Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty",Articoli da richieste che sono &quot;out of stock&quot; considerando tutti i magazzini in base qty proiettata e qty minimo di ordine
Items which do not exist in Item master can also be entered on customer's request,Voci che non esistono in master articolo possono essere inseriti su richiesta del cliente
Itemwise Discount,Sconto Itemwise
Itemwise Recommended Reorder Level,Itemwise consigliata riordino Livello
JSON,JSON
JV,JV
JavaScript Format: wn.query_reports['REPORTNAME'] = {},Formato JavaScript: wn.query_reports [&#39;REPORTNAME&#39;] = {}
Javascript,Javascript
Javascript to append to the head section of the page.,Javascript da aggiungere alla sezione head della pagina.
Job Applicant,Candidato di lavoro
Job Opening,Apertura di lavoro
Job Profile,Profilo di lavoro
Job Title,Professione
"Job profile, qualifications required etc.","Profilo professionale, le qualifiche richieste, ecc"
Jobs Email Settings,Impostazioni email Lavoro
Journal Entries,Prime note
Journal Entry,Journal Entry
Journal Entry for inventory that is received but not yet invoiced,"Diario per l&#39;inventario che viene ricevuto, ma non ancora fatturati"
Journal Voucher,Journal Voucher
Journal Voucher Detail,Journal Voucher Detail
Journal Voucher Detail No,Journal Voucher Detail No
KRA,KRA
"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Tenere traccia delle campagne di vendita. Tenere traccia di Leads, preventivi, vendite Ordine ecc dalle campagne per misurare il ritorno sull&#39;investimento."
Keep a track of all communications,Mantenere una traccia di tutte le comunicazioni
Keep a track of communication related to this enquiry which will help for future reference.,Tenere una traccia delle comunicazioni relative a questa indagine che contribuirà per riferimento futuro.
Key,Chiave
Key Performance Area,Area Key Performance
Key Responsibility Area,Area Responsabilità Chiave
LEAD,PIOMBO
LEAD/10-11/,LEAD/10-11 /
LEAD/MUMBAI/,LEAD / Mumbai /
LR Date,LR Data
LR No,LR No
Label,Etichetta
Label Help,Etichetta Help
Lacs,Lacs
Landed Cost Item,Landed Cost articolo
Landed Cost Items,Landed voci di costo
Landed Cost Purchase Receipt,Landed Cost ricevuta di acquisto
Landed Cost Purchase Receipts,Sbarcati costo di acquisto Receipts
Landed Cost Wizard,Wizard Landed Cost
Landing Page,Pagina di destinazione
Language,Lingua
Language preference for user interface (only if available).,Lingua preferita per l'interfaccia (se disponibile)
Last Contact Date,Ultimo contatto Data
Last IP,Ultimo IP
Last Login,Ultimo Login
Last Name,Cognome
Last Purchase Rate,Ultimo Purchase Rate
Lato,Lato
Lead,Portare
Lead Details,Piombo dettagli
Lead Lost,Piombo Perso
Lead Name,Piombo Nome
Lead Owner,Piombo Proprietario
Lead Source,Piombo Fonte
Lead Status,Senza piombo
Lead Time Date,Piombo Ora Data
Lead Time Days,Portare il tempo Giorni
Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.,Piombo giorni Tempo è il numero di giorni per cui questa voce è previsto nel vostro magazzino. Questi giorni vengono recuperati in Materiale Richiesta quando si seleziona questa voce.
Lead Type,Piombo Tipo
Leave Allocation,Lascia Allocazione
Leave Allocation Tool,Lascia strumento Allocazione
Leave Application,Lascia Application
Leave Approver,Lascia Approvatore
Leave Approver can be one of,Lascia approvatore può essere una delle
Leave Approvers,Lascia Approvatori
Leave Balance Before Application,Lascia equilibrio prima applicazione
Leave Block List,Lascia Block List
Leave Block List Allow,Lascia Block List Consentire
Leave Block List Allowed,Lascia Block List ammessi
Leave Block List Date,Lascia Block List Data
Leave Block List Dates,Lascia Blocco Elenco date
Leave Block List Name,Lascia Block List Nome
Leave Blocked,Lascia Bloccato
Leave Control Panel,Lascia il Pannello di controllo
Leave Encashed?,Lascia incassati?
Leave Encashment Amount,Lascia Incasso Importo
Leave Setup,Lascia Setup
Leave Type,Lascia Tipo
Leave Type Name,Lascia Tipo Nome
Leave Without Pay,Lascia senza stipendio
Leave allocations.,Lascia allocazioni.
Leave blank if considered for all branches,Lasciare vuoto se considerato per tutti i rami
Leave blank if considered for all departments,Lasciare vuoto se considerato per tutti i reparti
Leave blank if considered for all designations,Lasciare vuoto se considerato per tutte le designazioni
Leave blank if considered for all employee types,Lasciare vuoto se considerato per tutti i tipi dipendenti
Leave blank if considered for all grades,Lasciare vuoto se considerato per tutti i gradi
Leave blank if you have not decided the end date.,Lasciare vuoto se non avete deciso la data di fine.
Leave by,Lasciare da parte
"Leave can be approved by users with Role, ""Leave Approver""","Lascia può essere approvato dagli utenti con il ruolo, &quot;Leave Approvatore&quot;"
Ledger,Ledger
Left,Sinistra
Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.,Legal Entity / Controllata con una tabella separata dei conti appartenenti all&#39;Organizzazione.
Letter Head,Carta intestata
Letter Head Image,Lettera Responsabile Immagine
Letter Head Name,Lettera Responsabile Nome
Level,Livello
"Level 0 is for document level permissions, higher levels for field level permissions.","Il livello 0 è per le autorizzazioni a livello di documento, i livelli più elevati per le autorizzazioni a livello di campo."
Lft,Lft
Link,Collegamento
Link to other pages in the side bar and next section,Link verso altre pagine nella barra laterale e sezione successiva
Linked In Share,Linked In Condividi
Linked With,Collegato con
List,Lista
List items that form the package.,Voci di elenco che formano il pacchetto.
List of holidays.,Elenco dei giorni festivi.
List of patches executed,Elenco delle patch eseguite
List of records in which this document is linked,Elenco dei record in cui questo documento è collegato
List of users who can edit a particular Note,Lista di utenti che possono modificare un particolare Nota
List this Item in multiple groups on the website.,Elenco questo articolo a più gruppi sul sito.
Live Chat,Live Chat
Load Print View on opening of an existing form,Caricare Stampa Vedi sulla apertura di un modulo esistente
Loading,Caricamento
Loading Report,Caricamento report
Log,Entra
"Log of Activities performed by users against Tasks that can be used for tracking time, billing.","Log delle attività svolte dagli utenti contro le attività che possono essere utilizzati per tenere traccia del tempo, la fatturazione."
Log of Scheduler Errors,Log di errori di pianificazione
Login After,Accedi Dopo
Login Before,Accedi Prima
Login Id,ID di accesso
Logo,Logo
Logout,Esci
Long Text,Testo lungo
Lost Reason,Perso Motivo
Low,Basso
Lower Income,Reddito più basso
Lucida Grande,Lucida Grande
MIS Control,MIS controllo
MREQ-,MREQ-
MTN Details,MTN Dettagli
Mail Footer,Posta Footer
Mail Password,Mail Password
Mail Port,Mail Port
Mail Server,Mail Server
Main Reports,Rapporti principali
Main Section,Sezione principale
Maintain Same Rate Throughout Sales Cycle,Mantenere la stessa velocità per tutto il ciclo di vendita
Maintain same rate throughout purchase cycle,Mantenere la stessa velocità per tutto il ciclo di acquisto
Maintenance,Manutenzione
Maintenance Date,Manutenzione Data
Maintenance Details,Dettagli di manutenzione
Maintenance Schedule,Programma di manutenzione
Maintenance Schedule Detail,Programma di manutenzione Dettaglio
Maintenance Schedule Item,Programma di manutenzione Voce
Maintenance Schedules,Programmi di manutenzione
Maintenance Status,Stato di manutenzione
Maintenance Time,Tempo di Manutenzione
Maintenance Type,Tipo di manutenzione
Maintenance Visit,Visita di manutenzione
Maintenance Visit Purpose,Visita di manutenzione Scopo
Major/Optional Subjects,Principali / Opzionale Soggetti
Make Bank Voucher,Fai Voucher Banca
Make Difference Entry,Fai la Differenza Entry
Make Time Log Batch,Fai Tempo Log Batch
Make a new,Effettuare una nuova
Make sure that the transactions you want to restrict have a Link field 'territory' that maps to a 'Territory' master.,Assicurarsi che le operazioni che si desidera limitare hanno &#39;territorio&#39; un campo link che mappa un maestro &#39;territorio&#39;.
Male,Maschio
Manage cost of operations,Gestione dei costi delle operazioni di
Manage exchange rates for currency conversion,Gestione tassi di cambio per la conversione di valuta
Mandatory,Obbligatorio
"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.",Obbligatorio se Disponibile Articolo è &quot;Sì&quot;. Anche il magazzino di default in cui quantitativo riservato è impostato da ordine di vendita.
Manufacture against Sales Order,Produzione contro Ordine di vendita
Manufacture/Repack,Fabbricazione / Repack
Manufactured Qty,Quantità Prodotto
Manufactured quantity will be updated in this warehouse,Quantità prodotta sarà aggiornato in questo magazzino
Manufacturer,Fabbricante
Manufacturer Part Number,Codice produttore
Manufacturing,Produzione
Manufacturing Quantity,Produzione Quantità
Margin,Margine
Marital Status,Stato civile
Market Segment,Segmento di Mercato
Married,Sposato
Mass Mailing,Mailing di massa
Master,Maestro
Master Name,Maestro Nome
Master Type,Master
Masters,Masters
Match,Fiammifero
Match non-linked Invoices and Payments.,Partita Fatture non collegati e pagamenti.
Material Issue,Material Issue
Material Receipt,Materiale Ricevuta
Material Request,Materiale Richiesta
Material Request Date,Materiale Data di Richiesta
Material Request Detail No,Materiale richiesta dettaglio No
Material Request For Warehouse,Richiesta di materiale per il magazzino
Material Request Item,Materiale Richiesta articolo
Material Request Items,Materiale Richiesta Articoli
Material Request No,Materiale Richiesta No
Material Request Type,Materiale Tipo di richiesta
Material Request used to make this Stock Entry,Richiesta di materiale usato per fare questo Stock Entry
Material Requests for which Supplier Quotations are not created,Richieste di materiale con le quotazioni dei fornitori non sono creati
Material Requirement,Material Requirement
Material Transfer,Material Transfer
Materials,Materiali
Materials Required (Exploded),Materiali necessari (esploso)
Max 500 rows only.,Solo Max 500 righe.
Max Attachments,Numero massimo allegati
Max Days Leave Allowed,Max giorni di ferie domestici
Max Discount (%),Sconto Max (%)
"Meaning of Submit, Cancel, Amend","Significato dei Submit, cancellare, rettificare"
Medium,Media
"Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href=""#Form/Style Settings"">Style Settings</a>","Le voci di menu nella barra superiore. Per impostare il colore della barra superiore, vai a <a href=""#Form/Style Settings"">Impostazioni di stile</a>"
Merge,Unisci
Merge Into,Unire in
Merge Warehouses,Unisci Magazzini
Merging is only possible between Group-to-Group or 					Ledger-to-Ledger,La fusione è possibile solo tra il gruppo-a-gruppo o Ledger-to-Ledger
"Merging is only possible if following \					properties are same in both records.					Group or Ledger, Debit or Credit, Is PL Account","La fusione è possibile solo se seguendo \ proprietà sono uguali in entrambi i record. Gruppo o Ledger, di debito o di credito, è l&#39;account PL"
Message,Messaggio
Message Parameter,Messaggio Parametro
Message greater than 160 character will be splitted into multiple mesage,Messaggio maggiore di 160 caratteri verrà divisa in mesage multipla
Messages,Messaggi
Method,Metodo
Middle Income,Reddito Medio
Middle Name (Optional),Nome (facoltativo)
Milestone,Milestone
Milestone Date,Milestone Data
Milestones,Milestones
Milestones will be added as Events in the Calendar,Pietre miliari saranno aggiunti come eventi nel calendario
Millions,Milioni
Min Order Qty,Qtà ordine minimo
Minimum Order Qty,Qtà ordine minimo
Misc,Varie
Misc Details,Varie Dettagli
Miscellaneous,Varie
Miscelleneous,Miscelleneous
Mobile No,Cellulare No
Mobile No.,Cellulare No.
Mode of Payment,Modalità di Pagamento
Modern,Moderna
Modified Amount,Importo modificato
Modified by,Modificato da
Module,Modulo
Module Def,Modulo Def
Module Name,Nome modulo
Modules,Moduli
Monday,Lunedi
Month,Mese
Monthly,Mensile
Monthly Attendance Sheet,Foglio presenze mensile
Monthly Earning & Deduction,Guadagno mensile &amp; Deduzione
Monthly Salary Register,Stipendio mensile Registrati
Monthly salary statement.,Certificato di salario mensile.
Monthly salary template.,Modello di stipendio mensile.
More,Più
More Details,Maggiori dettagli
More Info,Ulteriori informazioni
More content for the bottom of the page.,Più contenuti per la parte inferiore della pagina.
Moving Average,Media mobile
Moving Average Rate,Media mobile Vota
Mr,Sig.
Ms,Ms
Multiple Item Prices,Molteplici Voce Prezzi
Multiple root nodes not allowed.,Nodi principali multipli non ammessi.
Mupltiple Item prices.,Mupltiple prezzi degli articoli.
Must be Whole Number,Devono essere intere Numero
Must have report permission to access this report.,Deve avere relazione di permesso di accedere a questo rapporto.
Must specify a Query to run,Necessario specificare una query per eseguire
My Settings,Le mie impostazioni
NL-,NL-
Name,Nome
Name Case,Nome Caso
Name and Description,Nome e descrizione
Name and Employee ID,Nome e ID dipendente
Name as entered in Sales Partner master,Nome come iscritto nel Vendite Partner maestro
Name is required,Il nome è obbligatorio
Name of organization from where lead has come,Nome dell&#39;organizzazione da cui cavo è arrivato
Name of person or organization that this address belongs to.,Nome della persona o organizzazione che questo indirizzo appartiene.
Name of the Budget Distribution,Nome della distribuzione del bilancio
Name of the entity who has requested for the Material Request,Nome del soggetto che ha chiesto per il materiale Request
Naming,Naming
Naming Series,Naming Series
Naming Series mandatory,Naming Serie obbligatorio
Negative balance is not allowed for account ,Saldo negativo non è consentito per conto
Net Pay,Retribuzione netta
Net Pay (in words) will be visible once you save the Salary Slip.,Pay netto (in lettere) sarà visibile una volta che si salva il foglio paga.
Net Total,Total Net
Net Total (Company Currency),Totale netto (Azienda valuta)
Net Weight,Peso netto
Net Weight UOM,UOM Peso netto
Net Weight of each Item,Peso netto di ogni articolo
Net pay can not be negative,Retribuzione netta non può essere negativo
Never,Mai
New,Nuovo
New BOM,Nuovo BOM
New Communications,New Communications
New Delivery Notes,Nuovi Consegna Note
New Enquiries,Nuove Richieste
New Leads,New Leads
New Leave Application,Nuovo Lascia Application
New Leaves Allocated,Nuove foglie allocato
New Leaves Allocated (In Days),Nuove foglie attribuiti (in giorni)
New Material Requests,Nuovo materiale Richieste
New Password,Nuova password
New Projects,Nuovi Progetti
New Purchase Orders,Nuovi Ordini di acquisto
New Purchase Receipts,Nuovo acquisto Ricevute
New Quotations,Nuove citazioni
New Record,Nuovo Record
New Sales Orders,Nuovi Ordini di vendita
New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,Nuova serie No non può avere Warehouse. Warehouse deve essere impostato da dell&#39;entrata Stock o ricevuta di acquisto
New Stock Entries,Nuove entrate nelle scorte
New Stock UOM,Nuovo UOM Archivio
New Supplier Quotations,Nuove citazioni Fornitore
New Support Tickets,Nuovi biglietti di supporto
New Workplace,Nuovo posto di lavoro
New value to be set,Nuovo valore da impostare
Newsletter,Newsletter
Newsletter Content,Newsletter Contenuto
Newsletter Status,Newsletter di stato
"Newsletters to contacts, leads.","Newsletter ai contatti, lead."
Next Communcation On,Avanti Comunicazione sui
Next Contact By,Avanti Contatto Con
Next Contact Date,Avanti Contact Data
Next Date,Avanti Data
Next State,Stato Successivo
Next actions,Prossime azioni
Next email will be sent on:,Email prossimo verrà inviato:
No,No
"No Account found in csv file, 							May be company abbreviation is not correct","Nessun account trovato nel csv, Può essere abbreviazione azienda non è corretto"
No Action,Nessuna azione
No Communication tagged with this ,Nessuna comunicazione con i tag presente
No Copy,No Copy
No Customer Accounts found. Customer Accounts are identified based on \			'Master Type' value in account record.,Nessun cliente ha trovato. Contabilità clienti vengono identificati in base al valore &#39;Master&#39; \ in considerazione record.
No Item found with Barcode,Nessun articolo trovato con i codici a barre
No Items to Pack,Articoli da imballare
No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user.,No Lasciare approvazioni. Assegnare &#39;Lascia Approvatore&#39; Role a atleast un utente.
No Permission,Nessuna autorizzazione
No Permission to ,Nessun permesso di
No Permissions set for this criteria.,Nessun permessi impostati per questo criterio.
No Report Loaded. Please use query-report/[Report Name] to run a report.,No Segnala Loaded. Si prega di utilizzare query report / [Nome report] per eseguire un report.
No Supplier Accounts found. Supplier Accounts are identified based on \			'Master Type' value in account record.,Nessun account Fornitore trovato. Contabilità fornitori sono identificati sulla base del valore &#39;Master&#39; \ in considerazione record.
No User Properties found.,Nessun proprietà utente trovato.
No default BOM exists for item: ,No BOM esiste per impostazione predefinita articolo:
No further records,Nessun ulteriore record
No of Requested SMS,No di SMS richiesto
No of Sent SMS,No di SMS inviati
No of Visits,No di visite
No one,Nessuno
No permission to edit,Non hai il permesso di modificare
No permission to write / remove.,Non hai il permesso di scrivere / eliminare.
No record found,Nessun record trovato
No records tagged.,Nessun record marcati.
No salary slip found for month: ,Nessun foglio paga trovato per mese:
"No table is created for Single DocTypes, all values are stored in tabSingles as a tuple.","Nessuna tabella viene creata per DOCTYPE singoli, tutti i valori sono memorizzati in tabSingles come una tupla."
None,Nessuno
None: End of Workflow,Nessuno: Fine del flusso di lavoro
Not,Non
Not Active,Non attivo
Not Applicable,Non Applicabile
Not Available,Non disponibile
Not Billed,Non fatturata
Not Delivered,Non consegnati
Not Found,Not Found
Not Linked to any record.,Non legati a nessun record.
Not Permitted,Non Consentito
Not allowed for: ,Non è consentito per:
Not enough permission to see links.,Non basta il permesso di vedere i link.
Not interested,Non interessato
Not linked,Non linkato
Note,Nota
Note User,Nota User
Note is a free page where users can share documents / notes,Nota è una pagina libera in cui gli utenti possono condividere documenti / note
"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Nota: I backup ei file non vengono eliminati da Dropbox, sarà necessario eliminarli manualmente."
"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.","Nota: I backup ei file non vengono eliminati da Google Drive, sarà necessario eliminarli manualmente."
Note: Email will not be sent to disabled users,Nota: E-mail non sarà inviato agli utenti disabili
"Note: For best results, images must be of the same size and width must be greater than height.","Nota: Per ottenere risultati ottimali, le immagini devono essere della stessa dimensione e la larghezza non deve essere superiore all&#39;altezza."
Note: Other permission rules may also apply,Nota: si possono verificare anche altre regole di autorizzazione
Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts,Nota: È possibile gestire più indirizzi o Contatti via Indirizzi &amp; Contatti
Note: maximum attachment size = 1mb,Nota: la dimensione massima allegato = 1MB
Notes,Note
Nothing to show,Niente da mostrare
Notice - Number of Days,Avviso - Numero di giorni
Notification Control,Controllo di notifica
Notification Email Address,Indirizzo e-mail di notifica
Notify By Email,Notifica via e-mail
Notify by Email on creation of automatic Material Request,Notifica tramite e-mail sulla creazione di Richiesta automatica Materiale
Number Format,Formato numero
O+,O +
O-,O-
OPPT,OPPT
Office,Ufficio
Old Parent,Vecchio genitore
On,On
On Net Total,Sul totale netto
On Previous Row Amount,Sul Fila Indietro Importo
On Previous Row Total,Sul Fila Indietro totale
"Once you have set this, the users will only be able access documents with that property.","Una volta impostato questo, gli utenti saranno in grado di accedere solo i documenti con tale proprietà."
Only Administrator allowed to create Query / Script Reports,Solo amministratore ha permesso di creare delle query / Script Reports
Only Administrator can save a standard report. Please rename and save.,Solo amministratore può salvare un report standard. Si prega di rinominare e salvare.
Only Allow Edit For,Consenti solo Edit Per
"Only Serial Nos with status ""Available"" can be delivered.",Possono essere consegnati solo i numeri seriali con stato &quot;Disponibile&quot;.
Only Stock Items are allowed for Stock Entry,Solo Archivio articoli sono ammessi per la Stock Entry
Only System Manager can create / edit reports,Solo il Gestore di sistema in grado di creare / modificare i rapporti
Only leaf nodes are allowed in transaction,Solo i nodi foglia sono ammessi nelle transazioni
Open,Aprire
Open Production Orders,Aprire ordini di produzione
Open Sans,Aperte Sans
Open Tickets,Biglietti Open
Opening Date,Data di apertura
Opening Entry,Apertura Entry
Opening Time,Tempo di apertura
Opening for a Job.,Apertura di un lavoro.
Operating Cost,Costo di gestione
Operation Description,Operazione Descrizione
Operation No,Operazione No
Operation Time (mins),Tempo di funzionamento (min)
Operations,Operazioni
Opportunity,Opportunità
Opportunity Date,Opportunity Data
Opportunity From,Opportunità da
Opportunity Item,Opportunità articolo
Opportunity Items,Articoli Opportunità
Opportunity Lost,Occasione persa
Opportunity Type,Tipo di Opportunità
Options,Opzioni
Options Help,Opzioni Aiuto
Order Confirmed,Ordine confermato
Order Lost,Ordine perduto
Order Type,Tipo di ordine
Ordered Items To Be Billed,Articoli ordinati da fatturare
Ordered Items To Be Delivered,Articoli ordinati da consegnare
Ordered Quantity,Ordinato Quantità
Orders released for production.,Gli ordini rilasciati per la produzione.
Organization Profile,Profilo dell&#39;organizzazione
Original Message,Original Message
Other,Altro
Other Details,Altri dettagli
Out,Fuori
Out of AMC,Fuori di AMC
Out of Warranty,Fuori garanzia
Outgoing,In partenza
Outgoing Mail Server,Server posta in uscita
Outgoing Mails,Mail in uscita
Outstanding Amount,Eccezionale Importo
Outstanding for Voucher ,Eccezionale per i Voucher
Over Heads,Sopra le teste
Overhead,Overhead
Overlapping Conditions found between,Condizioni sovrapposte trovati tra
Owned,Di proprietà
PAN Number,Numero PAN
PF No.,PF No.
PF Number,Numero PF
PI/2011/,PI/2011 /
PIN,PIN
PO,PO
POP3 Mail Server,POP3 Mail Server
POP3 Mail Server (e.g. pop.gmail.com),POP3 Mail Server (ad esempio pop.gmail.com)
POP3 Mail Settings,Impostazioni di posta POP3
POP3 mail server (e.g. pop.gmail.com),POP3 server di posta (ad esempio pop.gmail.com)
POP3 server e.g. (pop.gmail.com),Server POP3 per esempio (pop.gmail.com)
POS Setting,POS Impostazione
POS View,POS View
PR Detail,PR Dettaglio
PRO,PRO
PS,PS
Package Item Details,Confezione Articolo Dettagli
Package Items,Articoli della confezione
Package Weight Details,Pacchetto peso
Packing Details,Particolari dell&#39;imballaggio
Packing Detials,Detials imballaggio
Packing List,Lista di imballaggio
Packing Slip,Documento di trasporto
Packing Slip Item,Distinta di imballaggio articolo
Packing Slip Items,Imballaggio elementi slittamento
Packing Slip(s) Cancelled,Bolla di accompagnamento (s) Annullato
Page,Pagina
Page Background,Sfondo pagina
Page Border,Bordo pagina
Page Break,Interruzione di pagina
Page HTML,Pagina HTML
Page Headings,Pagina Rubriche
Page Links,Pagina Links
Page Name,Nome pagina
Page Role,Pagina Ruolo
Page Text,Pagina di testo
Page content,Contenuto della pagina
Page not found,Pagina non trovata
Page text and background is same color. Please change.,Testo di pagina e lo sfondo è dello stesso colore. Per favore cambia.
Page to show on the website,Pagina di mostrare sul sito
"Page url name (auto-generated) (add "".html"")",Pagina nome url (generata automaticamente) (aggiungere &quot;. Html&quot;)
Paid Amount,Importo pagato
Parameter,Parametro
Parent Account,Account principale
Parent Cost Center,Parent Centro di costo
Parent Customer Group,Parent Gruppo clienti
Parent Detail docname,Parent Dettaglio docname
Parent Item,Parent Item
Parent Item Group,Capogruppo Voce
Parent Label,Parent Label
Parent Sales Person,Parent Sales Person
Parent Territory,Territorio genitore
Parent is required.,È richiesta Parent.
Parenttype,ParentType
Partially Completed,Parzialmente completato
Participants,Partecipanti
Partly Billed,Parzialmente Fatturato
Partly Delivered,Parzialmente Consegnato
Partner Target Detail,Partner di destinazione Dettaglio
Partner Type,Tipo di partner
Partner's Website,Sito del Partner
Passive,Passive
Passport Number,Numero di passaporto
Password,Parola d&#39;ordine
Password Expires in (days),La password scade in (giorni)
Patch,Patch
Patch Log,Patch Log
Pay To / Recd From,Pay To / RECD Da
Payables,Debiti
Payables Group,Debiti Gruppo
Payment Collection With Ageing,Collezione di pagamento Con Invecchiamento
Payment Days,Giorni di Pagamento
Payment Entries,Voci di pagamento
Payment Entry has been modified after you pulled it. 			Please pull it again.,Entrata pagamento è stato modificato dopo l&#39;tirato. Si prega di tirare di nuovo.
Payment Made With Ageing,Pagamento effettuato con Invecchiamento
Payment Reconciliation,Riconciliazione Pagamento
Payment Terms,Condizioni di pagamento
Payment to Invoice Matching Tool,Pagamento a fattura Matching Tool
Payment to Invoice Matching Tool Detail,Pagamento a fattura Corrispondenza Dettaglio Strumento
Payments,Pagamenti
Payments Made,Pagamenti effettuati
Payments Received,Pagamenti ricevuti
Payments made during the digest period,I pagamenti effettuati nel periodo digest
Payments received during the digest period,I pagamenti ricevuti durante il periodo di digest
Payroll Setup,Setup Payroll
Pending,In attesa
Pending Review,In attesa recensione
Pending SO Items For Purchase Request,Elementi in sospeso così per Richiesta di Acquisto
Percent,Percentuale
Percent Complete,Percentuale completamento
Percentage Allocation,Percentuale di allocazione
Percentage Allocation should be equal to ,Percentuale assegnazione dovrebbe essere uguale a
Percentage variation in quantity to be allowed while receiving or delivering this item.,Variazione percentuale della quantità di essere consentito durante la ricezione o la consegna di questo oggetto.
Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,Percentuale si è permesso di ricevere o consegnare di più contro la quantità ordinata. Per esempio: Se avete ordinato 100 unità. e il vostro assegno è 10% poi si è permesso di ricevere 110 unità.
Performance appraisal.,Valutazione delle prestazioni.
Period Closing Voucher,Periodo di chiusura Voucher
Periodicity,Periodicità
Perm Level,Perm Livello
Permanent Accommodation Type,Permanente Tipo Alloggio
Permanent Address,Indirizzo permanente
Permission,Autorizzazione
Permission Level,Livello di autorizzazione
Permission Levels,Livelli di autorizzazione
Permission Manager,Permission Manager
Permission Rules,Regole di autorizzazione
Permissions,Permessi di Scrittura
Permissions Settings,Impostazioni delle autorizzazioni
Permissions are automatically translated to Standard Reports and Searches,Le autorizzazioni vengono tradotti automaticamente al report standard e Ricerche
"Permissions are set on Roles and Document Types (called DocTypes) by restricting read, edit, make new, submit, cancel, amend and report rights.","I permessi sono impostati su Ruoli e tipi di documenti (chiamato DOCTYPE) limitando leggere, modificare, creare nuovo, sostengono, cancellare, modificare e segnalare i diritti."
Permissions at higher levels are 'Field Level' permissions. All Fields have a 'Permission Level' set against them and the rules defined at that permissions apply to the field. This is useful incase you want to hide or make certain field read-only.,Autorizzazioni a livelli più alti sono permessi &#39;livello di campo&#39;. Tutti i campi hanno stabilito un &#39;livello di autorizzazione&#39; contro di loro e le regole definite a che le autorizzazioni si applicano al campo. Ciò è utile in caso si desidera nascondere o rendere certo campo di sola lettura.
"Permissions at level 0 are 'Document Level' permissions, i.e. they are primary for access to the document.","Permessi di livello 0 sono permessi &#39;a livello di documento&#39;, cioè sono primario per l&#39;accesso al documento."
Permissions translate to Users based on what Role they are assigned,Permessi traducono per gli utenti in base a ciò di ruolo sono assegnati
Person,Persona
Person To Be Contacted,Persona da contattare
Personal,Personale
Personal Details,Dettagli personali
Personal Email,Personal Email
Phone,Telefono
Phone No,N. di telefono
Phone No.,No. Telefono
Pick Columns,Scegli Colonne
Pincode,PINCODE
Place of Issue,Luogo di emissione
Plan for maintenance visits.,Piano per le visite di manutenzione.
Planned Qty,Qtà Planned
Planned Quantity,Prevista Quantità
Plant,Impianto
Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,Inserisci Abbreviazione o Nome breve correttamente in quanto verrà aggiunto come suffisso a tutti i Capi account.
Please Update Stock UOM with the help of Stock UOM Replace Utility.,Si prega di aggiornare Archivio UOM con l&#39;aiuto di Archivio UOM Replace Utility.
Please attach a file first.,Si prega di allegare un file.
Please attach a file or set a URL,Si prega di allegare un file o impostare un URL
Please check,Si prega di verificare
Please enter Default Unit of Measure,Inserisci unità di misura predefinita
Please enter Delivery Note No or Sales Invoice No to proceed,Inserisci il DDT o fattura di vendita No No per procedere
Please enter Employee Number,Inserisci il numero dei dipendenti
Please enter Expense Account,Inserisci il Conto uscite
Please enter Expense/Adjustment Account,Inserisci Expense / regolazione account
Please enter Purchase Receipt No to proceed,Inserisci Acquisto Ricevuta No per procedere
Please enter Reserved Warehouse for item ,Inserisci Magazzino riservata per la voce
Please enter valid,Inserisci valido
Please enter valid ,Inserisci valido
Please install dropbox python module,Si prega di installare dropbox modulo python
Please make sure that there are no empty columns in the file.,Assicurarsi che non ci sono le colonne vuote nel file prega.
Please mention default value for ',Si prega di citare il valore di default per &#39;
Please reduce qty.,Ridurre qty.
Please refresh to get the latest document.,Si prega di aggiornamento per ottenere l&#39;ultimo documento.
Please save the Newsletter before sending.,Si prega di salvare la newsletter prima dell&#39;invio.
Please select Bank Account,Seleziona conto bancario
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Si prega di selezionare il riporto se anche voi volete includere equilibrio precedente anno fiscale di parte per questo anno fiscale
Please select Date on which you want to run the report,Seleziona la data in cui si desidera eseguire il report
Please select Naming Neries,Seleziona Neries di denominazione
Please select Price List,Seleziona Listino Prezzi
Please select Time Logs.,Si prega di selezionare Time Diari.
Please select a,Si prega di selezionare una
Please select a csv file,Seleziona un file csv
Please select a file or url,Si prega di selezionare un file o URL
Please select a service item or change the order type to Sales.,Si prega di selezionare una voce di servizio o modificare il tipo di ordine di vendite.
Please select a sub-contracted item or do not sub-contract the transaction.,Si prega di selezionare una voce di subappalto o non fare subappaltare la transazione.
Please select a valid csv file with data.,Si prega di selezionare un file csv con i dati validi.
Please select month and year,Si prega di selezionare mese e anno
Please select the document type first,Si prega di selezionare il tipo di documento prima
Please select: ,Si prega di selezionare:
Please set Dropbox access keys in,Si prega di impostare le chiavi di accesso a Dropbox
Please set Google Drive access keys in,Si prega di impostare Google chiavi di accesso di unità in
Please setup Employee Naming System in Human Resource > HR Settings,Si prega di impostazione dei dipendenti sistema di nomi delle risorse umane&gt; Impostazioni HR
Please specify,Si prega di specificare
Please specify Company,Si prega di specificare Azienda
Please specify Company to proceed,Si prega di specificare Società di procedere
Please specify Default Currency in Company Master \			and Global Defaults,Si prega di specificare Valuta predefinita nel Master Company \ e dei valori predefiniti globali
Please specify a,Si prega di specificare una
Please specify a Price List which is valid for Territory,Si prega di specificare una lista di prezzi è valido per il Territorio
Please specify a valid,Si prega di specificare una valida
Please specify a valid 'From Case No.',Si prega di specificare una valida &#39;Dalla sentenza n&#39;
Please specify currency in Company,Si prega di specificare la valuta in Azienda
Point of Sale,Punto di vendita
Point-of-Sale Setting,Point-of-Sale Setting
Post Graduate,Post Laurea
Post Topic,Posta Topic
Postal,Postale
Posting Date,Data di registrazione
Posting Date Time cannot be before,Data di registrazione Il tempo non può essere prima
Posting Time,Tempo Distacco
Posts,Messaggi
Potential Sales Deal,Potenziale accordo di vendita
Potential opportunities for selling.,Potenziali opportunità di vendita.
"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Di precisione per i campi Float (quantità, sconti, percentuali ecc). Galleggianti vengono arrotondate per eccesso al decimali specificati. Default = 3"
Preferred Billing Address,Preferito Indirizzo di fatturazione
Preferred Shipping Address,Preferito Indirizzo spedizione
Prefix,Prefisso
Present,Presente
Prevdoc DocType,Prevdoc DocType
Prevdoc Doctype,Prevdoc Doctype
Preview,Anteprima
Previous Work Experience,Lavoro precedente esperienza
Price,Prezzo
Price List,Listino Prezzi
Price List Currency,Prezzo di listino Valuta
Price List Currency Conversion Rate,Prezzo di listino Valuta Tasso di conversione
Price List Exchange Rate,Listino Prezzi Tasso di Cambio
Price List Master,Prezzo di listino principale
Price List Name,Prezzo di listino Nome
Price List Rate,Prezzo di listino Vota
Price List Rate (Company Currency),Prezzo di listino Prezzo (Azienda valuta)
Price List for Costing,Listino prezzi per il calcolo dei costi
Price Lists and Rates,Listini prezzi e tariffe
Primary,Primaria
Print Format,Formato Stampa
Print Format Style,Formato Stampa Style
Print Format Type,Stampa Tipo di formato
Print Heading,Stampa Rubrica
Print Hide,Stampa Hide
Print Width,Larghezza di stampa
Print Without Amount,Stampare senza Importo
Print...,Stampa ...
Priority,Priorità
Private,Privato
Proceed to Setup,Procedere con l&#39;impostazione
Process,Processo
Process Payroll,Processo Payroll
Produced Quantity,Prodotto Quantità
Product Enquiry,Prodotto Inchiesta
Production Order,Ordine di produzione
Production Orders,Ordini di produzione
Production Orders in Progress,Ordini di produzione in corso
Production Plan Item,Produzione Piano Voce
Production Plan Items,Produzione Piano Articoli
Production Plan Sales Order,Produzione Piano di ordini di vendita
Production Plan Sales Orders,Produzione piano di vendita Ordini
Production Planning (MRP),Pianificazione della produzione (MRP)
Production Planning Tool,Production Planning Tool
"Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.","I prodotti saranno ordinati in peso-età nelle ricerche predefinite. Più il peso-età, più alto è il prodotto verrà visualizzato nell&#39;elenco."
Profile,Profilo
Profile Defaults,Defaults Profilo
Profile Represents a User in the system.,Profilo Rappresenta un utente nel sistema.
Profile of a Blogger,Profilo di un Blogger
Profile of a blog writer.,Profilo di uno scrittore blog.
Project,Progetto
Project Costing,Progetto Costing
Project Details,Dettagli del progetto
Project Milestone,Progetto Milestone
Project Milestones,Tappe del progetto
Project Name,Nome del progetto
Project Start Date,Data di inizio del progetto
Project Type,Tipo di progetto
Project Value,Valore di progetto
Project activity / task.,Attività / attività del progetto.
Project master.,Progetto Master.
Project will get saved and will be searchable with project name given,Progetto avranno salvato e sarà consultabile con il nome di progetto dato
Project wise Stock Tracking,Progetto saggio Archivio monitoraggio
Projected Qty,Qtà Proiettata
Projects,Progetti
Prompt for Email on Submission of,Richiedi Email su presentazione di
Properties,Proprietà
Property,Proprietà
Property Setter,Setter Proprietà
Property Setter overrides a standard DocType or Field property,Setter proprietà sostituisce un immobile docType campo standard
Property Type,Tipo di proprietà
Provide email id registered in company,Fornire id-mail registrato in azienda
Public,Pubblico
Published,Pubblicato
Published On,Edizione del
Pull Emails from the Inbox and attach them as Communication records (for known contacts).,Tirare mail dalla posta in arrivo e collegarli come record di comunicazione (per contatti conosciuti).
Pull Payment Entries,Tirare le voci di pagamento
Pull sales orders (pending to deliver) based on the above criteria,Tirare ordini di vendita (in attesa di consegnare) sulla base dei criteri di cui sopra
Purchase,Acquisto
Purchase / Manufacture Details,Acquisto / Produzione Dettagli
Purchase Analytics,Acquisto Analytics
Purchase Common,Comuni di acquisto
Purchase Details,"Acquisto, i dati"
Purchase Discounts,Acquisto Sconti
Purchase In Transit,Acquisto In Transit
Purchase Invoice,Acquisto Fattura
Purchase Invoice Advance,Acquisto Advance Fattura
Purchase Invoice Advances,Acquisto anticipi fatture
Purchase Invoice Item,Acquisto Articolo Fattura
Purchase Invoice Trends,Acquisto Tendenze Fattura
Purchase Order,Ordine di acquisto
Purchase Order Date,Ordine di acquisto Data
Purchase Order Item,Ordine di acquisto dell&#39;oggetto
Purchase Order Item No,Acquisto fig
Purchase Order Item Supplied,Ordine di acquisto Articolo inserito
Purchase Order Items,Acquisto Ordine Articoli
Purchase Order Items Supplied,Ordine di Acquisto Standard di fornitura
Purchase Order Items To Be Billed,Ordine di Acquisto Articoli da fatturare
Purchase Order Items To Be Received,Ordine di Acquisto Oggetti da ricevere
Purchase Order Message,Ordine di acquisto Message
Purchase Order Required,Ordine di Acquisto Obbligatorio
Purchase Order Trends,Acquisto Tendenze Ordine
Purchase Order sent by customer,Ordine di acquisto inviato dal cliente
Purchase Orders given to Suppliers.,Ordini di acquisto prestate a fornitori.
Purchase Receipt,RICEVUTA
Purchase Receipt Item,RICEVUTA articolo
Purchase Receipt Item Supplied,Acquisto Ricevuta Articolo inserito
Purchase Receipt Item Supplieds,RICEVUTA Voce Supplieds
Purchase Receipt Items,Acquistare oggetti Receipt
Purchase Receipt Message,RICEVUTA Messaggio
Purchase Receipt No,RICEVUTA No
Purchase Receipt Required,Acquisto necessaria la ricevuta
Purchase Receipt Trends,Acquisto Tendenze Receipt
Purchase Register,Acquisto Registrati
Purchase Return,Acquisto Ritorno
Purchase Returned,Acquisto restituito
Purchase Taxes and Charges,Acquisto Tasse e Costi
Purchase Taxes and Charges Master,Acquisto Tasse e Spese master
Purpose,Scopo
Purpose must be one of ,Scopo deve essere uno dei
Python Module Name,Python Nome modulo
QA Inspection,Ispezione QA
QAI/11-12/,QAI/11-12 /
QTN,QTN
Qty,Qtà
Qty Consumed Per Unit,Quantità consumata per unità
Qty To Manufacture,Quantità di fabbricare
Qty as per Stock UOM,Quantità come da UOM Archivio
Qualification,Qualifica
Quality,Qualità
Quality Inspection,Controllo Qualità
Quality Inspection Parameters,Parametri di controllo qualità
Quality Inspection Reading,Lettura Controllo Qualità
Quality Inspection Readings,Letture di controllo di qualità
Quantity,Quantità
Quantity Requested for Purchase,Quantità a fini di acquisto
Quantity already manufactured,Quantità già prodotto
Quantity and Rate,Quantità e Prezzo
Quantity and Warehouse,Quantità e Magazzino
Quantity cannot be a fraction.,Quantità non può essere una frazione.
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Quantità di prodotto ottenuto dopo la produzione / reimballaggio da determinati quantitativi di materie prime
Quantity should be equal to Manufacturing Quantity. ,Quantità dovrebbe essere uguale a Manufacturing pezzi.
Quarter,Quartiere
Quarterly,Trimestrale
Query,Query
Query Options,Opzioni query
Query Report,Rapporto sulle query
Query must be a SELECT,Query deve essere una SELEZIONA
Quick Help for Setting Permissions,Guida rapida per Impostazione delle autorizzazioni
Quick Help for User Properties,Guida rapida per la proprietà utente
Quotation,Quotazione
Quotation Date,Preventivo Data
Quotation Item,Quotazione articolo
Quotation Items,Voci di quotazione
Quotation Lost Reason,Quotazione Perso Motivo
Quotation Message,Quotazione Messaggio
Quotation Sent,Quotazione Sent
Quotation Series,Serie Quotazione
Quotation To,Preventivo A
Quotation Trend,Quotazione Trend
Quotations received from Suppliers.,Citazioni ricevute dai fornitori.
Quotes to Leads or Customers.,Citazioni a clienti o contatti.
Raise Material Request when stock reaches re-order level,Sollevare Materiale Richiesta quando le azione raggiunge il livello di riordino
Raised By,Sollevata dal
Raised By (Email),Sollevata da (e-mail)
Random,Casuale
Range,Gamma
Rate,Vota
Rate ,Vota
Rate (Company Currency),Vota (Azienda valuta)
Rate Of Materials Based On,Tasso di materiali a base di
Rate and Amount,Aliquota e importo
Rate at which Customer Currency is converted to customer's base currency,Velocità con cui valuta Cliente viene convertito in valuta di base del cliente
Rate at which Price list currency is converted to company's base currency,Tasso al quale Listino valuta viene convertita in valuta di base dell&#39;azienda
Rate at which Price list currency is converted to customer's base currency,Tasso al quale Listino valuta viene convertita in valuta di base del cliente
Rate at which customer's currency is converted to company's base currency,Tasso al quale la valuta del cliente viene convertito in valuta di base dell&#39;azienda
Rate at which supplier's currency is converted to company's base currency,Tasso al quale la valuta del fornitore viene convertito in valuta di base dell&#39;azienda
Rate at which this tax is applied,Tasso a cui viene applicata questa tassa
Raw Material Item Code,Materia Codice Articolo
Raw Materials Supplied,Materie prime fornite
Raw Materials Supplied Cost,Materie prime fornite Costo
Re-Order Level,Re-Order Livello
Re-Order Qty,Re-Order Qty
Re-order,Re-order
Re-order Level,Livello di riordino
Re-order Qty,Re-order Qtà
Read,Leggi
Read Only,Solo lettura
Reading 1,Lettura 1
Reading 10,Reading 10
Reading 2,Lettura 2
Reading 3,Reading 3
Reading 4,Reading 4
Reading 5,Lettura 5
Reading 6,Lettura 6
Reading 7,Leggendo 7
Reading 8,Lettura 8
Reading 9,Lettura 9
Reason,Motivo
Reason for Leaving,Ragione per lasciare
Reason for Resignation,Motivo della Dimissioni
Recd Quantity,RECD Quantità
Receivable / Payable account will be identified based on the field Master Type,Conto da ricevere / pagare sarà identificato in base al campo Master
Receivables,Crediti
Receivables / Payables,Crediti / Debiti
Receivables Group,Gruppo Crediti
Received Date,Data Received
Received Items To Be Billed,Oggetti ricevuti da fatturare
Received Qty,Quantità ricevuta
Received and Accepted,Ricevuti e accettati
Receiver List,Lista Ricevitore
Receiver Parameter,Ricevitore Parametro
Recipient,Destinatario
Recipients,Destinatari
Reconciliation Data,Dati Riconciliazione
Reconciliation HTML,Riconciliazione HTML
Reconciliation JSON,Riconciliazione JSON
Record item movement.,Registrare il movimento dell&#39;oggetto.
Recurring Id,Id ricorrente
Recurring Invoice,Fattura ricorrente
Recurring Type,Tipo ricorrente
Reduce Deduction for Leave Without Pay (LWP),Ridurre Deduzione per aspettativa senza assegni (LWP)
Reduce Earning for Leave Without Pay (LWP),Ridurre Guadagnare in aspettativa senza assegni (LWP)
Ref Code,Rif. Codice
Ref Date is Mandatory if Ref Number is specified,Rif. Data è obbligatorio se viene specificato Numero Rif.
Ref DocType,Rif. DocType
Ref Name,Rif. Nome
Ref Rate,Rif. Vota
Ref SQ,Rif. SQ
Ref Type,Tipo Rif.
Reference,Riferimento
Reference Date,Data di riferimento
Reference DocName,Riferimento DocName
Reference DocType,Riferimento DocType
Reference Name,Nome di riferimento
Reference Number,Numero di riferimento
Reference Type,Tipo di riferimento
Refresh,Refresh
Registered but disabled.,Registrato ma disabilitato.
Registration Details,Dettagli di registrazione
Registration Details Emailed.,Dettagli di registrazione ricevuta via email.
Registration Info,Informazioni di Registrazione
Rejected,Rifiutato
Rejected Quantity,Rifiutato Quantità
Rejected Serial No,Rifiutato Serial No
Rejected Warehouse,Magazzino Rifiutato
Relation,Relazione
Relieving Date,Alleviare Data
Relieving Date of employee is ,Alleviare Data di dipendenti è
Remark,Osservazioni
Remarks,Osservazioni
Remove Bookmark,Rimuovere Bookmark
Rename Log,Rinominare Entra
Rename Tool,Rename Tool
Rename...,Rinomina ...
Rented,Affittato
Repeat On,Ripetere On
Repeat Till,Ripetere Fino
Repeat on Day of Month,Ripetere il Giorno del mese
Repeat this Event,Ripetere questo evento
Replace,Sostituire
Replace Item / BOM in all BOMs,Sostituire Voce / BOM in tutte le distinte base
"Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Sostituire un particolare distinta base in tutte le altre distinte base in cui viene utilizzato. Sostituirà il vecchio link BOM, aggiornare costo e rigenerare &quot;Explosion articolo BOM&quot; tavolo come da nuovo BOM"
Replied,Ha risposto
Report,Segnala
Report Builder,Report Builder
Report Builder reports are managed directly by the report builder. Nothing to do.,Report di Generatore report vengono gestite direttamente dal costruttore rapporto. Niente da fare.
Report Date,Data Segnala
Report Hide,Segnala Hide
Report Name,Nome rapporto
Report Type,Tipo di rapporto
Report was not saved (there were errors),Relazione non è stato salvato (ci sono stati errori)
Reports,Rapporti
Reports to,Relazioni al
Represents the states allowed in one document and role assigned to change the state.,Rappresenta gli stati ammessi in un unico documento e ruolo assegnato per cambiare lo stato.
Reqd,Reqd
Reqd By Date,Reqd Per Data
Request Type,Tipo di richiesta
Request for Information,Richiesta di Informazioni
Request for purchase.,Richiesta di acquisto.
Requested By,Richiesto da
Requested Items To Be Ordered,Elementi richiesti da ordinare
Requested Items To Be Transferred,Voci si chiede il trasferimento
Requests for items.,Le richieste di articoli.
Required By,Richiesto da
Required Date,Data richiesta
Required Qty,Quantità richiesta
Required only for sample item.,Richiesto solo per la voce di esempio.
Required raw materials issued to the supplier for producing a sub - contracted item.,Materie prime necessarie rilasciate al fornitore per la produzione di un sotto - voce contratta.
Reseller,Rivenditore
Reserved Quantity,Riservato Quantità
Reserved Warehouse,Riservato Warehouse
Reserved Warehouse in Sales Order / Finished Goods Warehouse,Warehouse Riservato a ordini di vendita / Magazzino prodotti finiti
Reserved Warehouse is missing in Sales Order,Riservato Warehouse manca in ordine di vendita
Resignation Letter Date,Lettera di dimissioni Data
Resolution,Risoluzione
Resolution Date,Risoluzione Data
Resolution Details,Dettagli risoluzione
Resolved By,Deliberato dall&#39;Assemblea
Restrict IP,Limitare IP
Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111),"Limitare l&#39;utente da solo questo indirizzo IP. Più indirizzi IP possono essere aggiunti separando con virgole. Accetta anche gli indirizzi IP parziali, come (111.111.111)"
Restricting By User,Limitare per utente
Retail,Vendita al dettaglio
Retailer,Dettagliante
Review Date,Data di revisione
Rgt,Rgt
Right,Giusto
Role,Ruolo
Role Allowed to edit frozen stock,Ruolo ammessi da modificare stock congelato
Role Name,Nome Ruolo
Role that is allowed to submit transactions that exceed credit limits set.,Ruolo che è consentito di presentare le transazioni che superano i limiti di credito stabiliti.
Roles,Ruoli
Roles Assigned,Ruoli assegnati
Roles Assigned To User,Ruoli assegnati a utenti
Roles HTML,Ruoli HTML
Root ,Root
Root cannot have a parent cost center,Root non può avere un centro di costo genitore
Rounded Total,Totale arrotondato
Rounded Total (Company Currency),Totale arrotondato (Azienda valuta)
Row,Riga
Row ,Riga
Row #,Row #
Row # ,Row #
Rules defining transition of state in the workflow.,Regole che definiscono transizione di stato nel flusso di lavoro.
"Rules for how states are transitions, like next state and which role is allowed to change state etc.","Regole per come gli stati sono transizioni, come prossimo stato e quale ruolo può cambiare stato ecc"
Rules to calculate shipping amount for a sale,Regole per il calcolo dell&#39;importo di trasporto per una vendita
SMS,SMS
SMS Center,Centro SMS
SMS Control,SMS Control
SMS Gateway URL,SMS Gateway URL
SMS Log,SMS Log
SMS Parameter,SMS Parametro
SMS Parameters,SMS Parametri
SMS Sender Name,SMS Sender Nome
SMS Settings,Impostazioni SMS
SMTP Server (e.g. smtp.gmail.com),SMTP Server (ad es smtp.gmail.com)
SO,SO
SO Date,SO Data
SO Pending Qty,SO attesa Qtà
SO/10-11/,SO/10-11 /
SO1112,SO1112
SQTN,SQTN
STE,STE
SUP,SUP
SUPP,SUPP
SUPP/10-11/,SUPP/10-11 /
Salary,Stipendio
Salary Information,Informazioni stipendio
Salary Manager,Stipendio Direttore
Salary Mode,Modalità di stipendio
Salary Slip,Stipendio slittamento
Salary Slip Deduction,Stipendio slittamento Deduzione
Salary Slip Earning,Stipendio slittamento Guadagnare
Salary Structure,Struttura salariale
Salary Structure Deduction,Struttura salariale Deduzione
Salary Structure Earning,Struttura salariale Guadagnare
Salary Structure Earnings,Utile struttura salariale
Salary breakup based on Earning and Deduction.,Stipendio rottura basato sul guadagno e di deduzione.
Salary components.,Componenti stipendio.
Sales,Vendite
Sales Analytics,Analisi dei dati di vendita
Sales BOM,BOM Vendite
Sales BOM Help,Vendite BOM Aiuto
Sales BOM Item,Vendite BOM articolo
Sales BOM Items,Vendite BOM Articoli
Sales Common,Vendite comuni
Sales Details,Dettagli di vendita
Sales Discounts,Sconti di vendita
Sales Email Settings,Vendite E-mail Impostazioni
Sales Extras,Extra di vendita
Sales Invoice,Fattura Commerciale
Sales Invoice Advance,Fattura Advance
Sales Invoice Item,Fattura Voce
Sales Invoice Items,Fattura di vendita Articoli
Sales Invoice Message,Fattura Messaggio
Sales Invoice No,Fattura Commerciale No
Sales Invoice Trends,Fattura di vendita Tendenze
Sales Order,Ordine di vendita
Sales Order Date,Ordine di vendita Data
Sales Order Item,Sales Order Item
Sales Order Items,Ordini di vendita Articoli
Sales Order Message,Sales Order Messaggio
Sales Order No,Ordine di vendita No
Sales Order Required,Ordine di vendita richiesto
Sales Order Trend,Ordine di vendita Trend
Sales Partner,Partner di vendita
Sales Partner Name,Vendite Partner Nome
Sales Partner Target,Vendite Partner di destinazione
Sales Partners Commission,Vendite Partners Commissione
Sales Person,Addetto alle vendite
Sales Person Incharge,Sales Person Incharge
Sales Person Name,Vendite Nome persona
Sales Person Target Variance (Item Group-Wise),Vendite persona bersaglio Varianza (Articolo Group-Wise)
Sales Person Targets,Sales Person Obiettivi
Sales Person-wise Transaction Summary,Sales Person-saggio Sintesi dell&#39;Operazione
Sales Register,Commerciale Registrati
Sales Return,Ritorno di vendite
Sales Returned,Vendite restituiti
Sales Taxes and Charges,Tasse di vendita e oneri
Sales Taxes and Charges Master,Tasse di vendita e oneri master
Sales Team,Team di vendita
Sales Team Details,Vendite team Dettagli
Sales Team1,Vendite Team1
Sales and Purchase,Vendita e Acquisto
Sales campaigns,Campagne di vendita
Sales persons and targets,Le persone e gli obiettivi di vendita
Sales taxes template.,Le imposte di vendita modello.
Sales territories.,Territori di vendita.
Salutation,Appellativo
Same file has already been attached to the record,Stesso file è già stato attaccato al record
Sample Size,Dimensione del campione
Sanctioned Amount,Importo sanzionato
Saturday,Sabato
Save,Salva
Schedule,Pianificare
Schedule Details,Dettagli di pianificazione
Scheduled,Pianificate
Scheduled Confirmation Date,Programmata Conferma Data
Scheduled Date,Data prevista
Scheduler Log,Scheduler Log
School/University,Scuola / Università
Score (0-5),Punteggio (0-5)
Score Earned,Punteggio Earned
Scrap %,Scrap%
Script,Script
Script Report,Segnala Script
Script Type,Tipo di script
Script to attach to all web pages.,Script di allegare a tutte le pagine web.
Search,Cerca
Search Fields,Campi di ricerca
Seasonality for setting budgets.,Stagionalità di impostazione budget.
Section Break,Interruzione di sezione
Security Settings,Impostazioni di sicurezza
"See ""Rate Of Materials Based On"" in Costing Section",Vedere &quot;tasso di materiali a base di&quot; in Costing Sezione
Select,Selezionare
"Select ""Yes"" for sub - contracting items",Selezionare &quot;Sì&quot; per i sub - articoli contraenti
"Select ""Yes"" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.","Selezionare &quot;Sì&quot; se l&#39;oggetto deve essere inviato ad un cliente o ricevuto da un fornitore come un campione. Bolle di consegna e le ricevute di acquisto dovranno aggiornare i livelli di stock, ma non ci sarà alcuna fattura nei confronti di questo oggetto."
"Select ""Yes"" if this item is used for some internal purpose in your company.",Selezionare &quot;Sì&quot; se l&#39;oggetto è utilizzato per uno scopo interno nella vostra azienda.
"Select ""Yes"" if this item represents some work like training, designing, consulting etc.","Selezionare &quot;Sì&quot; se l&#39;oggetto rappresenta un lavoro come la formazione, progettazione, consulenza, ecc"
"Select ""Yes"" if you are maintaining stock of this item in your Inventory.",Selezionare &quot;Sì&quot; se si sta mantenendo magazzino di questo articolo nel tuo inventario.
"Select ""Yes"" if you supply raw materials to your supplier to manufacture this item.",Selezionare &quot;Sì&quot; se si forniscono le materie prime per il vostro fornitore per la fabbricazione di questo oggetto.
Select All,Seleziona tutto
Select Attachments,Selezionare Allegati
Select Budget Distribution to unevenly distribute targets across months.,Selezionare Budget Distribution per distribuire uniformemente gli obiettivi in ​​tutta mesi.
"Select Budget Distribution, if you want to track based on seasonality.","Selezionare Budget distribuzione, se si desidera tenere traccia in base a stagionalità."
Select Customer,Selezionare clienti
Select Digest Content,Selezionare Digest Contenuto
Select DocType,Selezionare DocType
Select Document Type,Seleziona tipo di documento
Select Document Type or Role to start.,Selezionare tipo di documento o di ruolo per iniziare.
Select Items,Selezionare Elementi
Select PR,Selezionare PR
Select Print Format,Selezionare Formato di stampa
Select Print Heading,Selezionare Stampa Rubrica
Select Report Name,Selezionare Nome rapporto
Select Role,Scegliere Ruolo
Select Sales Orders,Selezionare Ordini di vendita
Select Sales Orders from which you want to create Production Orders.,Selezionare gli ordini di vendita da cui si desidera creare gli ordini di produzione.
Select Terms and Conditions,Selezionare Termini e Condizioni
Select Time Logs and Submit to create a new Sales Invoice.,Selezionare Time Diari e Invia per creare una nuova fattura di vendita.
Select Transaction,Selezionare Transaction
Select Type,Seleziona tipo
Select User or Property to start.,Selezionare Utente o immobile per iniziare.
Select a Banner Image first.,Selezionare un Banner Immagine prima.
Select account head of the bank where cheque was deposited.,Selezionare conto capo della banca in cui assegno è stato depositato.
Select an image of approx width 150px with a transparent background for best results.,Selezionare un&#39;immagine di circa larghezza 150px con sfondo trasparente per i migliori risultati.
Select company name first.,Selezionare il nome della società prima.
Select dates to create a new ,Seleziona le date per creare un nuovo
Select name of Customer to whom project belongs,Selezionare il nome del cliente a cui appartiene progetto
Select or drag across time slots to create a new event.,Selezionare o trascinare gli intervalli di tempo per creare un nuovo evento.
Select template from which you want to get the Goals,Selezionare modello da cui si desidera ottenere gli Obiettivi
Select the Employee for whom you are creating the Appraisal.,Selezionare il dipendente per il quale si sta creando la valutazione.
Select the currency in which price list is maintained,Scegliere la valuta in cui listino è mantenuta
Select the label after which you want to insert new field.,Selezionare l&#39;etichetta dopo la quale si desidera inserire nuovo campo.
Select the period when the invoice will be generated automatically,Selezionare il periodo in cui la fattura viene generato automaticamente
"Select the price list as entered in ""Price List"" master. This will pull the reference rates of items against this price list as specified in ""Item"" master.","Selezionare il listino prezzi, come indicato in &quot;prezzo di listino&quot; maestro. Questo tirerà i tassi di riferimento di elementi contro questo listino prezzi, come specificato nel master &quot;Item&quot;."
Select the relevant company name if you have multiple companies,"Selezionare il relativo nome della società, se si dispone di più le aziende"
Select the relevant company name if you have multiple companies.,"Selezionare il relativo nome della società, se si dispone di più aziende."
Select who you want to send this newsletter to,Selezionare a chi si desidera inviare questa newsletter ad
"Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt.","Selezionando &quot;Sì&quot;, consentirà a questa voce di apparire in ordine di acquisto, ricevuta di acquisto."
"Selecting ""Yes"" will allow this item to figure in Sales Order, Delivery Note","Selezionando &quot;Sì&quot; permetterà questo elemento per capire in ordine di vendita, di consegna Note"
"Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.",Selezionando &quot;Sì&quot; vi permetterà di creare distinta base che mostra delle materie prime e dei costi operativi sostenuti per la produzione di questo elemento.
"Selecting ""Yes"" will allow you to make a Production Order for this item.",Selezionando &quot;Sì&quot; vi permetterà di fare un ordine di produzione per questo articolo.
"Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.",Selezionando &quot;Sì&quot; darà una identità unica di ciascun soggetto di questa voce che può essere visualizzato nel Serial Nessun maestro.
Selling,Vendere
Selling Settings,Vendere Impostazioni
Send,Invia
Send Autoreply,Invia Autoreply
Send Email,Invia Email
Send From,Invia Dalla
Send Invite Email,Invia invito e-mail
Send Me A Copy,Inviami una copia
Send Notifications To,Inviare notifiche ai
Send Print in Body and Attachment,Invia Stampa in Corpo e Allegati
Send SMS,Invia SMS
Send To,Invia a
Send To Type,Send To Type
Send an email reminder in the morning,Invia un promemoria tramite email al mattino
Send automatic emails to Contacts on Submitting transactions.,Inviare email automatiche ai Contatti sul Invio transazioni.
Send mass SMS to your contacts,Invia SMS di massa ai tuoi contatti
Send regular summary reports via Email.,Invia rapporti di sintesi periodici via email.
Send to this list,Invia a questa lista
Sender,Mittente
Sender Name,Nome mittente
"Sending newsletters is not allowed for Trial users, \				to prevent abuse of this feature.","L&#39;invio di newsletter non è consentito per gli utenti di prova, \ per impedire l&#39;abuso di questa funzione."
Sent Mail,Posta inviata
Sent On,Inviata il
Sent Quotation,Quotazione Inviati
Separate production order will be created for each finished good item.,Ordine di produzione separata verrà creato per ogni buon prodotto finito.
Serial No,Serial No
Serial No Details,Serial No Dettagli
Serial No Service Contract Expiry,Serial No Contratto di Servizio di scadenza
Serial No Status,Serial No Stato
Serial No Warranty Expiry,Serial No Garanzia di scadenza
Serial No created,Serial No creato
Serial No does not belong to Item,Serial No non appartiene alla Voce
Serial No must exist to transfer out.,Serial No deve esistere per il trasferimento fuori.
Serial No qty cannot be a fraction,Serial No qty non può essere una frazione
Serial No status must be 'Available' to Deliver,Numero seriale di stato deve essere &#39;disponibile&#39; per fornire
Serial Nos do not match with qty,N ° di serie non corrispondono con qty
Serial Number Series,Serial Number Series
Serialized Item: ',Articolo Serialized: &#39;
Series List for this Transaction,Lista Serie per questa transazione
Server,Server
Service Address,Service Indirizzo
Services,Servizi
Session Expired. Logging you out,Sessione scaduta. Registrazione fuori
Session Expires in (time),Sessione scade a (tempo)
Session Expiry,Sessione di scadenza
Session Expiry in Hours e.g. 06:00,Sessione di scadenza in ore es 06:00
Set Banner from Image,Impostare Banner da immagine
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Impostare la voce del budget di Gruppo-saggi su questo territorio. È inoltre possibile includere la stagionalità impostando la distribuzione.
Set Login and Password if authentication is required.,"Impostare Login e Password, se è richiesta l&#39;autenticazione."
Set New Password,Imposta nuova password
Set Value,Imposta valore
"Set a new password and ""Save""",Impostare una nuova password e &quot;Salva&quot;
Set prefix for numbering series on your transactions,Impostare prefisso per numerazione serie sulle transazioni
Set targets Item Group-wise for this Sales Person.,Fissare obiettivi Item Group-saggio per questo venditore.
"Set your background color, font and image (tiled)","Impostare il colore di sfondo, font e immagini (piastrelle)"
"Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Impostare le impostazioni SMTP di posta in uscita qui. Tutto il sistema genera le notifiche, e-mail andranno da questo server di posta. Se non si è sicuri, lasciare vuoto per utilizzare i server ERPNext (e-mail verranno comunque inviati dal vostro id e-mail) o contattare il proprio provider di posta."
Setting Account Type helps in selecting this Account in transactions.,Impostazione Tipo di account aiuta nella scelta questo account nelle transazioni.
Settings,Impostazioni
Settings for About Us Page.,Impostazioni per Chi Siamo.
Settings for Accounts,Impostazioni per gli account
Settings for Buying Module,Impostazioni per l&#39;acquisto del modulo
Settings for Contact Us Page,Impostazioni per contattarci Pagina
Settings for Contact Us Page.,Impostazioni per la pagina contatti.
Settings for Selling Module,Impostazioni per la vendita di moduli
Settings for the About Us Page,Impostazioni per la Chi Siamo
"Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""",Impostazioni per estrarre richiedenti lavoro di una casella di posta ad esempio &quot;jobs@example.com&quot;
Setup,Setup
Setup Control,Controllo del programma di
Setup Series,Serie Setup
Setup of Shopping Cart.,Impostazione di Carrello.
Setup of fonts and background.,Installazione di font e lo sfondo.
"Setup of top navigation bar, footer and logo.","Impostazione di barra di navigazione superiore, piè di pagina e il logo."
Setup to pull emails from support email account,SETUP per tirare email da account di posta elettronica di supporto
Share,Condividi
Share With,Condividi
Shipments to customers.,Le spedizioni verso i clienti.
Shipping,Spedizione
Shipping Account,Account Spedizione
Shipping Address,Indirizzo di spedizione
Shipping Address Name,Spedizione Nome Indirizzo
Shipping Amount,Importo spedizione
Shipping Rule,Spedizione Rule
Shipping Rule Condition,Spedizione Regola Condizioni
Shipping Rule Conditions,Spedizione condizioni regola
Shipping Rule Label,Spedizione Etichetta Regola
Shipping Rules,Regole di Spedizione
Shop,Negozio
Shopping Cart,Carrello spesa
Shopping Cart Price List,Carrello Prezzo di listino
Shopping Cart Price Lists,Carrello Listini
Shopping Cart Settings,Carrello Impostazioni
Shopping Cart Shipping Rule,Carrello Spedizioni Rule
Shopping Cart Shipping Rules,Carrello Regole di Spedizione
Shopping Cart Taxes and Charges Master,Carrello Tasse e Spese master
Shopping Cart Taxes and Charges Masters,Carrello Tasse e Costi Masters
Short Bio,Breve Bio
Short Name,Nome breve
Short biography for website and other publications.,Breve biografia per il sito web e altre pubblicazioni.
Shortcut,Scorciatoia
"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.",Mostra &quot;Disponibile&quot; o &quot;Non disponibile&quot; sulla base di scorte disponibili in questo magazzino.
Show Details,Mostra dettagli
Show In Website,Mostra Nel Sito
Show Print First,Mostra Stampa Prima
Show a slideshow at the top of the page,Visualizzare una presentazione in cima alla pagina
Show in Website,Mostra nel Sito
Show rows with zero values,Mostra righe con valori pari a zero
Show this slideshow at the top of the page,Mostra questo slideshow in cima alla pagina
Showing only for,Mostrando solo per
Signature,Firma
Signature to be appended at the end of every email,Firma da aggiungere alla fine di ogni e-mail
Single,Singolo
Single Post (article).,Messaggio singolo (articolo).
Single unit of an Item.,Unità singola di un articolo.
Sitemap Domain,Mappa del sito Dominio
Slideshow,Slideshow
Slideshow Items,Articoli Slideshow
Slideshow Name,Nome Slideshow
Slideshow like display for the website,Slideshow come schermo per il sito web
Small Text,Testo piccolo
Solid background color (default light gray),Colore di sfondo a tinta unita (grigio chiaro di default)
Sorry we were unable to find what you were looking for.,Spiacente non siamo riusciti a trovare quello che stavi cercando.
Sorry you are not permitted to view this page.,Mi dispiace che non sei autorizzato a visualizzare questa pagina.
Sorry! We can only allow upto 100 rows for Stock Reconciliation.,Spiacente! Possiamo permettere che solo fino a 100 righe per Archivio Riconciliazione.
"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Spiacente! Non è possibile cambiare la valuta di default dell&#39;azienda, perché ci sono operazioni in essere contro di esso. Avrete bisogno di cancellare tali operazioni se si desidera cambiare la valuta di default."
Sorry. Companies cannot be merged,Mi dispiace. Le aziende non possono essere unite
Sorry. Serial Nos. cannot be merged,Mi dispiace. Serial numeri non può essere unita
Sort By,Ordina per
Source,Fonte
Source Warehouse,Fonte Warehouse
Source and Target Warehouse cannot be same,Origine e di destinazione Warehouse non può essere lo stesso
Source of th,Fonte del secolo
"Source of the lead. If via a campaign, select ""Campaign""","Fonte del piombo. Se attraverso una campagna, selezionare &quot;Campagna&quot;"
Spartan,Spartan
Special Page Settings,Impostazioni di pagina speciale
Specification Details,Specifiche Dettagli
Specify Exchange Rate to convert one currency into another,Specificare Tasso di cambio per convertire una valuta in un&#39;altra
"Specify a list of Territories, for which, this Price List is valid","Specifica una lista di territori, per il quale, questo listino prezzi è valido"
"Specify a list of Territories, for which, this Shipping Rule is valid","Specifica una lista di territori, per la quale, questa regola di trasporto è valido"
"Specify a list of Territories, for which, this Taxes Master is valid","Specifica una lista di territori, per il quale, questo Tasse Master è valido"
Specify conditions to calculate shipping amount,Specificare le condizioni per il calcolo dell&#39;importo di spedizione
Split Delivery Note into packages.,Split di consegna Nota in pacchetti.
Standard,Standard
Standard Rate,Standard Rate
"Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.","Termini e condizioni standard, che possono essere aggiunti alla Vendita e Purchases.Examples: 1. Validità della offer.1. Condizioni di pagamento (in anticipo, a credito, parte prima, ecc) .1. Ciò che è più (o da pagare da parte del Cliente) .1. Sicurezza / utilizzo warning.1. Garanzia se any.1. Restituisce Policy.1. Condizioni di trasporto, se applicable.1. Modi di controversie indirizzamento, indennizzo, responsabilità, ecc.1. Indirizzo e contatti della vostra azienda."
"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.10. Add or Deduct: Whether you want to add or deduct the tax.","Modello fiscale standard che può essere applicato a tutte le transazioni di acquisto. Questo modello può contenere lista delle teste di IVA, le altre teste di spesa come la &quot;spedizione&quot;, &quot;assicurazione&quot;, &quot;Gestione&quot;, ecc aliquota # # # # NotaIl si definisce qui sarà normale dell&#39;imposta tutti ** Articoli per ** . Se ci sono ** ** Articoli che hanno tassi diversi, questi devono essere aggiunti nel ** Articolo Tax ** tavolo del ** Item ** master. # # # # Descrizione di Columns1. Tipo di calcolo: - Questo può essere il totale netto ** ** (che è la somma delle quantità di base). - ** Il Fila Indietro totale / Importo ** (per le imposte o oneri cumulativi). Se si seleziona questa opzione, l&#39;imposta sarà applicata come percentuale della riga precedente (nella tabella delle imposte) o importo totale. - ** Actual ** (come detto) .2. Account Responsabile: Il libro mastro account con cui questa tassa sarà booked3. Centro di costo: se l&#39;imposta / tassa è un reddito (come spese di spedizione) o la spesa che deve essere prenotato fronte di un costo Center.4. Descrizione: Descrizione della tassa (che sarà stampato in fatture / preventivi) .5. Vota: Tax rate.6. Importo: Tassa amount.7. Totale: totale cumulativo a questo point.8. Inserisci Row: se sulla base di &quot;Precedente totale riga&quot; è possibile selezionare il numero di riga che sarà preso come base per il calcolo (di default è la riga precedente) .9. Considerare fiscale o Carica per: In questa sezione è possibile specificare se l&#39;imposta / tassa è solo per valutazione (non una parte del totale) o solo per il totale (non aggiunge valore al prodotto) o per both.10. Aggiungere o detrarre: Se si desidera aggiungere o detrarre l&#39;imposta."
"Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.","Modello fiscale standard che può essere applicato a tutte le transazioni di vendita. Questo modello può contenere lista delle teste di IVA, le altre teste di costi / ricavi come &quot;spedizione&quot;, &quot;assicurazione&quot;, &quot;Gestione&quot;, ecc # # # # Nota Il tax rate si definisce qui sarà normale dell&#39;imposta tutti ** gli articoli per **. Se ci sono ** ** Articoli che hanno tassi diversi, questi devono essere aggiunti nel ** Articolo Tax ** tavolo del ** Item ** master. # # # # Descrizione di Columns1. Tipo di calcolo: - Questo può essere il totale netto ** ** (che è la somma delle quantità di base). - ** Il Fila Indietro totale / Importo ** (per le imposte o oneri cumulativi). Se si seleziona questa opzione, l&#39;imposta sarà applicata come percentuale della riga precedente (nella tabella delle imposte) o importo totale. - ** Actual ** (come detto) .2. Account Responsabile: Il libro mastro account con cui questa tassa sarà booked3. Centro di costo: se l&#39;imposta / tassa è un reddito (come spese di spedizione) o la spesa che deve essere prenotato fronte di un costo Center.4. Descrizione: Descrizione della tassa (che sarà stampato in fatture / preventivi) .5. Vota: Tax rate.6. Importo: Tassa amount.7. Totale: totale cumulativo a questo point.8. Inserisci Row: se sulla base di &quot;Precedente totale riga&quot; è possibile selezionare il numero di riga che sarà preso come base per il calcolo (di default è la riga precedente) .9. È questa tassa inclusi nel prezzo base:? Se si seleziona questa, vuol dire che questa tassa non verrà mostrato sotto la tabella voce, ma sarà incluso nella tariffa di base nella vostra tabella principale voce. Questo è utile quando si vuole dare un prezzo flat (imposte comprese) prezzo ai clienti."
Start Date,Data di inizio
Start Report For,Inizio Rapporto Per
Start date of current invoice's period,Data finale del periodo di fatturazione corrente Avviare
Starts on,Inizia il
Startup,Startup
State,Stato
States,Stati
Static Parameters,Parametri statici
Status,Stato
Status must be one of ,Stato deve essere uno dei
Status should be Submitted,Stato deve essere presentato
Statutory info and other general information about your Supplier,Sindaco informazioni e altre informazioni generali sulla tua Fornitore
Stock,Azione
Stock Adjustment Account,Conto di regolazione Archivio
Stock Adjustment Cost Center,Regolazione Archivio Centro di costo
Stock Ageing,Invecchiamento Archivio
Stock Analytics,Analytics Archivio
Stock Balance,Archivio Balance
Stock Entry,Archivio Entry
Stock Entry Detail,Dell&#39;entrata Stock Detail
Stock Frozen Upto,Archivio Congelati Fino
Stock In Hand Account,Archivio Account mano
Stock Ledger,Ledger Archivio
Stock Ledger Entry,Ledger Archivio Entry
Stock Level,Stock Level
Stock Qty,Disponibilità Quantità
Stock Queue (FIFO),Coda Archivio (FIFO)
Stock Received But Not Billed,Archivio ricevuti ma non Fatturati
Stock Reconciliation,Riconciliazione Archivio
Stock Reconciliation file not uploaded,File di riconciliazione Stock non caricato
Stock Settings,Impostazioni immagini
Stock UOM,UOM Archivio
Stock UOM Replace Utility,Archivio UOM Replace Utility
Stock Uom,UOM Archivio
Stock Value,Archivio Valore
Stock Value Difference,Valore Archivio Differenza
Stop,Arresto
Stop users from making Leave Applications on following days.,Impedire agli utenti di effettuare Lascia le applicazioni in giorni successivi.
Stopped,Arrestato
Structure cost centers for budgeting.,Centri di costo di struttura per il budgeting.
Structure of books of accounts.,Struttura dei libri dei conti.
Style,Stile
Style Settings,Regolazioni
"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Style rappresenta il colore del pulsante: Successo - Verde, Pericolo - Rosso, Inverse - Nero, primario - Dark Blue, Info - Light Blue, Warning - Arancione"
"Sub-currency. For e.g. ""Cent""","Sub-valuta. Per esempio, &quot;Cent&quot;"
Sub-domain provided by erpnext.com,Sub-dominio fornito dal erpnext.com
Subcontract,Subappaltare
Subdomain,Sottodominio
Subject,Soggetto
Submit,Presentare
Submit Salary Slip,Invia Stipendio slittamento
Submit all salary slips for the above selected criteria,Inviare tutti i fogli paga per i criteri sopra selezionati
Submitted,Inserito
Submitted Record cannot be deleted,Record presentata non può essere cancellato
Subsidiary,Sussidiario
Success,Successo
Successful: ,Successo:
Suggestion,Suggerimento
Suggestions,Suggerimenti
Sunday,Domenica
Supplier,Fornitore
Supplier (Payable) Account,Fornitore (da pagare) Conto
Supplier (vendor) name as entered in supplier master,Nome del fornitore (venditore) come è entrato in master fornitore
Supplier Account Head,Fornitore Account testa
Supplier Address,Fornitore Indirizzo
Supplier Details,Fornitore Dettagli
Supplier Intro,Intro Fornitore
Supplier Invoice Date,Fornitore Data fattura
Supplier Invoice No,Fornitore fattura n
Supplier Name,Nome fornitore
Supplier Naming By,Fornitore di denominazione
Supplier Part Number,Numero di parte del fornitore
Supplier Quotation,Quotazione Fornitore
Supplier Quotation Item,Fornitore Quotazione articolo
Supplier Reference,Fornitore di riferimento
Supplier Shipment Date,Fornitore Data di spedizione
Supplier Shipment No,Fornitore Spedizione No
Supplier Type,Tipo Fornitore
Supplier Warehouse,Magazzino Fornitore
Supplier Warehouse mandatory subcontracted purchase receipt,Magazzino Fornitore obbligatoria ricevuta di acquisto subappaltato
Supplier classification.,Classificazione fornitore.
Supplier database.,Banca dati dei fornitori.
Supplier of Goods or Services.,Fornitore di beni o servizi.
Supplier warehouse where you have issued raw materials for sub - contracting,Magazzino del fornitore in cui è stato rilasciato materie prime per la sub - contraente
Supplier's currency,Valuta del fornitore
Support,Sostenere
Support Analytics,Analytics Support
Support Email,Supporto Email
Support Email Id,Supporto Email Id
Support Password,Supporto password
Support Ticket,Support Ticket
Support queries from customers.,Supportare le query da parte dei clienti.
Symbol,Simbolo
Sync Inbox,Sincronizzazione Posta in arrivo
Sync Support Mails,Sincronizza mail di sostegno
Sync with Dropbox,Sincronizzazione con Dropbox
Sync with Google Drive,Sincronizzazione con Google Drive
System,Sistema
System Defaults,Valori predefiniti di sistema
System Settings,Impostazioni di sistema
System User,Utente di sistema
"System User (login) ID. If set, it will become default for all HR forms.","Utente di sistema (login) ID. Se impostato, esso diventerà di default per tutti i moduli HR."
System for managing Backups,Sistema per la gestione dei backup
System generated mails will be sent from this email id.,Sistema di posta elettronica generati saranno spediti da questa e-mail id.
TL-,TL-
TLB-,TLB-
Table,Tavolo
Table for Item that will be shown in Web Site,Tabella per la voce che verrà mostrato nel sito Web
Tag,Tag
Tag Name,Nome del tag
Tags,Tag
Tahoma,Tahoma
Target,Obiettivo
Target  Amount,L&#39;importo previsto
Target Detail,Obiettivo Particolare
Target Details,Dettagli di destinazione
Target Details1,Obiettivo Dettagli1
Target Distribution,Distribuzione di destinazione
Target Qty,Obiettivo Qtà
Target Warehouse,Obiettivo Warehouse
Task,Task
Task Details,Attività Dettagli
Tax,Tax
Tax Calculation,Calcolo delle imposte
Tax Category can not be 'Valuation' or 'Valuation and Total' 					as all items are non-stock items,"Categoria fiscale non può essere &#39;di Valutazione&#39; o &#39;di valutazione e totale&#39;, come tutti gli oggetti sono elementi non-azione"
Tax Master,Tax Maestro
Tax Rate,Aliquota fiscale
Tax Template for Purchase,Template fiscale per l&#39;acquisto
Tax Template for Sales,Template fiscale per le vendite
Tax and other salary deductions.,Fiscale e di altre deduzioni salariali.
Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges,Tax tavolo dettaglio prelevato da padrone voce come una stringa e conservato in questo field.Used per imposte e oneri
Taxable,Imponibile
Taxes,Tasse
Taxes and Charges,Tasse e Costi
Taxes and Charges Added,Tasse e spese aggiuntive
Taxes and Charges Added (Company Currency),Tasse e spese aggiuntive (Azienda valuta)
Taxes and Charges Calculation,Tasse e le spese di calcolo
Taxes and Charges Deducted,Tasse e oneri dedotti
Taxes and Charges Deducted (Company Currency),Tasse e oneri dedotti (Azienda valuta)
Taxes and Charges Total,Tasse e oneri Totale
Taxes and Charges Total (Company Currency),Tasse e oneri Totale (Azienda valuta)
Taxes and Charges1,Tasse e Charges1
Team Members,Membri del Team
Team Members Heading,Membri del team Rubrica
Template for employee performance appraisals.,Modello per la valutazione delle prestazioni dei dipendenti.
Template of terms or contract.,Template di termini o di contratto.
Term Details,Dettagli termine
Terms and Conditions,Termini e Condizioni
Terms and Conditions Content,Termini e condizioni contenuti
Terms and Conditions Details,Termini e condizioni dettagli
Terms and Conditions Template,Termini e condizioni Template
Terms and Conditions1,Termini e Condizioni 1
Territory,Territorio
Territory Manager,Territory Manager
Territory Name,Territorio Nome
Territory Target Variance (Item Group-Wise),Territorio di destinazione Varianza (Articolo Group-Wise)
Territory Targets,Obiettivi Territorio
Test,Prova
Test Email Id,Prova Email Id
Test Runner,Test Runner
Test the Newsletter,Provare la Newsletter
Text,Testo
Text Align,Allineamento testo
Text Editor,Editor di testo
"The ""Web Page"" that is the website home page",La &quot;Pagina Web&quot; che è la home page del sito
The BOM which will be replaced,La distinta base che sarà sostituito
"The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",L&#39;articolo che rappresenta il pacchetto. Questo elemento deve avere &quot;è Stock Item&quot; come &quot;No&quot; e &quot;Is Voce di vendita&quot; come &quot;Yes&quot;
"The account head under Liability, in which Profit/Loss will be booked","La testa account con responsabilità, in cui sarà prenotato Utile / Perdita"
The date at which current entry is made in system.,La data in cui è fatto voce corrente nel sistema.
The date at which current entry will get or has actually executed.,La data in cui la voce corrente avrà o ha effettivamente eseguito.
The date on which next invoice will be generated. It is generated on submit.,La data in cui verrà generato fattura successiva. Si è generato su submit.
The date on which recurring invoice will be stop,La data in cui fattura ricorrente sarà ferma
"The day of the month on which auto invoice will be generated e.g. 05, 28 etc ","Il giorno del mese in cui verrà generato fattura auto ad esempio 05, 28, ecc"
The first Leave Approver in the list will be set as the default Leave Approver,Lascia il primo responsabile approvazione della lista sarà impostato come predefinito Lascia Approver
The gross weight of the package. Usually net weight + packaging material weight. (for print),Il peso lordo del pacchetto. Di solito peso netto + peso materiale di imballaggio. (Per la stampa)
The name of your company / website as you want to appear on browser title bar. All pages will have this as the prefix to the title.,Il nome della vostra azienda / sito web come si desidera visualizzare sulla barra del titolo del browser. Tutte le pagine avranno questo come prefisso per il titolo.
The net weight of this package. (calculated automatically as sum of net weight of items),Il peso netto di questo pacchetto. (Calcolato automaticamente come somma del peso netto delle partite)
The new BOM after replacement,Il nuovo BOM dopo la sostituzione
The rate at which Bill Currency is converted into company's base currency,La velocità con cui Bill valuta viene convertita in valuta di base dell&#39;azienda
"The system provides pre-defined roles, but you can <a href='#List/Role'>add new roles</a> to set finer permissions","Il sistema fornisce i ruoli predefiniti, ma è possibile <a href='#List/Role'>aggiungere nuovi ruoli</a> per impostare le autorizzazioni più fini"
The unique id for tracking all recurring invoices. It is generated on submit.,L&#39;ID univoco per il monitoraggio tutte le fatture ricorrenti. Si è generato su submit.
Then By (optional),Poi per (opzionale)
These properties are Link Type fields from all Documents.,Queste proprietà sono di collegamento Tipo campi da tutti i documenti.
"These properties can also be used to 'assign' a particular document, whose property matches with the User's property to a User. These can be set using the <a href='#permission-manager'>Permission Manager</a>","Queste proprietà possono essere utilizzati anche per &#39;assegnare&#39; un particolare documento, la cui proprietà corrisponde con la proprietà per l&#39;utente di un utente. Questi possono essere impostati utilizzando il <a href='#permission-manager'>Permission Manager</a>"
These properties will appear as values in forms that contain them.,Queste proprietà appariranno come valori in forme che li contengono.
These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.,Questi valori saranno aggiornati automaticamente nelle transazioni e anche sarà utile per limitare le autorizzazioni per l&#39;utente sulle operazioni che contengono questi valori.
This Price List will be selected as default for all Customers under this Group.,Questo listino prezzi sarà selezionato come predefinito per tutti i clienti in questo Gruppo.
This Time Log Batch has been billed.,Questo Log Batch Ora è stato fatturato.
This Time Log Batch has been cancelled.,Questo Log Batch Ora è stato annullato.
This Time Log conflicts with,Questa volta i conflitti di registro con
This account will be used to maintain value of available stock,Questo account verrà utilizzato per mantenere il valore delle scorte disponibili
This currency will get fetched in Purchase transactions of this supplier,Questa moneta avranno recuperato in operazioni di acquisto di questa azienda
This currency will get fetched in Sales transactions of this customer,Questa moneta avranno recuperato nelle transazioni di vendita di questo cliente
"This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by ""Merge Into"" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.","Questa funzione è per la fusione magazzini duplicati. Sostituirà tutti i link di questo magazzino da &quot;Unisci in un&quot; magazzino. Dopo la fusione è possibile eliminare questo magazzino, come livello di azione per questo deposito sarà a zero."
This feature is only applicable to self hosted instances,Questa funzione è applicabile solo alle istanze self hosted
This field will appear only if the fieldname defined here has value OR the rules are true (examples): <br>myfieldeval:doc.myfield=='My Value'<br>eval:doc.age>18,Questo campo viene visualizzato solo se il nome del campo definito qui ha valore o le regole sono vere (esempi): <br> myfieldeval: doc.myfield == &#39;il mio valore&#39; <br> eval: doc.age&gt; 18
This goes above the slideshow.,Questo va al di sopra della presentazione.
This is PERMANENT action and you cannot undo. Continue?,Questa è l&#39;azione permanente e non può essere annullata. Continuare?
This is an auto generated Material Request.,Questo è un auto generato Material Request.
This is permanent action and you cannot undo. Continue?,Questa è l&#39;azione permanente e non può essere annullata. Continuare?
This is the number of the last created transaction with this prefix,Questo è il numero dell&#39;ultimo transazione creata con questo prefisso
This message goes away after you create your first customer.,Questo messaggio va via dopo aver creato il vostro primo cliente.
This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.,Questo strumento consente di aggiornare o correggere la quantità e la valutazione delle azioni nel sistema. Viene tipicamente utilizzato per sincronizzare i valori di sistema e ciò che realmente esiste nei vostri magazzini.
This will be used for setting rule in HR module,Questo verrà utilizzato per regola impostazione nel modulo HR
Thread HTML,HTML Discussione
Thursday,Giovedi
Time,Volta
Time Log,Tempo di Log
Time Log Batch,Tempo Log Batch
Time Log Batch Detail,Ora Dettaglio Batch Log
Time Log Batch Details,Tempo Log Dettagli batch
Time Log Batch status must be 'Submitted',Stato batch Tempo Log deve essere &#39;Inviato&#39;
Time Log Status must be Submitted.,Tempo Log Stato deve essere presentata.
Time Log for tasks.,Tempo di log per le attività.
Time Log is not billable,Tempo di log non è fatturabile
Time Log must have status 'Submitted',Tempo di log deve avere lo status di &#39;Inviato&#39;
Time Zone,Time Zone
Time Zones,Time Zones
Time and Budget,Tempo e budget
Time at which items were delivered from warehouse,Ora in cui gli elementi sono stati consegnati dal magazzino
Time at which materials were received,Ora in cui sono stati ricevuti i materiali
Title,Titolo
Title / headline of your page,Titolo / intestazione della pagina
Title Case,Titolo Caso
Title Prefix,Title Prefix
To,A
To Currency,Per valuta
To Date,Di sesso
To Discuss,Per Discutere
To Do,To Do
To Do List,To Do List
To PR Date,Per PR Data
To Package No.,A Pacchetto no
To Reply,Per Rispondi
To Time,Per Tempo
To Value,Per Valore
To Warehouse,A Magazzino
"To add a tag, open the document and click on ""Add Tag"" on the sidebar","Per aggiungere un tag, aprire il documento e fare clic su &quot;Aggiungi Tag&quot; sulla barra laterale"
"To assign this issue, use the ""Assign"" button in the sidebar.","Per assegnare questo problema, utilizzare il pulsante &quot;Assegna&quot; nella barra laterale."
"To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Per creare automaticamente biglietti di supporto dalla tua posta in arrivo, impostare le impostazioni POP3 qui. Idealmente è necessario creare un id e-mail separata per il sistema ERP in modo che tutte le email saranno sincronizzati nel sistema da quella mail id. Se non si è sicuri, contattare il proprio provider di posta."
"To create an Account Head under a different company, select the company and save customer.","Per creare un account in testa una società diversa, selezionare l&#39;azienda e salvare cliente."
To enable <b>Point of Sale</b> features,Per abilitare la funzionalità <b>Point of Sale</b>
To enable more currencies go to Setup > Currency,Per abilitare più valute andare su Setup&gt; valuta
"To fetch items again, click on 'Get Items' button \						or update the Quantity manually.","Per scaricare nuovamente elementi, fare clic su &#39;Get per&#39; pulsante \ o aggiornare la quantità manualmente."
"To format columns, give column labels in the query.","Per formattare le colonne, dare etichette di colonna nella query."
"To further restrict permissions based on certain values in a document, use the 'Condition' settings.","Per limitare ulteriormente i permessi in base a determinati valori di un documento, utilizzare le impostazioni di &#39;condizione&#39;."
To get Item Group in details table,Per ottenere Gruppo di elementi in dettaglio tabella
To manage multiple series please go to Setup > Manage Series,Per gestire più serie preghiamo di andare su Setup&gt; Gestisci Serie
To restrict a User of a particular Role to documents that are explicitly assigned to them,Per impedire a un utente di un particolare ruolo a documenti che sono esplicitamente assegnati a loro
To restrict a User of a particular Role to documents that are only self-created.,Per impedire a un utente di un particolare ruolo a documenti che sono solo auto-creato.
"To set reorder level, item must be Purchase Item","Per impostare il livello di riordino, articolo deve essere di acquisto dell&#39;oggetto"
"To set user roles, just go to <a href='#List/Profile'>Setup > Users</a> and click on the user to assign roles.","Per impostare i ruoli utente, basta andare su <a href='#List/Profile'>Impostazioni&gt; Utenti</a> e fare clic sull&#39;utente per assegnare ruoli."
To track any installation or commissioning related work after sales,Per tenere traccia di alcuna installazione o messa in attività collegate post-vendita
"To track brand name in the following documents<br>Delivery Note, Enuiry, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No","Per tenere traccia di marca nei seguenti documenti <br> Bolla di consegna, Enuiry, Materiale Richiesta, articolo, ordine di acquisto, Buono Acquisto, l&#39;Acquirente Ricevuta, Preventivo, fattura di vendita, distinta base di vendita, ordini di vendita, Serial No"
To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.,Per tenere traccia di voce in documenti di vendita e di acquisto in base alle loro n ° di serie. Questo è può anche usato per rintracciare informazioni sulla garanzia del prodotto.
To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,"Per tenere traccia di elementi in documenti di vendita e acquisto con nos lotti <br> <b>Industria preferita: Chimica, ecc</b>"
To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Per tenere traccia di elementi con codice a barre. Si sarà in grado di inserire articoli nel DDT e fattura di vendita attraverso la scansione del codice a barre del prodotto.
ToDo,ToDo
Tools,Strumenti
Top,Superiore
Top Bar,Top Bar
Top Bar Background,Top Bar Background
Top Bar Item,Top Bar articolo
Top Bar Items,Top Articoli Bar
Top Bar Text,Top Bar Text
Top Bar text and background is same color. Please change.,Top Bar testo e sfondo è dello stesso colore. Per favore cambia.
Total,Totale
Total (sum of) points distribution for all goals should be 100.,Totale (somma di) Distribuzione punti per tutti gli obiettivi dovrebbe essere di 100.
Total Advance,Totale Advance
Total Amount,Totale Importo
Total Amount To Pay,Importo totale da pagare
Total Amount in Words,Importo totale in parole
Total Billing This Year: ,Fatturazione questo Anno:
Total Claimed Amount,Totale importo richiesto
Total Commission,Commissione Totale
Total Cost,Costo totale
Total Credit,Totale credito
Total Debit,Debito totale
Total Deduction,Deduzione totale
Total Earning,Guadagnare totale
Total Experience,Esperienza totale
Total Hours,Totale ore
Total Hours (Expected),Totale ore (prevista)
Total Invoiced Amount,Totale Importo fatturato
Total Leave Days,Totale Lascia Giorni
Total Leaves Allocated,Totale Foglie allocati
Total Operating Cost,Totale costi di esercizio
Total Points,Totale Punti
Total Raw Material Cost,Raw Material Total Cost
Total SMS Sent,Totale SMS Inviati
Total Sanctioned Amount,Totale importo sanzionato
Total Score (Out of 5),Punteggio totale (i 5)
Total Tax (Company Currency),Totale IVA (Azienda valuta)
Total Taxes and Charges,Totale imposte e oneri
Total Taxes and Charges (Company Currency),Totale tasse e spese (Azienda valuta)
Total Working Days In The Month,Giorni di lavoro totali nel mese
Total amount of invoices received from suppliers during the digest period,Importo totale delle fatture ricevute dai fornitori durante il periodo di digest
Total amount of invoices sent to the customer during the digest period,Importo totale delle fatture inviate al cliente durante il periodo di digest
Total in words,Totale in parole
Total production order qty for item,La produzione totale qty di ordine per la voce
Totals,Totali
Track separate Income and Expense for product verticals or divisions.,Traccia Entrate e uscite separati per verticali di prodotto o divisioni.
Track this Delivery Note against any Project,Sottoscrivi questa bolla di consegna contro ogni progetto
Track this Sales Invoice against any Project,Sottoscrivi questa fattura di vendita nei confronti di qualsiasi progetto
Track this Sales Order against any Project,Traccia questo ordine di vendita nei confronti di qualsiasi progetto
Transaction,Transazioni
Transaction Date,Transaction Data
Transfer,Trasferimento
Transition Rules,Regole di transizione
Transporter Info,Info Transporter
Transporter Name,Trasportatore Nome
Transporter lorry number,Numero di camion Transporter
Trash Reason,Trash Motivo
Tree of item classification,Albero di classificazione voce
Trial Balance,Bilancio di verifica
Tuesday,Martedì
Tweet will be shared via your user account (if specified),Tweet sarà condiviso tramite il proprio account utente (se specificato)
Twitter Share,Twitter Condividi
Twitter Share via,Twitter Condividi via
Type,Tipo
Type of document to rename.,Tipo di documento da rinominare.
Type of employment master.,Tipo di maestro del lavoro.
"Type of leaves like casual, sick etc.","Tipo di foglie come casuale, malati ecc"
Types of Expense Claim.,Tipi di Nota Spese.
Types of activities for Time Sheets,Tipi di attività per i fogli Tempo
UOM,UOM
UOM Conversion Detail,UOM Dettaglio di conversione
UOM Conversion Details,UM Dettagli di conversione
UOM Conversion Factor,Fattore di Conversione UOM
UOM Conversion Factor is mandatory,Fattore di Conversione UOM è obbligatorio
UOM Details,UM Dettagli
UOM Name,UOM Nome
UOM Replace Utility,UOM Replace Utility
UPPER CASE,MAIUSCOLO
UPPERCASE,MAIUSCOLO
URL,URL
Unable to complete request: ,Impossibile completare la richiesta:
Under AMC,Sotto AMC
Under Graduate,Sotto Laurea
Under Warranty,Sotto Garanzia
Unit of Measure,Unità di misura
"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).","Unità di misura di questo oggetto (es. Kg, Unità, No, coppia)."
Units/Hour,Unità / Hour
Units/Shifts,Unità / turni
Unmatched Amount,Importo senza pari
Unpaid,Non pagata
Unread Messages,Messaggi non letti
Unscheduled,Non in programma
Unsubscribed,Sottoscritte
Upcoming Events for Today,Prossimi eventi di oggi
Update,Aggiornare
Update Clearance Date,Aggiornare Liquidazione Data
Update Field,Aggiorna campo
Update PR,Aggiornamento PR
Update Series,Update
Update Series Number,Aggiornamento Numero di Serie
Update Stock,Aggiornare Archivio
Update Stock should be checked.,Magazzino Update deve essere controllato.
Update Value,Aggiornamento del valore
"Update allocated amount in the above table and then click ""Allocate"" button",Aggiornamento dell&#39;importo stanziato nella precedente tabella e quindi fare clic su pulsante &quot;allocato&quot;
Update bank payment dates with journals.,Risale aggiornamento versamento bancario con riviste.
Update is in progress. This may take some time.,Aggiornamento è in corso. Questo potrebbe richiedere del tempo.
Updated,Aggiornato
Upload Attachment,Upload Attachment
Upload Attendance,Carica presenze
Upload Backups to Dropbox,Carica backup di Dropbox
Upload Backups to Google Drive,Carica backup di Google Drive
Upload HTML,Carica HTML
Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Carica un file csv con due colonne:. L&#39;antico nome e il nuovo nome. Max 500 righe.
Upload a file,Carica un file
Upload and Import,Carica e Importa
Upload attendance from a .csv file,Carica presenze da un file. Csv
Upload stock balance via csv.,Carica equilibrio magazzino tramite csv.
Uploading...,Caricamento ...
Upper Income,Reddito superiore
Urgent,Urgente
Use Multi-Level BOM,Utilizzare BOM Multi-Level
Use SSL,Usa SSL
User,Utente
User Cannot Create,L&#39;utente non può creare
User Cannot Search,L&#39;utente non può cercare
User ID,ID utente
User Image,Immagine Immagine
User Name,Nome Utente
User Remark,Osservazioni utenti
User Remark will be added to Auto Remark,Osservazioni utente verrà aggiunto al Remark Auto
User Tags,Tags utente
User Type,Tipo di utente
User must always select,L&#39;utente deve sempre selezionare
User not allowed entry in the Warehouse,Utente non consentito l&#39;ingresso nel magazzino
User not allowed to delete.,L&#39;utente non ha permesso di eliminare.
UserRole,UserRole
Username,Nome utente
Users who can approve a specific employee's leave applications,Gli utenti che possono approvare le richieste di congedo di un dipendente specifico
Users with this role are allowed to do / modify accounting entry before frozen date,Gli utenti con questo ruolo sono autorizzati a fare / modificare registrazione contabile prima della data congelato
Utilities,Utilità
Utility,Utility
Valid For Territories,Valido per i territori
Valid Upto,Valido Fino
Valid for Buying or Selling?,Valido per comprare o vendere?
Valid for Territories,Valido per Territori
Validate,Convalida
Valuation,Valorizzazione
Valuation Method,Metodo di valutazione
Valuation Rate,Valorizzazione Vota
Valuation and Total,Valutazione e Total
Value,Valore
Value missing for,Valore mancante per
Vehicle Dispatch Date,Veicolo Spedizione Data
Vehicle No,Veicolo No
Verdana,Verdana
Verified By,Verificato da
Visit,Visita
Visit report for maintenance call.,Visita rapporto per chiamata di manutenzione.
Voucher Detail No,Voucher Detail No
Voucher ID,ID Voucher
Voucher Import Tool,Voucher Strumento di importazione
Voucher No,Voucher No
Voucher Type,Voucher Tipo
Voucher Type and Date,Tipo di Voucher e Data
WIP Warehouse required before Submit,WIP Warehouse richiesto prima Submit
Waiting for Customer,In attesa di clienti
Walk In,Walk In
Warehouse,Magazzino
Warehouse Contact Info,Magazzino contatto
Warehouse Detail,Magazzino Dettaglio
Warehouse Name,Magazzino Nome
Warehouse User,Warehouse User
Warehouse Users,Warehouse Utenti
Warehouse and Reference,Magazzino e di riferimento
Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Warehouse può essere modificato solo tramite dell&#39;entrata Stock / DDT / ricevuta di acquisto
Warehouse cannot be changed for Serial No.,Magazzino non può essere modificato per Serial No.
Warehouse does not belong to Item,Warehouse non appartiene alla Voce
Warehouse does not belong to company.,Warehouse non appartiene alla società.
Warehouse where you are maintaining stock of rejected items,Magazzino dove si sta mantenendo magazzino di articoli rifiutati
Warehouse-Wise Stock Balance,Magazzino-saggio Stock Balance
Warehouse-wise Item Reorder,Magazzino-saggio Voce riordino
Warehouses,Magazzini
Warn,Avvisa
Warning,Attenzione
Warning: Leave application contains following block dates,Attenzione: Lascia applicazione contiene seguenti date di blocco
Warranty / AMC Details,Garanzia / AMC Dettagli
Warranty / AMC Status,Garanzia / AMC Stato
Warranty Expiry Date,Garanzia Data di scadenza
Warranty Period (Days),Periodo di garanzia (Giorni)
Warranty Period (in days),Periodo di garanzia (in giorni)
Web Content,Web Content
Web Page,Pagina Web
Website,Sito
Website Description,Descrizione del sito
Website Item Group,Sito Gruppo Articolo
Website Item Groups,Sito gruppi di articoli
Website Overall Settings,Sito Impostazioni generali
Website Script,Script Sito
Website Settings,Impostazioni Sito
Website Slideshow,Presentazione sito web
Website Slideshow Item,Sito Slideshow articolo
Website User,Website Utente
Website Warehouse,Magazzino sito web
Wednesday,Mercoledì
Weekly,Settimanale
Weekly Off,Settimanale Off
Weight UOM,Peso UOM
Weightage,Weightage
Weightage (%),Weightage (%)
Welcome,Benvenuto
"When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.","Quando una qualsiasi delle operazioni controllate sono &quot;inviati&quot;, una e-mail a comparsa visualizzata automaticamente per inviare una e-mail agli associati &quot;Contatto&quot; in tale operazione, con la transazione come allegato. L&#39;utente può o non può inviare l&#39;e-mail."
"When you <b>Amend</b> a document after cancel and save it, it will get a new number that is a version of the old number.","Quando si <b>modifica</b> un documento dopo annullare e salvarlo, otterrà un nuovo numero, che è una versione del vecchio numero."
Where items are stored.,Dove gli elementi vengono memorizzati.
Where manufacturing operations are carried out.,Qualora le operazioni di produzione sono effettuate.
Widowed,Vedovo
Width,Larghezza
Will be calculated automatically when you enter the details,Vengono calcolati automaticamente quando si entra nei dettagli
Will be fetched from Customer,Viene prelevato da clienti
Will be updated after Sales Invoice is Submitted.,Saranno aggiornate dopo fattura di vendita sia presentata.
Will be updated when batched.,Verrà aggiornato quando dosati.
Will be updated when billed.,Verrà aggiornato quando fatturati.
Will be used in url (usually first name).,Saranno utilizzati in url (solitamente nome).
With Operations,Con operazioni
Work Details,Dettagli lavoro
Work Done,Attività svolta
Work In Progress,Work In Progress
Work-in-Progress Warehouse,Work-in-Progress Warehouse
Workflow,Flusso di lavoro
Workflow Action,Azione del flusso di lavoro
Workflow Action Master,Flusso di lavoro Azione Maestro
Workflow Action Name,Flusso di lavoro Nome Azione
Workflow Document State,Workflow di Stato Documento
Workflow Document States,Workflow Document Uniti
Workflow Name,Nome flusso di lavoro
Workflow State,Stato del flusso di lavoro
Workflow State Field,Flusso di lavoro di campo Stato
Workflow State Name,Flusso di lavoro Nome Stato
Workflow Transition,Transizione del flusso di lavoro
Workflow Transitions,Le transizioni di workflow
Workflow state represents the current state of a document.,Stato di workflow rappresenta lo stato corrente di un documento.
Workflow will start after saving.,Flusso di lavoro avrà inizio dopo il salvataggio.
Working,Lavoro
Workstation,Stazione di lavoro
Workstation Name,Nome workstation
Write,Scrivere
Write Off Account,Scrivi Off account
Write Off Amount,Scrivi Off Importo
Write Off Amount <=,Scrivi Off Importo &lt;=
Write Off Based On,Scrivi Off Basato Su
Write Off Cost Center,Scrivi Off Centro di costo
Write Off Outstanding Amount,Scrivi Off eccezionale Importo
Write Off Voucher,Scrivi Off Voucher
Write a Python file in the same folder where this is saved and return column and result.,Scrivere un file Python nella stessa cartella in cui questo viene salvato e colonna di ritorno e risultato.
Write a SELECT query. Note result is not paged (all data is sent in one go).,Scrivere una query SELECT. Nota risultato non è paging (tutti i dati vengono inviati in una sola volta).
Write sitemap.xml,Scrivi sitemap.xml
Write titles and introductions to your blog.,Scrivi i titoli e le introduzioni al tuo blog.
Writers Introduction,Scrittori Introduzione
Wrong Template: Unable to find head row.,Template Sbagliato: Impossibile trovare la linea di testa.
Year,Anno
Year Closed,Anno Chiuso
Year Name,Anno Nome
Year Start Date,Anno Data di inizio
Year of Passing,Anni dal superamento
Yearly,Annuale
Yes,Sì
Yesterday,Ieri
You are not authorized to do/modify back dated entries before ,Non sei autorizzato a fare / modificare indietro voci datate prima
You can enter any date manually,È possibile immettere qualsiasi data manualmente
You can enter the minimum quantity of this item to be ordered.,È possibile inserire la quantità minima di questo oggetto da ordinare.
You can not enter both Delivery Note No and Sales Invoice No. \					Please enter any one.,Non è possibile immettere sia Consegna Nota No e Fattura n \ Inserisci uno qualsiasi.
You can set various 'properties' to Users to set default values and apply permission rules based on the value of these properties in various forms.,È possibile impostare diversi &quot;proprietà&quot; di utenti di impostare i valori di default e di applicare le regole di autorizzazione in base al valore di queste proprietà in varie forme.
You can start by selecting backup frequency and \					granting access for sync,Si può iniziare selezionando la frequenza di backup e \ accesso concessione per la sincronizzazione
You can use <a href='#Form/Customize Form'>Customize Form</a> to set levels on fields.,È possibile utilizzare <a href='#Form/Customize Form'>Personalizza modulo</a> per impostare i livelli sui campi.
You may need to update: ,Potrebbe essere necessario aggiornare:
Your Customer's TAX registration numbers (if applicable) or any general information,FISCALI numeri di registrazione del vostro cliente (se applicabile) o qualsiasi informazione generale
"Your download is being built, this may take a few moments...","Il download è in costruzione, l&#39;operazione potrebbe richiedere alcuni minuti ..."
Your letter head content,Il tuo contenuto testa lettera
Your sales person who will contact the customer in future,Il vostro agente di commercio che si metterà in contatto il cliente in futuro
Your sales person who will contact the lead in future,Il vostro agente di commercio che si metterà in contatto l&#39;iniziativa in futuro
Your sales person will get a reminder on this date to contact the customer,Il rivenditore avrà un ricordo in questa data per contattare il cliente
Your sales person will get a reminder on this date to contact the lead,Il rivenditore avrà un ricordo in questa data per contattare il piombo
Your support email id - must be a valid email - this is where your emails will come!,Il vostro supporto e-mail id - deve essere un indirizzo email valido - questo è dove i vostri messaggi di posta elettronica verranno!
[Error],[Errore]
[Label]:[Field Type]/[Options]:[Width],[Label]: [Tipo di campo] / [Opzioni]: [Larghezza]
add your own CSS (careful!),aggiungere la tua CSS (attenzione!)
adjust,regolare
align-center,allineare-center
align-justify,allineamento giustificare
align-left,allineamento a sinistra
align-right,allineare a destra
also be included in Item's rate,anche essere incluso nel tasso di articolo
and,e
arrow-down,freccia verso il basso
arrow-left,freccia-sinistra
arrow-right,freccia-destra
arrow-up,freccia-up
assigned by,assegnato da
asterisk,asterisco
backward,indietro
ban-circle,ban-cerchio
barcode,codice a barre
bell,campana
bold,grassetto
book,libro
bookmark,segnalibro
briefcase,ventiquattrore
bullhorn,megafono
calendar,calendario
camera,fotocamera
cancel,annullare
cannot be 0, non può essere 0
cannot be empty,non può essere vuoto
cannot be greater than 100,non può essere maggiore di 100
cannot be included in Item's rate,non può essere incluso nel tasso di articolo
"cannot have a URL, because it has child item(s)","non può avere un URL, perché ha elemento figlio (s)"
cannot start with,non può iniziare con
certificate,certificato
check,controllare
chevron-down,chevron-down
chevron-left,chevron-sinistra
chevron-right,chevron-destra
chevron-up,chevron-up
circle-arrow-down,cerchio-freccia-giù
circle-arrow-left,cerchio-freccia-sinistra
circle-arrow-right,cerchio-freccia-destra
circle-arrow-up,cerchio-freccia-up
cog,COG
comment,commento
create a Custom Field of type Link (Profile) and then use the 'Condition' settings to map that field to the Permission rule.,Creare un campo personalizzato di tipo Link (profilo) e quindi utilizzare le impostazioni di &#39;condizione&#39; di mappare il campo per la regola di autorizzazione.
dd-mm-yyyy,gg-mm-aaaa
dd/mm/yyyy,gg / mm / aaaa
deactivate,disattivare
does not belong to BOM: ,non appartiene a BOM:
does not exist,non esiste
does not have role 'Leave Approver',non ha il ruolo &#39;Lascia Approvatore&#39;
does not match,non corrisponde
download,caricare
download-alt,download-alt
"e.g. Bank, Cash, Credit Card","per esempio bancario, contanti, carta di credito"
"e.g. Kg, Unit, Nos, m","ad esempio Kg, unità, nn, m"
edit,modificare
eg. Cheque Number,ad es. Numero Assegno
eject,espellere
english,inglese
envelope,busta
español,español
example: Next Day Shipping,esempio: Next Day spedizione
example: http://help.erpnext.com,Esempio: http://help.erpnext.com
exclamation-sign,esclamazione-sign
eye-close,occhio da vicino
eye-open,occhio-apertura
facetime-video,FaceTime-video
fast-backward,indietro veloce
fast-forward,fast-forward
file,File
film,pellicola
filter,filtrare
fire,fuoco
flag,bandiera
folder-close,cartella-close
folder-open,cartella-aprire
font,carattere
forward,inoltrare
français,français
fullscreen,fullscreen
gift,donazione
glass,vetro
globe,globo
hand-down,mano-down
hand-left,mano sinistra
hand-right,mano destra
hand-up,mano-up
has been entered atleast twice,è stato inserito atleast due volte
have a common territory,avere un territorio comune
have the same Barcode,avere lo stesso codice a barre
hdd,hdd
headphones,auricolare
heart,cuore
home,domestico
icon,icona
in,in
inbox,casella di posta
indent-left,trattino-sinistra
indent-right,trattino-destra
info-sign,Info-sign
is a cancelled Item,è un articolo cancellato
is linked in,è legata in
is not a Stock Item,Non è un Disponibile Articolo
is not allowed.,non è permesso.
italic,corsivo
leaf,foglia
lft,LFT
list,elenco
list-alt,list-alt
lock,bloccare
lowercase,minuscolo
magnet,magnete
map-marker,mappa-marcatore
minus,meno
minus-sign,segno meno
mm-dd-yyyy,gg-mm-aaaa
mm/dd/yyyy,gg / mm / aaaa
move,spostare
music,musica
must be one of,deve essere una delle
nederlands,Nederlands
not a purchase item,Non una voce di acquisto
not a sales item,Non una voce di vendite
not a service item.,Non una voce di servizio.
not a sub-contracted item.,Non una voce di subappalto.
not in,non in
not within Fiscal Year,non entro l&#39;anno fiscale
of,di
of type Link,Tipo di collegamento
off,spento
ok,ok
ok-circle,ok-cerchio
ok-sign,ok-sign
old_parent,old_parent
or,oppure
pause,pausa
pencil,matita
picture,immagine
plane,piano
play,giocare
play-circle,play-cerchio
plus,più
plus-sign,segno più
português,português
português brasileiro,Português Brasileiro
print,stampare
qrcode,QRCode
question-sign,domanda-sign
random,casuale
reached its end of life on,raggiunto la fine della vita sulla
refresh,aggiornamento
remove,rimuovere
remove-circle,remove-cerchio
remove-sign,rimuovere-sign
repeat,ripetizione
resize-full,resize-pieno
resize-horizontal,resize-orizzontale
resize-small,resize-small
resize-vertical,resize-verticale
retweet,rispondi
rgt,rgt
road,stradale
screenshot,screenshot
search,ricerca
share,Condividi
share-alt,share-alt
shopping-cart,shopping cart
should be 100%,dovrebbe essere 100%
signal,segnalare
star,stella
star-empty,star-vuoto
step-backward,passo indietro
step-forward,passo in avanti
stop,smettere
tag,tag
tags,tags
"target = ""_blank""",target = &quot;_blank&quot;
tasks,compiti
text-height,text-altezza
text-width,testo a larghezza
th,Th
th-large,th-grande
th-list,th-list
thumbs-down,pollice in giù
thumbs-up,pollice in su
time,volta
tint,tinta
to,a
"to be included in Item's rate, it is required that: ","da includere nel tasso di voce, è necessario che:"
trash,cestinare
upload,caricare
user,utente
user_image_show,user_image_show
values and dates,valori e le date
volume-down,volume-giù
volume-off,volume-off
volume-up,volume-up
warning-sign,avvertimento-sign
website page link,sito web link alla pagina
which is greater than sales order qty ,che è maggiore di vendite ordine qty
wrench,chiave
yyyy-mm-dd,aaaa-mm-gg
zoom-in,Zoom-in
zoom-out,zoom-out