Você está na página 1de 4

Antes de transportar as configurações da Nfe 4.

0 para Qualidade, verifiquem se os programas abaixo estão como as


figuras (tem o texto também no anexo). Isso é necessário para o sistema calcular a partilha corretamente.

A SAP vem atualizando as versões das notas que influenciam na partilha quase que diariamente e isso gerou diferenças
entre os clientes. Do modo abaixo, o sistema funciona e a partilha é calculada se todas as conditions e formulas descritas
nos steps manuais a serem feitos pelo consultor funcional estiverem corretas.

Segue abaixo o passo-a-passo:

1) Acesse a transação SE24


2) Informar classe CL_TAX_CALC_BR_SD
3) Dentro da classe dar duplo clique no CALCULATE_ICMS_PARTILHA abaixo:

Conferir se o código está igual ao arquivo “Method CALCULATE_ICMS_PARTILHA” em anexo. Caso não esteja igual
checar se as notas relacionadas no código do arquivo em anexo estão todas aplicadas na sua última versão.
4) Depois disso dar duplo clique na linha que estiver com o método Calculate, no caso abaixo é na linha 33:

irá abrir o método Calculate, comparar o código com o do arquivo “Method Calculate” em anexo. Caso não esteja
igual checar se as notas relacionadas no código do arquivo em anexo estão todas aplicadas na sua última versão.

5) Se todas as notas estiverem aplicadas e o código não estiver igual. Transportar assim mesmo e verificar se está
funcionando. Se não estiver, verificar se as pricings estão corretamente configuradas com os passos manuais das
notas SAP. Se estiverem, abrir chamado na SAP, se não tivermos essa opção de abrir o chamado alterar o código
manualmente para os códigos em anexo (Caso tenha que fazer isso, use a Uster como exemplo para criar objetos ou
qualquer outro problema).

METHOD CALCULATE.

* Method created by SAP note 2232757.

DATA:
lv_difal_rate TYPE mty_tax,
lv_dest_icms_rate TYPE mty_tax,
* lv_dest_icms_red TYPE mty_tax, "2262327
lv_dest_icms_rate_red TYPE mty_tax,
lv_orig_icms_rate_red TYPE mty_tax,
lv_orig_partilha_rate TYPE mty_tax,
lv_dest_partilha_rate TYPE mty_tax,
lv_special_fund_rate_red TYPE mty_tax.

* (Code removed by SAP Note 2262327)

* Determine interstate icms (origin) rate with reduction


lv_orig_icms_rate_red = do_value_reduction(
iv_value = iv_orig_icms_rate
iv_reduction = iv_orig_icms_red
).

* Determine intrastate icms (destination) rate with reduction


lv_dest_icms_rate_red = do_value_reduction(
iv_value = iv_dest_icms_rate
iv_reduction = iv_dest_icms_red "2262327
).

* Determine difal rate


lv_difal_rate = lv_dest_icms_rate_red
- lv_orig_icms_rate_red.

* Determine partilha rate


lv_dest_partilha_rate = determine_dest_partilha_rate( iv_return_as_percentage =
abap_true ).
lv_orig_partilha_rate = 1 - lv_dest_partilha_rate.

* Determine partilha origstate (SP->RJ)


determine_partilha(
EXPORTING
iv_difal_rate = lv_difal_rate
iv_gross_price = iv_gross_price
iv_icms_red = iv_dest_icms_red
iv_icms_rate = iv_dest_icms_rate
iv_partilha_rate = lv_orig_partilha_rate
iv_exemption = iv_exemption "2283440
IMPORTING
ev_partilha_amount = ev_orig_partilha_amount
ev_partilha_base = ev_orig_partilha_base
ev_partilha_rate = ev_orig_partilha_rate
ev_partilha_ebase = ev_orig_partilha_ebase "2271192
).

* Determine partilha deststate (RJ->RJ)


determine_partilha(
EXPORTING
iv_difal_rate = lv_difal_rate
iv_gross_price = iv_gross_price
iv_icms_red = iv_dest_icms_red "2262327
iv_icms_rate = iv_dest_icms_rate
iv_partilha_rate = lv_dest_partilha_rate
iv_exemption = iv_exemption "2283440
IMPORTING
ev_partilha_amount = ev_dest_partilha_amount
ev_partilha_base = ev_dest_partilha_base
ev_partilha_rate = ev_dest_partilha_rate
ev_partilha_ebase = ev_dest_partilha_ebase "2271192
).

ENDMETHOD.

METHOD CALCULATE_ICMS_PARTILHA.

* Method created by SAP note 2232757.

DATA:
lv_gross_price TYPE cl_j_1b_icms_partilha=>mty_tax,
lv_icmsrate TYPE cl_j_1b_icms_partilha=>mty_tax,
lv_icmsamt TYPE cl_j_1b_icms_partilha=>mty_tax,
lv_is_exempt TYPE abap_bool. "2283474

* Check if it is a ICMS Partilha scenario


CHECK is_icms_partilha_scenario( ) = abap_true. "2443042

* Check if ICMS Partilha is exempt "2443042 2283474


lv_is_exempt = me->is_icms_partilha_exempt( ). "2443042

* CT-e
IF check_cte_active( ) <> 'X'.
lv_icmsrate = ms_tax_data-icmsnormrate.
lv_icmsamt = ms_tax_result-icms_amt.
ELSE.
* Only activate partilha for ICMS scenarios "2248752
CHECK check_icms_active( ) = 'X'. "2248752

* CT-e has ICMS rate in freight conditions "2248752


lv_icmsrate = ms_tax_data-icmsfreightrate. "2248752
lv_icmsamt = ms_tax_result-conh_icm_amt. "2248752
ENDIF.

* Casting
lv_gross_price = iv_gross_price.

cl_j_1b_icms_partilha=>calculate(
EXPORTING
iv_gross_price = lv_gross_price
iv_orig_icms_red = ms_tax_data-icmsbase
iv_orig_icms_rate = lv_icmsrate
iv_orig_icms_amount = lv_icmsamt
iv_dest_icms_red = ms_tax_data-icmsbase_intra
iv_dest_icms_rate = ms_tax_data-icmsrate_intra
iv_exemption = lv_is_exempt "2283474
is_komk = is_komk
is_komp = is_komp
it_komv = it_komv
IMPORTING
ev_orig_partilha_base = ms_tax_result-icms_orig_part_base
ev_orig_partilha_ebase = ms_tax_result-icms_orig_part_exc "2273938
ev_orig_partilha_rate = ms_tax_result-icms_orig_part_rate
ev_orig_partilha_amount = ms_tax_result-icms_orig_part_amt
ev_dest_partilha_base = ms_tax_result-icms_dest_part_base
ev_dest_partilha_ebase = ms_tax_result-icms_dest_part_exc "2273938
ev_dest_partilha_rate = ms_tax_result-icms_dest_part_rate
ev_dest_partilha_amount = ms_tax_result-icms_dest_part_amt
).

ENDMETHOD.

Você também pode gostar