Escolar Documentos
Profissional Documentos
Cultura Documentos
Debugando TAXBRJ
Debugando TAXBRJ
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...)
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
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
PERFORM determine_wht_parameters
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.
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 ........................................*
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.
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
f.
Clculo de PIS
IF calc-pis = yes. PERFORM calculate_pis
g. Clculo de COFINS
IF calc-cofins = yes. PERFORM calculate_cofins
IF calc-wht = yes. * Base amount on NF for all WHT types = WHT calculation base * = Net + all taxes excluding SubTrib
j.
*---------------------------------------------------* * 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.