 (Half Day),(Meio Dia)
 .You can not assign / modify / remove Master Name,
 Quantity should be greater than 0.,
 after this transaction.,
 against cost center ,
 against sales order,contra a ordem de venda
 against same operation,contra a mesma operação
 already marked,já marcada
 and fiscal year : ,
 and year: ,e ano:
 as it is stock Item or packing item,como é o estoque do item ou item de embalagem
 at warehouse: ,em armazém:
 budget ,
 can not be created/modified against stopped Sales Order ,
 can not be deleted,
 can not be made.,não podem ser feitas.
 can not be received twice,
 can only be debited/credited through Stock transactions,
 created,
 does not belong to ,
 does not belong to Warehouse,
 does not belong to the company,não pertence à empresa
 does not exists,
 for account ,
 has been freezed. ,foi congelado.
 is a frozen account. Either make the account active or assign role in Accounts Settings who can create / modify entries against this account,
" is a frozen account. To create / edit transactions against this account, you need role",
" is less than equals to zero in the system, valuation rate is mandatory for this item",
 is mandatory,é obrigatória
 is mandatory for GL Entry,é obrigatória para a entrada GL
 is not a ledger,não é um livro
 is not active,não está ativo
 is not submitted document,
" is now the default Fiscal Year. \
			Please refresh your browser for the change to take effect.",
 not active or does not exists in the system,não está ativo ou não existe no sistema
 or the BOM is cancelled or inactive,ou o BOM é cancelado ou inativo
 should be same as that in ,deve ser o mesmo que na
 was on leave on ,estava de licença em
 will be ,será
 will be created,
 will be over-billed against mentioned ,será super-faturados contra mencionada
 will become ,ficará
 will exceed by ,
""" does not exists",""" Bestaat niet"
# ###.##,
"#,###",
"#,###.##",
"#,###.###",
"#,##,###.##",
#.###,
"#.###,##",
%  Delivered,Entregue%
% Amount Billed,Valor% faturado
% Billed,Anunciado%
% Completed,% Concluído
% Delivered,% Geleverd
% Installed,Instalado%
% Received,Recebido%
% of materials billed against this Purchase Order.,% De materiais faturado contra esta Ordem de Compra.
% of materials billed against this Sales Order,% De materiais faturado contra esta Ordem de Vendas
% of materials delivered against this Delivery Note,% Dos materiais entregues contra esta Nota de Entrega
% of materials delivered against this Sales Order,% Dos materiais entregues contra esta Ordem de Vendas
% of materials ordered against this Material Request,% De materiais ordenou contra este pedido se
% of materials received against this Purchase Order,% Do material recebido contra esta Ordem de Compra
%(conversion_rate_label)s is mandatory. Maybe Currency Exchange record is not created for %(from_currency)s to %(to_currency)s,% ( conversion_rate_label ) s is verplicht. Misschien Valutawissel record is niet gemaakt voor % ( from_currency ) s naar% ( to_currency ) s
' in Company: ,&#39;Na empresa:
'To Case No.' cannot be less than 'From Case No.',&quot;Para Processo n º &#39; não pode ser inferior a &#39;From Processo n&#39;
"(Paid amount + Write Off Amount) can not be \
				greater than Grand Total",
(Total) Net Weight value. Make sure that Net Weight of each item is,(Totaal ) Netto gewicht waarde . Zorg ervoor dat Netto gewicht van elk item is
* Will be calculated in the transaction.,* Será calculado na transação.
"**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.

To distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**",
**Currency** Master,Hoje ** ** Mestre
**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,Ano Fiscal ** ** representa um Exercício. Todos os lançamentos contábeis e outras transações importantes são monitorados contra ** Ano Fiscal **.
". Outstanding cannot be less than zero. \
			 	Please match exact outstanding.",
. Please set status of the employee as 'Left',". Por favor, definir o status do funcionário como &#39;esquerda&#39;"
. You can not mark his attendance as 'Present',. Você não pode marcar sua presença como &quot;presente&quot;
01,01
02,02
03,03
04,04
05,05
06,06
07,07
08,08
09,09
"1 Currency = [?] Fraction
For e.g. 1 USD = 100 Cent",
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1. Para manter o cliente código do item sábio e para torná-los pesquisáveis ​​com base em seu código usar esta opção
10,10
11,11
12,12
2,2
3,3
4,4
5,5
6,6
: Duplicate row from same ,: Duplicar linha do mesmo
: It is linked to other active BOM(s),: Está ligado ao BOM ativa outro (s)
: Mandatory for a Recurring Invoice.,: Obrigatório para uma factura Recorrente.
"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> toevoegen / bewerken < / a>"
"<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group""> toevoegen / bewerken < / a>"
"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> toevoegen / bewerken < / a>"
"<a href=""https://en.wikipedia.org/wiki/Transport_Layer_Security"" target=""_blank"">[?]</a>","<a href=""https://en.wikipedia.org/wiki/Transport_Layer_Security"" target=""_blank""> [ ? ] < / a>"
A Customer exists with same name,Um cliente existe com mesmo nome
A Lead with this email id should exist,Um chumbo com esse ID de e-mail deve existir
"A Product or a Service that is bought, sold or kept in stock.","Um produto ou um serviço que é comprado, vendido ou mantidos em estoque."
A Supplier exists with same name,Um Fornecedor existe com mesmo nome
A condition for a Shipping Rule,A condição para uma regra de envio
A logical Warehouse against which stock entries are made.,Um armazém lógico contra o qual as entradas de ações são feitas.
A symbol for this currency. For e.g. $,Um símbolo para esta moeda. Por exemplo: $
A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Um distribuidor de terceiros revendedor / / comissão do agente de afiliados / / revendedor que vende os produtos para empresas de uma comissão.
A+,A +
A-,A-
AB+,AB +
AB-,AB-
AMC Expiry Date,AMC Data de Validade
AMC expiry date and maintenance status mismatched,AMC vervaldatum en onderhoudstoestand mismatch
ATT,ATT
Abbr,Abbr
About ERPNext,over ERPNext
Above Value,Acima de Valor
Absent,Ausente
Acceptance Criteria,Critérios de Aceitação
Accepted,Aceito
Accepted Quantity,Quantidade Aceito
Accepted Warehouse,Armazém Aceito
Account,conta
Account ,
Account Balance,Saldo em Conta
Account Details,Detalhes da conta
Account Head,Chefe conta
Account Name,Nome da conta
Account Type,Tipo de conta
Account expires on,Account verloopt op
Account for the warehouse (Perpetual Inventory) will be created under this Account.,Rekening voor het magazijn ( Perpetual Inventory ) wordt aangemaakt onder deze account .
Account for this ,Conta para isso
Accounting,Contabilidade
Accounting Entries are not allowed against groups.,Boekingen zijn niet toegestaan ​​tegen groepen .
"Accounting Entries can be made against leaf nodes, called","Boekingen kunnen worden gemaakt tegen leaf nodes , genaamd"
Accounting Year.,Ano de contabilidade.
"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Registro contábil congelado até a presente data, ninguém pode fazer / modificar entrada exceto papel especificado abaixo."
Accounting journal entries.,Lançamentos contábeis jornal.
Accounts,Contas
Accounts Frozen Upto,Contas congeladas Upto
Accounts Payable,Contas a Pagar
Accounts Receivable,Contas a receber
Accounts Settings,Configurações de contas
Action,Ação
Active,Ativo
Active: Will extract emails from ,Ativo: Será que extrair e-mails a partir de
Activity,Atividade
Activity Log,Registro de Atividade
Activity Log:,Activity Log :
Activity Type,Tipo de Atividade
Actual,Real
Actual Budget,Orçamento real
Actual Completion Date,Data de conclusão real
Actual Date,Data Real
Actual End Date,Data final real
Actual Invoice Date,Actual Data da Fatura
Actual Posting Date,Actual Data lançamento
Actual Qty,Qtde real
Actual Qty (at source/target),Qtde real (a origem / destino)
Actual Qty After Transaction,Qtde real após a transação
Actual Qty: Quantity available in the warehouse.,Werkelijke Aantal : Aantal beschikbaar in het magazijn.
Actual Quantity,Quantidade real
Actual Start Date,Data de início real
Add,Adicionar
Add / Edit Taxes and Charges,Adicionar / Editar Impostos e Taxas
Add Child,Child
Add Serial No,Voeg Serienummer
Add Taxes,Belastingen toevoegen
Add Taxes and Charges,Belastingen en heffingen toe te voegen
Add or Deduct,Adicionar ou Deduzir
Add rows to set annual budgets on Accounts.,Adicionar linhas para definir orçamentos anuais nas contas.
Add to calendar on this date,Toevoegen aan agenda op deze datum
Add/Remove Recipients,Adicionar / Remover Destinatários
Additional Info,Informações Adicionais
Address,Endereço
Address & Contact,Address &amp; Contact
Address & Contacts,Endereço e contatos
Address Desc,Endereço Descr
Address Details,Detalhes de endereço
Address HTML,Abordar HTML
Address Line 1,Endereço Linha 1
Address Line 2,Endereço Linha 2
Address Title,Título endereço
Address Type,Tipo de endereço
Advance Amount,Quantidade antecedência
Advance amount,Valor do adiantamento
Advances,Avanços
Advertisement,Anúncio
After Sale Installations,Após instalações Venda
Against,Contra
Against Account,Contra Conta
Against Docname,Contra docName
Against Doctype,Contra Doctype
Against Document Detail No,Contra Detalhe documento n
Against Document No,Contra documento n
Against Expense Account,Contra a conta de despesas
Against Income Account,Contra Conta Renda
Against Journal Voucher,Contra Vale Jornal
Against Purchase Invoice,Contra a Nota Fiscal de Compra
Against Sales Invoice,Contra a nota fiscal de venda
Against Sales Order,Tegen klantorder
Against Voucher,Contra Vale
Against Voucher Type,Tipo contra Vale
Ageing Based On,Vergrijzing Based On
Agent,Agente
"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. 

The package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".

For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.

Note: BOM = Bill of Materials",
Aging Date,Envelhecimento Data
All Addresses.,Todos os endereços.
All Contact,Todos Contato
All Contacts.,Todos os contatos.
All Customer Contact,Todos contato do cliente
All Day,Dia de Todos os
All Employee (Active),Todos Empregado (Ativo)
All Lead (Open),Todos chumbo (Aberto)
All Products or Services.,Todos os produtos ou serviços.
All Sales Partner Contact,Todos Contato parceiro de vendas
All Sales Person,Todos Vendas Pessoa
All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,Todas as transações de vendas pode ser marcado contra diversas Pessoas ** ** vendas de modo que você pode definir e monitorar metas.
All Supplier Contact,Todos contato fornecedor
All Supplier Types,Alle Leverancier Types
"All export related fields like currency, conversion rate, export total, export grand total etc are available in <br>
Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.",
"All import related fields like currency, conversion rate, import total, import grand total etc are available in <br>
Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.",
Allocate,Distribuir
Allocate leaves for the year.,Alocar folhas para o ano.
Allocated Amount,Montante afectado
Allocated Budget,Orçamento atribuído
Allocated amount,Montante atribuído
Allow Bill of Materials,Permitir Lista de Materiais
Allow Dropbox Access,Permitir Dropbox Acesso
Allow For Users,Laat Voor gebruikers
Allow Google Drive Access,Permitir acesso Google Drive
Allow Negative Balance,Permitir saldo negativo
Allow Negative Stock,Permitir estoque negativo
Allow Production Order,Permitir Ordem de Produção
Allow User,Permitir que o usuário
Allow Users,Permitir que os usuários
Allow the following users to approve Leave Applications for block days.,Permitir que os seguintes usuários para aprovar Deixe Applications para os dias de bloco.
Allow user to edit Price List Rate in transactions,Permitir ao usuário editar Lista de Preços Taxa em transações
Allowance Percent,Percentual subsídio
Allowed Role to Edit Entries Before Frozen Date,Toegestaan ​​Rol te bewerken items voor Frozen Datum
Always use above Login Id as sender,Gebruik altijd boven Inloggen Id als afzender
Amended From,Alterado De
Amount,Quantidade
Amount (Company Currency),Amount (Moeda Company)
Amount <=,Quantidade &lt;=
Amount >=,Quantidade&gt; =
Amount to Bill,Neerkomen op Bill
Analytics,Analítica
Another Period Closing Entry,Een ander Periode sluitpost
Another Salary Structure '%s' is active for employee '%s'. Please make its status 'Inactive' to proceed.,Een andere salarisstructuur ' % s' is actief voor werknemer ' % s' . Maak dan de status ' Inactief ' om verder te gaan .
"Any other comments, noteworthy effort that should go in the records.","Quaisquer outros comentários, esforço notável que deve ir para os registros."
Applicable Holiday List,Lista de férias aplicável
Applicable Territory,Toepasselijk Territory
Applicable To (Designation),Para aplicável (Designação)
Applicable To (Employee),Para aplicável (Employee)
Applicable To (Role),Para aplicável (Papel)
Applicable To (User),Para aplicável (Usuário)
Applicant Name,Nome do requerente
Applicant for a Job,Candidato a um emprego
Applicant for a Job.,Candidato a um emprego.
Applications for leave.,Os pedidos de licença.
Applies to Company,Aplica-se a Empresa
Apply / Approve Leaves,Aplicar / Aprovar Folhas
Appraisal,Avaliação
Appraisal Goal,Meta de avaliação
Appraisal Goals,Metas de avaliação
Appraisal Template,Modelo de avaliação
Appraisal Template Goal,Meta Modelo de avaliação
Appraisal Template Title,Título do modelo de avaliação
Approval Status,Status de Aprovação
Approved,Aprovado
Approver,Aprovador
Approving Role,Aprovar Papel
Approving User,Aprovar Usuário
Are you sure you want to STOP ,
Are you sure you want to UNSTOP ,
Arrear Amount,Quantidade atraso
"As Production Order can be made for this item, \
				it must be a stock item.",
As existing qty for item: ,Como qty existente para o item:
As per Stock UOM,Como por Banco UOM
"As there are existing stock transactions for this item, you can not change the values of 'Has Serial No', 'Is Stock Item' and 'Valuation Method'","Want er zijn bestaande voorraad transacties voor dit artikel , kunt u de waarden van ' Has Serial No ' niet veranderen , ' Is Stock Item ' en ' Valuation Method '"
Atleast one warehouse is mandatory,Pelo menos um armazém é obrigatório
Attendance,Comparecimento
Attendance Date,Data de atendimento
Attendance Details,Detalhes atendimento
Attendance From Date,Presença de Data
Attendance From Date and Attendance To Date is mandatory,Aanwezigheid Van Datum en tot op heden opkomst is verplicht
Attendance To Date,Atendimento para a data
Attendance can not be marked for future dates,Atendimento não pode ser marcado para datas futuras
Attendance for the employee: ,Atendimento para o empregado:
Attendance record.,Recorde de público.
Authorization Control,Controle de autorização
Authorization Rule,Regra autorização
Auto Accounting For Stock Settings,Auto Accounting Voor Stock Instellingen
Auto Email Id,Email Id Auto
Auto Material Request,Pedido de material Auto
Auto-raise Material Request if quantity goes below re-order level in a warehouse,Auto-raise pedido se se a quantidade for inferior a nível re-order em um armazém
Automatically extract Job Applicants from a mail box ,
Automatically extract Leads from a mail box e.g.,Leads automatisch extraheren uit een brievenbus bijv.
Automatically updated via Stock Entry of type Manufacture/Repack,Atualizado automaticamente através da entrada de Fabricação tipo / Repack
Autoreply when a new mail is received,Autoreply quando um novo e-mail é recebido
Available,beschikbaar
Available Qty at Warehouse,Qtde Disponível em Armazém
Available Stock for Packing Items,Estoque disponível para embalagem itens
"Available in 
BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet",
Average Age,Gemiddelde Leeftijd
Average Commission Rate,Gemiddelde Commissie Rate
Average Discount,Desconto médio
B+,B +
B-,B-
BILL,BILL
BILLJ,BILLJ
BOM,BOM
BOM Detail No,BOM nenhum detalhe
BOM Explosion Item,BOM item explosão
BOM Item,Item BOM
BOM No,BOM Não
BOM No. for a Finished Good Item,BOM Não. para um item acabado
BOM Operation,Operação BOM
BOM Operations,Operações BOM
BOM Replace Tool,BOM Ferramenta Substituir
BOM replaced,BOM substituído
Backup Manager,Backup Manager
Backup Right Now,Faça backup Right Now
Backups will be uploaded to,Backups serão enviados para
Balance Qty,Balance Aantal
Balance Value,Balance Waarde
"Balances of Accounts of type ""Bank or Cash""",Saldos das contas do tipo &quot;bancária ou dinheiro&quot;
Bank,Banco
Bank A/C No.,Bank A / C N º
Bank Account,Conta bancária
Bank Account No.,Banco Conta N º
Bank Accounts,bankrekeningen
Bank Clearance Summary,Banco Resumo Clearance
Bank Name,Nome do banco
Bank Reconciliation,Banco Reconciliação
Bank Reconciliation Detail,Banco Detalhe Reconciliação
Bank Reconciliation Statement,Declaração de reconciliação bancária
Bank Voucher,Vale banco
Bank or Cash,Banco ou Caixa
Bank/Cash Balance,Banco / Saldo de Caixa
Barcode,Código de barras
Based On,Baseado em
Basic Info,Informações Básicas
Basic Information,Informações Básicas
Basic Rate,Taxa Básica
Basic Rate (Company Currency),Taxa Básica (Moeda Company)
Batch,Fornada
Batch (lot) of an Item.,Batch (lote) de um item.
Batch Finished Date,Terminado lote Data
Batch ID,Lote ID
Batch No,No lote
Batch Started Date,Iniciado lote Data
Batch Time Logs for Billing.,Tempo lote Logs para o faturamento.
Batch Time Logs for billing.,Tempo lote Logs para o faturamento.
Batch-Wise Balance History,Por lotes História Balance
Batched for Billing,Agrupadas para Billing
"Before proceeding, please create Customer from Lead","Alvorens verder te gaan , maak Klant van Lead"
Better Prospects,Melhores perspectivas
Bill Date,Data Bill
Bill No,Projeto de Lei n
Bill of Material to be considered for manufacturing,Lista de Materiais a serem considerados para a fabricação
Bill of Materials,Lista de Materiais
Bill of Materials (BOM),Lista de Materiais (BOM)
Billable,Faturável
Billed,Faturado
Billed Amount,gefactureerde bedrag
Billed Amt,Faturado Amt
Billing,Faturamento
Billing Address,Endereço de Cobrança
Billing Address Name,Faturamento Nome Endereço
Billing Status,Estado de faturamento
Bills raised by Suppliers.,Contas levantada por Fornecedores.
Bills raised to Customers.,Contas levantou a Clientes.
Bin,Caixa
Bio,Bio
Birthday,verjaardag
Block Date,Bloquear Data
Block Days,Dias bloco
Block Holidays on important days.,Bloquear feriados em dias importantes.
Block leave applications by department.,Bloquear deixar aplicações por departamento.
Blog Post,Blog Mensagem
Blog Subscriber,Assinante Blog
Blood Group,Grupo sanguíneo
Both Income and Expense balances are zero. No Need to make Period Closing Entry.,Zowel Inkomsten en uitgaven saldi nul . No Need to Periode sluitpost te maken.
Both Warehouse must belong to same Company,Beide Warehouse moeten behoren tot dezelfde Company
Branch,Ramo
Brand,Marca
Brand Name,Marca
Brand master.,Mestre marca.
Brands,Marcas
Breakdown,Colapso
Budget,Orçamento
Budget Allocated,Orçamento alocado
Budget Detail,Detalhe orçamento
Budget Details,Detalhes Orçamento
Budget Distribution,Distribuição orçamento
Budget Distribution Detail,Detalhe Distribuição orçamento
Budget Distribution Details,Distribuição Detalhes Orçamento
Budget Variance Report,Relatório Variance Orçamento
Build Report,Build Report
Bulk Rename,bulk Rename
Bummer! There are more holidays than working days this month.,Bummer! Há mais feriados do que dias úteis deste mês.
Bundle items at time of sale.,Bundle itens no momento da venda.
Buyer of Goods and Services.,Comprador de Mercadorias e Serviços.
Buying,Comprar
Buying Amount,Comprar Valor
Buying Settings,Comprar Configurações
By,Por
C-FORM/,C-FORM /
C-Form,C-Form
C-Form Applicable,C-Form Aplicável
C-Form Invoice Detail,C-Form Detalhe Fatura
C-Form No,C-Forma Não
C-Form records,C -Form platen
CI/2010-2011/,CI/2010-2011 /
COMM-,COMM-
CUST,CUST
CUSTMUM,CUSTMUM
Calculate Based On,Calcule Baseado em
Calculate Total Score,Calcular a pontuação total
Calendar Events,Calendário de Eventos
Call,Chamar
Campaign,Campanha
Campaign Name,Nome da campanha
"Can not filter based on Account, if grouped by Account",Kan niet filteren op basis van account als gegroepeerd per account
"Can not filter based on Voucher No, if grouped by Voucher","Kan niet filteren op basis van Voucher Nee, als gegroepeerd per Voucher"
Cancelled,Cancelado
Cancelling this Stock Reconciliation will nullify its effect.,Annuleren van dit Stock Verzoening zal het effect teniet doen .
Cannot ,Não é possível
Cannot Cancel Opportunity as Quotation Exists,Kan niet annuleren Opportunity als Offerte Bestaat
Cannot approve leave as you are not authorized to approve leaves on Block Dates.,Não pode aprovar deixar que você não está autorizado a aprovar folhas em datas bloco.
Cannot change Year Start Date and Year End Date once the Fiscal Year is saved.,Kan Jaar Start datum en jaar Einddatum zodra het boekjaar wordt opgeslagen niet wijzigen .
Cannot continue.,Não pode continuar.
"Cannot declare as lost, because Quotation has been made.","Kan niet verklaren als verloren , omdat Offerte is gemaakt."
"Cannot delete Serial No in warehouse. \
				First remove from warehouse, then delete.",
