segunda-feira, 28 de julho de 2014

NF-e 3.0 Mudanças

16.7.2.2. ICMS [23-12-13]

Sumário

·         16.7.2.2.1. ICMS - CSOSN [23-12-13]

Grupo de ICMS da NF-e versão 3.x

Funcionalidade para gerar o XML do grupo do ICMS da NF-e 3.x

Novidades

Casas decimais - os campos de alíquota e percetual foram alterados para serem gerados com até 4 decimais, ex: 18.00, 1.234, 1.2345, etc. Os zeros não siginficativos só serão gerados para as 2 casas decimais: 18.00 (18, 18.0, 18.00, 18.000 e 18.0000 serão gerados como: 18.00)

Novas tags - criadas novas tags da operação com diferimento: vICMSOp, pDif e vICMSDif para permitir a informação do diferimento parcial.

ICMS desonerado - houve alteração na estrutura para que seja possível informar o valor do ICMS desonerado para os CST: 20, 30, 70 e 90.

Assinatura

string icms310(string orig, string CST, int modBC, double pRedBC, double vBC, double pICMS, double vICMS, int modBCST, double pMVAST, doublepRedBCST, double vBCST, double pICMSST, double vICMSST, double vBCSTRet, double vICMSSTRet, double vBCSTDest, double vICMSSTDest, intmotDesICMS, double pBCOp, string UFST, double pCredSN, double vCredICMSSN, double vICMSDeson, double vICMSOp, double pDif, doublevICMSDif)

Descrição:

Funcionalidade para gerar as informações do ICMS do item de produto da NF-e versão 3.10.

O preenchimento dos campos do grupo de ICMS são variáveis e dependem do CST - Código da Situação Tributária ou do CSOSN - código da Situação da operação do ICMS no Simples Nacional do item de produto.

A funcionalidade utiliza apenas os campos exigidos para o CST para montar o grupo de informações do ICMS, assim o usuário deve ficar atento para informar os campos que são exigidos para cada CST.

Campo

Descrição

CST
00

CST
10

CST
20

CST
30

CST
40

CST
41

CST
50

CST
51

CST
60

CST
70

CST
90

orig

Origem da mercadoria

S

S

S

S

S

S

S

S

S

S

?

CST

Tributação do ICMS

S

S

S

S

S

S

S

S

S

S

?

modBC

Modalidade de determinação da BC do ICMS

S

S

S

N

N

N

N

?

N

S

?

pRedBC

Percentual da Redução de BC

N

N

S

N

N

N

N

?

N

S

?

vBC

Valor da BC do ICMS

S

S

S

N

N

N

N

?

N

S

?

pICMS

Alíquota do imposto

S

S

S

N

N

N

N

?

N

S

?

vICMS

Valor do ICMS

S

S

S

N

N

N

N

?

N

S

?

modBCST

Modalidade de determinação da BC do ICMS ST

N

S

N

S

N

N

N

N

N

S

?

pMVAST

Percentual da margem de valor Adicionado do ICMS ST

N

S

N

S

N

N

N

N

N

S

?

pRedBCST

Percentual da Redução de BC do ICMS ST

N

?

N

?

N

N

N

N

N

?

?

vBCST

Valor da BC do ICMS ST

N

S

N

S

N

N

N

N

N

S

?

pICMSST

Alíquota do imposto do ICMS ST

N

S

N

S

N

N

N

N

N

S

?

vICMSST

Valor do ICMS ST

N

S

N

S

N

N

N

N

N

S

?

UFST

UF para qual é devido o ICMS ST

N

N

N

N

N

N

N

N

N

N

?

pBCop

Percentual da BC operação própria

N

N

N

N

N

N

N

N

N

N

?

vBCSTRet

Valor da BC do ICMS Retido Anteriormente

N

N

N

N

N

S

N

N

S

N

?

vICMSSTRet

Valor do ICMS Retido Anteriormente

N

N

N

N

N

S

N

N

S

N

?

motDesICMS

Motivo da desoneração do ICMS

N

N

?

?

?

?

?

N

N

N

?

vBCSTDest

Valor da BC do ICMS ST da UF destino

N

N

N

N

N

N

N

N

N

N

N

vICMSSTDest

Valor do ICMS ST da UF destino

N

N

N

N

N

N

N

N

N

N

N

pCredSN

Alíquota aplicável de cálculo do crédito (Simples Nacional)

N

N

N

N

N

N

N

N

N

N

N

vCredICMSSN

Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (SIMPLES NACIONAL)

N

N

N

N

N

N

N

N

N

N

N

vICMSDeson

Valor do ICMS da desoneração (campo novo)

N

N

?

?

?

?

?

N

N

?

?

vICMSOp

Valor do ICMS da Operação (campo novo)

N

N

N

N

N

N

N

?

N

N

?

pDif

percentual do diferimento (campo novo)

N

N

N

N

N

N

N

?

N

N

?

vICMSDif

Valor do ICMS Diferido (campo novo)

N

N

N

N

N

N

N

?

N

N

?

·         “S” - o campo deve ser informado, “N” - o campo não deve ser informado e “?” - a exigência do campo depende da situação fática.

Campo

Descrição

CST
ICMSPart

CST
ICMSST

orig

Origem da mercadoria

S

S

CST

Tributação do ICMS

S

S

modBC

Modalidade de determinação da BC do ICMS

S

N

pRedBC

Percentual da Redução de BC

S

N

vBC

Valor da BC do ICMS

S

N

pICMS

Alíquota do imposto

S

N

vICMS

Valor do ICMS

S

N

modBCST

Modalidade de determinação da BC do ICMS ST

S

N

pMVAST

Percentual da margem de valor Adicionado do ICMS ST

S

N

pRedBCST

Percentual da Redução de BC do ICMS ST

S

N

vBCST

Valor da BC do ICMS ST

S

N

pICMSST

Alíquota do imposto do ICMS ST

S

N

vICMSST

Valor do ICMS ST

S

N

UFST

UF para qual é devido o ICMS ST

S

N

pBCop

Percentual da BC operação própria

S

N

vBCSTRet

Valor da BC do ICMS Retido Anteriormente

N

S

vICMSSTRet

Valor do ICMS Retido Anteriormente

N

S

motDesICMS

Motivo da desoneração do ICMS

N

N

vBCSTDest

Valor da BC do ICMS ST da UF destino

N

S

vICMSSTDest

Valor do ICMS ST da UF destino

N

S

pCredSN

Alíquota aplicável de cálculo do crédito (Simples Nacional)

N

N

