Advertisement
Aleksandr37rus

Untitled

Dec 22nd, 2022
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 18.93 KB | None | 0 0
  1. CREATE OR REPLACE PACKAGE BODY RS24_CATALOG_BUILDER_PKG IS
  2.  
  3.   FUNCTION TEXT_QUERY(P_FLEX_CONTEXT_CODE VARCHAR2) RETURN CLOB IS
  4.     V_QUERY                 CLOB;
  5.     V_QUERY1                CLOB;
  6.     V_QUERY11               CLOB;
  7.     V_QUERY_TAB             VARCHAR2(4000) := '';
  8.     V_QUERY_WHERE           VARCHAR2(4000) := '';
  9.     L_UOM_COL               VARCHAR2(240);
  10.     L_VAL_COL               VARCHAR2(240);
  11.     L_ATTR_GROUP_ID         NUMBER;
  12.     L_ATTR_GROUP_ID_STR     NUMBER;
  13.     NUM                     NUMBER;
  14.     DATABASE_COLUMN_TEMP    VARCHAR2(4000) := '';
  15.     DATA_TYPE_TEMP          VARCHAR2(4000) := '';
  16.     L_UOM_COL_TEMP          VARCHAR2(240);
  17.     L_VAL_COL_TEMP          VARCHAR2(240);
  18.     L_ITEM_CATALOG_GROUP_ID VARCHAR2(240);
  19.   BEGIN
  20.     NUM                 := 0;
  21.     L_ATTR_GROUP_ID_STR := 0;
  22.  
  23.     DBMS_LOB.CREATETEMPORARY(V_QUERY, TRUE);
  24.     DBMS_LOB.CREATETEMPORARY(V_QUERY1, TRUE);
  25.     DBMS_LOB.CREATETEMPORARY(V_QUERY11, TRUE);
  26.  
  27.     SELECT ICG.ITEM_CATALOG_GROUP_ID
  28.       INTO L_ITEM_CATALOG_GROUP_ID
  29.       FROM MTL_ITEM_CATALOG_GROUPS_VL ICG
  30.      WHERE ICG.SEGMENT4 = DECODE(SUBSTR(P_FLEX_CONTEXT_CODE, 1, 7),
  31.                                  'XXRSV_E',
  32.                                  LTRIM(P_FLEX_CONTEXT_CODE, 'XXRSV_'),
  33.                                  P_FLEX_CONTEXT_CODE);
  34.  
  35.     FOR C_COL IN (SELECT A.DESCRIPTION,
  36.                          A.SEQUENCE,
  37.                          A.ATTR_GROUP_ID,
  38.                          A.DATABASE_COLUMN,
  39.                          A.ATTR_NAME,
  40.                          A.ATTR_DISPLAY_NAME,
  41.                          A.DATA_TYPE,
  42.                          A.REQUIRED_FLAG,
  43.                          AG.ATTR_GROUP_NAME
  44.                     FROM XXRSV_ATTR_GROUPS AG, XXRSV_ATTRS A
  45.                    WHERE A.ATTR_GROUP_ID = AG.ATTR_GROUP_ID
  46.                      AND A.ENABLED_FLAG = 'Y'
  47.                      AND AG.DATA_LEVEL = '1'
  48.                      AND AG.ENABLED_FLAG = 'Y'
  49.                      AND AG.ATTR_GROUP_NAME LIKE P_FLEX_CONTEXT_CODE || '%'
  50.                      AND SUBSTR(A.ATTR_DISPLAY_NAME, -3, 3) <> ' по'
  51.                      AND NOT EXISTS
  52.                    (SELECT 1
  53.                             FROM (SELECT FV.PARENT_FLEX_VALUE_LOW, -- КАТ ETIM
  54.                                          FV.FLEX_VALUE_MEANING AS ATTR5 -- АТРИБУТ_5
  55.                                     FROM FND_FLEX_VALUESET_V FVS
  56.                                     JOIN FND_FLEX_VALUES_VL FV
  57.                                       ON FV.FLEX_VALUE_SET_ID =
  58.                                          FVS.FLEX_VALUE_SET_ID
  59.                                      AND TRUNC(SYSDATE) BETWEEN
  60.                                          NVL(FV.START_DATE_ACTIVE,
  61.                                              TRUNC(SYSDATE)) AND
  62.                                          NVL(FV.END_DATE_ACTIVE,
  63.                                              TRUNC(SYSDATE))
  64.                                      AND FV.ENABLED_FLAG = 'Y'
  65.                                    WHERE FVS.FLEX_VALUE_SET_NAME =
  66.                                          'XXRSV_ETIM_5.0_7.0') ETIM5
  67.                            WHERE 1 = 1
  68.                              AND ETIM5.ATTR5 = A.ATTR_NAME
  69.                              AND ETIM5.PARENT_FLEX_VALUE_LOW =
  70.                                  DECODE(SUBSTR(P_FLEX_CONTEXT_CODE, 1, 7),
  71.                                         'XXRSV_E',
  72.                                         LTRIM(P_FLEX_CONTEXT_CODE, 'XXRSV_'),
  73.                                         P_FLEX_CONTEXT_CODE)
  74.                              AND NOT EXISTS
  75.                            (SELECT 1
  76.                                     FROM (SELECT FV.PARENT_FLEX_VALUE_LOW, -- КАТ ETIM
  77.                                                  FV.DESCRIPTION AS ATTR7 -- АТРИБУТ_7
  78.                                             FROM FND_FLEX_VALUESET_V FVS
  79.                                             JOIN FND_FLEX_VALUES_VL FV
  80.                                               ON FV.FLEX_VALUE_SET_ID =
  81.                                                  FVS.FLEX_VALUE_SET_ID
  82.                                              AND TRUNC(SYSDATE) BETWEEN
  83.                                                  NVL(FV.START_DATE_ACTIVE,
  84.                                                      TRUNC(SYSDATE)) AND
  85.                                                  NVL(FV.END_DATE_ACTIVE,
  86.                                                      TRUNC(SYSDATE))
  87.                                              AND FV.ENABLED_FLAG = 'Y'
  88.                                            WHERE FVS.FLEX_VALUE_SET_NAME =
  89.                                                  'XXRSV_ETIM_5.0_7.0') ETIM7
  90.                                    WHERE ETIM5.PARENT_FLEX_VALUE_LOW =
  91.                                          ETIM7.PARENT_FLEX_VALUE_LOW
  92.                                      AND ETIM5.ATTR5 = ETIM7.ATTR7))
  93.                    ORDER BY A.ATTR_GROUP_ID, A.DESCRIPTION, A.SEQUENCE) LOOP
  94.       --------------------------------------------------------------------
  95.    
  96.       --ADDING IN SELECT TABLE AND CONDITIONS FOR EACH GROUP ATTRIBUTES---
  97.       DBMS_LOB.APPEND(V_QUERY1, ',');
  98.       L_ATTR_GROUP_ID := C_COL.ATTR_GROUP_ID;
  99.       IF L_ATTR_GROUP_ID_STR != L_ATTR_GROUP_ID THEN
  100.         L_ATTR_GROUP_ID_STR := L_ATTR_GROUP_ID;
  101.         V_QUERY_TAB         := V_QUERY_TAB || 'XXRSV_ATTR_VALUES       AV' ||
  102.                                TO_CHAR(L_ATTR_GROUP_ID_STR) || ',';
  103.         IF NUM = 0 THEN
  104.           V_QUERY_WHERE := V_QUERY_WHERE || '
  105.    AND AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) ||
  106.                            '.ATTR_GROUP_ID(+) = ' || L_ATTR_GROUP_ID_STR || '
  107.    AND AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) ||
  108.                            '.ORGANIZATION_ID(+) = XXRSV_GLOBALS.GET_MAIN_ORG_ID
  109.    AND P.ITEM_ID = AV' ||
  110.                            TO_CHAR(L_ATTR_GROUP_ID_STR) ||
  111.                            '.INVENTORY_ITEM_ID(+)';
  112.           NUM           := 1;
  113.         ELSE
  114.           V_QUERY_WHERE := V_QUERY_WHERE || '
  115.    AND AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) ||
  116.                            '.ATTR_GROUP_ID(+) = ' || L_ATTR_GROUP_ID_STR ||
  117.                            ' AND AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) ||
  118.                            '.ORGANIZATION_ID(+) = XXRSV_GLOBALS.GET_MAIN_ORG_ID
  119.    AND P.ITEM_ID = AV' ||
  120.                            TO_CHAR(L_ATTR_GROUP_ID_STR) ||
  121.                            '.INVENTORY_ITEM_ID(+)';
  122.         END IF;
  123.       END IF;
  124.       --THE END OF THE ADDITION---------------------------------------------
  125.    
  126.       --COMBINING THE CHARACTERISTICS OF THE TYPE "FROM - IN"---------------
  127.       IF (SUBSTR(C_COL.ATTR_DISPLAY_NAME, -2, 2) = ' с') THEN
  128.         BEGIN
  129.           SELECT A.DATABASE_COLUMN, A.DATA_TYPE
  130.             INTO DATABASE_COLUMN_TEMP, DATA_TYPE_TEMP
  131.             FROM XXRSV_ATTR_GROUPS AG, XXRSV_ATTRS A
  132.            WHERE A.ATTR_GROUP_ID = AG.ATTR_GROUP_ID
  133.              AND A.ENABLED_FLAG = 'Y'
  134.              AND AG.DATA_LEVEL = '1'
  135.              AND AG.ENABLED_FLAG = 'Y'
  136.              AND AG.ATTR_GROUP_NAME LIKE P_FLEX_CONTEXT_CODE || '%'
  137.              AND A.ATTR_NAME = C_COL.ATTR_NAME || '_1';
  138.         EXCEPTION
  139.           WHEN OTHERS THEN
  140.             DATABASE_COLUMN_TEMP := '###';
  141.         END;
  142.         IF (DATABASE_COLUMN_TEMP = '###') THEN
  143.           IF C_COL.DATA_TYPE = 'N' THEN
  144.             L_VAL_COL := 'AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  145.                          C_COL.DATABASE_COLUMN;
  146.             L_UOM_COL := REPLACE(L_VAL_COL, 'N', 'UOM');
  147.          
  148.             DBMS_LOB.APPEND(V_QUERY1,
  149.                             '
  150.       NVL(XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  151.                             L_VAL_COL || ', ' || L_UOM_COL ||
  152.                             '), ''Не определено'') AS ' || 'tech_' ||
  153.                             C_COL.ATTR_NAME);
  154.          
  155.           ELSE
  156.             DBMS_LOB.APPEND(V_QUERY1,
  157.                             '
  158.       NVL(AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  159.                             C_COL.DATABASE_COLUMN ||
  160.                             ', ''Не определено'') AS ' || 'tech_' ||
  161.                             C_COL.ATTR_NAME);
  162.           END IF;
  163.         ELSE
  164.           IF DATA_TYPE_TEMP = 'N' THEN
  165.             L_VAL_COL_TEMP := 'AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  166.                               DATABASE_COLUMN_TEMP;
  167.             L_VAL_COL      := 'AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  168.                               C_COL.DATABASE_COLUMN;
  169.             L_UOM_COL_TEMP := REPLACE(L_VAL_COL_TEMP, 'N', 'UOM');
  170.             L_UOM_COL      := REPLACE(L_VAL_COL, 'N', 'UOM');
  171.          
  172.             DBMS_LOB.APPEND(V_QUERY1,
  173.                             '
  174. CASE WHEN (XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  175.                              L_VAL_COL || ', ' || L_UOM_COL ||
  176.                              ') IS NULL AND XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  177.                              L_VAL_COL_TEMP || ', ' || L_UOM_COL_TEMP ||
  178.                              ') IS NOT NULL) THEN XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  179.                              L_VAL_COL_TEMP || ', ' || L_UOM_COL_TEMP ||
  180.                              ') WHEN (XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  181.                              L_VAL_COL || ', ' || L_UOM_COL ||
  182.                              ') IS NOT NULL AND XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  183.                              L_VAL_COL_TEMP || ', ' || L_UOM_COL_TEMP ||
  184.                              ') IS NULL) THEN XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  185.                              L_VAL_COL || ', ' || L_UOM_COL ||
  186.                              ') WHEN (XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  187.                              L_VAL_COL || ', ' || L_UOM_COL ||
  188.                              ') IS NULL AND XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  189.                              L_VAL_COL_TEMP || ', ' || L_UOM_COL_TEMP ||
  190.                              ') IS NULL) THEN ''Не определено''
  191.                            ELSE (XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  192.                              L_VAL_COL || ', ' || L_UOM_COL ||
  193.                              ') || '' - '' || XXRSV_ENDECA_PKG.GET_STR_FEATURE(' ||
  194.                              L_VAL_COL_TEMP || ', ' || L_UOM_COL_TEMP ||
  195.                              ')) END AS ' || 'tech_' || C_COL.ATTR_NAME);
  196.          
  197.           ELSE
  198.             DBMS_LOB.APPEND(V_QUERY1,
  199.                             '
  200. CASE WHEN (AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  201.                              C_COL.DATABASE_COLUMN || ' IS NULL AND AV' ||
  202.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  203.                              DATABASE_COLUMN_TEMP || ' IS NOT NULL) THEN AV' ||
  204.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  205.                              DATABASE_COLUMN_TEMP || ' WHEN (AV' ||
  206.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  207.                              C_COL.DATABASE_COLUMN || ' IS NOT NULL AND AV' ||
  208.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  209.                              DATABASE_COLUMN_TEMP || ' IS NULL) THEN AV' ||
  210.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  211.                              C_COL.DATABASE_COLUMN || ' WHEN (AV' ||
  212.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  213.                              C_COL.DATABASE_COLUMN || ' IS NULL AND AV' ||
  214.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  215.                              DATABASE_COLUMN_TEMP ||
  216.                              ' IS NULL) THEN ''Не определено''
  217.                            ELSE (AV' ||
  218.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  219.                              C_COL.DATABASE_COLUMN || ' || '' - '' || AV' ||
  220.                              TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  221.                              DATABASE_COLUMN_TEMP || ') END AS ' || 'tech_' ||
  222.                              C_COL.ATTR_NAME);
  223.           END IF;
  224.        
  225.           DATABASE_COLUMN_TEMP := '';
  226.           DATA_TYPE_TEMP       := '';
  227.           L_UOM_COL_TEMP       := '';
  228.           L_UOM_COL            := '';
  229.         END IF;
  230.         --END OF COMBINING--------------------------------------------------
  231.       ELSE
  232.         IF C_COL.DATA_TYPE = 'N' THEN
  233.           DBMS_LOB.APPEND(V_QUERY1,
  234.                           '
  235.       NVL(XXRSV_RS24_TECH_SPEC_UOM.GET_ATTR_VAL_WITH_UOM_DEF(P_ITEM_ID    => P.ITEM_ID,
  236.                                                                  P_ORG_ID     => XXRSV_GLOBALS.GET_MAIN_ORG_ID,
  237.                                                                  P_GROUP_NAME => ''' ||
  238.                           C_COL.ATTR_GROUP_NAME || ''',
  239.                                                                  P_ATTR_NAME  => ''' ||
  240.                           C_COL.ATTR_NAME || '''), ''Не определено'') AS ' ||
  241.                           'tech_' || C_COL.ATTR_NAME);
  242.        
  243.         ELSE
  244.           DBMS_LOB.APPEND(V_QUERY1,
  245.                           '
  246.       NVL(AV' || TO_CHAR(L_ATTR_GROUP_ID_STR) || '.' ||
  247.                           C_COL.DATABASE_COLUMN ||
  248.                           ', ''Не определено'') AS ' || 'tech_' ||
  249.                           C_COL.ATTR_NAME);
  250.         END IF;
  251.       END IF;
  252.     END LOOP;
  253.  
  254.     DBMS_LOB.APPEND(V_QUERY11,
  255.                     'SELECT P.ITEM_ID,
  256.       P.ITEM_CODE,
  257.       P.VENDOR_ARTICLE,
  258.       P.BRAND,
  259.       P.UOM,
  260.       P.PRIMARY_UNIT_OF_MEASURE,
  261.       P.PRODUCT_DESCRIPTION,
  262.       P.PRODUCT_LONG_DESCRIPTION,
  263.       P.SERIES,
  264.       P.VENDOR_DESCRIPTION,
  265.       P.ITEM_CATALOG_GROUP_ID,
  266.       P.IMAGE,
  267.       PI.LOYALTY_PROG,
  268.       PI.KOD_MINPROMTORG,
  269.       PI.IN_STOCK,
  270.       PI.BARCODE,
  271.       PP.PRICE_1,
  272.       PP.PRICE_2,
  273.       PP.PRICE_3,
  274.       PPR.DEAL_NAME,
  275.       PPR.DEAL_USER_TYPE,
  276.       PAC.CAT_CW_TV,
  277.       PAC.CAT_CW_TUL,
  278.       PAC.CAT_CW_ROS,
  279.       PAC.CAT_CW_SAM,
  280.       PAC.CAT_CW_SIB,
  281.       PAC.CAT_CW_UR,
  282.       PM.MULTIPLICITY_TV,
  283.       PM.MULTIPLICITY_TUL,
  284.       PM.MULTIPLICITY_ROS,
  285.       PM.MULTIPLICITY_SAM,
  286.       PM.MULTIPLICITY_SIB,
  287.       PM.MULTIPLICITY_UR,
  288.       PQ.QUANTITY_TV,
  289.       PQ.QUANTITY_SAM,
  290.       PQ.QUANTITY_ROS,
  291.       PQ.QUANTITY_SIB,
  292.       PQ.QUANTITY_TUL,
  293.       PQ.QUANTITY_UR,
  294.       NVL2(PS.SALES_TV, ''Y'', ''N'') AS SALES_TV,
  295.       NVL2(PS.SALES_SAM, ''Y'', ''N'') AS SALES_SAM,
  296.       NVL2(PS.SALES_ROS, ''Y'', ''N'') AS SALES_ROS,
  297.       NVL2(PS.SALES_SIB, ''Y'', ''N'') AS SALES_SIB,
  298.       NVL2(PS.SALES_TUL, ''Y'', ''N'') AS SALES_TUL,
  299.       NVL2(PS.SALES_UR, ''Y'', ''N'') AS SALES_UR');
  300.     DBMS_LOB.APPEND(V_QUERY11, V_QUERY1);
  301.     DBMS_LOB.APPEND(V_QUERY11,
  302.                     '
  303.  FROM ' || V_QUERY_TAB || '
  304.       RS24_PRODUCT_MV P,
  305.       RS24_PRODUCT_ANALITIC_CAT_MV PAC,
  306.       RS24_PRODUCT_MULTIPLICITY_MV PM,
  307.       RS24_PRODUCT_QUANTITY_MV     PQ,
  308.       RS24_PRODUCT_INFO_MV         PI,
  309.       RS24_PRODUCT_PRICE_V         PP,
  310.       RS24_PRODUCT_PROMOS_V        PPR,
  311.       RS24_PRODUCT_SALES_V         PS
  312.  WHERE 1 = 1
  313.       AND P.ITEM_ID = PAC.ITEM_ID(+)
  314.       AND P.ITEM_ID = PM.ITEM_ID(+)
  315.       AND P.ITEM_ID = PQ.ITEM_ID(+)
  316.       AND P.ITEM_ID = PI.ITEM_ID(+)
  317.       AND P.ITEM_ID = PP.ITEM_ID(+)
  318.       AND P.ITEM_ID = PPR.ITEM_ID(+)
  319.       AND P.ITEM_ID = PS.ITEM_ID(+)
  320.       AND PAC.CAT_CW_TV IS NOT NULL
  321.       AND PAC.CAT_CW_TUL IS NOT NULL
  322.       AND PAC.CAT_CW_ROS IS NOT NULL
  323.       AND PAC.CAT_CW_SAM IS NOT NULL
  324.       AND PAC.CAT_CW_SIB IS NOT NULL
  325.       AND PAC.CAT_CW_UR IS NOT NULL
  326.       AND P.ITEM_CATALOG_GROUP_ID = ' ||
  327.                     L_ITEM_CATALOG_GROUP_ID || V_QUERY_WHERE);
  328.  
  329.     DBMS_LOB.APPEND(V_QUERY, V_QUERY11);
  330.  
  331.     RETURN V_QUERY;
  332.   END TEXT_QUERY;
  333.  
  334.   FUNCTION GET_STR_FEATURE(P_N_EXT_ATTR NUMBER, P_UOM_EXT_ATTR VARCHAR2)
  335.     RETURN VARCHAR2 IS
  336.     L_STR_FEATURE VARCHAR2(240);
  337.     --TEMP1         NUMBER;
  338.     TEMP  VARCHAR2(240);
  339.     TEMPN VARCHAR2(240);
  340.   BEGIN
  341.     /*    BEGIN
  342.         SELECT DECODE(INV_CONVERT.INV_UM_CONVERT(0,
  343.                                                   5,
  344.                                                   P_N_EXT_ATTR,
  345.                                                   (SELECT TT.UOM_CODE
  346.                                                      FROM MTL_UNITS_OF_MEASURE_VL TT,
  347.                                                           MTL_UNITS_OF_MEASURE_VL T
  348.                                                     WHERE TT.UOM_CLASS =
  349.                                                           T.UOM_CLASS
  350.                                                       AND T.UOM_CODE =
  351.                                                           P_UOM_EXT_ATTR
  352.                                                       AND TT.BASE_UOM_FLAG = 'Y'),
  353.                                                   P_UOM_EXT_ATTR,
  354.                                                   NULL,
  355.                                                   NULL),
  356.                        -99999,
  357.                        P_N_EXT_ATTR)
  358.           INTO TEMP1
  359.           FROM DUAL;
  360.       EXCEPTION
  361.         WHEN OTHERS THEN
  362.           TEMP1 := NULL;
  363.       END;
  364.     */
  365.     IF (P_N_EXT_ATTR IS NULL) THEN
  366.       RETURN NULL;
  367.     ELSE
  368.       BEGIN
  369.         SELECT T.UNIT_OF_MEASURE
  370.           INTO TEMP
  371.           FROM MTL_UNITS_OF_MEASURE_VL T
  372.          WHERE T.UOM_CODE = P_UOM_EXT_ATTR;
  373.       EXCEPTION
  374.         WHEN OTHERS THEN
  375.           TEMP := NULL;
  376.       END;
  377.    
  378.       TEMPN := RTRIM(TO_CHAR(P_N_EXT_ATTR,
  379.                              'FM9999999999999999990D9999999999999999999',
  380.                              'NLS_NUMERIC_CHARACTERS = ''. '''),
  381.                      '.');
  382.    
  383.       IF (TEMP IS NULL) THEN
  384.         L_STR_FEATURE := TEMPN;
  385.       ELSE
  386.         L_STR_FEATURE := TEMPN || ' ' || TEMP;
  387.       END IF;
  388.    
  389.     END IF;
  390.  
  391.     RETURN L_STR_FEATURE;
  392.   END GET_STR_FEATURE;
  393.  
  394.   FUNCTION GET_ITEM_IMAGE(P_ORGANIZATION_ID   NUMBER,
  395.                           P_INVENTORY_ITEM_ID NUMBER) RETURN VARCHAR2 IS
  396.     IMG_RES VARCHAR2(240);
  397.   BEGIN
  398.     BEGIN
  399.       SELECT T.URL AS FILE_NAME
  400.         INTO IMG_RES
  401.         FROM (SELECT A.URL
  402.                 FROM APPS.FND_ATTACHED_DOCS_FORM_VL A
  403.                WHERE FUNCTION_NAME = 'INVIDITM'
  404.                  AND FUNCTION_TYPE = 'O'
  405.                  AND (SECURITY_TYPE = 4 OR PUBLISH_FLAG = 'Y' OR
  406.                      (SECURITY_TYPE = 1))
  407.                  AND (ENTITY_NAME = 'MTL_SYSTEM_ITEMS' AND
  408.                      PK1_VALUE = TO_CHAR(P_ORGANIZATION_ID))
  409.                  AND CATEGORY_ID = 34
  410.                  AND DATATYPE_ID = 5
  411.                  AND PK2_VALUE = TO_CHAR(P_INVENTORY_ITEM_ID)
  412.                  AND LOWER(SUBSTR(A.URL, INSTR(A.URL, '.', -1))) IN
  413.                      ('.jpg', '.jpeg', '.png', '.gif', '.bmp')
  414.                ORDER BY A.SEQ_NUM) T
  415.        WHERE ROWNUM = 1;
  416.     EXCEPTION
  417.       WHEN NO_DATA_FOUND THEN
  418.         IMG_RES := 'no_image.jpg';
  419.     END;
  420.  
  421.     RETURN IMG_RES;
  422.  
  423.   EXCEPTION
  424.     WHEN OTHERS THEN
  425.       RETURN '';
  426.   END GET_ITEM_IMAGE;
  427.  
  428. END RS24_CATALOG_BUILDER_PKG;
  429.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement