DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_AUTH_INT_PUB

Source


1 Package body OKS_AUTH_INT_PUB  AS
2 /* $Header: OKSPAITB.pls 120.1 2005/10/13 16:47:32 tweichen noship $*/
3 
4 Function Check_For_Active_Process
5                   (p_contract_number          VARCHAR2
6                   ,p_contract_number_modifier VARCHAR2
7                   )Return Boolean
8 IS
9   l_wf_name  VARCHAR2(150);
10   l_wf_process_name VARCHAR2(150);
11   l_package_name VARCHAR2(150);
12   l_procedure_name  VARCHAR2(150);
13   l_usage  VARCHAR2(150);
14   l_api_version  CONSTANT NUMBER := 1.0;
15   l_init_msg_list CONSTANT VARCHAR2(1) := 'T';
16   l_return_status   VARCHAR2(1);
17   l_msg_count    NUMBER;
18   l_msg_data    VARCHAR2(2000);
19   l_contract_number          VARCHAR2 (120);
20   l_contract_number_modifier VARCHAR2 (120);
21 
22 Begin
23 
24   OKC_CONTRACT_PUB.Get_Active_Process (
25           p_api_version                 => l_api_version,
26           p_init_msg_list               => l_init_msg_list,
27           x_return_status               => l_return_status,
28           x_msg_count                   => l_msg_count,
29           x_msg_data                    => l_msg_data,
30           p_contract_number             => l_contract_number,
31           p_contract_number_modifier    => l_contract_number_modifier,
32           x_wf_name                     => l_wf_name,
33           x_wf_process_name             => l_wf_process_name,
34           x_package_name                => l_package_name,
35           x_procedure_name              => l_procedure_name,
36           x_usage                       => l_usage);
37 
38   If NVL(l_return_status, '*') = 'S' then
39      If l_wf_name IS NOT NULL then
40         Return(TRUE);
41      Else
42         Return(FALSE);
43      End If;
44   Else
45      Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
46   End if;
47 End Check_For_Active_Process;
48 
49 
50 FUNCTION ok_to_commit    (p_api_version             IN  NUMBER
51                          ,p_init_msg_list           IN  VARCHAR2
52                          ,p_doc_id                  IN  NUMBER
53                          ,p_doc_validation_string   IN  VARCHAR2
54                          ,x_return_status           OUT NOCOPY VARCHAR2
55                          ,x_msg_count               OUT NOCOPY NUMBER
56                          ,x_msg_data                OUT NOCOPY VARCHAR2
57                          )RETURN BOOLEAN
58   IS
59 
60   --
61   CURSOR hdr_details_cur (p_doc_id   IN NUMBER )
62   IS
63   SELECT  id,
64           start_date,
65           contract_number,
66           contract_number_modifier,
67           object_version_number,
68           sts_code
69   FROM
70           okc_k_headers_all_b
71   WHERE
72           document_id = p_doc_id;
73   --
74   l_header_details hdr_details_cur%ROWTYPE;
75   l_access_mode              VARCHAR2 (40);
76   l_doc_id                   NUMBER;
77   l_doc_number               VARCHAR2 (40);
78   l_doc_version_no           NUMBER;
79   l_doc_type                 VARCHAR2 (3) := 'OKS';
80   l_doc_validation_string    VARCHAR2(2000);
81   l_commit                   BOOLEAN := FALSE;
82 
83   l_api_version              Number      := 1.0;
84   l_init_msg_list            Varchar2(1) := 'F';
85   l_msg_count                Number;
86   l_msg_data                 Varchar2(2000);
87   l_return_status            Varchar2(1) := 'S';
88   l_sts_code                 VARCHAR2(30);
89   l_ste_code                 VARCHAR2(30);
90   l_contract_number_modifier VARCHAR2(120);
91   l_active_process           VARCHAR2(1);
92   l_chr_id                   number;
93 
94 
95 BEGIN
96   OPEN  hdr_details_cur(p_doc_id);
97   FETCH hdr_details_cur INTO l_header_details;
98     If hdr_details_cur%Notfound then
99        Close hdr_details_cur;
100        x_return_status := 'E';
101        RAISE G_EXCEPTION_HALT_VALIDATION;
102     Else
103        CLOSE hdr_details_cur;
104     End If;
105 
106     l_chr_id         := p_doc_id;
107     l_doc_version_no := l_header_details.object_version_number;
108     l_doc_number     := l_header_details.contract_number;
109     l_sts_code       := l_header_details.sts_code;
110     l_ste_code       := oks_extwar_util_pub.get_ste_code(p_sts_code => l_sts_code);
111     l_contract_number_modifier := l_header_details.contract_number_modifier;
112 
113     IF NOT Check_For_Active_Process
114                   (p_contract_number          => l_doc_number
115                   ,p_contract_number_modifier => l_contract_number_modifier
116                   ) then
117        l_active_process := 'N';
118     End If;
119 
120 --l_doc_validation_string := ('ste code || ':' 'active process?'||':'||'can commit?'');
121   l_doc_validation_string := (l_ste_code || '-' || l_active_process);
122 
123   If l_doc_validation_string = p_doc_validation_string then
124      l_commit := TRUE;
125   End If;
126 
127   return l_commit;
128 EXCEPTION
129     WHEN G_EXCEPTION_HALT_VALIDATION THEN
130     RETURN(null);
131 
132     WHEN OTHERS then
133     RETURN(null);
134     x_return_status   :=   OKC_API.G_RET_STS_UNEXP_ERROR;
135     OKC_API.set_message(G_APP_NAME_OKS, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
136 
137 END ok_to_commit;
138 
139 
140 
141 
142 
143 END OKS_AUTH_INT_PUB;