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}
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,
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'"
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,
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,
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)
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,
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} )
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,
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,
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,
