[Home] [Help]
1: PACKAGE BODY inv_rule_gen_pvt AS
2: /* $Header: INVRLGNB.pls 120.11.12020000.2 2012/07/09 08:16:11 asugandh ship $ */
3: --
4: -- File : INVRLGNB.pls
5: -- Content : INV_RULE_GEN_PVT
1: PACKAGE BODY inv_rule_gen_pvt AS
2: /* $Header: INVRLGNB.pls 120.11.12020000.2 2012/07/09 08:16:11 asugandh ship $ */
3: --
4: -- File : INVRLGNB.pls
5: -- Content : INV_RULE_GEN_PVT
6: -- Description : wms rules engine private API's
7: -- Notes :
8: -- Modified : 08/30/04 ckuenzel created orginal file in inventory
9: --
8: -- Modified : 08/30/04 ckuenzel created orginal file in inventory
9: --
10:
11: /* Global variables */
12: G_PKG_NAME CONSTANT VARCHAR2(30):='INV_RULE_GEN_PVT';
13: /* Save procedure will save the record to the following
14: Mtl_picking_rules
15: Wms_rules_b
16: Wms_rules_tl
28: END debug;
29:
30:
31: PROCEDURE Save
32: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
33: , x_return_status OUT NOCOPY VARCHAR2
34: , x_msg_data OUT NOCOPY VARCHAR2
35: , x_msg_count OUT NOCOPY NUMBER
36: ) IS
68: );
69:
70:
71: If l_is_new_rec = 1 then
72: inv_rule_gen_pvt.Restrictions_insert
73: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
74: , x_return_status => x_return_status
75: , x_msg_data => x_msg_data
76: , x_msg_count => x_msg_count
74: , x_return_status => x_return_status
75: , x_msg_data => x_msg_data
76: , x_msg_count => x_msg_count
77: );
78: inv_rule_gen_pvt.consistency_insert
79: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
80: , x_return_status => x_return_status
81: , x_msg_data => x_msg_data
82: , x_msg_count => x_msg_count
80: , x_return_status => x_return_status
81: , x_msg_data => x_msg_data
82: , x_msg_count => x_msg_count
83: );
84: inv_rule_gen_pvt.sorting_criteria_insert
85: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
86: , x_return_status => x_return_status
87: , x_msg_data => x_msg_data
88: , x_msg_count => x_msg_count
87: , x_msg_data => x_msg_data
88: , x_msg_count => x_msg_count
89: );
90: Else
91: inv_rule_gen_pvt.restrictions_update
92: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
93: , x_return_status => x_return_status
94: , x_msg_data => x_msg_data
95: , x_msg_count => x_msg_count
93: , x_return_status => x_return_status
94: , x_msg_data => x_msg_data
95: , x_msg_count => x_msg_count
96: );
97: inv_rule_gen_pvt.consistency_update
98: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
99: , x_return_status => x_return_status
100: , x_msg_data => x_msg_data
101: , x_msg_count => x_msg_count
100: , x_msg_data => x_msg_data
101: , x_msg_count => x_msg_count
102: );
103:
104: inv_rule_gen_pvt.sorting_criteria_update
105: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
106: , x_return_status => x_return_status
107: , x_msg_data => x_msg_data
108: , x_msg_count => x_msg_count
129: );
130: END save;
131:
132: PROCEDURE Save_to_mtl_picking_rules
133: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
134: , x_return_status OUT NOCOPY VARCHAR2
135: , x_msg_data OUT NOCOPY VARCHAR2
136: , x_msg_count OUT NOCOPY NUMBER)
137: IS
244: );
245: END save_to_mtl_picking_rules;
246:
247: PROCEDURE Save_to_wms_rule
248: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
249: , x_return_status OUT NOCOPY VARCHAR2
250: , x_msg_data OUT NOCOPY VARCHAR2
251: , x_msg_count OUT NOCOPY NUMBER
252: ) IS
250: , x_msg_data OUT NOCOPY VARCHAR2
251: , x_msg_count OUT NOCOPY NUMBER
252: ) IS
253: l_api_name CONSTANT VARCHAR2 (30) := 'Save_to_wms_rule';
254: l_picking_rule_rec INV_RULE_GEN_PVT.picking_rule_rec;
255: l_wms_rule_id NUMBER;
256: l_row_id VARCHAR2(500);
257: l_organization_id NUMBER;
258: l_allocation_mode_id NUMBER;
377: );
378: END save_to_wms_rule;
379:
380: PROCEDURE Restrictions_insert
381: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
382: , x_return_status OUT NOCOPY VARCHAR2
383: , x_msg_data OUT NOCOPY VARCHAR2
384: , x_msg_count OUT NOCOPY NUMBER)
385: IS
384: , x_msg_count OUT NOCOPY NUMBER)
385: IS
386:
387: l_api_name CONSTANT VARCHAR2 (30) := 'Restrictions_insert';
388: l_picking_rule_rec INV_RULE_GEN_PVT.picking_rule_rec;
389: l_parameter_id NUMBER;
390: l_Row_Id VARCHAR2(500) ;
391: l_Sequence_Number NUMBER;
392: l_shelf_days NUMBER;
714: * 1) delete the current rows for the rule_id
715: * 2) insert the new rows for the current p_mtl_picking_rule_rec
716: */
717: PROCEDURE Restrictions_update
718: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
719: , x_return_status OUT NOCOPY VARCHAR2
720: , x_msg_data OUT NOCOPY VARCHAR2
721: , x_msg_count OUT NOCOPY NUMBER)
722: IS
722: IS
723: l_api_name CONSTANT VARCHAR2 (30) := 'Restrictions_Update';
724: Begin
725: x_return_status := FND_API.G_RET_STS_SUCCESS;
726: inv_rule_gen_pvt.Restrictions_delete
727: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
728: , x_return_status => x_return_status
729: , x_msg_data => x_msg_data
730: , x_msg_count => x_msg_count
728: , x_return_status => x_return_status
729: , x_msg_data => x_msg_data
730: , x_msg_count => x_msg_count
731: );
732: inv_rule_gen_pvt.Restrictions_insert
733: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
734: , x_return_status => x_return_status
735: , x_msg_data => x_msg_data
736: , x_msg_count => x_msg_count
755: );
756: END restrictions_update;
757:
758: PROCEDURE Restrictions_delete
759: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
760: , x_return_status OUT NOCOPY VARCHAR2
761: , x_msg_data OUT NOCOPY VARCHAR2
762: , x_msg_count OUT NOCOPY NUMBER)
763: IS
785: );
786: END restrictions_delete;
787:
788: PROCEDURE consistency_insert
789: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
790: , x_return_status OUT NOCOPY VARCHAR2
791: , x_msg_data OUT NOCOPY VARCHAR2
792: , x_msg_count OUT NOCOPY NUMBER
793: )
792: , x_msg_count OUT NOCOPY NUMBER
793: )
794: IS
795: l_api_name CONSTANT VARCHAR2 (30) := 'consistency_insert';
796: l_picking_rule_rec INV_RULE_GEN_PVT.picking_rule_rec;
797: l_consistency_id NUMBER;
798: l_row_id VARCHAR2(500);
799: l_parameter_id NUMBER;
800: Begin
854: );
855: END consistency_insert;
856:
857: PROCEDURE Consistency_update
858: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
859: , x_return_status OUT NOCOPY VARCHAR2
860: , x_msg_data OUT NOCOPY VARCHAR2
861: , x_msg_count OUT NOCOPY NUMBER
862: )
863: IS
864: l_api_name CONSTANT VARCHAR2 (30) := 'Consistency_Update';
865: Begin
866: x_return_status := FND_API.G_RET_STS_SUCCESS;
867: inv_rule_gen_pvt.consistency_delete
868: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
869: , x_return_status => x_return_status
870: , x_msg_data => x_msg_data
871: , x_msg_count => x_msg_count
869: , x_return_status => x_return_status
870: , x_msg_data => x_msg_data
871: , x_msg_count => x_msg_count
872: );
873: inv_rule_gen_pvt.consistency_insert
874: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
875: , x_return_status => x_return_status
876: , x_msg_data => x_msg_data
877: , x_msg_count => x_msg_count
896: );
897: END consistency_update;
898:
899: PROCEDURE Consistency_delete
900: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
901: , x_return_status OUT NOCOPY VARCHAR2
902: , x_msg_data OUT NOCOPY VARCHAR2
903: , x_msg_count OUT NOCOPY NUMBER
904: )
927: );
928: END consistency_delete;
929:
930: PROCEDURE Sorting_criteria_insert
931: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
932: , x_return_status OUT NOCOPY VARCHAR2
933: , x_msg_data OUT NOCOPY VARCHAR2
934: , x_msg_count OUT NOCOPY NUMBER)
935: IS
1092: * 2) Insert new rows for the current setup
1093: */
1094:
1095: PROCEDURE sorting_criteria_update
1096: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1097: , x_return_status OUT NOCOPY VARCHAR2
1098: , x_msg_data OUT NOCOPY VARCHAR2
1099: , x_msg_count OUT NOCOPY NUMBER)
1100: IS
1100: IS
1101: l_api_name CONSTANT VARCHAR2 (30) := 'Sorting_criteria_Update';
1102: Begin
1103: x_return_status := FND_API.G_RET_STS_SUCCESS;
1104: inv_rule_gen_pvt.sorting_criteria_delete
1105: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
1106: , x_return_status => x_return_status
1107: , x_msg_data => x_msg_data
1108: , x_msg_count => x_msg_count
1106: , x_return_status => x_return_status
1107: , x_msg_data => x_msg_data
1108: , x_msg_count => x_msg_count
1109: );
1110: inv_rule_gen_pvt.sorting_criteria_insert
1111: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
1112: , x_return_status => x_return_status
1113: , x_msg_data => x_msg_data
1114: , x_msg_count => x_msg_count
1133: );
1134: END sorting_criteria_update;
1135:
1136: PROCEDURE Sorting_criteria_delete
1137: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1138: , x_return_status OUT NOCOPY VARCHAR2
1139: , x_msg_data OUT NOCOPY VARCHAR2
1140: , x_msg_count OUT NOCOPY NUMBER)
1141: IS
1164: );
1165: END sorting_criteria_delete;
1166:
1167: PROCEDURE Strategy_insert
1168: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1169: , x_return_status OUT NOCOPY VARCHAR2
1170: , x_msg_data OUT NOCOPY VARCHAR2
1171: , x_msg_count OUT NOCOPY NUMBER
1172: )
1278:
1279: /* Only enabled flag can be updated. */
1280: /* disable the strategy when rule is disabled */
1281: PROCEDURE Strategy_update
1282: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1283: , x_return_status OUT NOCOPY VARCHAR2
1284: , x_msg_data OUT NOCOPY VARCHAR2
1285: , x_msg_count OUT NOCOPY NUMBER
1286: )
1339: END;
1340:
1341: /* when rule is deleted, strategy is also deleted */
1342: PROCEDURE Strategy_delete
1343: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1344: , x_return_status OUT NOCOPY VARCHAR2
1345: , x_msg_data OUT NOCOPY VARCHAR2
1346: , x_msg_count OUT NOCOPY NUMBER
1347: )
1370: );
1371: END;
1372:
1373: PROCEDURE Rule_Enabled_Flag
1374: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1375: , x_return_status OUT NOCOPY VARCHAR2
1376: , x_msg_data OUT NOCOPY VARCHAR2
1377: , x_msg_count OUT NOCOPY NUMBER)
1378: IS
1376: , x_msg_data OUT NOCOPY VARCHAR2
1377: , x_msg_count OUT NOCOPY NUMBER)
1378: IS
1379: l_api_name CONSTANT VARCHAR2 (30) := 'Strategy_Delete';
1380: l_picking_rule_rec INV_RULE_GEN_PVT.picking_rule_rec;
1381: l_return_status VARCHAR2(1);
1382: l_msg_data VARCHAR2(2000);
1383: l_msg_count NUMBER;
1384: v_type_code number;
1424: ,p_pkg_type => 'B'
1425: );
1426:
1427: /* if l_picking_rule_rec.wms_strategy_id is null THEN
1428: inv_rule_gen_pvt.Strategy_insert
1429: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
1430: , x_return_status => x_return_status
1431: , x_msg_data => x_msg_data
1432: , x_msg_count => x_msg_count
1431: , x_msg_data => x_msg_data
1432: , x_msg_count => x_msg_count
1433: );
1434: Else
1435: inv_rule_gen_pvt.Strategy_Update
1436: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
1437: , x_return_status => x_return_status
1438: , x_msg_data => x_msg_data
1439: , x_msg_count => x_msg_count
1449: ELSE -- disable the flag
1450: l_picking_rule_rec.enabled_flag:='N';
1451: debug('disabling the rule and strategy');
1452: /*
1453: inv_rule_gen_pvt.Strategy_Update
1454: (p_mtl_picking_rule_rec=> p_mtl_picking_rule_rec
1455: , x_return_status => x_return_status
1456: , x_msg_data => x_msg_data
1457: , x_msg_count => x_msg_count
1483: );
1484: END Rule_Enabled_Flag;
1485:
1486: FUNCTION rule_assigned_to_strategy
1487: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1488: , x_return_status OUT NOCOPY VARCHAR2
1489: , x_msg_data OUT NOCOPY VARCHAR2
1490: , x_msg_count OUT NOCOPY NUMBER)
1491: RETURN BOOLEAN IS
1593: );
1594: END rule_assigned_to_strategy;
1595:
1596: PROCEDURE GenerateRulePKG
1597: (p_mtl_picking_rule_rec IN OUT NOCOPY INV_RULE_GEN_PVT.picking_rule_rec
1598: , x_return_status OUT NOCOPY VARCHAR2
1599: , x_msg_data OUT NOCOPY VARCHAR2
1600: , x_msg_count OUT NOCOPY NUMBER)
1601: IS
1647: , p_data => x_msg_data
1648: );
1649: END GenerateRulePKG;
1650:
1651: END inv_rule_gen_pvt;