Você está na página 1de 6

www.localizationforum.

com

Introduo
Este manual tem por finalidade auxiliar consultores a debugar a funo J_1BCALCULATE_TAXES, pertencente ao pacote J1BA de localizao Brasil no sistema SAP ERP.

Pblico-alvo
Consultores que trabalham com localizao Brasil nos mdulos de MM/SD e FI.

Pr-requisitos
Conhecimentos intermedirios de localizao Brasil Conhecimentos de ABAP Conhecimentos de debug

Debugando a funo
A seguir so apresentadas as diferentes sees da funo, com a respectiva explicao sobre a finalidade de cada uma delas e como identific-las no cdigo:

1. Preparao dos dados relevantes para clculo de impostos por aplicao de chamada:
*----------------------------------------------------------------------* * fill application dependent parameters * *----------------------------------------------------------------------* Aplicaes de chamada: MM-IM, MM-IV, MM-PUR-PO, MM-SRV ou SD. Dados relevantes: parmetros-chave (e.g. fornecedor, cliente, NCM, etc)

2. Preparao dos impostos a serem calculados a. Determinao das caractersticas dos impostos ativos
(tabela taxes[])

PERFORM determine_active_tax_types TABLES taxes. Taxes[] preenchida a partir das informaes das condies ativas no IVA, da tabela J_1BAJV e da chave de contas atribuda no procedimento de clculo Taxes[] dir quais as caractersticas dos impostos a serem calculados ( dedutvel? um servio? Est Incluso no preo lquido? retido na fonte?) Etc...)

b. Seleo dos impostos ativos


(tabela calc[])

PERFORM determine_calc_taxes

www.localizationforum.com
TABLES taxes USING calc. Calc[] preenchida a partir do contedo da tabela interna Taxes[] (2.a.) Calc[] dir quais partes da funo J_1BCALCULATE_TAXES devero ser processadas em funo do imposto a ser calculado

3. Leitura dos parmetros de clculo dos impostos ativos por tipo de imposto
(perform determine_X_parameters, onde X o nome do imposto)

Determinao da alquota, base, direito fiscal e outras informaes relevantes de cada imposto. Calc[] (2.b.) dir quais partes da funo J_1BCALCULATE_TAXES devero ser processadas em funo do imposto a ser calculado

a. Parmetros de IPI
PERFORM determine_ipi_parameters

b. Parmetros de ICMS
IF calc-icms = 'X'. PERFORM determine_icms_parameters

c. Parmetros de ICMS Complementar


IF calc-icms_comp = yes. * get ICMS rate for SHIP_FROM = SHIP_TO PERFORM determine_icms_parameters USING cf-caller

d. Parmetros de Substituio Tributria ICMS (normal e sobre frete)


IF calc-icms_st = 'X' OR calc-icms_freight_st = 'X'.

e. Parmetros de Substituio Tributria (somente frete)


IF calc-icms_freight = 'X' OR calc-icms_freight_st = 'X'.

f. Parmetros do ISSQN LC116 (Imposto Sobre Servio de Qualquer Natureza)


(ver nota 747607)

o ISS no Local do Prestador do Servio (Fornecedor)


IF calc-issp = 'X'. PERFORM determine_issnew_parameters

www.localizationforum.com
o ISS no Local do Tomador do Servio (Cliente)
IF calc-isss = 'X'. PERFORM determine_issnew_parameters

g. Parmetros de PIS
(ver nota 747607)

PERFORM determine_pis_parameters

h. Parmetros de COFINS
(ver nota 747607)

PERFORM determine_cofins_parameters

i. Parmetros de IRF (Imposto Retido na Fonte, inclusive ISSQN retido na fonte)


(ver nota 747607)

PERFORM determine_wht_parameters

4. Clculo dos impostos ativos


*----------------------------------------------------------------------* * start of calculation * *----------------------------------------------------------------------* os parmetros obtidos no passo 3 so processados em conjunto para o clculo dos valores dos impostos.

a. Determinao dos impostos inclusos no preo lquido


(ver nota 747607) (Leitura da view J_1BKONV em funo do procedimento de clculo de preo utilizado no documento de referncia)

PERFORM determine_additional_rate CHANGING lv_additional_rate lv_additional_base lv_additional_rate e lv_additional_base armazena as alquotas/bases de PIS/COFINS quando no inclusos no preo lquido, para que estes componham a base de ICMS. Caso seja um servio, lv_additional_rate e lv_additional_base armazenam as alquotas/bases de PIS/COFINS e ISS para a composio da base de clculo do servio.

b. Clculo de ICMS, IPI e ICMS Complementar/DIFAL* de acordo com a utilizao do material.


* somente consumo/ativo (ver notas 679372 e 844630) (a utilizao do IVA definida na tabela J_1BTXMMCV (4.6C) ou J_1BTAXCODEV (4.7+) , combinada com a utilizao do material definida no registro mestre ir determinar qual frmula de clculo ser utilizada para cada tipo de imposto. Influenciam o clculo tambm outros parmetros como Convnio 100, descontos e o processo. No processo de transferncia para consumo, por exemplo, no h clculo de ICMS).

