 (Half Day), (Mezza Giornata)
 .You can not assign / modify / remove Master Name,
 Quantity should be greater than 0.,
 after this transaction.,
 against cost center ,
 against sales order,contro l&#39;ordine di vendita
 against same operation, per la stessa operazione
 already marked, già avviato
 and fiscal year : ,
 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:
 budget ,
 can not be created/modified against stopped Sales Order ,
 can not be deleted,
 can not be made., non può essere fatto.
 can not be received twice,
 can only be debited/credited through Stock transactions,
 created,
 does not belong to ,
 does not belong to Warehouse,
 does not belong to the company, non appartiene alla società
 does not exists,
 for account ,
 has been freezed. ,è stato congelato.
 is a frozen account. Either make the account active or assign role in Accounts Settings who can create / modify entries against this account,
" is a frozen account. To create / edit transactions against this account, you need role",
" is less than equals to zero in the system, valuation rate is mandatory for this item",
 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 submitted document,
" is now the default Fiscal Year. \
			Please refresh your browser for the change to take effect.",
 not active or does not exists in the system, non attiva o non esiste nel sistema
 or the BOM is cancelled or inactive, o la Di.Ba è rimossa o disattivata
 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 created,
 will be over-billed against mentioned ,saranno oltre becco contro menzionato
 will become ,diventerà
 will exceed by ,
""" does not exists","""Non esiste"
# ###.##,
"#,###",
"#,###.##",
"#,###.###",
"#,##,###.##",
#.###,
"#.###,##",
%  Delivered,%  Consegnato
% Amount Billed,% Importo Fatturato
% Billed,% Fatturato
% Completed,% Completato
% Delivered,Consegnato %
% 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
%(conversion_rate_label)s is mandatory. Maybe Currency Exchange record is not created for %(from_currency)s to %(to_currency)s,% ( conversion_rate_label ) s è obbligatoria . Forse record di cambio di valuta non è stato creato per% ( from_currency ) s al % ( to_currency ) s
' 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.'
"(Paid amount + Write Off Amount) can not be \
				greater than Grand Total",
(Total) Net Weight value. Make sure that Net Weight of each item is,(Totale ) Valore di peso netto . Assicurarsi che il peso netto di ogni articolo è
* 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**",
**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.",
. 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'
01,01
02,02
03,03
04,04
05,05
06,06
07,07
08,08
09,09
"1 Currency = [?] Fraction
For e.g. 1 USD = 100 Cent",
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1.Per mantenere la voce codice cliente e renderli ricercabili in base al loro codice usare questa opzione
10,10
11,11
12,12
2,2
3,3
4,4
5,5
6,6
: 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"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Aggiungi / Modifica < / a>"
"<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group""> Aggiungi / Modifica < / a>"
"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Aggiungi / Modifica < / a>"
"<a href=""https://en.wikipedia.org/wiki/Transport_Layer_Security"" target=""_blank"">[?]</a>","<a href=""https://en.wikipedia.org/wiki/Transport_Layer_Security"" target=""_blank""> [ ? ] < / a>"
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 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+,A+
A-,A-
AB+,AB +
AB-,AB-
AMC Expiry Date,AMC Data Scadenza
AMC expiry date and maintenance status mismatched,AMC data di scadenza e lo stato di manutenzione non corrispondenti
ATT,ATT
Abbr,Abbr
About ERPNext,Chi ERPNext
Above Value,Sopra Valore
Absent,Assente
Acceptance Criteria,Criterio Accettazione
Accepted,Accettato
Accepted Quantity,Quantità Accettata
Accepted Warehouse,Magazzino Accettato
Account,conto
Account ,
Account Balance,Bilancio Conto
Account Details,Dettagli conto
Account Head,Conto Capo
Account Name,Nome Conto
Account Type,Tipo Conto
Account expires on,Account scade il
Account for the warehouse (Perpetual Inventory) will be created under this Account.,Conto per il magazzino ( Perpetual Inventory) verrà creato con questo account .
Account for this ,Tenere conto di questo
Accounting,Contabilità
Accounting Entries are not allowed against groups.,Le voci contabili non sono ammessi contro i gruppi .
"Accounting Entries can be made against leaf nodes, called","Scritture contabili può essere fatta contro nodi foglia , chiamato"
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 Log:,Registro 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 Qty: Quantity available in the warehouse.,Quantità effettivo: Quantità disponibile a magazzino.
Actual Quantity,Quantità Reale
Actual Start Date,Data Inizio Effettivo
Add,Aggiungi
Add / Edit Taxes and Charges,Aggiungere / Modificare Tasse e Costi
Add Child,Aggiungi ai bambini
Add Serial No,Aggiungi Serial No
Add Taxes,Aggiungi Imposte
Add Taxes and Charges,Aggiungere Tasse e spese
Add or Deduct,Aggiungere o dedurre
Add rows to set annual budgets on Accounts.,Aggiungere righe per impostare i budget annuali sui conti.
Add to calendar on this date,Aggiungi al calendario in questa data
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
Advance Amount,Importo Anticipo
Advance amount,Importo anticipo
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 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 Sales Order,Contro Sales Order
Against Voucher,Per Tagliando
Against Voucher Type,Per tipo Tagliando
Ageing Based On,Invecchiamento Basato Su
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",
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 Supplier Types,Tutti i tipi di fornitori
"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.",
"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.",
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 Bill of Materials,Consentire Distinta di Base
Allow Dropbox Access,Consentire Accesso DropBox
Allow For Users,Consentire Per gli utenti
Allow Google Drive Access,Consentire Accesso Google Drive
Allow Negative Balance,Consentire Bilancio Negativo
Allow Negative Stock,Consentire Magazzino Negativo
Allow Production Order,Consentire Ordine Produzione
Allow User,Consentire Utente
Allow Users,Consentire Utenti
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
Allowance Percent,Tolleranza Percentuale
Allowed Role to Edit Entries Before Frozen Date,Ruolo permesso di modificare le voci prima congelato Data
Always use above Login Id as sender,Utilizzare sempre sopra ID di accesso come mittente
Amended From,Corretto da
Amount,Importo
Amount (Company Currency),Importo (Valuta Azienda)
Amount <=,Importo <=
Amount >=,Importo >=
Amount to Bill,Importo da Bill
Analytics,Analytics
Another Period Closing Entry,Un altro Entry periodo di chiusura
Another Salary Structure '%s' is active for employee '%s'. Please make its status 'Inactive' to proceed.,Un'altra struttura retributiva '% s' è attivo per dipendente '% s' . Si prega di fare il suo status di ' inattivo ' per procedere .
"Any other comments, noteworthy effort that should go in the records.","Altre osservazioni, degno di nota lo sforzo che dovrebbe andare nei registri."
Applicable Holiday List,Lista Vacanze Applicabile
Applicable Territory,Territorio 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
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 STOP ,
Are you sure you want to UNSTOP ,
Arrear Amount,Importo posticipata
"As Production Order can be made for this item, \
				it must be a stock item.",
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'","Come ci sono le transazioni di magazzino esistenti per questo articolo, non è possibile modificare i valori di ' Ha Serial No' , ' è articolo di ' e ' il metodo di valutazione '"
Atleast one warehouse is mandatory,Almeno un Magazzino è obbligatorio
Attendance,Presenze
Attendance Date,Data Presenza
Attendance Details,Dettagli presenze
Attendance From Date,Partecipazione Da Data
Attendance From Date and Attendance To Date is mandatory,La frequenza da Data e presenze A Data è obbligatoria
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
Authorization Control,Controllo Autorizzazioni
Authorization Rule,Ruolo Autorizzazione
Auto Accounting For Stock Settings,Contabilità Auto Per Impostazioni Immagini
Auto Email Id,Email ID Auto
Auto Material Request,Richiesta Materiale Auto
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 extract Job Applicants from a mail box ,
Automatically extract Leads from a mail box e.g.,Estrarre automaticamente Leads da una casella di posta elettronica ad esempio
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",
Average Age,Età media
Average Commission Rate,Media della Commissione Tasso
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
Backup Manager,Gestione Backup
Backup Right Now,Backup ORA
Backups will be uploaded to,Backup verranno caricati su
Balance Qty,equilibrio Quantità
Balance Value,saldo Valore
"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 Accounts,Conti bancari
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
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
"Before proceeding, please create Customer from Lead","Prima di procedere , vi preghiamo di creare Cliente da piombo"
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 Amount,importo fatturato
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
Birthday,Compleanno
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 Post,Articolo Blog
Blog Subscriber,Abbonati Blog
Blood Group,Gruppo Discendenza
Both Income and Expense balances are zero. No Need to make Period Closing Entry.,Entrambi i saldi di entrate e uscite sono pari a zero . Nessuna necessità di rendere Periodo di chiusura delle iscrizioni .
Both Warehouse must belong to same Company,Entrambi Warehouse deve appartenere alla stessa Società
Branch,Ramo
Brand,Marca
Brand Name,Nome Marca
Brand master.,Marchio Originale.
Brands,Marche
Breakdown,Esaurimento
Budget,Budget
Budget Allocated,Budget Assegnato
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 Report,costruire Rapporto
Bulk Rename,Rename Bulk
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.
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.
C-Form records,Record C -Form
CI/2010-2011/,CI/2010-2011/
COMM-,COMM-
CUST,CUST
CUSTMUM,CUSTMUM
Calculate Based On,Calcola in base a
Calculate Total Score,Calcolare il punteggio totale
Calendar Events,Eventi del calendario
Call,Chiama
Campaign,Campagna
Campaign Name,Nome Campagna
"Can not filter based on Account, if grouped by Account","Non è possibile filtrare sulla base di conto , se raggruppati per conto"
"Can not filter based on Voucher No, if grouped by Voucher","Non è possibile filtrare sulla base di Voucher No , se raggruppati per Voucher"
Cancelled,Annullato
Cancelling this Stock Reconciliation will nullify its effect.,Annullamento questo Stock Riconciliazione si annulla il suo effetto .
Cannot ,Impossibile
Cannot Cancel Opportunity as Quotation Exists,Non può annullare Opportunità come esiste Preventivo
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 Year Start Date and Year End Date once the Fiscal Year is saved.,"Impossibile modificare Anno data di inizio e di fine anno , una volta l' anno fiscale è stato salvato ."
Cannot continue.,Non è possibile continuare.
"Cannot declare as lost, because Quotation has been made.","Non è possibile dichiarare come perduto , perché Preventivo è stato fatto ."
"Cannot delete Serial No in warehouse. \
				First remove from warehouse, then delete.",
