Funcionalidades do Dynamics Ax RU5

Download Report

Transcript Funcionalidades do Dynamics Ax RU5

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/pt br/dynamics/default.aspx

Blogs – www.joelpereira.com

– www.daniellandi.com

– – – Joel Pereira – 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 Credita Conta do Passivo ICMS a Recuperar

• Quando uma empresa recebe crédito de ICMS:

Debita Credita ICMS a Recuperar 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

Nova classe 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 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

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 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 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 constructFromCustInvoiceJour validation constructFromCustInvoiceJour createValidation classFactory new() new() checkPerLine checkPerLine() checkTaxesPerLine() 44

Access key

• RU4 efDocState createFromFiscalDoc() new() initFromFiscalDoc() initializeEFDocument() generateNumericCode() generateAccessKey() return • RU5 efDocState createFromFiscalDoc new initFromFiscalDoc initializeEFDocument generateNumericCode classFactory generateAccessKey generateAccessKeyV3() {OR} generateAccessKeyV4() accessKey return 45

exporter

RU4 – Format class

TransportFactory «implementation class» transport «implementation class» stream «implementation class» message getSendTransport(messageTypeEnum) newFromWebService(webServiceEnum) new:=new() createFromMessageType:=createFromMessageType(messageType) send(list, transport) getSendStream:=getSendStream() «implementation class» format createMsgFormat(webServiceEnum) construct send() callWebService(setup, msgData) write(returnData) getSendStream:=getSendStream() write(sendStream, list) write(msgContent) 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

1..1

CustInvoiceJour EFiscalDocument_BR 1..1

1..1

VendInvoiceJour 1..1

FiscalDocJour_BR

Alterações relacionadas à NF-e

CustInvoiceJour VendInvoiceJour

Alterações relacionadas à NF-e

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 58

Problemas com o SEFAZ/PR

• • Problema: A SEFAZ/PR implementou o WSDL webservices Consulta da Nf-e, Cancelamento, dos 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.

59

Private & Confidential

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 -1000 Vendor balance 1104010601 IMPORTACOES EM ANDAMENTO USD 1104010601 IMPORTACOES EM ANDAMENTO USD -63,63 Purchase fee -661,15 Sales tax 1104010301 MATERIAS PRIMAS 1104010301 MATERIAS PRIMAS 1103060109 COFINS A COMPENSAR 1103060108 PIS A COMPENSAR 1103060102 ICMS A COMPENSAR 1103060101 IPI A COMPENSAR USD USD USD USD USD USD 63,63 Purchase, receipt 1100 Purchase, receipt 110,81 Sales tax 24,06 Sales tax 311,28 Sales tax 115 Sales tax Amount -2200 -139,99 -1454,53 139,99 2420 243,78 52,93 684,82 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 69

Private & Confidential

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» «implementation class» PurchCalcTax TaxPurch new(purchCalcTax) getTaxParm_BR() calc() nextLine() for each document line 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 post(ledgerVoucher) «implementation class» TaxPurchInvoice new(post, purchCalcTax, ledgerVoucher, tmpTaxWorkTrans) foreach line updateAndPost()

saveAndPost post

Tax foreach taxWorkTrans

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