CE PLUS - Nota 003747

Módulo: DRAWBACK

Funcionalidade: CE Reports Formulários

Data/Hora da Publicação: 24/05/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:09:10

Descrição da Nota: AJUSTE PARA EXIBIR TOTAL POR NCM E AS QUANTIDADES TOTAIS COM A UNIDADE

Sintoma

Ajuste inser linha com total por ncm, converter todos os valores para USD e alterado preenchimento

do campo de quantidade total do anexo para exibir as quantidades para cada unidade utilizada no

anexo.

 

 

Solução

Ajuste inser linha com total por ncm, converter todos os valores para USD e alterado preenchimento

do campo de quantidade total do anexo para exibir as quantidades para cada unidade utilizada no

anexo.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO DOS ANEXOS AO PEDIDO DE DRAWBACK "EXCEL"

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 03747 Data: 24/05/2007 Hora: 09:11:39

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 03747

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00167

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

03375  - 00001 - 6.0    - 00026  - DESENVOLVIMENTO DOS ANEXOS AO PEDIDO DE DRAWBACK "EXCEL"

----------------------------------------------------------------------------------------------------

AJUSTE PARA EXIBIR TOTAL POR NCM E AS QUANTIDADES TOTAIS COM A UNIDADE

----------------------------------------------------------------------------------------------------

Palavras Chave:

ANEXO - PEDIDO - DRAWBACK - IMPORTAÇÃO - SUBTOTAIS - NCM

/PWS/ZYCRR004

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/ZYCRR004

REPT /PWS/ZYCRR004

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCRR004

 

REPORT /pws/zycrr004 MESSAGE-ID /pws/zycrm.

INCLUDE: /pws/zycri004,

         /pws/zycri003,

         /pws/zycri002.

TABLES: tcurx.

TYPES: BEGIN OF s_cabecalho.

TYPES: empresa   TYPE t001-bukrs,

       desc_emp  TYPE t001-butxt,

       local_neg TYPE t001w-j_1bbranch,

* >> Início da exclusão:

       ender     TYPE   t001w-stras,

* << Fim da exclusão

* >> Início da inclusão:

       ender(100)     TYPE c,

* << Fim da inclusão

       cgc(19)   TYPE c               ,

       anexo     TYPE /pws/zycit474-anexo,

* >> Início da exclusão:

       qtd_tot   TYPE /pws/zycit245-qtd_tot,

* << Fim da exclusão

* >> Início da inclusão:

       qtd_tot(50) TYPE c,

* << Fim da inclusão

       peso_tot  TYPE /pws/zycit245-ntgew,

       vltot     TYPE /pws/zycit245-netpr_t,

...

 

...

END-OF-SELECTION.

FORM select_data

     USING

        p_nrseqd TYPE /pws/zycit244-nrseqd

     CHANGING

        p_cabecalho      TYPE s_cabecalho

        p_t_itens        TYPE t_itens.

  DATA: wa_itens LIKE LINE OF p_t_itens,

        itab_makt TYPE makt OCCURS 0 WITH HEADER LINE,

        itab_604n TYPE t604n OCCURS 0 WITH HEADER LINE.

* >> Início da inclusão: FORM SELECT_DATA

  DATA: wa_itens2 LIKE LINE OF p_t_itens,

        wa_ender TYPE addr1_val,

        itab_itens2 TYPE t_itens.

* << Fim da inclusão

  SELECT SINGLE *

      INTO p_cabecalho-zycit244

      FROM /pws/zycit244

      WHERE nrseqd = p_nrseqd.

  CHECK sy-subrc = 0.

  SELECT SINGLE bukrs butxt

      INTO (p_cabecalho-empresa, p_cabecalho-desc_emp)

      FROM t001

      WHERE bukrs = p_cabecalho-zycit244-bukrs.

  SELECT SINGLE j_1bbranch stras

  FROM t001w

  INTO (p_cabecalho-local_neg, p_cabecalho-ender)

  WHERE werks = p_cabecalho-zycit244-werks.

  CALL FUNCTION 'J_1BREAD_BRANCH_DATA'

       EXPORTING

            branch     = p_cabecalho-local_neg

            bukrs      = p_cabecalho-empresa

       IMPORTING

* >> Início da inclusão: FORM SELECT_DATA

            address1   = wa_ender

* << Fim da inclusão

            cgc_number = p_cabecalho-zycit244-cnpj.

  WRITE p_cabecalho-zycit244-cnpj TO p_cabecalho-cgc

           USING EDIT MASK '__.___.___/____-__'.

* >> Início da inclusão: FORM SELECT_DATA

  CONCATENATE wa_ender-street '-' wa_ender-city1 '-' wa_ender-region

              '%%%%%%%%%' text-005 wa_ender-post_code1

              INTO p_cabecalho-ender SEPARATED BY space.

  TRANSLATE p_cabecalho-ender USING '% '.

* << Fim da inclusão

  SELECT *

        FROM  /pws/zycit245

         INTO TABLE p_t_itens

         WHERE nrseqd EQ p_nrseqd.

* >> Início da inclusão: FORM SELECT_DATA

  REFRESH:  itab_itens2.

  SORT p_t_itens BY j_1bnbm nritem.

