You are on page 1of 14

Customize Taxes and Charges in Landed Cost

Management
An Oracle White Paper
Mar 2010
Table o Contents
Customize Taxes and Charges in Landed Cost Management ................................................. 1
Table of Contents ..................................................................................................................... 2
Executive Overview .................................................................................................................
!ntroduction ..............................................................................................................................
Methods in Oracle Landed Cost Management ........................................................................
"re#$eceiving %low ..............................................................................................................
Landed Cost as a &ervice %low ............................................................................................ '
"rere(uisite to use custom taxes and charges in LCM ............................................................ '
$eleases and "atches ........................................................................................................... '
!m)lement custom tax in estimated landed cost calculation ................................................... '
Technical Overview ............................................................................................................ '
"rocess %low ........................................................................................................................ *
+efine Tax Code .................................................................................................................. ,
&am)le Code- !m)lement Customized Tax ........................................................................ ,
!m)lement custom charges in estimated landed cost calculation ............................................ .
Technical Overview ............................................................................................................ .
"rocess %low ...................................................................................................................... 1/
+efine Charges0Cost %actors ............................................................................................. 11
&am)le Code- !m)lement Customized Charges ............................................................... 12
$eferences .............................................................................................................................. 1'
2
!xecuti"e O"er"ie#
The Oracle Landed Cost Management Calculation )rocess )rovides the abilit1 to calculate
the estimated landed cost using charges manuall1 assigned or automaticall1 allocated based
on the configuration in advance )ricing. Landed Cost Management also uses taxes
associated to the )urchase order that was originall1 calculated b1 E2#Tax while calculating
estimated landed cost.
This white )a)er focuses on the LCM features that enable 1ou to use customized charges
and taxes to calculate estimated landed cost.
$ntroduction
Oracle Landed Cost Management manages estimated and actual landed cost for an item
)urchased from a su))lier. Oracle Landed Cost Management determines the 3real3 costs
associated with ac(uiring items including non#recoverable taxes and charges. Changes that
are mainl1 considered in estimated landed cost calculation includes insurance4
trans)ortation4 handling4 storage costs4 container fees4 and im)ort or ex)ort charges. Oracle
Landed Cost Management integrates with "urchasing4 advance )ricing and other modules.
Landed Cost Management extracts the tax lines associated to the )urchase order that was
originall1 calculated b1 E2#Tax while calculating estimated landed cost of shi)ment.
&imilarl1 charges are extracted automaticall1 from advance )ricing while calculating
estimated landed cost of shi)ment.
Oracle 5))lications $12.1.1 onward allows custom logic to use taxes and charges during
estimated landed cost calculation in LCM. The setu)s for both tax and charge
customizations are discussed in this )a)er.
Methods in Oracle Landed Cost Management

Pre-Receiving Flow
Oracle Landed Cost Management )re#receiving functionalit1 is used to estimate landed
cost before the recei)t of the item b1 the $eceiving a))lication. 5fter the estimated landed
cost is finalized in Landed Cost Management that information is )assed to $eceiving
during the recei)t of the item based on the Landed Cost Management shi)ment. The recei)t
is )erformed using the 6nown estimated landed cost.
7sing Landed Cost Management the estimated landed cost is calculated for a shi)ment
from the following-
"rice and taxes for the item on the associated )urchase order.
Charges generated through the integration with Oracle 5dvanced "ricing or
manuall1 entered in Landed Cost Management.

Landed Cost as a Service Flow


