DBA Data[Home] [Help]

PACKAGE: APPS.MSC_ATP_SUBST

Source


1 PACKAGE MSC_ATP_SUBST AS
2 /* $Header: MSCSUBAS.pls 120.2 2007/12/12 10:40:33 sbnaik ship $  */
3 
4 --- new data types
5 -- holds org and item/org specific information
6 TYPE ATP_Org_Info_Rec_Typ is RECORD (
7 				Organization_Id		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  --- organizaton_id
8                                 Parent_Org_Idx          MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  ---index for parent org in supply chain
9                                 Requested_ship_date     MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),    -- requested ship date in org
10                                 Request_Date_Quantity	MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  -- request date quantity
11                                 demand_quantity         MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  -- demand quantity in the org
12                                 Demand_Pegging_id       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  -- pegging id for demand in current org
13                                 Supply_pegging_id       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  -- supply pegging id
14                                 PO_pegging_id           MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  -- peggeing id for PO in parent Org
15                                 Demand_ID               MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),  -- demand id in msc_demand table
16                                 org_code                MRP_ATP_PUB.char7_arr := MRP_ATP_PUB.char7_arr(),
17                	                Lead_time               MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
18                                 Quantity_from_children 	MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
19                                 atp_flag                MRP_ATP_PUB.char1_arr := MRP_ATP_PUB.char1_arr(),
20                                 atp_comp_flag           MRP_ATP_PUB.char1_arr := MRP_ATP_PUB.char1_arr(),
21                                 post_pro_lt             MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
22                                 plan_id                 MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
23                                 assign_set_id           MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
24                                 location_id             MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
25                                 demand_class            MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
26                                 steal_qty               MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
27 
28 				-- dsting diagnostic atp
29 				fixed_lt		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
30 				variable_lt		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
31 				pre_pro_lt		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
32 				ship_method		MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
33 				plan_name		MRP_ATP_PUB.char10_arr := MRP_ATP_PUB.char10_arr(),
34 				rounding_flag		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
35 				unit_weight		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
36 				weight_uom		MRP_ATP_PUB.char3_arr := MRP_ATP_PUB.char3_arr(),
37 				unit_volume		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
38 				volume_uom		MRP_ATP_PUB.char3_arr := MRP_ATP_PUB.char3_arr(),
39 				ptf_date		MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
40 				substitution_window	MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
41 				allocation_rule		MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
42 				infinite_time_fence	MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
43 				atp_rule_name		MRP_ATP_PUB.char80_arr := MRP_ATP_PUB.char80_arr(),
44 				constraint_type		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
45 				constraint_date		MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
46                                 -- dsting 2754446
47                                 conversion_rate         MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
48                                 primary_uom             MRP_ATP_PUB.char3_arr := MRP_ATP_PUB.char3_arr(),
49                                 req_date_unadj_qty      MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
50                                 rnding_leftover         MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
51 
52                                 -- time_phased_atp
53                                 Family_sr_id            MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
54                                 Family_dest_id          MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
55                                 Family_item_name        MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
56                                 Atf_Date                MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
57                                 Atf_Date_Quantity	MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
58 
59                                 -- ship_rec_cal
60                                 shipping_cal_code       MRP_ATP_PUB.char14_arr := MRP_ATP_PUB.char14_arr(),
61                                 receiving_cal_code      MRP_ATP_PUB.char14_arr := MRP_ATP_PUB.char14_arr(),
62                                 intransit_cal_code      MRP_ATP_PUB.char14_arr := MRP_ATP_PUB.char14_arr(),
63                                 manufacturing_cal_code  MRP_ATP_PUB.char14_arr := MRP_ATP_PUB.char14_arr(),
64                                 new_ship_date           MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
65                                 new_dock_date           MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
66                                 new_start_date          MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),   -- Bug 3241766
67                                 new_order_date          MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr()    -- Bug 3241766
68                                );
69 
70 Type Item_Info_Rec_Typ is Record( inventory_item_id             MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
71                                   sr_inventory_item_id          MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
72                                   highest_revision_item_id      MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
73                                   item_name                     MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
74                                   End_pegging_id                MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
75                                   request_date_quantity         MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
76                                   partial_fulfillment_flag      MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
77                                   period_detail_begin_idx       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
78                                   period_detail_end_idx	        MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
79                                   sd_detail_begin_idx           MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
80                                   sd_detail_end_idx             MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
81                                   CTP_PRD_DETL_BEGIN_IDX        MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
82                                   CTP_PRD_DETL_END_IDX          MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
83                                   CTP_SD_DETL_BEGIN_IDX         MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
84                                   CTP_SD_DETL_END_IDX           MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
85                                   FUT_CTP_PRD_DETL_BEGIN_IDX    MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
86                                   FUT_CTP_PRD_DETL_END_IDX      MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
87                                   FUT_CTP_SD_DETL_BEGIN_IDX     MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
88                                   FUT_CTP_SD_DETL_END_IDX       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
89                                   atp_flag                      MRP_ATP_PUB.char1_arr := MRP_ATP_PUB.char1_arr(),
90                                   atp_comp_flag                 MRP_ATP_PUB.char1_arr := MRP_ATP_PUB.char1_arr(),
91                                   pre_pro_lt                    MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
92                                   post_pro_lt                   MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
93                                   fixed_lt                      MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
94                                   variable_lt                   MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
95                                   create_supply_flag            MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
96                                   substitution_window           MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
97                                   plan_id                       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
98                                   ASSIGN_SET_ID                 MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
99                                   future_atp_date               MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
100                                   atp_date_quantity             MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
101                                   demand_id                     MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
102                                   FUT_ATP_PRD_DETL_BEGIN_IDX    MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
103                                   FUT_ATP_PRD_DETL_END_IDX      MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
104                                   FUT_ATP_SD_DETL_BEGIN_IDX     MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
105                                   FUT_ATP_SD_DETL_END_IDX       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
106                                   future_supply_peg_id          MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
107                                   demand_class                  MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
108                                   ---forward steal
109                                   fwd_steal_peg_begin_idx       MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
110                                   fwd_steal_peg_end_idx         MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
111 
112 				  -- dsting diagnostic atp
113 				  rounding_control_type	MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
114 				  unit_weight		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
115 				  weight_uom		MRP_ATP_PUB.char3_arr := MRP_ATP_PUB.char3_arr(),
116 				  unit_volume		MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
117 				  volume_uom		MRP_ATP_PUB.char3_arr := MRP_ATP_PUB.char3_arr(),
118 				  plan_name		MRP_ATP_PUB.char10_arr := MRP_ATP_PUB.char10_arr(),
119 
120                                   -- time_phased_atp
121                                   Family_sr_id            MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
122                                   Family_dest_id          MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
123                                   Family_item_name        MRP_ATP_PUB.char30_arr := MRP_ATP_PUB.char30_arr(),
124                                   Atf_Date                MRP_ATP_PUB.date_arr := MRP_ATP_PUB.date_arr(),
125                                   Atf_Date_Quantity	  MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr(),
126                                   used_available_quantity  MRP_ATP_PUB.number_arr := MRP_ATP_PUB.number_arr() --bug3467631 New_time_phase_logic
127                                   );
128 
129 --G_Org_Availability_Info ATP_Info_Details_Rec_Typ;
130 --Item_Availability_Info Item_Info_Rec_Typ;
131 
132 G_TOP_LAST_PO_PEGGING 	NUMBER;
133 G_TOP_LAST_PO_QTY	NUMBER;
134 
135 ---Constants
136 ALL_OR_NOTHING  CONSTANT INTEGER := 1;
137 MIXED           CONSTANT INTEGER := 2;
138 ITEM_ATTRIBUTE  CONSTANT INTEGER := 3;
139 NO_SUBSTITUTION CONSTANT INTEGER := 4;
140 G_FUTURE_PEGGING_ID      NUMBER;
141 --- default to demanded item if this profile option is not set
142 G_CREATE_SUPPLY_FLAG NUMBER := NVL( FND_PROFILE.value('MSC_ITEM_CHOICE_FOR_SUBSTITUTE'), 701);
143 
144 G_REQ_ITEM_SR_INV_ID    NUMBER;
145 
146 G_DEMANDED_ITEM CONSTANT INTEGER := 701;
147 G_HIGHEST_REV_ITEM CONSTANT INTEGER := 702;
148 G_ITEM_ATTRIBUTE   CONSTANT INTEGER := 703;
149 
150 PROCEDURE Extend_Org_Avail_Info_Rec (
151   p_org_avail_info         IN OUT NOCOPY  MSC_ATP_SUBST.ATP_Org_Info_Rec_Typ,
152   x_return_status       OUT      NoCopy VARCHAR2);
153 
154 Procedure Extend_Item_Info_Rec_Typ(
155   p_item_avail_info        IN OUT NOCOPY  MSC_ATP_SUBST.Item_Info_Rec_Typ,
156   x_return_status          OUT      NoCopy VARCHAR2);
157 
158 PROCEDURE ATP_Check_Subst
159               (p_atp_record                     IN OUT   NoCopy MRP_ATP_PVT.AtpRec,
160                p_item_substitute_rec            IN       Item_Info_Rec_Typ,
161                p_requested_ship_date            IN       DATE,
162                p_plan_id                        IN       NUMBER,
163                p_level                          IN       NUMBER,
164                p_scenario_id                    IN       NUMBER,
165                p_search                         IN       NUMBER,
166                p_refresh_number                 IN       NUMBER,
167                p_parent_pegging_id              IN       NUMBER,
168                p_assign_set_id                  IN       NUMBER,
169                x_atp_period                     OUT NOCOPY MRP_ATP_PUB.ATP_Period_Typ,
170                x_atp_supply_demand              OUT NOCOPY MRP_ATP_PUB.ATP_Supply_Demand_Typ,
171                x_return_status                  OUT      NoCopy VARCHAR2
172 );
173 
174 Procedure Get_Item_Substitutes(p_inventory_item_id IN       NUMBER,
175                                p_item_table        IN OUT   NoCopy MSC_ATP_SUBST.Item_Info_Rec_Typ,
176                                p_instance_id       IN       NUMBER,
177                                p_plan_id           IN       NUMBER,
178                                p_customer_id       IN       NUMBER,
179                                p_customer_site_id  IN       NUMBER,
180                                p_request_date      IN       DATE,
181                                p_organization_id   IN       NUMBER);
182 
183 Procedure Update_demand(p_demand_id             number,
184                         p_plan_id               number,
185                         p_quantity              number);
186 
187 Procedure Delete_demand_subst(p_demand_id number,
188                               p_plan_id   number);
189 
190 PROCEDURE Add_Pegging(
191   p_pegging_rec          IN         mrp_atp_details_temp%ROWTYPE
192 );
193 
194 PROCEDURE Details_Output (
195   p_atp_period          IN       MRP_ATP_PUB.ATP_Period_Typ,
196   p_atp_supply_demand   IN       MRP_ATP_PUB.ATP_Supply_Demand_Typ,
197   p_begin_period_idx    IN       NUMBER,
198   p_end_period_idx      IN       NUMBER,
199   p_begin_sd_idx        IN       NUMBER,
200   p_end_sd_idx          IN       NUMBER,
201   x_atp_period          IN OUT   NOCOPY  MRP_ATP_PUB.ATP_Period_Typ,
202   x_atp_supply_demand   IN OUT   NOCOPY  MRP_ATP_PUB.ATP_Supply_Demand_Typ,
203   x_return_status       OUT      NoCopy VARCHAR2
204 );
205 
206 Procedure Copy_Item_Info_Rec(p_parent_item_info       IN     MSC_ATP_SUBST.Item_Info_Rec_Typ,
207                              p_child_item_info         IN OUT NoCopy MSC_ATP_SUBST.Item_Info_Rec_Typ,
208                              p_index                  IN     NUMBER);
209 /* time_phased_atp
210 PROCEDURE Add_Mat_Demand(
211   p_atp_rec          IN         MRP_ATP_PVT.AtpRec ,
212   p_plan_id          IN         NUMBER ,
213   p_dc_flag          IN         NUMBER,
214   x_demand_id        OUT        NoCopy NUMBER
215 );
216 */
217 
218 END MSC_ATP_SUBST;