* << Fim da inclusão

  LOOP AT p_t_itens INTO wa_itens.

* >> Início da inclusão: FORM SELECT_DATA

    PERFORM retorna_decimais USING wa_itens-waers

                  CHANGING wa_itens-netpr_t.

    PERFORM converter_moeda USING wa_itens-netpr_t

                                  wa_itens-waers

                                  'USD'

                                  sy-datlo

                         CHANGING wa_itens-netpr_t.

    wa_itens-waers = 'USD'.

* << Fim da inclusão

    WRITE wa_itens-netpr_t TO wa_itens-valor

          CURRENCY wa_itens-waers.

    SHIFT wa_itens-valor BY 3 PLACES.

    CONCATENATE wa_itens-waers wa_itens-valor INTO wa_itens-valor.

    WRITE wa_itens-qtd_ncm TO wa_itens-qtd

          UNIT wa_itens-um_ncm.

    SHIFT wa_itens-qtd BY 3 PLACES.

    CONCATENATE wa_itens-um_ncm wa_itens-qtd INTO wa_itens-qtd.

    wa_itens-ntgew = wa_itens-ntgew * wa_itens-qtd_tot.

    TRANSLATE wa_itens-j_1bnbm USING '. '.

    CONDENSE wa_itens-j_1bnbm NO-GAPS.

* >> Início da exclusão: FORM SELECT_DATA

    MODIFY p_t_itens FROM wa_itens.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECT_DATA

    IF wa_itens-j_1bnbm EQ wa_itens2-j_1bnbm .

      wa_itens2-netpr_t = wa_itens-netpr_t + wa_itens2-netpr_t.

      wa_itens2-qtd_ncm = wa_itens-qtd_ncm + wa_itens2-qtd_ncm.

      wa_itens2-ntgew = wa_itens-ntgew + wa_itens2-ntgew.

    ELSE.

      IF NOT wa_itens2-qtd_ncm IS INITIAL.

        WRITE wa_itens2-netpr_t TO wa_itens2-valor

              CURRENCY wa_itens2-waers.

        SHIFT wa_itens2-valor BY 3 PLACES.

        CONCATENATE wa_itens2-waers wa_itens2-valor

                                  INTO wa_itens2-valor.

        WRITE wa_itens2-qtd_ncm TO wa_itens2-qtd

              UNIT wa_itens2-um_ncm.

        SHIFT wa_itens2-qtd BY 3 PLACES.

        CONCATENATE wa_itens2-um_ncm wa_itens2-qtd

                                  INTO wa_itens2-qtd.

        CONCATENATE text-004 wa_itens2-j_1bnbm

                              INTO wa_itens2-maktx.

        CLEAR: wa_itens2-j_1bnbm.

        APPEND wa_itens2 TO itab_itens2.

      ENDIF.

      wa_itens2-j_1bnbm = wa_itens-j_1bnbm.

      wa_itens2-waers   = wa_itens-waers  .

      wa_itens2-um_ncm  = wa_itens-um_ncm .

      wa_itens2-netpr_t = wa_itens-netpr_t.

      wa_itens2-qtd_ncm = wa_itens-qtd_ncm.

      wa_itens2-ntgew   = wa_itens-ntgew  .

    ENDIF.

    APPEND wa_itens TO itab_itens2.

* << Fim da inclusão

  ENDLOOP.

* >> Início da exclusão: FORM SELECT_DATA

  SORT p_t_itens BY j_1bnbm nritem.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECT_DATA

  IF NOT wa_itens2-qtd_ncm IS INITIAL.

    WRITE wa_itens2-netpr_t TO wa_itens2-valor

          CURRENCY wa_itens2-waers.

    SHIFT wa_itens2-valor BY 3 PLACES.

    CONCATENATE wa_itens2-waers wa_itens2-valor

                              INTO wa_itens2-valor.

    WRITE wa_itens2-qtd_ncm TO wa_itens2-qtd

          UNIT wa_itens2-um_ncm.

    SHIFT wa_itens2-qtd BY 3 PLACES.

    CONCATENATE wa_itens2-um_ncm wa_itens2-qtd

                              INTO wa_itens2-qtd.

    CONCATENATE text-004 wa_itens2-j_1bnbm

                          INTO wa_itens2-maktx.

    CLEAR: wa_itens2-j_1bnbm.

    APPEND wa_itens2 TO itab_itens2.

  ENDIF.

  REFRESH: p_t_itens.

  p_t_itens[] = itab_itens2[].

* << Fim da inclusão

ENDFORM.

FORM create_excel_content_table

     USING

        p_t_items         TYPE table

        p_rep_param       TYPE /pws/zycrt013

        p_t_matrix        TYPE t_matrix

        p_t_report_fields TYPE t_rep_fields

     CHANGING

        p_header          TYPE s_cabecalho

        p_t_excel_content TYPE t_excel_content

        p_t_sect_height   TYPE t_sect_height.

  DATA: current_row  TYPE i VALUE 1,

        section_rows TYPE i.

  DATA: itab_exel_temp TYPE t_excel_content,

        wa_exel_temp   LIKE LINE OF itab_exel_temp[].

  .

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

  DATA: v_proximo TYPE i,

        v_barra TYPE c,

        wa_itens2 TYPE s_itens.

  DATA: BEGIN OF itab_qtd OCCURS 0.

  DATA: qtd  TYPE /pws/zycit245-qtd_ncm,

        unit TYPE /pws/zycit245-um_ncm .

  DATA: END OF itab_qtd.