vCredICMSSN

Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (SIMPLES NACIONAL)

N

N

vICMSDeson

Valor do ICMS da desoneração (campo novo)

N

N

vICMSOp

Valor do ICMS da Operação (campo novo)

N

N

pDif

percentual do diferimento (campo novo)

N

N

vICMSDif

Valor do ICMS Diferido (campo novo)

N

N

·         “S” - o campo deve ser informado, “N” - o campo não deve ser informado e “?” - a exigência do campo depende da situação fática.

Campo

Descrição

CSOSN
101

CSOSN
102

CSOSN
103

CSOSN
201

CSOSN
202

CSOSN
203

CSOSN
400

CSOSN
500

CSOSN
900

orig

Origem da mercadoria

S

S

S

S

S

S

S

S

?

CST

Tributação do ICMS

S

S

S

S

S

S

S

S

?

modBC

Modalidade de determinação da BC do ICMS

N

N

N

N

N

N

N

N

?

pRedBC

Percentual da Redução de BC

N

N

N

N

N

N

N

N

?

vBC

Valor da BC do ICMS

N

N

N

N

N

N

N

N

?

pICMS

Alíquota do imposto

N

N

N

N

N

N

N

N

?

vICMS

Valor do ICMS

N

N

N

N

N

N

N

N

?

modBCST

Modalidade de determinação da BC do ICMS ST

N

N

N

S

S

S

N

N

?

pMVAST

Percentual da margem de valor Adicionado do ICMS ST

N

N

N

S

S

S

N

N

?

pRedBCST

Percentual da Redução de BC do ICMS ST

N

N

N

?

?

?

N

N

?

vBCST

Valor da BC do ICMS ST

N

N

N

S

S

S

N

N

?

pICMSST

Alíquota do imposto do ICMS ST

N

N

N

S

S

S

N

N

?

vICMSST

Valor do ICMS ST

N

N

N

S

S

S

N

N

?

UFST

UF para qual é devido o ICMS ST

N

N

N

N

N

N

N

N

?

pBCop

Percentual da BC operação própria

N

N

N

N

N

N

N

N

?

vBCSTRet

Valor da BC do ICMS Retido Anteriormente

N

N

N

N

N

N

N

S

?

vICMSSTRet

Valor do ICMS Retido Anteriormente

N

N

N

N

N

N

N

S

?

motDesICMS

Motivo da desoneração do ICMS

N

N

N

N

N

N

N

N

?

vBCSTDest

Valor da BC do ICMS ST da UF destino

N

N

N

N

N

N

N

N

?

vICMSSTDest

Valor do ICMS ST da UF destino

N

N

N

N

N

N

N

N

?

pCredSN

Alíquota aplicável de cálculo do crédito (Simples Nacional)

S

N

N

S

N

N

N

N

?

vCredICMSSN

Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (SIMPLES NACIONAL)

S

N

N

S

N

N

N

N

?

vICMSDeson

Valor do ICMS da desoneração (campo novo)

N

N

N

N

N

N

N

N

N

vICMSOp

Valor do ICMS da Operação (campo novo)

N

N

N

N

N

N

N

N

N

pDif

percentual do diferimento (campo novo)

N

N

N

N

N

N

N

N

N

vICMSDif

Valor do ICMS Diferido (campo novo)

N

N

N

N

N

N

N

N

N

·         “S” - o campo deve ser informado, “N” - o campo não deve ser informado e “?” - a exigência do campo depende da situação fática.

Parâmetros:

nome

tipo

tam.

obrig.

descrição

orig

string

1

sim

informar o código da origem da mercadoria: 
codificação válida a partir de 01/10/2013 [28-09-13]
0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
1 - Estrangeira - Importação direta, exceto a indicada no código 6;
2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%;
4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes;
5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;
6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural;
7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural.
8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;

CST

string

2,3

sim

informar o CST da operação: 
00 - Tributada integralmente; 
10 - Tributada e com cobrança do ICMS por substituição tributária; 
20 - Com redução de base de cálculo; 
30 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária; 
40 - Isenta; 
41 - Não tributada; 
50 - Suspensão; 
51 - Diferimento; 
60 - ICMS cobrado anteriormente por substituição tributária; 
70 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária; 
90 - Outros;
P10 - ICMSPart com CST=10;
P90 - ICMSPart com CST=90;
S41 - ICMSST.
ou 
Quando o CRT=1, informar o Código de Situação da Operação - Simples Nacional (CSOSN) 
101 - Tributada pelo Simples Nacional com permissão de crédito;
102 - Tributada pelo Simples Nacional sem permissão de crédito;
103 - Isenção do ICMS no Simples Nacional para faixa de receita bruta;
201 - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária;
202 - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária;
203 - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária;
300 - Imune;
400 - Não tributada pelo Simples Nacional;
500 - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação;
900 - Outros.

modBC

inteiro

1

depende

informar a modalidade de determinação da BC do ICMS: 
0 - Margem Valor Agregado (%); 
1 - Pauta (valor); 
2 - Preço Tabelado Máximo (valor); 
3 - Valor da Operação.

pRedBC

double

5,2-4

depende

informar o Percentual de redução da BC do ICMS da operação própria

vBC

double

15,2

depende

informar o Valor da BC do ICMS do ICMS da operação própria

pICMS

double

5,2-4

depende

informar a Alíquota do ICMS do ICMS da operação própria

vICMS

double

15,2

depende

informar o Valor do ICMS do ICMS da operação própria

modBCST

inteiro

1

depende

informar a modalidade de determinação da BC do ICMS ST: 
0 - Preço tabelado ou máximo sugerido; 
1 - Lista Negativa (valor); 
2 - Lista Positiva (valor); 
3 - Lista Neutra (valor); 
4 - Margem Valor Agregado (%); 
5 - Pauta (valor).

pMVAST

double

5,2-4

depende

informar o Percentual da Margem de Valor Adicionado ICMS ST (quantidade de decimais alterado para aceitar de 2 a 4 decimais)

pRedBCST

double

5,2-4

depende

informar o Percentual de redução da BC ICMS ST (quantidade de decimais alterado para aceitar de 2 a 4 decimais)

vBCST

double

15,2

depende

informar o Valor da BC do ICMS ST

pICMSST

double

5,2-4

depende

informar a Alíquota do ICMS ST

vICMSST

double

15,2

depende

informar o Valor do ICMS ST

vBCSTRet

double

15,2

depende

informar o Valor da BC do ICMS ST retido

vICMSSTRet

double

15,2

depende

informar o Valor do ICMS ST retido

vBCSTDest