Cannot set as Lost as Sales Order is made.,Kan niet ingesteld als Lost als Sales Order wordt gemaakt .
Capacity,Capacidade
Capacity Units,Unidades de capacidade
Carry Forward,Transportar
Carry Forwarded Leaves,Carry Folhas encaminhadas
Case No. cannot be 0,Zaak nr. mag geen 0
Cash,Numerário
Cash Voucher,Comprovante de dinheiro
Cash/Bank Account,Caixa / Banco Conta
Category,Categoria
Cell Number,Número de células
Change UOM for an Item.,Alterar UOM de um item.
Change the starting / current sequence number of an existing series.,Alterar o número de seqüência de partida / corrente de uma série existente.
Channel Partner,Parceiro de Canal
Charge,Carga
Chargeable,Imputável
Chart of Accounts,Plano de Contas
Chart of Cost Centers,Plano de Centros de Custo
Chat,Conversar
Check all the items below that you want to send in this digest.,Verifique todos os itens abaixo que você deseja enviar esta digerir.
Check for Duplicates,Controleren op duplicaten
Check how the newsletter looks in an email by sending it to your email.,Verifique como o boletim olha em um e-mail enviando-o para o seu e-mail.
"Check if recurring invoice, uncheck to stop recurring or put proper End Date","Verifique se factura recorrente, desmarque a parar recorrente ou colocar Data final adequada"
"Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.","Verifique se você precisa automáticos de facturas recorrentes. Depois de apresentar qualquer nota fiscal de venda, seção Recorrente será visível."
Check if you want to send salary slip in mail to each employee while submitting salary slip,Verifique se você quiser enviar folha de salário no correio a cada empregado ao enviar folha de salário
Check this if you want to force the user to select a series before saving. There will be no default if you check this.,"Marque esta opção se você deseja forçar o usuário para selecionar uma série antes de salvar. Não haverá nenhum padrão, se você verificar isso."
Check this if you want to send emails as this id only (in case of restriction by your email provider).,Marque esta opção se você quiser enviar e-mails como este só id (no caso de restrição pelo seu provedor de e-mail).
Check this if you want to show in website,Marque esta opção se você deseja mostrar no site
Check this to disallow fractions. (for Nos),Marque esta opção para não permitir frações. (Para n)
Check this to pull emails from your mailbox,Marque esta a puxar e-mails de sua caixa de correio
Check to activate,Marque para ativar
Check to make Shipping Address,Verifique para ter endereço de entrega
Check to make primary address,Verifique para ter endereço principal
Cheque,Cheque
Cheque Date,Data Cheque
Cheque Number,Número de cheques
City,Cidade
City/Town,Cidade / Município
Claim Amount,Quantidade reivindicação
Claims for company expense.,Os pedidos de despesa da empresa.
Class / Percentage,Classe / Percentual
Classic,Clássico
Classification of Customers by region,Classificação de clientes por região
Clear Table,Tabela clara
Clearance Date,Data de Liquidação
Click here to buy subscription.,Klik hier om een ​​abonnement aan te schaffen .
Click on 'Make Sales Invoice' button to create a new Sales Invoice.,Clique em &#39;Criar Fatura de vendas&#39; botão para criar uma nova factura de venda.
Click on a link to get options to expand get options ,
Client,Cliente
Close Balance Sheet and book Profit or Loss.,Sluiten Balans en boek Winst of verlies .
Closed,Fechado
Closing Account Head,Fechando Chefe Conta
Closing Date,Data de Encerramento
Closing Fiscal Year,Encerramento do exercício social
Closing Qty,closing Aantal
Closing Value,eindwaarde
CoA Help,Ajuda CoA
Cold Calling,Cold Calling
Color,Cor
Comma separated list of email addresses,Lista separada por vírgulas de endereços de e-mail
Comments,Comentários
Commission Rate,Taxa de Comissão
Commission Rate (%),Comissão Taxa (%)
Commission partners and targets,Parceiros da Comissão e metas
Commit Log,commit Inloggen
Communication,Comunicação
Communication HTML,Comunicação HTML
Communication History,História da comunicação
Communication Medium,Meio de comunicação
Communication log.,Log de comunicação.
Communications,communicatie
Company,Companhia
Company Abbreviation,bedrijf Afkorting
Company Details,Detalhes da empresa
Company Email,bedrijf E-mail
Company Info,Informações da empresa
Company Master.,Mestre Company.
Company Name,Nome da empresa
Company Settings,Configurações da empresa
Company branches.,Filiais da empresa.
Company departments.,Departamentos da empresa.
Company is missing in following warehouses,Bedrijf ontbreekt in volgende magazijnen
Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Números da empresa de registro para sua referência. Exemplo: IVA números de matrícula etc
Company registration numbers for your reference. Tax numbers etc.,"Números da empresa de registro para sua referência. Números fiscais, etc"
"Company, Month and Fiscal Year is mandatory","Bedrijf , maand en het fiscale jaar is verplicht"
Complaint,Reclamação
Complete,Completar
Completed,Concluído
Completed Production Orders,Voltooide productieorders
Completed Qty,Concluído Qtde
Completion Date,Data de Conclusão
Completion Status,Status de conclusão
Confirmation Date,bevestiging Datum
Confirmed orders from Customers.,Confirmado encomendas de clientes.
Consider Tax or Charge for,Considere imposto ou encargo para
Considered as Opening Balance,Considerado como Saldo
Considered as an Opening Balance,Considerado como um saldo de abertura
Consultant,Consultor
Consumable Cost,verbruiksartikelen Cost
Consumable cost per hour,Verbruiksartikelen kosten per uur
Consumed Qty,Qtde consumida
Contact,Contato
Contact Control,Fale Controle
Contact Desc,Contato Descr
Contact Details,Contacto
Contact Email,Contato E-mail
Contact HTML,Contato HTML
Contact Info,Informações para contato
Contact Mobile No,Contato móveis não
Contact Name,Nome de Contato
Contact No.,Fale Não.
Contact Person,Pessoa de contato
Contact Type,Tipo de Contato
Content,Conteúdo
Content Type,Tipo de conteúdo
Contra Voucher,Vale Contra
Contract End Date,Data final do contrato
Contribution (%),Contribuição (%)
Contribution to Net Total,Contribuição para o Total Líquido
Conversion Factor,Fator de Conversão
Conversion Factor of UOM: %s should be equal to 1. As UOM: %s is Stock UOM of Item: %s.,Omrekeningsfactor van Verpakking: % s moet gelijk zijn aan 1 . Zoals Verpakking: % s is Stock Verpakking van het object: % s .
Convert into Recurring Invoice,Converter em fatura Recorrente
Convert to Group,Converteren naar Groep
Convert to Ledger,Converteren naar Ledger
Converted,Convertido
Copy From Item Group,Copiar do item do grupo
Cost Center,Centro de Custos
Cost Center Details,Custo Detalhes Centro
Cost Center Name,Custo Nome Centro
Cost Center must be specified for PL Account: ,Centro de Custo deve ser especificado para a Conta PL:
Costing,Custeio
Country,País
Country Name,Nome do País
"Country, Timezone and Currency","Country , Tijdzone en Valuta"
Create,Criar
Create Bank Voucher for the total salary paid for the above selected criteria,Criar Vale do Banco Mundial para o salário total pago para os critérios acima selecionados
Create Customer,Maak de klant
Create Material Requests,Criar Pedidos de Materiais
Create New,Create New
Create Opportunity,Maak Opportunity
Create Production Orders,Criar ordens de produção
Create Quotation,Maak Offerte
Create Receiver List,Criar Lista de Receptor
Create Salary Slip,Criar folha de salário
Create Stock Ledger Entries when you submit a Sales Invoice,Criar entradas da Razão quando você enviar uma fatura de vendas
Create and Send Newsletters,Criar e enviar Newsletters
Created Account Head: ,Chefe da conta:
Created By,Criado por
Created Customer Issue,Problema do cliente criado
Created Group ,Criado Grupo
Created Opportunity,Criado Oportunidade
Created Support Ticket,Ticket Suporte criado
Creates salary slip for above mentioned criteria.,Cria folha de salário para os critérios acima mencionados.
Creation Date,aanmaakdatum
Creation Document No,Creatie Document No
Creation Document Type,Type het maken van documenten
Creation Time,Aanmaaktijd
Credentials,Credenciais
Credit,Crédito
Credit Amt,Crédito Amt
Credit Card Voucher,Comprovante do cartão de crédito
Credit Controller,Controlador de crédito
Credit Days,Dias de crédito
Credit Limit,Limite de Crédito
Credit Note,Nota de Crédito
Credit To,Para crédito
Credited account (Customer) is not matching with Sales Invoice,Gecrediteerd rekening ( klant ) is niet matching met verkoopfactuur
Cross Listing of Item in multiple groups,Atravesse de Listagem do item em vários grupos
Currency,Moeda
Currency Exchange,Câmbio
Currency Name,Nome da Moeda
Currency Settings,Configurações Moeda
Currency and Price List,Moeda e Preço
Currency is missing for Price List,Valuta ontbreekt voor prijslijst
Current Address,Endereço Atual
Current Address Is,Huidige adres wordt
Current BOM,BOM atual
Current Fiscal Year,Atual Exercício
Current Stock,Estoque atual
Current Stock UOM,UOM Estoque atual
Current Value,Valor Atual
Custom,Personalizado
Custom Autoreply Message,Mensagem de resposta automática personalizada
Custom Message,Mensagem personalizada
Customer,Cliente
Customer (Receivable) Account,Cliente (receber) Conta
Customer / Item Name,Cliente / Nome do item
Customer / Lead Address,Klant / Lead Adres
Customer Account Head,Cliente Cabeça Conta
Customer Acquisition and Loyalty,Klantenwerving en Loyalty
Customer Address,Endereço do cliente
Customer Addresses And Contacts,Endereços e contatos de clientes
Customer Code,Código Cliente
Customer Codes,Códigos de clientes
Customer Details,Detalhes do cliente
Customer Discount,Discount cliente
Customer Discounts,Descontos a clientes
Customer Feedback,Comentário do cliente
Customer Group,Grupo de Clientes
Customer Group / Customer,Customer Group / Klantenservice
Customer Group Name,Nome do grupo de clientes
Customer Intro,Cliente Intro
Customer Issue,Edição cliente
Customer Issue against Serial No.,Emissão cliente contra Serial No.
Customer Name,Nome do cliente
Customer Naming By,Cliente de nomeação
Customer classification tree.,Árvore de classificação do cliente.
Customer database.,Banco de dados do cliente.
Customer's Item Code,Código do Cliente item
Customer's Purchase Order Date,Do Cliente Ordem de Compra Data
Customer's Purchase Order No,Ordem de Compra do Cliente Não
Customer's Purchase Order Number,Klant Inkoopordernummer
Customer's Vendor,Vendedor cliente
Customers Not Buying Since Long Time,Os clientes não compra desde há muito tempo
Customerwise Discount,Desconto Customerwise
Customization,maatwerk
Customize the Notification,Personalize a Notificação
Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Personalize o texto introdutório que vai como uma parte do que e-mail. Cada transação tem um texto separado introdutório.
DN,DN
DN Detail,Detalhe DN
Daily,Diário
Daily Time Log Summary,Resumo Diário Log Tempo
Data Import,gegevens importeren
Database Folder ID,ID Folder Database
Database of potential customers.,Banco de dados de clientes potenciais.
Date,Data
Date Format,Formato de data
Date Of Retirement,Data da aposentadoria
Date and Number Settings,Data e número Configurações
Date is repeated,Data é repetido
Date of Birth,Data de Nascimento
Date of Issue,Data de Emissão
Date of Joining,Data da Unir
Date on which lorry started from supplier warehouse,Data em que o camião começou a partir de armazém fornecedor
Date on which lorry started from your warehouse,Data em que o camião começou a partir de seu armazém
Dates,Datas
Days Since Last Order,Dagen sinds vorige Bestel
Days for which Holidays are blocked for this department.,Dias para que feriados são bloqueados para este departamento.
Dealer,Revendedor
Debit,Débito
Debit Amt,Débito Amt
Debit Note,Nota de Débito
Debit To,Para débito
Debit and Credit not equal for this voucher: Diff (Debit) is ,
Debit or Credit,Débito ou crédito
Debited account (Supplier) is not matching with Purchase Invoice,Gedebiteerd rekening ( Leverancier ) wordt niet matching met Purchase Invoice
Deduct,Subtrair
Deduction,Dedução
Deduction Type,Tipo de dedução
Deduction1,Deduction1
Deductions,Deduções
Default,Omissão
Default Account,Conta Padrão
Default BOM,BOM padrão
Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,Conta padrão Banco / Cash será atualizado automaticamente na fatura POS quando este modo for selecionado.
Default Bank Account,Conta Bancária Padrão
Default Buying Price List,Standaard Buying Prijslijst
Default Cash Account,Conta Caixa padrão
Default Company,Empresa padrão
Default Cost Center,Centro de Custo Padrão
Default Cost Center for tracking expense for this item.,Centro de Custo padrão para controle de despesas para este item.
Default Currency,Moeda padrão
Default Customer Group,Grupo de Clientes padrão
Default Expense Account,Conta Despesa padrão
Default Income Account,Conta Rendimento padrão
Default Item Group,Grupo Item padrão
Default Price List,Lista de Preços padrão
Default Purchase Account in which cost of the item will be debited.,Conta de compra padrão em que o custo do item será debitado.
Default Settings,Predefinições
Default Source Warehouse,Armazém da fonte padrão
Default Stock UOM,Padrão da UOM
Default Supplier,Fornecedor padrão
Default Supplier Type,Tipo de fornecedor padrão
Default Target Warehouse,Armazém alvo padrão
Default Territory,Território padrão
Default UOM updated in item ,
Default Unit of Measure,Unidade de medida padrão
"Default Unit of Measure can not be changed directly because you have already made some transaction(s) with another UOM. To change default UOM, use 'UOM Replace Utility' tool under Stock module.","Standaard meeteenheid kan niet direct worden veranderd , omdat je al enkele transactie (s ) heeft gemaakt met een andere Verpakking . Om standaard Verpakking wijzigen, gebruikt ' Verpakking Vervang Utility ' hulpmiddel onder Stock module ."
Default Valuation Method,Método de Avaliação padrão
Default Warehouse,Armazém padrão
Default Warehouse is mandatory for Stock Item.,Armazém padrão é obrigatório para Banco de Item.
Default settings for Shopping Cart,As configurações padrão para Carrinho de Compras
"Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>","Definir Orçamento para este Centro de Custo. Para definir ação do orçamento, consulte <a href=""#!List/Company"">Mestre Empresa</a>"
Delete,Excluir
Delivered,Entregue
Delivered Items To Be Billed,Itens entregues a ser cobrado
Delivered Qty,Qtde entregue
Delivered Serial No ,
Delivery Date,Data de entrega
Delivery Details,Detalhes da entrega
Delivery Document No,Documento de Entrega Não
Delivery Document Type,Tipo de Documento de Entrega
Delivery Note,Guia de remessa
Delivery Note Item,Item Nota de Entrega
Delivery Note Items,Nota Itens de entrega
Delivery Note Message,Mensagem Nota de Entrega
Delivery Note No,Nota de Entrega Não
Delivery Note Required,Nota de Entrega Obrigatório
Delivery Note Trends,Nota de entrega Trends
Delivery Status,Estado entrega
Delivery Time,Prazo de entrega
Delivery To,Entrega
Department,Departamento
Depends on LWP,Depende LWP
Description,Descrição
Description HTML,Descrição HTML
Description of a Job Opening,Descrição de uma vaga de emprego
Designation,Designação
Detailed Breakup of the totals,Breakup detalhada dos totais
Details,Detalhes
Difference,Diferença
Difference Account,verschil Account
Different UOM for items will lead to incorrect,Verschillende Verpakking voor items zal leiden tot een onjuiste
Disable Rounded Total,Desativar total arredondado
Discount  %,% De desconto
Discount %,% De desconto
Discount (%),Desconto (%)
"Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice","Campos de desconto estará disponível em Ordem de Compra, Recibo de Compra, Nota Fiscal de Compra"
Discount(%),Desconto (%)
Display all the individual items delivered with the main items,Exibir todos os itens individuais entregues com os principais itens
Distinct unit of an Item,Unidade distinta de um item
Distribute transport overhead across items.,Distribua por cima o transporte através itens.
Distribution,Distribuição
Distribution Id,Id distribuição
Distribution Name,Nome de distribuição
Distributor,Distribuidor
Divorced,Divorciado
Do Not Contact,Neem geen contact op
Do not show any symbol like $ etc next to currencies.,Não mostrar qualquer símbolo como US $ etc ao lado de moedas.
Do you really want to STOP ,
Do you really want to STOP this Material Request?,Wil je echt wilt dit materiaal afbreken ?
Do you really want to Submit all Salary Slip for month : ,
Do you really want to UNSTOP ,
Do you really want to UNSTOP this Material Request?,Wil je echt wilt dit materiaal aanvragen opendraaien ?
Doc Name,Nome Doc
Doc Type,Tipo Doc
Document Description,Descrição documento
Document Type,Tipo de Documento
Documentation,Documentação
Documents,Documentos
Domain,Domínio
Don't send Employee Birthday Reminders,Stuur geen Werknemer verjaardagsherinneringen
Download Materials Required,Baixe Materiais Necessários
Download Reconcilation Data,Download Verzoening gegevens
Download Template,Baixe Template
Download a report containing all raw materials with their latest inventory status,Baixe um relatório contendo todas as matérias-primas com o seu estado mais recente inventário
"Download the Template, fill appropriate data and attach the modified file.","Baixe o modelo , preencha os dados apropriados e anexe o arquivo modificado."
"Download the Template, fill appropriate data and attach the modified file.
All dates and employee combination in the selected period will come in the template, with existing attendance records",
Draft,Rascunho
Dropbox,Dropbox
Dropbox Access Allowed,Dropbox acesso permitido
Dropbox Access Key,Dropbox Chave de Acesso
Dropbox Access Secret,Dropbox acesso secreta
Due Date,Data de Vencimento
Duplicate Item,dupliceren Item
EMP/,EMP /
ERPNext Setup,ERPNext Setup
ERPNext Setup Guide,ERPNext installatiehandleiding
"ERPNext is an open-source web based ERP made by Web Notes Technologies Pvt Ltd. to provide an integrated tool to manage most processes in a small organization. For more information about Web Notes, or to buy hosting servies, go to ",
ESIC CARD No,CARTÃO ESIC Não
ESIC No.,ESIC Não.
Earliest,vroegste
Earning,Ganhando
Earning & Deduction,Ganhar &amp; Dedução
Earning Type,Ganhando Tipo
Earning1,Earning1
Edit,Editar
Educational Qualification,Qualificação Educacional
Educational Qualification Details,Detalhes educacionais de qualificação
Eg. smsgateway.com/api/send_sms.cgi,Por exemplo. smsgateway.com / api / send_sms.cgi
Electricity Cost,elektriciteitskosten
Electricity cost per hour,Kosten elektriciteit per uur
Email,E-mail
Email Digest,E-mail Digest
Email Digest Settings,E-mail Digest Configurações
Email Digest: ,
Email Id,Id e-mail
"Email Id must be unique, already exists for: ","Id e-mail deve ser único, já existe para:"
"Email Id where a job applicant will email e.g. ""jobs@example.com""",Id e-mail onde um candidato a emprego vai enviar e-mail &quot;jobs@example.com&quot; por exemplo
Email Sent?,E-mail enviado?
Email Settings,Configurações de e-mail
Email Settings for Outgoing and Incoming Emails.,Configurações de e-mail para e-mails enviados e recebidos.
Email ids separated by commas.,Ids e-mail separados por vírgulas.
"Email settings for jobs email id ""jobs@example.com""",Configurações de e-mail para e-mail empregos id &quot;jobs@example.com&quot;
"Email settings to extract Leads from sales email id e.g. ""sales@example.com""","Configurações de e-mail para extrair Leads de vendas de e-mail, por exemplo ID &quot;sales@example.com&quot;"
Emergency Contact,Emergency Contact
Emergency Contact Details,Detalhes de contato de emergência
Emergency Phone,Emergency Phone
Employee,Empregado
Employee Birthday,Aniversário empregado
Employee Designation.,Designação empregado.
Employee Details,Detalhes do Funcionários
Employee Education,Educação empregado
Employee External Work History,Empregado história de trabalho externo
Employee Information,Informações do Funcionário
Employee Internal Work History,Empregado História Trabalho Interno
Employee Internal Work Historys,Historys funcionário interno de trabalho
Employee Leave Approver,Empregado Leave Approver
Employee Leave Balance,Empregado Leave Balance
Employee Name,Nome do Funcionário
Employee Number,Número empregado
Employee Records to be created by,Empregado Records para ser criado por
Employee Settings,werknemer Instellingen
Employee Setup,Configuração empregado
Employee Type,Tipo de empregado
Employee grades,Notas de funcionários
Employee record is created using selected field. ,Registro de empregado é criado usando o campo selecionado.
Employee records.,Registros de funcionários.
Employee: ,Funcionário:
Employees Email Id,Funcionários ID e-mail
Employment Details,Detalhes de emprego
Employment Type,Tipo de emprego
Enable / Disable Email Notifications,Inschakelen / uitschakelen Email Notificaties
Enable Shopping Cart,Ativar Carrinho de Compras
Enabled,Habilitado
Encashment Date,Data cobrança
End Date,Data final
End date of current invoice's period,Data final do período de fatura atual
End of Life,Fim da Vida
Enter Row,Digite Row
Enter Verification Code,Digite o Código de Verificação
Enter campaign name if the source of lead is campaign.,Digite o nome da campanha que a fonte de chumbo é a campanha.
Enter department to which this Contact belongs,Entre com o departamento a que pertence este contato
Enter designation of this Contact,Digite designação de este contato
"Enter email id separated by commas, invoice will be mailed automatically on particular date","Digite o ID de e-mail separados por vírgulas, a fatura será enviada automaticamente em determinada data"
Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.,Digite itens e qty planejada para o qual você quer levantar ordens de produção ou fazer o download de matérias-primas para a análise.
Enter name of campaign if source of enquiry is campaign,Digite o nome da campanha se fonte de pesquisa é a campanha
"Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)","Digite os parâmetros URL estática aqui (por exemplo remetente = ERPNext, username = ERPNext, password = 1234, etc)"
Enter the company name under which Account Head will be created for this Supplier,Digite o nome da empresa em que Chefe da conta será criada para este fornecedor
Enter url parameter for message,Digite o parâmetro url para mensagem
Enter url parameter for receiver nos,Digite o parâmetro url para nn receptor
Entries,Entradas
Entries against,inzendingen tegen
Entries are not allowed against this Fiscal Year if the year is closed.,Entradas não são permitidos contra este Ano Fiscal se o ano está fechada.
Error,Erro
Error for,Erro para
Estimated Material Cost,Custo de Material estimada
Everyone can read,Todo mundo pode ler
"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.",
Exchange Rate,Taxa de Câmbio
Excise Page Number,Número de página especial sobre o consumo
Excise Voucher,Vale especiais de consumo
Exemption Limit,Limite de isenção
Exhibition,Exposição
Existing Customer,Cliente existente
Exit,Sair
Exit Interview Details,Sair Detalhes Entrevista
Expected,Esperado
Expected Date cannot be before Material Request Date,Verwachte datum kan niet voor de Material Aanvraagdatum
Expected Delivery Date,Data de entrega prevista
Expected End Date,Data final esperado
Expected Start Date,Data de Início do esperado
Expense Account,Conta Despesa
Expense Account is mandatory,Conta de despesa é obrigatória
Expense Claim,Relatório de Despesas
Expense Claim Approved,Relatório de Despesas Aprovado
Expense Claim Approved Message,Relatório de Despesas Aprovado Mensagem
Expense Claim Detail,Detalhe de Despesas
Expense Claim Details,Reivindicação detalhes da despesa
Expense Claim Rejected,Relatório de Despesas Rejeitado
Expense Claim Rejected Message,Relatório de Despesas Rejeitado Mensagem
Expense Claim Type,Tipo de reembolso de despesas
Expense Claim has been approved.,Declaratie is goedgekeurd .
Expense Claim has been rejected.,Declaratie is afgewezen .
Expense Claim is pending approval. Only the Expense Approver can update status.,Declaratie is in afwachting van goedkeuring . Alleen de Expense Approver kan status bijwerken .
Expense Date,Data despesa
Expense Details,Detalhes despesas
Expense Head,Chefe despesa
Expense account is mandatory for item,Kostenrekening is verplicht voor punt
Expense/Difference account is mandatory for item: ,
Expenses Booked,Despesas Reservado
Expenses Included In Valuation,Despesas incluídos na avaliação
Expenses booked for the digest period,Despesas reservadas para o período digest
Expiry Date,Data de validade
Exports,Exportações
External,Externo
Extract Emails,Extrair e-mails
FCFS Rate,Taxa FCFS
FIFO,FIFO
Failed: ,Falha:
Family Background,Antecedentes familiares
Fax,Fax
Features Setup,Configuração características
Feed,Alimentar
Feed Type,Tipo de feed
Feedback,Comentários
Female,Feminino
Fetch exploded BOM (including sub-assemblies),Fetch ontplofte BOM ( inclusief onderdelen )
"Field available in Delivery Note, Quotation, Sales Invoice, Sales Order","Campo disponível na nota de entrega, cotação, nota fiscal de venda, Ordem de vendas"
Files Folder ID,Arquivos de ID de pasta
Fill the form and save it,Vul het formulier in en sla het
Filter By Amount,Filtrar por Quantidade
Filter By Date,Filtrar por data
Filter based on customer,Filtrar baseado em cliente
Filter based on item,Filtrar com base no item
Financial Analytics,Análise Financeira
Financial Statements,Demonstrações Financeiras
Finished Goods,afgewerkte producten
First Name,Nome
First Responded On,Primeiro respondeu em
Fiscal Year,Exercício fiscal
Fixed Asset Account,Conta de ativo fixo
Float Precision,Flutuante de precisão
Follow via Email,Siga por e-mail
"Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items.",Após tabela mostrará valores se os itens são sub - contratada. Estes valores serão obtidos a partir do mestre de &quot;Bill of Materials&quot; de sub - itens contratados.
For Company,Para a Empresa
For Employee,Para Empregado
For Employee Name,Para Nome do Funcionário
For Production,Para Produção
For Reference Only.,Apenas para referência.
For Sales Invoice,Para fatura de vendas
For Server Side Print Formats,Para o lado do servidor de impressão Formatos
For Supplier,voor Leverancier
For UOM,Para UOM
For Warehouse,Para Armazém
"For e.g. 2012, 2012-13","Para por exemplo 2012, 2012-13"
For opening balance entry account can not be a PL account,Para a abertura de conta de entrada saldo não pode ser uma conta de PL
For reference,Para referência
For reference only.,Apenas para referência.
"For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes","Para a comodidade dos clientes, estes códigos podem ser usados ​​em formatos de impressão, como facturas e guias de entrega"
Forum,Fórum
Fraction,Fração
Fraction Units,Unidades fração
Freeze Stock Entries,Congelar da Entries
Friday,Sexta-feira
From,De
From Bill of Materials,De Bill of Materials
From Company,Da Empresa
From Currency,De Moeda
From Currency and To Currency cannot be same,De Moeda e Para Moeda não pode ser o mesmo
From Customer,Do Cliente
From Customer Issue,Van Customer Issue
From Date,A partir da data
From Delivery Note,De Nota de Entrega
From Employee,De Empregado
From Lead,De Chumbo
From Maintenance Schedule,Van onderhoudsschema
From Material Request,Van Materiaal Request
From Opportunity,van Opportunity
From Package No.,De No. Package
From Purchase Order,Da Ordem de Compra
From Purchase Receipt,De Recibo de compra
From Quotation,van Offerte
From Sales Order,Da Ordem de Vendas
From Supplier Quotation,Van Leverancier Offerte
From Time,From Time
From Value,De Valor
From Value should be less than To Value,Do valor deve ser inferior a de Valor
Frozen,Congelado
Frozen Accounts Modifier,Bevroren rekeningen Modifikatie
Fulfilled,Cumprido
Full Name,Nome Completo
Fully Completed,Totalmente concluída
"Further accounts can be made under Groups,","Nadere accounts kunnen worden gemaakt onder groepen,"
Further nodes can be only created under 'Group' type nodes,Verder nodes kunnen alleen worden gemaakt op grond van het type nodes 'Groep'
GL Entry,Entrada GL
GL Entry: Debit or Credit amount is mandatory for ,GL Entrada: Débito ou crédito montante é obrigatória para
GRN,GRN
Gantt Chart,Gantt
Gantt chart of all tasks.,Gantt de todas as tarefas.
Gender,Sexo
General,Geral
General Ledger,General Ledger
Generate Description HTML,Gerar Descrição HTML
Generate Material Requests (MRP) and Production Orders.,Gerar Pedidos de Materiais (MRP) e ordens de produção.
Generate Salary Slips,Gerar folhas de salários
Generate Schedule,Gerar Agende
"Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Gerar comprovantes de entrega de pacotes a serem entregues. Usado para notificar número do pacote, o conteúdo do pacote e seu peso."
Generates HTML to include selected image in the description,Gera HTML para incluir imagem selecionada na descrição
Get Advances Paid,Obter adiantamentos pagos
Get Advances Received,Obter adiantamentos recebidos
Get Current Stock,Obter Estoque atual
Get Items,Obter itens
Get Items From Sales Orders,Obter itens de Pedidos de Vendas
Get Items from BOM,Items ophalen van BOM
Get Last Purchase Rate,Obter Tarifa de Compra Última
Get Non Reconciled Entries,Obter entradas não Reconciliados
Get Outstanding Invoices,Obter faturas pendentes
Get Sales Orders,Obter Pedidos de Vendas
Get Specification Details,Obtenha detalhes Especificação
Get Stock and Rate,Obter Estoque e Taxa de
Get Template,Obter modelo
Get Terms and Conditions,Obter os Termos e Condições
Get Weekly Off Dates,Obter semanal Datas Off
"Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Obter taxa de valorização e estoque disponível na origem / destino em armazém mencionado postagem data e hora. Se serializado item, prima este botão depois de entrar n º s de série."
GitHub Issues,GitHub Issues
Global Defaults,Padrões globais
Global Settings / Default Values,Global Settings / Default Values
Go to the appropriate group (usually Application of Funds > Current Assets > Bank Accounts),Ga naar de desbetreffende groep ( meestal Toepassing van Fondsen> vlottende activa > Bank Accounts )
Go to the appropriate group (usually Source of Funds > Current Liabilities > Taxes and Duties),Ga naar de desbetreffende groep ( meestal bron van fondsen > kortlopende schulden > Belastingen en accijnzen )
Goal,Meta
Goals,Metas
Goods received from Suppliers.,Mercadorias recebidas de fornecedores.
Google Drive,Google Drive
Google Drive Access Allowed,Acesso Google Drive admitidos
Grade,Grau
Graduate,Pós-graduação
Grand Total,Total geral
Grand Total (Company Currency),Grande Total (moeda da empresa)
Gratuity LIC ID,ID LIC gratuidade
"Grid ""","Grid """
Gross Margin %,Margem Bruta%
Gross Margin Value,Valor Margem Bruta
Gross Pay,Salário bruto
Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,Salário bruto + Valor + Valor vencido cobrança - Dedução Total
Gross Profit,Lucro bruto
Gross Profit (%),Lucro Bruto (%)
Gross Weight,Peso bruto
Gross Weight UOM,UOM Peso Bruto
Group,Grupo
Group or Ledger,Grupo ou Ledger
Groups,Grupos
HR,HR
HR Settings,Configurações HR
HTML / Banner that will show on the top of product list.,HTML bandeira / que vai mostrar no topo da lista de produtos.
Half Day,Meio Dia
Half Yearly,Semestrais
Half-yearly,Semestral
Happy Birthday!,Happy Birthday!
Has Batch No,Não tem Batch
Has Child Node,Tem nó filho
Has Serial No,Não tem de série
Header,Cabeçalho
Heads (or groups) against which Accounting Entries are made and balances are maintained.,Chefes (ou grupos) contra o qual as entradas de contabilidade são feitas e os saldos são mantidos.
Health Concerns,Preocupações com a Saúde
Health Details,Detalhes saúde
Held On,Realizada em
Help,Ajudar
Help HTML,Ajuda HTML
"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")","Ajuda: Para vincular a outro registro no sistema, use &quot;# Form / Nota / [Nota Name]&quot; como a ligação URL. (Não use &quot;http://&quot;)"
"Here you can maintain family details like name and occupation of parent, spouse and children","Aqui você pode manter detalhes como o nome da família e ocupação do cônjuge, pai e filhos"
"Here you can maintain height, weight, allergies, medical concerns etc","Aqui você pode manter a altura, peso, alergias, etc preocupações médica"
Hey! All these items have already been invoiced.,Hey! Todos esses itens já foram faturados.
Hide Currency Symbol,Ocultar Símbolo de Moeda
High,Alto
History In Company,História In Company
Hold,Segurar
Holiday,Férias
Holiday List,Lista de feriado
Holiday List Name,Nome da lista férias
Holidays,Férias
Home,Casa
Host,Anfitrião
"Host, Email and Password required if emails are to be pulled",E-mail host e senha necessária se e-mails devem ser puxado
Hour Rate,Taxa de hora
Hour Rate Labour,A taxa de hora
Hours,Horas
How frequently?,Com que freqüência?
"How should this currency be formatted? If not set, will use system defaults","Como deve ser essa moeda ser formatado? Se não for definido, vai usar padrões do sistema"
Human Resource,Human Resource
I,Eu
IDT,IDT
II,II
III,III
IN,EM
INV,INV
INV/10-11/,INV/10-11 /
ITEM,ITEM
IV,IV
Identification of the package for the delivery (for print),Identificação do pacote para a entrega (para impressão)
If Income or Expense,Se a renda ou Despesa
If Monthly Budget Exceeded,Se o orçamento mensal excedido
"If Sale BOM is defined, the actual BOM of the Pack is displayed as table.
Available in Delivery Note and Sales Order",
"If Supplier Part Number exists for given Item, it gets stored here","Se Número da peça de Fornecedor existe para determinado item, ele fica armazenado aqui"
If Yearly Budget Exceeded,Se orçamento anual excedido
"If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","Se selecionado, o BOM para a sub-montagem itens serão considerados para obter matérias-primas. Caso contrário, todos os itens de sub-montagem vai ser tratado como uma matéria-prima."
"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","Se marcado, não total. de dias de trabalho vai incluir férias, e isso vai reduzir o valor de salário por dia"
"If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.","Se marcado, um e-mail com formato HTML anexado será adicionado a uma parte do corpo do email, bem como anexo. Para enviar apenas como acessório, desmarque essa."
"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","Se selecionado, o valor do imposto será considerado como já incluído na tarifa Impressão / Quantidade de impressão"
"If disable, 'Rounded Total' field will not be visible in any transaction","Se desativar, &#39;Arredondado Total &quot;campo não será visível em qualquer transação"
"If enabled, the system will post accounting entries for inventory automatically.","Se ativado, o sistema irá postar lançamentos contábeis para o inventário automaticamente."
If more than one package of the same type (for print),Se mais do que uma embalagem do mesmo tipo (por impressão)
"If no change in either Quantity or Valuation Rate, leave the cell blank.","Als er geen wijziging optreedt Hoeveelheid of Valuation Rate , verlaat de cel leeg ."
If non standard port (e.g. 587),"Se a porta não padrão (por exemplo, 587)"
If not applicable please enter: NA,Se não for aplicável digite: NA
"If not checked, the list will have to be added to each Department where it has to be applied.","Se não for controlada, a lista deverá ser adicionado a cada departamento onde tem de ser aplicado."
"If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.","Se definido, a entrada de dados só é permitida para usuários especificados. Outra, a entrada é permitida para todos os usuários com permissões necessárias."
"If specified, send the newsletter using this email address","Se especificado, enviar a newsletter usando esse endereço de e-mail"
"If the account is frozen, entries are allowed to restricted users.","Als de account wordt gepauzeerd, blijven inzendingen mogen gebruikers met beperkte rechten ."
"If this Account represents a Customer, Supplier or Employee, set it here.","Se essa conta representa um cliente, fornecedor ou funcionário, configurá-lo aqui."
"If you follow Quality Inspection<br>
Enables item QA Required and QA No in Purchase Receipt",
If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity,Se você tiver Equipe de Vendas e Parceiros de Venda (Parceiros de Canal) podem ser marcadas e manter sua contribuição na atividade de vendas
"If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.","Se você criou um modelo padrão no Imposto de Compra e Master Encargos, selecione um e clique no botão abaixo."
"If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.","Se você criou um modelo padrão de Vendas Impostos e Encargos mestre, selecione um e clique no botão abaixo."
"If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page","Se você tem muito tempo imprimir formatos, esse recurso pode ser usado para dividir a página a ser impressa em várias páginas com todos os cabeçalhos e rodapés em cada página"
"If you involve in manufacturing activity<br>
Enables item <b>Is Manufactured</b>",
Ignore,Ignorar
Ignored: ,Ignorados:
Image,Imagem
Image View,Ver imagem
Implementation Partner,Parceiro de implementação
Import,Importar
Import Attendance,Importação de Atendimento
Import Failed!,Import mislukt!
Import Log,Importar Log
Import Successful!,Importeer Succesvol!
Imports,Importações
In Hours,Em Horas
In Process,Em Processo
In Qty,in Aantal
In Row,Em Linha
In Value,in Waarde
In Words,Em Palavras
In Words (Company Currency),In Words (Moeda Company)
In Words (Export) will be visible once you save the Delivery Note.,Em Palavras (Exportação) será visível quando você salvar a Nota de Entrega.
In Words will be visible once you save the Delivery Note.,Em Palavras será visível quando você salvar a Nota de Entrega.
In Words will be visible once you save the Purchase Invoice.,Em Palavras será visível quando você salvar a factura de compra.
In Words will be visible once you save the Purchase Order.,Em Palavras será visível quando você salvar a Ordem de Compra.
In Words will be visible once you save the Purchase Receipt.,Em Palavras será visível quando você salvar o recibo de compra.
In Words will be visible once you save the Quotation.,Em Palavras será visível quando você salvar a cotação.
In Words will be visible once you save the Sales Invoice.,Em Palavras será visível quando você salvar a nota fiscal de venda.
In Words will be visible once you save the Sales Order.,Em Palavras será visível quando você salvar a Ordem de Vendas.
Incentives,Incentivos
Incharge,incharge
Incharge Name,Nome incharge
Include holidays in Total no. of Working Days,Incluir feriados em nenhuma total. de dias de trabalho
Income / Expense,Receitas / Despesas
Income Account,Conta Renda
Income Booked,Renda Reservado
Income Year to Date,Ano renda para Data
Income booked for the digest period,Renda reservado para o período digest
Incoming,Entrada
Incoming / Support Mail Setting,Entrada / Suporte Setting Correio
Incoming Rate,Taxa de entrada
Incoming quality inspection.,Inspeção de qualidade de entrada.
Indicates that the package is a part of this delivery,Indica que o pacote é uma parte deste fornecimento
Individual,Individual
Industry,Indústria
Industry Type,Tipo indústria
Inspected By,Inspecionado por
Inspection Criteria,Critérios de inspeção
Inspection Required,Inspeção Obrigatório
Inspection Type,Tipo de Inspeção
Installation Date,Data de instalação
Installation Note,Nota de Instalação
Installation Note Item,Item Nota de Instalação
Installation Status,Status da instalação
Installation Time,O tempo de instalação
Installation record for a Serial No.,Registro de instalação de um n º de série
Installed Qty,Quantidade instalada
Instructions,Instruções
Integrate incoming support emails to Support Ticket,Integreer inkomende support e-mails naar ticket support
Interested,Interessado
Internal,Interno
Introduction,Introdução
Invalid Delivery Note. Delivery Note should exist and should be in draft state. Please rectify and try again.,Ongeldige Delivery Note. Pakbon moet bestaan ​​en moet in ontwerp staat . Aub verwijderen en probeer het opnieuw .
Invalid Email Address,Endereço de email inválido
Invalid Leave Approver,Inválido Deixe Approver
Invalid Master Name,Ongeldige Master Naam
Invalid quantity specified for item ,
Inventory,Inventário
Invoice Date,Data da fatura
Invoice Details,Detalhes da fatura
Invoice No,A factura n º
Invoice Period From Date,Período fatura do Data
Invoice Period To Date,Período fatura para Data
Invoiced Amount (Exculsive Tax),Factuurbedrag ( Exculsive BTW )
Is Active,É Ativo
Is Advance,É o avanço
Is Asset Item,É item de ativo
Is Cancelled,É cancelado
Is Carry Forward,É Carry Forward
Is Default,É Default
Is Encash,É cobrar
Is LWP,É LWP
Is Opening,Está abrindo
Is Opening Entry,Está abrindo Entry
Is PL Account,É Conta PL
Is POS,É POS
Is Primary Contact,É Contato Principal
Is Purchase Item,É item de compra
Is Sales Item,É item de vendas
Is Service Item,É item de serviço
Is Stock Item,É item de estoque
Is Sub Contracted Item,É item Contratado Sub
Is Subcontracted,É subcontratada
Is this Tax included in Basic Rate?,É este imposto incluído na Taxa Básica?
Issue,Questão
Issue Date,Data de Emissão
Issue Details,Detalhes incidente
Issued Items Against Production Order,Itens emitida contra Ordem de Produção
It can also be used to create opening stock entries and to fix stock value.,Het kan ook worden gebruikt voor het openen van de voorraad te maken en om de balans de waarde vast te stellen .
Item,item
Item ,
Item Advanced,Item Avançado
Item Barcode,Código de barras do item
Item Batch Nos,Lote n item
Item Classification,Classificação item
Item Code,Código do artigo
Item Code (item_code) is mandatory because Item naming is not sequential.,"Código do item (item_code) é obrigatório, pois nomeação artigo não é seqüencial."
Item Code and Warehouse should already exist.,Item Code en Warehouse moet al bestaan ​​.
Item Code cannot be changed for Serial No.,Item Code kan niet worden gewijzigd voor Serienummer
Item Customer Detail,Detalhe Cliente item
Item Description,Item Descrição
Item Desription,Desription item
Item Details,Item Detalhes
Item Group,Grupo Item
Item Group Name,Nome do Grupo item
Item Group Tree,Punt Groepsstructuur
Item Groups in Details,Grupos de itens em Detalhes
Item Image (if not slideshow),Imagem item (se não slideshow)
Item Name,Nome do item
Item Naming By,Item de nomeação
Item Price,Item Preço
Item Prices,Preços de itens
Item Quality Inspection Parameter,Item Parâmetro de Inspeção de Qualidade
Item Reorder,Item Reordenar
Item Serial No,No item de série
Item Serial Nos,Item n º s de série
Item Shortage Report,Punt Tekort Report
Item Supplier,Fornecedor item
Item Supplier Details,Fornecedor Item Detalhes
Item Tax,Imposto item
Item Tax Amount,Valor do imposto item
Item Tax Rate,Taxa de Imposto item
Item Tax1,Item Tax1
Item To Manufacture,Item Para Fabricação
Item UOM,Item UOM
Item Website Specification,Especificação Site item
Item Website Specifications,Site Item Especificações
Item Wise Tax Detail ,Detalhe Imposto Sábio item
Item classification.,Item de classificação.
Item is neither Sales nor Service Item,Item is noch verkoop noch Serviceartikelbeheer
"Item must be a purchase item, \
					as it is present in one or many Active BOMs",