* << Fim da inclusão

  DATA: current_item         TYPE i VALUE 1,

        v_vltot   TYPE /pws/zycit247-netpr_t,

        v_linha              TYPE i,

        v_lines              TYPE i.

  DATA: filled_section_height TYPE f.

  DATA: subrc TYPE sy-subrc.

  DATA: it_section_content LIKE p_t_excel_content[].

  DATA: v_linhacab  TYPE i,

        v_linhaite  TYPE i,

        v_linhasub  TYPE i,

...

 

...

    ADD v_linhacab TO current_row.

    PERFORM append_new_section

            USING

               'ITENS'

               current_row

            CHANGING

               p_t_excel_content[].

    section_rows = current_row.

    CLEAR: v_linha, p_header-qtd_tot,

            p_header-peso_tot, p_header-vltot.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

    REFRESH: itab_qtd.

* << Fim da inclusão

    DO.

      REFRESH it_section_content[].

      CLEAR wa_itens.

      ADD 1 TO current_item.

      READ TABLE p_t_items INTO wa_itens INDEX current_item.

      IF sy-subrc NE 0.

        v_completo = 'X'.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        EXIT.

      ENDIF.

      IF v_linha EQ 19.

        v_proximo = current_item + 1.

        READ TABLE p_t_items INTO wa_itens2 INDEX v_proximo.

        IF wa_itens2-j_1bnbm IS INITIAL.

* << Fim da inclusão

        EXIT.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        ENDIF.

* << Fim da inclusão

      ENDIF.

      PERFORM fill_items_fields

              USING

                 p_t_items[]

                 'ITENS'

                 current_row

...

 

...

      p_header-zycit244-waers = itab_zycit474-waers = wa_itens-waers.

      itab_zycit474-ncm     = wa_itens-j_1bnbm.

      itab_zycit474-linha   = v_linha.

      p_header-um_ncm = itab_zycit474-meins   = wa_itens-um_ncm.

      itab_zycit474-qtd     = wa_itens-qtd_ncm.

      p_header-gewei = itab_zycit474-gewei   = wa_itens-gewei.

      itab_zycit474-ntgew   = wa_itens-ntgew.

      itab_zycit474-netpr_t = wa_itens-netpr_t.

      itab_zycit474-matnr = wa_itens-codcomp.

      itab_zycit474-grupo = wa_itens-grupo.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

      IF NOT wa_itens-j_1bnbm IS INITIAL.

* << Fim da inclusão

      APPEND itab_zycit474.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        itab_qtd-qtd = wa_itens-qtd_ncm.

        itab_qtd-unit = wa_itens-um_ncm.

* << Fim da inclusão

* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE

      ADD wa_itens-qtd_ncm TO p_header-qtd_tot.

* << Fim da exclusão

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        COLLECT itab_qtd.

* << Fim da inclusão

      ADD wa_itens-ntgew TO p_header-peso_tot.

* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE

      PERFORM retorna_decimais USING wa_itens-waers

                    CHANGING wa_itens-netpr_t.

      PERFORM converter_moeda USING wa_itens-netpr_t

                                    wa_itens-waers

                                    'USD'

                                    sy-datlo

                           CHANGING v_vltot.

* << Fim da exclusão

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

        ADD wa_itens-netpr_t TO p_header-vltot.

      ENDIF.

* << Fim da inclusão

* >> Início da exclusão: FORM CREATE_EXCEL_CONTENT_TABLE

      ADD v_vltot TO p_header-vltot.

* << Fim da exclusão

      IF v_linha = 20.

        IF v_lines = current_item.

          v_completo = 'X'.

        ENDIF.

        EXIT.

      ENDIF.

    ENDDO.

* >> Início da inclusão: FORM CREATE_EXCEL_CONTENT_TABLE

    CLEAR: p_header-qtd_tot, v_barra.

    LOOP AT itab_qtd.

      CLEAR: wa_itens.

      WRITE itab_qtd-qtd TO wa_itens-qtd

            UNIT itab_qtd-unit LEFT-JUSTIFIED.

      CONCATENATE p_header-qtd_tot v_barra wa_itens-qtd

                itab_qtd-unit INTO p_header-qtd_tot .

      v_barra = '/'.

    ENDLOOP.

* << Fim da inclusão

    current_row = section_rows + v_linhaite.

    PERFORM append_new_section

            USING

               'RODA1'

               current_row

            CHANGING

               p_t_excel_content[].

    PERFORM fill_header_fields

            USING

               p_header

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYCRR004

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 004

 

Texto: (13 caracteres)

"Total do NCM:"

 

Comprimento máximo: 13

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 005

 

Texto: (3 caracteres)

"CEP"

 

Comprimento máximo: 3