Novas funcionalidades brasileiras no Roll-Up 5 do Dynamics AX 2009 1 Agosto de 2010

Preview:

Citation preview

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

Recommended