double

15,2

depende

informar o Valor da BC do ICMS ST da UF Destino

vICMSSTDest

double

15,2

depende

informar o Valor do ICMS ST da UF destino

motDesICMS

inteiro

1

depende

informar o Motivo da desoneração do ICMS:
1 - Táxi;
2 - Deficiente Físico;
3 - Produtor Agropecuário;
4 - Frotista/Locadora;
5 - Diplomático/Consular;
6 - Utilitários e Motocicletas da Amazônia Ocidental e Áreas de Livre Comércio (Resolução 714/88 e 790/94 - CONTRAN e suas alterações);
7 - SUFRAMA;
8 – Venda a Órgãos Públicos;
9 - outros.
Informar em conjunto com o vICMSDeson.
IMPORTANTE: informe zero quando a operação não tenha isenção condicional.

pBCOp

double

5,2-4

depende

informar o Percentual da BC operação própria (quantidade de decimais alterado para aceitar de 2 a 4 decimais)

UFST

string

2

depende

informar a UF para qual é devido o ICMS ST

pCredSN

double

15,2

depende

informar o Alíquota aplicável de cálculo do crédito (Simples Nacional)

vCredICMSSN

double

15,2

depende

informar o Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (SIMPLES NACIONAL)

vICMSDeson

double

15,2

depende

informar o Valor do ICMS da desoneração, deve ser informado quando em con junto com motDesICMS(campo novo)

vICMSOp

double

15,2

depende

informar o Valor do ICMS da operação que não será diferido (campo novo)

pDif

double

5,2-4

depende

informar o percentual do diferimento (campo novo)

vICMSDif

double

15,2

depende

informar o Valor do ICMS que será diferido. (campo novo)

Diagrama:

Retorno:

Um string com o grupo XML de identificação

Histórico de atualização:

·         2012-06-29 - revisão de texto - corrigido o tipo do parâmetro orig.

·         2014-01-12 - Atualização para a versão 3.10.

XML:

Exemplo de XML para CST = 00 - Tributada integralmente

<ICMS>
   <ICMS00>
      <orig>0</orig>
      <CST>00</CST>
      <modBC>3</modBC>
      <vBC>100.00</vBC>
      <pICMS>18.00</pICMS>
      <vICMS>18.00</vICMS>
    </ICMS00>
</ICMS>

Exemplo de XML para CST = 10 - Tributada e com cobrança do ICMS por substituição tributária

<ICMS>
   <ICMS10>
      <orig>0</orig>
      <CST>10</CST>
      <modBC>3</modBC>
      <vBC>100.00</vBC>
      <pICMS>18.00</pICMS>
      <vICMS>18.00</vICMS>
      <modBCST>4</modBCST>
      <pMVAST>50.00</pMVAST>
      <pRedBCST>10.00</pRedBCST>
      <vBCST>135.00</vBCST>
      <pICMSST>18.00</pICMSST>
      <vICMSST>6.30</vICMSST>
    </ICMS10>
</ICMS>

·         Os campos pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CST = 20 - com redução de base de cálculo

<ICMS>
   <ICMS20>
       <orig>0</orig>
       <CST>20</CST>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>18.00</pICMS>
       <vICMS>16.20</vICMS>
   </ICMS20>
</ICMS>

Exemplo de XML para CST = 30 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária

<ICMS>
   <ICMS30>
       <orig>0</orig>
       <CST>30</CST>
       <modBCST>4</modBCST>
       <pMVAST>50.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>135.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>24.30</vICMSST>
   </ICMS30>
</ICMS>

·         Os campos pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CST = 40 - Isenta

<ICMS>
   <ICMS40>
       <orig>0</orig>
       <CST>40</CST>   
   </ICMS40>
</ICMS>

Exemplo de XML para CST = 40 - Isenta, com isenção condicional

<ICMS>
   <ICMS40>
       <orig>0</orig>
       <CST>40</CST>
       <vICMSDeson>1800.00</vICMSDeson>
       <motDesICMS>1</motDesICMS>
   </ICMS40>
</ICMS>

·         Os campos vICMSDeson e motDesICMS devem ser informados quando a ISENÇÃO for condicional (exemplo: venda de veículo com ISENÇÃO de ICMS para Taxista)*

Exemplo de XML para CST = 41 - Não tributada

<ICMS>
   <ICMS40>
       <orig>0</orig>
       <CST>41</CST>   
   </ICMS40>
</ICMS>

Exemplo de XML para CST = 50 - Suspensão

<ICMS>
   <ICMS40>
      <orig>0</orig>
      <CST>50</CST>   
   </ICMS40>
</ICMS>

Exemplo de XML para CST = 51 - Diferimento, sem informação do ICMS diferido (diferimento total)

<ICMS>
   <ICMS51>
      <orig>0</orig>
      <CST>51</CST>
   </ICMS51>
</ICMS>

Exemplo de XML para CST = 51 - Diferimento, com informação do valor do tributo diferido quando exigido pela legislação

<ICMS>
   <ICMS51>
      <orig>0</orig>
      <CST>51</CST>
      <modBC>3</modBC>
      <pRedBC>20.00</pRedBC>
      <vBC>80.00</vBC>
      <pICMS>18.00</pICMS>
      <vICMSOp>9.60</vICMSOp>
      <pDif>100.00</pDif >
      <vICMSDif>9.60</vICMSDif>
   </ICMS51>
</ICMS>

·         Os campos modBC, pRedBC, vBC, pICMS e vICMS podem ser omitidos quando não exigidos pela legislação ou o seu conteúdo for igual a zero.

**Exemplo de XML para CST = 51 - Diferimento parcial* de 33,33% do ICMS devido*

<ICMS>
   <ICMS51>
      <orig>0</orig>
      <CST>51</CST>
      <modBC>3</modBC>
      <vBC>1000.00</vBC>
      <pICMS>18.00</pICMS>
      <vICMSOp>180.00</vICMSOp>
      <pDif>33.33</pDif >
      <vICMSDif>60.00</vICMSDif>
      <vICMS>120.00</vICMS>
<ICMS51></ICMS>

Exemplo de XML para CST = 60 - ICMS cobrado anteriormente por substituição tributária

<ICMS>
   <ICMS60>
       <orig>0</orig>
       <CST>60</CST>
       <vBCSTRet>135.00</vBCSTRet>
       <vICMSSTRet>24.30</vICMSSTRet>
   </ICMS60>
</ICMS>

Exemplo de XML para CST = 70 - Com redução de base de cálculo e cobrança de ICMS por substituição tributária

