DBA Data[Home] [Help]

PACKAGE: APPS.RLM_MANAGE_DEMAND_SV

Source


1 PACKAGE RLM_MANAGE_DEMAND_SV AUTHID CURRENT_USER as
2 /* $Header: RLMDPMDS.pls 120.5.12020000.1 2012/06/27 06:48:11 appldev ship $*/
3 --<TPA_PUBLIC_NAME=RLM_TPA_SV>
4 --<TPA_PUBLIC_FILE_NAME=RLMTPDP>
5 
6 /*===========================================================================
7   PACKAGE NAME:		rlm_manage_demand_sv
8 
9   DESCRIPTION:		Contains all server side code for the RLM Manage Demand.
10 
11   CLIENT/SERVER:        Server
12 
13   LIBRARY NAME:         None
14 
15   OWNER:                mnandell
16 
17   PROCEDURE/FUNCTIONS:
18 
19   GLOBALS:
20 
21 ============================================================================*/
22 
23   TYPE t_match_Tab  IS TABLE OF rlm_core_sv.t_match_rec INDEX BY BINARY_INTEGER;
24   TYPE t_Cursor_ref IS REF CURSOR;
25 
26   TYPE t_MD_rec IS RECORD (
27     operation_code                NUMBER,
28     source_index                NUMBER
29     );
30 
31   TYPE t_MD_tab IS TABLE OF rlm_interface_lines%ROWTYPE INDEX BY BINARY_INTEGER;
32 
33   TYPE t_Number_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
34 
35   TYPE t_Ship_rec IS RECORD (
36     customer_id               NUMBER,
37     customer_item_id          NUMBER,
38     inventory_item_id         NUMBER,
39     ship_from_org_id          NUMBER,
40     intrmd_ship_to_address_id NUMBER,
41     ship_to_address_id        NUMBER,
42     bill_to_address_id        NUMBER,
43     purchase_order_number     rlm_interface_lines.cust_po_number%TYPE,
44     primary_quantity          NUMBER,
45     item_detail_quantity      NUMBER, -- Added by JAUTOMO
46     start_date_time           DATE,
47     cust_record_year          rlm_interface_lines.industry_attribute1%TYPE,
48     line_id                   NUMBER,
49     found                     NUMBER
50     );
51 
52   -- JAUTOMO: Bug 1689974
53   TYPE t_source_rec IS RECORD( organization_id  NUMBER,
54                                allocation_percent   NUMBER,
55                                effective_date DATE, --Bugfix 6051397
56                                disable_date DATE);  --Bugfix 6051397
57 
58   TYPE t_Source_tab IS TABLE OF t_source_rec INDEX BY BINARY_INTEGER;
59   TYPE t_Ship_tab IS TABLE OF t_Ship_rec INDEX BY BINARY_INTEGER;  --Bugfix 7007638
60 
61   g_AllIntransitQty NUMBER := 0;
62   --
63 
64   e_GroupError            EXCEPTION;
65   k_INSERT                CONSTANT NUMBER := 0;
66   k_UPDATE                CONSTANT NUMBER := 1;
67   k_DELETE                CONSTANT NUMBER := 2;
68   k_PAST_DUE_FIRM         CONSTANT VARCHAR2(1) := '0';
69   k_FIRM_DEMAND           CONSTANT VARCHAR2(1) := '1';
70   k_FORECAST_DEMAND       CONSTANT VARCHAR2(1) := '2';
71   k_MRP_FORECAST          CONSTANT VARCHAR2(1) := '6';
72   k_MRP_DROP_DEMAND       CONSTANT VARCHAR2(1) := 'D'; --bug 5208135
73   k_AUTHORIZATION         CONSTANT VARCHAR2(1) := '3';
74   k_SHIP_RECEIPT_INFO     CONSTANT VARCHAR2(1) := '4';
75   k_OTHER_DETAIL_TYPE     CONSTANT VARCHAR2(1) := '5';
76   k_CONFIRMATION          CONSTANT VARCHAR2(30) := 'CONFIRMATION';
77   k_ACTUAL                CONSTANT VARCHAR2(30) := 'ACTUAL';
78   k_CUMULATIVE            CONSTANT VARCHAR2(30) := 'CUMULATIVE';
79   k_CUM                   CONSTANT VARCHAR2(30) := 'CUM';
80   k_SHIPMENT              CONSTANT VARCHAR2(30) := 'SHIPMENT';
81   k_RECEIPT               CONSTANT VARCHAR2(30) := 'RECEIPT';
82   k_PLANNING            CONSTANT VARCHAR2(30) := 'PLANNING_RELEASE';
83   k_SHIPPING            CONSTANT VARCHAR2(30) := 'SHIPPING';
84   k_SEQUENCED           CONSTANT VARCHAR2(30) := 'SEQUENCED';
85   k_TRUE                CONSTANT   NUMBER := 1;
86   k_FALSE               CONSTANT   NUMBER := 0;
87   k_VNULL               CONSTANT   VARCHAR2(30) := 'THIS_IS_NULL_VALUE';
88   k_NULL                CONSTANT   NUMBER := -19999999999;
89   k_DNULL               CONSTANT   DATE := to_date('01/01/1930','dd/mm/yyyy');
90   C_SDEBUG              CONSTANT   NUMBER := rlm_core_sv.C_LEVEL7;
91   C_DEBUG               CONSTANT   NUMBER := rlm_core_sv.C_LEVEL8;
92   C_TDEBUG              CONSTANT   NUMBER := rlm_core_sv.C_LEVEL9;
93   --
94   k_FIRM                CONSTANT VARCHAR2(1) := '1';
95   k_FORECAST            CONSTANT VARCHAR2(1) := '2';
96   k_RECT                CONSTANT VARCHAR2(1) := '4';
97   -- Bug# 2124495
98   k_NONE		CONSTANT VARCHAR2(30):= 'NONE';
99   --
100   k_REQUEST_DATE             CONSTANT VARCHAR2(30) := 'REQUEST_DATE,C';
101   k_CUST_PO_NUMBER           CONSTANT VARCHAR2(30) := 'CUST_PO_NUMBER,E';
102   k_CUSTOMER_ITEM_REVISION   CONSTANT VARCHAR2(30) := 'CUSTOMER_ITEM_REVISION,F';
103   k_CUSTOMER_DOCK_CODE       CONSTANT VARCHAR2(30) := 'CUSTOMER_DOCK_CODE,B';
104   k_CUSTOMER_JOB             CONSTANT VARCHAR2(30) := 'CUSTOMER_JOB,G';
105   k_CUST_PRODUCTION_LINE     CONSTANT VARCHAR2(30) := 'CUSTOMER_PRODUCTION_LINE,A';
106   k_CUST_MODEL_SERIAL_NUMBER CONSTANT VARCHAR2(30) := 'CUST_MODEL_SERIAL_NUMBER,H';
107   k_CUST_PRODUCTION_SEQ_NUM  CONSTANT VARCHAR2(30) := 'CUST_PRODUCTION_SEQ_NUM,$';
108   k_INDUSTRY_ATTRIBUTE1      CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE1,I' ;
109   k_INDUSTRY_ATTRIBUTE2      CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE2,J' ;
110   k_INDUSTRY_ATTRIBUTE4      CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE4,K';
111   k_INDUSTRY_ATTRIBUTE5      CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE5,L' ;
112   k_INDUSTRY_ATTRIBUTE6      CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE6,M' ;
113   k_INDUSTRY_ATTRIBUTE10     CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE10,O';
114   k_INDUSTRY_ATTRIBUTE11     CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE11,P';
115   k_INDUSTRY_ATTRIBUTE12     CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE12,Q';
116   k_INDUSTRY_ATTRIBUTE13     CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE13,R';
117   k_INDUSTRY_ATTRIBUTE14     CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE14,S';
118   k_INDUSTRY_ATTRIBUTE15     CONSTANT VARCHAR2(30) := 'INDUSTRY_ATTRIBUTE15,T';
119   k_ATTRIBUTE1               CONSTANT VARCHAR2(30) := 'ATTRIBUTE1,U';
120   k_ATTRIBUTE2               CONSTANT VARCHAR2(30) := 'ATTRIBUTE2,V';
121   k_ATTRIBUTE3               CONSTANT VARCHAR2(30) := 'ATTRIBUTE3,W';
122   k_ATTRIBUTE4               CONSTANT VARCHAR2(30) := 'ATTRIBUTE4,X';
123   k_ATTRIBUTE5               CONSTANT VARCHAR2(30) := 'ATTRIBUTE5,Y';
124   k_ATTRIBUTE6               CONSTANT VARCHAR2(30) := 'ATTRIBUTE6,Z';
125   k_ATTRIBUTE7               CONSTANT VARCHAR2(30) := 'ATTRIBUTE7,1';
126   k_ATTRIBUTE8               CONSTANT VARCHAR2(30) := 'ATTRIBUTE8,2';
127   k_ATTRIBUTE9               CONSTANT VARCHAR2(30) := 'ATTRIBUTE9,3';
128   k_ATTRIBUTE10              CONSTANT VARCHAR2(30) := 'ATTRIBUTE10,4';
129   k_ATTRIBUTE11              CONSTANT VARCHAR2(30) := 'ATTRIBUTE11,5';
130   k_ATTRIBUTE12              CONSTANT VARCHAR2(30) := 'ATTRIBUTE12,6';
131   k_ATTRIBUTE13              CONSTANT VARCHAR2(30) := 'ATTRIBUTE13,7';
132   k_ATTRIBUTE14              CONSTANT VARCHAR2(30) := 'ATTRIBUTE14,8';
133   k_ATTRIBUTE15              CONSTANT VARCHAR2(30) := 'ATTRIBUTE15,9';
134 
135   g_ManageDemand_tab t_MD_tab;
136   g_Group_rec        rlm_dp_sv.t_Group_rec;
137   g_LastReceipt_rec  t_Ship_rec;
138   g_CUM_rec  t_Ship_rec;
139   g_CUM_tab          t_Ship_tab;  --Bugfix 7007638
140 
141   e_group_error          EXCEPTION;
142 
143   -- Bug 3686095 : Record structure to hold the percentage allocation
144   -- of intransit quantities
145   TYPE t_SrcIntransit IS RECORD(organization_id NUMBER,
146                                 intransit_qty   NUMBER);
147   TYPE t_SrcIntransitQtyTab IS TABLE OF t_SrcIntransit INDEX BY BINARY_INTEGER;
148 
149 /*===========================================================================
150   PROCEDURE NAME:        ManageDemand
151 
152   DESCRIPTION:           This procedure will be called to manage demand
153                          for a particular schedule, and serve as the top level
154                          routine from which all other routines will be called.
155 
156   PARAMETERS:            x_InterfaceHeaderId IN NUMBER
157                          x_ReturnStatus OUT NOCOPY VARCHAR2
158 
159   DESIGN REFERENCES:     rlmdpmdd.rtf
160 
161   ALGORITHM:
162 
163   NOTES:
164 
165   OPEN ISSUES:
166 
167   CLOSED ISSUES:
168 
169   CHANGE HISTORY:        mnandell        8/6/98        created
170 ===========================================================================*/
171 PROCEDURE ManageDemand(x_InterfaceHeaderId IN NUMBER,
172                        x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
173                        x_Group_rec IN OUT NOCOPY rlm_dp_sv.t_Group_rec,
174                        x_ReturnStatus OUT NOCOPY NUMBER);
175 
176 /*===========================================================================
177   PROCEDURE NAME:        ManageGroupDemand
178 
179   DESCRIPTION:           This procedure will be called to manage demand
180                          for a particular schedule, and serve as the top level
181                          routine from which all other routines will be called.
182 
183   PARAMETERS:            x_InterfaceHeaderId IN NUMBER
184                          x_ReturnStatus OUT NOCOPY VARCHAR2
185 
186   DESIGN REFERENCES:     rlmdpmdd.rtf
187 
188   ALGORITHM:
189 
190   NOTES:
191 
192   OPEN ISSUES:
193 
194   CLOSED ISSUES:
195 
196   CHANGE HISTORY:        mnandell        8/6/98        created
197 ===========================================================================*/
198 PROCEDURE ManageGroupDemand(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
199                             x_Group_rec IN OUT NOCOPY rlm_dp_sv.t_Group_rec,
200                             x_ReturnStatus OUT NOCOPY NUMBER);
201 
202 /*===========================================================================
203   PROCEDURE NAME:        PopulateLastReceiptRec
204 
205   DESCRIPTION:                This procedure retrieves the last ship receipt rec
206 ord.
207 
208   PARAMETERS:                x_ScheduleId IN NUMBER
209                         x_Group_rec IN t_Group_rec
210                         x_LastReceipt_rec OUT NOCOPY t_Ship_rec
211 
212   DESIGN REFERENCES:        rlmdpmdd.rtf
213 
214   ALGORITHM:
215 
216   NOTES:
217 
218   OPEN ISSUES:
219 
220   CLOSED ISSUES:
221 
222   CHANGE HISTORY:        jhaulund        8/6/98        created
223 ===========================================================================*/
224 PROCEDURE  PopulateLastReceiptRec(x_Sched_rec IN rlm_interface_headers%ROWTYPE,
225                                   x_Group_rec IN rlm_dp_sv.t_Group_rec);
226 
227 /*===========================================================================
228   PROCEDURE NAME:        PopulateMD
229 
230   DESCRIPTION:           This procedure retrieves all requirements for a
231                          particular ship-from, ship-to, and item.
232 
233   PARAMETERS:            x_ManageDemand_tab IN OUT NOCOPY t_MD_tab
234                          x_Group_rec IN t_Group_rec
235 
236   DESIGN REFERENCES:     rlmdpmdd.rtf
237 
238   ALGORITHM:
239 
240   NOTES:
241 
242   OPEN ISSUES:
243 
244   CLOSED ISSUES:
245 
246   CHANGE HISTORY:        jhaulund        8/6/98        created
247 ===========================================================================*/
248 PROCEDURE  PopulateMD(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
249                       x_Group_rec IN rlm_dp_sv.t_Group_rec,
250                       x_IncludeCUM IN VARCHAR2 DEFAULT 'N');
251 
252 
253 /*===========================================================================
254   PROCEDURE NAME:        CUMToDiscrete
255 
256   DESCRIPTION:           This procedure converts CUM quantities to discrete
257                          quantities.
258 
259   PARAMETERS:            x_ManageDemand_tab IN OUT NOCOPY t_MD_tab
260                          x_ReceiveShip_rec IN t_Ship_rec
261 
262   DESIGN REFERENCES:     rlmdpmdd.rtf
263 
264   ALGORITHM:
265 
266   NOTES:
267 
268   OPEN ISSUES:
269 
270   CLOSED ISSUES:
271 
272   CHANGE HISTORY:        jhaulund        8/6/98        created
273 ===========================================================================*/
274 PROCEDURE  CUMToDiscrete(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
275                          x_Group_rec IN rlm_dp_sv.t_Group_rec);
276 --<TPA_PUBLIC_NAME>
277 
278 /*===========================================================================
279   PROCEDURE NAME:        PopulateCUMRec
280 
281   DESCRIPTION:           This procedure retrieves the cumulative
282                          received/shipped quantity for a particular ship-to
283                          and item.
284 
285   PARAMETERS:            x_ScheduleId IN NUMBER
286                          x_Group_rec IN t_Group_rec
287                          x_ReceiveShip_rec OUT NOCOPY t_Ship_rec
288 
289 
290   DESIGN REFERENCES:     rlmdpmdd.rtf
291 
292   ALGORITHM:
293 
294   NOTES:
295 
296   OPEN ISSUES:
297 
298   CLOSED ISSUES:
299 
300   CHANGE HISTORY:        jhaulund        8/6/98        created
301 ===========================================================================*/
302 PROCEDURE  PopulateCUMRec(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
303                           x_Group_rec IN rlm_dp_sv.t_Group_rec );
304 
305 /*===========================================================================
306   PROCEDURE NAME:        UOMConversion
307 
308   DESCRIPTION:           This procedure converts the transaction uom to the
309                          customer uom code where required
310 
311   PARAMETERS:            x_ManageDemand_tab IN OUT NOCOPY t_MD_tab
312                          x_Group_rec IN t_Group_rec
313 
314   DESIGN REFERENCES:     rlmdpmdd.rtf
315 
316   ALGORITHM:
317 
318   NOTES:
319 
320   OPEN ISSUES:
321 
322   CLOSED ISSUES:
323 
324   CHANGE HISTORY:        jhaulund        8/6/98        created
325 ===========================================================================*/
326 PROCEDURE  UOMConversion(x_Group_rec IN rlm_dp_sv.t_Group_rec);
327 --<TPA_PUBLIC_NAME>
328 
329 /*===========================================================================
330   PROCEDURE NAME:        CUMDiscrepancyCheck
331 
332   DESCRIPTION:           This procedure compares oracle's CUMs to what the
333                          customer has sent, and reports any discrepancies.
334 
335   PARAMETERS:            x_ManageDemand_tab IN OUT NOCOPY t_MD_tab
336                          x_LastReceipt_rec IN t_Ship_rec
337                          x_ReceiveShip_rec IN t_Ship_rec
338 
339   DESIGN REFERENCES:     rlmdpmdd.rtf
340 
341   ALGORITHM:
342 
343   NOTES:
344 
345   OPEN ISSUES:
346 
347   CLOSED ISSUES:
348 
349   CHANGE HISTORY:        jhaulund        8/6/98        created
350 ===========================================================================*/
351 PROCEDURE  CUMDiscrepancyCheck( x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
352                                 x_Group_rec IN rlm_dp_sv.t_Group_rec);
353 --<TPA_PUBLIC_NAME>
354 
355 /*===========================================================================
356   PROCEDURE NAME:        SetOperation
357 
358   DESCRIPTION:           This procedure sets the operation code for the passed demand record.
359 
360   PARAMETERS:            x_ManageDemand_rec IN OUT NOCOPY t_MD_rec
361                          x_Operation IN NUMBER
362 
363   DESIGN REFERENCES:     rlmdpmdd.rtf
364 
365   ALGORITHM:
366 
367   NOTES:
368 
369   OPEN ISSUES:
370 
371   CLOSED ISSUES:
372 
373   CHANGE HISTORY:        jhaulund        8/6/98        created
374 ===========================================================================*/
375 PROCEDURE  SetOperation(x_ManageDemand_rec IN OUT NOCOPY rlm_interface_lines%ROWTYPE,
376                         x_Operation IN NUMBER);
377 
378 /*===========================================================================
379   PROCEDURE NAME        ApplySourceRules:
380 
381   DESCRIPTION:          If multiple ship-from locations are defined in
382                         RLM_SHIPFR_CUST_ITEMS for a
383                         customer item, this procedure will find the
384                         appropriate sourcing rules
385                         and assign the requirements between multiple
386                         warehouses accordingly.
387 
388   PARAMETERS:           x_ManageDemand_tab IN OUT NOCOPY t_MD_tab
389                         x_Group_rec IN t_Group_rec
390 
391 
392   DESIGN REFERENCES:    rlmdpmdd.rtf
393 
394   ALGORITHM:
395 
396   NOTES:
397 
398   OPEN ISSUES:
399 
400   CLOSED ISSUES:
401 
402   CHANGE HISTORY:        jhaulund        8/6/98        created
403 ===========================================================================*/
404 PROCEDURE ApplySourceRules(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
405                            x_Group_rec IN rlm_dp_sv.t_Group_rec,
406                            x_SourcedDemand_tab OUT NOCOPY rlm_manage_demand_sv.t_MD_Tab,
407                            x_Source_Tab OUT NOCOPY rlm_manage_demand_sv.t_Source_Tab
408 );
409 --<TPA_PUBLIC_NAME>
410 
411 /*===========================================================================
412   PROCEDURE NAME:        CalculateShipDate
413 
414   DESCRIPTION:           Calls the Calculate Scheduled Ship Date API
415                         and updates the x_ManageDemand_tab
416                         with the returned results.
417 
418   PARAMETERS:            x_Group_rec IN t_Group_rec
419 
420   DESIGN REFERENCES:     rlmdpmdd.rtf
421 
422   ALGORITHM:
423 
424   NOTES:
425 
426   OPEN ISSUES:
427 
428   CLOSED ISSUES:
429 
430   CHANGE HISTORY:        jhaulund        8/6/98        created
431 ===========================================================================*/
432 PROCEDURE  CalculateShipDate( x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
433                               x_Group_rec IN rlm_dp_sv.t_Group_rec);
434 --<TPA_PUBLIC_NAME>
435 
436 /*===========================================================================
437   PROCEDURE NAME:       ApplyFFFFences
438 
439   DESCRIPTION:          Applys the applicable fence days to incoming demand.
440 
441   PARAMETERS:           x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE
442                         x_Group_rec IN t_Group_rec
443                         IsLineProcessed IN OUT NOCOPY BOOLEAN
444 
445   DESIGN REFERENCES:    rlmdpmdd.rtf
446 
447   ALGORITHM:
448 
449   NOTES:
450 
451   OPEN ISSUES:
452 
453   CLOSED ISSUES:
454 
455   CHANGE HISTORY:        mnandell        8/6/98        created
456 ===========================================================================*/
457 PROCEDURE  ApplyFFFFences(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
458                           x_Group_rec IN rlm_dp_sv.t_Group_rec,
459                           IsLineProcessed IN OUT NOCOPY BOOLEAN );
460 --<TPA_PUBLIC_NAME>
461 
462 /*===========================================================================
463   PROCEDURE NAME:        ProcessTable
464 
465   DESCRIPTION:           Perform operations stored in x_ManageDemand_tab.
466                          These operations consist of updates, deletes,
467                          and inserts into the rlm_interface_lines.
468 
469   PARAMETERS:            x_ManageDemand_tab IN t_MD_tab
470 
471   DESIGN REFERENCES:     rlmdpmdd.rtf
472 
473   ALGORITHM:
474 
475   NOTES:
476 
477   OPEN ISSUES:
478 
479   CLOSED ISSUES:
480 
481   CHANGE HISTORY:        jhaulund        8/6/98        created
482 ===========================================================================*/
483 PROCEDURE  ProcessTable(x_Demand_tab IN t_MD_Tab);
484 
485 /*===========================================================================
486   PROCEDURE NAME:        DeleteReq
487 
488   DESCRIPTION:           Deletes passed requirement.
489 
490   PARAMETERS:            x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE
491 
492   DESIGN REFERENCES:     rlmdpmdd.rtf
493 
494   ALGORITHM:
495 
496   NOTES:
497 
498   OPEN ISSUES:
499 
500   CLOSED ISSUES:
501 
502   CHANGE HISTORY:        jhaulund        8/6/98        created
503 ===========================================================================*/
504 PROCEDURE  DeleteReq(x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE);
505 
506 /*===========================================================================
507   PROCEDURE NAME:        InsertReq
508 
509   DESCRIPTION:           Inserts passed requirement.
510 
511   PARAMETERS:            x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE
512 
513   DESIGN REFERENCES:     rlmdpmdd.rtf
514 
515   ALGORITHM:
516 
517   NOTES:
518 
519   OPEN ISSUES:
520 
521   CLOSED ISSUES:
522 
523   CHANGE HISTORY:        jhaulund        8/6/98        created
524 ===========================================================================*/
525 PROCEDURE  InsertReq(x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE);
526 
527 /*===========================================================================
528   PROCEDURE NAME:        UpdateReq
529 
530   DESCRIPTION:           Updates passed requirement.
531 
532   PARAMETERS:            x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE
533 
534   DESIGN REFERENCES:     rlmdpmdd.rtf
535 
536   ALGORITHM:
537 
538   NOTES:
539 
540   OPEN ISSUES:
541 
542   CLOSED ISSUES:
543 
544   CHANGE HISTORY:        jhaulund        8/6/98        created
545 ===========================================================================*/
546 PROCEDURE  UpdateReq(x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE);
547 
548 /*===========================================================================
549   PROCEDURE NAME:        UpdateSchedule
550 
551   DESCRIPTION:           Update the schedule lines when they are
552                          aggregated to a new line.
553 
554   PARAMETERS:            x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE
555                          x_AggregateDemand_rec IN rlm_interface_lines%ROWTYPE
556 
557   DESIGN REFERENCES:     rlmdpmdd.rtf
558 
559   ALGORITHM:
560 
561   NOTES:
562 
563   OPEN ISSUES:
564 
565   CLOSED ISSUES:
566 
567   CHANGE HISTORY:        jhaulund        8/6/98/28        created
568 ===========================================================================*/
569 PROCEDURE  UpdateSchedule(x_ManageDemand_rec IN rlm_interface_lines%ROWTYPE,
570                           x_AggregateDemand_rec IN rlm_interface_lines%ROWTYPE);
571 
572 /*===========================================================================
573   PROCEDURE NAME:      MatchDemand
574 
575   DESCRIPTION:         Matches and aggregates like demand
576                        in the x_AggregateDemand_tab.
577                        When requirements are aggregated,
578                        the originals will be marked
579                        for deletetion.  This is where x_Delete_tab is used.
580 
581   PARAMETERS:           x_Group_Rec IN t_Group_Rec
582                         x_Index IN NUMBER
583                         x_AggregateDemand_tab IN OUT NOCOPY t_MD_tab
584                         x_Delete_tab OUT NOCOPY t_Number_tab
585 
586   DESIGN REFERENCES:    rlmdpmdd.rtf
587 
588   ALGORITHM:
589 
590   NOTES:
591 
592   OPEN ISSUES:
593 
594   CLOSED ISSUES:
595 
596   CHANGE HISTORY:        mnandell        8/6/98/28        created
597 ===========================================================================*/
598 PROCEDURE  MatchDemand(x_Group_rec IN rlm_dp_sv.t_Group_rec,
599                        x_Index IN NUMBER,
600                        x_AggregateDemand_tab IN OUT NOCOPY t_MD_tab,
601                        x_Delete_tab IN OUT NOCOPY t_Number_tab,
602                        x_ExcpTab    IN OUT NOCOPY t_Match_Tab);
603 
604 /*===========================================================================
605   PROCEDURE NAME:        AggregateDemand
606 
607   DESCRIPTION:          Aggregates like demand based on the predefined
608                         sidentifiers.  Refer to aggregate demand section
609                         under major features for a complete listing
610                         of sidentifiers.
611 
612   PARAMETERS:           x_ManageDemand_tab IN t_MD_tab
613 
614   DESIGN REFERENCES:    rlmdpmdd.rtf
615 
616   ALGORITHM:
617 
618   NOTES:
619 
620   OPEN ISSUES:
621 
622   CLOSED ISSUES:
623 
624   CHANGE HISTORY:        mnandell        8/6/98        created
625 ===========================================================================*/
626 PROCEDURE  AggregateDemand(x_Group_rec IN rlm_dp_sv.t_Group_rec);
627 
628 /*===========================================================================
629   PROCEDURE NAME:       SortDemand
630 
631   DESCRIPTION:          Sorts demand by ascending planned schedule date.
632                         This routine will use the fast quicksort algorithm to
633                         sort on planned shipment date.
634 
635   PARAMETERS:
636 
637   DESIGN REFERENCES:   rlmdpmdd.rtf
638 
639   ALGORITHM:
640 
641   NOTES:
642 
643   OPEN ISSUES:
644 
645   CLOSED ISSUES:
646 
647   CHANGE HISTORY:      mnandell        8/6/98        created
648 ===========================================================================*/
649 PROCEDURE  SortDemand;
650 
651 /*===========================================================================
652   PROCEDURE NAME:      QuickSort
653 
654   DESCRIPTION:         Sorts demand by ascending planned schedule date.
655                        This routine will use the fast quicksort algorithm
656                        to sort on planned shipment date.
657 
658   PARAMETERS:          l IN NUMBER
659                        r IN NUMBER
660 
661   DESIGN REFERENCES:   rlmdpmdd.rtf
662 
663   ALGORITHM:
664 
665   NOTES:
666 
667   OPEN ISSUES:
668 
669   CLOSED ISSUES:
670 
671   CHANGE HISTORY:        mnandell        8/6/98        created
672 ===========================================================================*/
673 PROCEDURE QuickSort(first IN NUMBER, last IN NUMBER);
674 
675 
676 /*===========================================================================
677   PROCEDURE NAME:       Swap
678 
679   DESCRIPTION:          Swaps records in table based on the passed indexes.
680 
681   PARAMETERS:           i IN NUMBER
682                         j IN NUMBER
683 
684   DESIGN REFERENCES:    rlmdpmdd.rtf
685 
686   ALGORITHM:
687 
688   NOTES:
689 
690   OPEN ISSUES:
691 
692   CLOSED ISSUES:
693 
694   CHANGE HISTORY:        jhaulund        8/6/98        created
695 ===========================================================================*/
696 PROCEDURE Swap(i IN NUMBER, j IN NUMBER);
697 
698 /*===========================================================================
699   PROCEDURE NAME:       InsertionSort
700 
701   DESCRIPTION:          Performs insertion sort on table with few records.
702 
703   PARAMETERS:
704                         lo IN NUMBER
705                         hi IN NUMBER
706 
707   DESIGN REFERENCES:    rlmdpmdd.rtf
708 
709   ALGORITHM:
710 
711   NOTES:
712 
713   OPEN ISSUES:
714 
715   CLOSED ISSUES:
716 
717   CHANGE HISTORY:        mnandell        8/6/99        created
718 ===========================================================================*/
719 PROCEDURE InsertionSort(lo IN NUMBER,
720                         hi IN NUMBER);
721 
722 /*===========================================================================
723   PROCEDURE NAME:      RoundStandardPack
724 
725   DESCRIPTION:         If the customer item has standard pack rounding enabled,
726                        this procedure will round all requirement quantities for
727                        standard packaging based on the value of STD_PACK_QTY and
728                        customer item UOM.
729 
730   PARAMETERS:           x_Group_rec IN t_Group_rec
731 
732   DESIGN REFERENCES:    rlmdpmdd.rtf
733 
734   ALGORITHM:
735 
736   NOTES:
737 
738   OPEN ISSUES:
739 
740   CLOSED ISSUES:
741 
742   CHANGE HISTORY:        mnandell        8/6/99        created
743 ===========================================================================*/
744 PROCEDURE RoundStandardPack(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
745                             x_Group_rec IN rlm_dp_sv.t_Group_rec);
746 --<TPA_PUBLIC_NAME>
747 /*===========================================================================
748   PROCEDURE NAME:        InitializeMdGroup
749 
750   DESCRIPTION:           This procedure sets up the group cursor.
751 
752   PARAMETERS:            x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE
753                          x_Group_ref IN OUT NOCOPY t_Cursor_ref
754 
755   DESIGN REFERENCES:     RLADPRDD.rtf
756 
757   ALGORITHM:
758 
759   NOTES:
760 
761   OPEN ISSUES:
762 
763   CLOSED ISSUES:
764 
765   CHANGE HISTORY:        created jhaulund 03/08/99
766 ===========================================================================*/
767 --Bugfix 6084578 changed procedure name
768 Procedure InitializeMdGroup(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
769                           x_Group_ref IN OUT NOCOPY rlm_manage_demand_sv.t_Cursor_ref,
770                           x_Group_rec IN  rlm_dp_sv.t_Group_rec);
771 --<TPA_PUBLIC_NAME>
772 /*===========================================================================
773   FUNCTION NAME:      FetchGroup
774 
775   DESCRIPTION:        This function fetches next group
776 
777   PARAMETERS:         x_Group_ref IN OUT NOCOPY t_Cursor_ref
778                       x_Group_rec IN OUT NOCOPY t_Group_rec
779 
780   DESIGN REFERENCES:  RLADPRDD.rtf
781 
782   ALGORITHM:
783 
784   NOTES:
785 
786   OPEN ISSUES:
787 
788   CLOSED ISSUES:
789 
790   CHANGE HISTORY:      created jhaulund 03/08/99
791 ===========================================================================*/
792 FUNCTION FetchGroup(x_Group_ref IN OUT NOCOPY t_Cursor_ref,
793                     x_Group_rec IN OUT NOCOPY rlm_dp_sv.t_Group_rec)
794 RETURN BOOLEAN;
795 
796 /*===========================================================================
797   PROCEDURE NAME:     CallSetups
798 
799   DESCRIPTION:        This procedure calls rla setups to populate group record
800                       with setup informations.
801 
802   PARAMETERS:         x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE
803                       x_Group_rec IN t_Group_rec
804 
805   DESIGN REFERENCES:  RLADPRDD.rtf
806 
807   ALGORITHM:
808 
809   NOTES:
810 
811   OPEN ISSUES:
812 
813   CLOSED ISSUES:
814 
815   CHANGE HISTORY:     created mnandell 03/08/99
816 ===========================================================================*/
817 Procedure CallSetups(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
818                      x_Group_rec IN OUT NOCOPY rlm_dp_sv.t_Group_rec);
819 
820 /*===========================================================================
821   PROCEDURE NAME:     LockHeader
822 
823   DESCRIPTION:        This procedure locks the header in RLM_INTERFACE_HEADERS
824 
825   PARAMETERS:         x_HeaderId  IN NUMBER
826 
827   DESIGN REFERENCES:  RLADPRDD.rtf
828 
829   ALGORITHM:
830 
831   NOTES:
832 
833   OPEN ISSUES:
834 
835   CLOSED ISSUES:
836 
837   CHANGE HISTORY:     created mnandell 03/08/99
838 ===========================================================================
839 FUNCTION LockHeader(x_headerId  IN NUMBER)
840 RETURN BOOLEAN; */
841 
842 /*===========================================================================
843   PROCEDURE NAME:     LockLines
844 
845   DESCRIPTION:        This procedure locks the lines for a group
846 
847   PARAMETERS:         x_HeaderId  IN NUMBER
848                       x_GroupRec  IN t_Group_rec
849 
850   DESIGN REFERENCES:  RLADPRDD.rtf
851 
852   ALGORITHM:
853 
854   NOTES:
855 
856   OPEN ISSUES:
857 
858   CLOSED ISSUES:
859 
860   CHANGE HISTORY:     created mnandell 03/08/99
861 ===========================================================================*/
862 FUNCTION LockLines (x_headerId  IN NUMBER,
863                     x_GroupRec  IN rlm_dp_sv.t_Group_rec)
864 RETURN BOOLEAN;
865 
866 /*===========================================================================
867   PROCEDURE NAME:     UpdateHeaderStatus
868 
869   DESCRIPTION:        This procedure update the process status for the header
870 
871   PARAMETERS:         x_HeaderId           IN NUMBER
872                       x_ScheduleHeaderId   IN   NUMBER
873                       x_ProcessStatus      IN NUMBER
874 
875   DESIGN REFERENCES:  RLADPRDD.rtf
876 
877   ALGORITHM:
878 
879   NOTES:
880 
881   OPEN ISSUES:
882 
883   CLOSED ISSUES:
884 
885   CHANGE HISTORY:     created mnandell 03/08/99
886 ===========================================================================*/
887 PROCEDURE UpdateHeaderStatus(x_HeaderId           IN   NUMBER,
888                              x_ScheduleHeaderId   IN   NUMBER,
889                              x_ProcessStatus      IN NUMBER );
890 
891 /*===========================================================================
892   PROCEDURE NAME:     UpdateGroupStatus
893 
894   DESCRIPTION:        This procedure update the process status for the group
895 
896   PARAMETERS:         x_HeaderId           IN  NUMBER
897                       x_ScheduleHeaderId   IN  NUMBER
898                       x_GroupRec           IN  t_Group_rec
899                       x_ProcessStatus      IN  NUMBER
900 
901   DESIGN REFERENCES:  RLADPRDD.rtf
902 
903   ALGORITHM:
904 
905   NOTES:
906 
907   OPEN ISSUES:
908 
909   CLOSED ISSUES:
910 
911   CHANGE HISTORY:     created mnandell 03/08/99
912 ===========================================================================*/
913 PROCEDURE UpdateGroupStatus(x_HeaderId           IN   NUMBER,
914                             x_ScheduleHeaderId   IN   NUMBER,
915                             x_GroupRec           IN   rlm_dp_sv.t_Group_rec,
916                             x_ProcessStatus      IN   NUMBER ,
917                             x_UpdateLevel        IN   VARCHAR2 DEFAULT 'GROUP');
918 
919 /*===========================================================================
920   PROCEDURE NAME:     GetConvertedLeadTime
921 
922   DESCRIPTION:        This procedure update the process status for the group
923 
924   PARAMETERS:         x_LeadTime     IN  NUMBER
925                       x_LeadUOM      IN  NUMBER
926 
927   DESIGN REFERENCES:  RLADPRDD.rtf
928 
929   ALGORITHM:
930 
931   NOTES:
932 
933   CLOSED ISSUES:
934 
935   CHANGE HISTORY:     created mnandell 03/08/99
936 ===========================================================================*/
937 FUNCTION GetConvertedLeadTime (x_LeadTime  IN NUMBER,
938                               x_LeadUOM   IN VARCHAR2)
939 RETURN NUMBER;
940 /*===========================================================================
941   PROCEDURE NAME:     GetTPContext
942   DESCRIPTION:        This procedure returns the tp group context.
943                       This procedure returns a null x_ship_to_ece_locn_code,
944                       and null x_inter_ship_to_ece_locn_code
945   PARAMETERS:         x_sched_rec     IN  RLM_INTERFACE_HEADERS%ROWTYPE
946                       x_group_rec     IN  t_Group_rec
947                       x_customer_number OUT NOCOPY VARCHAR2
948                       x_ship_to_ece_locn_code OUT NOCOPY VARCHAR2
949                       x_bill_to_ece_locn_code OUT NOCOPY VARCHAR2
950                       x_inter_ship_to_ece_locn_code OUT NOCOPY VARCHAR2
951                       x_tp_group_code OUT NOCOPY VARCHAR2
952   DESIGN REFERENCES:  RLMDPRDD.rtf
953   CHANGE HISTORY:     created mnandell 03/08/99
954 ===========================================================================*/
955 PROCEDURE GetTPContext( x_sched_rec  IN RLM_INTERFACE_HEADERS%ROWTYPE,
956                        x_group_rec  IN rlm_dp_sv.t_Group_rec,
957                        x_customer_number OUT NOCOPY VARCHAR2,
958                        x_ship_to_ece_locn_code OUT NOCOPY VARCHAR2,
959                        x_bill_to_ece_locn_code OUT NOCOPY VARCHAR2,
960                        x_inter_ship_to_ece_locn_code OUT NOCOPY VARCHAR2,
961                        x_tp_group_code OUT NOCOPY VARCHAR2);
962 --<TPA_TPS>
963 
964 /*===========================================================================
965   PROCEDURE NAME:	CalculateIntransitQty
966 
967   DESCRIPTION:	This procedure fetches information  about supplier shipments
968 		which took place after the last customer recognized shipment
969 		to ship for the current schedule item
970 
971   PARAMETERS:	x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE
972                 x_Group_rec IN rlm_dp_sv.t_Group_rec
973 
974   DESIGN REFERENCES:	RLADPRDD.rtf
975 
976   ALGORITHM:
977 
978   NOTES:
979 
980   OPEN ISSUES:
981 
982   CLOSED ISSUES:
983 
984   CHANGE HISTORY:	created kvenkate 01/16/01
985 ===========================================================================*/
986 FUNCTION  CalculateIntransitQty(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
987                                x_Group_rec IN rlm_dp_sv.t_Group_rec)
988 RETURN NUMBER;
989 --<TPA_PUBLIC_NAME>
990 
991 
992 FUNCTION GetAllIntransitQty(x_Sched_rec  IN RLM_INTERFACE_HEADERS%ROWTYPE,
993                             x_Group_rec  IN rlm_dp_sv.t_Group_rec,
994                             x_Source_Tab IN rlm_manage_demand_sv.t_Source_Tab)
995 RETURN NUMBER;
996 --<TPA_PUBLIC_NAME>
997 
998 
999 /*===========================================================================
1000   PROCEDURE NAME:	InitializeMatchCritieria
1001 
1002   DESCRIPTION:		This procedure initializes the components of match_within_rec and
1003 			match_across_rec to 'N', so we do not use any matching
1004 	 		criteria when calculating in-transit quantities.  This procedure is
1005 			called from GetAllIntransitQty and CalculateIntransitQty
1006 
1007   PARAMETERS:		x_match_within_rule IN OUT NOCOPY RLM_CORE_SV.t_Match_Rec
1008 			x_match_across_rule IN OUT NOCOPY RLM_CORE_SV.t_Match_Rec
1009 
1010   CHANGE HISTORY:	created rlanka 01/14/02
1011 ===========================================================================*/
1012 PROCEDURE InitializeMatchCriteria(x_match_within_rule IN OUT NOCOPY RLM_CORE_SV.t_Match_Rec,
1013 				  x_match_across_rule IN OUT NOCOPY RLM_CORE_SV.t_Match_Rec);
1014 
1015 /*=========================================================================
1016 --global_atp
1017 FUNCTION NAME:       IsATPItem
1018 
1019 ===========================================================================*/
1020 
1021 FUNCTION IsATPItem (x_ship_from_org_id  IN NUMBER,
1022                     x_inventory_item_id IN NUMBER)
1023 RETURN BOOLEAN;
1024 
1025 
1026 /*===========================================================================
1027 
1028         PROCEDURE NAME:  ReportExc
1029 
1030 ===========================================================================*/
1031 PROCEDURE ReportExc(      x_ExcpTab      IN   t_Match_tab);
1032 
1033 
1034 /*===========================================================================
1035 
1036         PROCEDURE NAME:  printMessage
1037 
1038 ===========================================================================*/
1039 PROCEDURE printMessage(   x_lookupCode   IN   VARCHAR2,
1040                           x_shipFrom     IN   VARCHAR2,
1041                           x_shipTo       IN   VARCHAR2,
1042                           x_customerItem IN   VARCHAR2);
1043 
1044 
1045 
1046 FUNCTION GetIntransitAcrossOrgs(x_Sched_rec IN RLM_INTERFACE_HEADERS%ROWTYPE,
1047 			        x_Group_rec IN rlm_dp_sv.t_Group_rec,
1048 				x_cum_key_id IN NUMBER)
1049 RETURN NUMBER;
1050 --<TPA_PUBLIC_NAME>
1051 
1052 
1053 /*===========================================================================
1054   PROCEDURE NAME:     Getvark_DNULL
1055 
1056   DESCRIPTION:       This procedure is called from RLMNETCH.rdf
1057                      to get the value of constant K_DNULL.
1058 
1059   PARAMETERS:
1060 
1061   DESIGN REFERENCES:
1062 
1063   ALGORITHM:
1064 
1065   NOTES: This function will be used by Netchange report.
1066 
1067   OPEN ISSUES:
1068 
1069   CLOSED ISSUES:
1070 
1071   CHANGE HISTORY:     created  brana  02/20/03
1072 ===========================================================================*/
1073 
1074 FUNCTION  GetvarK_DNULL
1075 RETURN  DATE ;
1076 
1077 END RLM_MANAGE_DEMAND_SV;