Monday 11 July 2011

Vendor Po Shipment Details Report


Source Code:



SELECT PV.segment1 "Vendor Number",
         PV.vendor_name "Vendor Name",
         PVSA.address_line1 "Vendor Address",
         PVSA.city "City",
         PHA.segment1 "PO Number",
         PHA.type_lookup_code "PO Type",
         PHA.creation_date "Creation Date",
         PHA.currency_code "Currency",
         HL1.location_code "Bill To Location",
         HL2.location_code "Ship To Location",
         HE.full_name "Buyer Name"
    FROM po_vendors PV,
         po_vendor_sites_all PVSA,
         po_headers_all PHA,
         po_line_locations_all PLA,
         hr_locations HL1,
         hr_locations HL2,
         hr_employees HE
   WHERE     PV.vendor_id = PVSA.vendor_id
         AND PHA.po_header_id = PLA.po_header_id
         AND PLA.ship_to_location_id = HL1.ship_to_location_id
         AND PLA.ship_to_location_id = HL2.ship_to_location_id
         AND PHA.bill_to_location_id = HL1.location_id
         AND PHA.ship_to_location_id = HL2.location_id
         AND PV.bill_to_location_id = HL1.location_id
         AND PV.bill_to_location_id = HL2.location_id
         AND HE.employee_id = PHA.agent_id
         AND PV.segment1 BETWEEN NVL (:P_PO_NUM_FROM, PV.segment1)
         AND NVL (:P_PO_NUM_TO, PV.segment1)
GROUP BY PV.segment1,
         PV.vendor_name,
         PVSA.address_line1,
         PVSA.city,
         PHA.segment1,
         PHA.type_lookup_code,
         PHA.creation_date,
         PHA.currency_code,
         HL1.location_code,
         HL2.location_code,
         HE.full_name

PO Conversion using bulk collect

Validations and Data Sample its your wish

1.Lines:

a. CREATE TABLE XXPO_LINES_STG
    (
     INTERFACE_HEADER_ID                 NUMBER
    ,INTERFACE_LINE_ID                   NUMBER
    ,LINE_NUM                            NUMBER
    ,LIST_PRICE_PER_UNIT                 NUMBER
    ,SHIPMENT_NUM                        NUMBER    
    ,LINE_TYPE                           VARCHAR2(100)  
    ,ITEM                                VARCHAR2(240)
    ,ITEM_DESCRIPTION                    VARCHAR2(240)
    ,item_id                             NUMBER          
    ,UOM_CODE                            VARCHAR2(30)
    ,QUANTITY                            NUMBER
    ,UNIT_PRICE                          NUMBER
    ,SHIP_TO_ORGANIZATION_CODE           VARCHAR2(40)
    ,SHIP_TO_LOCATION                    VARCHAR2(60)          
      );


b. load data
   infile '--------------------------------------------------'
   truncate into table  XXPO_LINES_STG
   fields terminated by ','
   optionally enclosed by '"'
   trailing nullcols
   (INTERFACE_HEADER_ID              
    ,INTERFACE_LINE_ID                
    ,LINE_NUM
    ,LIST_PRICE_PER_UNIT
    ,SHIPMENT_NUM                
    ,LINE_TYPE                              
    ,ITEM                                
    ,ITEM_DESCRIPTION          
    ,ITEM_ID                                  
    ,UOM_CODE                      
    ,QUANTITY
    ,UNIT_PRICE
    ,SHIP_TO_LOCATION                            
    )


c.  CREATE OR REPLACE PROCEDURE xxpo_lines_conv(x_errbuf  OUT VARCHAR2,
                   x_retcode OUT NUMBER)
                   IS
     TYPE test_array IS TABLE OF xxpo_lines_stg%ROWTYPE  INDEX BY BINARY_INTEGER;
  v_vendor_id                               VARCHAR2(100);
  v_interface_header_id                     VARCHAR2(100);
  v_item                                    VARCHAR2(150);
  v_vendors                                 test_array ;