Cannot set as Lost as Sales Order is made.,Impossibile impostare come persa come è fatto Sales Order .
Capacity,Capacità
Capacity Units,Unità Capacità
Carry Forward,Portare Avanti
Carry Forwarded Leaves,Portare Avanti Autorizzazione
Case No. cannot be 0,Caso No. Non può essere 0
Cash,Contante
Cash Voucher,Buono Contanti
Cash/Bank Account,Conto Contanti/Banca
Category,Categoria
Cell Number,Numero di Telefono
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 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 for Duplicates,Verificare la presenza di duplicati
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 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
Cheque,Assegno
Cheque Date,Data Assegno
Cheque Number,Controllo Numero
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 Table,Pulisci Tabella
Clearance Date,Data Liquidazione
Click here to buy subscription.,Clicca qui per acquistare la sottoscrizione .
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 a link to get options to expand get options ,
Client,Intestatario
Close Balance Sheet and book Profit or Loss.,Chiudere Stato Patrimoniale e il libro utile o perdita .
Closed,Chiuso
Closing Account Head,Chiudere Conto Primario
Closing Date,Data Chiusura
Closing Fiscal Year,Chiusura Anno Fiscale
Closing Qty,Chiusura Quantità
Closing Value,Valore di chiusura
CoA Help,Aiuto CoA
Cold Calling,Chiamata Fredda
Color,Colore
Comma separated list of email addresses,Lista separata da virgola degli indirizzi email
Comments,Commenti
Commission Rate,Tasso Commissione
Commission Rate (%),Tasso Commissione (%)
Commission partners and targets,Commissione Partner  Obiettivi
Commit Log,Commit Log
Communication,Comunicazione
Communication HTML,Comunicazione HTML
Communication History,Storico Comunicazioni
Communication Medium,Mezzo di comunicazione
Communication log.,Log comunicazione
Communications,comunicazioni
Company,Azienda
Company Abbreviation,Abbreviazione Società
Company Details,Dettagli Azienda
Company Email,azienda Email
Company Info,Info 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 in following warehouses,Azienda è presente nelle seguenti magazzini
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"
"Company, Month and Fiscal Year is mandatory","Società , mese e anno fiscale è obbligatoria"
Complaint,Reclamo
Complete,Completare
Completed,Completato
Completed Production Orders,Completati gli ordini di produzione
Completed Qty,Q.tà Completata
Completion Date,Data Completamento
Completion Status,Stato Completamento
Confirmation Date,conferma Data
Confirmed orders from Customers.,Ordini Confermati da Clienti.
Consider Tax or Charge for,Cnsidera Tasse o Cambio per
Considered as Opening Balance,Considerato come Apertura Saldo
Considered as an Opening Balance,Considerato come Apertura Saldo
Consultant,Consulente
Consumable Cost,Costo consumabili
Consumable cost per hour,Costo consumabili per ora
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
Content,Contenuto
Content Type,Tipo Contenuto
Contra Voucher,Contra Voucher
Contract End Date,Data fine Contratto
Contribution (%),Contributo (%)
Contribution to Net Total,Contributo sul totale netto
Conversion Factor,Fattore di Conversione
Conversion Factor of UOM: %s should be equal to 1. As UOM: %s is Stock UOM of Item: %s.,Fattore di Conversione del Confezionamento: % s dovrebbe essere uguale a 1 . Come Confezionamento: % s è Fotografico Confezionamento articolo: % s .
Convert into Recurring Invoice,Convertire in fattura ricorrente
Convert to Group,Convert to Group
Convert to Ledger,Converti Ledger
Converted,Convertito
Copy From Item Group,Copiare da elemento Gruppo
Cost Center,Centro di Costo
Cost Center Details,Dettaglio Centro di Costo
Cost Center Name,Nome Centro di Costo
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
"Country, Timezone and Currency","Paese , Fuso orario e valuta"
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 Customer,Crea clienti
Create Material Requests,Creare Richieste Materiale
Create New,Crea nuovo
Create Opportunity,creare Opportunità
Create Production Orders,Crea Ordine Prodotto
Create Quotation,Crea Preventivo
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 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
Credited account (Customer) is not matching with Sales Invoice,Conto titoli ( cliente ) non è la corrispondenza con fattura di vendita
Cross Listing of Item in multiple groups,Attraversare Elenco di Articolo in più gruppi
Currency,Valuta
Currency Exchange,Cambio Valuta
Currency Name,Nome Valuta
Currency Settings,Impostazioni Valuta
Currency and Price List,Valuta e Lista Prezzi
Currency is missing for Price List,Valuta manca listino prezzi
Current Address,Indirizzo Corrente
Current Address Is,Indirizzo attuale è
Current BOM,DiBa Corrente
Current Fiscal Year,Anno Fiscale Corrente
Current Stock,Scorta Corrente
Current Stock UOM,Scorta Corrente UOM
Current Value,Valore Corrente
Custom,Personalizzato
Custom Autoreply Message,Auto rispondi Messaggio Personalizzato
Custom Message,Messaggio Personalizzato
Customer,Cliente
Customer (Receivable) Account,Cliente (Ricevibile) Account
Customer / Item Name,Cliente / Nome voce
Customer / Lead Address,Clienti / Lead Indirizzo
Customer Account Head,Conto Cliente Principale
Customer Acquisition and Loyalty,Acquisizione e fidelizzazione dei clienti
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 / Customer,Gruppi clienti / clienti
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 classification tree.,Albero classificazione Cliente
Customer database.,Database 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 Purchase Order Number,Numero Ordine di Acquisto del Cliente
Customer's Vendor,Fornitore del Cliente
Customers Not Buying Since Long Time,Clienti non acquisto da molto tempo
Customerwise Discount,Sconto Cliente saggio
Customization,Personalizzazione
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 Time Log Summary,Registro Giornaliero Tempo
Data Import,Importa dati
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 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
Dates,Date
Days Since Last Order,Giorni dall'ultimo ordine
Days for which Holidays are blocked for this department.,Giorni per i quali le festività sono bloccati per questo reparto.
Dealer,Commerciante
Debit,Debito
Debit Amt,Ammontare Debito
Debit Note,Nota Debito
Debit To,Addebito a
Debit and Credit not equal for this voucher: Diff (Debit) is ,
Debit or Credit,Debito o Credito
Debited account (Supplier) is not matching with Purchase Invoice,Conto addebitato ( fornitore ) non è la corrispondenza con l'acquisto fattura
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 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 Income Account,Conto Predefinito Entrate
Default Item Group,Gruppo elemento Predefinito
Default Price List,Listino Prezzi Predefinito
Default Purchase Account in which cost of the item will be debited.,Conto acquisto Predefinito dove addebitare i costi.
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 UOM updated in item ,
Default Unit of Measure,Unità di Misura Predefinito
"Default Unit of Measure can not be changed directly because you have already made some transaction(s) with another UOM. To change default UOM, use 'UOM Replace Utility' tool under Stock module.","Unità di misura predefinita non può essere modificata direttamente perché avete già fatto qualche transazione ( s ) con un altro UOM . Per cambiare UOM predefinito , utilizzare ' UOM Sostituire Utility' strumento di sotto del modulo magazzino."
Default Valuation Method,Metodo Valutazione 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
"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>"
Delete,Elimina
Delivered,Consegnato
Delivered Items To Be Billed,Gli Articoli consegnati da Fatturare
Delivered Qty,Q.tà Consegnata
Delivered Serial No ,
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 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 LWP,Dipende da LWP
Description,Descrizione
Description HTML,Descrizione HTML
Description of a Job Opening,Descrizione Offerta Lavoro
Designation,Designazione
Detailed Breakup of the totals,Breakup dettagliato dei totali
Details,Dettagli
Difference,Differenza
Difference Account,account differenza
Different UOM for items will lead to incorrect,Diverso UOM per gli elementi porterà alla non corretta
Disable Rounded Total,Disabilita Arrotondamento su Totale
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 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 Contact,Non Contattaci
Do not show any symbol like $ etc next to currencies.,Non visualizzare nessun simbolo tipo € dopo le Valute.
Do you really want to STOP ,
Do you really want to STOP this Material Request?,Vuoi davvero fermare questo materiale Request ?
Do you really want to Submit all Salary Slip for month : ,
Do you really want to UNSTOP ,
Do you really want to UNSTOP this Material Request?,Vuoi davvero a stappare questa Materiale Richiedi ?
Doc Name,Nome Doc
Doc Type,Tipo Doc
Document Description,Descrizione del documento
Document Type,Tipo di documento
Documentation,Documentazione
Documents,Documenti
Domain,Dominio
Don't send Employee Birthday Reminders,Non inviare Dipendente Birthday Reminders
Download Materials Required,Scaricare Materiali Richiesti
Download Reconcilation Data,Scarica Riconciliazione dei dati
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.","Scarica il modello , compilare i dati appropriati e allegare il file modificato ."
"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",
Draft,Bozza
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
Duplicate Item,duplicare articolo
EMP/,EMP/
ERPNext Setup,Setup ERPNext
ERPNext Setup Guide,ERPNext Guida all'installazione
"ERPNext is an open-source web based ERP made by Web Notes Technologies Pvt Ltd. to provide an integrated tool to manage most processes in a small organization. For more information about Web Notes, or to buy hosting servies, go to ",
ESIC CARD No,ESIC CARD No
ESIC No.,ESIC No.
Earliest,Apertura
Earning,Rendimento
Earning & Deduction,Guadagno & Detrazione
Earning Type,Tipo Rendimento
Earning1,Rendimento1
Edit,Modifica
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
Electricity Cost,elettricità Costo
Electricity cost per hour,Costo dell'energia elettrica per ora
Email,Email
Email Digest,Email di massa
Email Digest Settings,Impostazioni Email di Massa
Email Digest: ,
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 Sent?,Invio Email?
Email Settings,Impostazioni email
Email Settings for Outgoing and Incoming Emails.,Impostazioni email per Messaggi in Ingresso e in Uscita
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"""
Emergency Contact,Contatto di emergenza
Emergency Contact Details,Dettagli Contatto Emergenza
Emergency Phone,Telefono di emergenza
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 Settings,Impostazioni per i dipendenti
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 / Disable Email Notifications,Attiva / Disattiva notifiche di posta elettronica
Enable Shopping Cart,Abilita Carello Acquisti
Enabled,Attivo
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
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 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 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 against,Voci contro
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
Estimated Material Cost,Stima costo materiale
Everyone can read,Tutti possono leggere
"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.",
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 Date cannot be before Material Request Date,Data prevista non può essere precedente Material Data richiesta
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 Claim has been approved.,Expense Claim è stato approvato .
Expense Claim has been rejected.,Expense Claim è stato respinto.
Expense Claim is pending approval. Only the Expense Approver can update status.,Expense Claim è in attesa di approvazione . Solo il Responsabile approvazione spesa può aggiornare lo stato .
Expense Date,Expense Data
Expense Details,Dettagli spese
Expense Head,Expense Capo
Expense account is mandatory for item,Conto spese è obbligatoria per l'articolo
Expense/Difference account is mandatory for item: ,
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
Exports,Esportazioni
External,Esterno
Extract Emails,Estrarre email
FCFS Rate,FCFS Rate
FIFO,FIFO
Failed: ,Impossibile:
Family Background,Sfondo Famiglia
Fax,Fax
Features Setup,Configurazione Funzioni
Feed,Fonte
Feed Type,Tipo Fonte
Feedback,Riscontri
Female,Femmina
Fetch exploded BOM (including sub-assemblies),Fetch BOM esplosa ( inclusi sottoassiemi )
"Field available in Delivery Note, Quotation, Sales Invoice, Sales Order","Campo disponibile nella Bolla di consegna, preventivi, fatture di vendita, ordini di vendita"
Files Folder ID,ID Cartella File
Fill the form and save it,Compila il form e salvarlo
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
Financial Analytics,Analisi Finanziaria
Financial Statements,Dichiarazione Bilancio
Finished Goods,Beni finiti
First Name,Nome
First Responded On,Ha risposto prima su
Fiscal Year,Anno Fiscale
Fixed Asset Account,Conto Patrimoniale Fisso
Float Precision,Float Precision
Follow via Email,Seguire via Email
"Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items.","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."
For Company,Per Azienda
For Employee,Per Dipendente
For Employee Name,Per Nome Dipendente
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 Supplier,per Fornitore
For UOM,Per UOM
For Warehouse,Per Magazzino
"For e.g. 2012, 2012-13","Per es. 2012, 2012-13"
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 reference,Per riferimento
For reference only.,Solo per riferimento.
"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"
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 Customer Issue,Da Issue clienti
From Date,Da Data
From Delivery Note,Nota di Consegna
From Employee,Da Dipendente
From Lead,Da LEAD
From Maintenance Schedule,Dal Programma di manutenzione
From Material Request,Da Material Request
From Opportunity,da Opportunity
From Package No.,Da Pacchetto N.
From Purchase Order,Da Ordine di Acquisto
From Purchase Receipt,Da Ricevuta di Acquisto
From Quotation,da Preventivo
From Sales Order,Da Ordine di Vendita
From Supplier Quotation,Da Quotazione fornitore
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
Frozen Accounts Modifier,Congelati conti Modifier
Fulfilled,Adempiuto
Full Name,Nome Completo
Fully Completed,Debitamente compilato
"Further accounts can be made under Groups,","Ulteriori conti possono essere fatti in Gruppi ,"
Further nodes can be only created under 'Group' type nodes,Ulteriori nodi possono essere creati solo sotto i nodi di tipo ' Gruppo '
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
Get Advances Paid,Ottenere anticipo pagamento
Get Advances Received,ottenere anticipo Ricevuto
Get Current Stock,Richiedi Disponibilità
Get Items,Ottieni articoli
Get Items From Sales Orders,Ottieni elementi da ordini di vendita
Get Items from BOM,Ottenere elementi dal BOM
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 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."
GitHub Issues,GitHub Issues
Global Defaults,Predefiniti Globali
Global Settings / Default Values,Valori Impostazioni globali / default
Go to the appropriate group (usually Application of Funds > Current Assets > Bank Accounts),Vai al gruppo appropriato ( di solito Applicazione dei Beni Fondi > Attualità > Conti bancari )
Go to the appropriate group (usually Source of Funds > Current Liabilities > Taxes and Duties),Vai al gruppo appropriato ( di solito fonte di finanziamento > Passività correnti > Tasse e imposte )
Goal,Obiettivo
Goals,Obiettivi
Goods received from Suppliers.,Merci ricevute dai fornitori.
Google Drive,Google Drive
Google Drive Access Allowed,Google Accesso unità domestici
Grade,Qualità
Graduate,Laureato:
Grand Total,Totale Generale
Grand Total (Company Currency),Totale generale (valuta Azienda)
Gratuity LIC ID,Gratuità ID LIC
"Grid ""","grid """
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 / 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
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;)"
"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! All these items have already been invoiced.,Hey! Tutti questi elementi sono già stati fatturati.
Hide Currency Symbol,Nascondi Simbolo Valuta
High,Alto
History In Company,Cronologia Aziendale
Hold,Trattieni
Holiday,Vacanza
Holiday List,Elenco Vacanza
Holiday List Name,Nome Elenco Vacanza
Holidays,Vacanze
Home,Home
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 Labour,Ora Vota Labour
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"
Human Resource,risorse Umane
I,I
IDT,IDT
II,II
III,III
IN,IN
INV,INV
INV/10-11/,INV/10-11 /
ITEM,ARTICOLO
IV,IV
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",
"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 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, 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 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 more than one package of the same type (for print),Se più di un pacchetto dello stesso tipo (per la stampa)
"If no change in either Quantity or Valuation Rate, leave the cell blank.","Se non cambia né Quantitativo o Tasso di valutazione , lasciare vuota la cella."
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 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 account is frozen, entries are allowed to restricted users.","Se l'account viene bloccato , le voci sono autorizzati a utenti con restrizioni ."
"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",
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>",
Ignore,Ignora
Ignored: ,Ignorato:
Image,Immagine
Image View,Visualizza immagine
Implementation Partner,Partner di implementazione
Import,Importazione
Import Attendance,Import presenze
Import Failed!,Importazione non riuscita !
Import Log,Importa Log
Import Successful!,Importazione di successo!
Imports,Importazioni
In Hours,In Hours
In Process,In Process
In Qty,Qtà
In Row,In fila
In Value,in Valore
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.
Incentives,Incentivi
Incharge,incharge
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.
Indicates that the package is a part of this delivery,Indica che il pacchetto è una parte di questa consegna
Individual,Individuale
Industry,Industria
Industry Type,Tipo Industria
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
Integrate incoming support emails to Support Ticket,Integrare le email di sostegno in arrivo per il supporto Ticket
Interested,Interessati
Internal,Interno
Introduction,Introduzione
Invalid Delivery Note. Delivery Note should exist and should be in draft state. Please rectify and try again.,Invalid bolla di consegna. Consegna Note dovrebbe esistere e deve essere in stato di bozza . Si prega di correggere e riprovare .
Invalid Email Address,Indirizzo e-mail non valido
Invalid Leave Approver,Invalid Lascia Approvatore
Invalid Master Name,Valido Master Nome
Invalid quantity specified for item ,
Inventory,Inventario
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
Invoiced Amount (Exculsive Tax),Importo fatturato ( Exculsive Tax)
Is Active,È attivo
Is Advance,È Advance
Is Asset Item,È Asset articolo
Is Cancelled,Viene Annullato
Is Carry Forward,È portare avanti
Is Default,È Default
Is Encash,È incassare
Is LWP,È LWP
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 Stock Item,È Stock articolo
Is Sub Contracted Item,È sub articolo Contrattato
Is Subcontracted,Di subappalto
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 can also be used to create opening stock entries and to fix stock value.,Può anche essere utilizzato per creare aprono le entrate nelle scorte e di fissare valore azionario .
Item,articolo
Item ,
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 and Warehouse should already exist.,Articolo Codice e Magazzino dovrebbero già esistere.
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 Group Tree,Voce Gruppo Albero
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 Shortage Report,Voce Carenza Rapporto
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 is neither Sales nor Service Item,L'articolo è né vendite né servizio Voce
"Item must be a purchase item, \
					as it is present in one or many Active BOMs",