<ICMS>
   <ICMS70>
       <orig>0</orig>
       <CST>70</CST>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>18.00</pICMS>
       <vICMS>16.20</vICMS>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
   </ICMS70>
</ICMS>

·         Os campos pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CST = 90 - Outras

<ICMS>
   <ICMS90>
       <orig>0</orig>
       <CST>90</CST>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>18.00</pICMS>
       <vICMS>16.20</vICMS>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
   </ICMS90>
</ICMS>

·         Os campos pRedBC, pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CST = 90 - Outras, com informação somente do CST

<ICMS>
   <ICMS90>
       <orig>0</orig>
       <CST>90</CST>
   </ICMS90>
</ICMS>

Exemplo de XML para CST = 90 - Outras, com informação do CST e ICMS próprio

<ICMS>
   <ICMS90>
       <orig>0</orig>
       <CST>90</CST>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>18.00</pICMS>
       <vICMS>16.20</vICMS>
   </ICMS90>
</ICMS>

Exemplo de XML para CST = 90 - Outras, com informação do CST e ICMS ST

<ICMS>
   <ICMS90>
       <orig>0</orig>
       <CST>90</CST>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
   </ICMS90>
</ICMS>

Exemplo de XML para CST = 90 - Outras, com informação do CST, ICMS próprio e ICMS ST

<ICMS>
   <ICMS90>
       <orig>0</orig>
       <CST>90</CST>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>18.00</pICMS>
       <vICMS>16.20</vICMS>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
   </ICMS90>
</ICMS>

Exemplo de XML para CRT=1 e CSOSN = 101

<ICMS>
   <ICMSSN101>
       <orig>0</orig>
       <CSOSN>101</CSOSN>
       <pCredSN>1.25</pCredSN>
       <vCredICMSSN>12.96</vCredICMSSN>
   </ICMSSN101>
</ICMS>

Exemplo de XML para CRT=1 e CSOSN = 102, 103, 300 ou 400

<ICMS>
   <ICMSSN102>
       <orig>0</orig>
       <CSOSN>102</CSOSN>
   </ICMSSN102>
</ICMS>

·         O campo CST pode ser informado com 102, 103, 300 ou 400

Exemplo de XML para CRT=1 e CSOSN = 201

<ICMS>
   <ICMSSN201>
       <orig>0</orig>
       <CSOSN>201</CSOSN>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
       <pCredSN>1.25</pCredSN>
       <vCredICMSSN>12.96</vCredICMSSN>
   </ICMSSN201>
</ICMS>

·         Os campos pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CRT=1 e CSOSN = 202 ou 203

<ICMS>
   <ICMSSN202>
       <orig>0</orig>
       <CSOSN>202</CSOSN>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
   </ICMSSN202>
</ICMS>

·         O campo CST pode ser informado com 202 ou 203

·         Os campos pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CRT=1 e CSOSN = 500

<ICMS>
   <ICMSSN500>
       <orig>0</orig>
       <CSOSN>500</CSOSN>
       <vBCSTRet>162.00</vBCSTRet>
       <vICMSSTRet>12.96</vICMSSTRet>
   </ICMSSN500>
</ICMS>

Exemplo de XML para CRT=1 e CSOSN = 900

<ICMS>
   <ICMSSN900>
       <orig>0</orig>
       <CSOSN>900</CSOSN>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>7.00</pICMS>
       <vICMS>6.30</vICMS>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>22,86</vICMSST>
       <pCredSN>1.25</pCredSN>
       <vCredICMSSN>1.25</vCredICMSSN>
   </ICMSSN900>
</ICMS>

·         Os campos pRedBC, pMVAST e pRedBCST devem ser omitidos quando o conteúdo for igual a zero.

Exemplo de XML para CRT=1 e CSOSN = 900, com informação do CSOSN

<ICMS>
   <ICMSSN900>
       <orig>0</orig>
       <CSOSN>900</CSOSN>
   </ICMSSN900>
</ICMS>

Exemplo de XML para CRT=1 e CSOSN = 900, com informação do CSOSN e valor do ICMS passível de crédito pelo destinatário

<ICMS>
   <ICMSSN900>
       <orig>0</orig>
       <CSOSN>900</CSOSN>
       <pCredSN>1.25</pCredSN>
       <vCredICMSSN>12.96</vCredICMSSN>
   </ICMSSN900>
</ICMS>

Exemplo de XML para CRT=1 e CSOSN = 900, com informação do CSOSN e ICMS próprio

<ICMS>
   <ICMSSN900>
       <orig>0</orig>
       <CSOSN>900</CSOSN>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>18.00</pICMS>
       <vICMS>16.20</vICMS>
   </ICMSSN900>
</ICMS>

Exemplo de XML para CRT=1 e CSOSN = 900, com informação do CSOSN, ICMS próprio e ICMS ST

<ICMS>
   <ICMSSN900>
       <orig>0</orig>
       <CSOSN>900</CSOSN>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>7.00</pICMS>
       <vICMS>6.30</vICMS>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>22.86</vICMSST>
   </ICMSSN900>
</ICMS>

Exemplo:

Exemplo Delphi

procedure TForm1.ICMSCSOSN101(Sender: TObject);
 
var
Util: Olevariant;
ICMS : widestring;
ICMS_orig : widestring;
ICMS_CST  : widestring;
ICMS_modBC: integer;
ICMS_pRedBC: currency;
ICMS_vBC : currency;
ICMS_pICMS : currency;
ICMS_vICMS : currency;
ICMS_modBCST : integer;
ICMS_pMVAST : currency;
ICMS_pRedBCST : currency;
ICMS_vBCST : currency;
ICMS_pICMSST : currency;
ICMS_vICMSST : currency;
ICMS_vBCSTRet : currency;
ICMS_vICMSSRet : currency;
ICMS_vBCSTDest : currency;
ICMS_vICMSSTDest : currency;
ICMS_motDesICMS : integer;
ICMS_pBCOp : currency;
ICMS_UFST : widestring;
ICMS_pCredSN : currency;
ICMS_vCredICMSSN : currency;
ICMS_vICMSDeson : currency;
ICMS_vICMSOp : currency;
ICMS_pDif : currency;
ICMS_vICMSDif : currency;
 
begin
 
