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 (via Timesheet),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,