Item must have 'Has Serial No' as 'Yes',Het punt moet hebben ' Heeft Serial No ' als 'Ja'
Item table can not be blank,Item tabel kan niet leeg zijn
Item to be manufactured or repacked,Item a ser fabricados ou reembalados
Item will be saved by this name in the data base.,O artigo será salva por este nome na base de dados.
"Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.","Item, Garantia, AMC (Contrato Anual de Manutenção) detalhes serão automaticamente carregada quando o número de série é selecionado."
Item-wise Last Purchase Rate,Item-wise Última Tarifa de Compra
Item-wise Price List Rate,Item- wise Prijslijst Rate
Item-wise Purchase History,Item-wise Histórico de compras
Item-wise Purchase Register,Item-wise Compra Register
Item-wise Sales History,Item-wise Histórico de Vendas
Item-wise Sales Register,Vendas de item sábios Registrar
Items,Itens
Items To Be Requested,Items worden aangevraagd
"Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty","Os itens a serem solicitados que estão &quot;fora de estoque&quot;, considerando todos os armazéns com base no qty projetada e qty mínimo"
Items which do not exist in Item master can also be entered on customer's request,Itens que não existem no cadastro de itens também podem ser inseridos no pedido do cliente
Itemwise Discount,Desconto Itemwise
Itemwise Recommended Reorder Level,Itemwise Recomendado nível de reposição
JV,JV
Job Applicant,Candidato a emprego
Job Opening,Abertura de emprego
Job User,Perfil trabalho
Job Title,Cargo
"Job User, qualifications required etc.","Profissão de perfil, qualificações exigidas, etc"
Jobs Email Settings,E-mail Configurações de empregos
Journal Entries,Jornal entradas
Journal Entry,Journal Entry
Journal Voucher,Vale Jornal
Journal Voucher Detail,Jornal Detalhe Vale
Journal Voucher Detail No,Jornal Detalhe folha no
KRA,KRA
"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Mantenha o controle de campanhas de vendas. Mantenha o controle de ligações, cotações, ordem de venda, etc das campanhas para medir retorno sobre o investimento."
Keep a track of communication related to this enquiry which will help for future reference.,Mantenha uma faixa de comunicação relacionada a este inquérito que irá ajudar para referência futura.
Key Performance Area,Área Key Performance
Key Responsibility Area,Área de Responsabilidade chave
LEAD,LEAD
LEAD/10-11/,LEAD/10-11 /
LEAD/MUMBAI/,LEAD / MUMBAI /
LR Date,Data LR
LR No,Não LR
Label,Etiqueta
Landed Cost Item,Item de custo Landed
Landed Cost Items,Desembarcaram itens de custo
Landed Cost Purchase Receipt,Recibo de compra Landed Cost
Landed Cost Purchase Receipts,Recibos de compra desembarcaram Custo
Landed Cost Wizard,Assistente de Custo Landed
Last Name,Sobrenome
Last Purchase Rate,Compra de última
Latest,laatst
Latest Updates,Laatste updates
Lead,Conduzir
Lead Details,Chumbo Detalhes
Lead Id,lead Id
Lead Name,Nome levar
Lead Owner,Levar Proprietário
Lead Source,Chumbo Fonte
Lead Status,Chumbo Estado
Lead Time Date,Chumbo Data Hora
Lead Time Days,Levar dias Tempo
Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.,Levar dias Tempo é o número de dias em que este item é esperado no seu armazém. Este dia é buscada em solicitar material ao selecionar este item.
Lead Type,Chumbo Tipo
Leave Allocation,Deixe Alocação
Leave Allocation Tool,Deixe Ferramenta de Alocação
Leave Application,Deixe Aplicação
Leave Approver,Deixe Aprovador
Leave Approver can be one of,Adicione Approver pode ser um dos
Leave Approvers,Deixe aprovadores
Leave Balance Before Application,Deixe Equilíbrio Antes da aplicação
Leave Block List,Deixe Lista de Bloqueios
Leave Block List Allow,Deixe Lista de Bloqueios Permitir
Leave Block List Allowed,Deixe Lista de Bloqueios admitidos
Leave Block List Date,Deixe Data Lista de Bloqueios
Leave Block List Dates,Deixe as datas Lista de Bloqueios
Leave Block List Name,Deixe o nome Lista de Bloqueios
Leave Blocked,Deixe Bloqueados
Leave Control Panel,Deixe Painel de Controle
Leave Encashed?,Deixe cobradas?
Leave Encashment Amount,Deixe Quantidade cobrança
Leave Setup,Deixe Setup
Leave Type,Deixar Tipo
Leave Type Name,Deixe Nome Tipo
Leave Without Pay,Licença sem vencimento
Leave allocations.,Deixe alocações.
Leave application has been approved.,Verlof aanvraag is goedgekeurd .
Leave application has been rejected.,Verlofaanvraag is afgewezen .
Leave blank if considered for all branches,Deixe em branco se considerado para todos os ramos
Leave blank if considered for all departments,Deixe em branco se considerado para todos os departamentos
Leave blank if considered for all designations,Deixe em branco se considerado para todas as designações
Leave blank if considered for all employee types,Deixe em branco se considerado para todos os tipos de empregados
Leave blank if considered for all grades,Deixe em branco se considerado para todos os graus
"Leave can be approved by users with Role, ""Leave Approver""","A licença pode ser aprovado por usuários com papel, &quot;Deixe Aprovador&quot;"
Ledger,Livro-razão
Ledgers,grootboeken
Left,Esquerda
Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.,Pessoa Jurídica / Subsidiária com um gráfico separado de Contas pertencentes à Organização.
Letter Head,Cabeça letra
Level,Nível
Lft,Lft
List a few of your customers. They could be organizations or individuals.,Lijst een paar van uw klanten. Ze kunnen organisaties of personen .
List a few of your suppliers. They could be organizations or individuals.,Lijst een paar van uw leveranciers . Ze kunnen organisaties of personen .
"List a few products or services you buy from your suppliers or vendors. If these are same as your products, then do not add them.","Lijst een paar producten of diensten die u koopt bij uw leveranciers of verkopers . Als deze hetzelfde zijn als uw producten , dan is ze niet toe te voegen ."
List items that form the package.,Lista de itens que compõem o pacote.
List of holidays.,Lista de feriados.
List of users who can edit a particular Note,Lista de usuários que podem editar uma determinada Nota
List this Item in multiple groups on the website.,Lista este item em vários grupos no site.
"List your products or services that you sell to your customers. Make sure to check the Item Group, Unit of Measure and other properties when you start.","Een lijst van uw producten of diensten die u verkoopt aan uw klanten . Zorg ervoor dat u de artikelgroep , maateenheid en andere eigenschappen te controleren wanneer u begint ."
"List your tax heads (e.g. VAT, Excise) (upto 3) and their standard rates. This will create a standard template, you can edit and add more later.","Een lijst van uw fiscale koppen ( zoals btw , accijnzen ) ( tot 3 ) en hun standaard tarieven. Dit zal een standaard template te maken, kunt u deze bewerken en voeg later meer ."
Live Chat,Live Chat
Loading...,Loading ...
"Log of Activities performed by users against Tasks that can be used for tracking time, billing.","Log das atividades realizadas pelos usuários contra as tarefas que podem ser usados ​​para controlar o tempo, de faturamento."
Login Id,Login ID
Login with your new User ID,Log in met je nieuwe gebruikersnaam
Logo,Logotipo
Logo and Letter Heads,Logo en Letter Heads
Lost,verloren
Lost Reason,Razão perdido
Low,Baixo
Lower Income,Baixa Renda
MIS Control,MIS Controle
MREQ-,Mreq-
MTN Details,Detalhes da MTN
Mail Password,Mail Senha
Mail Port,Mail Port
Main Reports,Relatórios principais
Maintain Same Rate Throughout Sales Cycle,Manter o mesmo ritmo durante todo o ciclo de vendas
Maintain same rate throughout purchase cycle,Manter mesmo ritmo durante todo o ciclo de compra
Maintenance,Manutenção
Maintenance Date,Data de manutenção
Maintenance Details,Detalhes de manutenção
Maintenance Schedule,Programação de Manutenção
Maintenance Schedule Detail,Detalhe Programa de Manutenção
Maintenance Schedule Item,Item Programa de Manutenção
Maintenance Schedules,Horários de Manutenção
Maintenance Status,Estado de manutenção
Maintenance Time,Tempo de Manutenção
Maintenance Type,Tipo de manutenção
Maintenance Visit,Visita de manutenção
Maintenance Visit Purpose,Finalidade visita de manutenção
Major/Optional Subjects,Assuntos Principais / Opcional
Make ,
Make Accounting Entry For Every Stock Movement,Maak boekhoudkundige afschrijving voor elke Stock Movement
Make Bank Voucher,Faça Vale Banco
Make Credit Note,Maak Credit Note
Make Debit Note,Maak debetnota
Make Delivery,Maak Levering
Make Difference Entry,Faça Entrada Diferença
Make Excise Invoice,Maak Accijnzen Factuur
Make Installation Note,Maak installatie Opmerking
Make Invoice,Maak Factuur
Make Maint. Schedule,Maken Maint . dienstregeling
Make Maint. Visit,Maken Maint . bezoek
Make Maintenance Visit,Maak Maintenance Visit
Make Packing Slip,Maak pakbon
Make Payment Entry,Betalen Entry
Make Purchase Invoice,Maak inkoopfactuur
Make Purchase Order,Maak Bestelling
Make Purchase Receipt,Maak Kwitantie
Make Salary Slip,Maak loonstrook
Make Salary Structure,Maak salarisstructuur
Make Sales Invoice,Maak verkoopfactuur
Make Sales Order,Maak klantorder
Make Supplier Quotation,Maak Leverancier Offerte
Male,Masculino
Manage 3rd Party Backups,Beheer 3rd Party Backups
Manage cost of operations,Gerenciar custo das operações
Manage exchange rates for currency conversion,Gerenciar taxas de câmbio para conversão de moeda
"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.","Obrigatório se o estoque do item é &quot;Sim&quot;. Além disso, o armazém padrão onde quantidade reservada é definido a partir de Ordem de Vendas."
Manufacture against Sales Order,Fabricação contra a Ordem de Vendas
Manufacture/Repack,Fabricação / Repack
Manufactured Qty,Qtde fabricados
Manufactured quantity will be updated in this warehouse,Quantidade fabricada será atualizado neste armazém
Manufacturer,Fabricante
Manufacturer Part Number,Número da peça de fabricante
Manufacturing,Fabrico
Manufacturing Quantity,Quantidade de fabricação
Manufacturing Quantity is mandatory,Manufacturing Kwantiteit is verplicht
Margin,Margem
Marital Status,Estado civil
Market Segment,Segmento de mercado
Married,Casado
Mass Mailing,Divulgação em massa
Master Data,Master Data
Master Name,Nome mestre
Master Name is mandatory if account type is Warehouse,Master Naam is verplicht als account type Warehouse
Master Type,Master Classe
Masters,Mestres
Match non-linked Invoices and Payments.,Combinar não vinculados faturas e pagamentos.
Material Issue,Emissão de material
Material Receipt,Recebimento de materiais
Material Request,Pedido de material
Material Request Detail No,Detalhe materiais Pedido Não
Material Request For Warehouse,Pedido de material para Armazém
Material Request Item,Item de solicitação de material
Material Request Items,Pedido de itens de material
Material Request No,Pedido de material no
Material Request Type,Tipo de solicitação de material
Material Request used to make this Stock Entry,Pedido de material usado para fazer isto Stock Entry
Material Requests for which Supplier Quotations are not created,Materiaal Verzoeken waarvoor Leverancier Offertes worden niet gemaakt
Material Requirement,Material Requirement
Material Transfer,Transferência de Material
Materials,Materiais
Materials Required (Exploded),Materiais necessários (explodida)
Max 500 rows only.,Max 500 apenas as linhas.
Max Days Leave Allowed,Dias Max Deixe admitidos
Max Discount (%),Max Desconto (%)
Max Returnable Qty,Max Herbruikbare Aantal
Medium,Médio
"Merging is only possible if following \
					properties are same in both records.
					Group or Ledger, Debit or Credit, Is PL Account",
