Sunday, 29 December 2019

API to update AUTO_TAX_CALC_FLAG in Supplier Sites

SET serveroutput ON size 1000000;

DECLARE
   CURSOR CUR_SITES
   IS
        SELECT   asa.vendor_site_id, asa.org_id
          FROM   ap_suppliers aps, ap_supplier_sites_all asa
         WHERE   aps.VENDOR_ID = asa.VENDOR_ID
                 AND asa.vendor_site_id IN
                          (1427732, 107040, 648640, 1408728, 109163, 387011)
                 AND aps.END_DATE_ACTIVE IS NULL
                 AND asa.INACTIVE_DATE IS NULL
      ORDER BY   asa.auto_tax_calc_flag,
                 aps.VENDOR_NAME,
                 asa.vendor_site_code;

   L_VENDOR_SITE_ID        NUMBER;
   l_SITES_msg_count       NUMBER;
   l_SITES_msg_data        VARCHAR2 (4000);
   l_SITES_return_status   VARCHAR2 (10);
   l_vendor_site_rec       AP_VENDOR_PUB_PKG.r_vendor_site_rec_type;
   l_resp_id               number;
BEGIN
   FOR SITES_REC IN CUR_SITES
   LOOP
        SELECT   frv.responsibility_ID
          INTO   l_resp_id
          FROM   apps.fnd_profile_options_vl fpo,
                 apps.fnd_responsibility_Vl frv,
                 apps.fnd_profile_option_values fpov,
                 apps.hr_organization_units hou
         WHERE       1 = 1
                 AND hou.ORGANIZATION_ID = SITES_REC.org_id
                 AND fpov.profile_option_value = TO_CHAR (hou.organization_id)
                 AND fpo.profile_option_id = fpov.profile_option_id
                 AND fpo.user_profile_option_name = 'MO: Operating Unit'
                 AND frv.responsibility_id = fpov.level_value
                 AND frv.APPLICATION_ID = 200
                 AND UPPER (frv.responsibility_name) LIKE 'AP%%SUPER%USER'
      ORDER BY   frv.responsibility_name;

      FND_GLOBAL.apps_initialize (0, l_resp_id, 200);

      l_vendor_site_id := SITES_REC.VENDOR_SITE_ID;
      l_vendor_site_rec.AUTO_TAX_CALC_FLAG := 'Y';
      AP_VENDOR_PUB_PKG.UPDATE_VENDOR_SITE (
         p_api_version        => '1.0',
         p_init_msg_list      => FND_API.G_TRUE,
         p_commit             => FND_API.G_TRUE,
         p_validation_level   => FND_API.G_VALID_LEVEL_FULL,
         p_vendor_site_id     => l_vendor_site_id,
         p_vendor_site_rec    => l_vendor_site_rec,
         x_return_status      => l_SITES_return_status,
         x_msg_count          => l_SITES_msg_count,
         x_msg_data           => l_SITES_msg_data
      );

      IF l_SITES_return_status = 'S'
      THEN
         COMMIT;
         DBMS_OUTPUT.put_line(   'vendor Site ID : '
                              || l_vendor_site_id
                              || ' Status is : '
                              || l_SITES_return_status);
      ELSE
         ROLLBACK;
         DBMS_OUTPUT.put_line(   'vendor Site ID : '
                              || l_vendor_site_id
                              || ' Error Status is : '
                              || l_SITES_return_status);
      END IF;

      FOR I IN 1 .. l_SITES_msg_count
      LOOP
         l_SITES_msg_data :=
            SUBSTR (FND_MSG_PUB.GET (p_encoded => 'T'), 1, 255);
         DBMS_OUTPUT.put_line (l_SITES_msg_data);
      END LOOP;

      L_RESP_ID := NULL;
   END LOOP;
END;

No comments:

Post a Comment