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