Message,Mensagem
Message Parameter,Parâmetro mensagem
Message Sent,bericht verzonden
Messages,Mensagens
Messages greater than 160 characters will be split into multiple messages,Mensagem maior do que 160 caracteres vai ser dividido em mesage múltipla
Middle Income,Rendimento Médio
Milestone,Marco miliário
Milestone Date,Data Milestone
Milestones,Milestones
Milestones will be added as Events in the Calendar,Marcos será adicionado como eventos no calendário
Min Order Qty,Min Qty Ordem
Minimum Order Qty,Qtde mínima
Misc Details,Detalhes Diversos
Miscellaneous,Diverso
Miscelleneous,Miscelleneous
Mobile No,No móvel
Mobile No.,Mobile No.
Mode of Payment,Modo de Pagamento
Modern,Moderno
Modified Amount,Quantidade modificado
Monday,Segunda-feira
Month,Mês
Monthly,Mensal
Monthly Attendance Sheet,Folha de Presença Mensal
Monthly Earning & Deduction,Salário mensal e dedução
Monthly Salary Register,Salário mensal Registrar
Monthly salary statement.,Declaração salário mensal.
Monthly salary template.,Modelo de salário mensal.
More Details,Mais detalhes
More Info,Mais informações
Moving Average,Média móvel
Moving Average Rate,Movendo Taxa Média
Mr,Sr.
Ms,Ms
Multiple Item prices.,Meerdere Artikelprijzen .
Multiple Price list.,Meerdere Prijslijst .
Must be Whole Number,Deve ser Número inteiro
My Settings,Minhas Configurações
NL-,NL-
Name,Nome
Name and Description,Nome e descrição
Name and Employee ID,Nome e identificação do funcionário
Name is required,Nome é obrigatório
"Name of new Account. Note: Please don't create accounts for Customers and Suppliers,","Naam van de nieuwe account . Let op : Gelieve niet goed voor klanten en leveranciers te creëren ,"
Name of person or organization that this address belongs to.,Nome da pessoa ou organização que este endereço pertence.
Name of the Budget Distribution,Nome da Distribuição de Orçamento
Naming Series,Nomeando Series
Negative balance is not allowed for account ,Saldo negativo não é permitido por conta
Net Pay,Pagamento Net
Net Pay (in words) will be visible once you save the Salary Slip.,Pagamento líquido (em palavras) será visível quando você salvar a folha de salário.
Net Total,Líquida Total
Net Total (Company Currency),Total Líquido (Moeda Company)
Net Weight,Peso Líquido
Net Weight UOM,UOM Peso Líquido
Net Weight of each Item,Peso líquido de cada item
Net pay can not be negative,Remuneração líquida não pode ser negativo
Never,Nunca
New,novo
New ,
New Account,nieuw account
New Account Name,Nieuw account Naam
New BOM,Novo BOM
New Communications,New Communications
New Company,nieuw bedrijf
New Cost Center,Nieuwe kostenplaats
New Cost Center Name,Nieuwe kostenplaats Naam
New Delivery Notes,Novas notas de entrega
New Enquiries,Consultas novo
New Leads,Nova leva
New Leave Application,Aplicação deixar Nova
New Leaves Allocated,Nova Folhas alocado
New Leaves Allocated (In Days),Folhas novas atribuído (em dias)
New Material Requests,Novos Pedidos Materiais
New Projects,Novos Projetos
New Purchase Orders,Novas ordens de compra
New Purchase Receipts,Novos recibos de compra
New Quotations,Novas cotações
New Sales Orders,Novos Pedidos de Vendas
"New Serial No cannot have Warehouse. Warehouse must be \
				set by Stock Entry or Purchase Receipt",