ICMS_orig := '0';                   // informar a origem do produto
ICMS_CST := '101';                  // informar o CST (emissor RPA) ou CSOSN (emissor optante do Simples Nacional)
//
//           informações do ICMS da operação própria, somente para CST  = 00, 10, 20, 51 (depende da SEFAZ exigir), 70 e 90 (depende do caso)
//                                                                 CSOSN=900
//
ICMS_modBC := 0;
ICMS_pRedBC :=0;
ICMS_vBC  :=0;
ICMS_pICMS  :=0;
ICMS_vICMS  :=0;
//
//          informações do ICMS retido por Substituição Tributária, informar somente nos casos em que o emissor
//          retem o ICMS por ST do destinatário   CST   = 10, 30, 70 e 90 (depende do caso)
//                                                CSOSN = 201, 202, 203 e 900 (depende do caso)
//
ICMS_modBCST :=0;
ICMS_pMVAST  :=0;
ICMS_pRedBCST  :=0;
ICMS_vBCST  :=0;
ICMS_pICMSST  :=0;
ICMS_vICMSST  :=0;
//
//         informações do ICMS retido anteriormente por Substituição Tributária,
//         deve ser informado se a legislação exigir para os CST=60 e CSOSN=500
//
//         É aplicável quando o emissor adquiriu o produto que já teve a retenção do ICMS devido até a venda para
//         consumidor retido anteriormente.
//
//         Também deve ser informado nos casos de CST  = ICMSST
//
ICMS_vBCSTRet  :=0;
ICMS_vICMSSRet  :=0;
//
//
ICMS_vBCSTDest  :=0;
ICMS_vICMSSTDest  :=0;
//
//      deve ser informado quando existir alguma desoneração condicional para veículos novos, CST=40
//
ICMS_motDesICMS :=0;
//
//      percentual da BC da operação própria no caso de repartição de tributo
//
ICMS_pBCOp  :=0;
//
//      informar a UF para qual é devido o ICMS ST no caso de repartição do tributo
//
ICMS_UFST := '';
//
//      informar  para o CSOSN 101, 201 e 900 (depende do caso)
//
ICMS_pCredSN  :=1.25;
ICMS_vCredICMSSN  :=12.96;
//
//   Campos novos da versão 3.10
//
ICMS_vICMSDeson := 0;               // valor do ICMS desonerado
ICMS_vICMSOp := 0;                  // valor do ICMS da Operação - grupo 51 diferimento
ICMS_pDif := 0;                     // percentual do diferimento - grupo 51 diferimento
ICMS_vICMSDif := 0;                 // valor do ICMS diferido - grupo 51 diferimento
 
 
Util := CreateOleObject('NFe_util_2G.util');
 
ICMS:=Util.icms310(ICMS_orig, ICMS_CST, ICMS_modBC,  ICMS_pRedBC,  ICMS_vBC,  ICMS_pICMS,  ICMS_vICMS,
                  ICMS_modBCST,  ICMS_pMVAST,  ICMS_pRedBCST,  ICMS_vBCST,  ICMS_pICMSST, ICMS_vICMSST,
                  ICMS_vBCSTRet,  ICMS_vICMSSRet,  ICMS_vBCSTDest,  ICMS_vICMSSTDest, ICMS_motDesICMS,
                  ICMS_pBCOp, ICMS_UFST,  ICMS_pCredSN,  ICMS_vCredICMSSN, ICMS_vICMSDeson, ICMS_vICMSOp, 
                  ICMS_pDif, ICMS_vICMSDif);
 