Item must have 'Has Serial No' as 'Yes',L&#39;oggetto deve avere &#39;Ha Serial No&#39; a &#39;Sì&#39;
Item table can not be blank,Tavolo articolo non può essere vuoto
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 Last Purchase Rate,Articolo-saggio Ultimo Purchase Rate
Item-wise Price List Rate,Articolo -saggio Listino Tasso
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,Articoli da richiedere
"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
JV,JV
Job Applicant,Candidato di lavoro
Job Opening,Apertura di lavoro
Job User,Profilo di lavoro
Job Title,Professione
"Job User, qualifications required etc.","Profilo professionale, le qualifiche richieste, ecc"
Jobs Email Settings,Impostazioni email Lavoro
Journal Entries,Prime note
Journal Entry,Journal Entry
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 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 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
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
Last Name,Cognome
Last Purchase Rate,Ultimo Purchase Rate
Latest,ultimo
Latest Updates,Ultimi aggiornamenti
Lead,Portare
Lead Details,Piombo dettagli
Lead Id,piombo Id
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 application has been approved.,Lascia domanda è stata approvata .
Leave application has been rejected.,Lascia domanda è stata respinta .
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 can be approved by users with Role, ""Leave Approver""","Lascia può essere approvato dagli utenti con il ruolo, &quot;Leave Approvatore&quot;"
Ledger,Ledger
Ledgers,registri
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
Level,Livello
Lft,Lft
List a few of your customers. They could be organizations or individuals.,Elencare alcuni dei vostri clienti . Potrebbero essere organizzazioni o individui .
List a few of your suppliers. They could be organizations or individuals.,Elencare alcuni dei vostri fornitori . Potrebbero essere organizzazioni o individui .
"List a few products or services you buy from your suppliers or vendors. If these are same as your products, then do not add them.","Elencare alcuni prodotti o servizi che si acquistano dai vostri fornitori o venditori . Se questi sono gli stessi come i vostri prodotti , allora non li aggiungere ."
List items that form the package.,Voci di elenco che formano il pacchetto.
List of holidays.,Elenco dei giorni festivi.
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.
"List your products or services that you sell to your customers. Make sure to check the Item Group, Unit of Measure and other properties when you start.","Inserisci i tuoi prodotti o servizi che vendete ai vostri clienti . Assicuratevi di controllare il gruppo Item , unità di misura e altre proprietà quando si avvia ."
"List your tax heads (e.g. VAT, Excise) (upto 3) and their standard rates. This will create a standard template, you can edit and add more later.","Elencate i vostri capi d'imposta ( ad esempio IVA , accise ) ( fino a 3) e le loro tariffe standard . Questo creerà un modello standard , è possibile modificare e aggiungere più tardi ."
Live Chat,Live Chat
Loading...,Caricamento in corso ...
"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."
Login Id,ID di accesso
Login with your new User ID,Accedi con il tuo nuovo ID Utente
Logo,Logo
Logo and Letter Heads,Logo e Letter Heads
Lost,perso
Lost Reason,Perso Motivo
Low,Basso
Lower Income,Reddito più basso
MIS Control,MIS controllo
MREQ-,MREQ-
MTN Details,MTN Dettagli
Mail Password,Mail Password
Mail Port,Mail Port
Main Reports,Rapporti principali
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 ,
Make Accounting Entry For Every Stock Movement,Fai Entry Accounting per ogni Archivio Movimento
Make Bank Voucher,Fai Voucher Banca
Make Credit Note,Fai la nota di credito
Make Debit Note,Fai la nota di addebito
Make Delivery,effettuare la consegna
Make Difference Entry,Fai la Differenza Entry
Make Excise Invoice,Fai Excise Fattura
Make Installation Note,Fai Installazione Nota
Make Invoice,la fattura
Make Maint. Schedule,Fai Maint . piano
Make Maint. Visit,Fai Maint . visita
Make Maintenance Visit,Effettuare la manutenzione Visita
Make Packing Slip,Rendere la distinta di imballaggio
Make Payment Entry,Fai Pagamento Entry
Make Purchase Invoice,Fai Acquisto Fattura
Make Purchase Order,Fai Ordine di Acquisto
Make Purchase Receipt,Fai la ricevuta d'acquisto
Make Salary Slip,Fai Stipendio slittamento
Make Salary Structure,Fai la struttura salariale
Make Sales Invoice,Fai la fattura di vendita
Make Sales Order,Fai Sales Order
Make Supplier Quotation,Fai Quotazione fornitore
Male,Maschio
Manage 3rd Party Backups,Gestire 3rd Party backup
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 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à
Manufacturing Quantity is mandatory,Produzione La quantità è obbligatoria
Margin,Margine
Marital Status,Stato civile
Market Segment,Segmento di Mercato
Married,Sposato
Mass Mailing,Mailing di massa
Master Data,dati anagrafici
Master Name,Maestro Nome
Master Name is mandatory if account type is Warehouse,Master Nome è obbligatorio se il tipo di account è Warehouse
Master Type,Master
Masters,Masters
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 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 Days Leave Allowed,Max giorni di ferie domestici
Max Discount (%),Sconto Max (%)
Max Returnable Qty,Max restituibile Qtà
Medium,Media
"Merging is only possible if following \
					properties are same in both records.
					Group or Ledger, Debit or Credit, Is PL Account",
Message,Messaggio
Message Parameter,Messaggio Parametro
Message Sent,messaggio inviato
Messages,Messaggi
Messages greater than 160 characters will be split into multiple messages,Messaggio maggiore di 160 caratteri verrà divisa in mesage multipla
Middle Income,Reddito Medio
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
Min Order Qty,Qtà ordine minimo
Minimum Order Qty,Qtà ordine minimo
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
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 Details,Maggiori dettagli
More Info,Ulteriori informazioni
Moving Average,Media mobile
Moving Average Rate,Media mobile Vota
Mr,Sig.
Ms,Ms
Multiple Item prices.,Molteplici i prezzi articolo.
Multiple Price list.,Multipla Listino prezzi .
Must be Whole Number,Devono essere intere Numero
My Settings,Le mie impostazioni
NL-,NL-
Name,Nome
Name and Description,Nome e descrizione
Name and Employee ID,Nome e ID dipendente
Name is required,Il nome è obbligatorio
"Name of new Account. Note: Please don't create accounts for Customers and Suppliers,","Nome del nuovo account . Nota : Si prega di non creare account per i clienti e fornitori ,"
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
Naming Series,Naming Series
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 ,
New Account,nuovo account
New Account Name,Nuovo nome account
New BOM,Nuovo BOM
New Communications,New Communications
New Company,New Company
New Cost Center,Nuovo Centro di costo
New Cost Center Name,Nuovo Centro di costo Nome
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 Projects,Nuovi Progetti
New Purchase Orders,Nuovi Ordini di acquisto
New Purchase Receipts,Nuovo acquisto Ricevute
New Quotations,Nuove citazioni
New Sales Orders,Nuovi Ordini di vendita
"New Serial No cannot have Warehouse. Warehouse must be \
				set by Stock Entry or Purchase Receipt",
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
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 email will be sent on:,Email prossimo verrà inviato:
No,No
No Action,Nessuna azione
No Customer Accounts found.,Nessun account dei clienti trovata .
"No Customer or Supplier Accounts found. Accounts are identified based on \
			'Master Type' value in account record.",
No Item found with ,
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 Production Order created.,Nessun ordine di produzione creato.
No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.,Nessun account Fornitore trovato. Contabilità fornitori sono identificati in base al valore ' Master ' in conto record.
No accounting entries for following warehouses,Nessuna scritture contabili per seguire capannoni
No addresses created,Nessun indirizzi creati
No contacts created,No contatti creati
No default BOM exists for item: ,No BOM esiste per impostazione predefinita articolo:
No of Requested SMS,No di SMS richiesto
No of Sent SMS,No di SMS inviati
No of Visits,No di visite
No record found,Nessun record trovato
No salary slip found for month: ,Nessun foglio paga trovato per mese:
Not,Non
Not Active,Non attivo
Not Applicable,Non Applicabile
Not Available,Non disponibile
Not Billed,Non fatturata
Not Delivered,Non consegnati
Not Set,non impostato
Not allowed entry in Warehouse,Ingresso non consentito in Warehouse
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:,Nota :
"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
Notes,Note
Notes:,Note:
Nothing to request,Niente da chiedere
Notice (days),Avviso ( giorni )
Notification Control,Controllo di notifica
Notification Email Address,Indirizzo e-mail di notifica
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
Offer Date,offerta Data
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
"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 leaf nodes are allowed in transaction,Solo i nodi foglia sono ammessi nelle transazioni
Open,Aprire
Open Production Orders,Aprire ordini di produzione
Open Tickets,Biglietti Open
Opening,apertura
Opening Accounting Entries,Apertura scritture contabili
Opening Accounts and Stock,Conti e Archivio di apertura
Opening Date,Data di apertura
Opening Entry,Apertura Entry
Opening Qty,Quantità di apertura
Opening Time,Tempo di apertura
Opening Value,Valore 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à
Optional. This setting will be used to filter in various transactions.,Facoltativo. Questa impostazione verrà utilizzato per filtrare in diverse operazioni .
Order Type,Tipo di ordine
Ordered,ordinato
Ordered Items To Be Billed,Articoli ordinati da fatturare
Ordered Items To Be Delivered,Articoli ordinati da consegnare
Ordered Qty,Quantità ordinato
"Ordered Qty: Quantity ordered for purchase, but not received.","Quantità ordinata: Quantità ordinato per l'acquisto , ma non ricevuto ."
Ordered Quantity,Ordinato Quantità
Orders released for production.,Gli ordini rilasciati per la produzione.
Organization,organizzazione
Organization Name,Nome organizzazione
Organization User,Profilo dell&#39;organizzazione
Other,Altro
Other Details,Altri dettagli
Out Qty,out Quantità
Out Value,out Valore
Out of AMC,Fuori di AMC
Out of Warranty,Fuori garanzia
Outgoing,In partenza
Outgoing Email Settings,Impostazioni e-mail in uscita
Outgoing Mail Server,Server posta in uscita
Outgoing Mails,Mail in uscita
Outstanding Amount,Eccezionale Importo
Outstanding for Voucher ,Eccezionale per i Voucher
Overhead,Overhead
Overheads,Spese generali
Overlapping Conditions found between,Condizioni sovrapposte trovati tra
Overview,Panoramica
Owned,Di proprietà
Owner,proprietario
PAN Number,Numero PAN
PF No.,PF No.
PF Number,Numero PF
PI/2011/,PI/2011 /
PIN,PIN
PL or BS,PL o BS
PO,PO
PO Date,PO Data
PO No,PO No
POP3 Mail Server,POP3 Mail Server
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
PR Posting Date,PR Data Pubblicazione
PRO,PRO
PS,PS
Package Item Details,Confezione Articolo Dettagli
Package Items,Articoli della confezione
Package Weight Details,Pacchetto peso
Packed Item,Nota Consegna Imballaggio articolo
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 Break,Interruzione di pagina
Page Name,Nome pagina
Paid,pagato
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 Sales Person,Parent Sales Person
Parent Territory,Territorio genitore
Parenttype,ParentType
Partially Billed,parzialmente Fatturato
Partially Completed,Parzialmente completato
Partially Delivered,parzialmente Consegnato
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
Pay To / Recd From,Pay To / RECD Da
Payables,Debiti
Payables Group,Debiti Gruppo
Payment Days,Giorni di Pagamento
Payment Due Date,Pagamento Due Date
Payment Entries,Voci di pagamento
"Payment Entry has been modified after you pulled it. 
			Please pull it again.",
Payment Period Based On Invoice Date,Periodo di pagamento basati su Data fattura
Payment Reconciliation,Riconciliazione Pagamento
Payment Type,Tipo di pagamento
Payment of salary for the month: ,
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 Settings,Impostazioni Payroll
Payroll Setup,Setup Payroll
Pending,In attesa
Pending Amount,In attesa di Importo
Pending Review,In attesa recensione
Pending SO Items For Purchase Request,Elementi in sospeso così per Richiesta di Acquisto
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,periodo
Period Closing Voucher,Periodo di chiusura Voucher
Periodicity,Periodicità
Permanent Address,Indirizzo permanente
Permanent Address Is,Indirizzo permanente è
Permission,Autorizzazione
Permission Manager,Permission Manager
Personal,Personale
Personal Details,Dettagli personali
Personal Email,Personal Email
Phone,Telefono
Phone No,N. di telefono
Phone No.,No. Telefono
Pincode,PINCODE
Place of Issue,Luogo di emissione
Plan for maintenance visits.,Piano per le visite di manutenzione.
Planned Qty,Qtà Planned
"Planned Qty: Quantity, for which, Production Order has been raised,","Planned Quantità : Quantità , per il quale , ordine di produzione è stata sollevata ,"
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 Select Company under which you want to create account head,Selezionare Società in base al quale si desidera creare account di testa
Please check,Si prega di verificare
Please create new account from Chart of Accounts.,Si prega di creare un nuovo account dal Piano dei conti .
Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.,Si prega di non creare account ( Registri ) per Clienti e Fornitori . Essi sono creati direttamente dai maestri cliente / fornitore .
Please enter Company,Inserisci Società
Please enter Cost Center,Inserisci Centro di costo
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 Id of this sales parson,Inserisci Id dipendente di questa Parson vendite
Please enter Expense Account,Inserisci il Conto uscite
Please enter Item Code to get batch no,Inserisci il codice Item per ottenere lotto non
Please enter Item Code.,Inserisci il codice dell'articolo.
Please enter Item first,Inserisci articolo prima
Please enter Master Name once the account is created.,Inserisci il Master Nome una volta creato l'account .
Please enter Production Item first,Inserisci Produzione articolo prima
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 Start Date and End Date,Inserisci data di inizio e di fine
Please enter Warehouse for which Material Request will be raised,Inserisci il Magazzino per cui Materiale richiesta sarà sollevata
"Please enter account group under which account \
					for warehouse ",
Please enter company first,Inserisci prima azienda
Please enter company name first,Inserisci il nome della società prima
Please enter sales order in the above table,Inserisci ordine di vendita nella tabella sopra
Please install dropbox python module,Si prega di installare dropbox modulo python
Please mention default value for ',Si prega di citare il valore di default per &#39;
Please reduce qty.,Ridurre qty.
Please save the Newsletter before sending.,Si prega di salvare la newsletter prima dell&#39;invio.
Please save the document before generating maintenance schedule,Si prega di salvare il documento prima di generare il programma di manutenzione
Please select Account first,Si prega di selezionare Account primo
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 Category first,Si prega di selezionare Categoria prima
Please select Charge Type first,Seleziona il tipo di carica prima
Please select Date on which you want to run the report,Seleziona la data in cui si desidera eseguire il report
Please select Price List,Seleziona Listino Prezzi
Please select a,Si prega di selezionare una
Please select a csv file,Seleziona un file csv
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 an ""Image"" first","Seleziona ""Immagine "" prima"
Please select month and year,Si prega di selezionare mese e anno
Please select options and click on Create,Si prega di selezionare opzioni e fare clic su Crea
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 setup your chart of accounts before you start Accounting Entries,Si prega di configurare il piano dei conti prima di iniziare scritture contabili
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",
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
Please submit to update Leave Balance.,Si prega di inviare per aggiornare Lascia Balance.
Please write something,Si prega di scrivere qualcosa
Please write something in subject and message!,Si prega di scrivere qualcosa in oggetto e il messaggio !
Plot,trama
Plot By,Plot By
Point of Sale,Punto di vendita
Point-of-Sale Setting,Point-of-Sale Setting
Post Graduate,Post Laurea
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
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
Previous Work Experience,Lavoro precedente esperienza
Price List,Listino Prezzi
Price List Currency,Prezzo di listino Valuta
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)
Print,Stampa
Print Format Style,Formato Stampa Style
Print Heading,Stampa Rubrica
Print Without Amount,Stampare senza Importo
Printing,Stampa
Priority,Priorità
Process Payroll,Processo Payroll
Produced,prodotto
Produced Quantity,Prodotto Quantità
Product Enquiry,Prodotto Inchiesta
Production Order,Ordine di produzione
Production Order must be submitted,Ordine di produzione deve essere presentata
Production Order(s) created:\n\n,Ordine di produzione ( s ) creato : \ n \ n
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 or Services You Buy,Prodotti o servizi che si acquistano
"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."
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,proiettata
Projected Qty,Qtà Proiettata
Projects,Progetti
Prompt for Email on Submission of,Richiedi Email su presentazione di
Provide email id registered in company,Fornire id-mail registrato in azienda
Public,Pubblico
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 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
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
Qty to Deliver,Qtà di Consegna
Qty to Order,Qty di ordinazione
Qty to Receive,Qtà per ricevere
Qty to Transfer,Qtà Trasferire
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 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. To fetch items again, click on 'Get Items' button or update the Quantity manually.","Quantità dovrebbe essere uguale a Manufacturing Quantità . Per recuperare nuovamente elementi, fare clic sul pulsante ' Get Articoli ' o aggiornare la Quantità manualmente ."
Quarter,Quartiere
Quarterly,Trimestrale
Quick Help,Guida rapida
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 Series,Serie Quotazione
Quotation To,Preventivo A
Quotation Trend,Quotazione Trend
Quotation is cancelled.,Citazione viene annullata .
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
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
Reason for losing,Motivo per perdere
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,ricevuto
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
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 SQ,Rif. SQ
Reference,Riferimento
Reference Date,Data di riferimento
Reference Name,Nome di riferimento
Reference Number,Numero di riferimento
Refresh,Refresh
Refreshing....,Rinfrescante ....
Registration Details,Dettagli di registrazione
Registration Info,Informazioni di Registrazione
Rejected,Rifiutato
Rejected Quantity,Rifiutato Quantità
Rejected Serial No,Rifiutato Serial No
Rejected Warehouse,Magazzino Rifiutato
Rejected Warehouse is mandatory against regected item,Warehouse Respinto è obbligatoria alla voce regected
Relation,Relazione
Relieving Date,Alleviare Data
Relieving Date of employee is ,Alleviare Data di dipendenti è
Remark,Osservazioni
Remarks,Osservazioni
Rename,rinominare
Rename Log,Rinominare Entra
Rename Tool,Rename Tool
Rent Cost,Affitto Costo
Rent per hour,Affittare all'ora
Rented,Affittato
Repeat on Day of Month,Ripetere il Giorno del mese
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 Date,Data Segnala
Report issues at,Problemi di relazione
Reports,Rapporti
Reports to,Relazioni al
Reqd By Date,Reqd Per Data
Request Type,Tipo di richiesta
Request for Information,Richiesta di Informazioni
Request for purchase.,Richiesta di acquisto.
Requested,richiesto
Requested For,richiesto Per
Requested Items To Be Ordered,Elementi richiesti da ordinare
Requested Items To Be Transferred,Voci si chiede il trasferimento
Requested Qty,richiesto Quantità
"Requested Qty: Quantity requested for purchase, but not ordered.","Richiesto Quantità : Quantità richiesto per l'acquisto , ma non ordinato."
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,riservato
Reserved Qty,Riservato Quantità
"Reserved Qty: Quantity ordered for sale, but not delivered.","Riservato Quantità : quantità ordinata in vendita , ma non consegnati ."
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
Reset Filters,Azzera i filtri
Resignation Letter Date,Lettera di dimissioni Data
Resolution,Risoluzione
Resolution Date,Risoluzione Data
Resolution Details,Dettagli risoluzione
Resolved By,Deliberato dall&#39;Assemblea
Retail,Vendita al dettaglio
Retailer,Dettagliante
Review Date,Data di revisione
Rgt,Rgt
Role Allowed to edit frozen stock,Ruolo ammessi da modificare stock congelato
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.
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 to calculate shipping amount for a sale,Regole per il calcolo dell&#39;importo di trasporto per una vendita
S.O. No.,S.O. No.
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 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 Qty,SO Quantità
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 Details,Dettagli di vendita
Sales Discounts,Sconti di vendita
Sales Email Settings,Vendite E-mail Impostazioni
Sales Extras,Extra di vendita
Sales Funnel,imbuto 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 Serial No,Stesso Serial No
Sample Size,Dimensione del campione
Sanctioned Amount,Importo sanzionato
Saturday,Sabato
Save ,
Schedule,Pianificare
Schedule Date,Programma Data
Schedule Details,Dettagli di pianificazione
Scheduled,Pianificate
Scheduled Date,Data prevista
School/University,Scuola / Università
Score (0-5),Punteggio (0-5)
Score Earned,Punteggio Earned
Score must be less than or equal to 5,Punteggio deve essere minore o uguale a 5
Scrap %,Scrap%
Seasonality for setting budgets.,Stagionalità di impostazione budget.
"See ""Rate Of Materials Based On"" in Costing Section",Vedere &quot;tasso di materiali a base di&quot; in Costing Sezione
"Select ""Yes"" for sub - contracting items",Selezionare &quot;Sì&quot; per i sub - articoli contraenti
"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 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 Digest Content,Selezionare Digest Contenuto
Select DocType,Selezionare DocType
"Select Item where ""Is Stock Item"" is ""No""","Selezionare la voce dove "" è articolo di "" è "" No"""
Select Items,Selezionare Elementi
Select Purchase Receipts,Selezionare ricevute di acquisto
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 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 account head of the bank where cheque was deposited.,Selezionare conto capo della banca in cui assegno è stato depositato.
Select company name first.,Selezionare il nome della società prima.
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 Invoice against which you want to allocate payments.,Selezionare la fattura contro il quale si desidera assegnare i pagamenti .
Select the period when the invoice will be generated automatically,Selezionare il periodo in cui la fattura viene generato automaticamente
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
Select your home country and check the timezone and currency.,Seleziona il tuo paese di origine e controllare il fuso orario e la valuta .
"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 Bulk SMS to Leads / Contacts,Inviare SMS Bulk ai conduttori / contatti
Send Email,Invia Email
Send From,Invia Dalla
Send Notifications To,Inviare notifiche ai
Send Now,Invia Ora
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 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
Sent,Inviati
Sent Mail,Posta inviata
Sent On,Inviata il
Sent Quotation,Quotazione Inviati
Sent or Received,Inviati o ricevuti
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 / Batch,Serial n / Batch
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,serie
Series List for this Transaction,Lista Serie per questa transazione
Service Address,Service Indirizzo
Services,Servizi
Session Expiry,Sessione di scadenza
Session Expiry in Hours e.g. 06:00,Sessione di scadenza in ore es 06:00
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 allocated amount against each Payment Entry and click 'Allocate'.,Set assegnato importo per ogni voce di pagamento e cliccare su ' Allocare ' .
Set as Default,Imposta come predefinito
Set as Lost,Imposta come persa
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 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.
Setting up...,Impostazione ...
Settings,Impostazioni
Settings for Accounts,Impostazioni per gli account
Settings for Buying Module,Impostazioni per l&#39;acquisto del modulo
Settings for Selling Module,Impostazioni per la vendita di moduli
Settings for Stock Module,Impostazioni per modulo Fotografico
"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 Already Complete!!,Setup già completo !
Setup Complete!,Installazione completa !
Setup Completed,Setup Completed
Setup Series,Serie Setup
Setup of Shopping Cart.,Impostazione di Carrello.
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 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 biography for website and other publications.,Breve biografia per il sito web e altre pubblicazioni.
"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 / Hide Features,Mostra / Nascondi Caratteristiche
Show / Hide Modules,Mostra / Nascondi Moduli
Show In Website,Mostra Nel Sito
Show a slideshow at the top of the page,Visualizzare una presentazione in cima alla pagina
Show in Website,Mostra nel Sito
Show this slideshow at the top of the page,Mostra questo slideshow in cima alla pagina
Signature,Firma
Signature to be appended at the end of every email,Firma da aggiungere alla fine di ogni e-mail
Single,Singolo
Single unit of an Item.,Unità singola di un articolo.
Sit tight while your system is being setup. This may take a few moments.,Tenere duro mentre il sistema è in corso di installazione . Questa operazione potrebbe richiedere alcuni minuti .
Slideshow,Slideshow
"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, Serial Nos cannot be merged","Siamo spiacenti , Serial Nos non può essere fusa"
"Sorry, companies cannot be merged","Siamo spiacenti , le aziende non possono essere unite"
Source,Fonte
Source Warehouse,Fonte Warehouse
Source and Target Warehouse cannot be same,Origine e di destinazione Warehouse non può essere lo stesso
Spartan,Spartan
Special Characters,Caratteri speciali
Special Characters ,
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
"Specify the operations, operating cost and give a unique Operation no to your operations.","Specificare le operazioni, costi operativi e dare una gestione unica di no a vostre operazioni."
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.",
"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.