New Stock Entries,Novas entradas em existências
New Stock UOM,Nova da UOM
New Supplier Quotations,Novas citações Fornecedor
New Support Tickets,Novos pedidos de ajuda
New Workplace,Novo local de trabalho
Newsletter,Boletim informativo
Newsletter Content,Conteúdo boletim
Newsletter Status,Estado boletim
"Newsletters to contacts, leads.","Newsletters para contatos, leva."
Next Communcation On,No próximo Communcation
Next Contact By,Contato Próxima Por
Next Contact Date,Data Contato próximo
Next Date,Data próxima
Next email will be sent on:,Próximo e-mail será enviado em:
No,Não
No Action,Nenhuma ação
No Customer Accounts found.,Geen Customer Accounts gevonden .
"No Customer or Supplier Accounts found. Accounts are identified based on \
			'Master Type' value in account record.",
No Item found with ,
No Items to Pack,Nenhum item para embalar
No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user.,"Não Deixe aprovadores. Por favor, atribuir &#39;Deixe aprovador&#39; Role a pelo menos um usuário."
No Permission,Nenhuma permissão
No Production Order created.,Geen productieorder gecreëerd .
No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.,Geen Leverancier Accounts gevonden . Leverancier Accounts worden geïdentificeerd op basis van 'Master Type' waarde in rekening te nemen.
No accounting entries for following warehouses,Geen boekingen voor volgende magazijnen
No addresses created,Geen adressen aangemaakt
No contacts created,Geen contacten gemaakt
No default BOM exists for item: ,Não existe BOM padrão para o item:
No of Requested SMS,No pedido de SMS
No of Sent SMS,N º de SMS enviados
No of Visits,N º de Visitas
No record found,Nenhum registro encontrado
No salary slip found for month: ,Sem folha de salário encontrado para o mês:
Not,Não
Not Active,Não Ativo
Not Applicable,Não Aplicável
Not Available,niet beschikbaar
Not Billed,Não faturado
Not Delivered,Não entregue
Not Set,niet instellen
Not allowed entry in Warehouse,Niet toegestaan ​​vermelding in Pakhuis
Note,Nota
Note User,Nota usuários
Note is a free page where users can share documents / notes,"Nota é uma página livre, onde os usuários podem compartilhar documentos / notas"
Note:,Opmerking :
"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Nota: Backups e arquivos não são excluídos do Dropbox, você terá que apagá-los manualmente."
"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.","Nota: Backups e arquivos não são excluídos do Google Drive, você terá que apagá-los manualmente."
Note: Email will not be sent to disabled users,Nota: e-mail não será enviado para utilizadores com deficiência
Notes,Notas
Notes:,Opmerkingen:
Nothing to request,Niets aan te vragen
Notice (days),Notice ( dagen )
Notification Control,Controle de Notificação
Notification Email Address,Endereço de email de notificação
Notify by Email on creation of automatic Material Request,Notificar por e-mail sobre a criação de Pedido de material automático
Number Format,Formato de número
O+,O +
O-,O-
OPPT,OPPT
Offer Date,aanbieding Datum
Office,Escritório
Old Parent,Pai Velho
On,Em
On Net Total,Em Líquida Total
On Previous Row Amount,Quantidade em linha anterior
On Previous Row Total,No total linha anterior
"Only Serial Nos with status ""Available"" can be delivered.","Alleen serienummers met de status ""Beschikbaar"" kan worden geleverd."
Only Stock Items are allowed for Stock Entry,Apenas Itens Em Stock são permitidos para Banco de Entrada
Only leaf nodes are allowed in transaction,Nós folha apenas são permitidos em operação
Open,Abrir
Open Production Orders,Open productieorders
Open Tickets,Bilhetes abertas
Opening,opening
Opening Accounting Entries,Opening boekingen
Opening Accounts and Stock,Het openen van rekeningen en Stock
Opening Date,Data de abertura
Opening Entry,Abertura Entry
Opening Qty,Opening Aantal
Opening Time,Tempo de abertura
Opening Value,Opening Waarde
Opening for a Job.,A abertura para um trabalho.
Operating Cost,Custo de Operação
Operation Description,Descrição da operação
Operation No,Nenhuma operação
Operation Time (mins),Tempo de Operação (minutos)
Operations,Operações
Opportunity,Oportunidade
Opportunity Date,Data oportunidade
Opportunity From,Oportunidade De
Opportunity Item,Item oportunidade
Opportunity Items,Itens oportunidade
Opportunity Lost,Oportunidade perdida
Opportunity Type,Tipo de Oportunidade
Optional. This setting will be used to filter in various transactions.,Optioneel. Deze instelling wordt gebruikt om te filteren op diverse transacties .
Order Type,Tipo de Ordem
Ordered,bestelde
Ordered Items To Be Billed,Itens ordenados a ser cobrado
Ordered Items To Be Delivered,Itens ordenados a ser entregue
Ordered Qty,bestelde Aantal
"Ordered Qty: Quantity ordered for purchase, but not received.","Bestelde Aantal : Aantal besteld voor aankoop , maar niet ontvangen ."
Ordered Quantity,Quantidade pedida
Orders released for production.,Ordens liberado para produção.
Organization,organisatie
Organization Name,Naam van de Organisatie
Organization User,Perfil da Organização
Other,Outro
Other Details,Outros detalhes
Out Qty,out Aantal
Out Value,out Waarde
Out of AMC,Fora da AMC
Out of Warranty,Fora de Garantia
Outgoing,Cessante
Outgoing Email Settings,Uitgaande E-mailinstellingen
Outgoing Mail Server,Outgoing Mail Server
Outgoing Mails,E-mails de saída
Outstanding Amount,Saldo em aberto
Outstanding for Voucher ,Excelente para Vale
Overhead,Despesas gerais
Overheads,overheadkosten
Overlapping Conditions found between,Condições sobreposição encontrada entre
Overview,Overzicht
Owned,Possuído
Owner,eigenaar
PAN Number,Número PAN
PF No.,PF Não.
PF Number,Número PF
PI/2011/,PI/2011 /
PIN,PIN
PL or BS,PL of BS
PO,PO
PO Date,PO Datum
PO No,PO Geen
POP3 Mail Server,Servidor de correio POP3
POP3 Mail Settings,Configurações de mensagens pop3
POP3 mail server (e.g. pop.gmail.com),POP3 servidor de correio (por exemplo pop.gmail.com)
POP3 server e.g. (pop.gmail.com),"Servidor POP3, por exemplo (pop.gmail.com)"
POS Setting,Definição POS
POS View,POS Ver
PR Detail,Detalhe PR
PR Posting Date,PR Boekingsdatum
PRO,PRO
PS,PS
Package Item Details,Item Detalhes do pacote
Package Items,Itens do pacote
Package Weight Details,Peso Detalhes do pacote
Packed Item,Entrega do item embalagem Nota
Packing Details,Detalhes da embalagem
Packing Detials,Detials embalagem
Packing List,Lista de embalagem
Packing Slip,Embalagem deslizamento
Packing Slip Item,Embalagem item deslizamento
Packing Slip Items,Embalagem Itens deslizamento
Packing Slip(s) Cancelled,Deslizamento de embalagem (s) Cancelado
Page Break,Quebra de página
Page Name,Nome da Página
Paid,betaald
Paid Amount,Valor pago
Parameter,Parâmetro
Parent Account,Conta pai
Parent Cost Center,Centro de Custo pai
Parent Customer Group,Grupo de Clientes pai
Parent Detail docname,Docname Detalhe pai
Parent Item,Item Pai
Parent Item Group,Grupo item pai
Parent Sales Person,Vendas Pessoa pai
Parent Territory,Território pai
Parenttype,ParentType
Partially Billed,gedeeltelijk gefactureerde
Partially Completed,Parcialmente concluída
Partially Delivered,gedeeltelijk Geleverd
Partly Billed,Parcialmente faturado
Partly Delivered,Entregue em parte
Partner Target Detail,Detalhe Alvo parceiro
Partner Type,Tipo de parceiro
Partner's Website,Site do parceiro
Passive,Passiva
Passport Number,Número do Passaporte
Password,Senha
Pay To / Recd From,Para pagar / RECD De
Payables,Contas a pagar
Payables Group,Grupo de contas a pagar
Payment Days,Datas de Pagamento
Payment Due Date,Betaling Due Date
Payment Entries,Entradas de pagamento
"Payment Entry has been modified after you pulled it. 
			Please pull it again.",
Payment Period Based On Invoice Date,Betaling Periode Based On Factuurdatum
Payment Reconciliation,Reconciliação de pagamento
Payment Type,betaling Type
Payment of salary for the month: ,
Payment to Invoice Matching Tool,Pagamento a ferramenta correspondente fatura
Payment to Invoice Matching Tool Detail,Pagamento a Detalhe Ferramenta fatura correspondente
Payments,Pagamentos
Payments Made,Pagamentos efetuados
Payments Received,Pagamentos Recebidos
Payments made during the digest period,Pagamentos efetuados durante o período de digestão
Payments received during the digest period,Pagamentos recebidos durante o período de digestão
Payroll Settings,payroll -instellingen
Payroll Setup,Configuração da folha de pagamento
Pending,Pendente
Pending Amount,In afwachting van Bedrag
Pending Review,Revisão pendente
Pending SO Items For Purchase Request,"Itens Pendentes Assim, por solicitação de compra"
Percent Complete,Porcentagem Concluída
Percentage Allocation,Alocação percentual
Percentage Allocation should be equal to ,Percentual de alocação deve ser igual ao
Percentage variation in quantity to be allowed while receiving or delivering this item.,Variação percentual na quantidade a ser permitido ao receber ou entregar este item.
Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,"Percentagem que estão autorizados a receber ou entregar mais contra a quantidade encomendada. Por exemplo: Se você encomendou 100 unidades. e seu subsídio é de 10%, então você está autorizada a receber 110 unidades."
Performance appraisal.,Avaliação de desempenho.
Period,periode
Period Closing Voucher,Comprovante de Encerramento período
Periodicity,Periodicidade
Permanent Address,Endereço permanente
Permanent Address Is,Vast adres
Permission,Permissão
Permission Manager,Gerente de Permissão
Personal,Pessoal
Personal Details,Detalhes pessoais
Personal Email,E-mail pessoal
Phone,Telefone
Phone No,N º de telefone
Phone No.,Não. telefone
Pincode,PINCODE
Place of Issue,Local de Emissão
Plan for maintenance visits.,Plano de visitas de manutenção.
Planned Qty,Qtde planejada
"Planned Qty: Quantity, for which, Production Order has been raised,","Geplande Aantal : Aantal , waarvoor , productieorder is verhoogd ,"
Planned Quantity,Quantidade planejada
Plant,Planta
Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,Por favor insira Abreviação ou Nome Curto corretamente como ele será adicionado como sufixo a todos os chefes de Conta.
Please Select Company under which you want to create account head,Selecteer Company waaronder u wilt houden het hoofd te creëren
Please check,"Por favor, verifique"
Please create new account from Chart of Accounts.,Maak nieuwe account van Chart of Accounts .
Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.,Gelieve niet Account ( Grootboeken ) te creëren voor klanten en leveranciers . Ze worden rechtstreeks vanuit de klant / leverancier- meesters.
Please enter Company,Vul Company
Please enter Cost Center,Vul kostenplaats
Please enter Default Unit of Measure,Por favor insira unidade de medida padrão
Please enter Delivery Note No or Sales Invoice No to proceed,Por favor insira Entrega Nota Não ou fatura de vendas Não para continuar
Please enter Employee Id of this sales parson,Vul Werknemer Id van deze verkoop dominee
Please enter Expense Account,Por favor insira Conta Despesa
Please enter Item Code to get batch no,Vul de artikelcode voor batch niet krijgen
Please enter Item Code.,Vul Item Code .
Please enter Item first,Gelieve eerst in Item
Please enter Master Name once the account is created.,Vul Master Naam zodra het account is aangemaakt .
Please enter Production Item first,Vul Productie Item eerste
Please enter Purchase Receipt No to proceed,Por favor insira Compra recibo Não para continuar
Please enter Reserved Warehouse for item ,Por favor insira Warehouse reservada para o item
Please enter Start Date and End Date,Vul de Begindatum en Einddatum
Please enter Warehouse for which Material Request will be raised,Vul Warehouse waarvoor Materiaal Request zal worden verhoogd
"Please enter account group under which account \
					for warehouse ",
Please enter company first,Gelieve eerst in bedrijf
Please enter company name first,Vul de naam van het bedrijf voor het eerst
Please enter sales order in the above table,Vul de verkooporder in de bovenstaande tabel
Please install dropbox python module,"Por favor, instale o Dropbox módulo python"
Please mention default value for ',"Por favor, mencione o valor padrão para &#39;"
Please reduce qty.,Reduza qty.
Please save the Newsletter before sending.,"Por favor, salve o boletim antes de enviar."
Please save the document before generating maintenance schedule,Bewaar het document voordat het genereren van onderhoudsschema
Please select Account first,Selecteer Account eerste
Please select Bank Account,Por favor seleccione Conta Bancária
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Por favor seleccione Carry Forward se você também quer incluir equilíbrio ano fiscal anterior deixa para este ano fiscal
Please select Category first,Selecteer Categorie eerst
Please select Charge Type first,Selecteer Charge Type eerste
Please select Date on which you want to run the report,Selecione Data na qual você deseja executar o relatório
Please select Price List,"Por favor, selecione Lista de Preço"
Please select a,Por favor seleccione um
Please select a csv file,"Por favor, selecione um arquivo csv"
Please select a service item or change the order type to Sales.,"Por favor, selecione um item de serviço ou mudar o tipo de ordem de vendas."
Please select a sub-contracted item or do not sub-contract the transaction.,"Por favor, selecione um item do sub-contratado ou não subcontratar a transação."
Please select a valid csv file with data.,"Por favor, selecione um arquivo csv com dados válidos."
"Please select an ""Image"" first","Selecteer aub een "" beeld"" eerste"
Please select month and year,Selecione mês e ano
Please select options and click on Create,Maak uw keuze opties en klik op Create
Please select the document type first,"Por favor, selecione o tipo de documento primeiro"
Please select: ,Por favor seleccione:
Please set Dropbox access keys in,Defina teclas de acesso Dropbox em
Please set Google Drive access keys in,Defina teclas de acesso do Google Drive em
Please setup Employee Naming System in Human Resource > HR Settings,"Por favor, configuração Employee Naming System em Recursos Humanos&gt; Configurações HR"
Please setup your chart of accounts before you start Accounting Entries,Behagen opstelling uw rekeningschema voordat u start boekingen
Please specify,"Por favor, especifique"
Please specify Company,"Por favor, especifique Empresa"
Please specify Company to proceed,"Por favor, especifique Empresa proceder"
"Please specify Default Currency in Company Master \
			and Global Defaults",