www.localizationforum.com
o Industrializao/Revenda
IF cf-usage = c_usage-ind. "industrialization *........ Usage is Industrialization ..................................*

o Consumo/Ativo
ELSEIF cf-usage = c_usage-con. "consumption *........ Usage is Consumption ........................................*

c. Clculo de Substituio Tributria ICMS (inclusive sobre frete)


*----------------------------------------------------------------------* * calculate Substituicao Tributaria * *----------------------------------------------------------------------* IF calc-icms_st = yes AND subtrib-sur_type <> c_subtrib-no_calc. Para que haja clculo de S.T., preciso que as seguintes condies sejam satisfeitas: 1) a condio ICS1 ou ICS2 deve estar ativa no IVA 2) deve ser criada uma entrada em uma das J_1BTXST*, (com o campo "Grp.SubF" vazio para MM). Alm disso, deve-se escolher um "Mtodo de Clculo" adequado, diferente de no-calculation. 3) para compras de material com uso consumo, a seguinte lgica adicional se aplica: a alquota de ICMS interna do estado de destino deve ser superior alquota interestadual dos estados envolvidos. Exemplo: se o fornecedor est em MG e o comprador est em SP, a alquota SP-SP deve ser superior alquota MG-SP. Se essa condio for satisfeita, o valor exatamente o valor do Complemento ICMS. do ICMS substitudo ser

J se o processo ocorrer dentro do mesmo estado, no haver Substituio Tributria, uma vez que a figura da "sobretaxa" no se aplica no caso de consumo.

d. Processamento especial para compra de fornecedores equiparados indstria


(IPI-Split ativado marcando-se o flag Tax Split (LFA1-IPISP) no registro mestre de fornecedor e ativando-se as condies IPI1 e IPI2 no IVA)

IF cf-ipi_split = yes AND calc-ipi = yes.

e. Definio da base de clculo de PIS/COFINS especial de acordo com a utilizao do material e definies da filial.

www.localizationforum.com
(se utilizao = revenda e filial = no contribuinte de IPI nota 947218 se utilizao = revenda e filial = Contribuinte de IPI nota 1088901)

IF add_tax_data-mtuse = c_usage-res AND cf-caller <> c_caller-sd. * base id w/o IPI if add_tax_data-ipicontributor = yes. lv_base_pico = iic. else. lv_base_pico = iicip. endif. "1063650 ENDIF. "947218

"947218 "947218 "1063650 "1063650 "1063650 "1063650 "947218

f.

Clculo de PIS
IF calc-pis = yes. PERFORM calculate_pis

g. Clculo de COFINS
IF calc-cofins = yes. PERFORM calculate_cofins

h. Clculo do ISSQN (tanto no Prestador quanto no Tomador do Servio)


IF calc-issp = yes OR calc-isss = yes. PERFORM calculate_issnew

i. Clculo da Base dos IRF


(ver nota 779617)

IF calc-wht = yes. * Base amount on NF for all WHT types = WHT calculation base * = Net + all taxes excluding SubTrib

j.

Clculo do Valor dos IRF


PERFORM calculate_wht

5. Armazenamento dos direitos fiscais a. ICMS, IPI, PIS e COFINS


*----------------------------------------------------------------------* * table TAX_LAWS * *----------------------------------------------------------------------*

6. Arredondamento dos valores calculados


(ver nota 701240)

*---------------------------------------------------* * R O U N D I N G O F B A S E S * *---------------------------------------------------*

www.localizationforum.com
7. Mapeamento dos valores para a Nota Fiscal e para o documento contbil
*----------------------------------------------------------------------* * TAX_RESULT and table NF_VALUES * *----------------------------------------------------------------------* Os valores fiscais so armazenados na tabela interna NF_VALUES[], que atualizada a cada chamada da rotina perform fill_nf_data. * process all tax types / tax groups LOOP AT taxes. CASE taxes-group. PERFORM fill_nf_data. Os valores contveis so armazenados numa rea de memria com o mesmo nome da frmula utilizada do tipo de condio definida na TAXBRJ (e.g. ICM1 = 523) PERFORM fill_tax_results. FORM fill_tax_result * assign values * CASE taxes-formula. "787104 CASE taxes_formula. "787104 * WHEN 301. WHEN 521. tax_result-taxpct1 = corr_rate. tax_result-taxamt1 = char_amount. tax_result-taxbas1 = char_base. Por fim, os dados so exportados para reas de memria globais* (NF_VALUES, NF_LAWS e NF_ICMS_ROUNDING) que sero usada pela aplicao de chamada para mapear os valores para a tela correspondente da Nota Fiscal. * ou seja, reas vlidas para toda a LUW (Logical Unit of Work) PERFORM export_nf_values. FORM export_nf_values. EXPORT nf_values nf_laws nf_icms_rounding TO MEMORY ID c_id_nf. ENDFORM.

Você também pode gostar