#### Note

The tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.

#### Description of Columns

1. Calculation Type: 
    - This can be on **Net Total** (that is the sum of basic amount).
    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
    - **Actual** (as mentioned).
2. Account Head: The Account ledger under which this tax will be booked
3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.
4. Description: Description of the tax (that will be printed in invoices / quotes).
5. Rate: Tax rate.
6. Amount: Tax amount.
7. Total: Cumulative total to this point.
8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.
10. Add or Deduct: Whether you want to add or deduct the tax.",
"Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.

#### Note

The tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.

#### Description of Columns

1. Calculation Type: 
    - This can be on **Net Total** (that is the sum of basic amount).
    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
    - **Actual** (as mentioned).
2. Account Head: The Account ledger under which this tax will be booked
3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.
4. Description: Description of the tax (that will be printed in invoices / quotes).
5. Rate: Tax rate.
6. Amount: Tax amount.
7. Total: Cumulative total to this point.
8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.",
Start,Inizio
Start Date,Data di inizio
Start date of current invoice's period,Data finale del periodo di fatturazione corrente Avviare
Starting up...,Avvio ...
State,Stato
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 Ageing,Invecchiamento Archivio
Stock Analytics,Analytics Archivio
Stock Balance,Archivio Balance
Stock Entries already created for Production Order ,
Stock Entry,Archivio Entry
Stock Entry Detail,Dell&#39;entrata Stock Detail
Stock Frozen Upto,Archivio Congelati Fino
Stock Ledger,Ledger Archivio
Stock Ledger Entry,Ledger Archivio Entry
Stock Level,Stock Level
Stock Projected Qty,Disponibile Qtà proiettata
Stock Qty,Disponibilità Quantità
Stock Queue (FIFO),Coda Archivio (FIFO)
Stock Received But Not Billed,Archivio ricevuti ma non Fatturati
Stock Reconcilation Data,Riconciliazione Archivio dati
Stock Reconcilation Template,Riconciliazione Archivio Template
Stock Reconciliation,Riconciliazione Archivio
"Stock Reconciliation can be used to update the stock on a particular date, ",
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
Stock transactions exist against warehouse ,
Stop,Arresto
Stop Birthday Reminders,Arresto Compleanno Promemoria
Stop Material Request,Arresto Materiale Richiesta
Stop users from making Leave Applications on following days.,Impedire agli utenti di effettuare Lascia le applicazioni in giorni successivi.
Stop!,Stop!
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.
"Sub-currency. For e.g. ""Cent""","Sub-valuta. Per esempio, &quot;Cent&quot;"
Subcontract,Subappaltare
Subject,Soggetto
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
Submit this Production Order for further processing.,Invia questo ordine di produzione per l'ulteriore elaborazione .
Submitted,Inserito
Subsidiary,Sussidiario
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,conto fornitore
Supplier Account Head,Fornitore Account testa
Supplier Address,Fornitore Indirizzo
Supplier Addresses And Contacts,Fornitore di indirizzi e contatti
Supplier Addresses and Contacts,Indirizzi e contatti Fornitore
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 Type / Supplier,Fornitore 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-Wise Sales Analytics,Fornitore - Wise vendita Analytics
Support,Sostenere
Support Analtyics,Analtyics supporto
Support Analytics,Analytics Support
Support Email,Supporto Email
Support Email Settings,Supporto Impostazioni e-mail
Support Password,Supporto password
Support Ticket,Support Ticket
Support queries from customers.,Supportare le query da parte dei clienti.
Symbol,Simbolo
Sync Support Mails,Sincronizza mail di sostegno
Sync with Dropbox,Sincronizzazione con Dropbox
Sync with Google Drive,Sincronizzazione con Google Drive
System Administration,system Administration
System Scheduler Errors,Errori Scheduler sistema
System Settings,Impostazioni 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 for Item that will be shown in Web Site,Tabella per la voce che verrà mostrato nel sito Web
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 On,obiettivo On
Target Qty,Obiettivo Qtà
Target Warehouse,Obiettivo Warehouse
Task,Task
Task Details,Attività Dettagli
Tasks,compiti
Tax,Tax
Tax Accounts,Conti fiscali
Tax Calculation,Calcolo delle imposte
Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items,"Tasse categoria non può essere ' valutazione ' o ' di valutazione e Total ', come tutti gli articoli 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",
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)
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,condizioni
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
Terretory,Terretory
Territory,Territorio
Territory / Customer,Territorio / clienti
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 the Newsletter,Provare la Newsletter
The BOM which will be replaced,La distinta base che sarà sostituito
The First User: You,Il primo utente : è
"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 Organization,l'Organizzazione
"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 on which next invoice will be generated. It is generated on 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 day(s) on which you are applying for leave coincide with holiday(s). You need not apply for leave.,Il giorno ( s ) in cui si stanno applicando per ferie coincide con le vacanze ( s ) . Non c'è bisogno di domanda per il congedo .
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 first user will become the System Manager (you can change that later).,Il primo utente diventerà il System Manager ( si può cambiare in seguito ) .
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 for which you are setting up this system.,Il nome della vostra azienda per la quale si sta configurando questo sistema.
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 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.
There is nothing to edit.,Non c'è nulla da modificare.
There was an error. One probable reason could be that you haven't saved the form. Please contact support@erpnext.com if the problem persists.,Si è verificato un errore . Una ragione probabile potrebbe essere che non si è salvato il modulo. Si prega di contattare support@erpnext.com se il problema persiste .
There were errors.,Ci sono stati degli errori .
This Cost Center is a,Questo Centro di costo è un
This Currency is disabled. Enable to use in transactions,Questa valuta è disabilitata . Attiva da utilizzare nelle transazioni
This ERPNext subscription,Questo abbonamento ERPNext
This Leave Application is pending approval. Only the Leave Apporver can update status.,Questo Lascia applicazione è in attesa di approvazione . Solo l' Lascia Apporver può aggiornare lo stato .
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 is a root account and cannot be edited.,Questo è un account di root e non può essere modificato .
This is a root customer group and cannot be edited.,Si tratta di un gruppo di clienti root e non può essere modificato .
This is a root item group and cannot be edited.,Questo è un gruppo elemento principale e non può essere modificato .
This is a root sales person and cannot be edited.,Si tratta di una persona di vendita di root e non può essere modificato .
This is a root territory and cannot be edited.,Questo è un territorio root e non può essere modificato .
This is the number of the last created transaction with this prefix,Questo è il numero dell&#39;ultimo transazione creata con questo prefisso
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 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 for tasks.,Tempo di log per le attività.
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
To,A
To Currency,Per valuta
To Date,Di sesso
To Date should be same as From Date for Half Day leave,Per data deve essere lo stesso Dalla Data per il congedo mezza giornata
To Discuss,Per Discutere
To Do List,To Do List
To Package No.,A Pacchetto no
To Pay,To Pay
To Produce,per produrre
To Time,Per Tempo
To Value,Per Valore
To Warehouse,A Magazzino
"To add child nodes, explore tree and click on the node under which you want to add more nodes.","Per aggiungere nodi figlio , esplorare albero e fare clic sul nodo in cui si desidera aggiungere più nodi ."
"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 a Bank Account:,Per creare un conto bancario :
To create a Tax Account:,Per creare un Account Tax :
"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 date cannot be before from date,Fino ad oggi non può essere prima dalla data
To enable <b>Point of Sale</b> features,Per abilitare la funzionalità <b>Point of Sale</b>
To enable <b>Point of Sale</b> view,Per attivare <b> punto di vendita < / b > Vista
To get Item Group in details table,Per ottenere Gruppo di elementi in dettaglio tabella
"To merge, following properties must be same for both items","Per unire , seguenti proprietà devono essere uguali per entrambe le voci"
"To report an issue, go to ",
"To set this Fiscal Year as Default, click on 'Set as Default'","Per impostare questo anno fiscale come predefinito , clicca su ' Imposta come predefinito'"
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",
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.
Tools,Strumenti
Top,Superiore
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 Manufactured Qty can not be greater than Planned qty to manufacture,Totale Prodotto Quantità non può essere maggiore di quantità pianificata per la produzione
Total Operating Cost,Totale costi di esercizio
Total Points,Totale Punti
Total Raw Material Cost,Raw Material Total Cost
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 Order against any Project,Traccia questo ordine di vendita nei confronti di qualsiasi progetto
Transaction,Transazioni
Transaction Date,Transaction Data
Transaction not allowed against stopped Production Order,Operazione non ammessi contro la produzione fermato Ordine
Transfer,Trasferimento
Transfer Material,Material Transfer
Transfer Raw Materials,Trasferimento materie prime
Transferred Qty,Quantità trasferito
Transporter Info,Info Transporter
Transporter Name,Trasportatore Nome
Transporter lorry number,Numero di camion Transporter
Trash Reason,Trash Motivo
Tree Type,albero Type
Tree of item classification,Albero di classificazione voce
Trial Balance,Bilancio di verifica
Tuesday,Martedì
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 Name,UOM Nome
UOM Replace Utility,UOM Replace Utility
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
Unscheduled,Non in programma
Unstop,stappare
Unstop Material Request,Stappare Materiale Richiesta
Unstop Purchase Order,Stappare Ordine di Acquisto
Unsubscribed,Sottoscritte
Update,Aggiornare
Update Clearance Date,Aggiornare Liquidazione Data
Update Cost,aggiornamento dei costi
Update Finished Goods,Merci aggiornamento finiti
Update Landed Cost,Aggiornamento Landed Cost
Update Numbering Series,Aggiornamento numerazione Series
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 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 clearance date of Journal Entries marked as 'Bank Vouchers',"Data di aggiornamento della respinta corta di voci di diario contrassegnato come "" Buoni Banca '"
Updated,Aggiornato
Updated Birthday Reminders,Aggiornato Compleanno Promemoria
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 attendance from a .csv file,Carica presenze da un file. Csv
Upload stock balance via csv.,Carica equilibrio magazzino tramite csv.
Upload your letter head and logo - you can edit them later.,Carica la tua testa lettera e logo - è possibile modificare in un secondo momento .
Uploaded File Attachments,Allegati file caricati
Upper Income,Reddito superiore
Urgent,Urgente
Use Multi-Level BOM,Utilizzare BOM Multi-Level
Use SSL,Usa SSL
Use TLS,Usa TLS
User,Utente
User ID,ID utente
User Name,Nome Utente
User Properties,Proprietà 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 must always select,L&#39;utente deve sempre selezionare
User settings for Point-of-sale (POS),Le impostazioni utente per Point -of -sale ( POS )
Username,Nome utente
Users and Permissions,Utenti e autorizzazioni
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 create / modify accounting entry before frozen date,Gli utenti con questo ruolo possono creare / modificare registrazione contabile prima della data congelati
Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Gli utenti con questo ruolo sono autorizzati a impostare conti congelati e creare / modificare le voci contabili nei confronti di conti congelati
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 or Qty,Valore o Quantità
Vehicle Dispatch Date,Veicolo Spedizione Data
Vehicle No,Veicolo No
Verified By,Verificato da
View,View
View Ledger,vista Ledger
View Now,Guarda ora
Visit,Visita
Visit report for maintenance call.,Visita rapporto per chiamata di manutenzione.
Voucher #,Voucher #
Voucher Detail No,Voucher Detail No
Voucher ID,ID Voucher
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
Walk In,Walk In
Warehouse,magazzino
Warehouse ,
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 company.,Warehouse non appartiene alla società.
Warehouse is missing in Purchase Order,Warehouse manca in ordine d'acquisto
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: Leave application contains following block dates,Attenzione: Lascia applicazione contiene seguenti date di blocco
Warning: Material Requested Qty is less than Minimum Order Qty,Attenzione : Materiale Qty richiesto è inferiore minima quantità
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)
Warranty expiry date and maintenance status mismatched,Garanzia data di scadenza e lo stato di manutenzione non corrispondenti
Website,Sito
Website Description,Descrizione del sito
Website Item Group,Sito Gruppo Articolo
Website Item Groups,Sito gruppi di articoli
Website Settings,Impostazioni Sito
Website Warehouse,Magazzino sito web
Wednesday,Mercoledì
Weekly,Settimanale
Weekly Off,Settimanale Off
Weight UOM,Peso UOM
"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Il peso è detto, \ nPer favore citare "" Peso UOM "" troppo"
Weightage,Weightage
Weightage (%),Weightage (%)
Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,"Benvenuti a ERPNext . Nel corso dei prossimi minuti vi aiuteremo a configurare il tuo account ERPNext . Prova a inserire quante più informazioni si hanno , anche se ci vuole un po 'di più . Ti farà risparmiare un sacco di tempo dopo . Buona fortuna !"
What does it do?,Che cosa fa ?
"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 submitted, the system creates difference entries ",
Where items are stored.,Dove gli elementi vengono memorizzati.
Where manufacturing operations are carried out.,Qualora le operazioni di produzione sono effettuate.
Widowed,Vedovo
Will be calculated automatically when you enter the details,Vengono calcolati automaticamente quando si entra nei dettagli
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.
With Operations,Con operazioni
With period closing entry,Con l'ingresso di chiusura del periodo
Work Details,Dettagli lavoro
Work Done,Attività svolta
Work In Progress,Work In Progress
Work-in-Progress Warehouse,Work-in-Progress Warehouse
Working,Lavoro
Workstation,Stazione di lavoro
Workstation Name,Nome workstation
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
Wrong Template: Unable to find head row.,Template Sbagliato: Impossibile trovare la linea di testa.
Year,Anno
Year Closed,Anno Chiuso
Year End Date,Data di Fine Anno
Year Name,Anno Nome
Year Start Date,Anno Data di inizio
Year Start Date and Year End Date are already set in Fiscal Year: ,
Year Start Date and Year End Date are not within Fiscal Year.,Anno data di inizio e di fine anno non sono raggiungibili anno fiscale .
Year Start Date should not be greater than Year End Date,Anno Data di inizio non deve essere maggiore di Data Fine Anno
Year of Passing,Anni dal superamento
Yearly,Annuale
Yes,Sì
You are not allowed to reply to this ticket.,Non sei autorizzato a rispondere a questo biglietto .
You are not authorized to do/modify back dated entries before ,Non sei autorizzato a fare / modificare indietro voci datate prima
You are not authorized to set Frozen value,Non sei autorizzato a impostare il valore Congelato
You are the Expense Approver for this record. Please Update the 'Status' and Save,Tu sei il Responsabile approvazione di spesa per questo record . Si prega di aggiornare il 'Stato' e Save
You are the Leave Approver for this record. Please Update the 'Status' and Save,Tu sei il Lascia Responsabile approvazione per questo record . Si prega di aggiornare il 'Stato' e Save
You can Enter Row only if your Charge Type is 'On Previous Row Amount' or ' Previous Row Total',È possibile immettere Row solo se il tipo di carica è 'On Fila Indietro Importo ' o ' Indietro totale riga '
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 change rate if BOM mentioned agianst any item,Non è possibile modificare tariffa se BOM menzionato agianst tutto l'articolo
You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,Non è possibile inserire sia Consegna Nota n e Fattura n Inserisci nessuno.
"You can start by selecting backup frequency and \
					granting access for sync",