Please specify a,"Por favor, especifique um"
Please specify a Price List which is valid for Territory,"Por favor, especifique uma lista de preços que é válido para o território"
Please specify a valid,"Por favor, especifique um válido"
Please specify a valid 'From Case No.',"Por favor, especifique um válido &#39;De Caso No.&#39;"
Please specify currency in Company,"Por favor, especificar a moeda em Empresa"
Please submit to update Leave Balance.,Gelieve te werken verlofsaldo .
Please write something,Iets schrijven aub
Please write something in subject and message!,Schrijf iets in het onderwerp en een bericht !
Plot,plot
Plot By,plot Door
Point of Sale,Ponto de Venda
Point-of-Sale Setting,Ponto-de-Venda Setting
Post Graduate,Pós-Graduação
Postal,Postal
Posting Date,Data da Publicação
Posting Date Time cannot be before,Postando Data Hora não pode ser antes
Posting Time,Postagem Tempo
Potential Sales Deal,Negócio de Vendas
Potential opportunities for selling.,Oportunidades potenciais para a venda.
"Precision for Float fields (quantities, discounts, percentages etc). Floats will be rounded up to specified decimals. Default = 3","Precisão para os campos float (quantidade, descontos, porcentagens, etc.) Carros alegóricos será arredondado para decimais especificadas. Padrão = 3"
Preferred Billing Address,Preferred Endereço de Cobrança
Preferred Shipping Address,Endereço para envio preferido
Prefix,Prefixo
Present,Apresentar
Prevdoc DocType,Prevdoc DocType
Prevdoc Doctype,Prevdoc Doctype
Previous Work Experience,Experiência anterior de trabalho
Price List,Lista de Preços
Price List Currency,Hoje Lista de Preços
Price List Exchange Rate,Preço Lista de Taxa de Câmbio
Price List Master,Mestre Lista de Preços
Price List Name,Nome da lista de preços
Price List Rate,Taxa de Lista de Preços
Price List Rate (Company Currency),Preço Taxa List (moeda da empresa)
Print,afdrukken
Print Format Style,Formato de impressão Estilo
Print Heading,Imprimir título
Print Without Amount,Imprimir Sem Quantia
Printing,het drukken
Priority,Prioridade
Process Payroll,Payroll processo
Produced,geproduceerd
Produced Quantity,Quantidade produzida
Product Enquiry,Produto Inquérito
Production Order,Ordem de Produção
Production Order must be submitted,Productieorder moet worden ingediend
Production Order(s) created:\n\n,Productie Order ( s ) gemaakt : \ n \ n
Production Orders,Ordens de Produção
Production Orders in Progress,Productieorders in Progress
Production Plan Item,Item do plano de produção
Production Plan Items,Plano de itens de produção
Production Plan Sales Order,Produção Plano de Ordem de Vendas
Production Plan Sales Orders,Vendas de produção do Plano de Ordens
Production Planning (MRP),Planejamento de Produção (MRP)
Production Planning Tool,Ferramenta de Planejamento da Produção
Products or Services You Buy,Producten of diensten die u kopen
"Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.","Os produtos serão classificados por peso-idade em buscas padrão. Mais o peso-idade, maior o produto irá aparecer na lista."
Project,Projeto
Project Costing,Project Costing
Project Details,Detalhes do projeto
Project Milestone,Projeto Milestone
Project Milestones,Etapas do Projeto
Project Name,Nome do projeto
Project Start Date,Data de início do projeto
Project Type,Tipo de projeto
Project Value,Valor do projeto
Project activity / task.,Atividade de projeto / tarefa.
Project master.,Projeto mestre.
Project will get saved and will be searchable with project name given,Projeto será salvo e poderão ser pesquisados ​​com o nome de determinado projeto
Project wise Stock Tracking,Projeto sábios Stock Rastreamento
Projected,verwachte
Projected Qty,Qtde Projetada
Projects,Projetos
Prompt for Email on Submission of,Solicitar-mail mediante a apresentação da
Provide email id registered in company,Fornecer ID e-mail registrado na empresa
Public,Público
Pull Payment Entries,Puxe as entradas de pagamento
Pull sales orders (pending to deliver) based on the above criteria,Puxe pedidos de vendas pendentes (de entregar) com base nos critérios acima
Purchase,Comprar
Purchase / Manufacture Details,Aankoop / Productie Details
Purchase Analytics,Analytics compra
Purchase Common,Compre comum
Purchase Details,Detalhes de compra
Purchase Discounts,Descontos de compra
Purchase In Transit,Compre Em Trânsito
Purchase Invoice,Compre Fatura
Purchase Invoice Advance,Compra Antecipada Fatura
Purchase Invoice Advances,Avanços comprar Fatura
Purchase Invoice Item,Comprar item Fatura
Purchase Invoice Trends,Compra Tendências fatura
Purchase Order,Ordem de Compra
Purchase Order Date,Data da compra Ordem
Purchase Order Item,Comprar item Ordem
Purchase Order Item No,Comprar item Portaria n
Purchase Order Item Supplied,Item da ordem de compra em actualização
Purchase Order Items,Comprar Itens Encomendar
Purchase Order Items Supplied,Itens ordem de compra em actualização
Purchase Order Items To Be Billed,Ordem de Compra itens a serem faturados
Purchase Order Items To Be Received,Comprar itens para ser recebido
Purchase Order Message,Mensagem comprar Ordem
Purchase Order Required,Ordem de Compra Obrigatório
Purchase Order Trends,Ordem de Compra Trends
Purchase Orders given to Suppliers.,As ordens de compra dadas a fornecedores.
Purchase Receipt,Compra recibo
Purchase Receipt Item,Comprar item recepção
Purchase Receipt Item Supplied,Recibo de compra do item em actualização
Purchase Receipt Item Supplieds,Compre Supplieds item recepção
Purchase Receipt Items,Comprar Itens Recibo
Purchase Receipt Message,Mensagem comprar Recebimento
Purchase Receipt No,Compra recibo Não
Purchase Receipt Required,Recibo de compra Obrigatório
Purchase Receipt Trends,Compra Trends Recibo
Purchase Register,Compra Registre
Purchase Return,Voltar comprar
Purchase Returned,Compre Devolvido
Purchase Taxes and Charges,Impostos e Encargos de compra
Purchase Taxes and Charges Master,Impostos de compra e Master Encargos
Purpose,Propósito
Purpose must be one of ,Objetivo deve ser um dos
QA Inspection,Inspeção QA
QAI/11-12/,QAI/11-12 /
QTN,QTN
Qty,Qty
Qty Consumed Per Unit,Qtde consumida por unidade
Qty To Manufacture,Qtde Para Fabricação
Qty as per Stock UOM,Qtde como por Ação UOM
Qty to Deliver,Aantal te leveren
Qty to Order,Aantal te bestellen
Qty to Receive,Aantal te ontvangen
Qty to Transfer,Aantal Transfer
Qualification,Qualificação
Quality,Qualidade
Quality Inspection,Inspeção de Qualidade
Quality Inspection Parameters,Inspeção parâmetros de qualidade
Quality Inspection Reading,Leitura de Inspeção de Qualidade
Quality Inspection Readings,Leituras de inspeção de qualidade
Quantity,Quantidade
Quantity Requested for Purchase,Quantidade Solicitada para Compra
Quantity and Rate,Quantidade e Taxa
Quantity and Warehouse,Quantidade e Armazém
Quantity cannot be a fraction.,A quantidade não pode ser uma fracção.
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Quantidade do item obtido após a fabricação / reembalagem de determinadas quantidades de matérias-primas
"Quantity should be equal to Manufacturing Quantity. To fetch items again, click on 'Get Items' button or update the Quantity manually.","Hoeveelheid moet gelijk zijn aan Manufacturing Aantal zijn. Om items weer te halen , klik op ' Get items ' knop of handmatig bijwerken van de hoeveelheid ."
Quarter,Trimestre
Quarterly,Trimestral
Quick Help,Quick Help
Quotation,Citação
Quotation Date,Data citação
Quotation Item,Item citação
Quotation Items,Itens cotação
Quotation Lost Reason,Cotação Perdeu Razão
Quotation Message,Mensagem citação
Quotation Series,Série citação
Quotation To,Para citação
Quotation Trend,Cotação Tendência
Quotation is cancelled.,Offerte wordt geannuleerd .
Quotations received from Suppliers.,Citações recebidas de fornecedores.
Quotes to Leads or Customers.,Cotações para Leads ou Clientes.
Raise Material Request when stock reaches re-order level,Levante solicitar material quando o estoque atinge novo pedido de nível
Raised By,Levantadas por
Raised By (Email),Levantadas por (e-mail)
Random,Acaso
Range,Alcance
Rate,Taxa
Rate ,Taxa
Rate (Company Currency),Rate (moeda da empresa)
Rate Of Materials Based On,Taxa de materiais com base
Rate and Amount,Taxa e montante
Rate at which Customer Currency is converted to customer's base currency,Taxa em que moeda do cliente é convertido para a moeda base de cliente
Rate at which Price list currency is converted to company's base currency,Taxa em que moeda lista de preços é convertido para a moeda da empresa de base
Rate at which Price list currency is converted to customer's base currency,Taxa em que moeda lista de preços é convertido para a moeda base de cliente
Rate at which customer's currency is converted to company's base currency,Taxa na qual a moeda do cliente é convertido para a moeda da empresa de base
Rate at which supplier's currency is converted to company's base currency,Taxa na qual a moeda que fornecedor é convertido para a moeda da empresa de base
Rate at which this tax is applied,Taxa em que este imposto é aplicado
Raw Material Item Code,Item Código de matérias-primas
Raw Materials Supplied,Matérias-primas em actualização
Raw Materials Supplied Cost,Matérias-primas fornecidas Custo
Re-Order Level,Re Ordem Nível
Re-Order Qty,Re-Ordem Qtde
Re-order,Re-vista
Re-order Level,Re fim-Level
Re-order Qty,Re-vista Qtde
Read,Ler
Reading 1,Leitura 1
Reading 10,Leitura 10
Reading 2,Leitura 2
Reading 3,Leitura 3
Reading 4,Reading 4
Reading 5,Leitura 5
Reading 6,Leitura 6
Reading 7,Lendo 7
Reading 8,Leitura 8
Reading 9,Leitura 9
Reason,Razão
Reason for Leaving,Motivo da saída
Reason for Resignation,Motivo para Demissão
Reason for losing,Reden voor het verliezen
Recd Quantity,Quantidade RECD
Receivable / Payable account will be identified based on the field Master Type,Conta a receber / pagar serão identificados com base no campo Type Master
Receivables,Recebíveis
Receivables / Payables,Contas a receber / contas a pagar
Receivables Group,Grupo de recebíveis
Received,ontvangen
Received Date,Data de recebimento
Received Items To Be Billed,Itens recebidos a ser cobrado
Received Qty,Qtde recebeu
Received and Accepted,Recebeu e aceitou
Receiver List,Lista de receptor
Receiver Parameter,Parâmetro receptor
Recipients,Destinatários
Reconciliation Data,Dados de reconciliação
Reconciliation HTML,Reconciliação HTML
Reconciliation JSON,Reconciliação JSON
Record item movement.,Gravar o movimento item.
Recurring Id,Id recorrente
Recurring Invoice,Fatura recorrente
Recurring Type,Tipo recorrente
Reduce Deduction for Leave Without Pay (LWP),Reduzir Dedução por licença sem vencimento (LWP)
Reduce Earning for Leave Without Pay (LWP),Reduzir a Geração de Renda para sair sem pagar (LWP)
Ref Code,Ref Código
Ref SQ,Ref ²
Reference,Referência
Reference Date,Data de Referência
Reference Name,Nome de referência
Reference Number,Número de Referência
Refresh,Refrescar
Refreshing....,Verfrissend ....
Registration Details,Detalhes registro
Registration Info,Registo Informações
Rejected,Rejeitado
Rejected Quantity,Quantidade rejeitado
Rejected Serial No,Rejeitado Não Serial
Rejected Warehouse,Armazém rejeitado
Rejected Warehouse is mandatory against regected item,Verworpen Warehouse is verplicht tegen regected post
Relation,Relação
Relieving Date,Aliviar Data
Relieving Date of employee is ,Aliviar Data de empregado é
Remark,Observação
Remarks,Observações
Rename,andere naam geven
Rename Log,Renomeie Entrar
Rename Tool,Renomear Ferramenta
Rent Cost,Kosten huur
Rent per hour,Huur per uur
Rented,Alugado
Repeat on Day of Month,Repita no Dia do Mês
Replace,Substituir
Replace Item / BOM in all BOMs,Substituir item / BOM em todas as BOMs
"Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Substituir um BOM particular em todas as BOMs outros onde ele é usado. Ele irá substituir o link BOM antigo, atualizar o custo e regenerar &quot;Explosão BOM Item&quot; tabela como por novo BOM"
Replied,Respondeu
Report Date,Relatório Data
Report issues at,Verslag kwesties op
Reports,Relatórios
Reports to,Relatórios para
Reqd By Date,Reqd Por Data
Request Type,Tipo de Solicitação
Request for Information,Pedido de Informação
Request for purchase.,Pedido de compra.
Requested,gevraagd
Requested For,gevraagd voor
Requested Items To Be Ordered,Itens solicitados devem ser pedidos
Requested Items To Be Transferred,Itens solicitados para ser transferido
Requested Qty,verzocht Aantal
"Requested Qty: Quantity requested for purchase, but not ordered.","Aangevraagd Aantal : Aantal op aankoop, maar niet besteld."
Requests for items.,Os pedidos de itens.
Required By,Exigido por
Required Date,Data Obrigatório
Required Qty,Quantidade requerida
Required only for sample item.,Necessário apenas para o item amostra.
Required raw materials issued to the supplier for producing a sub - contracted item.,Matérias-primas necessárias emitidos para o fornecedor para a produção de um sub - item contratado.
Reseller,Revendedor
Reserved,gereserveerd
Reserved Qty,Gereserveerd Aantal
"Reserved Qty: Quantity ordered for sale, but not delivered.","Gereserveerd Aantal : Aantal besteld te koop , maar niet geleverd ."
Reserved Quantity,Quantidade reservados
Reserved Warehouse,Reservado Armazém
Reserved Warehouse in Sales Order / Finished Goods Warehouse,Armazém reservada no Pedido de Vendas / armazém de produtos acabados
Reserved Warehouse is missing in Sales Order,Reservado Warehouse está faltando na Ordem de Vendas
Reset Filters,Reset Filters
Resignation Letter Date,Data carta de demissão
Resolution,Resolução
Resolution Date,Data resolução
Resolution Details,Detalhes de Resolução
Resolved By,Resolvido por
Retail,Varejo
Retailer,Varejista
Review Date,Comente Data
Rgt,Rgt
Role Allowed to edit frozen stock,Papel permissão para editar estoque congelado
Role that is allowed to submit transactions that exceed credit limits set.,Papel que é permitido submeter transações que excedam os limites de crédito estabelecidos.
Root cannot have a parent cost center,Root não pode ter um centro de custos pai
Rounded Total,Total arredondado
Rounded Total (Company Currency),Total arredondado (Moeda Company)
Row,Linha
Row ,Linha
Row #,Linha #
Row # ,Linha #
Rules to calculate shipping amount for a sale,Regras para calcular valor de frete para uma venda
S.O. No.,S.O. Nee.
SMS,SMS
SMS Center,SMS Center
SMS Control,SMS Controle
SMS Gateway URL,SMS Gateway de URL
SMS Log,SMS Log
SMS Parameter,Parâmetro SMS
SMS Sender Name,Nome do remetente SMS
SMS Settings,Definições SMS
SMTP Server (e.g. smtp.gmail.com),"SMTP Server (smtp.gmail.com, por exemplo)"
SO,SO
SO Date,SO Data
SO Pending Qty,Está pendente de Qtde
SO Qty,SO Aantal
SO/10-11/,SO/10-11 /
SO1112,SO1112
SQTN,SQTN
STE,STO
SUP,SUP
SUPP,SUPP
SUPP/10-11/,SUPP/10-11 /
Salary,Salário
Salary Information,Informação salário
Salary Manager,Gerente de salário
Salary Mode,Modo de salário
Salary Slip,Folha de salário
Salary Slip Deduction,Dedução folha de salário
Salary Slip Earning,Folha de salário Ganhando
Salary Structure,Estrutura Salarial
Salary Structure Deduction,Dedução Estrutura Salarial
Salary Structure Earning,Estrutura salarial Ganhando
Salary Structure Earnings,Estrutura Lucros Salário
Salary breakup based on Earning and Deduction.,Separação Salário com base em salário e dedução.
Salary components.,Componentes salariais.
Sales,De vendas
Sales Analytics,Sales Analytics
Sales BOM,BOM vendas
Sales BOM Help,Vendas Ajuda BOM
Sales BOM Item,Vendas item BOM
Sales BOM Items,Vendas Itens BOM
Sales Details,Detalhes de vendas
Sales Discounts,Descontos de vendas
Sales Email Settings,Vendas Configurações de Email
Sales Extras,Extras de vendas
Sales Funnel,Sales Funnel
Sales Invoice,Fatura de vendas
Sales Invoice Advance,Vendas antecipadas Fatura
Sales Invoice Item,Vendas item Fatura
Sales Invoice Items,Vendas itens da fatura
Sales Invoice Message,Vendas Mensagem Fatura
Sales Invoice No,Vendas factura n
Sales Invoice Trends,Vendas Tendências fatura
Sales Order,Ordem de Vendas
Sales Order Date,Vendas Data Ordem
Sales Order Item,Vendas item Ordem
Sales Order Items,Vendas Itens Encomendar
Sales Order Message,Vendas Mensagem Ordem
Sales Order No,Vendas decreto n º
Sales Order Required,Ordem vendas Obrigatório
Sales Order Trend,Pedido de Vendas da Trend
Sales Partner,Parceiro de vendas
Sales Partner Name,Vendas Nome do parceiro
Sales Partner Target,Vendas Alvo Parceiro
Sales Partners Commission,Vendas Partners Comissão
Sales Person,Vendas Pessoa
Sales Person Incharge,Vendas Pessoa Incharge
Sales Person Name,Vendas Nome Pessoa
Sales Person Target Variance (Item Group-Wise),Vendas Pessoa Variance Alvo (Item Group-Wise)
Sales Person Targets,Metas de vendas Pessoa
Sales Person-wise Transaction Summary,Resumo da transação Pessoa-wise vendas
Sales Register,Vendas Registrar
Sales Return,Vendas Retorno
Sales Returned,Sales Terugkerende
Sales Taxes and Charges,Vendas Impostos e Taxas
Sales Taxes and Charges Master,Vendas Impostos e Encargos mestre
Sales Team,Equipe de Vendas
Sales Team Details,Vendas Team Detalhes
Sales Team1,Vendas team1
Sales and Purchase,Vendas e Compras
Sales campaigns,Campanhas de vendas
Sales persons and targets,Vendas pessoas e metas
Sales taxes template.,Impostos sobre as vendas do modelo.
Sales territories.,Os territórios de vendas.
Salutation,Saudação
Same Serial No,Zelfde Serienummer
Sample Size,Tamanho da amostra
Sanctioned Amount,Quantidade sancionada
Saturday,Sábado
Save ,
Schedule,Programar
Schedule Date,tijdschema
Schedule Details,Detalhes da Agenda
Scheduled,Programado
Scheduled Date,Data prevista
School/University,Escola / Universidade
Score (0-5),Pontuação (0-5)
Score Earned,Pontuação Agregado
Score must be less than or equal to 5,Score moet lager dan of gelijk aan 5 zijn
Scrap %,Sucata%
Seasonality for setting budgets.,Sazonalidade para definir orçamentos.
"See ""Rate Of Materials Based On"" in Costing Section",Consulte &quot;taxa de materiais baseados em&quot; no Custeio Seção
"Select ""Yes"" for sub - contracting items",Selecione &quot;Sim&quot; para a sub - itens contratantes
"Select ""Yes"" if this item is used for some internal purpose in your company.",Selecione &quot;Sim&quot; se este item é usado para alguma finalidade interna na sua empresa.
"Select ""Yes"" if this item represents some work like training, designing, consulting etc.","Selecione &quot;Sim&quot; se esse item representa algum trabalho como treinamento, design, consultoria etc"
"Select ""Yes"" if you are maintaining stock of this item in your Inventory.",Selecione &quot;Sim&quot; se você está mantendo estoque deste item no seu inventário.
"Select ""Yes"" if you supply raw materials to your supplier to manufacture this item.",Selecione &quot;Sim&quot; se você fornecer matérias-primas para o seu fornecedor para fabricar este item.
Select Budget Distribution to unevenly distribute targets across months.,Selecione distribuição do orçamento para distribuir desigualmente alvos em todo mês.
"Select Budget Distribution, if you want to track based on seasonality.","Selecione distribuição do orçamento, se você quiser acompanhar baseado em sazonalidade."
Select Digest Content,Selecione o conteúdo Digest
Select DocType,Selecione DocType
"Select Item where ""Is Stock Item"" is ""No""","Selecteer item waar "" Is Stock Item "" is "" Nee"""
Select Items,Selecione itens
Select Purchase Receipts,Selecteer Aankoopfacturen
Select Sales Orders,Selecione Pedidos de Vendas
Select Sales Orders from which you want to create Production Orders.,Selecione Ordens de venda a partir do qual você deseja criar ordens de produção.
Select Time Logs and Submit to create a new Sales Invoice.,Selecione Time Logs e enviar para criar uma nova factura de venda.
Select Transaction,Selecione Transação
Select account head of the bank where cheque was deposited.,Selecione cabeça conta do banco onde cheque foi depositado.
Select company name first.,Selecione o nome da empresa em primeiro lugar.
Select template from which you want to get the Goals,Selecione o modelo a partir do qual você deseja obter as Metas
Select the Employee for whom you are creating the Appraisal.,Selecione o funcionário para quem você está criando a Avaliação.
Select the Invoice against which you want to allocate payments.,Selecteer de factuur waartegen u wilt betalingen toewijzen .
Select the period when the invoice will be generated automatically,Selecione o período em que a factura será gerado automaticamente
Select the relevant company name if you have multiple companies,"Selecione o nome da empresa em questão, se você tem várias empresas"
Select the relevant company name if you have multiple companies.,"Selecione o nome da empresa em questão, se você tem várias empresas."
Select who you want to send this newsletter to,Selecione para quem você deseja enviar esta newsletter para
Select your home country and check the timezone and currency.,Selecteer uw land en controleer de tijdzone en valuta .
"Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt.","Selecionando &quot;Sim&quot; vai permitir que este item deve aparecer na Ordem de Compra, Recibo de Compra."
"Selecting ""Yes"" will allow this item to figure in Sales Order, Delivery Note","Selecionando &quot;Sim&quot; vai permitir que este item para figurar na Ordem de Vendas, Nota de Entrega"
"Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.",Selecionando &quot;Sim&quot; permitirá a você criar Bill of Material mostrando matérias-primas e os custos operacionais incorridos para fabricar este item.
"Selecting ""Yes"" will allow you to make a Production Order for this item.",Selecionando &quot;Sim&quot; vai permitir que você faça uma ordem de produção para este item.
"Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.",Selecionando &quot;Sim&quot; vai dar uma identidade única para cada entidade deste item que pode ser visto no mestre Número de ordem.
Selling,Vendendo
Selling Settings,Vendendo Configurações
Send,Enviar
Send Autoreply,Enviar Autoreply
Send Bulk SMS to Leads / Contacts,Stuur Bulk SMS naar leads / contacten
Send Email,Enviar E-mail
Send From,Enviar de
Send Notifications To,Enviar notificações para
Send Now,Nu verzenden
Send Print in Body and Attachment,Enviar Imprimir em Corpo e Anexo
Send SMS,Envie SMS
Send To,Enviar para
Send To Type,Enviar para Digite
Send automatic emails to Contacts on Submitting transactions.,Enviar e-mails automáticos para Contatos no Submetendo transações.
Send mass SMS to your contacts,Enviar SMS em massa para seus contatos
Send regular summary reports via Email.,Enviar relatórios resumidos regulares via e-mail.
Send to this list,Enviar para esta lista
Sender,Remetente
Sender Name,Nome do remetente
Sent,verzonden
Sent Mail,E-mails enviados
Sent On,Enviado em
Sent Quotation,Cotação enviada
Sent or Received,Verzonden of ontvangen
Separate production order will be created for each finished good item.,Ordem de produção separado será criado para cada item acabado.
Serial No,N º de Série
Serial No / Batch,Serienummer / Batch
Serial No Details,Serial Detalhes Nenhum
Serial No Service Contract Expiry,N º de Série Vencimento Contrato de Serviço
Serial No Status,No Estado de série
Serial No Warranty Expiry,Caducidade Não Serial Garantia
Serial No created,Serienummer gemaakt
Serial No does not belong to Item,Serienummer behoort niet tot Item
Serial No must exist to transfer out.,Serienummer moet bestaan ​​over te dragen uit .
Serial No qty cannot be a fraction,Serienummer aantal kan een fractie niet
Serial No status must be 'Available' to Deliver,Serienummer -status moet 'Beschikbaar' te bezorgen
Serial Nos do not match with qty,Serienummers niet overeenkomen met aantal
Serial Number Series,Serienummer Series
Serialized Item: ',Item serializado: &#39;
Series,serie
Series List for this Transaction,Lista de séries para esta transação
Service Address,Serviço Endereço
Services,Serviços
Session Expiry,Caducidade sessão
Session Expiry in Hours e.g. 06:00,"Caducidade sessão em Horas, por exemplo 06:00"
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,"Definir item Group-wise orçamentos sobre este território. Você também pode incluir sazonalidade, definindo a distribuição."
Set Login and Password if authentication is required.,Set Login e Senha se é necessária autenticação.
Set allocated amount against each Payment Entry and click 'Allocate'.,Set toegewezen bedrag tegen elkaar Betaling Entry en klik op ' toewijzen ' .
Set as Default,Instellen als standaard
Set as Lost,Instellen als Lost
Set prefix for numbering series on your transactions,Definir prefixo para numeração de série em suas transações
Set targets Item Group-wise for this Sales Person.,Estabelecer metas item Group-wise para este Vendas Pessoa.
"Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.","Defina suas configurações de SMTP de envio de correio aqui. Todo o sistema gerou notificações, e-mails vai a partir deste servidor de correio. Se você não tem certeza, deixe este campo em branco para usar servidores ERPNext (e-mails ainda serão enviadas a partir do seu ID e-mail) ou entre em contato com seu provedor de e-mail."
Setting Account Type helps in selecting this Account in transactions.,Tipo de conta Definir ajuda na seleção desta conta em transações.
Setting up...,Het opzetten ...
Settings,Configurações
Settings for Accounts,Definições para contas
Settings for Buying Module,Configurações para comprar Module
Settings for Selling Module,Configurações para vender Module
Settings for Stock Module,Instellingen voor Stock Module
"Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""","Definições para extrair os candidatos a emprego a partir de um &quot;jobs@example.com&quot; caixa de correio, por exemplo"
Setup,Instalação
Setup Already Complete!!,Setup al voltooid !
Setup Complete!,Installatie voltooid !
Setup Completed,Setup Completed
Setup Series,Série de configuração
Setup of Shopping Cart.,Configuração do Carrinho de Compras.
Setup to pull emails from support email account,Configuração para puxar e-mails da conta de e-mail de apoio
Share,Ação
Share With,Compartilhar
Shipments to customers.,Os embarques para os clientes.
Shipping,Expedição
Shipping Account,Conta de Envio
Shipping Address,Endereço para envio
Shipping Amount,Valor do transporte
Shipping Rule,Regra de envio
Shipping Rule Condition,Regra Condições de envio
Shipping Rule Conditions,Regra Condições de envio
Shipping Rule Label,Regra envio Rótulo
Shipping Rules,Regras de transporte
Shop,Loja
Shopping Cart,Carrinho de Compras
Shopping Cart Price List,Carrinho de Compras Lista de Preços
Shopping Cart Price Lists,Carrinho listas de preços
Shopping Cart Settings,Carrinho Configurações
Shopping Cart Shipping Rule,Carrinho de Compras Rule envio
Shopping Cart Shipping Rules,Carrinho Regras frete
Shopping Cart Taxes and Charges Master,Carrinho impostos e taxas Mestre
Shopping Cart Taxes and Charges Masters,Carrinho Impostos e Taxas de mestrado
Short biography for website and other publications.,Breve biografia para o site e outras publicações.
"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Show &quot;Em Stock&quot; ou &quot;não em estoque&quot;, baseado em stock disponível neste armazém."
Show / Hide Features,Weergeven / verbergen Kenmerken
Show / Hide Modules,Weergeven / verbergen Modules
Show In Website,Mostrar No Site
Show a slideshow at the top of the page,Ver uma apresentação de slides no topo da página
Show in Website,Show em site
Show this slideshow at the top of the page,Mostrar esta slideshow no topo da página
Signature,Assinatura
Signature to be appended at the end of every email,Assinatura para ser anexado no final de cada e-mail
Single,Único
Single unit of an Item.,Única unidade de um item.
Sit tight while your system is being setup. This may take a few moments.,Hou je vast terwijl uw systeem wordt setup. Dit kan even duren .
Slideshow,Slideshow
"Sorry! You cannot change company's default currency, because there are existing transactions against it. You will need to cancel those transactions if you want to change the default currency.","Desculpe! Você não pode alterar a moeda padrão da empresa, porque existem operações existentes contra ele. Você terá que cancelar essas transações se você deseja alterar a moeda padrão."
"Sorry, Serial Nos cannot be merged","Sorry , kan de serienummers niet worden samengevoegd"
"Sorry, companies cannot be merged","Sorry , bedrijven kunnen niet worden samengevoegd"
Source,Fonte
Source Warehouse,Armazém fonte
Source and Target Warehouse cannot be same,Fonte e armazém de destino não pode ser igual
Spartan,Espartano
Special Characters,caracteres especiais
Special Characters ,
Specification Details,Detalhes especificação
Specify Exchange Rate to convert one currency into another,Especifique Taxa de câmbio para converter uma moeda em outra
"Specify a list of Territories, for which, this Price List is valid","Especificar uma lista de territórios, para a qual, esta lista de preços é válida"
"Specify a list of Territories, for which, this Shipping Rule is valid","Especificar uma lista de territórios, para a qual, essa regra de envio é válida"
"Specify a list of Territories, for which, this Taxes Master is valid","Especificar uma lista de territórios, para a qual, este Impostos Master é válido"
Specify conditions to calculate shipping amount,Especificar as condições para calcular valor de frete
"Specify the operations, operating cost and give a unique Operation no to your operations.","Geef de operaties , operationele kosten en geven een unieke operatie niet aan uw activiteiten ."
Split Delivery Note into packages.,Nota de Entrega dividir em pacotes.
Standard,Padrão
Standard Rate,Taxa normal
"Standard Terms and Conditions that can be added to Sales and Purchases.

