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.
7.0
Produto:
Nota
Descrição
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