Funcionalidades do Dynamics Ax RU5

Report
Novas funcionalidades brasileiras no
Roll-Up 5 do
Dynamics AX 2009
Agosto de 2010
1
Agenda
•
•
•
•
•
Transferência de crédito de ICMS – 40 minutos
Melhorias na área contábil – 30 minutos
Coffee Break – 20 minutos
Nota Fiscal Eletrônica – 30 minutos
Importação – 30 minutos
2
Recursos Disponíveis
• PartnerSource
• Microsoft Dynamics Developer Center
– http://msdn.microsoft.com/ptbr/dynamics/default.aspx
• Blogs
–
–
–
–
www.joelpereira.com – Joel Pereira
www.daniellandi.com – Daniel Landi
www.fabiovazquez.com – Fabio Vazquez
www.eduardomiranda.net – Eduardo Miranda
– www.daxdev.com.br – Rodrigo Matiazo
3
Transferência de Crédito de ICMS
Fábio Vazquez
Software Development Engineer
Contextualizando
• Quando uma empresa brasileira compra produtos, ela
acumula crédito de ICMS
• Quando ela vende produtos, ICMS é devido ao fisco
• Algumas vezes, o crédito de ICMS é maior
• Nesses casos, a empresa pode transferir o crédito para
outras empresas
• A nova funcionalidade suporta a operação de
transferência de crédito entre estabelecimentos de
mesma titularidade
• Operações de transferência de crédito de ICMS
requerem a emissão de uma Nota Fiscal
Contabilização
• Quando uma empresa transfere crédito de ICMS para
outra:
Debita
Conta do Passivo
Credita
ICMS a Recuperar
• Quando uma empresa recebe crédito de ICMS:
Debita
ICMS a Recuperar
Credita
Conta do Ativo
Transações
• Transações criadas por uma operação de
transferência de crédito de ICMS:
– Contabilidade (LedgerTrans)
– Imposto (TaxTrans)
Desafios
• Ax não oferecia nenhum tipo de documento que
suportasse os requerimentos de uma operação
de transferência de crédito de ICMS
• Assim, desenvolvemos um tipo completamente
novo de documento para registrar essas
operações
• Suporte para cancelamento
• O “posting” de impostos deveria ser desenvolvido
dentro do design de classes do Ax (Hierarquia de
classes Tax)
• Suporte para NF-e
Setup
• Contas a Receber > Perfis de Lançamento
• Contas a Pagar > Perfis de Lançamento
• Parâmetros Brasileiros (para configuração da
integração fiscal)
Demo
• Setup
• Lançamento de Nota Fiscal de saída para
transferência de crédito de ICMS para filial
Modelo de Dados
Tabelas Novas
Tabelas existentes
Tax supporting classes
Nova classe
Tax
Classes existentes
TaxFiscalDocument_BR
TaxFiscalDocument_Invoice_BR
Tax supporting classes
TradeCalcTax
Nova classe
Classes existentes
FiscalDocumentCalcTax_BR
FiscalDocumentCalcTax_Invoice_BR
FiscalDocumentCalcTax_Order_BR
Tax supporting classes
TradeTotals
Novas classes
Classe existente
FiscalDocumentTotals_BR
FiscalDocumentTotals_Invoice_BR
FiscalDocPostJob_BR
• RunBaseBatch
• Algumas responsabilidades importantes:
– Criar números de voucher/nota fiscal
– Gerar transações de taxas /contábeis
– Gerar dados nas tabelas
FiscalDocPostedJour_BR/FiscalDocPostedTrans_BR
– Chamar o processo de post de notas fiscais/NF-e
Upgrade Scripts
• Dois novos scripts
(ReleaseUpdateDB60_Cust):
– updateAccountTypeFieldInFiscalDocJour_BR
• Atualiza a coluna AccountType (Customer|Vendor) que
foi adicionada à tabela FiscalDocJour_BR.
– updateReferencesInEFDocument_BR
• Todas as referências em EFDocument_BR apontam
agora para FiscalDocJour_BR.
RU5 Funcionalidades
AX 2009 – RU5
17
Agenda
 Numeração de Livros