Examples:

1. Validity of the offer.
1. Payment Terms (In Advance, On Credit, part advance etc).
1. What is extra (or payable by the Customer).
1. Safety / usage warning.
1. Warranty if any.
1. Returns Policy.
1. Terms of shipping, if applicable.
1. Ways of addressing disputes, indemnity, liability, etc.
1. Address and Contact of your Company.",
"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.

#### Note

The tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.

#### Description of Columns

1. Calculation Type: 
    - This can be on **Net Total** (that is the sum of basic amount).
    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
    - **Actual** (as mentioned).
2. Account Head: The Account ledger under which this tax will be booked
3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.
4. Description: Description of the tax (that will be printed in invoices / quotes).
5. Rate: Tax rate.
6. Amount: Tax amount.
7. Total: Cumulative total to this point.
8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.
10. Add or Deduct: Whether you want to add or deduct the tax.",
"Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.

#### Note

The tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.

#### Description of Columns

1. Calculation Type: 
    - This can be on **Net Total** (that is the sum of basic amount).
    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
    - **Actual** (as mentioned).
2. Account Head: The Account ledger under which this tax will be booked
3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.
4. Description: Description of the tax (that will be printed in invoices / quotes).
5. Rate: Tax rate.
6. Amount: Tax amount.
7. Total: Cumulative total to this point.
8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.",
Start,begin
Start Date,Data de Início
Start date of current invoice's period,A data de início do período de fatura atual
Starting up...,Het opstarten van ...
State,Estado
Static Parameters,Parâmetros estáticos
Status,Estado
Status must be one of ,Estado deve ser um dos
Status should be Submitted,Estado deverá ser apresentado
Statutory info and other general information about your Supplier,Informações legais e outras informações gerais sobre o seu Fornecedor
Stock,Estoque
Stock Adjustment Account,Banco de Acerto de Contas
Stock Ageing,Envelhecimento estoque
Stock Analytics,Analytics ações
Stock Balance,Balanço de estoque
Stock Entries already created for Production Order ,
Stock Entry,Entrada estoque
Stock Entry Detail,Detalhe Entrada estoque
Stock Frozen Upto,Fotografia congelada Upto
Stock Ledger,Estoque Ledger
Stock Ledger Entry,Entrada da Razão
Stock Level,Nível de estoque
Stock Projected Qty,Verwachte voorraad Aantal
Stock Qty,Qtd
Stock Queue (FIFO),Da fila (FIFO)
Stock Received But Not Billed,"Banco recebido, mas não faturados"
Stock Reconcilation Data,Stock Verzoening gegevens
Stock Reconcilation Template,Stock Verzoening Template
Stock Reconciliation,Da Reconciliação
"Stock Reconciliation can be used to update the stock on a particular date, ",
Stock Settings,Configurações da
Stock UOM,Estoque UOM
Stock UOM Replace Utility,Utilitário da Substituir UOM
Stock Uom,Estoque Uom
Stock Value,Valor da
Stock Value Difference,Banco de Valor Diferença
Stock transactions exist against warehouse ,
Stop,Pare
Stop Birthday Reminders,Stop verjaardagsherinneringen
Stop Material Request,Stop Materiaal Request
Stop users from making Leave Applications on following days.,Pare de usuários de fazer aplicações deixam nos dias seguintes.
Stop!,Stop!
Stopped,Parado
Structure cost centers for budgeting.,Estrutura centros de custo para orçamentação.
Structure of books of accounts.,Estrutura de livros de contas.
"Sub-currency. For e.g. ""Cent""",Sub-moeda. Para &quot;Cent&quot; por exemplo
Subcontract,Subcontratar
Subject,Assunto
Submit Salary Slip,Enviar folha de salário
Submit all salary slips for the above selected criteria,Submeter todas as folhas de salários para os critérios acima selecionados
Submit this Production Order for further processing.,Submit deze productieorder voor verdere verwerking .
Submitted,Enviado
Subsidiary,Subsidiário
Successful: ,Bem-sucedido:
Suggestion,Sugestão
Suggestions,Sugestões
Sunday,Domingo
Supplier,Fornecedor
Supplier (Payable) Account,Fornecedor (pago) Conta
Supplier (vendor) name as entered in supplier master,"Nome do fornecedor (fornecedor), inscritos no cadastro de fornecedores"
Supplier Account,leverancier Account
Supplier Account Head,Fornecedor Cabeça Conta
Supplier Address,Endereço do Fornecedor
Supplier Addresses And Contacts,Leverancier Adressen en Contacten
Supplier Addresses and Contacts,Leverancier Adressen en Contacten
Supplier Details,Detalhes fornecedor
Supplier Intro,Intro fornecedor
Supplier Invoice Date,Fornecedor Data Fatura
Supplier Invoice No,Fornecedor factura n
Supplier Name,Nome do Fornecedor
Supplier Naming By,Fornecedor de nomeação
Supplier Part Number,Número da peça de fornecedor
Supplier Quotation,Cotação fornecedor
Supplier Quotation Item,Cotação do item fornecedor
Supplier Reference,Referência fornecedor
Supplier Shipment Date,Fornecedor Expedição Data
Supplier Shipment No,Fornecedor Expedição Não
Supplier Type,Tipo de fornecedor
Supplier Type / Supplier,Leverancier Type / leverancier
Supplier Warehouse,Armazém fornecedor
Supplier Warehouse mandatory subcontracted purchase receipt,Armazém Fornecedor obrigatório recibo de compra subcontratada
Supplier classification.,Classificação fornecedor.
Supplier database.,Banco de dados de fornecedores.
Supplier of Goods or Services.,Fornecedor de bens ou serviços.
Supplier warehouse where you have issued raw materials for sub - contracting,Armazém do fornecedor onde você emitiu matérias-primas para a sub - contratação
Supplier-Wise Sales Analytics,Leveranciers Wise Sales Analytics
Support,Apoiar
Support Analtyics,ondersteuning Analtyics
Support Analytics,Analytics apoio
Support Email,Suporte E-mail
Support Email Settings,Ondersteuning E-mailinstellingen
Support Password,Senha de
Support Ticket,Ticket de Suporte
Support queries from customers.,Suporte a consultas de clientes.
Symbol,Símbolo
Sync Support Mails,Sincronizar e-mails de apoio
Sync with Dropbox,Sincronizar com o Dropbox
Sync with Google Drive,Sincronia com o Google Drive
System Administration,System Administration
System Scheduler Errors,System Scheduler fouten
System Settings,Configurações do sistema
"System User (login) ID. If set, it will become default for all HR forms.","Sistema de identificação do usuário (login). Se for definido, ele vai se tornar padrão para todas as formas de RH."
System for managing Backups,Sistema para gerenciamento de Backups
System generated mails will be sent from this email id.,Mails gerados pelo sistema serão enviados a partir deste ID de e-mail.
TL-,TL-
TLB-,TLB-
Table for Item that will be shown in Web Site,Tabela para Item que será mostrado no site
Target  Amount,Valor Alvo
Target Detail,Detalhe alvo
Target Details,Detalhes alvo
Target Details1,Alvo Details1
Target Distribution,Distribuição alvo
Target On,Target On
Target Qty,Qtde alvo
Target Warehouse,Armazém alvo
Task,Tarefa
Task Details,Detalhes da tarefa
Tasks,taken
Tax,Imposto
Tax Accounts,tax Accounts
Tax Calculation,Cálculo do imposto
Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items,Fiscale categorie kan ' Valuation ' of ' Valuation en Total ' als alle items zijn niet-voorraadartikelen niet
Tax Master,Imposto de Mestre
Tax Rate,Taxa de Imposto
Tax Template for Purchase,Modelo de impostos para compra
Tax Template for Sales,Modelo de imposto para vendas
Tax and other salary deductions.,Fiscais e deduções salariais outros.
"Tax detail table fetched from item master as a string and stored in this field.
Used for Taxes and Charges",
Taxable,Tributável
Taxes,Impostos
Taxes and Charges,Impostos e Encargos
Taxes and Charges Added,Impostos e Encargos Adicionado
Taxes and Charges Added (Company Currency),Impostos e taxas Adicionado (Moeda Company)
Taxes and Charges Calculation,Impostos e Encargos de Cálculo
Taxes and Charges Deducted,Impostos e Encargos Deduzidos
Taxes and Charges Deducted (Company Currency),Impostos e taxas Deduzido (Moeda Company)
Taxes and Charges Total,Impostos e encargos totais
Taxes and Charges Total (Company Currency),Impostos e Encargos Total (moeda da empresa)
Template for employee performance appraisals.,Modelo para avaliação de desempenho dos funcionários.
Template of terms or contract.,Modelo de termos ou contratos.
Term Details,Detalhes prazo
Terms,Voorwaarden
Terms and Conditions,Termos e Condições
Terms and Conditions Content,Termos e Condições conteúdo
Terms and Conditions Details,Termos e Condições Detalhes
Terms and Conditions Template,Termos e Condições de modelo
Terms and Conditions1,Termos e Conditions1
Terretory,terretory
Territory,Território
Territory / Customer,Grondgebied / Klantenservice
Territory Manager,Territory Manager
Territory Name,Nome território
Territory Target Variance (Item Group-Wise),Território Variance Alvo (Item Group-Wise)
Territory Targets,Metas território
Test,Teste
Test Email Id,Email Id teste
Test the Newsletter,Teste a Newsletter
The BOM which will be replaced,O BOM que será substituído
The First User: You,De eerste gebruiker : U
"The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""",O item que representa o pacote. Este item deve ter &quot;é o item da&quot; como &quot;Não&quot; e &quot;é o item de vendas&quot; como &quot;Sim&quot;
The Organization,de Organisatie
"The account head under Liability, in which Profit/Loss will be booked","De rekening hoofd onder Aansprakelijkheid , waarin Winst / verlies zal worden geboekt"
"The date on which next invoice will be generated. It is generated on submit.
",
The date on which recurring invoice will be stop,A data em que fatura recorrente será parar
"The day of the month on which auto invoice will be generated e.g. 05, 28 etc ","O dia do mês em que factura automática será gerada, por exemplo 05, 28 etc"
The day(s) on which you are applying for leave coincide with holiday(s). You need not apply for leave.,De dag (en ) waarop je solliciteert verlof samenvalt met vakantie ( s ) . Je hoeft niet voor verlof .
The first Leave Approver in the list will be set as the default Leave Approver,O primeiro Deixe Approver na lista vai ser definido como o Leave Approver padrão
The first user will become the System Manager (you can change that later).,De eerste gebruiker zal de System Manager te worden (u kunt dat later wijzigen ) .
The gross weight of the package. Usually net weight + packaging material weight. (for print),O peso bruto do pacote. Normalmente peso líquido + peso do material de embalagem. (Para impressão)
The name of your company for which you are setting up this system.,De naam van uw bedrijf waar u het opzetten van dit systeem .
The net weight of this package. (calculated automatically as sum of net weight of items),O peso líquido do pacote. (Calculado automaticamente como soma de peso líquido dos itens)
The new BOM after replacement,O BOM novo após substituição
The rate at which Bill Currency is converted into company's base currency,A taxa na qual a moeda que Bill é convertida em moeda empresa de base
The unique id for tracking all recurring invoices. It is generated on submit.,A ID exclusiva para acompanhar todas as facturas recorrentes. Ele é gerado em enviar.
There is nothing to edit.,Er is niets om te bewerken .
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.,Er is een fout opgetreden . Een mogelijke reden zou kunnen zijn dat je niet hebt opgeslagen het formulier . Neem dan contact support@erpnext.com als het probleem aanhoudt .
There were errors.,Er waren fouten .
This Cost Center is a,Deze kostenplaats is een
This Currency is disabled. Enable to use in transactions,Deze valuta is uitgeschakeld . In staat om te gebruiken in transacties
This ERPNext subscription,Dit abonnement ERPNext
This Leave Application is pending approval. Only the Leave Apporver can update status.,Deze verlofaanvraag is in afwachting van goedkeuring . Alleen de Leave Apporver kan status bijwerken .
This Time Log Batch has been billed.,Este lote Log O tempo tem sido anunciado.
This Time Log Batch has been cancelled.,Este lote Log Tempo foi cancelada.
This Time Log conflicts with,Este tempo de registro de conflitos com
This is a root account and cannot be edited.,Dit is een root account en kan niet worden bewerkt .
This is a root customer group and cannot be edited.,Dit is een wortel klantgroep en kan niet worden bewerkt .
This is a root item group and cannot be edited.,Dit is een hoofditem groep en kan niet worden bewerkt .
This is a root sales person and cannot be edited.,Dit is een wortel verkoper en kan niet worden bewerkt .
This is a root territory and cannot be edited.,Dit is een wortel grondgebied en kan niet worden bewerkt .
This is the number of the last created transaction with this prefix,Este é o número da última transacção criados com este prefixo
This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.,Esta ferramenta ajuda a atualizar ou corrigir a quantidade ea valorização do estoque no sistema. Ele é geralmente usado para sincronizar os valores do sistema eo que realmente existe em seus armazéns.
This will be used for setting rule in HR module,Isso será usado para fixação de regras no módulo HR
Thread HTML,Tópico HTML
Thursday,Quinta-feira
Time Log,Tempo Log
Time Log Batch,Tempo Batch Log
Time Log Batch Detail,Tempo Log Detail Batch
Time Log Batch Details,Tempo de registro de detalhes de lote
Time Log Batch status must be 'Submitted',Status do lote Log tempo deve ser &#39;Enviado&#39;
Time Log for tasks.,Tempo de registro para as tarefas.
Time Log must have status 'Submitted',Tempo de registro deve ter status &#39;Enviado&#39;
Time Zone,Fuso horário
Time Zones,Time Zones
Time and Budget,Tempo e Orçamento
Time at which items were delivered from warehouse,Hora em que itens foram entregues a partir de armazém
Time at which materials were received,Momento em que os materiais foram recebidos
Title,Título
To,Para
To Currency,A Moeda
To Date,Conhecer
To Date should be same as From Date for Half Day leave,Om datum moet dezelfde zijn als Van Datum voor halve dag verlof zijn
To Discuss,Para Discutir
To Do List,Para fazer a lista
To Package No.,Para empacotar Não.
To Pay,te betalen
To Produce,Produce
To Time,Para Tempo
To Value,Ao Valor
To Warehouse,Para Armazém
"To add child nodes, explore tree and click on the node under which you want to add more nodes.","Om onderliggende nodes te voegen , te verkennen boom en klik op het knooppunt waar u wilt meer knooppunten toe te voegen ."
"To assign this issue, use the ""Assign"" button in the sidebar.","Para atribuir esse problema, use o botão &quot;Atribuir&quot; na barra lateral."
"To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.","Para criar automaticamente pedidos de ajuda de seu correio de entrada, definir as configurações de POP3 aqui. Você deve, idealmente, criar um ID de e-mail separado para o sistema ERP para que todos os e-mails serão sincronizados para o sistema de que e-mail id. Se você não tiver certeza, entre em contato com seu provedor de e-mail."
To create a Bank Account:,Om een bankrekening te maken:
To create a Tax Account:,Om een Tax Account aanmaken :
"To create an Account Head under a different company, select the company and save customer.","Para criar uma conta, sob Cabeça uma empresa diferente, selecione a empresa e salvar cliente."
To date cannot be before from date,Tot op heden kan niet eerder worden vanaf datum
To enable <b>Point of Sale</b> features,Para habilitar o <b>Ponto de Venda</b> características
To enable <b>Point of Sale</b> view,Om <b> Point of Sale < / b > view staat
To get Item Group in details table,Para obter Grupo item na tabela de detalhes
"To merge, following properties must be same for both items","Te fuseren , moeten volgende eigenschappen hetzelfde zijn voor beide posten"
"To report an issue, go to ",
"To set this Fiscal Year as Default, click on 'Set as Default'","Om dit fiscale jaar ingesteld als standaard , klik op ' Als standaard instellen '"
To track any installation or commissioning related work after sales,Para rastrear qualquer instalação ou comissionamento trabalho relacionado após vendas
"To track brand name in the following documents<br>
Delivery Note, Enuiry, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No",
To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.,Para acompanhar o item em documentos de vendas e de compras com base em seus números de ordem. Este é também pode ser usada para rastrear detalhes sobre a garantia do produto.
To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,Para controlar os itens de vendas e documentos de compra com lotes n º s <br> <b>Indústria preferido: etc Chemicals</b>
To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Para rastrear itens usando código de barras. Você será capaz de inserir itens na nota de entrega e nota fiscal de venda pela digitalização de código de barras do item.
Tools,Ferramentas
Top,Topo
Total,Total
Total (sum of) points distribution for all goals should be 100.,Total (soma de) distribuição de pontos para todos os objetivos deve ser 100.
Total Advance,Antecipação total
Total Amount,Valor Total
Total Amount To Pay,Valor total a pagar
Total Amount in Words,Valor Total em Palavras
Total Billing This Year: ,Faturamento total deste ano:
Total Claimed Amount,Montante reclamado total
Total Commission,Total Comissão
Total Cost,Custo Total
Total Credit,Crédito Total
Total Debit,Débito total
Total Deduction,Dedução Total
Total Earning,Ganhar total
Total Experience,Experiência total
Total Hours,Total de Horas
Total Hours (Expected),Total de Horas (esperado)
Total Invoiced Amount,Valor total faturado
Total Leave Days,Total de dias de férias
Total Leaves Allocated,Folhas total atribuído
Total Manufactured Qty can not be greater than Planned qty to manufacture,Totaal Gefabriceerd Aantal mag niet groter zijn dan gepland aantal te fabriceren
Total Operating Cost,Custo Operacional Total
Total Points,Total de pontos
Total Raw Material Cost,Custo total das matérias-primas
Total Sanctioned Amount,Valor total Sancionada
Total Score (Out of 5),Pontuação total (em 5)
Total Tax (Company Currency),Imposto Total (moeda da empresa)
Total Taxes and Charges,Total Impostos e Encargos
Total Taxes and Charges (Company Currency),Total de Impostos e Taxas (moeda da empresa)
Total Working Days In The Month,Total de dias úteis do mês
Total amount of invoices received from suppliers during the digest period,O valor total das faturas recebidas de fornecedores durante o período de digestão
Total amount of invoices sent to the customer during the digest period,O valor total das faturas enviadas para o cliente durante o período de digestão
Total in words,Total em palavras
Total production order qty for item,Total da ordem qty produção para o item
Totals,Totais
Track separate Income and Expense for product verticals or divisions.,Localizar renda separado e Despesa para verticais de produtos ou divisões.
Track this Delivery Note against any Project,Acompanhar este Nota de Entrega contra qualquer projeto
Track this Sales Order against any Project,Acompanhar este Ordem de vendas contra qualquer projeto
Transaction,Transação
Transaction Date,Data Transação
Transaction not allowed against stopped Production Order,Transactie niet toegestaan ​​tegen gestopt productieorder
Transfer,Transferir
Transfer Material,Transfer Materiaal
Transfer Raw Materials,Transfer Grondstoffen
Transferred Qty,overgedragen hoeveelheid
Transporter Info,Informações Transporter
Transporter Name,Nome Transporter
Transporter lorry number,Número caminhão transportador
Trash Reason,Razão lixo
Tree Type,boom Type
Tree of item classification,Árvore de classificação de itens
Trial Balance,Balancete
Tuesday,Terça-feira
Type,Tipo
Type of document to rename.,Tipo de documento a ser renomeado.
Type of employment master.,Tipo de mestre emprego.
"Type of leaves like casual, sick etc.","Tipo de folhas como etc, casual doente"
Types of Expense Claim.,Tipos de reembolso de despesas.
Types of activities for Time Sheets,Tipos de atividades para folhas de tempo
UOM,UOM
UOM Conversion Detail,UOM Detalhe Conversão
UOM Conversion Details,Conversão Detalhes UOM
UOM Conversion Factor,UOM Fator de Conversão
UOM Conversion Factor is mandatory,UOM Fator de Conversão é obrigatório
UOM Name,Nome UOM
UOM Replace Utility,UOM Utility Substituir
Under AMC,Sob AMC
Under Graduate,Sob graduação
Under Warranty,Sob Garantia
Unit of Measure,Unidade de Medida
"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).","Unidade de medida do item (por exemplo kg Unidade, não, par)."
Units/Hour,Unidades / hora
Units/Shifts,Unidades / Turnos
Unmatched Amount,Quantidade incomparável
Unpaid,Não remunerado
Unscheduled,Sem marcação
Unstop,opendraaien
Unstop Material Request,Unstop Materiaal Request
Unstop Purchase Order,Unstop Bestelling
Unsubscribed,Inscrição cancelada
Update,Atualizar
Update Clearance Date,Atualize Data Liquidação
Update Cost,Kosten bijwerken
Update Finished Goods,Afgewerkt update Goederen
Update Landed Cost,Update Landed Cost
Update Numbering Series,Update Nummering Series
Update Series,Atualização Series
Update Series Number,Atualização de Número de Série
Update Stock,Actualização de stock
Update Stock should be checked.,Atualização de Estoque deve ser verificado.
"Update allocated amount in the above table and then click ""Allocate"" button",Atualize montante atribuído no quadro acima e clique em &quot;alocar&quot; botão
Update bank payment dates with journals.,Atualização de pagamento bancário com data revistas.
Update clearance date of Journal Entries marked as 'Bank Vouchers',Goedkeuring datum actualisering van Journaalposten gemarkeerd als ' Bank Vouchers '
Updated,Atualizado
Updated Birthday Reminders,Bijgewerkt verjaardagsherinneringen
Upload Attendance,Envie Atendimento
Upload Backups to Dropbox,Carregar Backups para Dropbox
Upload Backups to Google Drive,Carregar Backups para Google Drive
Upload HTML,Carregar HTML
Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Enviar um arquivo CSV com duas colunas:. O nome antigo eo novo nome. No máximo 500 linhas.
Upload attendance from a .csv file,Carregar atendimento de um arquivo CSV.
Upload stock balance via csv.,Carregar saldo de estoque via csv.
Upload your letter head and logo - you can edit them later.,Upload uw brief hoofd en logo - u kunt ze later bewerken .
Uploaded File Attachments,Geupload Bijlagen
Upper Income,Renda superior
Urgent,Urgente
Use Multi-Level BOM,Utilize Multi-Level BOM
Use SSL,Use SSL
Use TLS,gebruik TLS
User,Usuário
User ID,ID de usuário
User Name,Nome de usuário
User Properties,gebruiker Eigenschappen
User Remark,Observação de usuário
User Remark will be added to Auto Remark,Observação usuário será adicionado à observação Auto
User Tags,Etiquetas de usuários
User must always select,O usuário deve sempre escolher
User settings for Point-of-sale (POS),Gebruikersinstellingen voor Point -of-sale ( POS )
Username,Nome de Utilizador
Users and Permissions,Gebruikers en machtigingen
Users who can approve a specific employee's leave applications,Usuários que podem aprovar aplicações deixam de um funcionário específico
Users with this role are allowed to create / modify accounting entry before frozen date,Gebruikers met deze rol mogen maken / boekhoudkundige afschrijving vóór bevroren datum wijzigen
Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Gebruikers met deze rol mogen bevroren accounts en maak / boekingen tegen bevroren rekeningen wijzigen
Utilities,Utilitários
Utility,Utilidade
Valid For Territories,Válido para os territórios
Valid Upto,Válido Upto
Valid for Buying or Selling?,Válido para comprar ou vender?
Valid for Territories,Válido para Territórios
Validate,Validar
Valuation,Avaliação
Valuation Method,Método de Avaliação
Valuation Rate,Taxa de valorização
Valuation and Total,Avaliação e Total
Value,Valor
Value or Qty,Waarde of Aantal
Vehicle Dispatch Date,Veículo Despacho Data
Vehicle No,No veículo
Verified By,Verified By
View,uitzicht
View Ledger,Bekijk Ledger
View Now,Bekijk nu
Visit,Visitar
Visit report for maintenance call.,Relatório de visita para a chamada manutenção.
Voucher #,voucher #
Voucher Detail No,Detalhe folha no
Voucher ID,ID comprovante
Voucher No,Não vale
Voucher Type,Tipo comprovante
Voucher Type and Date,Tipo Vale e Data
WIP Warehouse required before Submit,WIP Warehouse necessária antes de Enviar
Walk In,Walk In
Warehouse,armazém
Warehouse ,
Warehouse Contact Info,Armazém Informações de Contato
Warehouse Detail,Detalhe Armazém
Warehouse Name,Nome Armazém
Warehouse User,Usuário Armazém
Warehouse Users,Usuários do Warehouse
Warehouse and Reference,Warehouse and Reference
Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Magazijn kan alleen via Stock Entry / Delivery Note / Kwitantie worden veranderd
Warehouse cannot be changed for Serial No.,Magazijn kan niet worden gewijzigd voor Serienummer
Warehouse does not belong to company.,Warehouse não pertence à empresa.
Warehouse is missing in Purchase Order,Warehouse ontbreekt in Purchase Order
Warehouse where you are maintaining stock of rejected items,Armazém onde você está mantendo estoque de itens rejeitados
Warehouse-Wise Stock Balance,Warehouse-sábio Stock Balance
Warehouse-wise Item Reorder,Armazém-sábio item Reordenar
Warehouses,Armazéns
Warn,Avisar
Warning: Leave application contains following block dates,Atenção: Deixe o aplicativo contém seguintes datas bloco
Warning: Material Requested Qty is less than Minimum Order Qty,Waarschuwing : Materiaal gevraagde Aantal minder dan Minimum afname
Warranty / AMC Details,Garantia / AMC Detalhes
Warranty / AMC Status,Garantia / AMC Estado
Warranty Expiry Date,Data de validade da garantia
Warranty Period (Days),Período de Garantia (Dias)
Warranty Period (in days),Período de Garantia (em dias)
Warranty expiry date and maintenance status mismatched,Garantie vervaldatum en onderhoudstoestand mismatch
Website,Site
Website Description,Descrição do site
Website Item Group,Grupo Item site
Website Item Groups,Item Grupos site
Website Settings,Configurações do site
Website Warehouse,Armazém site
Wednesday,Quarta-feira
Weekly,Semanal
Weekly Off,Weekly Off
Weight UOM,Peso UOM
"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Gewicht wordt vermeld , \ nGelieve noemen "" Gewicht Verpakking "" te"
Weightage,Weightage
Weightage (%),Weightage (%)
Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,"Welkom bij ERPNext . In de komende paar minuten zullen we u helpen opzetten van je ERPNext account. Probeer en vul zo veel mogelijk informatie je hebt , zelfs als het duurt een beetje langer . Het zal u een hoop tijd later besparen . Good Luck !"
What does it do?,Wat doet het?
"When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.","Quando qualquer uma das operações verificadas estão &quot;Enviado&quot;, um e-mail pop-up aberta automaticamente para enviar um e-mail para o associado &quot;Contato&quot;, em que a transação, com a transação como um anexo. O usuário pode ou não enviar o e-mail."
"When submitted, the system creates difference entries ",
Where items are stored.,Onde os itens são armazenados.
Where manufacturing operations are carried out.,Sempre que as operações de fabricação são realizadas.
Widowed,Viúva
Will be calculated automatically when you enter the details,Será calculado automaticamente quando você digitar os detalhes
Will be updated after Sales Invoice is Submitted.,Será atualizado após a factura de venda é submetido.
Will be updated when batched.,Será atualizado quando agrupadas.
Will be updated when billed.,Será atualizado quando faturado.
With Operations,Com Operações
With period closing entry,Met periode sluitpost
Work Details,Detalhes da Obra
Work Done,Trabalho feito
Work In Progress,Trabalho em andamento
Work-in-Progress Warehouse,Armazém Work-in-Progress
Working,Trabalhando
Workstation,Estação de trabalho
Workstation Name,Nome da Estação de Trabalho
Write Off Account,Escreva Off Conta
Write Off Amount,Escreva Off Quantidade
Write Off Amount <=,Escreva Off Valor &lt;=
Write Off Based On,Escreva Off Baseado em
Write Off Cost Center,Escreva Off Centro de Custos
Write Off Outstanding Amount,Escreva Off montante em dívida
Write Off Voucher,Escreva voucher
Wrong Template: Unable to find head row.,Template errado: Não é possível encontrar linha cabeça.
Year,Ano
Year Closed,Ano Encerrado
Year End Date,Eind van het jaar Datum
Year Name,Nome Ano
Year Start Date,Data de início do ano
Year Start Date and Year End Date are already set in Fiscal Year: ,
Year Start Date and Year End Date are not within Fiscal Year.,Jaar Start datum en jaar Einddatum niet binnen boekjaar .
Year Start Date should not be greater than Year End Date,Jaar Startdatum mag niet groter zijn dan Jaar einddatum
Year of Passing,Ano de Passagem
Yearly,Anual
Yes,Sim
You are not allowed to reply to this ticket.,Het is niet toegestaan ​​om te reageren op dit kaartje .
You are not authorized to do/modify back dated entries before ,Você não está autorizado a fazer / modificar volta entradas datadas antes
You are not authorized to set Frozen value,U bent niet bevoegd om Frozen waarde in te stellen
You are the Expense Approver for this record. Please Update the 'Status' and Save,U bent de Expense Approver voor dit record . Werk van de 'Status' en opslaan
You are the Leave Approver for this record. Please Update the 'Status' and Save,U bent de Leave Approver voor dit record . Werk van de 'Status' en opslaan
You can Enter Row only if your Charge Type is 'On Previous Row Amount' or ' Previous Row Total',U kunt invoeren Row alleen als uw Charge Type is 'On Vorige Row Bedrag ' of ' Vorige Row Total'
You can enter any date manually,Você pode entrar em qualquer data manualmente
You can enter the minimum quantity of this item to be ordered.,Você pode inserir a quantidade mínima deste item a ser ordenada.
You can not change rate if BOM mentioned agianst any item,U kunt geen koers veranderen als BOM agianst een item genoemd
You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,Je kunt niet Geen Voer beide Delivery Note en verkoopfactuur Nee Geef iemand.
"You can start by selecting backup frequency and \
					granting access for sync",
