Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION r_report_product_catalog_preparation(character varying, bigint)
  2.   RETURNS SETOF refcursor AS
  3. $BODY$
  4. DECLARE
  5.     pCatalogCode         ALIAS FOR $1;
  6.     pTenantId            ALIAS FOR $2;
  7.    
  8.     vRefHeader              REFCURSOR := 'refHeader';
  9.     vRefDetail              REFCURSOR := 'refDetail';
  10.     vReportTitle            character varying(50) := 'PRODUCT CATALOG PREPARATION LIST';
  11.     vGender                 character varying(255):='GENDER';
  12.     vDisplay                character varying(255):='DISPLAY';
  13.     vBulk                   character varying(255):='BULK';
  14.     vReceive                character varying(255):='RECEIVE';
  15.  
  16.     vEmpty          character varying(1):='';
  17.  
  18.    
  19. BEGIN
  20.     OPEN vRefHeader FOR
  21.         SELECT vReportTitle AS report_title,catalog_name,start_date,end_date
  22.         FROM m_catalog
  23.         WHERE catalog_code = pCatalogCode AND tenant_id = pTenantId;
  24.     RETURN NEXT vRefHeader;
  25.    
  26.     OPEN vRefDetail FOR
  27.    
  28.     EXECUTE '
  29.     SELECT A.product_code,B.product_name,A.supplier_code,
  30.      C.partner_name,E.ctgr_product_code,E.ctgr_product_name,
  31.      A.brand_code,F.brand_name,G.value,A.product_catalog_code,
  32.      A.product_catalog_name,A.doc_no,A.doc_date,
  33.      A.flg_lanjut_catalog,A.qty_commit,A.flg_consign,
  34.      A.supplier_price,A.cogs,A.catalog_price,A.price_after_disc,A.price_after_disc2,
  35.      A.flg_discontinue,A.halaman_katalok,
  36.      A.pemakaian_halaman,H.disc_member_percentage,H.disc_promo_percentage,
  37.      H.margin_supplier_percentage,H.margin_internal_percentage,SUM(I.qty)AS stock_qty,A.flg_launching,A.product_catalog_desc,
  38.      A.catalog_price2,A.nett_price2,K.username,
  39.      COALESCE(L.style_product, $6) AS style_product, N.product_value
  40.      FROM m_product_catalog_preparation
  41.      A LEFT JOIN m_product
  42.      B ON A.product_code = B.product_code
  43.      LEFT JOIN vw_supplier C ON A.supplier_code = C.partner_code
  44.      LEFT JOIN m_ctgr_product
  45.      E ON B.ctgr_product_id = E.ctgr_product_id
  46.      LEFT JOIN m_brand
  47.      F ON A.brand_code = F.brand_code
  48.      LEFT JOIN m_product_custom_field
  49.      G ON B.product_id = G.product_id AND product_attr_code = $2
  50.      LEFT JOIN m_product_margin_supplier
  51.      H ON F.brand_id = H.brand_id AND C.partner_id = H.supplier_id AND CAST(A.disc_member_percent AS numeric) = H.disc_member_percentage AND CAST(A.disc_promo_percent AS numeric) = H.disc_promo_percentage
  52.      LEFT JOIN in_product_balance_stock  
  53.      I ON I.product_id =B.product_id
  54.      LEFT JOIN m_warehouse
  55.      J ON J.warehouse_id = I.warehouse_id AND J.warehouse_code in ($3,$4,$5)
  56.      LEFT JOIN t_user K ON A.update_user_id = K.user_id
  57.      LEFT JOIN m_product_custom L ON B.product_id = L.product_id
  58.      LEFT JOIN m_catalog M ON A.catalog_code = M.catalog_code
  59.      LEFT JOIN m_style_product N ON L.style_product = N.style_product AND M.catalog_id = N.catalog_id
  60.      WHERE A.catalog_code = $1
  61.      GROUP BY A.product_code,B.product_name,A.supplier_code,
  62.         C.partner_name,E.ctgr_product_code,E.ctgr_product_name,
  63.      A.brand_code,F.brand_name,G.value,A.product_catalog_code,
  64.      A.product_catalog_name,A.doc_no,A.doc_date,
  65.      A.flg_lanjut_catalog,A.qty_commit,A.flg_consign,
  66.      A.supplier_price,A.cogs,A.catalog_price,A.price_after_disc,A.price_after_disc2,
  67.      A.flg_discontinue,A.halaman_katalok,
  68.      A.pemakaian_halaman,H.disc_member_percentage,H.disc_promo_percentage,
  69.      H.margin_supplier_percentage,H.margin_internal_percentage,A.flg_launching,A.product_catalog_desc,
  70.      A.catalog_price2,A.nett_price2,K.username,
  71.      L.style_product,N.product_value'
  72.     USING pCatalogCode,vGender,vBulk,vDisplay,vReceive,vEmpty;
  73.    
  74.     RETURN NEXT vRefDetail;
  75.  
  76. END;
  77. $BODY$
  78.   LANGUAGE plpgsql VOLATILE
  79.   COST 100
  80.   ROWS 1000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement