DBA Data[Home] [Help]

PACKAGE BODY: APPS.POS_SUPP_CLASSIFICATION_PKG

Source


1 PACKAGE BODY POS_SUPP_CLASSIFICATION_PKG AS
2 /*$Header: POSSBCB.pls 120.6.12010000.2 2008/11/06 07:05:44 sthoppan ship $ */
3 
4 
5 PROCEDURE add_bus_class_attr
6 (
7 p_party_id in number,
8 p_vendor_id in number,
9 p_lookup_code in varchar2,
10 p_exp_date    in date,
11 p_cert_num  in varchar2,
12 p_cert_agency in varchar2,
13 p_ext_attr_1 in varchar2,
14 p_class_status in varchar2,
15 p_request_id in number,
16 x_classification_id out nocopy number,
17 x_status    out nocopy varchar2,
18 x_exception_msg out nocopy varchar2
19 )
20 IS
21 l_mapping_id number;
22 l_count number;
23 BEGIN
24 
25     x_status := 'S';
26 
27     if ( p_class_status = 'APPROVED' ) THEN
28 
29         insert into pos_bus_class_attr
30         (
31                 classification_id, certificate_number,
32                 certifying_agency, expiration_date,
33                 class_status, status, created_by, creation_date,
34                 ext_attr_1, attribute1, attribute2, attribute3,
35                 attribute4, attribute5, last_updated_by,
36                 last_update_date, last_update_login,
37                 party_id, lookup_type, lookup_code, start_date_active,
38                 vendor_id
39         )
40         values
41         ( POS_BUS_CLASS_ATTR_S.NEXTVAL , p_cert_num,
42           p_cert_agency, p_exp_date,
43           'APPROVED', 'A', fnd_global.user_id, sysdate,
44           p_ext_attr_1, null, null, null,
45           null, null, fnd_global.user_id,
46           sysdate, fnd_global.login_id,
47           p_party_id, BUSINESS_CLASSIFICATION, p_lookup_code,sysdate,
48           p_vendor_id
49         );
50     ELSE
51         select count(mapping_id)
52         into l_count
53         from pos_supplier_mappings
54         where party_id = p_party_id;
55 
56         if ( l_count = 0 ) then
57             insert into pos_supplier_mappings
58             (
59                 mapping_id, party_id , vendor_id ,
60                 created_by, creation_date,
61                 last_updated_by, last_update_date, last_update_login
62             )
63             values
64             (
65                 pos_supplier_mapping_s.nextval, p_party_id, p_vendor_id,
66                 fnd_global.user_id, sysdate,
67                 fnd_global.user_id, sysdate, fnd_global.login_id
68             );
69         end if;
70 
71         select mapping_id
72         into l_mapping_id
73         from pos_supplier_mappings
74         where party_id = p_party_id;
75 
76         insert into pos_bus_class_reqs
77         (
78                 bus_class_request_id, mapping_id,
79                 request_type, request_status,
80                 classification_id, lookup_type, lookup_code,
81                 ext_attr_1, certification_no, certification_agency,
82                 expiration_date, created_by, creation_date,
83                 last_updated_by, last_update_date, last_update_login
84         )
85         values
86         (
87           POS_BUS_CLASS_REQUEST_S.NEXTVAL, l_mapping_id ,
88           'ADD', 'PENDING',
89           null,  BUSINESS_CLASSIFICATION, p_lookup_code,
90           p_ext_attr_1, p_cert_num , p_cert_agency,
91           p_exp_date, fnd_global.user_id, sysdate,
92           fnd_global.user_id, sysdate, fnd_global.login_id
93         );
94 
95     END IF;
96 
97 END;
98 
99 
100 PROCEDURE update_bus_class_attr
101 (
102 p_party_id in number,
103 p_vendor_id in number,
104 p_selected  in varchar2,
105 p_classification_id in number,
106 p_request_id in number,
107 p_lookup_code in varchar2,
108 p_exp_date    in date,
109 p_cert_num  in varchar2,
110 p_cert_agency in varchar2,
111 p_ext_attr_1 in varchar2,
112 p_class_status in varchar2,
113 x_classification_id out nocopy number,
114 x_request_id  out nocopy number,
115 x_status    out nocopy varchar2,
116 x_exception_msg out nocopy varchar2
117 )
118 IS
119 l_class_id number;
120 l_mapping_id number;
121 l_count number;
122 BEGIN
123     x_status := 'S';
124 
125     IF ( p_selected = 'N' ) then
126         if (p_classification_id is not null and p_classification_id > 0 ) then
127             update pos_bus_class_attr
128             set status='I', last_update_date = sysdate,
129             last_updated_by = fnd_global.user_id,
130             end_date_active = sysdate
131             where classification_id = p_classification_id;
132             /*
133 	     * Adding the condition to reject the pending request, if the 'Applicable Flag'
134 	     * is unchecked. Please refer the bug 7415073 for more information.
135 	     **/
136 	    update pos_bus_class_reqs
137             set request_status = 'REJECTED',
138             last_update_date = sysdate,
139             last_updated_by = fnd_global.user_id,
140             last_update_login = fnd_global.login_id
141             where bus_class_request_id = p_request_id;
142 
143         else
144             update pos_bus_class_reqs
145             set request_status = 'REJECTED',
146             last_update_date = sysdate,
147             last_updated_by = fnd_global.user_id,
148             last_update_login = fnd_global.login_id
149             where bus_class_request_id = p_request_id;
150         end if;
151         return;
152     END IF;
153     --ELSE
154 
155        if ( p_class_status = 'APPROVED' ) then
156            -- Approved.
157            if (p_classification_id is not null and p_classification_id > 0 ) then
158                 -- updating an already approved data
159                 update pos_bus_class_attr
160                 set certificate_number = p_cert_num,
161                     certifying_agency = p_cert_agency,
162                     expiration_date = p_exp_date,
163                     class_status = 'APPROVED',
164                     status = 'A',
165                     ext_attr_1= p_ext_attr_1,
166                     last_updated_by = fnd_global.user_id,
167                     last_update_date = sysdate,
168                     last_update_login= fnd_global.login_id
169                 where classification_id = p_classification_id;
170 
171                 -- If a request exists, make it approved.
172                 if (p_request_id is not null and p_request_id > 0) then
173                     update pos_bus_class_reqs
174                         set request_status = 'APPROVED',
175                         classification_id = l_class_id,
176                         last_updated_by = fnd_global.user_id,
177                         last_update_login = fnd_global.login_id,
178                         last_update_date = sysdate
179                     where  bus_class_request_id = p_request_id;
180                 end if;
181             else
182                 select pos_bus_class_attr_s.nextval
183                 into l_class_id
184                 from dual;
185 
186                 -- approving pending data
187                 insert into pos_bus_class_attr
188                 (
189                     classification_id, certificate_number,
190                     certifying_agency, expiration_date,
191                     class_status, status, created_by, creation_date,
192                     ext_attr_1, attribute1, attribute2, attribute3,
193                     attribute4, attribute5, last_updated_by,
194                     last_update_date, last_update_login,
195                     party_id, lookup_type, lookup_code, start_date_active,
196                     vendor_id
197                 )
198                 values
199                 ( l_class_id, p_cert_num,
200                   p_cert_agency, p_exp_date,
201                   'APPROVED', 'A', fnd_global.user_id, sysdate,
202                   p_ext_attr_1, null, null, null,
203                   null, null, fnd_global.user_id,
204                   sysdate, -1,
205                   p_party_id, BUSINESS_CLASSIFICATION, p_lookup_code,sysdate
206                   , p_vendor_id
207                 );
208 
209                 update pos_bus_class_reqs
210                     set request_status = 'APPROVED',
211                     classification_id = l_class_id,
212                     last_updated_by = fnd_global.user_id,
213                     last_update_login = fnd_global.login_id,
214                     last_update_date = sysdate
215                 where  bus_class_request_id = p_request_id;
216            end if;
217        else
218             -- Class status is not in APPROVED STATUS
219             if (p_classification_id is not null and p_classification_id > 0 ) then
220 
221                 /* Not needed.
222 
223                 update pos_bus_class_attr
224                 set status='I', last_update_date = sysdate,
225                 last_updated_by = fnd_global.user_id,
226                 last_update_login = fnd_global.login_id
227                 where classification_id = p_classification_id;*/
228 
229                 select count(mapping_id)
230                 into l_count
231                 from pos_supplier_mappings
232                 where party_id = p_party_id;
233 
234                 if ( l_count = 0 ) then
235                 insert into pos_supplier_mappings
236                     (
237                         mapping_id, party_id , vendor_id ,
238                         created_by, creation_date,
239                         last_updated_by, last_update_date, last_update_login
240                     )
241                     values
242                     (
243                         pos_supplier_mapping_s.nextval, p_party_id, p_vendor_id,
244                         fnd_global.user_id, sysdate,
245                         fnd_global.user_id, sysdate, fnd_global.login_id
246                     );
247                 end if;
248 
249                 select mapping_id
250                 into l_mapping_id
251                 from pos_supplier_mappings
252                 where party_id = p_party_id;
253 
254 
255                 insert into pos_bus_class_reqs
256                 (
257                     bus_class_request_id, mapping_id,
258                     request_type, request_status,
259                     classification_id, lookup_type, lookup_code,
260                     ext_attr_1, certification_no, certification_agency,
261                     expiration_date, created_by, creation_date,
262                     last_updated_by, last_update_date, last_update_login
263                 )
264                 values
265                 (
266                   POS_BUS_CLASS_REQUEST_S.NEXTVAL, l_mapping_id ,
267                   'ADD', 'PENDING',
268                   p_classification_id,  BUSINESS_CLASSIFICATION, p_lookup_code,
269                   p_ext_attr_1, p_cert_num , p_cert_agency,
270                   p_exp_date, fnd_global.user_id, sysdate,
271                   fnd_global.user_id, sysdate, fnd_global.login_id
272                 );
273             else
274                 update pos_bus_class_reqs
275                 set
276                     request_type = 'ADD',
277                     request_status = 'PENDING',
278                     certification_no= p_cert_num,
279                     certification_agency = p_cert_agency,
280                     expiration_date = p_exp_date,
281                     ext_attr_1= p_ext_attr_1,
282                     last_updated_by = fnd_global.user_id,
283                     last_update_date = sysdate,
284                     last_update_login= fnd_global.login_id
285                 where bus_class_request_id = p_request_id;
286             end if;
287        end if;
288     --END IF;
289 
290 END;
291 
292 
293 --Start for Bug 6620664 - Controlling concurrent updates to Business Classification screen
294 
295 PROCEDURE validate_bus_class_concurrency
296 (     p_party_id        IN  NUMBER,
297       p_class_id_tbl        IN  po_tbl_number,
298       p_req_id_tbl        IN  po_tbl_number,
299       p_last_upd_date_tbl        IN  po_tbl_date,
300       p_lkp_type_tbl        IN  po_tbl_varchar30,
301       p_lkp_code_tbl        IN  po_tbl_varchar30,
302       x_return_status     OUT nocopy VARCHAR2,
303       x_error_msg          OUT nocopy VARCHAR2
304 )
305 IS
306 
307 rec_count NUMBER;
308 l_last_upd_date DATE;
309 l_class_id NUMBER;
310 req_status VARCHAR2(30);
311 l_map_id NUMBER;
312 
313 BEGIN
314 
315     x_return_status := 'S';
316 
317     for i in 1..p_req_id_tbl.COUNT LOOP
318 
319         IF (p_req_id_tbl(i) IS NOT NULL) THEN
320 
321             SELECT mapping_id INTO l_map_id
322               FROM pos_supplier_mappings psm
323              WHERE psm.party_id = p_party_id;
324 
325             SELECT request_status INTO req_status
326               FROM pos_bus_class_reqs
327              WHERE lookup_type = p_lkp_type_tbl(i)
328                AND lookup_code = p_lkp_code_tbl(i)
329                AND last_update_date = (SELECT Max(last_update_date)
330                                          FROM pos_bus_class_reqs
331                                         WHERE lookup_type = p_lkp_type_tbl(i)
332                                           AND lookup_code = p_lkp_code_tbl(i)
333                                           AND mapping_id = l_map_id);
334 
335             IF (req_status <> 'PENDING') THEN
336 
337                 x_error_msg :=  fnd_message.get_string('POS','POS_LOCK_SUPPLIER_ROW');
338                 x_return_status := 'E';
339                 RETURN;
340 
341             END IF;
342 
343         ELSIF(p_class_id_tbl(i) IS NOT NULL) THEN
344 
345             SELECT Max(classification_id) INTO l_class_id
346               FROM pos_bus_class_attr
347              WHERE party_id = p_party_id
348                AND lookup_type = p_lkp_type_tbl(i)
349                AND lookup_code = p_lkp_code_tbl(i)
350                AND ( end_date_active is null or trunc(end_date_active) > sysdate )
351                AND status='A'
352                AND class_status = 'APPROVED'
353                AND classification_id not in ( select classification_id
354                                               from pos_bus_class_reqs pbcr,
355                                                    pos_supplier_mappings psm
356                                              where psm.party_id = p_party_id
357                                                and psm.mapping_id = pbcr.mapping_id
358                                                and pbcr.request_status = 'PENDING'
359                                                and pbcr.request_type in ( 'ADD', 'UPDATE' )
360                                                and pbcr.classification_id is not null
361                                             );
362 
363             IF (l_class_id IS NULL OR l_class_id <> p_class_id_tbl(i)) THEN
364 
365                 x_error_msg :=  fnd_message.get_string('POS','POS_LOCK_SUPPLIER_ROW');
366                 x_return_status := 'E';
367                 return;
368 
369             END IF;
370 
371         ELSE
372 
373             SELECT Count(*) INTO rec_count
374             FROM (SELECT lookup_code
375                     FROM pos_bus_class_attr pca1
376                     WHERE status = 'A'
377                       AND ( pca1.end_date_active is null or trunc(pca1.end_date_active) > sysdate )
378                       AND lookup_type = p_lkp_type_tbl(i)
379                       AND lookup_code = p_lkp_code_tbl(i)
380                       and party_id = p_party_id
381                       AND class_status in ('APPROVED')
382 
383                   UNION
384 
385                   SELECT lookup_code
386                     FROM pos_bus_class_reqs pbcr, pos_supplier_mappings psm
387                    WHERE psm.party_id = p_party_id
388                      AND psm.mapping_id = pbcr.mapping_id
389                      AND pbcr.lookup_type = p_lkp_type_tbl(i)
390                      AND pbcr.lookup_code = p_lkp_code_tbl(i)
391                      AND pbcr.request_status = 'PENDING'
392                      AND pbcr.request_type in ('ADD', 'UPDATE')
393                   )tbl_all;
394 
395             IF (rec_count > 0) THEN
396 
397                 x_error_msg :=  fnd_message.get_string('POS','POS_LOCK_SUPPLIER_ROW');
398                 x_return_status := 'E';
399                 return;
400 
401             END IF;
402 
403         END IF;
404 
405     END LOOP;
406 
407 END validate_bus_class_concurrency;
408 
409 --End for Bug 6620664 - Controlling concurrent updates to Business Classification screen
410 
411 
412 
413 /* Added as part of bug 5154822
414  */
415 
416 
417 PROCEDURE SYNCHRONIZE_CLASS_TCA_TO_PO
418 ( pPartyId in Number,
419   pVendorId in Number
420 )
421 IS
422 l_women varchar2(1);
423 l_women_status varchar2(1);
424 l_women_update_date date;
425 l_minority_owned varchar2(100);
426 l_minority varchar2( 100 );
427 l_minority_status varchar2( 100 );
428 l_minority_type PO_VENDORS.MINORITY_GROUP_LOOKUP_CODE%TYPE;
429 l_minority_update_date date;
430 l_small_business varchar2( 1);
431 l_small_buss_update_date date;
432 l_small_business_status varchar2( 1);
433 x_exception_msg varchar2(1000);
434 BEGIN
435 
436     select decode(WOMEN_OWNED_FLAG, 'Y', 'Y','N'),
437     SMALL_BUSINESS_FLAG, MINORITY_GROUP_LOOKUP_CODE
438     into l_women, l_small_business, l_minority
439     from ap_suppliers
440     where vendor_id = pVendorId;
441 
442     if (l_minority is null) then
443         l_minority := '__te_st__';
444     end if;
445 
446     BEGIN
447     -- if the Status is A then returns Y else return N
448         select decode(pca.status, 'A', 'Y', 'N')
449         , pca.last_update_date
450         into l_women_status, l_women_update_date
451         from pos_bus_class_attr pca
452         where pca.lookup_type='POS_BUSINESS_CLASSIFICATIONS'
453         and pca.lookup_code='WOMEN_OWNED'
454         and pca.start_date_active <= sysdate
455         and (pca.end_date_active is null or pca.end_date_active > sysdate)
456         and pca.party_id = pPartyId
457         and pca.status = 'A'
458         and pca.class_status = 'APPROVED';
459 
460         exception
461             when NO_DATA_FOUND then
462                 l_women_status := 'N';
463                 l_women_update_date := sysdate ;
464     END;
465 
466     if ( l_women <> l_women_status ) then
467     begin
468         --dbms_output.put_line('updating women owned status');
469         update ap_suppliers
470         set women_owned_flag = l_women_status
471         , last_update_date = l_women_update_date
472         where vendor_id = pVendorId;
473     end;
474     end if;
475 
476     BEGIN
477     -- if the Status is A then returns Y else return N
478         select decode(pca.status, 'A', 'Y', 'N')
479         , pca.last_update_date
480         into l_small_business_status, l_small_buss_update_date
481         from pos_bus_class_attr pca
482         where pca.lookup_type='POS_BUSINESS_CLASSIFICATIONS'
483         and pca.lookup_code='SMALL_BUSINESS'
484         and pca.start_date_active <= sysdate
485         and (pca.end_date_active is null or pca.end_date_active > sysdate)
486         and pca.party_id = pPartyId
487         and pca.status = 'A'
488         and pca.class_status = 'APPROVED';
489 
490         exception
491             when NO_DATA_FOUND then
492                 l_small_business_status := 'N';
493                 l_small_buss_update_date := sysdate;
494     END;
495 
496     if ( l_small_business <> l_small_business_status ) then
497     begin
498         update ap_suppliers
499         set small_business_flag = l_small_business_status
500         , last_update_date = l_small_buss_update_date
501         where vendor_id = pVendorId;
502     end;
503     end if;
504 
505     BEGIN
506     -- if the Status is A then returns Y else return N
507         select decode(pca.status, 'A', 'Y', 'N')
508         , pca.last_update_date, pca.ext_attr_1
509         into l_minority_status
510         , l_minority_update_date, l_minority_type
511         from pos_bus_class_attr pca
512         where pca.lookup_type='POS_BUSINESS_CLASSIFICATIONS'
513         and pca.lookup_code='MINORITY_OWNED'
514         and pca.start_date_active <= sysdate
515         and (pca.end_date_active is null or pca.end_date_active > sysdate)
516         and pca.party_id = pPartyId
517         and pca.status = 'A'
518         and pca.class_status = 'APPROVED';
519 
520         exception
521             when NO_DATA_FOUND then
522                 l_minority_status := 'N';
523                 l_minority_update_date := sysdate;
524                 l_minority_type := null;
525     END;
526 
527     if ( l_minority <> l_minority_status ) then
528     begin
529         --dbms_output.put_line('updating minority owned status');
530         update ap_suppliers
531         set MINORITY_GROUP_LOOKUP_CODE = l_minority_type
532         , last_update_date = l_minority_update_date
533         where vendor_id = pVendorId;
534     end;
535     end if;
536 
537 END SYNCHRONIZE_CLASS_TCA_TO_PO;
538 
539 /* Added as part of bug 5154822
540  */
541 PROCEDURE CHECK_AND_MV_CLASS
542 (
543     pPartyId in Number,
544     pVendorId in Number,
545     p_class_category in varchar2,
546     p_class_code in varchar2,
547     p_status in varchar2 ,
548     x_classification_id out nocopy number,
549     x_modified out nocopy varchar2
550 )
551 IS
552 l_po_status varchar2(1);
553 l_pos_status varchar2(1);
554 l_status varchar2(100);
555 l_exception_msg varchar2(1000);
556 l_id number;
557 l_temp_id number;
558 l_approval_status varchar2(100);
559 BEGIN
560     l_po_status := p_status;
561     BEGIN
562         select decode(pca.status, 'A', 'Y', 'N'), pca.classification_id,
563         -- if the Status is A then returns Y else return N
564         pca.class_status
565         into l_pos_status, x_classification_id
566         ,l_approval_status
567         from  pos_bus_class_attr pca
568         where pca.lookup_type=p_class_category
569         and pca.lookup_code=p_class_code
570         and pca.start_date_active <= sysdate
571         and (pca.end_date_active is null or pca.end_date_active > sysdate)
572         and pca.party_id = pPartyId
573 	and pca.status = 'A';
574 
575         exception
576             when NO_DATA_FOUND then
577              l_pos_status := 'N';
578              x_classification_id := -1;
579     END;
580 
581     if ( l_po_status <> l_pos_status ) then
582         if( l_po_status = 'Y' ) then
583             x_modified := 'Y';
584             select POS_BUS_CLASS_ATTR_S.NEXTVAL
585             into l_id
586             from dual;
587 
588             insert into pos_bus_class_attr
589                 (
590                 classification_id, certificate_number,
591                 certifying_agency, expiration_date,
592                 class_status, status, created_by, creation_date,
593                 attribute1, attribute2, attribute3,
594                 attribute4, attribute5, last_updated_by,
595                 last_update_date, last_update_login,
596                 party_id, lookup_type, lookup_code, start_date_active, vendor_id
597                 )
598                 values
599                 (l_id, null, null, null,
600                  'APPROVED', 'A', -1, sysdate, null, null, null, null, null,
601                  -1, sysdate, -1,
602                  pPartyId, p_class_category, p_class_code,sysdate, pVendorId);
603                  x_classification_id := l_id;
604         else
605          IF (l_approval_status = 'APPROVED' ) THEN
606             x_modified := 'Y';
607          -- end date the record only if the classification is approved,
608          -- if not it might simply be in pending stage, which shouldn not
609          -- be disturbed.
610             update pos_bus_class_attr
611             set status='I' , end_date_active = sysdate
612             where classification_id = x_classification_id;
613          END IF;
614         end if;
615     else
616         if(l_approval_status <> 'APPROVED' ) then
617             x_modified := 'Y';
618             update pos_bus_class_attr
619             set class_status = 'APPROVED'
620             where classification_id = x_classification_id;
621         end if;
622     end if;
623 END;
624 
625 /* Added as part of bug 5154822
626  */
627 PROCEDURE CHECK_AND_MV_CLASS
628 (
629     pPartyId in Number,
630     pVendorId in Number,
631     p_class_category in varchar2,
632     p_class_code in varchar2,
633     p_status in varchar2 ,
634     x_classification_id out nocopy number
635 )
636 IS
637 l_modified varchar2(100);
638 BEGIN
639     CHECK_AND_MV_CLASS(pPartyId, pVendorId, p_class_category,
640             p_class_code, p_status, x_classification_id,
641             l_modified);
642 END;
643 
644 /* Added as part of bug 5154822
645  */
646 PROCEDURE SYNCHRONIZE_CLASS_PO_TO_TCA
647 ( pPartyId in Number,
648   pVendorId in Number
649 )
650 IS
651 l_women varchar2(1);
652 l_minority varchar2( 100 );
653 l_minority_owned varchar2( 1);
654 l_small_business varchar2( 1);
655 l_small_business_status varchar2( 1);
656 l_last_update_date date;
657 l_exception_msg varchar2(1000);
658 l_status varchar2(100);
659 l_classification_id number;
660 l_test_id number;
661 l_updated varchar2(100);
662 BEGIN
663     select decode(WOMEN_OWNED_FLAG, 'Y', 'Y','N'), decode (SMALL_BUSINESS_FLAG, 'Y','Y','N'),
664     MINORITY_GROUP_LOOKUP_CODE, last_update_date
665     into l_women, l_small_business, l_minority, l_last_update_date
666     from ap_suppliers
667     where vendor_id = pVendorId;
668 
669     CHECK_AND_MV_CLASS
670         (
671             pPartyId,
672             pVendorId,
673             BUSINESS_CLASSIFICATION,
674             WOMEN_OWNED,
675             l_women,
676             l_classification_id
677         );
678 
679     CHECK_AND_MV_CLASS
680         (
681             pPartyId,
682             pVendorId,
683             BUSINESS_CLASSIFICATION,
684             SMALL_BUSINESS,
685             l_small_business,
686             l_classification_id
687         );
688 
689     if( l_minority is not null ) then
690         l_minority_owned := 'Y';
691         CHECK_AND_MV_CLASS
692         (
693             pPartyId,
694             pVendorId,
695             BUSINESS_CLASSIFICATION,
696             MINORITY_OWNED,
697             l_minority_owned,
698             l_classification_id
699         );
700 
701         if(l_classification_id is not null ) then
702             update pos_bus_class_attr
703             set ext_attr_1 = l_minority
704             where classification_id = l_classification_id;
705         end if;
706     else
707         l_minority_owned := 'N';
708         CHECK_AND_MV_CLASS
709         (
710             pPartyId,
711             pVendorId,
712             BUSINESS_CLASSIFICATION,
713             MINORITY_OWNED,
714             l_minority_owned,
715             l_classification_id,
716             l_updated
717         );
718          if(l_classification_id is not null AND l_updated ='Y') then
719             update pos_bus_class_attr
720             set ext_attr_1 = l_minority
721             where classification_id = l_classification_id;
722         end if;
723     end if;
724 
725 END SYNCHRONIZE_CLASS_PO_TO_TCA;
726 
727 PROCEDURE remove_classification( pClassificationId in number)
728 IS
729 BEGIN
730         update pos_bus_class_attr
731             set status='I', last_update_date = sysdate,
732             last_updated_by = fnd_global.user_id,
733             end_date_active = sysdate
734             where classification_id = pClassificationId;
735 END;
736 
737 END POS_SUPP_CLASSIFICATION_PKG;