This is a root sales person and cannot be edited.,Se trata de una persona de las ventas raíz y no se puede editar .
"Set Default Values like Company, Currency, Current Fiscal Year, etc.","Establecer Valores Predeterminados , como Empresa , Moneda, Año Fiscal Actual, etc"
Employee Settings,Configuración del Empleado,
Serial No {0} does not belong to Item {1},Número de orden {0} no pertenece al elemento {1}
User must always select,Usuario elegirá siempre,
Cost of Goods Sold,Costo de las Ventas,
{0} {1} not in any active Fiscal Year.,{0} {1} no en algún año fiscal activo.
Packing List,Lista de Envío,
From Package No.,Del Paquete N o,
Quotation Trends,Tendencias de Cotización,
Purchase Order Item,Articulos de la Orden de Compra,
Avg. Buying Rate,Promedio de Compra,
Serial No {0} created,Número de orden {0} creado,
If subcontracted to a vendor,Si es sub-contratado a un vendedor,
"in Minutes,
Updated via 'Time Log'",En minutos actualizado a través de 'Bitácora de tiempo'
Maintenance Time,Tiempo de Mantenimiento,
Opening Time,Tiempo de Apertura,
Bill of Materials,Lista de materiales (LdM)
Role Allowed to Set Frozen Accounts & Edit Frozen Entries,Función Permitida para Establecer Cuentas Congeladas y Editar Entradas Congeladas,
Billing Rate,Tasa de facturación,
The new BOM after replacement,La nueva Solicitud de Materiales después de la sustitución,
Row {0}: Debit entry can not be linked with a {1},Fila {0}: Débito no puede vincularse con {1}
Print Heading,Título de impresión,
Electricity Cost,Coste de electricidad,
Commission on Sales,Comisión de Ventas,
Costing,Costeo,
Retail & Wholesale,Venta al por menor y al por mayor,
Default Holiday List,Listado de vacaciones / feriados predeterminados,
Journal Entry,Asientos Contables,
Completed Qty can not be greater than 'Qty to Manufacture',La cantidad completada no puede ser mayor que la cantidad a producir,
Stop users from making Leave Applications on following days.,Deje que los usuarios realicen Solicitudes de Vacaciones en los siguientes días .
Qty as per Stock UOM,Cantidad de acuerdo a la Unidad de Medida del Inventario,
Manufacture,Manufactura,
Write Off Outstanding Amount,Cantidad de desajuste,
Manage Customer Group Tree.,Administrar el listado de las categorías de clientes,
Retail,venta al por menor,
Time at which materials were received,Momento en que se recibieron los materiales,
Expected End Date,Fecha de finalización prevista,
HR Settings,Configuración de Recursos Humanos,
Delete all the Transactions for this Company,Eliminar todas las transacciones para esta empresa,
Abbreviation is mandatory,La Abreviación es mandatoria,
End of Life,Final de la Vida,
Reqd By Date,Solicitado Por Fecha,
Salary breakup based on Earning and Deduction.,Calculo de Salario basado en los Ingresos y la Deducción.
You are not authorized to set Frozen value,Usted no está autorizado para fijar el valor congelado,
Leave Approver,Supervisor de Vacaciones,
Package Weight Details,Peso Detallado del Paquete,
Generate Schedule,Generar Horario,
Employee External Work History,Historial de Trabajo Externo del Empleado,
"Here you can maintain family details like name and occupation of parent, spouse and children","Aquí usted puede mantener los detalles de la familia como el nombre y ocupación de los padres, cónyuge e hijos"
depends_on,depende de,
Secured Loans,Préstamos Garantizados,
This is a root territory and cannot be edited.,Este es un territorio raíz y no se puede editar .
Make Supplier Quotation,Crear cotización de proveedor,
Repeat Customer Revenue,Repita los ingresos de los clientes,
New Cost Center Name,Nombre de Nuevo Centro de Coste,
"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","Si se selecciona, el importe del impuesto se considerará como ya incluido en el Monto  a Imprimir"
Purchase Taxes and Charges,Impuestos de Compra y Cargos,
This is an example website auto-generated from ERPNext,Este es un sitio web ejemplo generado por automáticamente por ERPNext,
WIP Warehouse,WIP Almacén,
Actual Start Date,Fecha de inicio actual,
Make Journal Entry,Haga Comprobante de Diario,
Contract End Date must be greater than Date of Joining,La Fecha de Finalización de Contrato debe ser mayor que la Fecha de la Firma,
Delivery Note Item,Articulo de la Nota de Entrega,
Customer required for 'Customerwise Discount',Cliente requiere para ' Customerwise descuento '
Potential opportunities for selling.,Oportunidades de venta,
Against Sales Order Item,Contra la Orden de Venta de Artículos,
Sample Size,Tamaño de la muestra,
Terms and Conditions1,Términos y Condiciones 1,
Customerwise Discount,Customerwise Descuento,
Row {0}:Start Date must be before End Date,Fila {0}: Fecha de inicio debe ser anterior Fecha de finalización,
"Tax detail table fetched from item master as a string and stored in this field.
Used for Taxes and Charges","Tabla de detalle de Impuesto descargada de maestro de artículos como una cadena y almacenada en este campo.
 Se utiliza para las tasas y cargos"
