Novas funcionalidades brasileiras no Roll-Up 5 do Dynamics AX 2009 1 Agosto de 2010.
Transcript of Novas funcionalidades brasileiras no Roll-Up 5 do Dynamics AX 2009 1 Agosto de 2010.
Novas funcionalidades brasileiras no Roll-Up 5 do
Dynamics AX 2009
1
Agosto de 2010
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/pt-br/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 VazquezSoftware 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:
• Quando uma empresa recebe crédito de ICMS:
Debita Conta do Passivo
Credita ICMS a Recuperar
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
Tax
TaxFiscalDocument_BR TaxFiscalDocument_Invoice_BR
Nova classe
Classes existentes
Tax supporting classes
TradeCalcTax
FiscalDocumentCalcTax_BR
FiscalDocumentCalcTax_Invoice_BR FiscalDocumentCalcTax_Order_BR
Nova classe
Classes existentes
Tax supporting classes
TradeTotals
FiscalDocumentTotals_BR
FiscalDocumentTotals_Invoice_BR
Novas classes
Classe existente
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.
17
AX 2009 – RU5
RU5 Funcionalidades
Agenda
Numeração de Livros Termo de Abertura/EncerramentoValidações / Relatórios alteradosAspectos técnicos
Substituição Tributária - ComprasExemplo
Texto de TransaçãoJurosMultaRetenção
18
Numeração de Livros
Termo de Abertura/EncerramentoTodos 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
LivrosMáximo de páginas 500 (incluindo o Termo de
Abertura e Encerramento)Impressão do número do Livro
Informação fornecida pelo usuárioImpressão do número da página (obrigatória se o
número do livro for informado)Informação fornecida pelo usuário
ValidaçõesNú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 modificadosDiário BalanceteFinancial Statement ReportRazão
Detalhe Técnico Todas as validações são controladas por uma única nova classe
21
Substituição Tributária
DefiniçãoA 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 GeralTodas as transações contábeis devem ter um texto
(histórico contábil) que define/explica a transaçaoJuros, multas e retenção agora possuem textos de
transaçãoNovo “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
25
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
Texto de Transação
Retenção LedgerTransTxt will be setup with new element for withholding tax
26
Texto de Transação
Tela de pagamentoOs 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 ScriptTextos 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
29
Versão 4.0
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 NF-
e,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
Private & Confidential 37
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
MUDANÇAS NO DESIGNNF-e v4.0
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)
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
43
+createMsgFormat(in webServiceEnum)+createSendTransport(in messageTypeEnum)+createReturnTransport(in messageTypeEnum)+createInquireTransport(in messageTypeEnum)+createValidation(in common)+generateAccessKey(in eFdocument : EFiscalDocument_BR)-generateAccessKeyV3()-generateAccessKeyV4()+createFormatLookup()
EFDocClassFactory
• RU4 • RU5
44
Validation – Post Invoice
validation
constructFromCustInvoiceJour
new()
checkPerLine()
validation
constructFromCustInvoiceJour
checkPerLine
classFactory
createValidation
new()
checkTaxesPerLine()
• RU4 • RU5
45
Access key
efDocState
createFromFiscalDoc()
new()
initFromFiscalDoc()
initializeEFDocument()
generateNumericCode()
generateAccessKey()
return
efDocState
createFromFiscalDoc
new
initFromFiscalDoc
initializeEFDocument
generateNumericCode
return
classFactory
generateAccessKey
generateAccessKeyV3()
generateAccessKeyV4()
{OR}
accessKey
RU4 – Format class
46
TransportFactory «implementation class»format
«implementation class»message
«implementation class»transport
«implementation class»stream
exporter
send(list, transport)
getSendStream:=getSendStream()
newFromWebService(webServiceEnum)
construct
write(sendStream, list)
write(msgContent)
new:=new()
send()
getSendStream:=getSendStream()
read(returnData, returnInfo)
callWebService(setup, msgData)
write(returnData)
saveMsg()
«implementation class»eFDocState
messageSent(eFDocument, returnInfo)
createFromMessageType:=createFromMessageType(messageType)
getSendTransport(messageTypeEnum)
createMsgFormat(webServiceEnum)
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
EFiscalDocument_BREFiscalDocument_BR
CustInvoiceJourCustInvoiceJour
VendInvoiceJourVendInvoiceJour
FiscalDocJour_BRFiscalDocJour_BR
1..1
1..1
1..1
1..1
Alterações relacionadas à NF-e
CustInvoiceJour
VendInvoiceJour
Alterações relacionadas à NF-e
FiscalDocJour_BR
Saídas
Entradas
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
NEW FEATURESNF-e v4.0
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 Currency Amount currency Posting type Amount
2102010299 FORNECEDORES ESTRANGEIROS USD -1000 Vendor balance -2200
1104010601 IMPORTACOES EM ANDAMENTO USD -63,63 Purchase fee -139,99
1104010601 IMPORTACOES EM ANDAMENTO USD -661,15 Sales tax -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
Private & Confidential 73
«implementation class»TaxPurch
«implementation class»PurchCalcTax
new(purchCalcTax)
getTaxParm_BR()
calc()
insertLineInInternal(baseAmount)
nextLine()
for each document line
for each taxWorkTrans
determineSign_BR()
determineFinalUserBase_BR()
determineDirectImportBase_BR()
{isFinalUser}
{isDirectImport}
insertInternalStructure(taxCode, baseAmountMST)
{TaxLimitBase != Invoice}
baseAmount:=baseAmount()
calcTax()
taxAmount
Post Sequence Diagram
Private & Confidential 74
Tax«implementation class»
TaxPurchInvoice«implementation class»
PurchCalcTax
post(ledgerVoucher)
new(post, purchCalcTax, ledgerVoucher, tmpTaxWorkTrans)
foreach line
updateAndPost()
post
foreach taxWorkTranssaveAndPost
Upgrade scripts
• Todos os campos de valores da tabela FiscalDocJour_BR são atualizados na moeda da empresa
Private & Confidential 75
76