Wednesday, October 4, 2017

API to create relationship between Vendors

CREATE or replace  PROCEDURE P_relationships(p_party_id               IN NUMBER,
                                p_vendor_site_id         IN NUMBER,
                                p_rem_party_id      IN number,
                                p_rem_site_id IN number,
                                p_rem_vendor_site in number)
IS
  l_rem_vend_site_id NUMBER;
  l_rem_party_id     NUMBER;
  v_count number;
BEGIN




 
select count(*) into v_count from iby_ext_payee_relationships pr where pr.party_id=p_party_id
and pr.supplier_site_id=p_vendor_site_id;
if v_count=0 then
    SELECT B.vendor_site_id,
           A.party_id
    INTO   l_rem_vend_site_id, l_rem_party_id
    FROM   ap_suppliers A,
           ap_supplier_sites_all B
    WHERE  A.vendor_id = B.vendor_id
           and a.party_id =p_rem_party_id
           and b.party_site_id= p_rem_site_id
           and b.vendor_site_id=p_rem_vendor_site;
         --  AND A.vendor_name = p_rem_supplier_name
          -- AND B.vendor_site_code = p_rem_supplier_site_name;

    INSERT INTO iby_ext_payee_relationships
                (relationship_id,
                 party_id,
                 supplier_site_id,
                 remit_party_id,
                 remit_supplier_site_id,
                 from_date,
                 primary_flag,
                 active,
                 created_by,
                 creation_date,
                 last_updated_by,
                 last_update_date,
                 last_update_login,
                 object_version_number)
    VALUES      (iby_ext_payee_relship_seq.NEXTVAL,
                 p_party_id,
                 p_vendor_site_id,
                 l_rem_party_id,
                 l_rem_vend_site_id,
                 to_date('28/09/2017','dd/mm/yyyy'),
                 'Y',
                 'Y',
                 fnd_global.user_id,
                 SYSDATE,
                 fnd_global.user_id,
                 SYSDATE,
                 fnd_global.user_id,
                 1 );

    COMMIT;
    dbms_output.put_line('inserted');
    end if;
EXCEPTION
  WHEN OTHERS THEN
dbms_output.put_line('exception1');
END P_relationships;


--Run following :

declare
l_rem_party_id number;
l_rem_site_id number;
l_rem_vend_site_id number;
begin
  select   
   A.party_id,
   b.party_site_id,
           B.vendor_site_id
INTO  l_rem_party_id, l_rem_site_id,  l_rem_vend_site_id 
    FROM   ap_suppliers A,
           ap_supplier_sites_all B
    WHERE  A.vendor_id = B.vendor_id
    and a.segment1='vendor_number' 
    and b.vendor_site_code='site_code';
   
  for i in ( SELECT distinct
           A.party_id,
           B.vendor_site_id

    FROM   ap_suppliers A,
           ap_supplier_sites_all B
    WHERE  A.vendor_id = B.vendor_id
     
           and b.inactive_date is null)
           loop
  P_relationships(i.party_id, i.vendor_site_id, l_rem_party_id, l_rem_site_id,l_rem_vend_site_id);
  end loop;
  end;

No comments:

Post a Comment