BEGIN
SELECT *  BULK COLLECT INTO v_vendors FROM xxpo_lines_stg;
FOR i IN  1..v_vendors.COUNT
  LOOP
  INSERT INTO po_lines_interface
  (
    interface_line_id
        ,interface_header_id
  ,ship_to_location_id
  ,line_num
  ,shipment_num
  ,line_type
  ,item
  ,item_description
  ,item_id
  ,uom_code
  ,unit_of_measure
  ,quantity
  ,unit_price
  ,ship_to_organization_code
  --,ship_to_location
  ,need_by_date
  ,promised_date
  ,list_price_per_unit
)
VALUES
(  v_vendors(i).interface_line_id  --po_lines_interface_s.nextval
  , v_vendors(i).interface_header_id    --po_headers_interface_s.CURRVAL--v_interface_header_id
  ,144
  ,v_vendors(i).line_num
  ,v_vendors(i).shipment_num
  ,v_vendors(i).line_type
  ,v_vendors(i).item
  ,v_vendors(i).item_description
  ,v_vendors(i).item_id
  ,v_vendors(i).uom_code
  ,'Each'
  ,v_vendors(i).quantity
  ,v_vendors(i).unit_price
  ,v_vendors(i).ship_to_organization_code
  --,v_vendors(i).SHIP_TO_LOCATION
  ,SYSDATE                              --done
  ,SYSDATE                              --done
  ,v_vendors(i).list_price_per_unit
);
END LOOP;
COMMIT;
END;
/

2. Headers:

a. CREATE TABLE XXPO_HEADERS_STG
(
    INTERFACE_HEADER_ID            NUMBER                                          
    ,BATCH_ID                       NUMBER                                
    ,ACTION                         VARCHAR2(25)                              
    ,ORG_ID                         NUMBER      
    ,DOCUMENT_TYPE_CODE             VARCHAR2(25)
    ,CURRENCY_CODE                  VARCHAR2(15)
    ,AGENT_NAME                     VARCHAR2(240)      
    ,VENDOR_NAME                    VARCHAR2(240)
    ,VENDOR_SITE_CODE               VARCHAR2(15)
    ,SHIP_TO_LOCATION               VARCHAR2(60)  
    ,BILL_TO_LOCATION               VARCHAR2(60)
    ,FREIGHT_CARRIER                VARCHAR2(25)
    ,FOB                            VARCHAR2(25)
    ,FREIGHT_TERMS                  VARCHAR2(25)
  );

b. load data
infile '------------------------------------'
insert into table XXPO_HEADERS_STG
fields terminated by ','
optionally enclosed by '"'
trailing nullcols
(INTERFACE_HEADER_ID                                          
    ,BATCH_ID                                                
  ,ACTION                                                                
  ,ORG_ID                                    
  ,DOCUMENT_TYPE_CODE    
  ,CURRENCY_CODE              
  ,AGENT_NAME                        
  ,VENDOR_NAME                      
  ,VENDOR_SITE_CODE          
  ,SHIP_TO_LOCATION                
  ,BILL_TO_LOCATION            
  ,APPROVAL_STATUS            
  ,FREIGHT_CARRIER              
  ,FOB                                  
  ,FREIGHT_TERMS)


c. CREATE OR REPLACE PROCEDURE xxpo_header_conv(x_errbuf  OUT VARCHAR2,
                   x_retcode OUT NUMBER)
                   IS
TYPE test_array IS TABLE OF xxpo_headers_stg%ROWTYPE  INDEX BY BINARY_INTEGER;
  v_vendor_id                          VARCHAR2(100);
  v_vendor_int_id                      VARCHAR2(100);
  v_vendors                            test_array ;
BEGIN
SELECT *  BULK COLLECT INTO v_vendors FROM  xxpo_headers_stg;
FOR i IN  1..v_vendors.COUNT
  LOOP                
    INSERT INTO po_headers_interface
    (
    interface_header_id
  ,batch_id
  ,action
    ,org_id
  ,document_type_code
  ,currency_code
  ,agent_id
  ,agent_name
  ,vendor_name
  ,vendor_site_code
  ,vendor_site_id
  ,ship_to_location
  ,bill_to_location
  ,creation_date
  ,approval_status
  ,approved_date
  ,freight_carrier
  ,fob
  ,freight_terms
)
VALUES
(
  v_vendors(i).interface_header_id--po_headers_interface_s.NEXTVAL
  ,v_vendors(i).batch_id       --po_headers_interface_s.CURRVAL
  ,v_vendors(i).action
  ,v_vendors(i).org_id                                    --"Puffer-Sweiven"
  ,v_vendors(i).document_type_code                            --done
  ,v_vendors(i).currency_code  
  ,61                                          --done
  ,v_vendors(i).agent_name                  --done
  ,v_vendors(i).vendor_name
  ,v_vendors(i).vendor_site_code
  ,1120
  ,v_vendors(i).ship_to_location
  ,v_vendors(i).bill_to_location
  ,SYSDATE-10                            --done
  ,v_vendors(i).approval_status
  ,SYSDATE                               --done
  ,v_vendors(i).freight_carrier
  ,v_vendors(i).fob
  ,v_vendors(i).freight_terms
  );
END LOOP;

COMMIT;
END;
/

3.  Distributions:

a. CREATE TABLE XXPO_DISTRIBUTION_STG
(
  INTERFACE_HEADER_ID                      NUMBER,
  INTERFACE_LINE_ID                        NUMBER,
  INTERFACE_DISTRIBUTION_ID                NUMBER,
  DISTRIBUTION_NUM                         NUMBER,
  QUANTITY_ORDERED                         NUMBER,  
  QTY_DELIVERED                            NUMBER,
  QTY_BILLED                               NUMBER,
  QTY_CANCELLED                            NUMBER,
  DELIVER_TO_LOCATION_ID                   NUMBER,
  DELIVER_TO_PERSON_ID                     NUMBER,
  SET_OF_BOOKS                             VARCHAR2(50),
  CHARGE_ACCT                              VARCHAR2(2000),
  AMOUNT_BILLED                            NUMBER
);


b. load data
infile '------------------------------------------'
truncate into table XXPO_DISTRIBUTION_STG
fields terminated by ','
optionally enclosed by '"'
trailing nullcols
(INTERFACE_HEADER_ID
,INTERFACE_LINE_ID
,INTERFACE_DISTRIBUTION_ID
  ,DISTRIBUTION_NUM                      
  ,QUANTITY_ORDERED                      
  ,QTY_DELIVERED                          
  ,QTY_BILLED                            
  ,QTY_CANCELLED                          
  ,DELIVER_TO_LOCATION_ID                
  ,DELIVER_TO_PERSON_ID                  
  ,SET_OF_BOOKS                          
  ,CHARGE_ACCT                            
  ,AMOUNT_BILLED)


c. CREATE OR REPLACE PROCEDURE xxpo_distribution_conv(x_errbuf  OUT VARCHAR2,
                   x_retcode OUT NUMBER)
                   IS
TYPE test_array IS TABLE OF xxpo_distribution_stg%ROWTYPE  INDEX BY BINARY_INTEGER;
    v_interface_header_id                     VARCHAR2(100);
    v_interface_line_id                       VARCHAR2(150);
    v_item                                    VARCHAR2(150);
    v_vendors                                 test_array ;
BEGIN
SELECT *  BULK COLLECT INTO v_vendors FROM  xxpo_distribution_stg;
FOR i IN  1..v_vendors.COUNT
  LOOP      