You can submit this Stock Reconciliation.,Puoi inviare questo Archivio Riconciliazione.
You can update either Quantity or Valuation Rate or both.,È possibile aggiornare sia Quantitativo o Tasso di valutazione o di entrambi .
You cannot Enter Row no. greater than or equal to current row no. for this Charge type,Non è possibile immettere Row no. maggiore o uguale a riga corrente n . per questo tipo di carica
You cannot deduct when category is for 'Valuation' or 'Valuation and Total',Non è possibile dedurre quando categoria è di ' valutazione ' o ' Valutazione e Total '
You cannot directly enter Amount and if your Charge Type is Actual enter your amount in Rate,Non è possibile inserire direttamente Importo e se il vostro tipo di carica è effettiva Inserisci il tuo importo in Tasso
You cannot give more than ,
You cannot select Charge Type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,Non è possibile selezionare Charge Tipo come ' In Fila Indietro Importo ' o 'On Precedente totale riga ' per la prima fila
You cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'Total' option for previous row amount or previous row total,Non è possibile selezionare il tipo di carica come 'On Fila Indietro Importo ' o 'On Precedente totale riga ' per la valutazione . È possibile selezionare l'opzione ' totale ' per la quantità di riga precedente o precedente totale di riga
You have entered duplicate items. Please rectify and try again.,Hai inserito gli elementi duplicati . Si prega di correggere e riprovare .
You may need to update: ,Potrebbe essere necessario aggiornare:
You must ,
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 Customers,I vostri clienti
Your ERPNext subscription will,La tua sottoscrizione ERPNext sarà
Your Products or Services,I vostri prodotti o servizi
Your Suppliers,I vostri fornitori
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 will get a reminder on this date to contact the customer,Il rivenditore avrà un ricordo in questa data per contattare il cliente
Your setup is complete. Refreshing...,La configurazione è completa. Rinfrescante ...
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!
already available in Price List,già disponibili nel Listino Prezzi
already returned though some other documents,già tornato anche se alcuni altri documenti
also be included in Item's rate,anche essere incluso nel tasso di articolo
and,e
"and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM","e "" è articolo di vendita "" è "" Sì"" e non c'è nessun altro BOM vendite"
"and create a new Account Ledger (by clicking on Add Child) of type ""Bank or Cash""","e creare un nuovo account Ledger ( cliccando su Add Child ) di tipo "" bancario o in contanti """
"and create a new Account Ledger (by clicking on Add Child) of type ""Tax"" and do mention the Tax rate.","e creare un nuovo account Ledger ( cliccando su Add Child ) di tipo "" fiscale "" e non parlare del tasso di imposta ."
and fiscal year: ,
are not allowed for,non sono ammessi per
are not allowed for ,
are not allowed.,non sono ammessi .
assigned by,assegnato da
but entries can be made against Ledger,ma le voci possono essere fatte contro Ledger
but is pending to be manufactured.,ma è in attesa di essere lavorati.
cancel,annullare
cannot be greater than 100,non può essere maggiore di 100
dd-mm-yyyy,gg-mm-aaaa
dd/mm/yyyy,gg / mm / aaaa
deactivate,disattivare
discount on Item Code,sconto sul Codice Articolo
does not belong to BOM: ,non appartiene a BOM:
does not have role 'Leave Approver',non ha il ruolo &#39;Lascia Approvatore&#39;
does not match,non corrisponde
"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"
eg. Cheque Number,ad es. Numero Assegno
example: Next Day Shipping,esempio: Next Day spedizione
has already been submitted.,è già stato presentato .
has been entered atleast twice,è stato inserito atleast due volte
has been made after posting date,è stato fatto dopo la data di registrazione
has expired,è scaduto
have a common territory,avere un territorio comune
in the same UOM.,nella stessa UM .
is a cancelled Item,è un articolo cancellato
is not a Stock Item,Non è un Disponibile Articolo
lft,LFT
mm-dd-yyyy,gg-mm-aaaa
mm/dd/yyyy,gg / mm / aaaa
must be a Liability account,deve essere un account di Responsabilità
must be one of,deve essere una delle
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 submitted,non presentate
not within Fiscal Year,non entro l&#39;anno fiscale
of,di
old_parent,old_parent
reached its end of life on,raggiunto la fine della vita sulla
rgt,rgt
should be 100%,dovrebbe essere 100%
the form before proceeding,il modulo prima di procedere
they are created automatically from the Customer and Supplier master,vengono creati automaticamente dal Cliente e Fornitore padrone
"to be included in Item's rate, it is required that: ","da includere nel tasso di voce, è necessario che:"
to set the given stock and valuation on this date.,per impostare l' azione e valutazione data in questa data .
usually as per physical inventory.,di solito come da inventario fisico .
website page link,sito web link alla pagina
which is greater than sales order qty ,che è maggiore di vendite ordine qty
yyyy-mm-dd,aaaa-mm-gg