Oracle Landed Cost Management can be used as a service. !n this functionalit14 after the
recei)t of items into inventor1 the Landed Cost Management shi)ment is automaticall1
created. The estimation of the item landed cost is also automaticall1 calculated based on
the )urchase documents )rice4 tax and the charge amounts.
Prere%uisite to use custom taxes and charges in LCM
Releases and Patches
LCM functionalit1 to use customized tax and charges in estimated landed cost calculation
is available in Oracle 5))lications $elease 12.1.2. "atch &0&'()1*+12,$-L,. should be
a))lied on to) of release 12.1.1 to enable custom taxes and charges functionalit1.
$mplement custom tax in estimated landed cost calculation
Oracle Landed Cost Management has integration with Oracle "urchasing for generating the
taxes used in estimated landed costs calculation for both flows- 8"re#$eceiving in LCM9
and 8LCM as a service9.
Landed Cost Management extracts the tax lines associated to the )urchase order that was
originall1 calculated b1 E2#Tax while calculating estimated landed cost for shi)ment4 tax
is associated with to its shi)ment Lines.
Technical Overview
Taxes calculation ta6es )lace in LCM de)ending on the following flows-
"re#$eceiving flow- 7ser creates the LCM &hi)ment through the LCM &hi)ments
:or6bench 7!. :hen the user chooses a "O &chedule as the source for creating an LCM
&hi)ment Line4 the a)i !;L<T5=<">T.?enerate<Taxes is executed.
LCM as a &ervice flow- 7ser submits the &hi)ments !nterface !m)ort concurrent )rogram4
to im)ort the $ecei)ts done in $eceiving into LCM &hi)ments. This )rogram also )rovides
the landed cost calculation for those LCM &hi)ments4 but before that4 it also calls the a)i
!;L<T5=<">T.?enerate<Taxes.
"rocedure !;L<C@5$?E<">T.?enerate<Taxes internall1 calls a)i
!;L<C7&TOM<"72.?et<Taxes which need to be modified to im)lement custom tax
logic.
'
Process Flow
%ollowing diagram shows the )rocess flow of 5"! !;L<C@5$?E<">T.?enerate<Taxes
to calculate tax in estimated landed cost.
1. 5)i !;L<C@5$?E<">T.?enerate<Taxes calls !;L<C7&TOM<"72.?et<Taxes
that returns the )arameter Override +efault "rocessing as %5L&E when no tax
customization is im)lemented otherwise4 returns T$7E.
2. :hen custom logic is im)lemented to get taxes in !;L<C7&TOM<"72.?et<Taxes
)rocedure4 the Override +efault "rocessing )arameter should return T$7E. Custom
tax details are )o)ulated and )assed as out)ut )arameter tax<in<rec from
!;L<C7&TOM<"72.?et<Taxes.
*
Tax Lines "L0&AL table to be )o)ulated-
-- Record to keep Tax Line info.
TYPE tax_ln_rec IS RECORD(
tax_code VRC!R"(#$%&
'(ip_(eader_id )*+,ER&
'o-rce_parent_ta.le_na/e VRC!R"(#$%&
'o-rce_parent_ta.le_id )*+,ER&
tax_a/t )*+,ER&
nrec_tax_a/t )*+,ER&
c-rrenc0_code VRC!R"(12%&
c-rrenc0_con3er'ion_t0pe VRC!R"(#$%&
c-rrenc0_con3er'ion_date DTE&
c-rrenc0_con3er'ion_rate )*+,ER&
tax_a/t_incl-ded_fla4 VRC!R"(1%&
-- ''ociation attri.-te'
to_parent_ta.le_na/e VRC!R"(#$%&
to_parent_ta.le_id )*+,ER
%5
. Then )rocess flow chec6s the value of the )arameter Override +efault "rocessing
%5L&E - 5)i !;L<T5=<">T.?et<Taxes%rom"O is called Bfor transaction source
C D"OEF4 for obtaining the taxes from Oracle "urchasing. 5"! returns Tax Lines
"L0&AL table as out)ut )arameter.
T$7E - 5)i !;L<T5=<">T.?et<Taxes%rom"O is not called.
'. Tax information associated with the shi)ment is inserted into database tables
!;L<T5=<L!;E& and !;L<5&&OC!5T!O;& from out)ut )arameter Tax Lines
"L0&AL table tax_ln_rec.
G
Define Tax Code
Tax Manager #H Tax Configuration #H Taxes
Sample Code: mplement C!stomi"ed Tax
Pac/age $-L0C12TOM0P1.
create or replace
PC67E ,ODY I)L_C*STO+_P*, S
-- *tilit0 na/e 8 7et_Taxe'
-- T0pe 8 P-.lic
-- 9-nction 8
-- Pre-re:' 8 )one
-- Para/eter' 8
-- I) 8 p_'(ip_(eader_rec I) I)L_T;_PVT.S(ip/ent_!eader<RO=TYPE&
-- p_'(ip_ln_4ro-p'_t.l I) I)L_T;_PVT.'(_4ro-p_ln_t.l_tp&
-- p_'(ip_line'_t.l I) I)L_T;_PVT.'(ip_ln_t.l_tp&
-- p_c(ar4e_line'_t.l I) inl_tax_p3t.c(ar4e_ln_t.l_tp&
--
-- O*T 8 x_tax_ln_t.l O*T inl_tax_p3t.tax_ln_t.l
-- x_o3erride_defa-lt_proce''in4 O*T ,OOLE)
-- x_ret-rn_'tat-' O*T )OCOPY VRC!R"
,
--
-- Ver'ion 8 C-rrent 3er'ion 1.$
--
-- )ote' 8
PROCED*RE 7et_Taxe'(
p_'(ip_(eader_rec I) I)L_T;_PVT.S(ip/ent_!eader<RO=TYPE&
p_'(ip_ln_4ro-p'_t.l I) I)L_T;_PVT.'(_4ro-p_ln_t.l_tp&
p_'(ip_line'_t.l I) I)L_T;_PVT.'(ip_ln_t.l_tp&
p_c(ar4e_line'_t.l I) inl_tax_p3t.c(ar4e_ln_t.l_tp&
x_tax_ln_t.l O*T )OCOPY inl_tax_p3t.tax_ln_t.l&
x_o3erride_defa-lt_proce''in4 O*T )OCOPY ,OOLE)&
x_ret-rn_'tat-' O*T )OCOPY VRC!R"
% IS
,E7I)
>? Code c(an4e .e4in to i/ple/ent tax c-'to/i@ation ?>
-- x_override_default_processing := FALSE;

/* Custo procedure !"L_C#S$%&_SA&'LE called to get $ax details */
!"L_C#S$%&_SA&'LE()et_$axes*
p_s+ip_+eader_rec =, p_s+ip_+eader_rec-
p_s+ip_ln_groups_t.l =, p_s+ip_ln_groups_t.l-
p_s+ip_lines_t.l =, p_s+ip_lines_t.l-
p_c+arge_lines_t.l =, p_c+arge_lines_t.l-
x_tax_ln_t.l =, x_tax_ln_t.l-
x_return_status =, x_return_status/;
x_override_default_processing := $0#E;
RET*R)5
>? Code c(an4e end' to i/ple/ent tax c-'to/i@ation ?>
E)D 7et_Taxe'5
E)D I)L_C*STO+_P*,5
Pac/age $-L0C12TOM02AMPL!
create or replace
PC67E ,ODY I)L_C*STO+_S+PLE S
PROCED*RE 7et_Taxe'(
p_'(ip_(eader_rec I) I)L_T;_PVT.S(ip/ent_!eader<RO=TYPE&
p_'(ip_ln_4ro-p'_t.l I) I)L_T;_PVT.'(_4ro-p_ln_t.l_tp&
p_'(ip_line'_t.l I) I)L_T;_PVT.'(ip_ln_t.l_tp&
p_c(ar4e_line'_t.l I) inl_tax_p3t.c(ar4e_ln_t.l_tp&
x_tax_ln_t.l O*T )OCOPY inl_tax_p3t.tax_ln_t.l&
x_ret-rn_'tat-' O*T )OCOPY VRC!R"
% IS
l_de.-4_info 3arc(ar"(#$$$%5
,E7I)
x_tax_ln_t.l(1%.tax_code 8A BSTTEB5
x_tax_ln_t.l(1%.'(ip_(eader_id 8A p_'(ip_(eader_rec.'(ip_(eader_id5
x_tax_ln_t.l(1%.'o-rce_parent_ta.le_na/e 8A BOpen InterfaceB5
x_tax_ln_t.l(1%.'o-rce_parent_ta.le_id 8A 15
x_tax_ln_t.l(1%.tax_a/t 8A 1$5
x_tax_ln_t.l(1%.nrec_tax_a/t 8A 1$5
x_tax_ln_t.l(1%.c-rrenc0_code 8A B*SDB5
x_tax_ln_t.l(1%.tax_a/t_incl-ded_fla4 8A B)B5
-- ''ociation attri.-te'
x_tax_ln_t.l(1%.to_parent_ta.le_na/e 8A BI)L_S!IP_LI)ESB5
x_tax_ln_t.l(1%.to_parent_ta.le_id 8A p_'(ip_line'_t.l(1%.'(ip_line_id5
E)D 7et_Taxe'5
E)D I)L_C*STO+_S+PLE5
I
$mplement custom charges in estimated landed cost calculation
Oracle Landed Cost Management has integration with 5dvance "ricing for generating the
charges used in estimated landed costs calculation for both flows- 8"re#$eceiving in LCM9
and 8LCM as a service9.
Landed Cost Management extracts charges based on the modifiers setu) of t1)e 8%reight
and &)ecial charge List9 defined in 5dvanced "ricing and associated to either its Line
?rou)s or its &hi)ment Lines during estimated landed cost calculation.
Technical Overview
Charge generation ta6es )lace in LCM de)ending on the following flows-
"re#$eceiving flow- 7ser creates the LCM &hi)ment through the LCM &hi)ments
:or6bench 7!. 5)i !;L<C@5$?E<">T.?enerate<Charges is executed when user selects
D?enerate Charge9 o)tion from action list while calculating estimated landed cost.
LCM as a &ervice flow- 7ser submits the &hi)ments !nterface !m)ort concurrent )rogram4
to im)ort the $ecei)ts done in $eceiving into LCM &hi)ments. This )rogram also )rovides
the landed cost calculation for those LCM &hi)ments4 but before that4 it also calls the a)i
!;L<C@5$?E<">T.?enerate<Charges.
"rocedure !;L<C@5$?E<">T.?enerate<Charges internall1 calls a)i
!;L<C7&TOM<"72.?et<Charges which need to be modified to im)lement custom
charge logic.
.
Process Flow
%ollowing diagram shows the )rocess flow of 5"! !;L<C@5$?E<">T.?enerate<Charges
to extract charges in estimated landed cost calculation.
1. 5)i !;L<C@5$?E<">T.?enerate<Charges calls
!;L<C7&TOM<"72.?et<Charges that returns the )arameter Override +efault
"rocessing as %5L&E when no charge customization is im)lemented otherwise4
returns T$7E.
2. :hen custom logic is im)lemented to get charges in
!;L<C7&TOM<"72.?et<Charges )rocedure4 the Override +efault "rocessing
1/
)arameter should return T$7E. Custom charges are )o)ulated and )assed as out)ut
)arameter charge<in<rec from !;L<C7&TOM<"72.?et<Charges.
Tax Lines "L0&AL table to be )o)ulated-
-- Record to keep C(ar4e Line info.
TYPE c(ar4e_ln_rec IS RECORD(
c(ar4e_line_t0pe_id )*+,ER&
landed_co't_fla4 VRC!R"(1%&
-pdate_alloCed VRC!R"(1%&
'o-rce_code VRC!R"("2%&
c(ar4e_a/t )*+,ER&
c-rrenc0_code VRC!R"(12%&
c-rrenc0_con3er'ion_t0pe VRC!R"(#$%&
c-rrenc0_con3er'ion_date DTE&
c-rrenc0_con3er'ion_rate )*+,ER&
part0_id )*+,ER&
part0_'ite_id )*+,ER&
trx_.-'ine''_cate4or0 VRC!R"("D$%&
intended_-'e VRC!R"(#$%&
prod-ct_fi'cal_cla'' VRC!R"("D$%&
prod-ct_cate4or0 VRC!R"("D$%&
prod-ct_t0pe VRC!R"("D$%&
-'er_def_fi'cal_cla'' VRC!R"("D$%&
tax_cla''ification_code VRC!R"(#$%&
a''e''a.le_3al-e )*+,ER&
'(ip_fro/_part0_id )*+,ER&
'(ip_fro/_part0_'ite_id )*+,ER&
'(ip_to_or4ani@ation_id )*+,ER&
'(ip_to_location_id )*+,ER&
.ill_fro/_part0_id )*+,ER&
.ill_fro/_part0_'ite_id )*+,ER&
.ill_to_or4ani@ation_id )*+,ER&
.ill_to_location_id )*+,ER&
poa_part0_id )*+,ER&
poa_part0_'ite_id )*+,ER&
poo_or4ani@ation_id )*+,ER&
poo_location_id )*+,ER&
-- ''ociation attri.-te'
to_parent_ta.le_na/e VRC!R"(#$%&
to_parent_ta.le_id )*+,ER
%5
. Then )rocess flow chec6s the value of the )arameter Override +efault "rocessing
%5L&E - 5)i !;L<C@5$?E<">T.?et<Charges%romA" is called for obtaining the
charge from 5dvance "ricing for line grou)4 shi)ment header and shi)ment lines.
5"! returns Charge Lines "L0&AL table as out)ut )arameter.
T$7E - 5)i !;L<C@5$?E<">T.?et<Charges%romA" is not called.
'. Charges associated with the line grou)4 shi)ment header and shi)ment are inserted
into database tables !;L<C@5$?E<L!;E& and !;L<5&&OC!5T!O;& from
out)ut )arameter Charge Lines "L0&AL table c(ar4e_ln_rec.
Define Charges#Cost Factors
"urchasing #H &etu) #H "urchasing #H Cost %actor
11
7se following (uer1 to identif1 the value of the )arameter charge<line<t1)e<id of the
charge t1)e setu) in above screen.
select )rice<element<t1)e<id charge<line<t1)e<id4 )rice<element<code charge<code
from "O;<"$!CE<ELEME;T<TJ"E&
where )rice<element<code CK%$E!?@TK
Sample Code: mplement C!stomi"ed Charges
Pac/age $-L0C12TOM0P1.
create or replace
12
PC67E ,ODY I)L_C*STO+_P*, S
-- *tilit0 na/e 8 7et_C(ar4e'
-- T0pe 8 P-.lic
-- 9-nction 8
-- Pre-re:' 8 )one
-- Para/eter' 8
-- I) 8 p_'(ip_(eader_rec I) inl_c(ar4e_p3t.'(ip_(eader_rec_tp&
-- p_'(ip_ln_4ro-p_rec I) inl_c(ar4e_p3t.'(ip_ln_4ro-p_t.l_tp&
-- p_'(ip_ln_t.l I) inl_c(ar4e_p3t.'(ip_ln_t.l_tp&
--
-- O*T x_c(ar4e_ln_t.l O*T )OCOPY inl_c(ar4e_p3t.c(ar4e_ln_t.l
-- x_o3erride_defa-lt_proce''in4 O*T ,OOLE) (If TR*E& it ena.le' t(e
(ook exec-tion
-- to o3erride t(e defa-lt
proce''in4 fro/
-- t(e caller ro-tine%
-- x_ret-rn_'tat-' O*T )OCOPY VRC!R"
--
-- Ver'ion 8 C-rrent 3er'ion 1.$
--
-- )ote' 8
PROCED*RE 7et_C(ar4e'(
p_'(ip_(eader_rec I) inl_'(ip_(eader'<RO=TYPE&
p_'(ip_ln_4ro-p_t.l I) inl_c(ar4e_p3t.'(ip_ln_4ro-p_t.l_tp&
p_'(ip_ln_t.l_tp I) inl_c(ar4e_p3t.'(ip_ln_t.l_tp&
x_c(ar4e_ln_t.l O*T )OCOPY inl_c(ar4e_p3t.c(ar4e_ln_t.l&
x_o3erride_defa-lt_proce''in4 O*T )OCOPY ,OOLE)&
x_ret-rn_'tat-' O*T )OCOPY VRC!R" IS
,E7I)
>? Code c(an4e .e4in to i/ple/ent c(ar4e c-'to/i@ation ?>
-- x_override_default_processing := FALSE;
!"L_C#S$%&_SA&'LE()et_C+arges*
p_s+ip_+eader_rec =, p_s+ip_+eader_rec-
p_s+ip_ln_group_rec =, p_s+ip_ln_group_rec-
p_s+ip_ln_t.l =, p_s+ip_ln_t.l-
x_c+arge_ln_t.l =, x_c+arge_ln_t.l-
x_return_status =, x_return_status/;
x_override_default_processing := $0#E;
RET*R)5
>? Code c(an4e end' to i/ple/ent tax c-'to/i@ation ?>
E)D 7et_C(ar4e'5
E)D I)L_C*STO+_P*,5
Pac/age $-L0C12TOM02AMPL!
create or replace
PC67E ,ODY I)L_C*STO+_S+PLE S
-- T(i' c-'to/ code i' for creatin4 a E1$$ c(ar4e to .e prorated into all S(ip/ent Line'
-- of t(e Line 7ro-p pa''ed a' t(e inp-t para/eter.
1
PROCED*RE 7et_C(ar4e'(
p_'(ip_(eader_rec I) inl_'(ip_(eader'<RO=TYPE&
p_'(ip_ln_4ro-p_rec I) inl_c(ar4e_p3t.'(ip_ln_4ro-p_rec&
p_'(ip_ln_t.l I) inl_c(ar4e_p3t.'(ip_ln_t.l&
x_c(ar4e_ln_t.l O*T )OCOPY inl_c(ar4e_p3t.c(ar4e_ln_t.l&
x_ret-rn_'tat-' O*T )OCOPY VRC!R"%
IS
i n-/.er5
l_de.-4_info 3arc(ar"(#$$$%5
c(ar4e_ln inl_c(ar4e_p3t.c(ar4e_ln_rec5
,E7I)
x_c(ar4e_ln_t.l(1%.c(ar4e_line_t0pe_id 8A F"5
x_c(ar4e_ln_t.l(1%.landed_co't_fla4 8A BYB5
x_c(ar4e_ln_t.l(1%.-pdate_alloCed 8A B)B5
x_c(ar4e_ln_t.l(1%.'o-rce_code 8A BOIB5
x_c(ar4e_ln_t.l(1%.c(ar4e_a/t 8A 1$$5
x_c(ar4e_ln_t.l(1%.c-rrenc0_code 8A B*SDB5
-- ''ociation attri.-te'
x_c(ar4e_ln_t.l(1%.to_parent_ta.le_na/e 8A BI)L_S!IP_LI)E_7RO*PSB5
x_c(ar4e_ln_t.l(1%.to_parent_ta.le_id 8A
p_'(ip_ln_4ro-p_rec.'(ip_line_4ro-p_id5
E)D 7et_C(ar4e'5
E)D I)L_C*STO+_S+PLE
+eerences
1. Oracle Landed Cost Management "rocess ?uide $elease 12.1B"art ;o. E14299-
02F
1'

You might also like