MessageDlg('O fragmento XML gerado é: '+#13+#13+ICMS, mtInformation, [mbOk], 0);
 
end;

Exemplo VB

 
' inicializar variáveis
'...............................................
 
Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
 
'
'=========dados do ICMS===========
'
Dim icms_orig As String
Dim icms_CST As String
Dim icms_modBC As Long
Dim icms_pRedBC As Double
Dim icms_vBC As Currency
Dim icms_pICMS As Double
Dim icms_vICMS As Currency
Dim icms_modBCST As Long
Dim icms_pmVAST As Double
Dim icms_pRedBCST As Double
Dim icms_vBCST As Currency
Dim icms_pICMSST As Double
Dim icms_vICMSST As Currency
'
'  campos novos da versão 2.00
'
Dim icms_vBCSTRet As Currency
Dim icms_vICMSSTRet As Currency
Dim icms_motDesICMS As Long
Dim icms_pBCOp As Double
Dim icms_UFST As String
Dim icms_pCredSN As Double
Dim icms_vCredICMSSN As Currency
Dim icms_vICMSSTDest As Currency
Dim icms_vBCICMSSTDest As Currency
'
'  campos novos da versão 3.10
'
Dim icms_vICMSDeson As Currency
Dim icms_vICMSOp As Currency
Dim icms_pDif As Double
Dim icms_vICMSDif As Currency
 
'=========dados do ICMS (grupo N01 do Manual de integração - páginas 128-)=====================
'
icms_orig = "0"                             ' Tabela A - origem da mercadoria 0=nacional
icms_CST = "00"                             ' Tabela B - CST=00-tributação normal
icms_modBC = 3                              ' modalidade de determinação da BC = 3-valor da operação
icms_pRedBC = 0                             ' percentual de redução da BC
icms_vBC = 10                               ' valor da BC do ICMS = vProd + vFrete + vSeguro + vOutro
icms_pICMS = 18                             ' alíquota do ICMS
icms_vICMS = 1.8                            ' valor do ICMS
icms_modBCST = 0                            ' modalidade de determinação da BC ICMS ST
icms_pmVAST = 0                             ' percentual de valor de margem e valor adicionado
icms_pRedBCST = 0                           ' percentual de redução da BC do ICMS ST
icms_vBCST = 0                              ' BC do ICMS ST
icms_pICMSST = 0                            ' percentual do ICMSST
icms_vICMSST = 0                            ' valor do ICMS ST devido
'
'   Campos novos da versão 2.00
'
icms_vBCSTRet = 0                           ' informação do ICMS retindo anteriormente por ST
icms_vICMSSTRet = 0                         ' estes campos devem ser informado somente no caso do CST = 60 ou CSOSN = 500
'
icms_motDesICMS = 0                         ' motivo de desoneração do ICMS, só deve ser informado no caso de CST = 40 (isenção condicional)
'
icms_pBCOp = 0                              ' campos para uso nos casos de ICMSPart/ICMSST
icms_UFST = ""                              '
icms_vICMSSTDest = 0                        '
icms_vBCICMSSTDest = 0                      '
'
icms_pCredSN = 0                            ' campos exclusivos para emissor optante do Simples Nacional CSOSN= 101, 201 e 900
icms_vCredICMSSN = 0                        ' não esquecer de informar o CRT=1
'
'   Campos novos da versão 3.10
'
icms_vICMSDeson = 0                         ' valor do ICMS desonerado
icms_vICMSOp = 0                            ' valor do ICMS da Operação - grupo 51 diferimento
icms_pDif = 0                               ' percentual do diferimento - grupo 51 diferimento
icms_vICMSDif = 0                           ' valor do ICMS diferido - grupo 51 diferimento
'
'   gera grupo do ICMS
'
 
ICMS = objNFeUtil.icms310(icms_orig, 
                          icms_CST, 
                          icms_modBC, _
                          icms_pRedBC, _
                          icms_vBC, _
                          icms_pICMS, _
                          icms_vICMS, _
                          icms_modBCST, _
                          icms_pmVAST, _
                          icms_pRedBCST, _
                          icms_vBCST, _
                          icms_pICMSST, _
                          icms_vICMSST, _
                          icms_vBCSTRet, _
                          icms_vICMSSTRet, _
                          icms_vBCICMSSTDest, _
                          icms_vICMSSTDest, _
                          icms_motDesICMS, _
                          icms_pBCOp, _
                          icms_UFST, _
                          icms_pCredSN, _
                          icms_vCredICMSSN, _
                          icms_vDeson, _
                          icms_vICMSOp, _
                          icms_pDif, _
                          icms_vICMSDif)
 
MsgBox ICMS, vbInformation, "Informação"

 

AVISO LEGAL

"As informações existentes nesta mensagem e nos arquivos anexados têm caráter confidencial e são para uso restrito. A utilização, divulgação, cópia ou distribuição desta mensagem, ou parte dela, por qualquer pessoa diferente do destinatário é proibida, sujeitando o infrator às sanções legais. Se esta mensagem foi recebida por engano, favor excluí-la e informar ao remetente pelo endereço eletrônico acima. Agradecemos sua cooperação."

DISCLAIMER

"This email and its attachments may contain privileged and/or confidential information. Use, disclosure, copying or distribution of this message, or part thereof, by anyone other than the intended recipient is strictly prohibited, and will submit the infractor to the legal sanctions. If you have received this email in error, please notify the sender by reply email and destroy all copies of this message. Thank you for your cooperation."

quinta-feira, 17 de julho de 2014

Atualizar mensagens NF 3.10

Programa para rodar no PI para atualizar as mensagens de erro da NF-e /XNFE/GOVERMENT_STATUS_LOAD

 

Na solução SAP NFE, é possível definir os códigos de status do governo através de uma tabela de customizing.
Para acessá-la, vá para SPRO -> IMG Referência SAP -> SAP GRC Nota Fiscal Eletrônica -> Definir código do status da SEFAZ.

As descrições dos códigos de status serão associadas ao idioma em que se está logado (mas também é possível traduzir as descrições através do menu Ir Para -> Tradução).

Alternativamente, é possível carregar os códigos de status e descrições no SAP NFE a partir de um arquivo .txt pré-definido, através do programa /XNFE/GOVERMENT_STATUS_LOAD.
Para isso, o arquivo .txt previsa conter uma linha de cabeçalho e, para cada código de status, uma linha com o código (3 dígitos) e a descrição, separados por tabulação.
Quando se executa o programa, é necessário entrar com dois parâmetros: o caminho do arquivo .txt (pode estar na sua máquina local) e o idioma das descrições dos códigos de status.

Os códigos de status do governo estão incluídos no Manual de Integração do Contribuinte , seção 5.1.1.
É possível pode copiá-los de lá e colá-los no arquivo .txt. Contudo, ainda será necessário separar os códigos e as descrições com uma tabulação. É possível utilizar o Microsoft Excel para isso.

O seguinte link contém um arquivo .txt pronto com os códigos e descrições de status em português (PT): NFe_status_codes_-_PT.zip.
Karsten Kötter enviou um link para um arquivo com as descrições em inglês (EN): NFe_status_codes_-_EN.zip.

Para transportar os códigos de status para outros sistemas, você pode adicionar o conteúdo de customizing relevante em uma request.
Para isso, siga estes passos:

·         No sistema NFE, vá para SPRO -> IMG Referência SAP -> SAP GRC Nota Fiscal Eletrônica -> Definir código do status da SEFAZ

·         No menu, vá para On the menu, go to Visão de Tabelas -> Transporte;

·         Crie ou selecione a request que se quer usar para transportar esses valores;

·         Selecione todas as entradas ( F7 );

·         Clique no botão "Incluir na ordem";

·         Clique no botão "Salvar".

Obs: esta visão é dependente de idioma, então você precisa repetir esses passos para cada idioma que se quer usar no sistema NFE

 

AVISO LEGAL

"As informações existentes nesta mensagem e nos arquivos anexados têm caráter confidencial e são para uso restrito. A utilização, divulgação, cópia ou distribuição desta mensagem, ou parte dela, por qualquer pessoa diferente do destinatário é proibida, sujeitando o infrator às sanções legais. Se esta mensagem foi recebida por engano, favor excluí-la e informar ao remetente pelo endereço eletrônico acima. Agradecemos sua cooperação."

DISCLAIMER

"This email and its attachments may contain privileged and/or confidential information. Use, disclosure, copying or distribution of this message, or part thereof, by anyone other than the intended recipient is strictly prohibited, and will submit the infractor to the legal sanctions. If you have received this email in error, please notify the sender by reply email and destroy all copies of this message. Thank you for your cooperation."

terça-feira, 15 de julho de 2014

Exit....

Fórum ABAP Zombie

 

Publicado em 19 de julho de 2012 | por Daiane Zigiotto

 

BADI de,-sai do usuário, aprimoramentos ... como Encontra-los?

Faaaala Zumbizada! ESTOU de Volta nenhuma Modo "zumbi = ON" por Causa fazer o Projeto, testículos Integrados Opaco estao acabando com a Minha Vida (e Opaco Nunca acabam!) Bom, mas Chega de mimimi e Vamos lá! Neste pós Vou FALAR sobre alguns methods parágrafo encontrar Melhorias,-sai de usuários, de BADI e etc Aposto Que ISSO PODE ajudar Muito, principalmente parágrafo OS zumbis Mais novinhos.

NAO, ISSO E UMA Localidade: Não user-exit ...

 

FUNÇÃO DO CLIENTE CHAMADA

Você. PODE colocar hum BREAK-POINT Comando Nesse, Opaco E USADO parágrafo Chamar-sai como usuário. Ja falamos DELE Aqui no blogue e se Quiser Saber Mais, Clique Aqui .

 

BADI'S

Método 1: V_EXT_ACT e V_EXT_IMP

A BADI FAZ UMA NAS Seleção Tabelas de visões V_EXT_ACT e V_EXT_IMP. Entao PODEMOS IR na transação ST05 -> Select "SQL trace" e "Tabela buffer de rastreamento" -> Ativar Trace -> Executar uma transação -> Desativar Trace -> Tela Trace.

Ira aparecer um abaixo Tela:

 

Vamos Select OS seguintes Objetos:

 

Nenhum Resultado Ira Mostrar Todas final como BADI de na Ordem los Opaco ELAS FORAM executadas:

 

Método 2: CL_EXITHANDLER => GET_CLASS_NAME_BY_INTERFACE

Na transação SE24, Vamos Select um CL_EXITHANDLER classe, ir par o Método get_instance e colocar hum BREAK-POINT.

Atraves fazer Parâmetro de Exportação EXIT_NAME E Possível sabre o nomo da BADI Que Sera Chamada.

 

Método 3: FM SXV_GET_CLIF_BY_NAME.

Um Outro Método E colocando hum break point na função SXV_GET_CLIF_BY_NAME, Opaco E Chamada Toda Vez Que alguma BADI E executada.

O Parâmetro de Exportação NOME Ira mostrar o nomo da BADI.

 

E aí, Achou Difícil, chato, deprimente? Localidade: Não se assuste, Vou mostrar algumas Ferramentas that PODEM facilitar a SUA vida!

A Há sândalo ritmo Atrás precisei encontrar UMA user-exit de UMA transação X, e no Meio de hum fórum não encontrei SCN hum Programa Bastante Útil! Lista Ele. Todas como de UMA transação UO Programa usuário sai-e de Badi.

 

Abaixo ESTA o Código-Fonte. Nao sei QUEM É O autor e Localidade: Não Será, será Coincidência encontrar ESSE MESMO EM PROGRAMA To Us Link fóruns (e Bem manjado).

Default

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

REPORT z_enhancement_finder NO STANDARD PAGE HEADING LINE-SIZE 201.

 

TABLES :  tstc,

          tadir,

          modsapt,

          modact,

          trdir,

          tfdir,

          enlfdir,

          sxs_attrt ,

          tstct.

 

DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.

DATA : field1(30).

DATA : v_devclass LIKE tadir-devclass.

 

PARAMETERS : p_tcode LIKE tstc-tcode,

p_pgmna LIKE tstc-pgmna .

 

DATA wa_tadir TYPE tadir.

 

START-OF-SELECTION.

 

  IF NOT p_tcode IS INITIAL.

    SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.

 

  ELSEIF NOT p_pgmna IS INITIAL.

    tstc-pgmna = p_pgmna.

  ENDIF.

 

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM tadir

    WHERE pgmid = 'R3TR'

    AND object = 'PROG'

    AND obj_name = tstc-pgmna.

 

    MOVE : tadir-devclass TO v_devclass.

 

    IF sy-subrc NE 0.

      SELECT SINGLE * FROM trdir

      WHERE name = tstc-pgmna.

      IF trdir-subc EQ 'F'.

        SELECT SINGLE * FROM tfdir

        WHERE pname = tstc-pgmna.

 

        SELECT SINGLE * FROM enlfdir

        WHERE funcname = tfdir-funcname.

 

        SELECT SINGLE * FROM tadir

        WHERE pgmid = 'R3TR'

        AND object = 'FUGR'

        AND obj_name EQ enlfdir-area.

 

        MOVE : tadir-devclass TO v_devclass.

      ENDIF.

    ENDIF.

 

    SELECT * FROM tadir INTO TABLE jtab

    WHERE pgmid = 'R3TR'

    AND object IN ('SMOD', 'SXSD')

    AND devclass = v_devclass.

 

    SELECT SINGLE * FROM tstct

    WHERE sprsl EQ sy-langu

    AND tcode EQ p_tcode.

 

    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.

    WRITE:/(19) 'Transaction Code - ',

    20(20) p_tcode,

    45(50) tstct-ttext.

    SKIP.

    IF NOT jtab[] IS INITIAL.

      WRITE:/(105) sy-uline.

      FORMAT COLOR COL_HEADING INTENSIFIED ON.

 

*      sorting the internal table

      SORT jtab BY object.

      DATA : wf_txt(60) TYPE c,

      wf_smod TYPE i ,

      wf_badi TYPE i ,

      wf_object2(30) TYPE c.

      CLEAR : wf_smod, wf_badi , wf_object2.

 

*GET the total smod.

      LOOP AT jtab INTO wa_tadir.

        AT FIRST.

          FORMAT COLOR COL_HEADING INTENSIFIED ON.

 

          WRITE:/1 sy-vline,

          2 'Enhancement/ Business Add-in',

          41 sy-vline ,

          42 'Description',

          105 sy-vline.

          WRITE:/(105) sy-uline.

        ENDAT.

        CLEAR wf_txt.

        AT NEW object.

          IF wa_tadir-object = 'SMOD'.

            wf_object2 = 'Enhancement' .

          ELSEIF wa_tadir-object = 'SXSD'.

            wf_object2 = ' Business Add-in'.

 

          ENDIF.

          FORMAT COLOR COL_GROUP INTENSIFIED ON.

 

          WRITE:/1 sy-vline,

 

          2 wf_object2,

          105 sy-vline.

        ENDAT.

 

        CASE wa_tadir-object.

          WHEN 'SMOD'.

            wf_smod = wf_smod + 1.

            SELECT SINGLE modtext INTO wf_txt

            FROM modsapt

            WHERE sprsl = sy-langu

            AND name = wa_tadir-obj_name.

            FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

 

          WHEN 'SXSD'.

*        for badis

            wf_badi = wf_badi + 1 .

            SELECT SINGLE text INTO wf_txt

            FROM sxs_attrt

            WHERE sprsl = sy-langu

            AND exit_name = wa_tadir-obj_name.

            FORMAT COLOR COL_NORMAL INTENSIFIED ON.

        ENDCASE.

 

        WRITE:/1 sy-vline,

        2 wa_tadir-obj_name HOTSPOT ON,

        41 sy-vline ,

        42 wf_txt,

        105 sy-vline.

        AT END OF object.

          WRITE : /(105) sy-uline.

        ENDAT.

      ENDLOOP.

 

      WRITE:/(105) sy-uline.

 

      SKIP.

      FORMAT COLOR COL_TOTAL INTENSIFIED ON.

      WRITE:/ 'No.of Exits:' , wf_smod.

      WRITE:/ 'No.of BADis:' , wf_badi.

 

    ELSE.

      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

      WRITE:/(105) 'No userexits or BADis exist'.

    ENDIF.

  ELSE.

    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

    WRITE:/(105) 'Transaction does not exist'.

  ENDIF.

 

AT LINE-SELECTION.

 

  DATA : wf_object TYPE tadir-object.

  CLEAR wf_object.

 

  GET CURSOR FIELD field1.

  CHECK field1(8) EQ 'WA_TADIR'.

  READ TABLE jtab WITH KEY obj_name = sy-lisel+1(20).

  MOVE jtab-object TO wf_object.

 

  CASE wf_object.

    WHEN 'SMOD'.

      SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).

 

      CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

    WHEN 'SXSD'.

      SET PARAMETER ID 'EXN' FIELD sy-lisel+1(20).

      CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.

  ENDCASE.

 

