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"
Serial No {0} does not belong to Item {1},Número de orden {0} no pertenece al elemento {1}
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,
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,
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,
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'"
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,
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,
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"
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,
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,
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,
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,
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."
user@example.com,user@example.com,
Source Warehouse,fuente de depósito,
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)
Stock User,Foto del usuario,
On Previous Row Amount,En la Fila Anterior de Cantidad,
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.
"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}"
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,
Excise Entry,Entrada Impuestos Especiales,
Opportunity,Oportunidades,
Salary Slip,Planilla,
Rate at which this tax is applied,Velocidad a la que se aplica este impuesto,
Supplier Id,Proveedor Id,
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,
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,
"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,
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 )
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,
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,
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,
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}
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,
Tax template for selling transactions.,Plantilla de Impuestos para las transacciones de venta.
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,
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,
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,
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,
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.
"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,
Cart is Empty,El carro esta vacío,
Please Delivery Note first,Primero la nota de entrega,
"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}
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,
"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)
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,
Terretory,Territorios,
"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} )
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,
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}
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,
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,
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.
Sales Browser,Navegador de Ventas,
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,
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}
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,
Make ,Hacer,
You can also copy-paste this link in your browser,También puede copiar y pegar este enlace en su navegador,