INSERT INTO po_distributions_interface
(
interface_header_id,
interface_line_id,
interface_distribution_id,
distribution_num,
quantity_ordered,
charge_account,
charge_account_id,
variance_account_id,
accrual_account_id,
quantity_delivered,
quantity_billed,
quantity_cancelled,
deliver_to_location_id,
deliver_to_person_id,
org_id
)
VALUES
(
v_vendors(i).interface_header_id  ,--po_headers_interface_s.currval,--v_interface_header_id,
  v_vendors(i).interface_line_id ,--po_lines_interface_s.currval,--v_interface_line_id,     --nvl(v_interface_line_id,1),
v_vendors(i).interface_distribution_id,  --distributions_interface_s.nextval,
v_vendors(i).distribution_num,
v_vendors(i).quantity_ordered,
v_vendors(i).charge_acct,
1001,
1000,
1006,
v_vendors(i).qty_delivered,
v_vendors(i).qty_billed,
v_vendors(i).qty_cancelled,
v_vendors(i).deliver_to_location_id,
v_vendors(i).deliver_to_person_id,
104
);
END LOOP;
COMMIT;
END;
/

AP Supplier Conversion using bulk collect

Hi friends this procedure is on supplier conversion using bulk collect

Create table for supplier site

create table XXAP_SUPPLIER_SITE_STAGE
(
SUPPLIER_NAME                      VARCHAR2(100)
,SUPP_SITE_CODE                    VARCHAR2(100)
,ADDRESS1                          VARCHAR2(100)
,ADDRESS2                          VARCHAR2(100)
,CITY                              VARCHAR2(50)
,COUNTRY                           VARCHAR2(50)
,CURRENCY_CODE                     VARCHAR2(50)
,PHONE_NUMBER                      VARCHAR2(50)
,FAX                               VARCHAR2(50)
,EMAIL                             VARCHAR2(50)
,VENDOR_INTERFACE_ID               NUMBER(15)
,AREA_CODE                         VARCHAR2(15)
,FIRST_NAME_ALT                    VARCHAR2(200)
,LAST_NAME_ALT                     VARCHAR2(200)
,FIRST_NAME                        VARCHAR2(20)
,LAST_NAME                         VARCHAR2(20)
);


load data
infile '------------------------------------------------------'
insert into table XXAP_SUPPLIER_SITE_STAGE
fields terminated by ','
optionally enclosed by '"'
trailing nullcols
(SUPPLIER_NAME
   ,SUPP_SITE_CODE
   ,ADDRESS1
   ,ADDRESS2
   ,CITY
   ,COUNTRY
   ,CURRENCY_CODE
   ,PHONE_NUMBER
   ,FAX
   ,EMAIL
   ,VENDOR_INTERFACE_ID
   ,AREA_CODE
   ,FIRST_NAME_ALT
   ,LAST_NAME_ALT
   ,FIRST_NAME
   ,LAST_NAME)

Create a procedure for SUPPLIER LOAD:

CREATE OR REPLACE PROCEDURE XXAP_SUPPLIER_LOAD(x_errbuf OUT VARCHAR2,
                                                    x_retcode OUT NUMBER,
                                                    p_array_size IN PLS_INTEGER DEFAULT 300)
IS
TYPE test_array IS TABLE OF xxap_supplier_site_stage%ROWTYPE  INDEX BY BINARY_INTEGER;  
      --v_vendor_interface_id                         test_array;
     -- v_supplier_name                                 test_array;
 v_vendors                              test_array ;
      v_vendor_type                     VARCHAR2(30);
      v_interface_id                         NUMBER;

  BEGIN  
 SELECT *  BULK COLLECT INTO v_vendors FROM  xxap_supplier_site_stage ORDER BY supp_site_code;
  FOR i IN  1..v_vendors.COUNT
 
  LOOP
  SELECT ap_suppliers_int_s.NEXTVAL INTO v_interface_id  FROM dual;

  INSERT INTO ap_suppliers_int (vendor_interface_id,vendor_name) VALUES (v_interface_id ,INITCAP(v_vendors(i).supplier_name));
  END LOOP;
       
  END ;
/

create a procedure for SUPPLIERS CONTACT LOAD:

CREATE OR REPLACE PROCEDURE XXAP_SUPPLIERS_CONTACT_LOAD(x_errbuf OUT VARCHAR2, x_retcode OUT NUMBER)
IS
TYPE test_array IS TABLE OF xxap_supplier_site_stage%ROWTYPE  INDEX BY BINARY_INTEGER;
  v_vendor_id                          VARCHAR2(30);
  v_vendor_int_id                      VARCHAR2(30);
   v_vendors                              test_array ;
   --v_vendor_site_id                       number;

 
BEGIN
--open c1;
SELECT *  BULK COLLECT INTO v_vendors FROM  xxap_supplier_site_stage ORDER BY supp_site_code;
FOR i IN  1..v_vendors.COUNT
 LOOP
                    BEGIN
                    SELECT vendor_site_code
                    INTO   v_vendor_int_id
                                        FROM   ap_supplier_sites_int a
                    WHERE a. vendor_site_code = v_vendors(I).supp_site_code;
                              EXCEPTION WHEN OTHERS THEN
                        NULL;
                   END;
                   --SELECT ap_sup_site_contact_int_seq.NEXTVAL INTO v_vendor_site_id  FROM dual;
  INSERT INTO ap_sup_site_contact_int
(vendor_site_code
,first_name
,last_name
,area_code
,phone
,first_name_alt
,last_name_alt
,email_address
,fax
,org_id
--,vendor_id
--creation_date
)
VALUES
(
  v_vendor_int_id
  ,v_vendors(i).first_name                    
  ,v_vendors(i).last_name                      
  ,v_vendors(i).area_code                      
  ,v_vendors(i).phone_number                        
  ,v_vendors(i).first_name_alt                  
  ,v_vendors(i).last_name_alt                  
  ,v_vendors(i).email                
  ,v_vendors(i).fax
  ,104
  --,v_vendor_id    
  --SYSDATE
  );
  END LOOP;
  END;
/

create a procedure for SUPPLIER SITE LOAD:


CREATE OR REPLACE PROCEDURE XXAP_SUPPLIER_SITE_LOAD(x_errbuf OUT VARCHAR2, x_retcode OUT NUMBER)
IS
TYPE test_array IS TABLE OF xxap_supplier_site_stage%ROWTYPE  INDEX BY BINARY_INTEGER;
  v_vendor_id                          VARCHAR2(100);
  v_vendor_int_id                      VARCHAR2(100);
  v_vendors                            test_array ;

  --vv_vendor_interface_id                number;
 -- CURSOR C1
 -- IS
 -- SELECT *
 -- FROM    xxap_supplier_site_stage
 -- order by SUPP_SITE_CODE;
BEGIN
--open c1;
SELECT *  BULK COLLECT INTO v_vendors FROM  xxap_supplier_site_stage ORDER BY supp_site_code;
FOR i IN  1..v_vendors.COUNT
 LOOP
                   BEGIN
                    SELECT   vendor_id
                    INTO     v_vendor_id
                    FROM     po_vendors
                    WHERE    UPPER(vendor_name) = UPPER(v_vendors(i).supplier_name);
                   EXCEPTION WHEN OTHERS THEN
                         NULL;
                 
                   END;
                 
                  /* BEGIN
                    SELECT vendor_interface_id
                    INTO   v_vendor_int_id
                    FROM   ap_suppliers_int
                    WHERE  UPPER(vendor_name) = UPPER(v_vendors(I).supplier_name);
                    EXCEPTION WHEN OTHERS THEN
                        NULL;
                   END;*/