Encontrei also ESSE Outro Relatório abaixo. O Código-Fonte ESTA Aqui . Basicamente, a temperatura MESMA functionality, mas eu particularmente Prefiro o anterior.

 

OUTRAS Ferramentas

SNIF

E voce PODE Estar se perguntando: "Localidade: Não existe nenhum Relatório padrão?".Sim, existe! A SAP disponibiliza o SNIF (ESSE É O Nome do Programa, Nao da transação) Opaco Lista de Todos os Costumer Melhorias Ativos:

 

 

ABAP RAIO X DOS OLHOS

Pesquisando hum Pouco Mais encontrei hum "SNIF melhorado", Que inclui algumas opções, Como POR Exemplo, sai parágrafo Validação e Substituição, fórmulas (VOFM), ecrã de saídas e Campo-saídas. ESSE ligação Projeto ESTA DISPONÍVEL Neste:http://code.google.com/p/abapexitrayeye/ e parágrafo implementa-lo Você. precisará USAR o SAP ligação .

 

 

AVISO LEGAL

"As informações existentes nesta mensagem e nos arquivos anexados têm caráter confidencial e são para uso restrito. A utilização, divulgação, cópia ou distribuição desta mensagem, ou parte dela, por qualquer pessoa diferente do destinatário é proibida, sujeitando o infrator às sanções legais. Se esta mensagem foi recebida por engano, favor excluí-la e informar ao remetente pelo endereço eletrônico acima. Agradecemos sua cooperação."