You can submit this Stock Reconciliation.,U kunt indienen dit Stock Verzoening .
You can update either Quantity or Valuation Rate or both.,U kunt Hoeveelheid of Valuation Rate of beide te werken.
You cannot Enter Row no. greater than or equal to current row no. for this Charge type,U kunt Rij niet Enter nee. groter dan of gelijk aan huidige rij niet . voor dit type Charge
You cannot deduct when category is for 'Valuation' or 'Valuation and Total',Je kunt niet aftrekken als categorie is voor ' Valuation ' of ' Valuation en Total '
You cannot directly enter Amount and if your Charge Type is Actual enter your amount in Rate,U kunt niet rechtstreeks Bedrag invoeren en als uw Charge Type is Actual Voer uw bedrag in Rate
You cannot give more than ,
You cannot select Charge Type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,U kunt Charge Type niet selecteren als 'On Vorige Row Bedrag ' of ' On Vorige Row Totaal ' voor de eerste rij
You cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'Total' option for previous row amount or previous row total,U kunt het type lading niet selecteren als 'On Vorige Row Bedrag ' of ' On Vorige Row Totaal ' voor waardering . U kunt alleen ' Totaal ' optie voor de vorige rij bedrag of vorige rijtotaal selecteren
You have entered duplicate items. Please rectify and try again.,U heeft dubbele items ingevoerd. Aub verwijderen en probeer het opnieuw .
You may need to update: ,Você pode precisar atualizar:
You must ,
Your Customer's TAX registration numbers (if applicable) or any general information,Seu cliente FISCAIS números de inscrição (se aplicável) ou qualquer outra informação geral
Your Customers,uw klanten
Your ERPNext subscription will,Uw ERPNext abonnement
Your Products or Services,Uw producten of diensten
Your Suppliers,uw Leveranciers
Your sales person who will contact the customer in future,Sua pessoa de vendas que entrará em contato com o cliente no futuro
Your sales person will get a reminder on this date to contact the customer,Seu vendedor receberá um lembrete sobre esta data para contato com o cliente
Your setup is complete. Refreshing...,Uw installatie is voltooid . Verfrissend ...
Your support email id - must be a valid email - this is where your emails will come!,O seu ID e-mail de apoio - deve ser um email válido - este é o lugar onde seus e-mails virão!
already available in Price List,reeds beschikbaar in prijslijst
already returned though some other documents,al teruggekeerd hoewel sommige andere documenten
also be included in Item's rate,também ser incluído na tarifa do item
and,e
"and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM","en "" Is Sales Item"" ""ja"" en er is geen andere Sales BOM"
"and create a new Account Ledger (by clicking on Add Child) of type ""Bank or Cash""","en maak een nieuwe account Ledger ( door te klikken op Toevoegen Kind ) van het type "" Bank of Cash """
"and create a new Account Ledger (by clicking on Add Child) of type ""Tax"" and do mention the Tax rate.","en maak een nieuwe account Ledger ( door te klikken op Toevoegen Kind ) van het type "" Tax"" en niet vergeten het belastingtarief."
and fiscal year: ,
are not allowed for,não são permitidas para
are not allowed for ,
are not allowed.,zijn niet toegestaan ​​.
assigned by,atribuído pela
but entries can be made against Ledger,maar items kunnen worden gemaakt tegen Ledger
but is pending to be manufactured.,maar hangende is te vervaardigen .
cancel,cancelar
cannot be greater than 100,não pode ser maior do que 100
dd-mm-yyyy,dd-mm-aaaa
dd/mm/yyyy,dd / mm / aaaa
deactivate,desativar
discount on Item Code,korting op Item Code
does not belong to BOM: ,não pertence ao BOM:
does not have role 'Leave Approver',não tem papel de &#39;Leave aprovador&#39;
does not match,não corresponde
"e.g. Bank, Cash, Credit Card","por exemplo Banco, Dinheiro, cartão de crédito"
"e.g. Kg, Unit, Nos, m","kg por exemplo, Unidade, n, m"
eg. Cheque Number,por exemplo. Número de cheques
example: Next Day Shipping,exemplo: Next Day envio
has already been submitted.,al is ingediend .
has been entered atleast twice,foi inserido pelo menos duas vezes
has been made after posting date,is geboekt na het posten datum
has expired,heeft verlopen
have a common territory,tem um território comum
in the same UOM.,in dezelfde Verpakking .
is a cancelled Item,é um item cancelado
is not a Stock Item,não é um item de estoque
lft,lft
mm-dd-yyyy,mm-dd-aaaa
mm/dd/yyyy,dd / mm / aaaa
must be a Liability account,moet een Aansprakelijkheid rekening worden
must be one of,deve ser um dos
not a purchase item,não é um item de compra
not a sales item,não é um item de vendas
not a service item.,não é um item de serviço.
not a sub-contracted item.,não é um item do sub-contratado.
not submitted,niet ingediend
not within Fiscal Year,não dentro de Ano Fiscal
of,de
old_parent,old_parent
reached its end of life on,chegou ao fim da vida na
rgt,rgt
should be 100%,deve ser de 100%
the form before proceeding,het formulier voordat u verder gaat
they are created automatically from the Customer and Supplier master,"ze worden automatisch gemaakt op basis van cliënt en leverancier, meester"
"to be included in Item's rate, it is required that: ","para ser incluído na taxa do item, é necessário que:"
to set the given stock and valuation on this date.,aan de gegeven voorraad en de waardering die op deze datum.
usually as per physical inventory.,meestal als per fysieke inventaris .
website page link,link da página site
which is greater than sales order qty ,que é maior do que as vendas ordem qty
yyyy-mm-dd,aaaa-mm-dd
