Você está na página 1de 3

http://mylanguages.org/telugu_adverbs.php **Free Memory ID * FREE MEMORY ID 'ZM_VBELV'.

**&--------------------------------------------------------------------* **& Form j_1b_rounding_brasil **&--------------------------------------------------------------------* ** Perform the rounding for CBT **---------------------------------------------------------------------* *form j_1b_rounding_brasil. * * statics: j_1bbdata like j_1bbranch, * j_1bplant like komp-werks. * * data: tmp_value like komv-kwert, * result(16) type p, * lv_factor type p, ** tax_base LIKE xkomv-kawrt, * save1_xkomv like xkomv. * ** Data definition for rounding * data: x type p, "10**x of YKPEIN * f type p, "10**f of correction factor * s type f, "factor ConditionUnit->SalesUnit * rf type p, "Rounding correction factor * div(1) type c. "Divide by 'rf' * ** read company code in case not filled yet (to get local currency) * if t001-bukrs <> komk-bukrs. * if not komk-bukrs is initial. * call function 'T001_SINGLE_READ' * exporting * bukrs = komk-bukrs * importing * wt001 = t001 * exceptions * others = 0. * endif. * endif. * ** calculation of conversion factor not required anymore: ** this is handled by increasing the rounding scale below * * ** determine rounding correction factor and decimals from Branch * if j_1bplant <> komp-werks. * ** read branch data to get number of decimals for the price rounding * j_1bplant = komp-werks. * call function 'J_1BREAD_PLANT_DATA' * exporting * plant = j_1bplant * importing * branch_data = j_1bbdata * exceptions * others = 1. * if sy-subrc <> 0. * clear j_1bbdata.

* endif. * endif. * ** if rounding at branch is not defined use maximum level of detail * if j_1bbdata-nfdec is initial. * j_1bbdata-nfdec = 6. * endif. * * call function 'J_1B_ROUNDING_SCALE_GET' * exporting * iv_tax_base = komp-netwr * iv_nfdec = j_1bbdata-nfdec * importing * ev_factor = lv_factor. * ** perform rounding if currency is CC currency and taxes were calculated ** Note 866790 * tmp_value = xkwert / lv_factor. * * if xkomv-waers = t001-waers "(Brazilian) company code currency * and tmp_value ne komp-netwr. " only if taxes were calculated * ** calculate rounding factor * f = j_1bbdata-nfdec - 2. "2=number of standard decimals * rf = 10 ** f. * ** tax base is net price --> result is already calculated per sales unit ** simply divide by sales order amount and rounding factors * result = xkwert. * if komp-mgame <> 0. * result = 1000 * result * rf * / komp-mgame * / lv_factor . * else. * clear result. * endif. * **... assign the results..for CC currency................................ * * xkomv-kbetr = result * ykpein * / rf. * * xkwert = result * komp-mgame * / 1000 / rf. * * else. **... assign the results..for foreign currency........................ ** Avoid division by zero ** Note: 1007309: correction of the division by zero * if komp-mgame <> 0. * if ykmeng <> 0. * xkwert = tmp_value. ** xkomv-kbetr = xkwert * ykpein * 1000 / ykmeng. ** Note 936601 : Display of unit price * if komp-kpein <= 1. "Note 1303358 * xkomv-kbetr = ( xkwert * 1000 ) / komp-mgame. * else. "Note 1303358 * xkomv-kbetr = ( xkwert * komp-kpein * 1000 ) / komp-mgame. * endif. * endif.

* * * * * * ** ** ** ** * *

else. clear xkwert. clear xkomv-kbetr. endif. endif. assign other result fields: Required for CBT as well xkomv-kmein = ykmein. "Shall be komp-vrkme if anything. xkomv-kumza = ykumza. xkomv-kumne = ykumne. xkomv-kpein = ykpein. xkomv-kawrt = ykmeng.

Você também pode gostar