--v_vendor_id(C_REC):=vv_vendor_id;
--v_VENDOR_INT_ID(C_REC):= vv_VENDOR_INT_ID;  

 --end loop;

                   --BEGIN
                  -- open C_REC;
                  -- FETCH  C_REC  BULK COLLECT INTO v_vendor_id,v_VENDOR_INT_ID;
                  -- for i in 1 .. v_VENDOR_INT_ID.count
                  -- LOOP
       -- SELECT ap_supplier_sites_int_s.NEXTVAL INTO v_vendor_int_id  FROM dual;
 
    INSERT INTO ap_supplier_sites_int
    (vendor_interface_id
    --,vendor_site_interface_id
    ,vendor_id
    ,vendor_site_code
    ,address_line1
    ,address_line2
    ,city
    ,country
    ,phone
    ,fax
    ,email_address
    ,invoice_currency_code
    ,payment_currency_code
    ,org_id
    ,pay_site_flag
    ,purchasing_site_flag
    )
    VALUES
    ( v_vendors(i).VENDOR_INTERFACE_ID                                                            
    --,ap_suppliers_int_s.nextval
    ,v_vendor_id
    ,v_vendors(i).supp_site_code
    ,v_vendors(i).address1
    ,v_vendors(i).address2
    ,v_vendors(i).city
    ,v_vendors(i).country
    ,SUBSTR(v_vendors(i).phone_number,1,15)
    ,SUBSTR(v_vendors(i).fax,1,15)
    ,v_vendors(i).email
    ,'USD'                                          --C_REC.CURRENCY_CODE
    ,'USD'                               --C_REC.CURRENCY_CODE
    ,104
    ,'Y'
    ,'Y'
    );
    END LOOP;
   -- close C1;  
  COMMIT;
  EXCEPTION
  WHEN too_many_rows THEN
      v_vendor_id :=NULL;
  WHEN no_data_found THEN
    v_vendor_id :=NULL;
   -- END LOOP;
  --  END;
END;
/

General ledger report

SELECT
GJS.JE_SOURCE_NAME     "Source",
GJC.JE_CATEGORY_NAME  "Category",
GJB.NAME              "Batch Name",
GJH.NAME          "JE Name",
GJH.DATE_CREATED  "GL Date",
--ROWNUM            "Doc Seq No",
GJB.DESCRIPTION   "Short Descr Of Acc",
GJH.DESCRIPTION   "Full Details",
GJL.ACCOUNTED_DR  "Debit",
GJL.ACCOUNTED_CR  "Credit",
GJL.CODE_COMBINATION_ID "GL Code,Description"
FROM
GL_JE_HEADERS           GJH,
GL_JE_BATCHES             GJB,
GL_JE_LINES               GJL,
GL_PERIODS                GP,
GL_CODE_COMBINATIONS_KFV  GCK,
GL_JE_SOURCES             GJS,
GL_JE_CATEGORIES         GJC,
GL_SETS_OF_BOOKS GSB
WHERE
    GJH.JE_BATCH_ID=GJB.JE_BATCH_ID
AND GJH.JE_HEADER_ID=GJL.JE_HEADER_ID
AND GJL.PERIOD_NAME=GP.PERIOD_NAME
AND GJH.SET_OF_BOOKS_ID=GSB.SET_OF_BOOKS_ID
AND GJL.CODE_COMBINATION_ID=GCK.CODE_COMBINATION_ID
AND GSB.SET_OF_BOOKS_ID=GJL.SET_OF_BOOKS_ID
AND GJS.JE_SOURCE_NAME =GJH.JE_SOURCE
AND GJC.JE_CATEGORY_NAME=GJH.JE_CATEGORY
AND GCK.CHART_OF_ACCOUNTS_ID=GSB.CHART_OF_ACCOUNTS_ID
AND GSB.SET_OF_BOOKS_ID=NVL(:P_SETOF_ID,GSB.SET_OF_BOOKS_ID)
AND GP.PERIOD_NAME=NVL(:PERIOD_NAME,GP.PERIOD_NAME)
AND GCK.CONCATENATED_SEGMENTS BETWEEN
NVL(:P_FLEXFROM,GCK.CONCATENATED_SEGMENTS) AND NVL(:P_FLEXTO,GCK.CONCATENATED_SEGMENTS)


01.000.6130.2270.000
1001-6001-2000-2110-1001-6636-21130-333001