DISCLAIMER

"This email and its attachments may contain privileged and/or confidential information. Use, disclosure, copying or distribution of this message, or part thereof, by anyone other than the intended recipient is strictly prohibited, and will submit the infractor to the legal sanctions. If you have received this email in error, please notify the sender by reply email and destroy all copies of this message. Thank you for your cooperation."

quarta-feira, 11 de junho de 2014

SCREEM ITM_EXPORT

Programa SAPLJ1BB2 Tela 2000 Opaco Deveria.

 

subtela 'ITM_EXPORT'.

 

Incluíndo ESTA referencia Desenvolvimento, habilitou from that o CFOP SEJA Relevante parágrafo Exportação (7 ...)

 

Ex:

 

com ESSA alteração o Programa Passa na Lógica:

      IF-screen name = 'ITM_EXPORT'. "1933985

        executar check_export_relevance "1933985

          mudando gx_export_relevant. "1933985

        se gx_export_relevant = abap_false. "1933985

          tela invisível = 1 ". 1933985

        outra coisa. "1933985

          tela invisível = 0. "1933985

        endif. "1933985

        MODIFICAR SCREEN. "1933985

      ENDIF.   

 

E habilita necessário.

 

Verifique a aplicação da Nota SAP OSS  2003392

 

quarta-feira, 4 de junho de 2014

terça-feira, 3 de junho de 2014

Tabela Bacen - Código de Países

Nfe-Código de Países

Em projetos de Nfe, uma das necessidades é o Código do Pais Emitente e Destinatário.

A primeira parte deste processo é onde colocar esta informação, em meus projetos, utilizei as seguintes definições :

A tabela T005I, que tem como finalidade a parametrização do Prefixo internacional de TELEX, um meio de comunicação que já não se utiliza mais nas empresas, conforme o Help da SAP abaixo:

Caso não seja possível a utilização desta tabela na sua empresa, pode-se estender T005(Países ) com um Apend de tabela com um campo Z, uma View com o Pais e Campo Z e finalmente uma SM30 desta VIEW para a manutenção dos dados e lembre-se: tabela "Z", neste caso, para mim, na minha opinião, esta fora de questão.

Para os casos de Exportação, o código do País é obrigatório no arquivo XML.

Para as demais operações, esse código é opcional, porém, recomendo alguma implementação para que este dado seja passado sempre.

 

Exemplo de cadastramento para o Brasil, pais emitente.., que deve ser utilizado para todos os países destinatários ( no caso de exportações ).

 

Como chegar:

Caso você não encontre o caminho correto na sua versão:

Execute a transação SM30, Digite a tabela T005I e clique no botão customizing

para localizar o caminho correto para o IMG desta tabela na sua versão.

Basta deixar a informação "Para" em branco e gravar os registros dos países em que a sua empresa faz exportações, que será a grande necessidade do momento.

Abaixo um passo a Passo para Baixar a Tabela de Países do Banco Central :

• País: Código ISO do País (BR para Brasil, US para Estados Unidos, etc);

• Código País: Código do país de acordo com tabela do Banco Central, constante em

http://www.bcb.gov.br/rex/ftp/paises.txt

Caso não funcionar o endereço acima, o jeito é navegar mesmo, veja a navegação atual:

Endereço Inicial: http://www.bcb.gov.br/

Clicar em cambio e Capitais Estrangeiros

Clicar em Sistemas

Clicar em Tabela de países

Clicar em Download (TXT - 11 kb)

Link direto para Baixar a tabela de países:

http://www.bcb.gov.br/rex/ftp/paises.txt

A segunda parte deste processo é levar para o XML o dois códigos de países, emitente e destinatário:

 

Na implementação da BAdI CL_NFE_PRINT, via transação SE19, inserir a definição abaixo no método FILL_HEADER:

NA FUNCTION 'J_1B_BRANCH_READ' se faz a leitura da filial emitente e seus dados de endereço.

Ler a tabela T005I para recuperar o pais do emitente.

NA FUNCTION 'J_1B_NF_PARTNER_READ' se faz a leitura do parceiro destinatário.

Ler a tabela T005I para recuperar o pais do destinatário.

 

Consultar o seu manual da SEFAZ para saber em que TAG estes campos devem ser atualizados e solicitar a movimentação para o campo correto da BADI ao desenvolvedor ABAP.