Termo de Abertura/Encerramento
Validações / Relatórios alterados
Aspectos técnicos
 Substituição Tributária - Compras
Exemplo
 Texto de Transação
Juros
Multa
Retenção
18
Numeração de Livros
Termo de Abertura/Encerramento
Todos os Livros Fiscais possuem termos de abertura e encerramento
 Termo de Abertura é sempre a primeira página do livro fiscal
 Termo de Encerramento é sempre a última página do livro fiscal
 Texto
 Presença de “marcadores” para substituição por dados pré-definidos
-
Book number (%1), page number (%2), company name (%3), address (%4), CNPJ (%5)
19
Numeração de Livros
 Livros
Máximo de páginas 500 (incluindo o Termo de
Abertura e Encerramento)
Impressão do número do Livro
Informação fornecida pelo usuário
Impressão do número da página (obrigatória se o
número do livro for informado)
Informação fornecida pelo usuário
Validações
Número da pagina (se informado o número do livro)
Intervado possível do número da pagina (2 – 499)
20
Numeração de Livros
Relatórios modificados
Diário
Balancete
Financial Statement Report
Razão
 Detalhe Técnico
 Todas as validações são controladas por uma única nova classe
21
Substituição Tributária
Definição
A Substituição Tributária pode ser conceituada
como sendo o regime pelo qual a
responsabilidade pelo ICMS devido em relação às
operações ou prestações de serviços é atribuída a
outro contribuinte
Esta funcionalidade já esta existe no AX, no
processamento de Vendas (AR)
22
Texto de Transação
 Visão Geral
Todas as transações contábeis devem ter um texto
(histórico contábil) que define/explica a transaçao
Juros, multas e retenção agora possuem textos de
transação
Novo “marcador” (%7) disponível para os textos de
transação (representando nome do Fornecedor /
Cliente)
Obrigatoriedade dos Textos de transação nos
pagamentos
Upgrade script
Private & Confidential
23
Texto de Transação
 As seguintes transações contábeis agora possuem textos de
transação:
Vendas – Retençao (Customer Payment withholding tax)
Vendas – Multa (Customer Payment Fine)
Vendas – juros (Customer Payment Interest)
Compras – Retenção (Vendor Payment Withholding Tax)
Compras – Multa (Vendor Payment Fine)
Compras – Juros (Vendor Payment Interest)
 Textos de transação agora são obrigatórios nos pagamentos
 Substituição de marcadores nos textos de transação nas telas de
pagamento
 Placeholders
 %1 (data), %2 (form), % 3 (voucher)... %7 (customer name)
24
Texto de Transação
 Juros e Multa
 Classe CustVendSettle é responsável também por definir os textos de
juros e multa
 Enumeração “ledgerTransTxt” é definido dependendo do tipo de transação
25
Texto de Transação
 Retenção
 LedgerTransTxt will be setup with new element for withholding tax
26
Texto de Transação
Tela de pagamento
Os marcadores dos textos de transação são
substituídos tão logo o usuário informa o texto
(histórico).
O texto de transação é apagado toda vez que
alguma informação referenciada pelos marcadores
é alterada.
27
Texto de Transação
Upgrade Script
Textos de transações serão atualizados conforme
regra abaixo, na instalação do RU5
 Juros e Multas (Compras /Vendas)
“fatura” + “: ” + %2 + “ – “ + %3 + “ – “ + %7
 Retenção (Compras / Vendas)