Operating Cost,Costo de Funcionamiento,
Total Target,Totales del Objetivo,
"Can not filter based on Voucher No, if grouped by Voucher","No se puede filtrar en función al 'No. de comprobante', si esta agrupado por 'nombre'"
Help HTML,Ayuda HTML,
Actual Operation Time,Tiempo de operación actual,
To Deliver and Bill,Para Entregar y Bill,
Warehouse required for stock Item {0},Almacén requerido para la acción del artículo {0}
Territory Targets,Territorios Objetivos,
Warranty / AMC Status,Garantía / AMC Estado,
Employee Name,Nombre del Empleado,
Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule',"Programa de mantenimiento no se genera para todos los artículos. Por favor, haga clic en ¨ Generar Programación¨"
New Sales Orders,Nueva Órden de Venta,
Software,Software,
Earnest Money,Dinero Ganado,
Term Details,Detalles de los Terminos,
Target Warehouse,Inventario Objetivo,
Net Weight UOM,Unidad de Medida Peso Neto,
Row #{0}: Timings conflicts with row {1},Fila # {0}: conflictos con fila {1}
Operation Time,Tiempo de funcionamiento,
Leave Balance Before Application,Vacaciones disponibles antes de la solicitud,
Set prefix for numbering series on your transactions,Establezca los prefijos de sus transacciones,
Under AMC,Bajo AMC,
Warranty Period (in days),Período de garantía ( en días)
Next email will be sent on:,Siguiente correo electrónico será enviado el:
Case No(s) already in use. Try from Case No {0},Nº de caso ya en uso. Intente Nº de caso {0}
Target On,Objetivo On,
"To not apply Pricing Rule in a particular transaction, all applicable Pricing Rules should be disabled.","Para no aplicar la Regla de Precios en una transacción en particular, todas las Reglas de Precios aplicables deben ser desactivadas."
"Sorry, Serial Nos cannot be merged","Lo sentimos , Nos de serie no se puede fusionar"
Manufacturing Settings,Ajustes de Manufactura,
Appraisal Template Title,Titulo de la Plantilla deEvaluación,
Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,"Fila {0}: Por favor, consulte ""¿Es Avance 'contra la Cuenta {1} si se trata de una entrada con antelación."
Capital Equipments,Maquinaria y Equipos,
{0} {1} is not submitted,{0} {1} no esta presentado,
Earning & Deduction,Ganancia y Descuento,
Leave Encashed?,Vacaciones Descansadas?
Send regular summary reports via Email.,Enviar informes periódicos resumidos por correo electrónico.
'Based On' and 'Group By' can not be same,"""Basado en"" y ""Agrupar por"" no pueden ser el mismo"
Net pay cannot be negative,Salario neto no puede ser negativo,
Phone No,Teléfono No,
Default Cost Center,Centro de coste por defecto,
Employee Number,Número del Empleado,
Customer / Lead Address,Cliente / Dirección de Oportunidad,
In Words will be visible once you save the Quotation.,En palabras serán visibles una vez que guarde la cotización.
Installation Note {0} has already been submitted,La nota de instalación {0} ya se ha presentado,
Manage Territory Tree.,Vista en árbol para la administración de los territorios,
Serial number {0} entered more than once,Número de serie {0} entraron más de una vez,
Receiver List is empty. Please create Receiver List,"Lista de receptores está vacía. Por favor, cree Lista de receptores"
Target Detail,Objetivo Detalle,
Purchase Taxes and Charges Template,Plantillas de Cargos e Impuestos,
Current Liabilities,Pasivo Corriente,
Titles for print templates e.g. Proforma Invoice.,"Títulos para plantillas de impresión, por ejemplo, Factura Proforma."
Freight and Forwarding Charges,Cargos por transporte de mercancías y transito,
Successfully deleted all transactions related to this company!,Eliminado correctamente todas las transacciones relacionadas con esta empresa!
Expense or Difference account is mandatory for Item {0} as it impacts overall stock value,"Cuenta de Gastos o Diferencia es obligatorio para el elemento {0} , ya que impacta el valor del stock"
Credit,Crédito,
90-Above,90-Mayor,
Root cannot have a parent cost center,Raíz no puede tener un centro de costes de los padres,
Accounting Entry for Stock,Asiento contable de inventario,
Total Purchase Cost (via Purchase Invoice),Coste total de compra (mediante compra de la factura)
Row {0}: Conversion Factor is mandatory,Fila {0}: Factor de conversión es obligatoria,
Purchase Receipt,Recibos de Compra,
Disable,Inhabilitar,
Table for Item that will be shown in Web Site,Tabla de Artículo que se muestra en el Sitio Web,
Leave Type,Tipo de Vacaciones,
Applicable For,Aplicable para,
Start date should be less than end date for Item {0},La fecha de inicio debe ser menor que la fecha de finalización para el punto {0}
Rate (Company Currency),Precio (Moneda Local)
Convert to Group,Convertir al Grupo,
{0} payment entries can not be filtered by {1},{0} registros de pago no se pueden filtrar por {1}
Serial No {0} not in stock,Número de orden {0} no está en stock,
Ref Date,Fecha Ref,
Bank Statement balance as per General Ledger,Balanza de Estado de Cuenta Bancario según Libro Mayor,
Setup Series,Serie de configuración,
Actual Start Time,Hora de inicio actual,
Barcode {0} already used in Item {1},El código de barras {0} ya se utiliza en el elemento {1}
Health Care,Cuidado de la Salud,
Manufacturer Part Number,Número de Pieza del Fabricante,
Re-Order Level,Reordenar Nivel,
Sales Team Details,Detalles del equipo de ventas,
Sales Order {0} is not submitted,Órden de Venta {0} no esta presentada,
Row #{0}: Rate must be same as {1}: {2} ({3} / {4}) ,Fila # {0}: Tasa debe ser el mismo que {1}: {2} ({3} / {4})
Confirmed orders from Customers.,Pedidos en firme de los clientes.
Service Address,Dirección del Servicio,
Application of Funds (Assets),Aplicación de Fondos (Activos )
Discount on Price List Rate (%),Descuento sobre la tarifa del listado de precios (%)
The name of your company for which you are setting up this system.,El nombre de su empresa para la que va a configurar el sistema.
Frozen,Congelado,
HR Manager,Gerente de Recursos Humanos,
Warning: System will not check overbilling since amount for Item {0} in {1} is zero,Advertencia : El sistema no comprobará sobrefacturación desde monto para el punto {0} en {1} es cero,
Either target qty or target amount is mandatory.,Cualquiera Cantidad de destino o importe objetivo es obligatoria.
Row # {0}: Returned Item {1} does not exists in {2} {3},Fila # {0}: El artículo vuelto {1} no existe en {2} {3}
Not Started,Sin comenzar,
Default Currency,Moneda Predeterminada,
This is a root account and cannot be edited.,Esta es una cuenta raíz y no se puede editar .
Requested Items To Be Transferred,Artículos solicitados para ser transferido,
Purchase Receipt {0} is not submitted,Recibo de Compra {0} no se presenta,
Account: {0} with currency: {1} can not be selected,Cuenta: {0} con moneda: {1} no puede ser seleccionada,
Sales,Venta,
Additional Discount Amount (Company Currency),Monto adicional de descuento (Moneda de la compañía)
Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Fila {0}: El pago de Compra/Venta siempre debe estar marcado como anticipo,
Leave Approvers,Supervisores de Vacaciones,
Please specify a valid Row ID for row {0} in table {1},"Por favor, especifique un ID de fila válida para la fila {0} en la tabla {1}"
Parent Customer Group,Categoría de cliente principal,
Total Outstanding Amount,Total Monto Pendiente,
Select Monthly Distribution to unevenly distribute targets across months.,Seleccione Distribución Mensual de distribuir de manera desigual a través de objetivos meses.
You need to enable Shopping Cart,Necesita habilitar Carito de Compras,
New Leaves Allocated (In Days),Nuevas Vacaciones Asignados (en días)
Rented,Alquilado,
Shipping Address Name,Dirección de envío Nombre,
Moving Average,Promedio Movil,
Qty to Deliver,Cantidad para Ofrecer,
Row #{0}: Please specify Serial No for Item {1},"Fila # {0}: Por favor, especifique No de Serie de artículos {1}"
Please make sure you really want to delete all the transactions for this company. Your master data will remain as it is. This action cannot be undone.,"Por favor, asegúrese que realmente desea borrar todas las transacciones de esta compañía. Sus datos maestros permanecerán intactos. Esta acción no se puede deshacer."
Shopping Cart Settings,Compras Ajustes,
Raw Material Cost,Costo de la Materia Prima,
A Customer Group exists with same name please change the Customer name or rename the Customer Group,"Existe una categoría de cliente con el mismo nombre, por favor cambie el nombre del cliente o cambie el nombre de la categoría"
Quotation {0} is cancelled,Cotización {0} se cancela,
Quality Inspection required for Item {0},Inspección de la calidad requerida para el articulo {0}
What does it do?,¿Qué hace?
Actual Time (in Hours),Tiempo actual (En horas)
Make Sales Order,Hacer Orden de Venta,
Doc Type,Tipo Doc.
List a few of your customers. They could be organizations or individuals.,Enumere algunos de sus clientes. Pueden ser organizaciones o individuos.
Ref Code,Código Referencia,
Default Selling Cost Center,Centros de coste por defecto,
Leave Block List Allowed,Lista de Bloqueo de Vacaciones Permitida,
Report Date,Fecha del Informe,
Purchase Invoice {0} is already submitted,Factura de Compra {0} ya existe,
Currency and Price List,Divisa y Lista de precios,
Current Assets,Activo Corriente,
Re-Order Qty,Reordenar Cantidad,
Days for which Holidays are blocked for this department.,Días para los que Días Feriados se bloquean para este departamento .
Customer Details,Datos del Cliente,
**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,**Año Fiscal** representa un 'Ejercicio Financiero'. Los asientos contables y otras transacciones importantes se registran contra **Año Fiscal**
Actual Qty is mandatory,Cantidad actual es obligatoria,
Stock Reconciliation,Reconciliación de Inventario,
Score must be less than or equal to 5,Puntuación debe ser menor o igual a 5,
On Previous Row Total,En la Anterior Fila Total,
Serial No / Batch,N º de serie / lote,
Supplier Quotation Item,Articulo de la Cotización del Proveedor,
Brokerage,Brokerage,
Opportunity From,Oportunidad De,
Supplier Address,Dirección del proveedor,
Expected Delivery Date,Fecha Esperada de Envio,
Parent Item,Artículo Principal,
Software Developer,Desarrollador de Software,
Website Item Groups,Grupos de Artículos del Sitio Web,
Marketing Expenses,Gastos de Comercialización,
"Cannot declare as lost, because Quotation has been made.","No se puede declarar como perdido , porque la cotización ha sido hecha."
New Leaves Allocated,Nuevas Vacaciones Asignadas,
user@example.com,user@example.com,
Source Warehouse,fuente de depósito,
No contacts added yet.,No se han añadido contactos todavía,
Root Type is mandatory,Tipo Root es obligatorio,
Scheduled,Programado,
Depends on Leave Without Pay,Depende de ausencia sin pago,
Total Paid Amt,Total Pagado Amt,
'Days Since Last Order' must be greater than or equal to zero,'Días desde el último pedido' debe ser mayor o igual a cero,
For Warehouse,Por almacén,
Purchase Order Items To Be Received,Productos de la Orden de Compra a ser Recibidos,
Delivery Note Message,Mensaje de la Nota de Entrega,
Raw Materials Supplied Cost,Coste materias primas suministradas,
Row No {0}: Amount cannot be greater than Pending Amount against Expense Claim {1}. Pending Amount is {2},linea No. {0}: El importe no puede ser mayor que el reembolso pendiente {1}. El importe pendiente es {2}
Synced With Hub,Sincronizado con Hub,
Cost Center with existing transactions can not be converted to ledger,Centro de Costos de las transacciones existentes no se puede convertir en el libro mayor,
Please enter Item Code to get batch no,"Por favor, ingrese el código del producto para obtener el No. de lote"
Series is mandatory,Serie es obligatorio,
Item Shortage Report,Reportar carencia de producto,
Rate at which Price list currency is converted to customer's base currency,Grado en el que la lista de precios en moneda se convierte en la moneda base del cliente,
Sales Invoice No,Factura de Venta No,
Don't send Employee Birthday Reminders,En enviar recordatorio de cumpleaños del empleado,
Ordered Items To Be Delivered,Artículos pedidos para ser entregados,
Point-of-Sale Profile,Perfiles del Punto de Venta POS,
Price List must be applicable for Buying or Selling,la lista de precios debe ser aplicable para comprar o vender,
Serial No,Números de Serie,
Bank Reconciliation Statement,Extractos Bancarios,
{0} is mandatory for Item {1},{0} es obligatorio para el producto {1}
Copy From Item Group,Copiar de Grupo de Elementos,
{0} ({1}) cannot be greater than planned quanitity ({2}) in Production Order {3},{0} ({1}) no puede ser mayor que cantidad planificada ({2}) en la Orden de Producción {3}
Date of Joining must be greater than Date of Birth,Fecha de acceso debe ser mayor que Fecha de Nacimiento,
Settings for Buying Module,Ajustes para la compra de módulo,
Sales Person Targets,Metas de Vendedor,
Standard contract terms for Sales or Purchase.,Condiciones contractuales estándar para ventas y compras.
Actual Qty (at source/target),Cantidad Actual (en origen/destino)
Privilege Leave,Permiso con Privilegio,
Stock User,Foto del usuario,
On Previous Row Amount,En la Fila Anterior de Cantidad,
Weightage (%),Coeficiente de ponderación (% )
Creation Time,Momento de la creación,
Default Source Warehouse,Origen predeterminado Almacén,
Sales Taxes and Charges Template,Plantilla de Cargos e Impuestos sobre Ventas,
Educational Qualification,Capacitación Académica,
From Time,Desde fecha,
Health Concerns,Preocupaciones de salud,
Purchase Receipt Item,Recibo de Compra del Artículo,
Name or Email is mandatory,Nombre o Email es obligatorio,
Transactions can only be deleted by the creator of the Company,Las transacciones sólo pueden ser borrados por el creador de la Compañía,
Parent Cost Center,Centro de Costo Principal,
Loans and Advances (Assets),Préstamos y anticipos (Activos)
Shipments,Los envíos,
Please enter 'Is Subcontracted' as Yes or No,"Por favor, introduzca si 'Es Subcontratado' o no"
Abbreviation already used for another company,La Abreviación ya está siendo utilizada para otra compañía,
Purchase Order Item Supplied,Orden de Compra del Artículo Suministrado,
Sales Order Required,Orden de Ventas Requerida,
Required Date,Fecha Requerida,
Allow Overtime,Permitir horas extras,
Reference No is mandatory if you entered Reference Date,Referencia No es obligatorio si introdujo Fecha de Referencia,
Pricing Rule,Reglas de Precios,
View Task,Vista de tareas,
`Freeze Stocks Older Than` should be smaller than %d days.,`Congelar Inventarios Anteriores a` debe ser menor que %d días .
Purchase Order number required for Item {0},Número de la Orden de Compra se requiere para el elemento {0}
Create rules to restrict transactions based on values.,Crear reglas para restringir las transacciones basadas en valores .
Raw Material Item Code,Materia Prima Código del Artículo,
Supplier Quotation,Cotizaciónes a Proveedores,
Activity Cost exists for Employee {0} against Activity Type - {1},Existe un costo de actividad para el empleado {0} contra el tipo de actividad - {1}
Set targets Item Group-wise for this Sales Person.,Establecer objetivos artículo grupo que tienen para este vendedor.
Total Value Difference (Out - In),Diferencia  (Salidas - Entradas)
BOM and Manufacturing Quantity are required,Se requiere la lista de materiales (LdM) y cantidad a fabricar.
Product Bundle,Conjunto/Paquete de productos,
Requested For,Solicitados para,
{0} against Sales Invoice {1},{0} contra Factura de Ventas {1}
Select Items,Seleccione Artículos,
Row {0}: {1} {2} does not match with {3},Fila {0}: {1} {2} no coincide con {3}
Quality Management,Gestión de la Calidad,
Details of the operations carried out.,Los detalles de las operaciones realizadas.
Quality Inspection Reading,Lectura de Inspección de Calidad,
Net Amount (Company Currency),Importe neto (moneda de la compañía)
Track this Sales Order against any Project,Seguir este de órdenes de venta en contra de cualquier proyecto,
"Selling must be checked, if Applicable For is selected as {0}","Ventas debe ser seleccionado, si se selecciona Aplicable Para como {0}"
Maintain Same Rate Throughout Sales Cycle,Mantener misma tasa durante todo el ciclo de ventas,
Salary,Salario,
Stock Liabilities,Inventario de Pasivos,
Shipping Rule Label,Regla Etiqueta de envío,
This Item is a Template and cannot be used in transactions. Item attributes will be copied over into the variants unless 'No Copy' is set,Este artículo es una plantilla y no se puede utilizar en las transacciones. Atributos artículo se copiarán en las variantes menos que se establece 'No Copy'
Target  Amount,Monto Objtetivo,
S.O. No.,S.O. No.
Sanctioned Amount,importe sancionado,
"If the account is frozen, entries are allowed to restricted users.","Si la cuenta está congelada , las entradas se les permite a los usuarios restringidos."
Sales Taxes and Charges,Los impuestos y cargos de venta,
Warehouse {0} can not be deleted as quantity exists for Item {1},Almacén {0} no se puede eliminar mientras exista cantidad de artículo {1}
Bank Account No.,Número de Cuenta Bancaria,
Shipping Account,cuenta Envíos,
Parent Item Group,Grupo Principal de Artículos,
Warranty Period (Days),Período de garantía ( Días)
Campaign Naming By,Nombramiento de la Campaña Por,
Terms and Conditions Content,Términos y Condiciones Contenido,
Serial No {0} does not belong to Warehouse {1},Número de orden {0} no pertenece al Almacén {1}
Shopping Cart Shipping Rule,Compras Regla de envío,
Make Payment Entry,Registrar pago,
Scheduled Date,Fecha prevista,
% Ordered,% Pedido,
'Expected Start Date' can not be greater than 'Expected End Date',La 'Fecha de inicio estimada' no puede ser mayor que la 'Fecha de finalización estimada'
UOM Conversion Detail,Detalle de Conversión de Unidad de Medida,
"To filter based on Party, select Party Type first","Para filtrar en base a la fiesta, seleccione Partido Escriba primero"
Contact Name,Nombre del Contacto,
Quotation Lost Reason,Cotización Pérdida Razón,
Monthly Distribution Percentages,Los porcentajes de distribución mensuales,
Plan for maintenance visits.,Plan para las visitas de mantenimiento.
SO Qty,SO Cantidad,
Quotation Series,Serie Cotización,
New Customer Revenue,Ingresos de nuevo cliente,
"Special Characters except ""-"", ""#"", ""."" and ""/"" not allowed in naming series","Caracteres especiales excepto ""-"" ""."", ""#"", y ""/"" no permitido en el nombramiento de serie"
Schedule,Horario,
Invoiced Amount (Exculsive Tax),Cantidad facturada ( Impuesto exclusive )
Material Requests {0} created,Solicitud de Material {0} creada,
Has Variants,Tiene Variantes,
Taxes and Charges Added (Company Currency),Impuestos y Cargos Añadidos (Moneda Local)
Buyer of Goods and Services.,Compradores de Productos y Servicios.
Stock Balance,Balance de Inventarios,
Cost Center For Item with Item Code ',Centro de Costos para artículo con Código del artículo '
Write Off Cost Center,Centro de costos de desajuste,
Please contact to the user who have Sales Master Manager {0} role,"Por favor, póngase en contacto con el usuario con función de Gerente de Ventas {0}"
Allow the following users to approve Leave Applications for block days.,Permitir a los usuarios siguientes aprobar Solicitudes de ausencia en bloques de días.
Net Rate,Tasa neta,
Reference Row #,Referencia Fila #
Employee Internal Work History,Historial de Trabajo Interno del Empleado,
Salary Mode,Modo de Salario,
Please enter parent cost center,"Por favor, ingrese el centro de costos maestro"
Against Doctype,Contra Doctype,
{0} {1}: Cost Center is mandatory for Item {2},{0} {1}: 'Centro de Costos' es obligatorio para el producto {2}
The net weight of this package. (calculated automatically as sum of net weight of items),El peso neto de este paquete . ( calculados automáticamente como la suma del peso neto del material)
Projected Qty,Cant. Proyectada,
Moving Average Rate,Porcentaje de Promedio Movil,
Account {0}: Parent account {1} does not exist,Cuenta {0}: Cuenta Padre {1} no existe,
Net Total (Company Currency),Total neto (Moneda Local)
Delivery Note {0} must not be submitted,Nota de Entrega {0} no debe estar presentada,
Lead Details,Iniciativas,
Serial #,Serial #
Vehicle No,Vehículo No,
Lower Income,Ingreso Bajo,
Duplicate Serial No entered for Item {0},Duplicar Serie No existe para la partida {0}
Delivered Amount,Cantidad Entregada,
New Company,Nueva Empresa,
Permanent Address Is,Dirección permanente es,
Max: {0},Max: {0}
{0} {1} has been modified. Please refresh.,{0} {1} ha sido modificado. Por favor actualizar.
Item Tax,Impuesto del artículo,
Item Prices,Precios de los Artículos,
Balance must be,Balance debe ser,
A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Terceros / proveedor / comisionista / afiliado / distribuidor que vende productos de empresas a cambio de una comisión.
Try planning operations for X days in advance.,Trate de operaciones para la planificación de X días de antelación.
Expected End Date can not be less than Expected Start Date,La fecha prevista de finalización no puede ser inferior a la fecha de inicio,
Please mention Round Off Account in Company,"Por favor, indique la cuenta que utilizará para el redondeo--"
Serial No {0} does not belong to Delivery Note {1},Número de orden {0} no pertenece a la nota de entrega {1}
Target Qty,Cantidad Objetivo,
"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Se menciona Peso, \n ¡Por favor indique ""Peso Unidad de Medida"" también"
You can not change rate if BOM mentioned agianst any item,No se puede cambiar la tasa si hay una Solicitud de Materiales contra cualquier artículo,
Accounts,Contabilidad,
per hour,por horas,
Set as Closed,Establecer como Cerrada,
Work In Progress,Trabajos en Curso,
Credit Controller,Credit Controller,
Purchase Receipt Item Supplied,Recibo de Compra del Artículo Adquirido,
All Sales Partner Contact,Todo Punto de Contacto de Venta,
View Leads,Ver ofertas,
Currency is required for Price List {0},Se requiere de divisas para Lista de precios {0}
Date of Birth cannot be greater than today.,La fecha de creación no puede ser mayor a la fecha de hoy.
Reports to,Informes al,
Provisional Profit / Loss (Credit),Beneficio / Pérdida (Crédito) Provisional,
Ref SQ,Ref SQ,
Total (Company Currency),Total (Compañía moneda)
% of materials delivered against this Sales Order,% de materiales entregados contra la orden de venta,
Account Currency,Moneda de la Cuenta,
Party Balance,Saldo de socio,
Name of the Monthly Distribution,Nombre de la Distribución Mensual,
Finished Item {0} must be entered for Manufacture type entry,El producto terminado {0} debe ser introducido para la fabricación,
Status must be one of {0},Estado debe ser uno de {0}
Leave Block List,Lista de Bloqueo de Vacaciones,
Customer's Item Code,Código de artículo del Cliente,
Item Tax Amount,Total de impuestos de los artículos,
Maintenance Visit Purpose,Propósito de la Visita de Mantenimiento,
No of Sent SMS,No. de SMS enviados,
Stock Received But Not Billed,Inventario Recibido pero no facturados,
Stores,Tiendas,
Row {0}: Qty is mandatory,Fila {0}: Cantidad es obligatorio,
Report Type is mandatory,Tipo de informe es obligatorio,
"System User (login) ID. If set, it will become default for all HR forms.","Usuario del Sistema (login )ID. Si se establece , será por defecto para todas las formas de Recursos Humanos."
UOM Conversion factor is required in row {0},"El factor de conversión de la (UdM) Unidad de medida, es requerida en la linea {0}"
Electronics,Electrónica,
Heads (or groups) against which Accounting Entries are made and balances are maintained.,Cuentas (o grupos) contra el que las entradas contables se hacen y los saldos se mantienen.
If Income or Expense,Si es un ingreso o egreso,
Row {0}: An Reorder entry already exists for this warehouse {1},Fila {0}: Una entrada para reordenar ya existe para este almacén {1}
Lead,Iniciativas,
There is not enough leave balance for Leave Type {0},No hay suficiente saldo para Tipo de Vacaciones {0}
Repeat Customers,Repita los Clientes,
Depreciation,Depreciación,
Please create Customer from Lead {0},"Por favor, cree Cliente de la Oportunidad {0}"
Make Sales Invoice,Hacer Factura de Venta,
Supplier Invoice No,Factura del Proveedor No,
Payment Account,Pago a cuenta,
Cash Entry,Entrada de Efectivo,
Select Fiscal Year...,Seleccione el año fiscal ...
"For row {0} in {1}. To include {2} in Item rate, rows {3} must also be included","Para la fila {0} en {1}. e incluir {2} en la tasa del producto, las filas {3} también deben ser incluidas"
Workstation is closed on the following dates as per Holiday List: {0},La estación de trabajo estará cerrada en las siguientes fechas según la lista de vacaciones: {0}
Select company name first.,Seleccionar nombre de la empresa en primer lugar.
With Items,Con artículos,
Serial No {0} does not exist,Número de orden {0} no existe,
Required By,Requerido por,
Purchase Invoice Item,Factura de Compra del artículo,
Quotation {0} not of type {1},Cotización {0} no es de tipo {1}
Material Request {0} is cancelled or stopped,Solicitud de Material {0} cancelada o detenida,
Supplied Items,Artículos suministrados,
Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Los usuarios con esta función pueden establecer cuentas congeladas y crear / modificar los asientos contables contra las cuentas congeladas,
Debit,Débito,
"e.g. Bank, Cash, Credit Card","por ejemplo Banco, Efectivo , Tarjeta de crédito"
Material Transferred for Manufacturing,Material transferido para fabricación,
Item Reorder,Reordenar productos,
Credit To account must be a Payable account,Crédito a la cuenta debe ser una cuenta por pagar,
Lead Id,Iniciativa ID,
Quotations received from Suppliers.,Cotizaciones recibidas de los proveedores.
Sales Partner Target,Socio de Ventas Objetivo,
Make Maintenance Visit,Hacer Visita de Mantenimiento,
Stock cannot be updated against Delivery Note {0},Inventario no puede actualizarse contra Nota de Envio {0}
Rent Cost,Renta Costo,
Issues,Problemas,
Current BOM,Lista de materiales actual,
Row # {0}:,Fila # {0}:
% Amount Billed,% Monto Facturado,
Manage cost of operations,Administrar el costo de las operaciones,
Company Email,Correo de la compañía,
Single unit of an Item.,Números de serie únicos para cada producto,
Delivery Notes {0} must be cancelled before cancelling this Sales Order,Nota de Entrega {0} debe ser cancelado antes de cancelar esta Orden Ventas,
Tax Rate,Tasa de Impuesto,
Utility Expenses,Los gastos de servicios públicos,
Parent Account,Cuenta Primaria,
Messages greater than 160 characters will be split into multiple messages,Los mensajes de más de 160 caracteres se dividirá en varios mensajes,
{0}: {1} not found in Invoice Details table,{0}: {1} no se encuentra en el detalle de la factura,
Leave blank if considered for all designations,Dejar en blanco si es considerada para todas las designaciones,
Sales Register,Registros de Ventas,
Account Head,Cuenta matriz,
Single,solo,
Send automatic emails to Contacts on Submitting transactions.,Enviar correos electrónicos automáticos a Contactos en transacciones SOMETER.
{0} is not a valid Batch Number for Item {1},{0} no es un número de lote válido para el producto {1}
"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","No se puede cambiar la moneda por defecto de la compañía, porque existen transacciones, estas deben ser canceladas para cambiar la moneda por defecto."
Default BOM ({0}) must be active for this item or its template,La lista de materiales por defecto ({0}) debe estar activa para este producto o plantilla,
Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Nota: Este centro de costos es un grupo. No se pueden crear asientos contables en los grupos.
How frequently?,¿Con qué frecuencia ?
Invoice No,Factura No,
Bank A/C No.,Número de cuenta bancaria,
Customer's Purchase Order No,Nº de Pedido de Compra del Cliente,
Supplier Name,Nombre del Proveedor,
Hour Rate,Hora de Cambio,
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Cantidad del punto obtenido después de la fabricación / reempaque de cantidades determinadas de materias primas,
Get Outstanding Invoices,Verifique Facturas Pendientes,
Shipping Address,Dirección de envío,
"Settings for online shopping cart such as shipping rules, price list etc.","Ajustes para la compra online, como las normas de envío, lista de precios, etc."
Series Updated,Series Actualizado,
Contract End Date,Fecha Fin de Contrato,
Attendance From Date,Asistencia De Fecha,
Excise Entry,Entrada Impuestos Especiales,
Appraisal Template Goal,Objetivo Plantilla de Evaluación,
Opportunity,Oportunidades,
Salary Slip,Planilla,
Rate at which this tax is applied,Velocidad a la que se aplica este impuesto,
Supplier Id,Proveedor Id,
Block Holidays on important days.,Bloqueo de vacaciones en días importantes.
Support Analtyics,Analitico de Soporte,
Subcontract,Subcontrato,
From Lead,De la iniciativa,
Party,Socio,
Update Cost,Actualización de Costos,
Last Purchase Rate,Tasa de Cambio de la Última Compra,
Actual Quantity,Cantidad actual,
Stock Manager,Gerente,
Shipping Rule Condition,Regla Condición inicial,
Opening Balance Equity,Apertura de saldos de capital,
Stock Entry Detail,Detalle de la Entrada de Inventario,
'To Case No.' cannot be less than 'From Case No.','Hasta Caso No.' no puede ser inferior a 'Desde el Caso No.'
Health Details,Detalles de la Salud,
Unscheduled,No Programada,
Other Details,Otros Datos,
"Buying must be checked, if Applicable For is selected as {0}","Compra debe comprobarse, si se selecciona Aplicable Para como {0}"
Period Closing Entry,Entradas de cierre de período,
Cost of Purchased Items,El costo de artículos comprados,
Delete Company Transactions,Eliminar Transacciones de la empresa,
Stock UOM,Unidad de Media del Inventario,
Itemwise Recommended Reorder Level,Nivel recomendado de re-ordenamiento de producto,
Leave Type Name,Nombre de Tipo de Vacaciones,
Actual End Time,Hora actual de finalización,
Please mention Round Off Cost Center in Company,"Por favor, indique las centro de costos para el redondeo--"
Under Graduate,Bajo Graduación,
Purchase Receipt No,Recibo de Compra No,
Default Buying Price List,Lista de precios predeterminada,
Lead Time Date,Fecha y Hora de la Iniciativa,
Maintenance start date can not be before delivery date for Serial No {0},Mantenimiento fecha de inicio no puede ser antes de la fecha de entrega para la Serie No {0}
Suggestions,Sugerencias,
Warehouse where you are maintaining stock of rejected items,Almacén en el que está manteniendo un balance de los artículos rechazados,
Default Cost of Goods Sold Account,Cuenta de costos de venta por defecto,
Is Carry Forward,Es llevar adelante,
"Create and manage daily, weekly and monthly email digests.","Creación y gestión de resúmenes de correo electrónico diarias , semanales y mensuales."
Sales Order to Payment,Órdenes de venta al Pago,
Warning: Leave application contains following block dates,Advertencia: Solicitud de Renuncia contiene las siguientes fechas bloquedas,
Total Leaves Allocated,Total Vacaciones Asignadas,
Default settings for selling transactions.,Los ajustes por defecto para las transacciones de venta.
Customize the Notification,Personalice la Notificación,
Make Difference Entry,Hacer Entrada de Diferencia,
Ordered Qty,Cantidad Pedida,
Total(Amt),Total (Amt)
Credit Card Entry,Introducción de tarjetas de crédito,
Applicable To (Designation),Aplicables a (Denominación )
Stock Options,Opciones sobre Acciones,
Receivable,Cuenta por Cobrar,
Opportunity From field is mandatory,El campo 'Oportunidad de' es obligatorio,
-Above,-Mayor,
Office Maintenance Expenses,Gastos de Mantenimiento de Oficinas,
Manufacturing,Producción,
'Entries' cannot be empty,'Entradas' no puede estar vacío,
Leave Control Panel,Salir del Panel de Control,
Percentage Allocation,Porcentaje de asignación de,
Shipping Amount,Importe del envío,
Item Code is mandatory because Item is not automatically numbered,El código del artículo es obligatorio porque el producto no se enumera automáticamente,
Sales Order Item,Articulo de la Solicitud de Venta,
Parent Sales Person,Contacto Principal de Ventas,
Warehouse Contact Info,Información de Contacto del Almacén,
Statutory info and other general information about your Supplier,Información legal y otra información general acerca de su proveedor,
Unit of Measure {0} has been entered more than once in Conversion Factor Table,Unidad de Medida {0} se ha introducido más de una vez en la Tabla de Factores de Conversión,
From Currency and To Currency cannot be same,'Desde Moneda' y 'A Moneda' no puede ser la misma,
Default settings for Shopping Cart,Ajustes por defecto para Compras,
Cost Center with existing transactions can not be converted to group,Centro de Costos de las transacciones existentes no se puede convertir al grupo,
Year Start Date,Fecha de Inicio,
Supplier Naming By,Ordenar proveedores por:
Sales Invoice Message,Mensaje de la Factura,
Notify by Email on creation of automatic Material Request,Notificarme por Email cuando se genere una nueva solicitud de materiales,
"Specify the operations, operating cost and give a unique Operation no to your operations.","Especifique la operación , el costo de operación y dar una operación única que no a sus operaciones."
Shopping Cart,Cesta de la compra,
Supplier,Proveedores,
Accounting Ledger,Libro Mayor Contable,
Stop Birthday Reminders,Detener recordatorios de cumpleaños,
Sales Expenses,Gastos de Ventas,
Warranty / AMC Details,Garantía / AMC Detalles,
No of Visits,No. de visitas,
Leave Approver Name,Nombre de Supervisor de Vacaciones,
Item Description,Descripción del Artículo,
Cost of Issued Items,Costo de Artículos Emitidas,
Stock Expenses,Inventario de Gastos,
Lead Time Days,Tiempo de Entrega en Días,
Tax Assets,Activos por Impuestos,
Schedules,Horarios,
Tax Amount After Discount Amount,Total de Impuestos Después Cantidad de Descuento,
Has Serial No,Tiene No de Serie,
Sales Order required for Item {0},Orden de Venta requerida para el punto {0}
Out of AMC,Fuera de AMC,
Apply / Approve Leaves,Aplicar / Aprobar Vacaciones,
Select Terms and Conditions,Selecciona Términos y Condiciones,
Delivery Note {0} is not submitted,Nota de Entrega {0} no está presentada,
"Row {0}: To set {1} periodicity, difference between from and to date \
						must be greater than or equal to {2}","Fila {0}: Para establecer {1} periodicidad, diferencia entre desde y hasta la fecha \
 debe ser mayor que o igual a {2}"
"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Luego las reglas de precios son filtradas en base a Cliente, Categoría de cliente, Territorio, Proveedor, Tipo de Proveedor, Campaña, Socio de Ventas, etc"
Enter name of campaign if source of enquiry is campaign,Introduzca el nombre de la campaña si el origen de la encuesta es una campaña,
Scrap %,Chatarra %
Upload your letter head and logo. (you can edit them later).,Carge su membrete y su logotipo. (Puede editarlos más tarde).
Is Purchase Item,Es una compra de productos,
Delivery Document No,Entrega del documento No,
Notification Control,Control de Notificación,
Administrative Officer,Oficial Administrativo,
Show In Website,Mostrar En Sitio Web,
Bank Overdraft Account,Cuenta de sobregiros,
Warning: Another {0} # {1} exists against stock entry {2},Existe otro {0} # {1} contra la entrada de población {2}: Advertencia,
'Update Stock' can not be checked because items are not delivered via {0},'Actualizar Stock' no se puede marcar porque los productos no se entregan a través de {0}
Approval Status must be 'Approved' or 'Rejected',"Estado de aprobación debe ser "" Aprobado "" o "" Rechazado """
Holiday List,Lista de Feriados,
Settings for Selling Module,Ajustes para vender Módulo,
"e.g. ""Build tools for builders""","por ejemplo "" Herramientas para los Constructores """
Taxes and Charges Deducted,Impuestos y Gastos Deducidos,
Actual Time and Cost,Tiempo y costo actual,
HR User,Usuario Recursos Humanos,
Unpaid,No pagado,
All Sales Person,Todos Ventas de Ventas,
Material Request to Purchase Order,Requisición de materiales hacia la órden de compra,
Manage Sales Partners.,Administrar Puntos de venta.
Opening Entry,Entrada de Apertura,
Ordered,Ordenado,
Cost of Delivered Items,Costo del Material que se adjunta,
Default Unit of Measure,Unidad de Medida Predeterminada,
Credit To,Crédito Para,
To Currency,Para la moneda,
Unit of Measure,Unidad de Medida,
Material Issue,Incidencia de Material,
Material Requests for which Supplier Quotations are not created,Solicitudes de Productos sin Cotizaciones Creadas,
Weightage,Coeficiente de Ponderación,
"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.","Ejemplo:. ABCD ##### 
 Si la serie se establece y Número de Serie no se menciona en las transacciones, entonces se creara un número de serie automático sobre la base de esta serie. Si siempre quiere mencionar explícitamente los números de serie para este artículo, déjelo en blanco."
