<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: spool request in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322026#M509868</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  use without spool dypro to avoid popup&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SUBMIT YHFDBI88 TO SAP-SPOOL&lt;/P&gt;&lt;P&gt;AND RETURN&lt;/P&gt;&lt;P&gt;WITH SELECTION-TABLE SELTAB&lt;/P&gt;&lt;P&gt;IMMEDIATELY ' '&lt;/P&gt;&lt;P&gt;SAP COVER PAGE ' '&lt;/P&gt;&lt;P&gt;WITHOUT SPOOL DYNPRO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read into this to know more about submit to sap spool command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.s001.org/ABAP-Hlp/abapsubmit_to_sap_spool.htm" target="test_blank"&gt;http://www.s001.org/ABAP-Hlp/abapsubmit_to_sap_spool.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if helpful, reward&lt;/P&gt;&lt;P&gt;Sathish. R&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Jun 2007 02:35:36 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-08T02:35:36Z</dc:date>
    <item>
      <title>spool request</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322023#M509865</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi friends,&lt;/P&gt;&lt;P&gt;  is it possible to generate a spool request with out pop-up box..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;example : ihave one program which generate a spool request to another program and this program generates a spool request to another program.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;advance thanks ..... give answers for add the points&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 02:21:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322023#M509865</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T02:21:23Z</dc:date>
    </item>
    <item>
      <title>Re: spool request</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322024#M509866</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;in the structure field name will ssfcompop-tdnoprev = 'X',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am passing this one to smartofmr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 02:25:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322024#M509866</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T02:25:29Z</dc:date>
    </item>
    <item>
      <title>Re: spool request</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322025#M509867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi seshu,&lt;/P&gt;&lt;P&gt;     SUBMIT YHFDBI88 TO SAP-SPOOL&lt;/P&gt;&lt;P&gt;               AND RETURN&lt;/P&gt;&lt;P&gt;               WITH SELECTION-TABLE SELTAB&lt;/P&gt;&lt;P&gt;               IMMEDIATELY ' '&lt;/P&gt;&lt;P&gt;               SAP COVER PAGE ' '&lt;/P&gt;&lt;P&gt;this code was used for spool request.....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 02:27:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322025#M509867</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T02:27:51Z</dc:date>
    </item>
    <item>
      <title>Re: spool request</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322026#M509868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  use without spool dypro to avoid popup&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SUBMIT YHFDBI88 TO SAP-SPOOL&lt;/P&gt;&lt;P&gt;AND RETURN&lt;/P&gt;&lt;P&gt;WITH SELECTION-TABLE SELTAB&lt;/P&gt;&lt;P&gt;IMMEDIATELY ' '&lt;/P&gt;&lt;P&gt;SAP COVER PAGE ' '&lt;/P&gt;&lt;P&gt;WITHOUT SPOOL DYNPRO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read into this to know more about submit to sap spool command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.s001.org/ABAP-Hlp/abapsubmit_to_sap_spool.htm" target="test_blank"&gt;http://www.s001.org/ABAP-Hlp/abapsubmit_to_sap_spool.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if helpful, reward&lt;/P&gt;&lt;P&gt;Sathish. R&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 02:35:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322026#M509868</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T02:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: spool request</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322027#M509869</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check this program and i am using spool request without popup&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;======================================================================&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program Name : ZSD_CUSTOMER_PACKING_SLIP                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zsd_customer_packing_slip  LINE-SIZE 255&lt;/P&gt;&lt;P&gt;                                  NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                  MESSAGE-ID zwave.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP Table definitions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: vbkd,&lt;/P&gt;&lt;P&gt;        konv,&lt;/P&gt;&lt;P&gt;        stxl,&lt;/P&gt;&lt;P&gt;        tsp01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FD Table definitions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: zwvbak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data declaration                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_header OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE zsdinvhead.&lt;/P&gt;&lt;P&gt;DATA: END OF t_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_tline OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tline.&lt;/P&gt;&lt;P&gt;DATA: END OF t_tline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_partner OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbak-vbeln,&lt;/P&gt;&lt;P&gt;        parvw LIKE vbpa-parvw,&lt;/P&gt;&lt;P&gt;        kunnr LIKE vbpa-kunnr,&lt;/P&gt;&lt;P&gt;        adrnr LIKE vbpa-adrnr,&lt;/P&gt;&lt;P&gt;      END OF t_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_price OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbak-vbeln,&lt;/P&gt;&lt;P&gt;        seq(2) TYPE n,&lt;/P&gt;&lt;P&gt;        condition(132),&lt;/P&gt;&lt;P&gt;        price LIKE konv-kwert,&lt;/P&gt;&lt;P&gt;      END OF t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_vbfa OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbelv LIKE vbfa-vbelv,&lt;/P&gt;&lt;P&gt;        posnv LIKE vbfa-posnv,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbfa-vbeln,&lt;/P&gt;&lt;P&gt;        posnn LIKE vbfa-posnn,&lt;/P&gt;&lt;P&gt;        vbtyp_n LIKE vbfa-vbtyp_n,&lt;/P&gt;&lt;P&gt;      END OF t_vbfa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_docflow OCCURS 0,&lt;/P&gt;&lt;P&gt;        ovbeln LIKE vbap-vbeln,&lt;/P&gt;&lt;P&gt;        oposnr LIKE vbap-posnr,&lt;/P&gt;&lt;P&gt;        dvbeln LIKE lips-vbeln,&lt;/P&gt;&lt;P&gt;        dposnr LIKE lips-posnr,&lt;/P&gt;&lt;P&gt;        ivbeln LIKE vbrp-vbeln,&lt;/P&gt;&lt;P&gt;        iposnr LIKE vbrp-posnr,&lt;/P&gt;&lt;P&gt;      END OF t_docflow.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_inv OCCURS 0,&lt;/P&gt;&lt;P&gt;        zztrkno        LIKE t_header-zztrkno,&lt;/P&gt;&lt;P&gt;        zzstopseq(5)   TYPE n," like t_header-zzstopseq,&lt;/P&gt;&lt;P&gt;        zlast_name(40) TYPE c,&lt;/P&gt;&lt;P&gt;        vbelv          LIKE vbfa-vbelv,&lt;/P&gt;&lt;P&gt;        short_ship     TYPE c,&lt;/P&gt;&lt;P&gt;      END OF t_inv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_inv1 OCCURS 0,&lt;/P&gt;&lt;P&gt;        zztrkno   LIKE t_header-zztrkno,&lt;/P&gt;&lt;P&gt;        zzmodel   LIKE zwvbak-zzmodel,&lt;/P&gt;&lt;P&gt;      END OF t_inv1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_credit OCCURS 0,&lt;/P&gt;&lt;P&gt;        zzdesc           LIKE zcustomercredits-zzdesc,&lt;/P&gt;&lt;P&gt;        vbeln            LIKE zcustomercredits-vbeln,&lt;/P&gt;&lt;P&gt;        zzseq            LIKE zcustomercredits-zzseq,&lt;/P&gt;&lt;P&gt;        vbeln_vf         LIKE zcustomercredits-vbeln_vf,&lt;/P&gt;&lt;P&gt;*--Changes by ponnu - FD Make Good order - packing Slip Bug&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      zzplan_alloc_amt LIKE zcustomercredits-zzplan_alloc_amt,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        zzact_alloc_amt LIKE zcustomercredits-zzact_alloc_amt,&lt;/P&gt;&lt;P&gt;      END OF t_credit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_vbap OCCURS 0,&lt;/P&gt;&lt;P&gt;        kdmat  LIKE vbap-kdmat,&lt;/P&gt;&lt;P&gt;        vbeln  LIKE vbap-vbeln,&lt;/P&gt;&lt;P&gt;        posnr  LIKE vbap-posnr,&lt;/P&gt;&lt;P&gt;        kwmeng LIKE vbap-kwmeng,&lt;/P&gt;&lt;P&gt;        vrkme  LIKE vbap-vrkme,&lt;/P&gt;&lt;P&gt;        matnr  LIKE vbap-matnr,&lt;/P&gt;&lt;P&gt;        netwr  LIKE vbap-netwr,&lt;/P&gt;&lt;P&gt;        pstyv  LIKE vbap-pstyv,&lt;/P&gt;&lt;P&gt;        arktx  LIKE vbap-arktx,&lt;/P&gt;&lt;P&gt;END OF t_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- internal tables used for credit card data extraction&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_vbak OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln   LIKE vbak-vbeln,&lt;/P&gt;&lt;P&gt;        bname   LIKE vbak-bname,         " Name on Credit Card&lt;/P&gt;&lt;P&gt;        mahdt   LIKE vbak-mahdt,         " Credit Card Exp. Date&lt;/P&gt;&lt;P&gt;        bstzd   LIKE vbak-bstzd,         " Credit Card Type&lt;/P&gt;&lt;P&gt;        knumv   LIKE vbak-knumv.         " Condition&lt;/P&gt;&lt;P&gt;DATA: END OF t_vbak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_vbkd OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbkd-vbeln,&lt;/P&gt;&lt;P&gt;        bstkd_e LIKE vbkd-bstkd_e.       " Credit Card Number&lt;/P&gt;&lt;P&gt;DATA: END OF t_vbkd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_box OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln      LIKE zsdcarton_item-vbeln,&lt;/P&gt;&lt;P&gt;        posnr      LIKE zsdcarton_item-posnr,&lt;/P&gt;&lt;P&gt;        zzvbeln_vl LIKE zsdcarton_item-zzvbeln_vl,&lt;/P&gt;&lt;P&gt;        zzposnr_vl LIKE zsdcarton_item-zzposnr_vl,&lt;/P&gt;&lt;P&gt;        zzcarton   LIKE zsdcarton_item-zzcarton,&lt;/P&gt;&lt;P&gt;        zzserial   LIKE zsdcarton_item-zzserial,&lt;/P&gt;&lt;P&gt;        zzexpqty   LIKE zsdcarton_item-zzexpqty,&lt;/P&gt;&lt;P&gt;        zzpckqty   LIKE zsdcarton_item-zzpckqty,&lt;/P&gt;&lt;P&gt;        zzuom      LIKE zsdcarton_item-zzuom,&lt;/P&gt;&lt;P&gt;        ntgew      LIKE zsdcarton_item-ntgew,&lt;/P&gt;&lt;P&gt;        gewei      LIKE zsdcarton_item-gewei,&lt;/P&gt;&lt;P&gt;      END OF t_box.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_zrfltap OCCURS 0,&lt;/P&gt;&lt;P&gt;        zzvbeln_va LIKE zrfltap-zzvbeln_va,&lt;/P&gt;&lt;P&gt;        zzvbeln_vl LIKE zrfltap-zzvbeln_vl,&lt;/P&gt;&lt;P&gt;      END OF t_zrfltap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_wave OCCURS 0,&lt;/P&gt;&lt;P&gt;        zzswaveno LIKE zwvbak-zzswaveno,&lt;/P&gt;&lt;P&gt;        zztrkno   LIKE zwvbak-zztrkno,&lt;/P&gt;&lt;P&gt;      END OF t_wave.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_item      LIKE zsdinvtab OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_beer_item LIKE zsdinvtab OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: t_wine_item LIKE zsdinvtab OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_adrc       LIKE adrc        OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_mara       LIKE mara        OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_konv       LIKE konv        OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_lips       LIKE lips        OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_ztruck     LIKE ztruck      OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_lips_tmp   LIKE t_lips      OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_vbap_dup LIKE t_vbap      OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_zwcspacks  LIKE zwcspacks   OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_zmarketing LIKE zmarketing  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      t_status     LIKE zfdswstatus OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: d_old_value LIKE plfh-mgvgw,&lt;/P&gt;&lt;P&gt;      d_new_value LIKE plfh-mgvgw,&lt;/P&gt;&lt;P&gt;      d_price     LIKE konv-kwert,&lt;/P&gt;&lt;P&gt;      d_name      LIKE thead-tdname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: d_lines      TYPE i,&lt;/P&gt;&lt;P&gt;      d_num_inv(5) TYPE c,&lt;/P&gt;&lt;P&gt;      d_unit(2)    TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: d_email_subject(100) TYPE c,&lt;/P&gt;&lt;P&gt;      d_char_text(20)      TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: d_del_charge,&lt;/P&gt;&lt;P&gt;      d_tax_del,&lt;/P&gt;&lt;P&gt;      d_initial,&lt;/P&gt;&lt;P&gt;      d_beer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS: c_usd LIKE bsid-waers VALUE 'USD'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ranges&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;RANGES: r_text FOR soli-line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b00 WITH FRAME TITLE text-b00.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-b01.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_werks LIKE zwvbak-werks DEFAULT '1000'   OBLIGATORY,&lt;/P&gt;&lt;P&gt;            p_vdatu LIKE zwvbak-vdatu OBLIGATORY DEFAULT sy-datum,&lt;/P&gt;&lt;P&gt;            p_form(30) DEFAULT 'ZSD_CUSTOMER_PACKING_SLIP'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b02 WITH FRAME TITLE text-b02.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_wave  FOR zwvbak-zzswaveno,&lt;/P&gt;&lt;P&gt;                s_trkno FOR zwvbak-zztrkno OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b02.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b03 WITH FRAME TITLE text-b03.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_vbeln FOR  zwvbak-vbeln.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_bstnk FOR  zwvbak-bstnk.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_dlvry FOR  zwvbak-vbeln.&lt;/P&gt;&lt;P&gt;PARAMETERS    : p_toler LIKE lips-lfimg DEFAULT '0.01'&lt;/P&gt;&lt;P&gt;                                     VISIBLE LENGTH 5 NO-DISPLAY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b09 WITH FRAME TITLE text-b09.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_sship AS CHECKBOX.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(40) text-006.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b09.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b10 WITH FRAME TITLE text-b10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_stop  AS CHECKBOX DEFAULT ' '.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 3(40) text-008.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b08 WITH FRAME TITLE text-b08.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b05 WITH FRAME TITLE text-b05.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_stdmdl AS CHECKBOX DEFAULT 'X'  .&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 3(40) text-010.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_md1 RADIOBUTTON GROUP g1 DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 46(40) text-011.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_md2 RADIOBUTTON GROUP g1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 46(40) text-012.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b05.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b06 WITH FRAME TITLE text-b06.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_depot AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 3(40) text-013.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;*parameters: p_md3 radiobutton group g2.&lt;/P&gt;&lt;P&gt;*selection-screen: comment 46(40) text-011.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;*arameters: p_md4 radiobutton group g2  default 'X'  .&lt;/P&gt;&lt;P&gt;*selection-screen: comment 46(40) text-012.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b06.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b07 WITH FRAME TITLE text-b07.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_othmod AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 3(40) text-014.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_md5 RADIOBUTTON GROUP g3.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 46(40) text-011.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_md6 RADIOBUTTON GROUP g3  DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 46(40) text-012.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b07.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b11 WITH FRAME TITLE text-b07.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_cos AS CHECKBOX DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 3(40) text-015.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_md7 RADIOBUTTON GROUP g4.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 46(40) text-011.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN POSITION 43.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_md8 RADIOBUTTON GROUP g4  DEFAULT 'X'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: COMMENT 46(40) text-012.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b08.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b04 WITH FRAME TITLE text-b04.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_dest LIKE ssfcompop-tddest OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b04.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_obj FOR stxl-tdname NO-DISPLAY,&lt;/P&gt;&lt;P&gt;                s_dis FOR konv-kschl  NO-DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INITIALIZATION                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE spld INTO p_dest&lt;/P&gt;&lt;P&gt;                     FROM usr01&lt;/P&gt;&lt;P&gt;                     WHERE bname EQ sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-batch EQ space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User "SHIPPING" cannot run this program in foreground&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF sy-ucomm = 'ONLI' AND&lt;/P&gt;&lt;P&gt;       sy-uname = 'SHIPPING'.&lt;/P&gt;&lt;P&gt;      MESSAGE e000(zwave) WITH&lt;/P&gt;&lt;P&gt;        'Program can O N L Y be run in Background mode!'.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Main Program                                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Extract data from tables.&lt;/P&gt;&lt;P&gt;  PERFORM extract_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_inv LINES sy-tfill.&lt;/P&gt;&lt;P&gt;  IF sy-tfill LE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(zwave) WITH 'Error --&amp;gt; No Orders Found!!!'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Validate Deliveries..check if delivery quantity matches with&lt;/P&gt;&lt;P&gt;*--- carton item table&lt;/P&gt;&lt;P&gt;  PERFORM validate_deliveries.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT r_text[] IS INITIAL AND&lt;/P&gt;&lt;P&gt;         p_stop = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT r_text.&lt;/P&gt;&lt;P&gt;      WRITE:/ r_text-low.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    PERFORM send_email.&lt;/P&gt;&lt;P&gt;    PERFORM udate_truck_table.&lt;/P&gt;&lt;P&gt;    REFRESH r_text.&lt;/P&gt;&lt;P&gt;    CLEAR   r_text.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   stop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Process Internal Tables.&lt;/P&gt;&lt;P&gt;  PERFORM process_itabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Check for invoices with -ve value&lt;/P&gt;&lt;P&gt;  PERFORM check_negatives.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT r_text[] IS INITIAL AND&lt;/P&gt;&lt;P&gt;     p_stop = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT r_text.&lt;/P&gt;&lt;P&gt;      WRITE:/ r_text-low.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    PERFORM send_email.&lt;/P&gt;&lt;P&gt;    PERFORM udate_truck_table.&lt;/P&gt;&lt;P&gt;    REFRESH r_text.&lt;/P&gt;&lt;P&gt;    CLEAR   r_text.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   stop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Generate Invoices.&lt;/P&gt;&lt;P&gt;  PERFORM generate_invoice.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_inv LINES d_num_inv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/  d_num_inv,&lt;/P&gt;&lt;P&gt;          ' Invoice(s) Printed...'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM udate_truck_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM send_email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of selection                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                S  U  B  R  O  U  T  I  N  E  S                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  extract_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM extract_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: t_konv_tmp LIKE konv OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  : t_wave, t_status, t_vbap_dup, t_lips_tmp.&lt;/P&gt;&lt;P&gt;  REFRESH: t_wave, t_status, t_vbap_dup, t_lips_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start insert &amp;gt;&amp;gt;  RajS-02/17/2006&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pack complete validation must be done here at truck/wave level. This&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is done to make to make sure trasportation department do not print&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;invoices before packing is complete for the truck/wave&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Today, invoices for a truck - 3130 - were printed before carton item&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table was populated&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF s_wave[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT DISTINCT zzswaveno zztrkno&lt;/P&gt;&lt;P&gt;                    INTO CORRESPONDING FIELDS OF TABLE t_wave&lt;/P&gt;&lt;P&gt;                    FROM zwvbak&lt;/P&gt;&lt;P&gt;                    WHERE werks   =  p_werks AND&lt;/P&gt;&lt;P&gt;                          vdatu   =  p_vdatu AND&lt;/P&gt;&lt;P&gt;                          zztrkno IN s_trkno.&lt;/P&gt;&lt;P&gt;    SORT t_wave.&lt;/P&gt;&lt;P&gt;    LOOP AT t_wave.&lt;/P&gt;&lt;P&gt;      s_wave-sign   = 'I'.&lt;/P&gt;&lt;P&gt;      s_wave-option = 'EQ'.&lt;/P&gt;&lt;P&gt;      s_wave-low    = t_wave-zzswaveno.&lt;/P&gt;&lt;P&gt;      APPEND s_wave.&lt;/P&gt;&lt;P&gt;      CLEAR  s_wave-low.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT * FROM zfdswstatus&lt;/P&gt;&lt;P&gt;           INTO TABLE t_status&lt;/P&gt;&lt;P&gt;           WHERE werks     =  p_werks  AND&lt;/P&gt;&lt;P&gt;                 vdatu     =  p_vdatu  AND&lt;/P&gt;&lt;P&gt;                 zzswaveno IN s_wave.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_status WHERE pack_complete &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;    READ TABLE t_wave WITH KEY zzswaveno = t_status-zzswaveno.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SHIFT t_wave-zztrkno LEFT DELETING LEADING '0'.&lt;/P&gt;&lt;P&gt;      MESSAGE e000 WITH 'Packing NOT complete for Truck'&lt;/P&gt;&lt;P&gt;                        t_wave-zztrkno.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SHIFT t_status-zzswaveno LEFT DELETING LEADING '0'.&lt;/P&gt;&lt;P&gt;      MESSAGE e000 WITH 'Packing NOT complete for Wave'&lt;/P&gt;&lt;P&gt;                        t_status-zzswaveno.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End insert &amp;gt;&amp;gt;  RajS-02/17/2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get orders for the given selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT vbeln bstnk vdatu zzdstime zzdetime zztrkno zzstopseq zzmodel&lt;/P&gt;&lt;P&gt;         INTO CORRESPONDING FIELDS OF TABLE t_header&lt;/P&gt;&lt;P&gt;         FROM zwvbak WHERE werks     EQ p_werks AND&lt;/P&gt;&lt;P&gt;                           vdatu     EQ p_vdatu AND&lt;/P&gt;&lt;P&gt;                           vbeln     IN s_vbeln AND&lt;/P&gt;&lt;P&gt;                           zzswaveno IN s_wave  AND&lt;/P&gt;&lt;P&gt;                           zztrkno   IN s_trkno AND&lt;/P&gt;&lt;P&gt;                           bstnk     IN s_bstnk&lt;/P&gt;&lt;P&gt;  ORDER BY VBELN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(zwave) WITH 'No Orders in Wave Tables for Selection!'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;filter the delivery models as per selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_cos NE 'X'.&lt;/P&gt;&lt;P&gt;    DELETE t_header WHERE zzmodel = '004'.&lt;/P&gt;&lt;P&gt;  ELSEIF p_stdmdl NE 'X'.&lt;/P&gt;&lt;P&gt;    DELETE t_header WHERE zzmodel = '003'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_depot NE 'X'.&lt;/P&gt;&lt;P&gt;    DELETE t_header WHERE zzmodel = '002'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_othmod NE 'X'.&lt;/P&gt;&lt;P&gt;    DELETE t_header WHERE zzmodel = '001'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT s_dlvry IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT DISTINCT zzvbeln_va zzvbeln_vl INTO TABLE t_zrfltap&lt;/P&gt;&lt;P&gt;           FROM zrfltap&lt;/P&gt;&lt;P&gt;           WHERE werks      EQ p_werks AND&lt;/P&gt;&lt;P&gt;                 vdatu      EQ p_vdatu AND&lt;/P&gt;&lt;P&gt;                 zzswaveno  IN s_wave   AND&lt;/P&gt;&lt;P&gt;                 zztrkno    IN s_trkno   AND&lt;/P&gt;&lt;P&gt;                 zzvbeln_vl IN s_dlvry AND&lt;/P&gt;&lt;P&gt;                 zzvbeln_va IN s_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    REFRESH s_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_zrfltap.&lt;/P&gt;&lt;P&gt;      s_vbeln-sign   = 'I'.&lt;/P&gt;&lt;P&gt;      s_vbeln-option = 'EQ'.&lt;/P&gt;&lt;P&gt;      s_vbeln-low    = t_zrfltap-zzvbeln_va.&lt;/P&gt;&lt;P&gt;      APPEND s_vbeln.&lt;/P&gt;&lt;P&gt;      CLEAR s_vbeln.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT s_vbeln.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM s_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH t_header.&lt;/P&gt;&lt;P&gt;    SELECT vbeln bstnk vdatu zzdstime zzdetime zztrkno zzstopseq&lt;/P&gt;&lt;P&gt;           INTO TABLE t_header&lt;/P&gt;&lt;P&gt;           FROM zwvbak WHERE vbeln     IN s_vbeln AND&lt;/P&gt;&lt;P&gt;                             zzswaveno IN s_wave   AND&lt;/P&gt;&lt;P&gt;                             zztrkno   IN s_trkno   AND&lt;/P&gt;&lt;P&gt;                             vdatu     EQ p_vdatu AND&lt;/P&gt;&lt;P&gt;                             werks     EQ p_werks AND&lt;/P&gt;&lt;P&gt;                             bstnk     IN s_bstnk&lt;/P&gt;&lt;P&gt;           ORDER BY VBELN.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF s_trkno IS INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT t_header.&lt;/P&gt;&lt;P&gt;      READ TABLE s_trkno WITH KEY low = t_header-zztrkno.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        s_trkno-sign = 'I'.&lt;/P&gt;&lt;P&gt;        s_trkno-option = 'EQ'.&lt;/P&gt;&lt;P&gt;        s_trkno-low = t_header-zztrkno.&lt;/P&gt;&lt;P&gt;        APPEND s_trkno.&lt;/P&gt;&lt;P&gt;        CLEAR  s_trkno.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Credit Card Information (Not stored in SAP standard fields)&lt;/P&gt;&lt;P&gt;  REFRESH: t_vbak, t_vbkd.&lt;/P&gt;&lt;P&gt;  SELECT vbeln bname mahdt bstzd knumv&lt;/P&gt;&lt;P&gt;         INTO TABLE t_vbak&lt;/P&gt;&lt;P&gt;         FROM vbak FOR ALL ENTRIES IN t_header&lt;/P&gt;&lt;P&gt;         WHERE vbeln = t_header-vbeln.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  SELECT vbeln bstkd_e INTO TABLE t_vbkd&lt;/P&gt;&lt;P&gt;                       FROM vbkd FOR ALL ENTRIES IN t_header&lt;/P&gt;&lt;P&gt;                       WHERE vbeln = t_header-vbeln&lt;/P&gt;&lt;P&gt;                       AND   posnr = '0000'.&lt;/P&gt;&lt;P&gt;  SORT: t_vbak, t_vbkd.&lt;/P&gt;&lt;P&gt;  LOOP AT t_header.&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbak WITH KEY vbeln = t_header-vbeln.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      t_header-zccard_name     = t_vbak-bname.&lt;/P&gt;&lt;P&gt;      t_header-zccard_type     = t_vbak-bstzd.&lt;/P&gt;&lt;P&gt;      t_header-zccard_exp_date = t_vbak-mahdt.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbkd WITH KEY vbeln = t_header-vbeln.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      t_header-zccard_num      = t_vbkd-bstkd_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get truckno &amp;amp; stop seq # from zwvbak&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT SINGLE * FROM zwvbak&lt;/P&gt;&lt;P&gt;                    WHERE vbeln = t_header-vbeln.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      t_header-zztrkno = zwvbak-zztrkno.&lt;/P&gt;&lt;P&gt;      t_header-zzstopseq = zwvbak-zzstopseq.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MODIFY t_header.&lt;/P&gt;&lt;P&gt;    CLEAR t_header.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Sales Order Line Items.&lt;/P&gt;&lt;P&gt;  SELECT  kdmat vbeln posnr kwmeng vrkme matnr netwr pstyv arktx&lt;/P&gt;&lt;P&gt;          INTO TABLE t_vbap&lt;/P&gt;&lt;P&gt;          FROM vbap&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN t_header&lt;/P&gt;&lt;P&gt;          WHERE vbeln EQ t_header-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_vbap_dup[] = t_vbap[].&lt;/P&gt;&lt;P&gt;  SORT : t_vbap,&lt;/P&gt;&lt;P&gt;         t_vbap_dup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Carton Details.&lt;/P&gt;&lt;P&gt;  SELECT DISTINCT vbeln posnr zzvbeln_vl zzposnr_vl zzcarton zzserial&lt;/P&gt;&lt;P&gt;         zzexpqty zzpckqty zzuom ntgew gewei&lt;/P&gt;&lt;P&gt;        INTO TABLE t_box&lt;/P&gt;&lt;P&gt;        FROM zsdcarton_item FOR ALL ENTRIES IN t_header&lt;/P&gt;&lt;P&gt;        WHERE   werks     EQ p_werks          AND&lt;/P&gt;&lt;P&gt;                vdatu     EQ p_vdatu          AND&lt;/P&gt;&lt;P&gt;                zztrkno   EQ t_header-zztrkno AND&lt;/P&gt;&lt;P&gt;                vbeln     EQ t_header-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT: t_box.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Document Flow&lt;/P&gt;&lt;P&gt;  SELECT vbelv posnv vbeln posnn vbtyp_n INTO TABLE t_vbfa&lt;/P&gt;&lt;P&gt;         FROM vbfa&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN t_header&lt;/P&gt;&lt;P&gt;         WHERE vbelv EQ t_header-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- List of Orders.&lt;/P&gt;&lt;P&gt;  LOOP AT t_header.&lt;/P&gt;&lt;P&gt;    t_inv-zztrkno   = t_header-zztrkno.&lt;/P&gt;&lt;P&gt;    t_inv-zzstopseq = t_header-zzstopseq.&lt;/P&gt;&lt;P&gt;    t_inv-vbelv     = t_header-vbeln.&lt;/P&gt;&lt;P&gt;    APPEND t_inv.&lt;/P&gt;&lt;P&gt;    CLEAR t_inv.&lt;/P&gt;&lt;P&gt;    READ TABLE t_inv1 WITH KEY zztrkno = t_header-zztrkno.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      t_inv1-zztrkno   = t_header-zztrkno.&lt;/P&gt;&lt;P&gt;      t_inv1-zzmodel   = t_header-zzmodel.&lt;/P&gt;&lt;P&gt;      APPEND t_inv1.&lt;/P&gt;&lt;P&gt;      CLEAR  t_inv1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR d_lines.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_inv LINES d_lines.&lt;/P&gt;&lt;P&gt;  IF d_lines LE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(zwave) WITH 'Error --&amp;gt; No Invoices Found!!!'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Build Document Flow Table.&lt;/P&gt;&lt;P&gt;  CLEAR: t_docflow.&lt;/P&gt;&lt;P&gt;  REFRESH: t_docflow.&lt;/P&gt;&lt;P&gt;  SORT t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap.&lt;/P&gt;&lt;P&gt;    CLEAR t_docflow.&lt;/P&gt;&lt;P&gt;    t_docflow-ovbeln = t_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    t_docflow-oposnr = t_vbap-posnr.&lt;/P&gt;&lt;P&gt;*--- Delivery&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbfa WITH KEY vbelv = t_vbap-vbeln&lt;/P&gt;&lt;P&gt;                               posnv = t_vbap-posnr&lt;/P&gt;&lt;P&gt;                               vbtyp_n = 'J'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      t_docflow-dvbeln = t_vbfa-vbeln.&lt;/P&gt;&lt;P&gt;      t_docflow-dposnr = t_vbfa-posnn.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND t_docflow.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Partner Functions.... from sales order&lt;/P&gt;&lt;P&gt;  SELECT vbeln parvw kunnr adrnr&lt;/P&gt;&lt;P&gt;         INTO TABLE t_partner&lt;/P&gt;&lt;P&gt;         FROM vbpa&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN t_inv&lt;/P&gt;&lt;P&gt;         WHERE vbeln EQ t_inv-vbelv AND&lt;/P&gt;&lt;P&gt;               posnr EQ '000000'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    SELECT * FROM adrc INTO TABLE t_adrc&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN t_partner&lt;/P&gt;&lt;P&gt;             WHERE addrnumber = t_partner-adrnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_inv.&lt;/P&gt;&lt;P&gt;      READ TABLE t_partner WITH KEY vbeln = t_inv-vbelv&lt;/P&gt;&lt;P&gt;                                    parvw = 'WE'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        READ TABLE t_adrc WITH KEY addrnumber = t_partner-adrnr.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          t_inv-zlast_name = t_adrc-name1.&lt;/P&gt;&lt;P&gt;          REPLACE '' WITH '@@' INTO t_inv-zlast_name.&lt;/P&gt;&lt;P&gt;          SEARCH t_inv-zlast_name FOR '@@'.&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            ADD 2 TO sy-fdpos.&lt;/P&gt;&lt;P&gt;            t_inv-zlast_name = t_inv-zlast_name+sy-fdpos.&lt;/P&gt;&lt;P&gt;            CONDENSE t_inv-zlast_name.&lt;/P&gt;&lt;P&gt;            TRANSLATE t_inv-zlast_name(1) TO UPPER CASE.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          MODIFY t_inv.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Condition records.&lt;/P&gt;&lt;P&gt;  SELECT * INTO TABLE t_konv&lt;/P&gt;&lt;P&gt;           FROM konv&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN t_vbak&lt;/P&gt;&lt;P&gt;           WHERE knumv EQ t_vbak-knumv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- get the web overwritten PR00 price from conditions table.&lt;/P&gt;&lt;P&gt;  LOOP AT t_konv.&lt;/P&gt;&lt;P&gt;    IF t_konv-kschl = 'PR00'.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING t_konv TO t_konv_tmp.&lt;/P&gt;&lt;P&gt;      APPEND t_konv_tmp.&lt;/P&gt;&lt;P&gt;      CLEAR  t_konv_tmp.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    AT END OF kposn.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE t_konv_tmp LINES sy-tfill.&lt;/P&gt;&lt;P&gt;      IF sy-tfill GT 1.&lt;/P&gt;&lt;P&gt;        SORT t_konv_tmp BY zaehk DESCENDING.&lt;/P&gt;&lt;P&gt;        LOOP AT t_konv_tmp.&lt;/P&gt;&lt;P&gt;          IF sy-tabix NE 1.&lt;/P&gt;&lt;P&gt;            READ TABLE t_konv WITH KEY knumv = t_konv_tmp-knumv&lt;/P&gt;&lt;P&gt;                                       kposn = t_konv_tmp-kposn&lt;/P&gt;&lt;P&gt;                                       stunr = t_konv_tmp-stunr&lt;/P&gt;&lt;P&gt;                                       zaehk = t_konv_tmp-zaehk.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              DELETE t_konv INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      REFRESH t_konv_tmp.&lt;/P&gt;&lt;P&gt;      CLEAR   t_konv_tmp.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Customer Credits.&lt;/P&gt;&lt;P&gt;  SELECT * APPENDING CORRESPONDING FIELDS OF TABLE t_credit&lt;/P&gt;&lt;P&gt;           FROM zcustomercredits&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN t_header&lt;/P&gt;&lt;P&gt;           WHERE vbeln EQ t_header-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Delivery Line Item information.&lt;/P&gt;&lt;P&gt;  SELECT * FROM lips&lt;/P&gt;&lt;P&gt;           INTO TABLE t_lips&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN t_docflow&lt;/P&gt;&lt;P&gt;           WHERE vbeln EQ t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;           AND   posnr EQ t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_lips_tmp[] = t_lips[].&lt;/P&gt;&lt;P&gt;  SORT t_lips_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get pack messages received from WCS.&lt;/P&gt;&lt;P&gt;  SELECT * FROM zwcspacks&lt;/P&gt;&lt;P&gt;           INTO TABLE t_zwcspacks&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN t_docflow&lt;/P&gt;&lt;P&gt;           WHERE dorder EQ t_docflow-dvbeln AND&lt;/P&gt;&lt;P&gt;                 dline  EQ t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Fetch Active Marketing materials.&lt;/P&gt;&lt;P&gt;  SELECT * FROM zmarketing&lt;/P&gt;&lt;P&gt;           INTO TABLE t_zmarketing&lt;/P&gt;&lt;P&gt;           WHERE werks    = p_werks&lt;/P&gt;&lt;P&gt;           AND  zzactive  = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT t_vbap BY matnr.&lt;/P&gt;&lt;P&gt;  SELECT * FROM mara&lt;/P&gt;&lt;P&gt;           APPENDING TABLE t_mara&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN t_vbap&lt;/P&gt;&lt;P&gt;           WHERE    matnr = t_vbap-matnr&lt;/P&gt;&lt;P&gt;           AND    ( matkl LIKE 'A%'&lt;/P&gt;&lt;P&gt;           OR       matkl LIKE 'B%'&lt;/P&gt;&lt;P&gt;           OR       matkl LIKE 'W%' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " extract_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_items&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_INV_VBELN  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_items USING    p_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: tmp_vbap LIKE t_vbap OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tmp_thickness LIKE t006a-mseht.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF tmp_vbkd OCCURS 0,&lt;/P&gt;&lt;P&gt;          vbeln LIKE vbkd-vbeln,&lt;/P&gt;&lt;P&gt;          posnr LIKE vbkd-posnr,&lt;/P&gt;&lt;P&gt;        END OF tmp_vbkd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: w_ord_ratio TYPE p DECIMALS 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: wa_mtart LIKE mara-mtart.&lt;/P&gt;&lt;P&gt;  DATA: wa_matnr LIKE mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  : tmp_vbap, tmp_vbkd, t_inv-short_ship.&lt;/P&gt;&lt;P&gt;  REFRESH: tmp_vbap, tmp_vbkd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    tmp_vbap = t_vbap.&lt;/P&gt;&lt;P&gt;    APPEND tmp_vbap.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT : tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT tmp_vbap.&lt;/P&gt;&lt;P&gt;    CLEAR  : tmp_vbkd,&lt;/P&gt;&lt;P&gt;             t_vbap_dup,&lt;/P&gt;&lt;P&gt;             t_lips_tmp,&lt;/P&gt;&lt;P&gt;             vbkd,&lt;/P&gt;&lt;P&gt;             w_ord_ratio.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH: tmp_vbkd.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get ship-to-party PO item number for the material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT SINGLE posex_e INTO vbkd-posex_e&lt;/P&gt;&lt;P&gt;                          FROM vbkd&lt;/P&gt;&lt;P&gt;                          WHERE vbeln = tmp_vbap-vbeln AND&lt;/P&gt;&lt;P&gt;                                posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ignore header discount/delivery charges as they will be shown&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;at the header level with subtotals.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF tmp_vbap-matnr = '000000000000009999' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000008888' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000008889' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000001111' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000002222' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000003333' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000004444' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000005555' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-pstyv = 'ZPP1'               OR  "Ignore PP sub-items&lt;/P&gt;&lt;P&gt;       ( tmp_vbap-pstyv &amp;lt;&amp;gt; 'Z000' AND NOT vbkd-posex_e IS INITIAL ).&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_vbap = tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbak WITH KEY vbeln = tmp_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ignore marketing materials.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_zmarketing WITH KEY matnr = tmp_vbap-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- ignore Beer items&lt;/P&gt;&lt;P&gt;    CLEAR: t_mara.&lt;/P&gt;&lt;P&gt;    READ TABLE t_mara WITH KEY matnr = tmp_vbap-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0. CONTINUE. ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR t_item.&lt;/P&gt;&lt;P&gt;    t_item-kdmat = tmp_vbap-kdmat.&lt;/P&gt;&lt;P&gt;    t_item-vbeln = tmp_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    t_item-posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;P&gt;    t_item-o_qty = tmp_vbap-kwmeng.&lt;/P&gt;&lt;P&gt;    t_item-o_uom = tmp_vbap-vrkme.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Material Desc.&lt;/P&gt;&lt;P&gt;    CLEAR: t_item-material, d_name.&lt;/P&gt;&lt;P&gt;    CONCATENATE tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;            INTO d_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Get Web SKU Description from the Sales Order.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_descripion USING 'ZL01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;      IF t_item-material EQ space.&lt;/P&gt;&lt;P&gt;        MOVE t_tline-tdline TO t_item-material.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE t_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;            INTO t_item-material SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE maktx INTO t_item-material FROM makt&lt;/P&gt;&lt;P&gt;      WHERE matnr EQ tmp_vbap-matnr AND&lt;/P&gt;&lt;P&gt;            spras EQ 'E'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SEARCH t_item-material FOR '|'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        t_item-material = t_item-material+0(sy-fdpos).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Options&lt;/P&gt;&lt;P&gt;    PERFORM get_descripion USING 'ZL02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR tmp_thickness.&lt;/P&gt;&lt;P&gt;      IF t_item-o_uom NE 'EA'.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mseht INTO tmp_thickness FROM t006a&lt;/P&gt;&lt;P&gt;            WHERE spras = 'E' AND&lt;/P&gt;&lt;P&gt;                  msehi = t_item-o_uom.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF tmp_thickness IS INITIAL.&lt;/P&gt;&lt;P&gt;        LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;          IF NOT t_tline-tdline IS INITIAL.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material ' (' t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            AT LAST.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material ')'&lt;/P&gt;&lt;P&gt;                  INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ENDAT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;          IF NOT t_tline-tdline IS INITIAL.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material ' (' tmp_thickness ', '&lt;/P&gt;&lt;P&gt;                 t_tline-tdline INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material ' (' tmp_thickness&lt;/P&gt;&lt;P&gt;                 t_tline-tdline INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          AT LAST.&lt;/P&gt;&lt;P&gt;            CONCATENATE t_item-material ')'&lt;/P&gt;&lt;P&gt;                INTO t_item-material.&lt;/P&gt;&lt;P&gt;          ENDAT.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Final Weight.&lt;/P&gt;&lt;P&gt;    CLEAR: t_docflow,  t_lips.&lt;/P&gt;&lt;P&gt;    READ TABLE t_docflow WITH KEY ovbeln = t_item-vbeln&lt;/P&gt;&lt;P&gt;                                  oposnr = t_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      READ TABLE t_lips WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                                 posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*--- Determine if Base Unit is MASS...&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'Z_FD_CHECK_UOM_IS_MASS'&lt;/P&gt;&lt;P&gt;             EXPORTING&lt;/P&gt;&lt;P&gt;                  in_uom      = t_lips-meins&lt;/P&gt;&lt;P&gt;             EXCEPTIONS&lt;/P&gt;&lt;P&gt;                  not_mass    = 1&lt;/P&gt;&lt;P&gt;                  other       = 2&lt;/P&gt;&lt;P&gt;                  invalid_uom = 3&lt;/P&gt;&lt;P&gt;                  OTHERS      = 4.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          t_item-weight = t_lips-lgmng.&lt;/P&gt;&lt;P&gt;          t_item-w_uom  = t_lips-meins.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Delivered Qty.&lt;/P&gt;&lt;P&gt;    CLEAR: t_item-d_qty, sy-subrc.&lt;/P&gt;&lt;P&gt;    READ TABLE t_lips WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                               posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR d_unit.&lt;/P&gt;&lt;P&gt;      IF t_lips-meins = t_lips-vrkme.&lt;/P&gt;&lt;P&gt;        IF t_lips-meins = 'LB'.&lt;/P&gt;&lt;P&gt;          d_unit = 'lb'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start insert &amp;gt;&amp;gt;  Rajs-10/23/03&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This part is developed specially for Thanks-Giving promotion package.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The dummy header material has 'Z000' as item category and the main&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item of the package has 'ZTMI' as its item category. All the materials&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;contained in this package has ship-to-party PO item field populated.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The invoice will have only the header material displayed and not other&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;materials. But the actual delivery quantity is derived from the main&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item of the package. Pricing for this package is derived from dummy&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;header material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF tmp_vbap-pstyv = 'Z000'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get all the items that are in the same package&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SELECT vbeln posnr INTO CORRESPONDING FIELDS OF TABLE tmp_vbkd&lt;/P&gt;&lt;P&gt;                           FROM vbkd&lt;/P&gt;&lt;P&gt;                           WHERE vbeln   = tmp_vbap-vbeln AND&lt;/P&gt;&lt;P&gt;                                 posex_e = vbkd-posex_e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT tmp_vbkd.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the main item with in the package&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          READ TABLE t_vbap_dup WITH KEY vbeln = tmp_vbkd-vbeln&lt;/P&gt;&lt;P&gt;                                           posnr = tmp_vbkd-posnr&lt;/P&gt;&lt;P&gt;                                           pstyv = 'ZTMI'.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the ratio of header material to main item quantity. We need this&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to adjust the header material delivery quantity and price based on&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the actual qty delivered. Header material qty in delivery will always&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;be the same as the order qty!! Need to get the actual delivered qty&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;from main item of the package!!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            w_ord_ratio = ( tmp_vbap-kwmeng / t_vbap_dup-kwmeng ).&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          CLEAR: tmp_vbkd.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get delivery item number of the main item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          READ TABLE t_docflow WITH KEY ovbeln = t_vbap_dup-vbeln&lt;/P&gt;&lt;P&gt;                                        oposnr = t_vbap_dup-posnr.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch details of main item in the delivery&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            READ TABLE t_lips_tmp WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                                         posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              IF t_lips_tmp-lfimg = t_vbap_dup-kwmeng.&lt;/P&gt;&lt;P&gt;                t_item-d_qty = t_item-d_qty + t_lips-lfimg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If delivery qty of main item (ZTMI) is zero&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              ELSEIF t_lips_tmp-lfimg IS INITIAL.&lt;/P&gt;&lt;P&gt;                CLEAR t_lips-lfimg.&lt;/P&gt;&lt;P&gt;                t_item-d_qty = t_item-d_qty + t_lips-lfimg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the order qty and delivery qty of the main item is not the same...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              ELSE.&lt;/P&gt;&lt;P&gt;                t_lips-lfimg = t_lips_tmp-lfimg * w_ord_ratio.&lt;/P&gt;&lt;P&gt;                t_item-d_qty = t_item-d_qty + t_lips-lfimg.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;              t_item-d_uom = t_lips-vrkme.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start insert &amp;gt;&amp;gt;  Rajs-11/29/2004&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Packing slip is always printed after executing the pack program in SAP&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Actual delivery quantity of header item is updated by this time&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We can get rid of the above Thanx Giving logic and replace it with the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;below Part Platter logic!!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSEIF tmp_vbap-pstyv = 'ZPP0'.&lt;/P&gt;&lt;P&gt;        t_item-d_qty = t_lips-lfimg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End insert &amp;gt;&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        LOOP AT  t_box WHERE vbeln = tmp_vbap-vbeln AND&lt;/P&gt;&lt;P&gt;                             posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if t_box-ntgew ne space.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IF d_unit = 'lb'.&lt;/P&gt;&lt;P&gt;            t_item-d_qty = t_item-d_qty + t_box-ntgew.&lt;/P&gt;&lt;P&gt;            t_item-d_uom = t_box-gewei.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            t_item-d_qty = t_item-d_qty + t_box-zzpckqty.&lt;/P&gt;&lt;P&gt;            t_item-d_uom = t_box-zzuom.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Ignore the delivery pass materials (material Type - ZMKT)&lt;/P&gt;&lt;P&gt;*--- Remember Delivery Pass is not a pickable item so the t_box-zzpckqty&lt;/P&gt;&lt;P&gt;*--- will always be zero so we need to populate incase of Delivery pass&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Check the material first.&lt;/P&gt;&lt;P&gt;      CLEAR wa_matnr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE matnr INTO wa_matnr FROM vbap&lt;/P&gt;&lt;P&gt;                                 WHERE vbeln = t_item-vbeln AND&lt;/P&gt;&lt;P&gt;                                       posnr = t_item-posnr.&lt;/P&gt;&lt;P&gt;*--- Get the material type&lt;/P&gt;&lt;P&gt;      CLEAR wa_mtart.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE mtart INTO wa_mtart FROM mara&lt;/P&gt;&lt;P&gt;                                    WHERE matnr = wa_matnr.&lt;/P&gt;&lt;P&gt;      IF wa_mtart = 'ZMKT'.&lt;/P&gt;&lt;P&gt;        t_item-d_qty =  t_lips-lfimg.&lt;/P&gt;&lt;P&gt;        t_item-d_uom =  t_lips-vrkme.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*-- end of changs for delivery pass&lt;/P&gt;&lt;P&gt;    ENDIF. " sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Check if the SKU is a Free sample item&lt;/P&gt;&lt;P&gt;    CLEAR: t_konv.&lt;/P&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZF11'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF t_item-d_qty IS INITIAL.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        t_item-kdmat = 'Free Samples'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Unit Price.&lt;/P&gt;&lt;P&gt;      PERFORM get_unit_price USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                      tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                             CHANGING t_item-unit_price&lt;/P&gt;&lt;P&gt;                                      t_item-u_uom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Calculate Customization Price.&lt;/P&gt;&lt;P&gt;      PERFORM calc_cust_price USING   tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                      tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                             CHANGING t_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Calculate Item Net Price.&lt;/P&gt;&lt;P&gt;      PERFORM calc_net_price USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                      tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                             CHANGING t_item-net_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Determine if item is taxable.&lt;/P&gt;&lt;P&gt;      PERFORM check_item_tax USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                      tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                             CHANGING t_item-tax_flag&lt;/P&gt;&lt;P&gt;                                      t_item-disc_flag      "031902&lt;/P&gt;&lt;P&gt;                                      t_item-dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- If Item is unavailable, overwrite department name.&lt;/P&gt;&lt;P&gt;*--- Ignore the delivery pass materials (material Type - ZMKT)&lt;/P&gt;&lt;P&gt;*--- Remember Delivery Pass is not a pickable item so the d_qty will&lt;/P&gt;&lt;P&gt;*--- always be zero&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF t_item-d_qty IS INITIAL.&lt;/P&gt;&lt;P&gt;**--- Check the material first.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR wa_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECT SINGLE matnr INTO wa_matnr FROM vbap&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                  WHERE vbeln = t_item-vbeln AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        posnr = t_item-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**--- Get the material type&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR wa_mtart.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECT SINGLE mtart INTO wa_mtart FROM mara&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     WHERE matnr = wa_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF wa_mtart &amp;lt;&amp;gt; 'ZMKT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_item-kdmat = 'Unavailable Items'.&lt;/P&gt;&lt;P&gt;        t_inv-short_ship = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: t_box.&lt;/P&gt;&lt;P&gt;    READ TABLE t_box WITH KEY vbeln = t_item-vbeln&lt;/P&gt;&lt;P&gt;                              posnr = t_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      t_item-box = t_box-zzcarton.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND t_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_inv-short_ship IS INITIAL.&lt;/P&gt;&lt;P&gt;    MODIFY t_inv.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " process_items&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_unit_price&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IVBELN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IPOSNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_T_ITEM_UNITPRICE  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_unit_price USING    p_vbeln&lt;/P&gt;&lt;P&gt;                             p_posnr&lt;/P&gt;&lt;P&gt;                    CHANGING p_unitprice&lt;/P&gt;&lt;P&gt;                             p_uom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: p_unitprice, p_uom, t_konv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                             kposn = p_posnr&lt;/P&gt;&lt;P&gt;                             kschl = 'PR00'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    p_unitprice = ( t_konv-kbetr / t_konv-kpein ).&lt;/P&gt;&lt;P&gt;    p_uom       = t_konv-kmein.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " get_unit_price&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  calc_cust_price&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IVBELN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IPOSNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_T_ITEM_CUST_PRICE  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM calc_cust_price USING    p_vbeln&lt;/P&gt;&lt;P&gt;                              p_posnr&lt;/P&gt;&lt;P&gt;                     CHANGING p_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:  d_cust_price LIKE t_item-cust_price.&lt;/P&gt;&lt;P&gt;  DATA:  d_count      LIKE t_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: p_cust_price, t_konv, d_cust_price,&lt;/P&gt;&lt;P&gt;         d_count, d_old_value, d_new_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Condition type VA00 - Non Packaged (like Marinades) - Qty based&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv AND&lt;/P&gt;&lt;P&gt;                       kposn EQ p_posnr      AND&lt;/P&gt;&lt;P&gt;                       kschl EQ 'VA00'. " Non Pkgd item surcharge&lt;/P&gt;&lt;P&gt;    d_cust_price = d_cust_price + t_konv-kbetr.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT t_item-weight IS INITIAL.&lt;/P&gt;&lt;P&gt;      d_old_value = t_lips-lfimg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      d_new_value   = ( t_lips-umvkz / t_lips-umvkn ) * d_old_value.&lt;/P&gt;&lt;P&gt;      p_cust_price = ( d_new_value * d_cust_price )   + p_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      p_cust_price = p_cust_price + ( d_cust_price * t_item-d_qty ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR: d_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Condition type VA01 - Non Packaged (like Marinades) - % based&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv AND&lt;/P&gt;&lt;P&gt;                       kposn EQ p_posnr      AND&lt;/P&gt;&lt;P&gt;                       kschl EQ 'VA01'. " % based variants surcharge&lt;/P&gt;&lt;P&gt;    p_cust_price = p_cust_price + t_konv-kbetr.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT t_item-weight IS INITIAL.&lt;/P&gt;&lt;P&gt;      p_cust_price = p_cust_price + ( d_cust_price * t_item-weight ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      p_cust_price = p_cust_price + ( d_cust_price * t_item-d_qty ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR: d_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Condition type ZP00 - Packaged Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv AND&lt;/P&gt;&lt;P&gt;                       kposn EQ p_posnr      AND&lt;/P&gt;&lt;P&gt;                       kschl EQ 'ZP00'. " Pkgd item surcharge&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   p_cust_price = p_cust_price + t_konv-kwert.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ADD t_konv-kbetr TO d_cust_price .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF d_cust_price GT 0.&lt;/P&gt;&lt;P&gt;    CLEAR d_count.&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbfa WITH KEY vbelv = p_vbeln&lt;/P&gt;&lt;P&gt;                               posnv = p_posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT t_zwcspacks WHERE dorder = t_vbfa-vbeln AND&lt;/P&gt;&lt;P&gt;                                dline  = t_vbfa-posnn.&lt;/P&gt;&lt;P&gt;        IF t_zwcspacks-cartonid(2) &amp;lt;&amp;gt; 'SP'.&lt;/P&gt;&lt;P&gt;          ADD t_zwcspacks-ppqty TO d_count.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF d_count GT 0.&lt;/P&gt;&lt;P&gt;        p_cust_price = p_cust_price + ( d_cust_price * d_count ).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " calc_cust_price&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  calc_net_price&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IVBELN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IPOSNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_T_ITEM_NET_PRICE  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM calc_net_price USING    p_vbeln&lt;/P&gt;&lt;P&gt;                             p_posnr&lt;/P&gt;&lt;P&gt;                    CHANGING p_net_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_konv, p_net_price, d_old_value, d_new_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- calculate the net price based on the actual weight or&lt;/P&gt;&lt;P&gt;*--- quantity as the case may be, times the unit price.&lt;/P&gt;&lt;P&gt;  IF t_item-weight IS INITIAL OR&lt;/P&gt;&lt;P&gt;     t_item-w_uom  NE t_item-u_uom.&lt;/P&gt;&lt;P&gt;    p_net_price = ( t_item-d_qty * t_item-unit_price ) +&lt;/P&gt;&lt;P&gt;                    t_item-cust_price.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    d_old_value = t_lips-lfimg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    d_new_value  = ( t_lips-umvkz / t_lips-umvkn )    * d_old_value.&lt;/P&gt;&lt;P&gt;    p_net_price = ( d_new_value * t_item-unit_price ) +&lt;/P&gt;&lt;P&gt;                    t_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " calc_net_price&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_header&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_INV_VBELN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_INV_VBELV  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_header USING    p_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: tmp_credit LIKE t_credit OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_konv   LIKE t_konv OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_seq(2) TYPE n,&lt;/P&gt;&lt;P&gt;        d_credits  LIKE tmp_credit-zzact_alloc_amt,&lt;/P&gt;&lt;P&gt;        d_credits1 LIKE tmp_credit-zzact_alloc_amt,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      d_credits  LIKE tmp_credit-zzplan_alloc_amt,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      d_credits1 LIKE tmp_credit-zzplan_alloc_amt,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        tmp_total  LIKE konv-kwert,&lt;/P&gt;&lt;P&gt;        d_total    LIKE konv-kwert,&lt;/P&gt;&lt;P&gt;        d_skip     TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_item, t_price, tmp_seq, d_beer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- check if the invoice has beer.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    READ TABLE t_mara WITH KEY matnr = t_vbap-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      d_beer = 'X'.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- SubTotal. (Non-Alcoholic)&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;  t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'SUBTOTAL(FreshDirect)'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    t_price-price = t_price-price + t_item-net_price.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price GT 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Build Internal table&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbak.&lt;/P&gt;&lt;P&gt;  REFRESH: tmp_konv.&lt;/P&gt;&lt;P&gt;  READ TABLE t_vbak WITH KEY vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    CLEAR: tmp_konv, t_konv.&lt;/P&gt;&lt;P&gt;    LOOP AT t_konv WHERE knumv EQ t_vbak-knumv.&lt;/P&gt;&lt;P&gt;      tmp_konv = t_konv.&lt;/P&gt;&lt;P&gt;      APPEND tmp_konv.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Delivery Charges &lt;SPAN __jive_emoticon_name="plus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap, d_del_charge.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;  t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Delivery Charges ( + )'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000008888'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      d_del_charge = 'X'.&lt;/P&gt;&lt;P&gt;      APPEND t_price.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT d_del_charge IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start insert &amp;gt;&amp;gt;  Rajs-02/11/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If at least one item in the order is taxable, tax on delivery charge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is applied&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR d_tax_del.&lt;/P&gt;&lt;P&gt;    LOOP AT t_item WHERE vbeln    = p_ord   AND&lt;/P&gt;&lt;P&gt;                         d_qty    &amp;gt; '0.000' AND&lt;/P&gt;&lt;P&gt;                         tax_flag = 'T'.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      d_tax_del = 'X'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      LOOP AT t_beer_item WHERE vbeln    = p_ord   AND&lt;/P&gt;&lt;P&gt;                                d_qty    &amp;gt; '0.000' AND&lt;/P&gt;&lt;P&gt;                                tax_flag = 'T'.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        d_tax_del = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        LOOP AT t_wine_item WHERE vbeln    = p_ord   AND&lt;/P&gt;&lt;P&gt;                                  d_qty    &amp;gt; '0.000' AND&lt;/P&gt;&lt;P&gt;                                  tax_flag = 'T'.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          d_tax_del = 'X'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start change &amp;gt;&amp;gt;  Rajs-10/04/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Because of raising fuel price, FD wants a fuel surcharge added to all&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;orders&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  t_price-condition = 'Fuel surcharge ( + )'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_vbap WHERE matnr = '000000000000004444'&lt;/P&gt;&lt;P&gt;                     AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;      LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;P&gt;                         AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;        t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CONDENSE t_vbap-arktx.&lt;/P&gt;&lt;P&gt;      CONCATENATE t_vbap-arktx '( + )'&lt;/P&gt;&lt;P&gt;                  INTO t_price-condition SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    t_price-condition = t_vbap-arktx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      APPEND t_price.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate tax on Delivery and Surcharge&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT d_tax_del IS INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;      t_price-vbeln     = p_ord.&lt;/P&gt;&lt;P&gt;      tmp_seq           = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;      t_price-seq       = tmp_seq.&lt;/P&gt;&lt;P&gt;      t_price-condition = 'Tax on Delivery ( + )'.&lt;/P&gt;&lt;P&gt;      LOOP AT t_vbap WHERE matnr = '000000000000008888' AND&lt;/P&gt;&lt;P&gt;                           vbeln = p_ord.&lt;/P&gt;&lt;P&gt;        LOOP AT tmp_konv WHERE kschl EQ 'ZT01' AND&lt;/P&gt;&lt;P&gt;                               kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;          t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          APPEND t_price.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tax on fuel surcharge is accumulated to "Tax on delivery" here if&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;atleast one item in the order is taxable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR: tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;      LOOP AT t_vbap WHERE matnr = '000000000000004444' AND&lt;/P&gt;&lt;P&gt;                           vbeln = p_ord.&lt;/P&gt;&lt;P&gt;        LOOP AT tmp_konv WHERE kschl EQ 'ZT01' AND&lt;/P&gt;&lt;P&gt;                               kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;          t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*-- Bug fix - Delivery tax missing in Packing slip - Ponnu 10/18/06&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         MODIFY t_price TRANSPORTING price WHERE seq = tmp_seq.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          MODIFY t_price TRANSPORTING price WHERE vbeln = p_ord and&lt;/P&gt;&lt;P&gt;                                                    seq = tmp_seq.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End change &amp;gt;&amp;gt;  Rajs-10/04/2005&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End insert &amp;gt;&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delivery Charges (Depot) (+)-- Raj 06/08/2002&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000008889'&lt;/P&gt;&lt;P&gt;                  AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Delivery charges - Depot ( + )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Telephone charges&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000001111'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Telephone charges ( + )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Credit Card declined fee&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000002222'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Credit card declined fee ( + )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start delete &amp;gt;&amp;gt;  Rajs-10/04/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For now, this SKU is going to be used for fuel surcharge and it has&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;already been handled along with delivery fee logic. You may uncomment&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it when surcharge is done away with - PLEASE DO NOT DELETE THIS PART&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**--- Miscellaneous Charges&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT t_vbap WHERE matnr = '000000000000004444'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  AND vbeln = p_ord.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   t_price-vbeln = p_ord.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   t_price-seq = tmp_seq.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   t_price-condition = 'Miscellaneous Charges ( + )'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND t_price.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End delete &amp;gt;&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Tsunami Relief Contribution&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000005555'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl EQ 'PR00'&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    CONDENSE t_vbap-arktx.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = t_vbap-arktx.          "Rajs-08/31/2005&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Re-Delivery Charges &lt;SPAN __jive_emoticon_name="plus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000003333'&lt;/P&gt;&lt;P&gt;                  AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl EQ 'PB00'&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Re-delivery charges ( + )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT tmp_konv WHERE kschl EQ 'ZF00'.&lt;/P&gt;&lt;P&gt;    t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Delivery Charges &lt;SPAN __jive_emoticon_name="minus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000008888'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    CLEAR: t_price, tmp_konv, t_vbak.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Delivery charges ( - )'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE ( kschl EQ 'ZD10' OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZD11' )&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      APPEND t_price.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Delivery Charges (Depot) &lt;SPAN __jive_emoticon_name="minus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000008889'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE ( kschl EQ 'ZD10'   OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZD11' ) AND&lt;/P&gt;&lt;P&gt;                             kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Delivery charges - Depot ( - )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start insert &amp;gt;&amp;gt;  Rajs-12/01/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--- Telephone charges &lt;SPAN __jive_emoticon_name="minus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000001111'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE ( kschl EQ 'ZD10'   OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZD11' ) AND&lt;/P&gt;&lt;P&gt;                             kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Telephone charges ( - )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Credit card decline fee &lt;SPAN __jive_emoticon_name="minus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000002222'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE ( kschl EQ 'ZD10'   OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZD11' ) AND&lt;/P&gt;&lt;P&gt;                             kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Credit card declined fee ( - )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Miscellaneous charges &lt;SPAN __jive_emoticon_name="minus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000004444'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE ( kschl EQ 'ZD10'   OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZD11' ) AND&lt;/P&gt;&lt;P&gt;                             kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start change &amp;gt;&amp;gt;  Rajs-10/04/2005&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  t_price-condition = 'Miscellaneous charges ( - )'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CONDENSE t_vbap-arktx.&lt;/P&gt;&lt;P&gt;    CONCATENATE t_vbap-arktx '( - )'&lt;/P&gt;&lt;P&gt;                INTO t_price-condition SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End change &amp;gt;&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Re-Delivery Charges &lt;SPAN __jive_emoticon_name="minus"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000003333'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE ( kschl EQ 'ZD10'   OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZD11' ) AND&lt;/P&gt;&lt;P&gt;                             kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Re-Delivery charges ( - )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Discounts (amt).&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, tmp_konv, t_vbak, s_dis.&lt;/P&gt;&lt;P&gt;  REFRESH: s_dis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  s_dis-sign   = 'I'.&lt;/P&gt;&lt;P&gt;  s_dis-option = 'BT'.&lt;/P&gt;&lt;P&gt;  s_dis-low    = 'ZD00'.&lt;/P&gt;&lt;P&gt;  s_dis-high   = 'ZD11'.&lt;/P&gt;&lt;P&gt;  APPEND s_dis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;  t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Discounts ( - )'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE matnr = '000000000000009999'&lt;/P&gt;&lt;P&gt;                   AND vbeln = p_ord.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get the net price of the line item instead of PB00 price, since&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;a condition type ZADJ was added to knock off any negative values&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_price-price = t_vbap-netwr.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    IF    t_vbap-matnr = '000000000000009999'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000008888'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000008889'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000001111'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000002222'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000003333'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000004444'&lt;/P&gt;&lt;P&gt;       OR t_vbap-matnr = '000000000000005555'.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kschl IN s_dis&lt;/P&gt;&lt;P&gt;                       AND kposn EQ t_vbap-posnr.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + tmp_konv-kwert.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0. " and t_price-price ne '0.00'.&lt;/P&gt;&lt;P&gt;    t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;    tmp_seq = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;    t_price-seq = tmp_seq.&lt;/P&gt;&lt;P&gt;    t_price-condition = 'Discounts ( + )'.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Credits.&lt;/P&gt;&lt;P&gt;  CLEAR: t_price, t_credit, tmp_credit.&lt;/P&gt;&lt;P&gt;  REFRESH: tmp_credit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LOOP AT t_credit WHERE vbeln    EQ p_ord AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       "vbeln_vf eq p_inv and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                        NOT zzplan_alloc_amt IS initial.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_credit WHERE vbeln    EQ p_ord AND&lt;/P&gt;&lt;P&gt;                        "vbeln_vf eq p_inv and&lt;/P&gt;&lt;P&gt;                         NOT zzact_alloc_amt IS initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    tmp_credit = t_credit.&lt;/P&gt;&lt;P&gt;    APPEND tmp_credit.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- SubTotal. (Alcohol-Beer)&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '94'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'SUBTOTAL(FD Beer)'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_beer_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    t_price-price = t_price-price + t_beer_item-net_price.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price GT 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR  t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- SubTotal. (Alcohol-Wine)&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '97'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'SUBTOTAL(BC Wine)'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_wine_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    t_price-price = t_price-price + t_wine_item-net_price.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price GT 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR  t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Tax - condition type ZT01 (Non-Alcohol)&lt;/P&gt;&lt;P&gt;  CLEAR: t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '90'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Tax(FreshDirect)'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbap WITH KEY vbeln = t_item-vbeln&lt;/P&gt;&lt;P&gt;                               posnr = t_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR: t_mara.&lt;/P&gt;&lt;P&gt;      READ TABLE t_mara WITH KEY matnr = t_vbap-matnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0. CONTINUE. ENDIF.&lt;/P&gt;&lt;P&gt;      LOOP AT tmp_konv WHERE&lt;/P&gt;&lt;P&gt;            kposn EQ t_item-posnr AND&lt;/P&gt;&lt;P&gt;            kschl EQ 'ZT01'.&lt;/P&gt;&lt;P&gt;        t_price-price = t_price-price +&lt;/P&gt;&lt;P&gt;            ( ( tmp_konv-kbetr * t_item-net_price ) / 1000 ) .&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;    d_price = t_price-price.&lt;/P&gt;&lt;P&gt;    LOOP AT t_price WHERE&lt;/P&gt;&lt;P&gt;            vbeln     = p_ord AND&lt;/P&gt;&lt;P&gt;            condition = 'SUBTOTAL(FreshDirect)'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + d_price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price.&lt;/P&gt;&lt;P&gt;      CLEAR  t_price.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tax - condition type ZT02 (Alcohol-Beer)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FD acquired beer license mid Sep 2005 and starting october all beer&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;products started carrying FD tax condition ZT01 - Rajs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '92'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Tax(FD Beer)'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_beer_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbap WITH KEY vbeln = t_beer_item-vbeln&lt;/P&gt;&lt;P&gt;                               posnr = t_beer_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR: t_mara.&lt;/P&gt;&lt;P&gt;      READ TABLE t_mara WITH KEY matnr = t_vbap-matnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      LOOP AT tmp_konv WHERE   kposn EQ t_beer_item-posnr AND&lt;/P&gt;&lt;P&gt;                             ( kschl EQ 'ZT02' OR&lt;/P&gt;&lt;P&gt;                               kschl EQ 'ZT01' ).  "Rajs-11/03/05&lt;/P&gt;&lt;P&gt;        t_price-price = t_price-price +&lt;/P&gt;&lt;P&gt;                ( ( tmp_konv-kbetr * t_beer_item-net_price ) / 1000 ).&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;    d_price = t_price-price.&lt;/P&gt;&lt;P&gt;    LOOP AT t_price WHERE vbeln     =  p_ord AND&lt;/P&gt;&lt;P&gt;                          condition = 'SUBTOTAL(FD Beer)'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + d_price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price.&lt;/P&gt;&lt;P&gt;      CLEAR  t_price.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; Start insert &amp;gt;&amp;gt;  Rajs-11/10/2003&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Best Cellar project&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--- Tax - condition type ZT03 (Alcohol-Wine)&lt;/P&gt;&lt;P&gt;  CLEAR: t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '95'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Tax(BC Wine)'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_wine_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kposn EQ t_wine_item-posnr AND&lt;/P&gt;&lt;P&gt;                           kschl EQ 'ZT03'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price +&lt;/P&gt;&lt;P&gt;               ( ( tmp_konv-kbetr * t_wine_item-net_price ) / 1000 ).&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;    d_price = t_price-price.&lt;/P&gt;&lt;P&gt;    LOOP AT t_price WHERE vbeln     =  p_ord AND&lt;/P&gt;&lt;P&gt;                          condition = 'SUBTOTAL(BC Wine)'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + d_price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price.&lt;/P&gt;&lt;P&gt;      CLEAR  t_price.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End insert &amp;gt;&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Bottle Deposits (Non-Alcoholic)&lt;/P&gt;&lt;P&gt;  CLEAR: t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '91'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Bottle Deposits'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE&lt;/P&gt;&lt;P&gt;          kposn EQ t_item-posnr AND&lt;/P&gt;&lt;P&gt;          kschl EQ 'ZBD1'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price +&lt;/P&gt;&lt;P&gt;          ( ( tmp_konv-kbetr * t_item-d_qty ) / tmp_konv-kpein ) .&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;    d_price = t_price-price.&lt;/P&gt;&lt;P&gt;    LOOP AT t_price WHERE&lt;/P&gt;&lt;P&gt;          vbeln     = p_ord AND&lt;/P&gt;&lt;P&gt;          condition = 'SUBTOTAL(FreshDirect)'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + d_price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price.&lt;/P&gt;&lt;P&gt;      CLEAR  t_price.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Bottle Deposits (Alcoholic-Beer)&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FD acquired beer license mid Sep 2005 and starting october all beer&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;products started carrying FD bottle deposit condition ZBD1 - Rajs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '93'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Bottle Deposits'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_beer_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE   kposn EQ t_beer_item-posnr AND&lt;/P&gt;&lt;P&gt;                           ( kschl EQ 'ZBD2' OR&lt;/P&gt;&lt;P&gt;                             kschl EQ 'ZBD1' ).  "Rajs-11/03/05&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + ( ( tmp_konv-kbetr *&lt;/P&gt;&lt;P&gt;                      t_beer_item-d_qty ) / tmp_konv-kpein ).&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;    d_price = t_price-price.&lt;/P&gt;&lt;P&gt;    LOOP AT t_price WHERE vbeln     =  p_ord AND&lt;/P&gt;&lt;P&gt;                          condition = 'SUBTOTAL(FD Beer)'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + d_price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price.&lt;/P&gt;&lt;P&gt;      CLEAR  t_price.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Best Cellar project&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--- Bottle Deposits (Alcohol-Wine)&lt;/P&gt;&lt;P&gt;  CLEAR: t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq = '96'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'Bottle Deposits'.&lt;/P&gt;&lt;P&gt;  LOOP AT t_wine_item WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_konv WHERE kposn EQ t_wine_item-posnr AND&lt;/P&gt;&lt;P&gt;                           kschl EQ 'ZBD3'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + ( ( tmp_konv-kbetr *&lt;/P&gt;&lt;P&gt;                      t_wine_item-d_qty ) / tmp_konv-kpein ).&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF t_price-price &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND t_price.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;    d_price = t_price-price.&lt;/P&gt;&lt;P&gt;    LOOP AT t_price WHERE vbeln     =  p_ord AND&lt;/P&gt;&lt;P&gt;                          condition = 'SUBTOTAL(BC Wine)'.&lt;/P&gt;&lt;P&gt;      t_price-price = t_price-price + d_price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price.&lt;/P&gt;&lt;P&gt;      CLEAR  t_price.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CLEAR d_price.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Grand Total&lt;/P&gt;&lt;P&gt;  DELETE t_price WHERE price     EQ '0.00' AND&lt;/P&gt;&lt;P&gt;                       condition &amp;lt;&amp;gt; 'TOTAL'.&lt;/P&gt;&lt;P&gt;  CLEAR: tmp_total, t_price, d_credits, d_credits1.&lt;/P&gt;&lt;P&gt;  LOOP AT t_price WHERE vbeln EQ p_ord AND&lt;/P&gt;&lt;P&gt;    (  seq NE '90' AND seq NE '91' AND&lt;/P&gt;&lt;P&gt;       seq NE '92' AND seq NE '93' AND&lt;/P&gt;&lt;P&gt;       seq NE '95' AND seq NE '96' ).          "Rajs-11/10/2003&lt;/P&gt;&lt;P&gt;    tmp_total = t_price-price + tmp_total.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT tmp_credit WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    ADD tmp_credit-zzact_alloc_amt TO d_credits.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF d_credits EQ tmp_total.&lt;/P&gt;&lt;P&gt;    CLEAR:d_credits, tmp_total.&lt;/P&gt;&lt;P&gt;  ELSEIF d_credits GT tmp_total.&lt;/P&gt;&lt;P&gt;    d_total = tmp_total.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_credit WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;      IF d_skip = 'Y'.&lt;/P&gt;&lt;P&gt;        DELETE tmp_credit.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ADD tmp_credit-zzplan_alloc_amt TO d_credits1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ADD tmp_credit-zzact_alloc_amt TO d_credits1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF d_credits1 GT d_total.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SUBTRACT tmp_credit-zzplan_alloc_amt FROM d_credits1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         SUBTRACT tmp_credit-zzact_alloc_amt FROM d_credits1.&lt;/P&gt;&lt;P&gt;        tmp_total = ( ( d_total - d_credits1  ) * -1 )&lt;/P&gt;&lt;P&gt;              + tmp_total.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       tmp_credit-zzplan_alloc_amt = d_total - d_credits1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  tmp_credit-zzact_alloc_amt = d_total - d_credits1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MODIFY tmp_credit.&lt;/P&gt;&lt;P&gt;        d_skip = 'Y'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       tmp_total = ( tmp_credit-zzplan_alloc_amt * -1 ) + tmp_total.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         tmp_total = ( tmp_credit-zzact_alloc_amt * -1 ) + tmp_total.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_credit WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     tmp_total = ( tmp_credit-zzplan_alloc_amt * -1 ) + tmp_total.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tmp_total = ( tmp_credit-zzact_alloc_amt * -1 ) + tmp_total.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If Net value is below zero, adjust the invoice amount to become&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;zero, as there cannot be Negative Invoices.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF tmp_total LT 0.&lt;/P&gt;&lt;P&gt;    READ TABLE t_price WITH KEY vbeln     = p_ord&lt;/P&gt;&lt;P&gt;                                condition = 'Discounts ( - )'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      SUBTRACT tmp_total FROM t_price-price.&lt;/P&gt;&lt;P&gt;      MODIFY t_price INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;      CLEAR tmp_total.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSEIF tmp_total LE 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;However, if the value is less than a buck (after considering any store&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;credits), per Kevin Coyle, it's just not worth capturing the amount,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;considering all the transaction fees. So, adjust the invoice to show&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;zero amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tmp_total = tmp_total * -1.&lt;/P&gt;&lt;P&gt;    LOOP AT tmp_credit WHERE vbeln = p_ord.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF tmp_credit-zzplan_alloc_amt  GE tmp_total.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF tmp_credit-zzact_alloc_amt  GE tmp_total.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SUBTRACT tmp_total FROM tmp_credit-zzplan_alloc_amt .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SUBTRACT tmp_total FROM tmp_credit-zzact_alloc_amt.&lt;/P&gt;&lt;P&gt;        CLEAR tmp_total.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF tmp_credit-zzplan_alloc_amt  EQ 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF tmp_credit-zzact_alloc_amt  EQ 0.&lt;/P&gt;&lt;P&gt;          DELETE tmp_credit.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SUBTRACT tmp_credit-zzplan_alloc_amt  FROM tmp_total.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SUBTRACT tmp_credit-zzact_alloc_amt  FROM tmp_total.&lt;/P&gt;&lt;P&gt;        DELETE tmp_credit.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      READ TABLE t_price WITH KEY vbeln     = p_ord&lt;/P&gt;&lt;P&gt;                                  condition = 'Discounts ( - )'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        ADD tmp_total TO t_price-price.&lt;/P&gt;&lt;P&gt;        MODIFY t_price INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;        CLEAR tmp_total.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT tmp_credit.&lt;/P&gt;&lt;P&gt;  LOOP AT tmp_credit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF zzdesc.&lt;/P&gt;&lt;P&gt;      SUM.&lt;/P&gt;&lt;P&gt;      t_price-vbeln = p_ord.&lt;/P&gt;&lt;P&gt;      tmp_seq       = tmp_seq + 1.&lt;/P&gt;&lt;P&gt;      t_price-seq   = tmp_seq.&lt;/P&gt;&lt;P&gt;      CONCATENATE tmp_credit-zzdesc ' Department Credit'&lt;/P&gt;&lt;P&gt;                  INTO t_price-condition.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_price-price = ( tmp_credit-zzplan_alloc_amt * -1 ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      t_price-price = ( tmp_credit-zzact_alloc_amt * -1 ).&lt;/P&gt;&lt;P&gt;      APPEND t_price.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_price.&lt;/P&gt;&lt;P&gt;  t_price-vbeln     = p_ord.&lt;/P&gt;&lt;P&gt;  t_price-seq       = '99'.&lt;/P&gt;&lt;P&gt;  t_price-condition = 'TOTAL'.&lt;/P&gt;&lt;P&gt;  t_price-price     = tmp_total.&lt;/P&gt;&lt;P&gt;  APPEND t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " process_header&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_itabs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_itabs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- sort Invoices by Truck and Stop sequence&lt;/P&gt;&lt;P&gt;  SORT : t_inv BY zztrkno zzstopseq,&lt;/P&gt;&lt;P&gt;         t_vbap_dup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_inv.&lt;/P&gt;&lt;P&gt;    CLEAR d_beer.&lt;/P&gt;&lt;P&gt;    PERFORM process_items      USING t_inv-vbelv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM process_beer_items USING t_inv-vbelv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Best Cellars: Wine items are to be displayed separately in the invoice&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM process_wine_items USING t_inv-vbelv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM process_header     USING t_inv-vbelv.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " process_itabs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  generate_invoice&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM generate_invoice.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT:  t_item,&lt;/P&gt;&lt;P&gt;         t_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: t_item1 LIKE t_item OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: d_suffix1(4) TYPE n.&lt;/P&gt;&lt;P&gt;  DATA: d_suffix2    LIKE ssfcompop-tdsuffix2.&lt;/P&gt;&lt;P&gt;  DATA: d_str        TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Move the unavailable FD items to the end of the Invoice&lt;/P&gt;&lt;P&gt;*--- print before Free Samples, if any.&lt;/P&gt;&lt;P&gt;  LOOP AT t_item WHERE kdmat = 'Unavailable Items'.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING t_item TO t_item1.&lt;/P&gt;&lt;P&gt;    APPEND t_item1.&lt;/P&gt;&lt;P&gt;    CLEAR  t_item1.&lt;/P&gt;&lt;P&gt;    DELETE t_item.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_item1 TO t_item.&lt;/P&gt;&lt;P&gt;    REFRESH t_item1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Move the unavailable beer items to the end of the Invoice&lt;/P&gt;&lt;P&gt;*--- print before Free Samples, if any.&lt;/P&gt;&lt;P&gt;  LOOP AT t_beer_item WHERE kdmat = 'Unavailable Items'.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING t_beer_item TO t_item1.&lt;/P&gt;&lt;P&gt;    APPEND t_item1.&lt;/P&gt;&lt;P&gt;    CLEAR  t_item1.&lt;/P&gt;&lt;P&gt;    DELETE t_beer_item.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_item1 TO t_beer_item.&lt;/P&gt;&lt;P&gt;    REFRESH t_item1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Best Cellars project&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--- Move the unavailable wine items to the end of the Invoice&lt;/P&gt;&lt;P&gt;*--- print before Free Samples, if any.&lt;/P&gt;&lt;P&gt;  LOOP AT t_wine_item WHERE kdmat = 'Unavailable Items'.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING t_wine_item TO t_item1.&lt;/P&gt;&lt;P&gt;    APPEND t_item1.&lt;/P&gt;&lt;P&gt;    CLEAR  t_item1.&lt;/P&gt;&lt;P&gt;    DELETE t_wine_item.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_item1 TO t_wine_item.&lt;/P&gt;&lt;P&gt;    REFRESH t_item1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Move Free Samples to the end of the Invoice print&lt;/P&gt;&lt;P&gt;  LOOP AT t_item WHERE kdmat = 'Free Samples'.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING t_item TO t_item1.&lt;/P&gt;&lt;P&gt;    APPEND t_item1.&lt;/P&gt;&lt;P&gt;    CLEAR  t_item1.&lt;/P&gt;&lt;P&gt;    DELETE t_item.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    APPEND LINES OF t_item1 TO t_item.&lt;/P&gt;&lt;P&gt;    REFRESH t_item1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- the following logic converts the first letter (of each word)&lt;/P&gt;&lt;P&gt;*--- of Department into Upper Case (this is necessary since&lt;/P&gt;&lt;P&gt;*--- the department gets converted to all Upper cases during&lt;/P&gt;&lt;P&gt;*--- modifying an Order thru transaction VA02&lt;/P&gt;&lt;P&gt;  LOOP AT t_item.&lt;/P&gt;&lt;P&gt;    IF NOT t_item-kdmat IS INITIAL.&lt;/P&gt;&lt;P&gt;      CONDENSE t_item-kdmat.&lt;/P&gt;&lt;P&gt;      TRANSLATE t_item-kdmat TO LOWER CASE.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;        CLEAR d_str.&lt;/P&gt;&lt;P&gt;        REPLACE '' WITH '~' INTO t_item-kdmat.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0. EXIT. ENDIF.&lt;/P&gt;&lt;P&gt;        d_str = strlen( t_item-kdmat ).&lt;/P&gt;&lt;P&gt;        SUBTRACT 1 FROM d_str.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF t_item-kdmat+d_str(1) = '~'.&lt;/P&gt;&lt;P&gt;          t_item-kdmat = t_item-kdmat(d_str).&lt;/P&gt;&lt;P&gt;          CLEAR d_str.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;        SEARCH t_item-kdmat FOR '~'.&lt;/P&gt;&lt;P&gt;        REPLACE '~' WITH '' INTO t_item-kdmat.&lt;/P&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;          TRANSLATE t_item-kdmat(1) TO UPPER CASE.&lt;/P&gt;&lt;P&gt;          DO.&lt;/P&gt;&lt;P&gt;            REPLACE '~' WITH '' INTO t_item-kdmat.&lt;/P&gt;&lt;P&gt;            IF sy-subrc NE 0. EXIT. ENDIF.&lt;/P&gt;&lt;P&gt;          ENDDO.&lt;/P&gt;&lt;P&gt;          MODIFY t_item.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        ADD 1 TO sy-fdpos.&lt;/P&gt;&lt;P&gt;        TRANSLATE t_item-kdmat+sy-fdpos(1) TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: fm_name(30).&lt;/P&gt;&lt;P&gt;  DATA: tmp_partner   LIKE t_partner OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_item      LIKE t_item OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_beer_item LIKE t_item OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_wine_item LIKE t_item OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_docflow   LIKE t_docflow OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_price     LIKE t_price OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;        tmp_header    LIKE t_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: p_out  LIKE ssfcompop,&lt;/P&gt;&lt;P&gt;        p_ctrl LIKE ssfctrlop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: p_out,&lt;/P&gt;&lt;P&gt;         p_ctrl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_ctrl-no_dialog = 'X'.&lt;/P&gt;&lt;P&gt;  p_ctrl-device    = 'PRINTER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            formname           = p_form&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            fm_name            = fm_name&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            no_form            = 1&lt;/P&gt;&lt;P&gt;            no_function_module = 2&lt;/P&gt;&lt;P&gt;            OTHERS             = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_sship EQ 'X'.&lt;/P&gt;&lt;P&gt;    DELETE t_inv WHERE short_ship &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_inv1.&lt;/P&gt;&lt;P&gt;    IF t_inv1-zzmodel = '003'.&lt;/P&gt;&lt;P&gt;      IF p_md1 EQ 'X'.&lt;/P&gt;&lt;P&gt;        SORT t_inv BY zzstopseq.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SORT t_inv BY zlast_name.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSEIF t_inv1-zzmodel = '002'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if p_md3 eq 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       sort t_inv by zzstopseq.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     else.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SORT t_inv BY zlast_name.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ELSEIF t_inv1-zzmodel = '001'.&lt;/P&gt;&lt;P&gt;      IF p_md5 EQ 'X'.&lt;/P&gt;&lt;P&gt;        SORT t_inv BY zzstopseq.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SORT t_inv BY zlast_name.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_inv WHERE zztrkno = t_inv1-zztrkno.&lt;/P&gt;&lt;P&gt;      AT NEW zztrkno.&lt;/P&gt;&lt;P&gt;        p_out-tdnoprev  = 'X'.&lt;/P&gt;&lt;P&gt;        p_out-tdnoprint = 'X'.&lt;/P&gt;&lt;P&gt;        p_out-tdnoarch  = 'X'.&lt;/P&gt;&lt;P&gt;        p_out-tddelete  = 'X'.&lt;/P&gt;&lt;P&gt;        p_out-tddest    = p_dest.&lt;/P&gt;&lt;P&gt;        p_out-tdnewid   = ''.&lt;/P&gt;&lt;P&gt;        p_out-tdimmed   = ' '.&lt;/P&gt;&lt;P&gt;        p_out-tdcopies  = 1.&lt;/P&gt;&lt;P&gt;        p_out-tddataset = sy-repid.&lt;/P&gt;&lt;P&gt;        p_out-tddelete  = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        d_suffix1 =   t_inv-zztrkno+2(4).&lt;/P&gt;&lt;P&gt;        CONCATENATE sy-datum+2 sy-uzeit INTO d_suffix2.&lt;/P&gt;&lt;P&gt;        p_out-tdsuffix1 = d_suffix1.&lt;/P&gt;&lt;P&gt;        p_out-tdsuffix2 = d_suffix2.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT LAST.&lt;/P&gt;&lt;P&gt;        p_out-tdfinal   = 'X'.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: tmp_price,&lt;/P&gt;&lt;P&gt;             tmp_item,&lt;/P&gt;&lt;P&gt;             tmp_docflow,&lt;/P&gt;&lt;P&gt;             tmp_partner,&lt;/P&gt;&lt;P&gt;             tmp_beer_item,&lt;/P&gt;&lt;P&gt;             tmp_wine_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      REFRESH: tmp_price,&lt;/P&gt;&lt;P&gt;               tmp_item,&lt;/P&gt;&lt;P&gt;               tmp_docflow,&lt;/P&gt;&lt;P&gt;               tmp_partner,&lt;/P&gt;&lt;P&gt;               tmp_beer_item,&lt;/P&gt;&lt;P&gt;               tmp_wine_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_price WHERE vbeln EQ t_inv-vbelv.&lt;/P&gt;&lt;P&gt;        tmp_price = t_price.&lt;/P&gt;&lt;P&gt;        APPEND tmp_price.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_item WHERE vbeln EQ t_inv-vbelv.&lt;/P&gt;&lt;P&gt;        tmp_item = t_item.&lt;/P&gt;&lt;P&gt;        APPEND tmp_item.&lt;/P&gt;&lt;P&gt;*--- update the document flow table in the same sort&lt;/P&gt;&lt;P&gt;*--- order to make sure Header information prints&lt;/P&gt;&lt;P&gt;*--- correctly in the Invoice&lt;/P&gt;&lt;P&gt;        READ TABLE t_docflow WITH KEY ovbeln = t_item-vbeln&lt;/P&gt;&lt;P&gt;                                      oposnr = t_item-posnr.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          tmp_docflow = t_docflow.&lt;/P&gt;&lt;P&gt;          APPEND tmp_docflow.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_beer_item WHERE vbeln EQ t_inv-vbelv.&lt;/P&gt;&lt;P&gt;        tmp_beer_item = t_beer_item.&lt;/P&gt;&lt;P&gt;        APPEND tmp_beer_item.&lt;/P&gt;&lt;P&gt;*--- update the document flow table in the same sort&lt;/P&gt;&lt;P&gt;*--- order to make sure Header information prints&lt;/P&gt;&lt;P&gt;*--- correctly in the Invoice&lt;/P&gt;&lt;P&gt;        READ TABLE t_docflow WITH KEY ovbeln = t_beer_item-vbeln&lt;/P&gt;&lt;P&gt;                                      oposnr = t_beer_item-posnr.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          tmp_docflow = t_docflow.&lt;/P&gt;&lt;P&gt;          APPEND tmp_docflow.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Best Cellars project&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      LOOP AT t_wine_item WHERE vbeln EQ t_inv-vbelv.&lt;/P&gt;&lt;P&gt;        tmp_wine_item = t_wine_item.&lt;/P&gt;&lt;P&gt;        APPEND tmp_wine_item.&lt;/P&gt;&lt;P&gt;*--- update the document flow table in the same sort&lt;/P&gt;&lt;P&gt;*--- order to make sure Header information prints&lt;/P&gt;&lt;P&gt;*--- correctly in the Invoice&lt;/P&gt;&lt;P&gt;        READ TABLE t_docflow WITH KEY ovbeln = t_wine_item-vbeln&lt;/P&gt;&lt;P&gt;                                      oposnr = t_wine_item-posnr.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          tmp_docflow = t_docflow.&lt;/P&gt;&lt;P&gt;          APPEND tmp_docflow.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;&amp;lt; End insert &amp;gt;&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE tmp_docflow INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_partner WHERE vbeln EQ t_inv-vbelv.&lt;/P&gt;&lt;P&gt;        tmp_partner = t_partner.&lt;/P&gt;&lt;P&gt;        APPEND tmp_partner.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: t_header, tmp_header.&lt;/P&gt;&lt;P&gt;      READ TABLE t_header WITH KEY vbeln = t_inv-vbelv.&lt;/P&gt;&lt;P&gt;      tmp_header = t_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION fm_name&lt;/P&gt;&lt;P&gt;           EXPORTING&lt;/P&gt;&lt;P&gt;                inv_header         = tmp_header&lt;/P&gt;&lt;P&gt;                output_options     = p_out&lt;/P&gt;&lt;P&gt;                control_parameters = p_ctrl&lt;/P&gt;&lt;P&gt;                user_settings      = ' '&lt;/P&gt;&lt;P&gt;           TABLES&lt;/P&gt;&lt;P&gt;                t_item             = tmp_item&lt;/P&gt;&lt;P&gt;                t_price            = tmp_price&lt;/P&gt;&lt;P&gt;                t_partner          = tmp_partner&lt;/P&gt;&lt;P&gt;                t_docflow          = tmp_docflow&lt;/P&gt;&lt;P&gt;                t_beer_item        = tmp_beer_item&lt;/P&gt;&lt;P&gt;                t_wine_item        = tmp_wine_item.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF zztrkno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT * FROM tsp01 WHERE&lt;/P&gt;&lt;P&gt;             rq0name = sy-repid  AND&lt;/P&gt;&lt;P&gt;             rq1name = d_suffix1 AND&lt;/P&gt;&lt;P&gt;             rq2name = d_suffix2 AND&lt;/P&gt;&lt;P&gt;             rqowner = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          WRITE:/ 'Spool request issued',&lt;/P&gt;&lt;P&gt;                /  'Spool Number:', tsp01-rqident,&lt;/P&gt;&lt;P&gt;                /  'Spool Name  :', tsp01-rq0name,&lt;/P&gt;&lt;P&gt;                /  'Suffix 1    :' , tsp01-rq1name,&lt;/P&gt;&lt;P&gt;                /  'Suffix 2    :', tsp01-rq2name,&lt;/P&gt;&lt;P&gt;                /  'Owner       :', tsp01-rqowner,&lt;/P&gt;&lt;P&gt;                /  'Device      :',tsp01-rqdest,&lt;/P&gt;&lt;P&gt;                /  'Copies      :', tsp01-rqcopies,&lt;/P&gt;&lt;P&gt;                /  'Processed   :', tsp01-rqpjreq.&lt;/P&gt;&lt;P&gt;          SKIP.&lt;/P&gt;&lt;P&gt;        ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'RSPO_OUTPUT_SPOOL_REQUEST'&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;                    spool_request_id         = tsp01-rqident&lt;/P&gt;&lt;P&gt;               EXCEPTIONS&lt;/P&gt;&lt;P&gt;                    archive_dest_invalid     = 1&lt;/P&gt;&lt;P&gt;                    archive_dest_not_found   = 2&lt;/P&gt;&lt;P&gt;                    archive_dest_no_right    = 3&lt;/P&gt;&lt;P&gt;                    cannot_archive           = 4&lt;/P&gt;&lt;P&gt;                    change_archdest_no_right = 5&lt;/P&gt;&lt;P&gt;                    change_copies_no_right   = 6&lt;/P&gt;&lt;P&gt;                    change_dest_no_right     = 7&lt;/P&gt;&lt;P&gt;                    change_devtype_no_right  = 8&lt;/P&gt;&lt;P&gt;                    change_prio_no_right     = 9&lt;/P&gt;&lt;P&gt;                    change_telenum_no_right  = 10&lt;/P&gt;&lt;P&gt;                    change_title_no_right    = 11&lt;/P&gt;&lt;P&gt;                    dest_invalid             = 12&lt;/P&gt;&lt;P&gt;                    dest_not_found           = 13&lt;/P&gt;&lt;P&gt;                    dest_no_right            = 14&lt;/P&gt;&lt;P&gt;                    internal_problem         = 15&lt;/P&gt;&lt;P&gt;                    invalid_fax_attribute    = 16&lt;/P&gt;&lt;P&gt;                    invalid_parameters       = 17&lt;/P&gt;&lt;P&gt;                    non_owner_no_right       = 18&lt;/P&gt;&lt;P&gt;                    no_layout                = 19&lt;/P&gt;&lt;P&gt;                    no_spool_request         = 20&lt;/P&gt;&lt;P&gt;                    out_again_no_right       = 21&lt;/P&gt;&lt;P&gt;                    spooler_problem          = 22&lt;/P&gt;&lt;P&gt;                    OTHERS                   = 23.&lt;/P&gt;&lt;P&gt;          IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " generate_invoice&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  check_item_tax&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_TODFLOW_IVBELN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DOCFLOW_IPOSNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_T_ITEM_TAX_FLAG  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_item_tax USING    p_vbeln&lt;/P&gt;&lt;P&gt;                             p_posnr&lt;/P&gt;&lt;P&gt;                    CHANGING p_flag d_flag p_dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_vbap, t_konv, p_flag , d_flag, p_dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Get Item Tax Condition Record&lt;/P&gt;&lt;P&gt;  READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                             kposn = p_posnr&lt;/P&gt;&lt;P&gt;                             kschl = 'ZT01'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;      p_flag = 'T'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-- get discount condition record for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-- updating discount flag with 'S'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv&lt;/P&gt;&lt;P&gt;                   AND kposn EQ p_posnr&lt;/P&gt;&lt;P&gt;                   AND ( kschl EQ 'ZD10' OR&lt;/P&gt;&lt;P&gt;                         kschl EQ 'ZD11' ).&lt;/P&gt;&lt;P&gt;    IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;      d_flag = 'S'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- check for bottle Deposit..indicate in invoice&lt;/P&gt;&lt;P&gt;*--- with a flag&lt;/P&gt;&lt;P&gt;  READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                             kposn = p_posnr&lt;/P&gt;&lt;P&gt;                             kschl = 'ZBD1'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;      p_dep_flag = 'D'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " check_item_tax&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_descripion&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_descripion USING p_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH: t_tline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'READ_TEXT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            client                  = sy-mandt&lt;/P&gt;&lt;P&gt;            id                      = p_id&lt;/P&gt;&lt;P&gt;            language                = 'E'&lt;/P&gt;&lt;P&gt;            name                    = d_name&lt;/P&gt;&lt;P&gt;            object                  = 'VBBP'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            lines                   = t_tline&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            id                      = 1&lt;/P&gt;&lt;P&gt;            language                = 2&lt;/P&gt;&lt;P&gt;            name                    = 3&lt;/P&gt;&lt;P&gt;            not_found               = 4&lt;/P&gt;&lt;P&gt;            object                  = 5&lt;/P&gt;&lt;P&gt;            reference_check         = 6&lt;/P&gt;&lt;P&gt;            wrong_access_to_archive = 7&lt;/P&gt;&lt;P&gt;            OTHERS                  = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_descripion&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_deliveries&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_deliveries.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: d_lips_qty   LIKE lips-lfimg,&lt;/P&gt;&lt;P&gt;        d_diff       LIKE lips-lfimg,&lt;/P&gt;&lt;P&gt;        d_carton_qty LIKE zsdcarton_item-ntgew,&lt;/P&gt;&lt;P&gt;        d_wtbased    TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_lips.&lt;/P&gt;&lt;P&gt;    IF t_lips-matnr = '000000000000009999' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000008888' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000008889' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000001111' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000002222' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000003333' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000004444' OR&lt;/P&gt;&lt;P&gt;       t_lips-matnr = '000000000000005555' OR&lt;/P&gt;&lt;P&gt;       t_lips-pstyv = 'Z000'               OR    "Thanks Giving meal&lt;/P&gt;&lt;P&gt;       t_lips-pstyv = 'ZPP0'               OR    "Party Platter package&lt;/P&gt;&lt;P&gt;*--Added by ponnu for delivery pass&lt;/P&gt;&lt;P&gt;       t_lips-pstyv = 'Z004'.&lt;/P&gt;&lt;P&gt;*--End of changes by ponnu&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: d_lips_qty,&lt;/P&gt;&lt;P&gt;           d_carton_qty,&lt;/P&gt;&lt;P&gt;           d_wtbased,&lt;/P&gt;&lt;P&gt;           d_diff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_box WHERE zzvbeln_vl = t_lips-vbeln AND&lt;/P&gt;&lt;P&gt;                        zzposnr_vl = t_lips-posnr.&lt;/P&gt;&lt;P&gt;      IF t_box-ntgew IS INITIAL.&lt;/P&gt;&lt;P&gt;        ADD t_box-zzpckqty TO d_carton_qty.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        d_wtbased = 'X'.&lt;/P&gt;&lt;P&gt;        ADD t_box-ntgew    TO d_carton_qty.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF d_wtbased = 'X'.&lt;/P&gt;&lt;P&gt;      MOVE t_lips-lgmng TO d_lips_qty.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MOVE t_lips-lfimg TO d_lips_qty.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    d_diff = d_lips_qty - d_carton_qty.&lt;/P&gt;&lt;P&gt;    IF d_diff LT 0.&lt;/P&gt;&lt;P&gt;      MULTIPLY d_diff BY -1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- Due to SAP rounding errors, if the difference in Carton table and&lt;/P&gt;&lt;P&gt;*-- Delivery table is less than 0.01, proceed without erroring out.&lt;/P&gt;&lt;P&gt;    IF d_lips_qty &amp;lt;&amp;gt; d_carton_qty AND&lt;/P&gt;&lt;P&gt;       d_diff GT p_toler.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write:/ 'Invoice Validated with Errors!',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             text-e01,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             t_lips-vbeln,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             t_lips-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prepare email.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      r_text-sign    = 'I'.&lt;/P&gt;&lt;P&gt;      r_text-option  = 'EQ'.&lt;/P&gt;&lt;P&gt;      r_text-low = 'Invoice Validated with Weight Missmatch!'.&lt;/P&gt;&lt;P&gt;      APPEND r_text.&lt;/P&gt;&lt;P&gt;      r_text-low = text-e01.&lt;/P&gt;&lt;P&gt;      APPEND r_text.&lt;/P&gt;&lt;P&gt;      READ TABLE t_inv WITH KEY vbelv = t_box-vbeln.&lt;/P&gt;&lt;P&gt;      CONCATENATE   'Delivery:' t_lips-vbeln&lt;/P&gt;&lt;P&gt;                    'Item :'    t_lips-posnr&lt;/P&gt;&lt;P&gt;                    'Route:'    t_inv-zztrkno&lt;/P&gt;&lt;P&gt;                    INTO r_text-low SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND r_text.&lt;/P&gt;&lt;P&gt;      d_char_text =  d_lips_qty.&lt;/P&gt;&lt;P&gt;      SHIFT d_char_text LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'Delivery Weight:' d_char_text&lt;/P&gt;&lt;P&gt;                  INTO r_text-low SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND r_text.&lt;/P&gt;&lt;P&gt;      d_char_text =  d_carton_qty.&lt;/P&gt;&lt;P&gt;      SHIFT d_char_text LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'Packing Weight:' d_char_text&lt;/P&gt;&lt;P&gt;                  INTO r_text-low SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      APPEND r_text.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     loop at t_inv where vbelv = t_box-vbeln.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;delete record with missmatch from internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       delete t_inv where  vbelv = t_box-vbeln.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_deliveries&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  check_negatives&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_negatives.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Check for -ve invoices&lt;/P&gt;&lt;P&gt;  CLEAR d_initial.&lt;/P&gt;&lt;P&gt;  LOOP AT t_price WHERE condition = 'TOTAL' AND price LT 0.&lt;/P&gt;&lt;P&gt;    IF d_initial IS INITIAL.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;      WRITE:/2 'Following Orders were posted with Negative value!',&lt;/P&gt;&lt;P&gt;              'Please correct the document and run this program again.'.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      d_initial = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;prepare email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    r_text-sign    = 'I'.&lt;/P&gt;&lt;P&gt;    r_text-option  = 'EQ'.&lt;/P&gt;&lt;P&gt;    r_text-low = 'Following Orders were posted with Negative value!'.&lt;/P&gt;&lt;P&gt;    APPEND r_text.&lt;/P&gt;&lt;P&gt;    r_text-low =&lt;/P&gt;&lt;P&gt;              'Please correct the document and run this program again.'.&lt;/P&gt;&lt;P&gt;    APPEND r_text.&lt;/P&gt;&lt;P&gt;    d_char_text =  t_price-price.&lt;/P&gt;&lt;P&gt;    SHIFT d_char_text LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Error (Price) in '.&lt;/P&gt;&lt;P&gt;    WRITE:  'Order ',&lt;/P&gt;&lt;P&gt;             t_price-vbeln,&lt;/P&gt;&lt;P&gt;             ':',&lt;/P&gt;&lt;P&gt;             t_price-price CURRENCY c_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE   'Price Error in Order '&lt;/P&gt;&lt;P&gt;                  t_price-vbeln&lt;/P&gt;&lt;P&gt;                  'Price'&lt;/P&gt;&lt;P&gt;                  d_char_text  INTO r_text-low SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND r_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Check for less than $1 invoices&lt;/P&gt;&lt;P&gt;  CLEAR d_initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_price WHERE&lt;/P&gt;&lt;P&gt;    condition = 'TOTAL' AND&lt;/P&gt;&lt;P&gt;      ( price GT 0 AND&lt;/P&gt;&lt;P&gt;        price LE 1 ).&lt;/P&gt;&lt;P&gt;    IF d_initial IS INITIAL.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;      WRITE:/2 'Following Orders were posted with less than $1 value!',&lt;/P&gt;&lt;P&gt;              'Please correct the document and run this program again.'.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;      d_initial = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Order ',&lt;/P&gt;&lt;P&gt;            t_price-vbeln, ':',&lt;/P&gt;&lt;P&gt;            t_price-price CURRENCY c_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    r_text-low = 'Following orders were posted with less than $1 value'.&lt;/P&gt;&lt;P&gt;    APPEND r_text.&lt;/P&gt;&lt;P&gt;    r_text-low =&lt;/P&gt;&lt;P&gt;              'Please correct the document and run this program again'.&lt;/P&gt;&lt;P&gt;    APPEND r_text.&lt;/P&gt;&lt;P&gt;    d_char_text = t_price-price.&lt;/P&gt;&lt;P&gt;    SHIFT d_char_text LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Order :'   t_price-vbeln  'Price:' d_char_text&lt;/P&gt;&lt;P&gt;                INTO r_text-low SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND r_text.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " check_negatives&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM process_beer_items                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_ORD                                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_beer_items USING    p_ord.&lt;/P&gt;&lt;P&gt;  DATA: tmp_vbap LIKE t_vbap OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tmp_thickness LIKE t006a-mseht.&lt;/P&gt;&lt;P&gt;  DATA: wa_mtart LIKE mara-mtart.&lt;/P&gt;&lt;P&gt;  DATA: wa_matnr LIKE mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: tmp_vbap, t_inv-short_ship.&lt;/P&gt;&lt;P&gt;  REFRESH: tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    tmp_vbap = t_vbap.&lt;/P&gt;&lt;P&gt;    APPEND tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT tmp_vbap.&lt;/P&gt;&lt;P&gt;  LOOP AT tmp_vbap.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ignore header discount/delivery charges as they will be shown&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;at the header level with subtotals.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF tmp_vbap-matnr = '000000000000009999' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000008888' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000008889' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000001111' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000002222' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000003333' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000004444' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000005555'.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_vbap = tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbak WITH KEY vbeln = tmp_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ignore marketing materials.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_zmarketing WITH KEY matnr = tmp_vbap-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Include only beer items&lt;/P&gt;&lt;P&gt;    CLEAR: t_mara.&lt;/P&gt;&lt;P&gt;    READ TABLE t_mara WITH KEY matnr = tmp_vbap-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Wine items are separated from both beer and regular items&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IF sy-subrc NE 0. CONTINUE. ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0 OR&lt;/P&gt;&lt;P&gt;       t_mara-matkl(1) = 'W'.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR t_beer_item.&lt;/P&gt;&lt;P&gt;    t_beer_item-kdmat = 'FD Beer charges'.&lt;/P&gt;&lt;P&gt;    t_beer_item-vbeln = tmp_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    t_beer_item-posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;P&gt;    t_beer_item-o_qty = tmp_vbap-kwmeng.&lt;/P&gt;&lt;P&gt;    t_beer_item-o_uom = tmp_vbap-vrkme.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Desc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR: t_beer_item-material, d_name.&lt;/P&gt;&lt;P&gt;    CONCATENATE tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;            INTO d_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Get Web SKU Description from the Sales Order.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_descripion USING 'ZL01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;      IF t_beer_item-material EQ space.&lt;/P&gt;&lt;P&gt;        MOVE t_tline-tdline TO t_beer_item-material.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE t_beer_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;            INTO t_beer_item-material SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE maktx INTO t_beer_item-material FROM makt&lt;/P&gt;&lt;P&gt;      WHERE matnr EQ tmp_vbap-matnr AND&lt;/P&gt;&lt;P&gt;            spras EQ 'E'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SEARCH t_beer_item-material FOR '|'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        t_beer_item-material = t_beer_item-material+0(sy-fdpos).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Options&lt;/P&gt;&lt;P&gt;    PERFORM get_descripion USING 'ZL02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR tmp_thickness.&lt;/P&gt;&lt;P&gt;      IF t_beer_item-o_uom NE 'EA'.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mseht INTO tmp_thickness FROM t006a&lt;/P&gt;&lt;P&gt;            WHERE spras = 'E' AND&lt;/P&gt;&lt;P&gt;                  msehi = t_beer_item-o_uom.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF tmp_thickness IS INITIAL.&lt;/P&gt;&lt;P&gt;        LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;          IF NOT t_tline-tdline IS INITIAL.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material ' (' t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            AT LAST.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material ')'&lt;/P&gt;&lt;P&gt;                  INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ENDAT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;          IF NOT t_tline-tdline IS INITIAL.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material ' (' tmp_thickness ', '&lt;/P&gt;&lt;P&gt;                 t_tline-tdline INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material ' (' tmp_thickness&lt;/P&gt;&lt;P&gt;                 t_tline-tdline INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_beer_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                  INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          AT LAST.&lt;/P&gt;&lt;P&gt;            CONCATENATE t_beer_item-material ')'&lt;/P&gt;&lt;P&gt;                INTO t_beer_item-material.&lt;/P&gt;&lt;P&gt;          ENDAT.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Final Weight.&lt;/P&gt;&lt;P&gt;    CLEAR: t_docflow,  t_lips.&lt;/P&gt;&lt;P&gt;    READ TABLE t_docflow WITH KEY ovbeln = t_beer_item-vbeln&lt;/P&gt;&lt;P&gt;                                  oposnr = t_beer_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      READ TABLE t_lips WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                                 posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*--- Determine if Base Unit is MASS...&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'Z_FD_CHECK_UOM_IS_MASS'&lt;/P&gt;&lt;P&gt;             EXPORTING&lt;/P&gt;&lt;P&gt;                  in_uom      = t_lips-meins&lt;/P&gt;&lt;P&gt;             EXCEPTIONS&lt;/P&gt;&lt;P&gt;                  not_mass    = 1&lt;/P&gt;&lt;P&gt;                  other       = 2&lt;/P&gt;&lt;P&gt;                  invalid_uom = 3&lt;/P&gt;&lt;P&gt;                  OTHERS      = 4.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          t_beer_item-weight = t_lips-lgmng.&lt;/P&gt;&lt;P&gt;          t_beer_item-w_uom  = t_lips-meins.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Delivered Qty.&lt;/P&gt;&lt;P&gt;    CLEAR: t_beer_item-d_qty, sy-subrc.&lt;/P&gt;&lt;P&gt;    READ TABLE t_lips WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                               posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR d_unit.&lt;/P&gt;&lt;P&gt;      IF t_lips-meins = t_lips-vrkme.&lt;/P&gt;&lt;P&gt;        IF t_lips-meins = 'LB'.&lt;/P&gt;&lt;P&gt;          d_unit = 'lb'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      LOOP AT  t_box WHERE vbeln = tmp_vbap-vbeln AND&lt;/P&gt;&lt;P&gt;                           posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if t_box-ntgew ne space.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF d_unit = 'lb'.&lt;/P&gt;&lt;P&gt;          t_beer_item-d_qty = t_beer_item-d_qty + t_box-ntgew.&lt;/P&gt;&lt;P&gt;          t_beer_item-d_uom = t_box-gewei.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          t_beer_item-d_qty = t_beer_item-d_qty + t_box-zzpckqty.&lt;/P&gt;&lt;P&gt;          t_beer_item-d_uom = t_box-zzuom.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- check if the SKU is a Free sample item&lt;/P&gt;&lt;P&gt;    CLEAR: t_konv.&lt;/P&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZF11'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF t_beer_item-d_qty IS INITIAL.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        t_beer_item-kdmat = 'Free Samples'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Unit Price.&lt;/P&gt;&lt;P&gt;      PERFORM get_unit_price USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                      tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                             CHANGING t_beer_item-unit_price&lt;/P&gt;&lt;P&gt;                                      t_beer_item-u_uom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Calculate Customization Price.&lt;/P&gt;&lt;P&gt;      PERFORM calc_cust_price_beer USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                            tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                                            t_beer_item&lt;/P&gt;&lt;P&gt;                                   CHANGING t_beer_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Calculate Item Net Price.&lt;/P&gt;&lt;P&gt;      PERFORM calc_net_price_beer USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                           tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                                           t_beer_item&lt;/P&gt;&lt;P&gt;                                  CHANGING t_beer_item-net_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Determine if item is taxable.&lt;/P&gt;&lt;P&gt;      PERFORM check_item_tax_beer USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                           tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                                           t_mara-matkl&lt;/P&gt;&lt;P&gt;                                  CHANGING t_beer_item-tax_flag&lt;/P&gt;&lt;P&gt;                                           t_beer_item-disc_flag&lt;/P&gt;&lt;P&gt;                                           t_beer_item-dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- If Item is unavailable, overwrite department name.&lt;/P&gt;&lt;P&gt;*--- Ignore the delivery pass materials (material Type - ZMKT)&lt;/P&gt;&lt;P&gt;*--- Remember Delivery Pass is not a pickable item so the d_qty will&lt;/P&gt;&lt;P&gt;*--- always be zero&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF t_beer_item-d_qty IS INITIAL.&lt;/P&gt;&lt;P&gt;**--- Check the material first.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR wa_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECT SINGLE matnr INTO wa_matnr FROM vbap&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                  WHERE vbeln = t_beer_item-vbeln AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        posnr = t_beer_item-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***--- Get the material type&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR wa_mtart.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECT SINGLE mtart INTO wa_mtart FROM mara&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     WHERE matnr = wa_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF wa_mtart &amp;lt;&amp;gt; 'ZMKT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_item-kdmat = 'Unavailable Items'.&lt;/P&gt;&lt;P&gt;        t_inv-short_ship = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: t_box.&lt;/P&gt;&lt;P&gt;    READ TABLE t_box WITH KEY vbeln = t_beer_item-vbeln&lt;/P&gt;&lt;P&gt;                              posnr = t_beer_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      t_beer_item-box = t_box-zzcarton.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND t_beer_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF NOT t_inv-short_ship IS INITIAL.&lt;/P&gt;&lt;P&gt;    MODIFY t_inv.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " process_beer_items&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM calc_cust_price_beer                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_VBELN                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_POSNR                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_CUST_PRICE                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM calc_cust_price_beer USING    p_vbeln&lt;/P&gt;&lt;P&gt;                                   p_posnr&lt;/P&gt;&lt;P&gt;                                   p_beer_item STRUCTURE t_beer_item&lt;/P&gt;&lt;P&gt;                          CHANGING p_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:  d_cust_price LIKE t_beer_item-cust_price.&lt;/P&gt;&lt;P&gt;  DATA:  d_count      LIKE t_beer_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: p_cust_price, t_konv, d_cust_price,&lt;/P&gt;&lt;P&gt;         d_count, d_old_value, d_new_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Condition type VA00 - Non Packaged (like Marinades) - Qty based&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv AND&lt;/P&gt;&lt;P&gt;                       kposn EQ p_posnr      AND&lt;/P&gt;&lt;P&gt;                       kschl EQ 'VA00'. " Non Pkgd item surcharge&lt;/P&gt;&lt;P&gt;    d_cust_price = d_cust_price + t_konv-kbetr.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT p_beer_item-weight IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      d_old_value = t_lips-lfimg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      d_new_value   = ( t_lips-umvkz / t_lips-umvkn ) * d_old_value.&lt;/P&gt;&lt;P&gt;      p_cust_price = ( d_new_value *  d_cust_price )  + p_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      p_cust_price = p_cust_price +&lt;/P&gt;&lt;P&gt;                     ( d_cust_price * p_beer_item-d_qty ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR: d_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Condition type VA01 - Non Packaged (like Marinades) - % based&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv AND&lt;/P&gt;&lt;P&gt;                       kposn EQ p_posnr      AND&lt;/P&gt;&lt;P&gt;                       kschl EQ 'VA01'. " % based variants surcharge&lt;/P&gt;&lt;P&gt;    p_cust_price = p_cust_price + t_konv-kbetr.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    IF NOT p_beer_item-weight IS INITIAL.&lt;/P&gt;&lt;P&gt;      p_cust_price = p_cust_price +&lt;/P&gt;&lt;P&gt;        ( d_cust_price * p_beer_item-weight ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      p_cust_price = p_cust_price +&lt;/P&gt;&lt;P&gt;                    ( d_cust_price * p_beer_item-d_qty ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR: d_cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Condition type ZP00 - Packaged Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_konv WHERE knumv EQ t_vbak-knumv AND&lt;/P&gt;&lt;P&gt;                       kposn EQ p_posnr      AND&lt;/P&gt;&lt;P&gt;                       kschl EQ 'ZP00'. " Pkgd item surcharge&lt;/P&gt;&lt;P&gt;    ADD t_konv-kbetr TO d_cust_price .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  IF d_cust_price GT 0.&lt;/P&gt;&lt;P&gt;    CLEAR d_count.&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbfa WITH KEY vbelv = p_vbeln&lt;/P&gt;&lt;P&gt;                               posnv = p_posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      LOOP AT t_zwcspacks WHERE dorder = t_vbfa-vbeln AND&lt;/P&gt;&lt;P&gt;                                dline  = t_vbfa-posnn.&lt;/P&gt;&lt;P&gt;        IF t_zwcspacks-cartonid(2) &amp;lt;&amp;gt; 'SP'.&lt;/P&gt;&lt;P&gt;          ADD t_zwcspacks-ppqty TO d_count.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF d_count GT 0.&lt;/P&gt;&lt;P&gt;        p_cust_price = p_cust_price +&lt;/P&gt;&lt;P&gt;          ( d_cust_price * d_count ).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " calc_cust_price_beer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM calc_net_price_beer                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_VBELN                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_POSNR                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_NET_PRICE                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM calc_net_price_beer USING p_vbeln&lt;/P&gt;&lt;P&gt;                               p_posnr&lt;/P&gt;&lt;P&gt;                               p_beer_item STRUCTURE t_beer_item&lt;/P&gt;&lt;P&gt;                    CHANGING p_net_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_konv, p_net_price, d_old_value, d_new_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- calculate the net price based on the actual weight or&lt;/P&gt;&lt;P&gt;*--- quantity as the case may be, times the unit price.&lt;/P&gt;&lt;P&gt;  IF t_beer_item-weight IS INITIAL.&lt;/P&gt;&lt;P&gt;    p_net_price = ( p_beer_item-d_qty * p_beer_item-unit_price ) +&lt;/P&gt;&lt;P&gt;                    p_beer_item-cust_price.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    d_old_value = t_lips-lfimg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    d_new_value  = ( t_lips-umvkz / t_lips-umvkn ) * d_old_value.&lt;/P&gt;&lt;P&gt;    p_net_price = ( d_new_value * p_beer_item-unit_price ) +&lt;/P&gt;&lt;P&gt;                    p_beer_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " calc_net_price_beer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM check_item_tax_beer                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_VBELN                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_POSNR                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_FLAG                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  D_FLAG                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM check_item_tax_beer USING    p_vbeln&lt;/P&gt;&lt;P&gt;                                  p_posnr&lt;/P&gt;&lt;P&gt;                                  p_matkl&lt;/P&gt;&lt;P&gt;                         CHANGING p_flag d_flag p_dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_vbap, t_konv, p_flag , d_flag, p_dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WBL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_matkl(1) = 'A' OR&lt;/P&gt;&lt;P&gt;     p_matkl(1) = 'B'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get item tax condition record for WBL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FD acquired beer license mid Sep 2005 and starting October all beer&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;products started carrying FD tax condition ZT01. So, for transition&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;reasons, we check both the tax conditions here - Rajs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = p_posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZT01'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;        p_flag = 'T'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                                 kposn = p_posnr&lt;/P&gt;&lt;P&gt;                                 kschl = 'ZT02'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;          p_flag = 'T'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-- get discount condition record for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-- updating discount flag with 'S'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    LOOP AT t_konv WHERE knumv EQ t_vbak-knumv&lt;/P&gt;&lt;P&gt;                     AND kposn EQ p_posnr&lt;/P&gt;&lt;P&gt;                     AND ( kschl EQ 'ZD10' OR&lt;/P&gt;&lt;P&gt;                           kschl EQ 'ZD11' ).&lt;/P&gt;&lt;P&gt;      IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;        d_flag = 'S'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for bottle Deposit..indicate that in invoice with a flag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FD acquired beer license mid Sep 2005 and starting October all beer&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;products started carrying FD bottle deposit condition ZBD1. So, for&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;transition reasons, we check both the conditions here - Rajs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = p_posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZBD1'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;        p_dep_flag = 'D'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                                 kposn = p_posnr&lt;/P&gt;&lt;P&gt;                                 kschl = 'ZBD2'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;          p_dep_flag = 'D'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Best Cellars&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ELSEIF p_matkl(1) = 'W'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get item tax condition record for BC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = p_posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZT03'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;        p_flag = 'T'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for bottle deposit..indicate in invoice&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;with a flag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = p_posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZBD3'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF NOT t_konv-kwert IS INITIAL.&lt;/P&gt;&lt;P&gt;        p_dep_flag = 'D'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " check_item_tax_beer&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_wine_items&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_INV_VBELV  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_wine_items USING    p_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: tmp_vbap LIKE t_vbap OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tmp_thickness LIKE t006a-mseht.&lt;/P&gt;&lt;P&gt;  DATA: wa_mtart LIKE mara-mtart.&lt;/P&gt;&lt;P&gt;  DATA: wa_matnr LIKE mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  : tmp_vbap, t_inv-short_ship.&lt;/P&gt;&lt;P&gt;  REFRESH: tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbap WHERE vbeln EQ p_ord.&lt;/P&gt;&lt;P&gt;    tmp_vbap = t_vbap.&lt;/P&gt;&lt;P&gt;    APPEND tmp_vbap.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT tmp_vbap.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ignore header discount/delivery charges as they will be shown&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;at the header level with subtotals.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF tmp_vbap-matnr = '000000000000009999' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000008888' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000008889' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000001111' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000002222' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000003333' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000004444' OR&lt;/P&gt;&lt;P&gt;       tmp_vbap-matnr = '000000000000005555'.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_vbap = tmp_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE t_vbak WITH KEY vbeln = tmp_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ignore marketing materials.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_zmarketing WITH KEY matnr = tmp_vbap-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Include only wine items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR: t_mara.&lt;/P&gt;&lt;P&gt;    READ TABLE t_mara WITH KEY matnr = tmp_vbap-matnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Wine items are separated from both beer and regular items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0         OR&lt;/P&gt;&lt;P&gt;       t_mara-matkl(1) = 'A' OR&lt;/P&gt;&lt;P&gt;       t_mara-matkl(1) = 'B'.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR t_wine_item.&lt;/P&gt;&lt;P&gt;    t_wine_item-kdmat = 'BC Wine charges'.&lt;/P&gt;&lt;P&gt;    t_wine_item-vbeln = tmp_vbap-vbeln.&lt;/P&gt;&lt;P&gt;    t_wine_item-posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;P&gt;    t_wine_item-o_qty = tmp_vbap-kwmeng.&lt;/P&gt;&lt;P&gt;    t_wine_item-o_uom = tmp_vbap-vrkme.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR: t_wine_item-material, d_name.&lt;/P&gt;&lt;P&gt;    CONCATENATE tmp_vbap-vbeln tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                INTO d_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get Web SKU description from the sales order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM get_descripion USING 'ZL01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;      IF t_wine_item-material EQ space.&lt;/P&gt;&lt;P&gt;        MOVE t_tline-tdline TO t_wine_item-material.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        CONCATENATE t_wine_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                    INTO t_wine_item-material SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE maktx INTO t_wine_item-material&lt;/P&gt;&lt;P&gt;                          FROM makt&lt;/P&gt;&lt;P&gt;                          WHERE matnr EQ tmp_vbap-matnr AND&lt;/P&gt;&lt;P&gt;                                spras EQ 'E'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SEARCH t_wine_item-material FOR '|'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        t_wine_item-material = t_wine_item-material+0(sy-fdpos).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Options&lt;/P&gt;&lt;P&gt;    PERFORM get_descripion USING 'ZL02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR tmp_thickness.&lt;/P&gt;&lt;P&gt;      IF t_wine_item-o_uom NE 'EA'.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mseht INTO tmp_thickness&lt;/P&gt;&lt;P&gt;                            FROM t006a&lt;/P&gt;&lt;P&gt;                            WHERE spras = 'E' AND&lt;/P&gt;&lt;P&gt;                                  msehi = t_wine_item-o_uom.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF tmp_thickness IS INITIAL.&lt;/P&gt;&lt;P&gt;        LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;          IF NOT t_tline-tdline IS INITIAL.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material ' (' t_tline-tdline&lt;/P&gt;&lt;P&gt;                          INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                          INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            AT LAST.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material ')'&lt;/P&gt;&lt;P&gt;                          INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ENDAT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        LOOP AT t_tline.&lt;/P&gt;&lt;P&gt;          IF NOT t_tline-tdline IS INITIAL.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material ' (' tmp_thickness ', '&lt;/P&gt;&lt;P&gt;                          t_tline-tdline INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                          INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            IF sy-tabix EQ 1.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material ' (' tmp_thickness&lt;/P&gt;&lt;P&gt;                          t_tline-tdline INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE t_wine_item-material t_tline-tdline&lt;/P&gt;&lt;P&gt;                          INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          AT LAST.&lt;/P&gt;&lt;P&gt;            CONCATENATE t_wine_item-material ')'&lt;/P&gt;&lt;P&gt;                        INTO t_wine_item-material.&lt;/P&gt;&lt;P&gt;          ENDAT.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Final Weight.&lt;/P&gt;&lt;P&gt;    CLEAR: t_docflow,  t_lips.&lt;/P&gt;&lt;P&gt;    READ TABLE t_docflow WITH KEY ovbeln = t_wine_item-vbeln&lt;/P&gt;&lt;P&gt;                                  oposnr = t_wine_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      READ TABLE t_lips WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                                 posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;*--- Determine if Base Unit is MASS...&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'Z_FD_CHECK_UOM_IS_MASS'&lt;/P&gt;&lt;P&gt;             EXPORTING&lt;/P&gt;&lt;P&gt;                  in_uom      = t_lips-meins&lt;/P&gt;&lt;P&gt;             EXCEPTIONS&lt;/P&gt;&lt;P&gt;                  not_mass    = 1&lt;/P&gt;&lt;P&gt;                  other       = 2&lt;/P&gt;&lt;P&gt;                  invalid_uom = 3&lt;/P&gt;&lt;P&gt;                  OTHERS      = 4.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          t_wine_item-weight = t_lips-lgmng.&lt;/P&gt;&lt;P&gt;          t_wine_item-w_uom  = t_lips-meins.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Delivered Qty.&lt;/P&gt;&lt;P&gt;    CLEAR: t_wine_item-d_qty, sy-subrc.&lt;/P&gt;&lt;P&gt;    READ TABLE t_lips WITH KEY vbeln = t_docflow-dvbeln&lt;/P&gt;&lt;P&gt;                               posnr = t_docflow-dposnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR d_unit.&lt;/P&gt;&lt;P&gt;      IF t_lips-meins = t_lips-vrkme.&lt;/P&gt;&lt;P&gt;        IF t_lips-meins = 'LB'.&lt;/P&gt;&lt;P&gt;          d_unit = 'lb'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      LOOP AT  t_box WHERE vbeln = tmp_vbap-vbeln AND&lt;/P&gt;&lt;P&gt;                           posnr = tmp_vbap-posnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if t_box-ntgew ne space.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF d_unit = 'lb'.&lt;/P&gt;&lt;P&gt;          t_wine_item-d_qty = t_wine_item-d_qty + t_box-ntgew.&lt;/P&gt;&lt;P&gt;          t_wine_item-d_uom = t_box-gewei.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          t_wine_item-d_qty = t_wine_item-d_qty + t_box-zzpckqty.&lt;/P&gt;&lt;P&gt;          t_wine_item-d_uom = t_box-zzuom.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- check if the SKU is a Free sample item&lt;/P&gt;&lt;P&gt;    CLEAR: t_konv.&lt;/P&gt;&lt;P&gt;    READ TABLE t_konv WITH KEY knumv = t_vbak-knumv&lt;/P&gt;&lt;P&gt;                               kposn = tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                               kschl = 'ZF11'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF t_wine_item-d_qty IS INITIAL.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        t_wine_item-kdmat = 'Free Samples'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Unit Price.&lt;/P&gt;&lt;P&gt;      PERFORM get_unit_price USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                      tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                             CHANGING t_wine_item-unit_price&lt;/P&gt;&lt;P&gt;                                      t_wine_item-u_uom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Calculate Customization Price.&lt;/P&gt;&lt;P&gt;      PERFORM calc_cust_price_beer USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                            tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                                            t_wine_item&lt;/P&gt;&lt;P&gt;                                   CHANGING t_wine_item-cust_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Calculate Item Net Price.&lt;/P&gt;&lt;P&gt;      PERFORM calc_net_price_beer USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                           tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                                           t_wine_item&lt;/P&gt;&lt;P&gt;                                  CHANGING t_wine_item-net_price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- Determine if item is taxable.&lt;/P&gt;&lt;P&gt;      PERFORM check_item_tax_beer USING    tmp_vbap-vbeln&lt;/P&gt;&lt;P&gt;                                           tmp_vbap-posnr&lt;/P&gt;&lt;P&gt;                                           t_mara-matkl&lt;/P&gt;&lt;P&gt;                                  CHANGING t_wine_item-tax_flag&lt;/P&gt;&lt;P&gt;                                           t_wine_item-disc_flag&lt;/P&gt;&lt;P&gt;                                           t_wine_item-dep_flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--- If Item is unavailable, overwrite department name.&lt;/P&gt;&lt;P&gt;*--- Ignore the delivery pass materials (material Type - ZMKT)&lt;/P&gt;&lt;P&gt;*--- Remember Delivery Pass is not a pickable item so the d_qty will&lt;/P&gt;&lt;P&gt;*--- always be zero&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF t_wine_item-d_qty IS INITIAL.&lt;/P&gt;&lt;P&gt;**--- Check the material first.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR wa_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECT SINGLE matnr INTO wa_matnr FROM vbap&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                  WHERE vbeln = t_wine_item-vbeln AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        posnr = t_wine_item-posnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**--- Get the material type&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CLEAR wa_mtart.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SELECT SINGLE mtart INTO wa_mtart FROM mara&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     WHERE matnr = wa_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IF wa_mtart &amp;lt;&amp;gt; 'ZMKT'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        t_wine_item-kdmat = 'Unavailable Items'.&lt;/P&gt;&lt;P&gt;        t_inv-short_ship = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: t_box.&lt;/P&gt;&lt;P&gt;    READ TABLE t_box WITH KEY vbeln = t_wine_item-vbeln&lt;/P&gt;&lt;P&gt;                              posnr = t_wine_item-posnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      t_wine_item-box = t_box-zzcarton.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND t_wine_item.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT t_inv-short_ship IS INITIAL.&lt;/P&gt;&lt;P&gt;    MODIFY t_inv.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_wine_items&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT r_text[] IS INITIAL.&lt;/P&gt;&lt;P&gt;  d_email_subject = 'Errors in Packing Slip Print'.&lt;/P&gt;&lt;P&gt;  CONCATENATE  d_email_subject&lt;/P&gt;&lt;P&gt;              'Date:' sy-datum&lt;EM&gt;6(2) '/' sy-datum&lt;/EM&gt;4(2) '/' sy-datum(4)&lt;/P&gt;&lt;P&gt;              'Time:' sy-uzeit(2) ':' sy-uzeit&lt;EM&gt;2(2) ':' sy-uzeit&lt;/EM&gt;4(2)&lt;/P&gt;&lt;P&gt;               INTO  d_email_subject SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;call an external program to notify users of the error&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;into the email box&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  SUBMIT z_notify_user USING SELECTION-SET 'PACKING SLIP'&lt;/P&gt;&lt;P&gt;                       WITH  text1    IN r_text&lt;/P&gt;&lt;P&gt;                       WITH  sub_line EQ d_email_subject&lt;/P&gt;&lt;P&gt;  AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  udate_truck_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM udate_truck_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;update ztruck&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT *  FROM ztruck&lt;/P&gt;&lt;P&gt;            INTO TABLE t_ztruck&lt;/P&gt;&lt;P&gt;            FOR ALL ENTRIES IN  t_header&lt;/P&gt;&lt;P&gt;            WHERE werks   = p_werks AND&lt;/P&gt;&lt;P&gt;                  vdatu   = t_header-vdatu AND&lt;/P&gt;&lt;P&gt;                  zztrkno = t_header-zztrkno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_ztruck.&lt;/P&gt;&lt;P&gt;    IF r_text[] IS INITIAL AND&lt;/P&gt;&lt;P&gt;       t_ztruck-zzinvoice = space.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice = '1'.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice_date = sy-datum.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;      MODIFY t_ztruck TRANSPORTING zzinvoice&lt;/P&gt;&lt;P&gt;                                     zzinvoice_date&lt;/P&gt;&lt;P&gt;                                     zzinvoice_time&lt;/P&gt;&lt;P&gt;             WHERE zztrkno = t_ztruck-zztrkno.&lt;/P&gt;&lt;P&gt;    ELSEIF r_text[] IS INITIAL AND&lt;/P&gt;&lt;P&gt;           t_ztruck-zzinvoice = 'F'.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice = '1'.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice_date = sy-datum.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;      MODIFY t_ztruck TRANSPORTING zzinvoice&lt;/P&gt;&lt;P&gt;                                     zzinvoice_date&lt;/P&gt;&lt;P&gt;                                     zzinvoice_time&lt;/P&gt;&lt;P&gt;             WHERE zztrkno = t_ztruck-zztrkno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;when error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ELSEIF NOT r_text[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice = 'F'.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice_date = sy-datum.&lt;/P&gt;&lt;P&gt;      t_ztruck-zzinvoice_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;      MODIFY t_ztruck TRANSPORTING zzinvoice&lt;/P&gt;&lt;P&gt;                                   zzinvoice_date&lt;/P&gt;&lt;P&gt;                                   zzinvoice_time&lt;/P&gt;&lt;P&gt;             WHERE zztrkno = t_ztruck-zztrkno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;reprint&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      t_ztruck-zzinvoice = t_ztruck-zzinvoice + 1.&lt;/P&gt;&lt;P&gt;      MODIFY t_ztruck TRANSPORTING zzinvoice&lt;/P&gt;&lt;P&gt;             WHERE zztrkno = t_ztruck-zztrkno.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  UPDATE ztruck FROM TABLE t_ztruck.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " udate_truck_table&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2007 02:42:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/spool-request/m-p/2322027#M509869</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-08T02:42:40Z</dc:date>
    </item>
  </channel>
</rss>