%5 + “ - ” + “fatura” + “: ” %2+ “ – “ + %3 + “ – “ + %7
(%5 = withholding tax type)
28
NF-e federal - AX2009
Versão 4.0
29
Agenda
• Review NF-e
• Mudanças no design
• Novas funcionalidades
30
Sobre a NF-e
• Substitui a nota fiscal impressa
• NF-e consiste nos seguintes processos:
- Envio do documento em xml para o governo
- SEFAZ processa a NF-e e retorna uma mensagem de confirmação para a
empresa. O retorno pode ser: aprovado, negado ou rejeitado
- Uma vez aprovada, a empresa imprime a DANFE.
- A empresa deve imprimir a DANFE em contigência em caso de problemas de
comunicação.
- NF-e pode ser cancelada a quealquer momento em um prazo máximo de 7
dias após a aprovação
31
Sobre a NF-e
• NF-e:
–
–
–
–
Nota fiscal de venda
Nota fiscal de texto livre
Devolução de compra
Nota fiscal de compra quando o fornecedor não é contribuinte de ICMS
• Não é NF-e:
– Devoluções de venda – cliente envia nota fiscal de devolução, a empresa somente recebe a
nota fiscal.
– Pedidos de compra quando o fornecedor é contribuinte de ICMS
– Nota de crédito gerada pelo processo de cancelamento de uma nota fiscal ja emitida.
•
Fora de escopo (localização):
– Devolução de venda – emissão da devolução pela prórpia empresa
•
Fora de escopo (NF-e)
– Delivery Slip
– Nota Fiscal de projetos
32
Modelo Operacional
• Empresa gera um XML que deve ser assinado
digitalmente utilizando um certificado digital
• XML é transmitido para a SEFAZ, que faz uma
validação e devolve uma autorização de uso. Sem
essa autorização não pode haver trânsito da
mercadoria
• Para acompanhar a mercadoria é impresso uma
representação da NF-e chamada DANFE que
contém a chave de acesso e código de barras.
33
Comunicação
34
Setup da NF-e até RU4
• Imporar o certificado digital
– Dar permissão de leitura ao usuário do AOS
• Setup dos Web Services
– Criar Web Services (NF-e, Retorno NFe,Cancelamento, Inutilização, Consulta)
– Configurar o WCF client para utilizar o certificado
• Códigos de Retorno
– Carregar codigos de retorno
• Tipo de Documento Fiscal
– Criar novo para modelo 55
Estados e mensages
36
Certificado Digital
Se o certificado não apresentar uma
chave significa que a chave privada
não foi importada e não sera
possível assinar o xml da NF-e
Private & Confidential
37
NF-e v4.0
MUDANÇAS NO DESIGN
38
Mudanças na UI
• Parâmetros Brasileiros
– Versão da NF-e
• Nenhuma nota fiscal deve estar no estado rejeitado ou
mensagem no estado enviado
– Arquivo de esquema da NF-e
– Seleção do formato pela versão ao invés da classe
• Form Nota Fiscal eletrônica – NF-e
– Saída/Entrada ao invés de Cliente/Fornecedor
– Tempo médio de resposta
39
Setup da NF-e RU5 (v4.0)
• Imporar o certificado digital
– Dar permissão de leitura ao usuário do AOS
• Setup dos Web Services
– Criar Web Services (NF-e, Retorno NFe,Cancelamento, Inutilização, Consulta)
– Configurar o WCF client para utilizar o certificado
• Códigos de Retorno
– Carregar codigos de retorno
• Tipo de Documento Fiscal
– Criar novo para modelo 55
40
Modelo estatico – RU4
41
Principais mudanças
• Transport: acesso direto as classes WCF client
• Validações no registro da nota
– V3: ICMS obrigatório para todas linha da nota
– V4: ISS ou ICMS obrigatório para todas linha da
nota
• Chave de acesso é diferente entre v3 e v4
42
RU4 and New RU5 Design
• RU4: Cada objeto é responsável por instanciar
sua classe.
• RU5: Transferência de responsabilidade para
uma nova classe que instancia a classe
baseada na versão ativa
EFDocClassFactory
+createMsgFormat(in webServiceEnum)
+createSendTransport(in messageTypeEnum)
+createReturnTransport(in messageTypeEnum)
+createInquireTransport(in messageTypeEnum)
+createValidation(in common)
+generateAccessKey(in eFdocument : EFiscalDocument_BR)
-generateAccessKeyV3()
-generateAccessKeyV4()
+createFormatLookup()
43
Validation – Post Invoice
• RU4
• RU5
validation
validation
classFactory
constructFromCustInvoiceJour
constructFromCustInvoiceJour
createValidation
new()
new()
checkPerLine
checkPerLine()
checkTaxesPerLine()
44
Access key
• RU4
• RU5
efDocState
efDocState
createFromFiscalDoc()
createFromFiscalDoc
new
new()
initFromFiscalDoc
initFromFiscalDoc()
initializeEFDocument
initializeEFDocument()
generateNumericCode
classFactory
generateNumericCode()
generateAccessKey
generateAccessKeyV3()
generateAccessKey()
{OR}
generateAccessKeyV4()
accessKey
return
return
45
RU4 – Format class
exporter
TransportFactory
«implementation class»
transport
«implementation class»
stream
«implementation class»
message
«implementation class»
format
getSendTransport(messageTypeEnum)
newFromWebService(webServiceEnum)
new:=new()
createFromMessageType:=createFromMessageType(messageType)
send(list, transport)
getSendStream:=getSendStream()
createMsgFormat(webServiceEnum)
construct
write(sendStream, list)
write(msgContent)
send()
callWebService(setup, msgData)
write(returnData)
getSendStream:=getSendStream()
read(returnData, returnInfo)
«implementation class»
eFDocState
saveMsg()
messageSent(eFDocument, returnInfo)
46
RU5 – Format Class
47
RU4: Chamada web service
• Chama os proxies por .net reflection
• Usuário precisa configurar manualmente o
app.config do cliente WCF para usar o
certificado
• Todos os webservices tem duas strings como
argumentos
– XML Version
– XML data
48
RU5- Chamada web service
• Chama WFC client por .net reflection
• Não usa o WCF app.config, usuário não
precisa configurar o app.config
• Todos os webservices tem xmlNodes como
argumento
49
Mudanças no modelo de dados
CustInvoiceJour
1..1
EFiscalDocument_BR
1..1
VendInvoiceJour
1..1
1..1
FiscalDocJour_BR
Alterações relacionadas à NF-e
VendInvoiceJour
CustInvoiceJour
Alterações relacionadas à NF-e
FiscalDocJour_BR
Entradas
Saídas
EFDocMsgExporter_BR
• RU4: Queries baseadas na tabelas Cust/Vend
invoiceJour
• RU5: Queries feita diretamente na tabela
FiscalDocJour_BR
53
EFDocState_BR
• RU4: Acoplado com tabelas Cust/Vend
invoiceJour tables, que causa uma série de
chamadas switch/case nos métodos
• RU5: Somente acoplada com a FiscalDocJour
table
54
NF-e v4.0
NEW FEATURES
55
New Features
• XML viewer
• XML schema validation
56
RU4 – Bugs corrigidos
• Somente a primeira NF-e é aprovado quando
mais de uma nota fislcal é enviada
• Distinghished name do certificado muito
longo
• Nós de valores das linhas não eram criado
quando o valor era zero
57
Know issues
• Função de exportar notas fiscais aprovadas
sem assinatura
• Erro na validação do CPF quando é emitida
uma NF-e para uma pessoa física
• Nem todas as mensagens XML tem a tag
<?xml encoding=UTF-8 />
58
Problemas com o SEFAZ/PR
• Problema: A SEFAZ/PR implementou o WSDL dos
webservices Consulta da Nf-e, Cancelamento,
Recepção, Retorno do processamento do Lote e
Inutilização de uma maneira diferente da
SEFAZ/SP e SEFAZ/RS.
• Baixe o WSDL do site da SEFAZ/RS, descompacte
em um diretório, verifique se o usuário do AOS
tem acesso de leitura a esse diretório, atribua o
acesso de leitura ao diretório caso ele não tenha.
Private & Confidential
59
Other resources
• Chapter 8 of Administration in Microsoft
Dynamics® AX 2009 - Batch Framework
• Web services de teste
60
Importação direta
61
Agenda
• Overview da importação direta
• Feature Walktrought
– Novos requisitos de setup
– Novas informação necessárias no faturamento
– Novos forms de consulta
• Visão geral do design e implementação
– Class diagrams
– E/R diagrams
62
Importação Direta
• Nota Fiscal emitida para declarar a compra de
produtos de um fornecedor estrangeiro
• Encargos da importação são adicionados no
processo de desembaraço, não são pagos ao
fornecedor estrangeiro mas fazem parte da
base de calculo dos impostos
63
Processo
64
Incidência de impostos
• Imposto de importação
• IPI
• PIS/COFINS
– Factor = (1+%ICMS *( %II+%IPI *(1+%II))) / (( 1 %PIS - %COFINS) *(1 - %ICMS))
• ICMS
– Fator = (∑impostos)/(1-%ICMS)
65
Encargos aplicados
• Freight
• Insurance
• SISCOMEX charge (somente ao ICMS)
66
Contabilidade
Ledger account Account name
2102010299 FORNECEDORES ESTRANGEIROS
Currency Amount currency Posting type
USD
1104010601 IMPORTACOES EM ANDAMENTO USD
1104010601 IMPORTACOES EM ANDAMENTO USD
-1000 Vendor balance
-63,63 Purchase fee
-661,15 Sales tax
Amount
-2200
-139,99
-1454,53
1104010301 MATERIAS PRIMAS
USD
63,63 Purchase, receipt
139,99
1104010301 MATERIAS PRIMAS
USD
1100 Purchase, receipt
2420
1103060109 COFINS A COMPENSAR
USD
110,81 Sales tax
243,78
1103060108 PIS A COMPENSAR
USD
24,06 Sales tax
52,93
1103060102 ICMS A COMPENSAR
USD
311,28 Sales tax
684,82
1103060101 IPI A COMPENSAR
USD
115 Sales tax
253
67
FEATURES
68
Novos requisitos de setup
• Importação direta é ativado ao usar CFOP
3.###
• Impostos
– Campo “Marginal Base” deve ser “Net amount of
invoice balance”
– Todos os impostos devem ser marcados como
“Use Tax” no form de grupo de impostos
• Encargos
– Novo tipo de encargo: SISCOMEX
Private & Confidential
69
New Features
• Form de declaração de importação
• Mudança nos totais para apresentação dos
impostos brasileiros
• Ajustes na Nota Fiscal e DANFE
• Ajustes no xml da NF-e (formato 1.10 e 2.00)
70
ER AND SEQUENCE DIAGRAMS
Private & Confidential
71
Added Tables
Private & Confidential
72
Calculation Sequence diagram
«implementation class»
PurchCalcTax
«implementation class»
TaxPurch
new(purchCalcTax)
getTaxParm_BR()
calc()
for each document line
nextLine()
baseAmount:=baseAmount()
insertLineInInternal(baseAmount)
for each taxWorkTrans
determineSign_BR()
{isFinalUser}
determineFinalUserBase_BR()
{isDirectImport}
determineDirectImportBase_BR()
{TaxLimitBase != Invoice}
insertInternalStructure(taxCode, baseAmountMST)
calcTax()
taxAmount
Private & Confidential
73
Post Sequence Diagram
«implementation class»
PurchCalcTax
«implementation class»
TaxPurchInvoice
Tax
post(ledgerVoucher)
new(post, purchCalcTax, ledgerVoucher, tmpTaxWorkTrans)
foreach line
updateAndPost()
saveAndPost
foreach taxWorkTrans
post
Private & Confidential
74
Upgrade scripts
• Todos os campos de valores da tabela
FiscalDocJour_BR são atualizados na moeda
da empresa
Private & Confidential
75
76

similar documents