Recd Quantity,Recd Cantidad,
New Account Name,Nombre de nueva cuenta,
Balance for Account {0} must always be {1},Balance de cuenta {0} debe ser siempre {1}
Supplier Warehouse,Almacén Proveedor,
Sales campaigns.,Campañas de Ventas.
Project Name,Nombre del proyecto,
Serial No Warranty Expiry,Número de orden de caducidad Garantía,
Manufacturing Manager,Gerente de Manufactura,
Item UOM,Unidad de Medida del Artículo,
Total Invoiced Amt,Total Monto Facturado,
Total Leave Days,Total Vacaciones,
Tax template for selling transactions.,Plantilla de Impuestos para las transacciones de venta.
Score Earned,Puntuación Obtenida,
Re-open,Re Abrir,
Material Request Type,Tipo de Solicitud de Material,
Serial No {0} not found,Serial No {0} no encontrado,
Rate at which Price list currency is converted to company's base currency,Grado en el que la lista de precios en moneda se convierte en la moneda base de la compañía,
Row {0}: Allocated amount {1} must be less than or equals to invoice outstanding amount {2},Fila {0}: cantidad asignada {1} debe ser menor o igual a cantidad pendiente a facturar {2}
Tax Amount After Discount Amount (Company Currency),Monto de impuestos Después Cantidad de Descuento (Compañía moneda)
Holiday List Name,Lista de nombres de vacaciones,
Sales Return,Volver Ventas,
Automotive,Automotor,
Payment Amount,Pago recibido,
Supplied Qty,Suministrado Cantidad,
Employee cannot report to himself.,Empleado no puede informar a sí mismo.
Delivery Note No,No. de Nota de Entrega,
Purchase Order,Órdenes de Compra,
Employee {0} is not active or does not exist,Empleado {0} no está activo o no existe,
POS Profile required to make POS Entry,Se requiere un perfil POS para crear entradas en el Punto-de-Venta,
Requested Items To Be Ordered,Solicitud de Productos Aprobados,
Leave Without Pay,Licencia sin Sueldo,
Root cannot be edited.,Root no se puede editar .
Source warehouse is mandatory for row {0},Almacén de origen es obligatoria para la fila {0}
Target Distribution,Distribución Objetivo,
Item Image (if not slideshow),"Imagen del Artículo (si no, presentación de diapositivas)"
Change the starting / current sequence number of an existing series.,Defina el número de secuencia nuevo para esta transacción,
Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Depósito sólo se puede cambiar a través de la Entrada de Almacén / Nota de Entrega / Recibo de Compra,
Quotation To,Cotización Para,
Select Fiscal Year,Seleccione el año fiscal,
'Has Serial No' can not be 'Yes' for non-stock item,"'Tiene Número de Serie' no puede ser ""Sí"" para elementos que son de inventario"
Cash In Hand,Efectivo Disponible,
Earning,Ganancia,
Please specify currency in Company,"Por favor, especifique la moneda en la compañía"
Purchase Order Message,Mensaje de la Orden de Compra,
Only leaf nodes are allowed in transaction,Sólo las Cuentas de Detalle se permiten en una transacción,
Date is repeated,Fecha se repite,
Government,Gobierno,
Securities & Commodity Exchanges,Valores y Bolsas de Productos,
Items with higher weightage will be shown higher,Los productos con mayor peso se mostraran arriba,
Both Warehouse must belong to same Company,Ambos almacenes deben pertenecer a una misma empresa,
Row # {0}: Cannot return more than {1} for Item {2},Fila # {0}: No se puede devolver más de {1} para el artículo {2}
Supplier of Goods or Services.,Proveedor de Productos o Servicios.
Secretary,Secretario,
Lead must be set if Opportunity is made from Lead,La Iniciativa se debe establecer si la oportunidad está hecha desde Iniciativas,
Operation completed for how many finished goods?,La operación se realizó para la cantidad de productos terminados?
Type of document to rename.,Tipo de documento para cambiar el nombre.
Include holidays within leaves as leaves,"Incluir las vacaciones con ausencias, únicamente como ausencias"
"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",Asiento contable congelado actualmente ; nadie puede modificar el asiento  excepto el rol que se especifica a continuación .
Duties and Taxes,Derechos e Impuestos,
Tree of Bill of Materials,Árbol de la lista de materiales,
Manufacturing User,Usuario de Manufactura,
Profit and Loss Statement,Estado de Pérdidas y Ganancias,
Item Supplier,Proveedor del Artículo,
Account {0}: Parent account {1} can not be a ledger,Cuenta {0}: Cuenta Padre {1} no puede ser una cuenta Mayor,
Attendance From Date and Attendance To Date is mandatory,Asistencia Desde Fecha y Hasta Fecha de Asistencia es obligatoria,
Cart is Empty,El carro esta vacío,
Please Delivery Note first,Primero la nota de entrega,
Monthly Attendance Sheet,Hoja de Asistencia Mensual,
Get Template,Verificar Plantilla,
"To include tax in row {0} in Item rate, taxes in rows {1} must also be included",Para incluir el impuesto de la linea {0} los impuestos de las lineas {1} también deben ser incluidos,
Sales Invoice Advance,Factura Anticipadas,
Quantity for Item {0} must be less than {1},Cantidad de elemento {0} debe ser menor de {1}
Stock Value Difference,Diferencia de Valor de Inventario,
Min Order Qty,Cantidad mínima de Pedido (MOQ)
Website Warehouse,Almacén del Sitio Web,
Source and target warehouse cannot be same for row {0},Fuente y el almacén de destino no pueden ser la misma para la fila {0}
Submit Salary Slip,Presentar nómina,
Specify conditions to calculate shipping amount,Especificar condiciones de calcular el importe de envío,
This is a root customer group and cannot be edited.,Este es una categoría de cliente raíz y no se puede editar.
Customer Items,Artículos de clientes,
Customer Naming By,Naming Cliente Por,
Fixed Asset,Activos Fijos,
Start date of current invoice's period,Fecha del período de facturación actual Inicie,
Score (0-5),Puntuación ( 0-5)
"To set this Fiscal Year as Default, click on 'Set as Default'","Para establecer este Año Fiscal como Predeterminado , haga clic en "" Establecer como Predeterminado """
Where manufacturing operations are carried.,¿Dónde se realizan las operaciones de fabricación.
Appraisal {0} created for Employee {1} in the given date range,Evaluación {0} creado por Empleado {1} en el rango de fechas determinado,
Employee Leave Approver,Supervisor de Vacaciones del Empleado,
Investment Banking,Banca de Inversión,
Unit,Unidad,
Stock Analytics,Análisis de existencias,
Leave blank if considered for all departments,Dejar en blanco si se considera para todos los departamentos,
Purchase Order Items To Be Billed,Ordenes de Compra por Facturar,
The selected item cannot have Batch,El elemento seleccionado no puede tener lotes,
Setting Account Type helps in selecting this Account in transactions.,Ajuste del tipo de cuenta le ayuda en la selección de esta cuenta en las transacciones.
User {0} is already assigned to Employee {1},El usuario {0} ya está asignado a Empleado {1}
Expenses Included In Valuation,Gastos dentro de la valoración,
New Customers,Clientes Nuevos,
Total Taxes and Charges (Company Currency),Total Impuestos y Cargos (Moneda Local)
Piecework,Pieza de trabajo,
Item {0}: Ordered qty {1} cannot be less than minimum order qty {2} (defined in Item).,El elemento {0}: Con la cantidad ordenada {1} no puede ser menor que el pedido mínimo {2} (definido en el producto).
A logical Warehouse against which stock entries are made.,Un almacén lógico por el cual se hacen las entradas de existencia.
Has Batch No,Tiene lote No,
Creation Document Type,Tipo de creación de documentos,
Prevdoc DocType,DocType Prevdoc,
Batch,Lotes de Producto,
The BOM which will be replaced,La Solicitud de Materiales que será sustituida,
Account with child nodes cannot be set as ledger,La Cuenta con subcuentas no puede convertirse en libro de diario.
Stock Projected Qty,Cantidad de Inventario Proyectada,
Updated via 'Time Log',Actualizado a través de 'Hora de Registro'
{0} against Bill {1} dated {2},{0} contra Factura {1} de fecha {2}
Your Products or Services,Sus productos o servicios,
{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} es obligatorio. Tal vez tipo de cambio no se ha creado para {1} en {2}.
To Time,Para Tiempo,
No address added yet.,No se ha añadido ninguna dirección todavía.
Terretory,Territorios,
Series List for this Transaction,Lista de series para esta transacción,
"This will be appended to the Item Code of the variant. For example, if your abbreviation is ""SM"", and the item code is ""T-SHIRT"", the item code of the variant will be ""T-SHIRT-SM""","Esto se añade al Código del Artículo de la variante. Por ejemplo, si su abreviatura es ""SM"", y el código del artículo es ""CAMISETA"", el código de artículo de la variante será ""CAMISETA-SM"""
Wages,Salario,
Outstanding for {0} cannot be less than zero ({1}),Sobresaliente para {0} no puede ser menor que cero ({1} )
Appraisal Goal,Evaluación Meta,
Stock balance in Batch {0} will become negative {1} for Item {2} at Warehouse {3},Balance de Inventario en Lote {0} se convertirá en negativa {1} para la partida {2} en Almacén {3}
Allow Production on Holidays,Permitir Producción en Vacaciones,
Terms,Términos,
Supplier(s),Proveedor (s)
Serial No Details,Serial No Detalles,
Allow user to edit Price List Rate in transactions,Permitir al usuario editar Precio de Lista  en las transacciones,
Serial Nos Required for Serialized Item {0},Serie n Necesario para artículo serializado {0}
"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Mostrar ""en la acción "" o "" No disponible "", basada en stock disponible en este almacén."
Place of Issue,Lugar de emisión,
Purchase Order {0} is not submitted,La órden de compra {0} no existe,
Account {0} is invalid. Account Currency must be {1},La Cuenta {0} no es válida. La Moneda de la Cuenta debe de ser {1}
"If this item has variants, then it cannot be selected in sales orders etc.","Si este artículo tiene variantes, entonces no podrá ser seleccionado en los pedidos de venta, etc."
Sales Team1,Team1 Ventas,
Stock Entry {0} is not submitted,Entrada de la {0} no se presenta,
Support queries from customers.,Consultas de soporte de clientes .
Quotes to Leads or Customers.,Cotizaciones a Oportunidades o Clientes,
Consumed Amount,Cantidad Consumida,
Item Tax Row {0} must have account of type Tax or Income or Expense or Chargeable,"Campo de impuesto del producto {0} debe tener un tipo de cuenta de impuestos, ingresos, cargos o gastos"
Supplier Part Number,Número de pieza del proveedor,
'From Date' must be after 'To Date','Desde fecha' debe ser después de 'Hasta Fecha'
Account with child nodes cannot be converted to ledger,Cuenta con nodos hijos no se puede convertir a cuentas del libro mayor,
Serial No Service Contract Expiry,Número de orden de servicio Contrato de caducidad,
Supplier Warehouse mandatory for sub-contracted Purchase Receipt,Almacén de Proveedor es necesario para recibos de compras sub contratadas,
School/University,Escuela / Universidad,
Item {0} must be a Sub-contracted Item,El elemento {0} debe ser un producto sub-contratado,
Is Frozen,Está Inactivo,
Serial No {0} is under warranty upto {1},Número de orden {0} está en garantía hasta {1}
Global settings for all manufacturing processes.,Configuración global para todos los procesos de fabricación.
Actual type tax cannot be included in Item rate in row {0},"El tipo de impuesto actual, no puede ser incluido en el precio del producto de la linea {0}"
Role Allowed to edit frozen stock,Función Permitida para editar Inventario Congelado,
"Higher the number, higher the priority","Mayor es el número, mayor es la prioridad"
Stock cannot exist for Item {0} since has variants,Inventario no puede existir para el punto {0} ya tiene variantes,
Carry Forward,Cargar,
Account {0} is frozen,Cuenta {0} está congelada,
Periodicity,Periodicidad,
Raw Materials cannot be blank.,Materias primas no pueden estar en blanco.
Date Of Retirement must be greater than Date of Joining,Fecha de la jubilación debe ser mayor que Fecha de acceso,
Employee Leave Balance,Balance de Vacaciones del Empleado,
Sales Person Name,Nombre del Vendedor,
Classification of Customers by region,Clasificación de los clientes por región,
Grand Total (Company Currency),Suma total (Moneda Local)
Quantity and Rate,Cantidad y Cambio,
Balance Qty,Can. en balance,
Materials Required (Exploded),Materiales necesarios ( despiece )
Source of Funds (Liabilities),Fuente de los fondos ( Pasivo )
Exploded_items,Vista detallada,
Sales Invoice {0} must be cancelled before cancelling this Sales Order,Factura {0} debe ser cancelado antes de cancelar esta Orden Ventas,
Is Opening,Es apertura,
Warehouse {0} does not exist,Almacén {0} no existe,
{0} is not a stock Item,{0} no es un producto de stock,
Due Date is mandatory,La fecha de vencimiento es obligatorio,
Sales Person-wise Transaction Summary,Resumen de Transacción por Vendedor,
Reorder Qty,Reordenar Cantidad,
Rate Of Materials Based On,Cambio de materiales basados en,
Purchase Receipt Items,Artículos de Recibo de Compra,
Out Qty,Salir Cant.
Contribution (%),Contribución (%)
Cost Center Name,Nombre Centro de Costo,
Material Request used to make this Stock Entry,Solicitud de Material utilizado para hacer esta Entrada de Inventario,
Year End Date,Año de Finalización,
Supplier Invoice Date,Fecha de la Factura de Proveedor,
This is a root item group and cannot be edited.,Se trata de un grupo de elementos raíz y no se puede editar .
Specified BOM {0} does not exist for Item {1},Solicitud de Materiales especificado {0} no existe la partida {1}
Sum of points for all goals should be 100. It is {0},Suma de puntos para todas las metas debe ser 100. Es {0}
There are more holidays than working days this month.,Hay más vacaciones que días de trabajo este mes.
Gross Weight UOM,Peso Bruto de la Unidad de Medida,
Territory Target Variance Item Group-Wise,Variación de Grupo por Territorio Objetivo,
Item to be manufactured or repacked,Artículo a fabricar o embalados de nuevo,
Supply Raw Materials,Suministro de Materias Primas,
Warehouse can not be deleted as stock ledger entry exists for this warehouse.,Almacén no se puede suprimir porque hay una entrada en registro de inventario para este almacén.
Current BOM and New BOM can not be same,Solicitud de Materiales actual y Nueva Solicitud de Materiales no pueden ser iguales,
Stock,Existencias,
Contribution %,Contribución %
Repack,Vuelva a embalar,
Support Analytics,Analitico de Soporte,
Average time taken by the supplier to deliver,Tiempo estimado por el proveedor para la recepción,
Apply On,Aplique En,
{0} against Sales Order {1},{0} contra orden de venta {1}
Manufactured Qty,Cantidad Fabricada,
Bill of Materials (BOM),Lista de Materiales (LdM)
General Ledger,Libro Mayor,
Serial No is mandatory for Item {0},No de serie es obligatoria para el elemento {0}
Set as Open,Establecer como abierto,
Required On,Requerido Por,
Gantt chart of all tasks.,Diagrama de Gantt de todas las tareas .
Material Request Item,Elemento de la Solicitud de Material,
Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Solicitud de Materiales de máxima {0} se puede hacer para el punto {1} en contra de órdenes de venta {2}
Required only for sample item.,Sólo es necesario para el artículo de muestra .
Add/Remove Recipients,Añadir / Quitar Destinatarios,
Requested,Requerido,
Shipping Rule Conditions,Regla envío Condiciones,
Contribution Amount,Contribución Monto,
Item To Manufacture,Artículo Para Fabricación,
Quotation Message,Cotización Mensaje,
Stock Assets,Activos de Inventario,
Rate at which Customer Currency is converted to customer's base currency,Tasa a la cual la Moneda del Cliente se convierte a la moneda base del cliente,
Tax template for buying transactions.,Plantilla de impuestos para las transacciones de compra.
Taxes and Charges Deducted (Company Currency),Impuestos y Gastos Deducidos (Moneda Local)
Stock Reconciliation Item,Articulo de Reconciliación de Inventario,
Account {0}: Parent account {1} does not belong to company: {2},Cuenta {0}: Cuenta Padre {1} no pertenece a la compañía: {2}
Purchase / Manufacture Details,Detalles de Compra / Fábricas,
Debit To account must be a Receivable account,La cuenta para Débito debe ser una cuenta por cobrar,
Warehouse Detail,Detalle de almacenes,
Raise Material Request when stock reaches re-order level,Enviar solicitud de materiales cuando se alcance un nivel bajo el stock,
Maintenance Schedule Detail,Detalle de Calendario de Mantenimiento,
Item Group,Grupo de artículos,
Point-of-Sale,Punto de venta,
Rejected Serial No,Rechazado Serie No,
Search Sub Assemblies,Asambleas Buscar Sub,
Supplier Items,Artículos del Proveedor,
Contact Mobile No,No Móvil del Contacto,
Invoice Date,Fecha de la factura,
Date Of Retirement,Fecha de la jubilación,
Please set User ID field in an Employee record to set Employee Role,"Por favor, establece campo ID de usuario en un registro de empleado para establecer Función del Empleado"
Home Page is Products,Pagína de Inicio es Productos,
Round Off,Redondear,
Set as Lost,Establecer como Perdidos,
Sales Partners Commission,Comisiones de Ventas,
Sales Person Target Variance Item Group-Wise,Variación por Vendedor de Meta,
BOM {0} must be submitted,La lista de materiales (LdM) {0} debe ser enviada,
Please select BOM in BOM field for Item {0},"Por favor, seleccione la Solicitud de Materiales en el campo de Solicitud de Materiales para el punto {0}"
Rate at which supplier's currency is converted to company's base currency,Grado a la que la moneda de proveedor se convierte en la moneda base de la compañía,
Person Name,Nombre de la persona,
Batch number is mandatory for Item {0},Número de lote es obligatorio para el producto {0}
Account: {0} can only be updated via Stock Transactions,La cuenta: {0} sólo puede ser actualizada a través de transacciones de inventario,
Employees Email Id,Empleados Email Id,
Shortage Qty,Escasez Cantidad,
Cash Flow,Flujo de Caja,
Role that is allowed to submit transactions that exceed credit limits set.,Función que esta autorizada a presentar las transacciones que excedan los límites de crédito establecidos .
{0} valid serial nos for Item {1},{0} No. de serie válidos para el producto {1}
Default Stock UOM,Unidad de Medida Predeterminada para Inventario,
Description of a Job Opening,Descripción de una oferta de trabajo,
Project-wise data is not available for Quotation,El seguimiento preciso del proyecto no está disponible para la cotización--
Stock Settings,Ajustes de Inventarios,
Quotation Item,Cotización del artículo,
Date of Issue,Fecha de emisión,
Sales Invoice Item,Articulo de la Factura de Venta,
Customer {0} does not belong to project {1},Cliente {0} no pertenece a proyectar {1}
Against Sales Invoice Item,Contra la Factura de Venta de Artículos,
Accounting Details,detalles de la contabilidad,
Accounting journal entries.,Entradas en el diario de contabilidad.
Missing Currency Exchange Rates for {0},Falta de Tipo de Cambio de moneda para {0}
Capital Stock,Capital Social,
Employee Records to be created by,Registros de empleados a ser creados por,
Expense Account,Cuenta de gastos,
Maintenance Schedule {0} must be cancelled before cancelling this Sales Order,Programa de mantenimiento {0} debe ser cancelado antes de cancelar esta orden de venta,
Actual Qty After Transaction,Cantidad actual después de la transacción,
Either target qty or target amount is mandatory,Cualquiera Cantidad Meta o Monto Meta es obligatoria,
Applicable To (Role),Aplicable a (Rol )
Amount (Company Currency),Importe (Moneda Local)
Gantt Chart,Diagrama de Gantt,
Warning: Material Requested Qty is less than Minimum Order Qty,Advertencia: Cantidad de Material Solicitado es menor que Cantidad Mínima Establecida,
Plan time logs outside Workstation Working Hours.,Planear bitácora de trabajo para las horas fuera de la estación.
"Here you can maintain height, weight, allergies, medical concerns etc","Aquí usted puede mantener la altura , el peso, alergias , problemas médicos , etc"
Against Journal Entry {0} does not have any unmatched {1} entry,Contra la Entrada de Diario {0} no tiene ninguna {1} entrada que vincular,
Row #{0}: Rejected Qty can not be entered in Purchase Return,Fila # {0}: Rechazado Cantidad no se puede introducir en la Compra de Retorno,
Enable / disable currencies.,Habilitar / Deshabilitar el tipo de monedas,
Material Transfer for Manufacture,Trasferencia de Material para Manufactura,
"To merge, following properties must be same for both items","Para combinar, la siguientes propiedades deben ser las mismas para ambos artículos"
Serial No {0} is under maintenance contract upto {1},Número de orden {0} tiene un contrato de mantenimiento hasta {1}
Please pull items from Delivery Note,"Por favor, extraiga los productos desde la nota de entrega--"
Fetch exploded BOM (including sub-assemblies),Mezclar Solicitud de Materiales (incluyendo subconjuntos )
Auto Material Request,Solicitud de Materiales Automatica,
Get Items from BOM,Obtener elementos de la Solicitud de Materiales,
Customer Addresses And Contacts,Las direcciones de clientes y contactos,
Account {0}: You can not assign itself as parent account,Cuenta {0}: no puede asignar la misma cuenta como su cuenta Padre.
Item Price,Precios de Productos,
Leave blank if considered for all branches,Dejar en blanco si se considera para todas las ramas,
To Bill,A Facturar,
Production Plan Sales Order,Plan de producción de la orden de ventas (OV)
Return,Retorno,
Please enter default currency in Company Master,"Por favor, ingrese la moneda por defecto en la compañía principal"
Middle Income,Ingresos Medio,
Sales Invoice {0} has already been submitted,Factura {0} ya se ha presentado,
Year of Passing,Año de Fallecimiento,
Rate at which customer's currency is converted to company's base currency,Tasa a la cual la Moneda del Cliente se convierte a la moneda base de la compañía,
Manufacturing Quantity is mandatory,Cantidad de Fabricación es obligatoria,
AMC Expiry Date,AMC Fecha de caducidad,
Row {0}: Party Type and Party is required for Receivable / Payable account {1},Fila {0}: el tipo de entidad se requiere para las cuentas por cobrar/pagar {1}
Total Billing Amount,Monto total de facturación,
Branch,Rama,
Pension Funds,Fondos de Pensiones,
example: Next Day Shipping,ejemplo : Envío Día Siguiente,
Actual Operating Cost,Costo de operación actual,
Cannot convert Cost Center to ledger as it has child nodes,"No se puede convertir de 'Centros de Costos' a una cuenta del libro mayor, ya que tiene cuentas secundarias"
Telephone Expenses,Gastos por Servicios Telefónicos,
Percentage Allocation should be equal to 100%,Porcentaje de asignación debe ser igual al 100 %
Against Journal Entry {0} is already adjusted against some other voucher,Contra la Entrada de Diario entrada {0} ya se ajusta contra algún otro comprobante,
Holiday,Feriado,
Completed Qty,Cant. Completada,
Net Pay (in words) will be visible once you save the Salary Slip.,Pago neto (en palabras) será visible una vez que guarde la nómina.
POS Profile,Perfiles POS,
Rules for adding shipping costs.,Reglas para la adición de los gastos de envío .
Item Code required at Row No {0},Código del producto requerido en la fila No. {0}
No of Requested SMS,No. de SMS solicitados,
Nos,Números,
Short biography for website and other publications.,Breve biografía de la página web y otras publicaciones.
Leave of type {0} cannot be longer than {1},Permiso de tipo {0} no puede tener más de {1}
Sales Browser,Navegador de Ventas,
Contact Details,Datos del Contacto,
Warehouse {0} does not belong to company {1},Almacén {0} no pertenece a la empresa {1}
The Item {0} cannot have Batch,El artículo {0} no puede tener lotes,
Users who can approve a specific employee's leave applications,Los usuarios que pueden aprobar las solicitudes de licencia de un empleado específico,
For Quantity (Manufactured Qty) is mandatory,Por Cantidad (Cantidad fabricada) es obligatorio,
cannot be greater than 100,No puede ser mayor que 100,
Customer Feedback,Comentarios del cliente,
Required Qty,Cant. Necesaria,
Delivery Note,Notas de Entrega,
Stock Value,Valor de Inventario,
In Words (Company Currency),En palabras (Moneda Local)
Website Item Group,Grupo de Artículos del Sitio Web,
Supply Raw Materials for Purchase,Materiales Suministro primas para la Compra,
Series Updated Successfully,Serie actualizado correctamente,
Opportunity Date,Oportunidad Fecha,
There was an error. One probable reason could be that you haven't saved the form. Please contact support@erpnext.com if the problem persists.,"Ha ocurrido un error . Una razón probable podría ser que usted no ha guardado el formulario. Por favor, póngase en contacto con support@erpnext.com si el problema persiste."
Max discount allowed for item: {0} is {1}%,Descuento máximo permitido para cada elemento: {0} es {1}%
POS,POS,
End Date can not be less than Start Date,Fecha Final no puede ser inferior a Fecha de Inicio,
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,"Por favor seleccione trasladar, si usted desea incluir los saldos del año fiscal anterior a este año"
Contact HTML,HTML del Contacto,
Calculate Based On,Calcular basado en,
Qty To Manufacture,Cantidad Para Fabricación,
Basic Rate (Company Currency),Precio Base (Moneda Local)
Total Outstanding Amt,Monto Total Soprepasado,
Outstanding Amt,Monto Sobrepasado,
Row {0}: Credit entry can not be linked with a {1},Fila {0}: Crédito no puede vincularse con {1}
Credit Card,Tarjeta de Crédito,
Accounting entries have already been made in currency {0} for company {1}. Please select a receivable or payable account with currency {0}.,Partidas contables ya han sido realizadas en {0} para la empresa {1}. Por favor seleccione una cuenta por cobrar o pagar con moneda {0}
Duplicate row {0} with same {1},Duplicar fila {0} con el mismo {1}
Leave Application,Solicitud de Vacaciones,
For Supplier,Por proveedor,
Visit report for maintenance call.,Informe de visita por llamada de mantenimiento .
Manage Sales Person Tree.,Vista en árbol para la administración de las categoría de vendedores,
New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,El numero de serie no tiene almacén. el almacén debe establecerse por entradas de stock o recibos de compra,
Overlapping conditions found between:,Condiciones coincidentes encontradas entre :
Please specify a valid 'From Case No.',"Por favor, especifique 'Desde el caso No.' válido"
Item or Warehouse for row {0} does not match Material Request,Artículo o Bodega para la fila {0} no coincide Solicitud de material,
'Total','Total'
Debtors,Deudores,
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Establecer presupuestos - Grupo sabio artículo en este Territorio. También puede incluir la estacionalidad mediante el establecimiento de la Distribución .
For reference,Por referencia,
All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,Todas las transacciones de venta se pueden etiquetar contra múltiples **vendedores ** para que pueda establecer y monitorear metas.
Make Salary Slip,Hacer Nómina,
Rounded Total (Company Currency),Total redondeado (Moneda local)
Default BOM,Solicitud de Materiales por Defecto,
Delivery Note Trends,Tendencia de Notas de Entrega,
Serial No {0} has already been received,Número de orden {0} ya se ha recibido,
{0} entered twice in Item Tax,{0} ingresado dos veces en el Impuesto del producto,
Project master.,Proyecto maestro,
"There can only be one Shipping Rule Condition with 0 or blank value for ""To Value""","Sólo puede haber una Condición de Regla de Envió  con valor 0 o valor en blanco para ""To Value"""
Item Group Name,Nombre del grupo de artículos,
On Net Total,En Total Neto,
Root Type,Tipo Root,
Reference No & Reference Date is required for {0},Se requiere de No de Referencia y Fecha de Referencia para {0}
Please enter relieving date.,"Por favor, introduzca la fecha de recepción."
Gross Profit,Utilidad bruta,
Warehouse not found in the system,Almacén no se encuentra en el sistema,
Serial No Status,Número de orden Estado,
Ordered Quantity,Cantidad Pedida,
UOMs,Unidades de Medida,
Price List Rate (Company Currency),Tarifa de la lista de precios (Moneda Local)
Distribution Name,Nombre del Distribución,
Sales Order,Ordenes de Venta,
Weight UOM,Peso Unidad de Medida,
Work-in-Progress Warehouse is required before Submit,Se requiere un Almacen de Trabajo en Proceso antes de Enviar,
Get Sales Orders,Recibe Órdenes de Venta,
Serial No {0} quantity {1} cannot be a fraction,Número de orden {0} {1} cantidad no puede ser una fracción,
Applicable Holiday List,Lista de Días Feriados Aplicable,
Successfully Reconciled,Reconciliado con éxito,
Select Employees,Seleccione Empleados,
Stock transactions before {0} are frozen,Operaciones de Inventario antes de {0} se congelan,
Net Rate (Company Currency),Tasa neta (Moneda Local)
Closing Account Head,Cuenta de cierre principal,
Days Since Last Order,Días desde el último pedido,
Default Buying Cost Center,Centro de Costos Por Defecto,
Maintenance Visit {0} must be cancelled before cancelling this Sales Order,Visita de Mantenimiento {0} debe ser cancelado antes de cancelar la Orden de Ventas,
"Attach .csv file with two columns, one for the old name and one for the new name","Adjuntar archivo .csv con dos columnas, una para el nombre antiguo y otro para el nombre nuevo"
Schedule Date,Horario Fecha,
UOM Name,Nombre Unidad de Medida,
Target warehouse is mandatory for row {0},Almacenes de destino es obligatorio para la fila {0}
Get Items From Purchase Receipts,Obtener los elementos desde Recibos de Compra,
Serial Number Series,Número de Serie Serie,
Product Bundle Help,Ayuda del conjunto/paquete de productos,
Specify Exchange Rate to convert one currency into another,Especificar Tipo de Cambio para convertir una moneda en otra,
