Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 17/09/2014 13:19:58
Data/Hora Última Alteração: 17/09/2014 13:19:58
Descrição da Nota: DAI - OBRIGATORIEDADE DE CAMPOS
Sintoma
Implementar controle de obrigatoriedade de preenchimento de campos na DAI.
No campo "BC ICMS (vlBcICMS) converter os valores FOB, FRETE e SEGURO para Reais antes de fazer a
soma com os outros valores. Utilizar taxa da DI para o cálculo (converter para USD usando a data de
conversão da DI ( a mesma regra que já é utilizada em todas as conversões).
Solução
Novo tratamento na geração dos XML¿s da DAI para verificação do preenchimentos das informações
obrigatórias baseado em parametrizações da tabela /pws/zycit524.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12298 Data: 19/06/2012 Hora: 10:29:15
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12298
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00001
Agrupamento : 00117
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12154 - 00001 - 8.0 - 00011 - DAI - DECLARAÇÃO AMAZONENSE DE IMPORTAÇÃO
12172 - 00002 - 8.0 - 00011 - INSERIR AS TRANSAÇÕES DA DAI NO MENU /PWS/ZYCI
12201 - 00003 - 8.0 - 00011 - DAI - /PWS/SAPMZYCI002 - LACRE - BL - COMPLEMENTO
12222 - 00004 - 8.0 - 00011 - NECESSÁRIO ACRESCENTAR O CAMPO NCM COMO CHAVE NA TABELA /PWS/ZYCI
12231 - 00005 - 8.0 - 00011 - DAI - AJUSTES NA TABELA /PWS/ZYCIT218
12251 - 00006 - 8.0 - 00011 - DAI - INSERIR CHAVE EXTERNA E AJUDA DE PESQUISA NOS CAMPOS
12289 - 00007 - 9.0 - 00001 - DAI - FORMATAR O CAMPO INSCRIÇÃO ESTADUAL (CDIMPORTADOR)
----------------------------------------------------------------------------------------------------
DAI - OBRIGATORIEDADE DE CAMPOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
IMPLEMENTAR CONTROLE DE OBRIGATORIEDADE DE PREENCHIMENTO DE CAMPOS DAI
/PWS/ZYCIR353 - /PWS/ZYCI_CARREGA_DAI - /PWS/SAPMZYCI023
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL928
FUGR /PWS/ZYCIGF1
FUNC /PWS/ZYCI_CARREGA_DAI
REPS /PWS/LZYCIGF11F01
REPS /PWS/LZYCIGF11TOP
REPS /PWS/MZYCI023F04
REPS /PWS/MZYCI023F05
REPS /PWS/MZYCI023I01
REPS /PWS/MZYCI023O01
REPS /PWS/MZYCI023X01
REPS /PWS/ZYCIR353
REPT /PWS/SAPMZYCI023
REPT /PWS/ZYCIR353
TABD /PWS/ZYCIT524
TABL /PWS/ZYCIE524
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMA /PWS/ZYCID921
------------------------------------------------------------------------
Domínio incluído: /PWS/ZYCID921
Descrição breve incluída (24 caracteres), idioma: PT
"Nome da Estrutura do XML"
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Categoria de dados: NUMC
Número de posições: 1
Comprimento de saída: 1
Rotina de conversão:
-Valores individuais
Incluído valor fixo "1"
Texto incluído, idioma: PT (2 caracteres):
"DI"
Incluído valor fixo "2"
Texto incluído, idioma: PT (6 caracteres):
"MATRIZ"
Incluída tabela de valores:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMA /PWS/ZYCID922
------------------------------------------------------------------------
Domínio incluído: /PWS/ZYCID922
Descrição breve incluída (8 caracteres), idioma: PT
"Registro"
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Categoria de dados: NUMC
Número de posições: 1
Comprimento de saída: 1
Rotina de conversão:
-Valores individuais
Incluído valor fixo "1"
Texto incluído, idioma: PT (11 caracteres):
"Dados da DI"
Incluído valor fixo "2"
Texto incluído, idioma: PT (17 caracteres):
"Dados das Adições"
Incluído valor fixo "3"
Texto incluído, idioma: PT (23 caracteres):
"Dados do Item da Adição"
Incluído valor fixo "4"
Texto incluído, idioma: PT (14 caracteres):
"Dados do Lacre"
Incluído valor fixo "5"
Texto incluído, idioma: PT (15 caracteres):
"Dados da Matriz"
Incluído valor fixo "6"
Texto incluído, idioma: PT (23 caracteres):
"Dados do Item da Matriz"
Incluída tabela de valores:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL921
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL921
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (24 caracteres), idioma: PT
"Nome da Estrutura do XML"
Categoria de dados: Domínio
Domínio: /PWS/ZYCID921
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (9 caracteres), idioma: PT
"Estrutura"
Comprimento máximo do denominador médio: 18
Denominador médio incluído (18 caracteres), idioma: PT
"Nome Estrutura XML"
Comprimento máximo do denominador longo: 24
Denominador longo incluído (24 caracteres), idioma: PT
"Nome da Estrutura do XML"
Comprimento máximo do título: 24
Título incluído (24 caracteres), idioma: PT
"Nome da Estrutura do XML"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL922
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL922
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (8 caracteres), idioma: PT
"Registro"
Categoria de dados: Domínio
Domínio: /PWS/ZYCID922
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (8 caracteres), idioma: PT
"Registro"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (8 caracteres), idioma: PT
"Registro"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (8 caracteres), idioma: PT
"Registro"
Comprimento máximo do título: 08
Título incluído (8 caracteres), idioma: PT
"Registro"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL923
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL923
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (20 caracteres), idioma: PT
"Nome do campo no XML"
Categoria de dados: Domínio
Domínio: FDNAME
ID parâmetro: DFD
Nome componente default: FIELD_NAME
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (5 caracteres), idioma: PT
"Campo"
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Nome do campo no XML"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (20 caracteres), idioma: PT
"Nome do campo no XML"
Comprimento máximo do título: 30
Título incluído (20 caracteres), idioma: PT
"Nome do campo no XML"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL924
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL924
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (15 caracteres), idioma: PT
"Obrigatoriedade"
Categoria de dados: Domínio
Domínio: FLAG
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (6 caracteres), idioma: PT
"Obrig."
Comprimento máximo do denominador médio: 15
Denominador médio incluído (11 caracteres), idioma: PT
"Obrigatório"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (15 caracteres), idioma: PT
"Obrigatoriedade"
Comprimento máximo do título: 15
Título incluído (15 caracteres), idioma: PT
"Obrigatoriedade"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL928
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL928
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (18 caracteres), idioma: PT
"Descrição do campo"
Categoria de dados: Domínio
Domínio: CHAR30
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (9 caracteres), idioma: PT
"Descrição"
Comprimento máximo do denominador médio: 18
Denominador médio incluído (18 caracteres), idioma: PT
"Descrição do campo"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (18 caracteres), idioma: PT
"Descrição do campo"
Comprimento máximo do título: 30
Título incluído (18 caracteres), idioma: PT
"Descrição do campo"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT524
CRIAR TABELA TRANSPARENTE: /PWS/ZYCIT524
DESCRIÇÃO BREVE: DAI - Obrigatoriedade de campos
CARACTERÍSTICAS
CATEGORIA DA TABELA: Tabela transparente
CLASSE DE ENTREGA: A - Tabela de aplicação (dados mestre e de movimento)
(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA
CAMPOS NOVOS
CAMPOS: CH: INI: TP. CAMPO TAB.VERIF.:
MANDT X X MANDT T000
ESTRUTURA X X /PWS/ZYCIL921
REGISTRO X X /PWS/ZYCIL922
CAMPO X X /PWS/ZYCIL923 DD03L
OBRIG /PWS/ZYCIL924
DESCRICAO /PWS/ZYCIL928
OPÇÕES TÉCNICAS
TIPO DE DADOS: APPL0 - Dados mestre, tabelas transparentes
CATEGOR. TAMANHO: 0 - Registros dados esperados: 0 Até 9.300
(X) - AR. BUFFER NÃO PERMITIDO
* GERADOR DE ATUALIZAÇÃO DE TABELA
Grupo de autorização: ZYCE - pw.CE - Grp. Autor.
Objeto autorização: S_TABU_DIS
Grupo de funções: /PWS/ZYCIGF1
Cl.desenvolvimento: /PWS/ZYCI - pw.CE - Documentação Importação
Ctg.atualização: Nível único
Nº tela atualização - Tela de síntese: 524
Rotina de registro individual (ou nenhuma)
* CRIAR TRANSAÇÃO
CÓDIGO DE TRANSAÇÃO: /PWS/ZYCIT524
ATRIBUTOS DA TRANSAÇÃO
TEXTO BREVE: DAI - Obrigatoriedade de campos
OBJETO DE EXECUÇÃO
(X) - TRANSAÇÃO C/ PARÂMETROS (TRANSAÇÃO DE PARÂMETROS)
TEXTO DA TRANSAÇÃO: DAI - Obrigatoriedade de campos
VALOR PROPOSTO PARA
(X) - TRANSAÇÃO: SM30 (X) - OMITIR 1ºTELA
CLASSIFICAÇÃO DE TRANSAÇÃO:
(X) - TRANSAÇÃO PROFESSIONAL USER
CAPACIDADE GUI:
(X) SAP GUI PARA HTML
(X) SAP GUI PARA JAVA
(X) SAP GUI PARA WINDOWS
VALORES PROPOSTOS
NOME DO CAMPO DA TELA VALOR
VIEWNAME /PWS/ZYCIT524
UPDATE X
* INSERIR A TRANSAÇÃO /PWS/ZYCIT524 NO MENU ÁREA /PWS/ZYCI
CAMINHO: Parâmetros / Suframa / DAI
/PWS/ZYCIT520 - Despesas X Layout
/PWS/ZYCIT521 - Destinação
/PWS/ZYCIT522 - Utilização
/PWS/ZYCIT523 - Tributação
/PWS/ZYCIT524 - Obrigatoriedade de campos
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIE524
CRIAR ESTRUTURA: /PWS/ZYCIE524
DESCRIÇÃO BREVE: DAI - Obrigatoriedade de campos
COMPONENTES NOVOS
COMPONENTE: TP. COMP: CTDD COMPR. DESCRIÇÃO BREVE
ESTRUTURA /PWS/ZYCIL921
REGISTRO /PWS/ZYCIL922
CAMPO /PWS/ZYCIL923
OBRIG /PWS/ZYCIL924
DESCRICAO /PWS/ZYCIL928
ADICAO /PWS/ZYCIL267
NUMITEM NUMC 3 Número do Item da Adição
Criar o último campo como tipo componente .
Caso necessite de instruções para essa alteração, há um documento no link abaixo que pode ajudar:
http://produtos.sondait.com.br/home/PW.CE/Notas/Forms/AllItems.aspx
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIE524T
* CRIAR A CATEGORIA DE TABELA: /PWS/ZYCIE524T
DESCRIÇÃO: DAI - Obrigatoriedade de campos
CLASSE DE DESENVOLVIMENTO: /PWS/ZYCI
TIPO DE LINHA: /PWS/ZYCIE524
(X) TABELA STANDARD
(X) CHAVE STANDARD
(X) NONUNIQUE
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_CARREGA_DAI
MODIFICAR MÓDULO DE FUNÇÃO: /PWS/ZYCI_CARREGA_DAI
TABELAS:
NOME PARAM. ATRIB. TIPO REFERÊNCIA
T_524 TYPE /PWS/ZYCIE524T
...
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
DATA: t_adicao TYPE /pws/zycie515t,
t_adicao_item TYPE /pws/zycie516t,
t_lacre TYPE /pws/zycie517 OCCURS 0 WITH HEADER LINE.
DATA: wa_adicao TYPE LINE OF /pws/zycie515t,
wa_adicao_item TYPE LINE OF /pws/zycie516t,
e_di TYPE /pws/zycie514.
* << Fim da exclusão
DATA: it_001 TYPE /pws/zycie001 OCCURS 0 WITH HEADER LINE,
it_049 TYPE /pws/zycie049 OCCURS 0 WITH HEADER LINE,
it_520 TYPE /pws/zycit520 OCCURS 0 WITH HEADER LINE,
it_523 TYPE /pws/zycit523 OCCURS 0 WITH HEADER LINE,
itab_116 TYPE /pws/zycit116 OCCURS 0 WITH HEADER LINE,
it_055 TYPE /pws/zycit055 OCCURS 0 WITH HEADER LINE,
it_078 TYPE /pws/zycit078 OCCURS 0 WITH HEADER LINE,
t_despesas TYPE /pws/zycie123b OCCURS 0 WITH HEADER LINE.
...
...
DATA: s_tax TYPE /pws/zycie085-ukursfob,
v_vlantid TYPE /pws/zycit100-vlantid,
v_lin TYPE i,
v_cide TYPE /pws/zycit049-vlreal,
v_multas TYPE /pws/zycit049-vlreal,
v_diversas TYPE /pws/zycit049-vlreal,
v_capataz TYPE /pws/zycit049-vlreal,
v_cgc LIKE j_1bwfield-cgc_number,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
v_vlusd LIKE /pws/zycie085-vlfob.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
v_vlusd LIKE /pws/zycie085-vlfob,
v_vlbrl LIKE /pws/zycie085-vlfob,
v_vlfob TYPE /pws/zycie515-vlfob,
v_vlfre TYPE /pws/zycie515-vlfre,
v_vlseg TYPE /pws/zycie515-vlseg.
CLEAR: e_di, t_adicao, t_adicao[], t_lacre, t_lacre[], t_adicao_item,
t_adicao_item[].
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSFER_DI'
EXPORTING
i_nrseqdi = i_nrseqdi
i_tpdi = i_tpdi
TABLES
it_cabecalho_di = it_cabecalho_di
it_itens_di = it_itens_di
it_det_itens_di = it_det_itens_di
it_inst_desp_di = it_inst_desp_di
it_proc_vinc_di = it_proc_vinc_di
...
...
e_di-land = it_cabecalho_di-land.
DESCRIBE TABLE it_adicao_di LINES v_lin.
e_di-adicao = v_lin.
SORT it_200 BY seq.
LOOP AT it_200.
CONCATENATE e_di-info_compl it_200-linha INTO e_di-info_compl
SEPARATED BY space.
ENDLOOP.
LOOP AT it_adicao_di.
CLEAR: wa_adicao.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
CLEAR: v_vlfob, v_vlfre, v_vlseg.
* << Fim da inclusão
READ TABLE itab_116 WITH KEY nrseqdi = it_adicao_di-nrseqdi
adicao = it_adicao_di-adicao.
wa_adicao-adicao = it_adicao_di-adicao.
wa_adicao-tp_imp = '1'.
wa_adicao-cod_imp = wa_j_1bbranch-state_insc.
wa_adicao-n_imp = wa_j_1bbranch-name.
READ TABLE it_forn WITH KEY nrseqdi = it_adicao_di-nrseqdi
adicao = it_adicao_di-adicao.
IF sy-subrc EQ 0.
wa_adicao-fornecedor = it_forn-forn_name1.
...
...
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit289 INTO wa_289
WHERE matcod = wa_198-codmat
AND plant = wa_198-werks
AND bom_usage = wa_198-stlan
AND bom = wa_198-stlnr
AND altbom = wa_198-stlal.
IF sy-subrc EQ 0.
wa_adicao-suframa = wa_289-codprod.
SELECT SINGLE * FROM /pws/zycit218 INTO wa_218
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
WHERE codigo = wa_289-codprod.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
WHERE codigo = wa_289-codprod
AND steuc = wa_289-ncmcod.
* << Fim da inclusão
IF sy-subrc EQ 0.
wa_adicao-ncm = wa_218-steuc.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
PERFORM load_waers USING it_itens_di-waersbem
CHANGING it_itens_di-waersbem.
IF it_itens_di-waersbem EQ wa_zycbt007-waersa.
wa_adicao-vlfob = wa_adicao-vlfob + ( it_itens_di-vlfob * 100 ).
ELSE.
CLEAR: v_vlusd.
v_vlusd = it_itens_di-vlfob.
PERFORM calc_conv_moeda(/pws/sapmzyci023)
USING it_itens_di-waersbem
wa_zycbt007-waersa
CHANGING v_vlusd.
wa_adicao-vlfob = wa_adicao-vlfob + ( v_vlusd * 100 ).
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
IF it_cabecalho_di-waersfre EQ wa_zycbt007-waersa.
wa_adicao-vlfre = wa_adicao-vlfre + ( it_itens_di-vlfre * 100 ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
IF it_itens_di-waersbem EQ wa_zycbt007-waersb.
v_vlfob = v_vlfob + ( it_itens_di-vlfob * 100 ).
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
CLEAR: v_vlbrl.
v_vlbrl = it_itens_di-vlfob.
PERFORM calc_conv_moeda(/pws/sapmzyci023)
USING it_itens_di-waersbem
wa_zycbt007-waersb
CHANGING v_vlbrl.
v_vlfob = v_vlfob + ( v_vlbrl * 100 ).
ENDIF.
* << Fim da inclusão
CLEAR: v_vlusd.
v_vlusd = it_itens_di-vlfre.
PERFORM calc_conv_moeda(/pws/sapmzyci023)
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
USING it_cabecalho_di-waersfre
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
USING wa_zycbt007-waersb
* << Fim da inclusão
wa_zycbt007-waersa
CHANGING v_vlusd.
wa_adicao-vlfre = wa_adicao-vlfre + ( v_vlusd * 100 ).
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
ENDIF.
IF it_cabecalho_di-waersseg EQ wa_zycbt007-waersa.
wa_adicao-vlseg = wa_adicao-vlseg + ( it_itens_di-vlseg * 100 ).
ELSE.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
v_vlfre = v_vlfre + ( it_itens_di-vlfre * 100 ).
* << Fim da inclusão
CLEAR: v_vlusd.
v_vlusd = it_itens_di-vlseg.
PERFORM calc_conv_moeda(/pws/sapmzyci023)
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
USING it_cabecalho_di-waersseg
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
USING wa_zycbt007-waersb
* << Fim da inclusão
wa_zycbt007-waersa
CHANGING v_vlusd.
wa_adicao-vlseg = wa_adicao-vlseg + ( v_vlusd * 100 ).
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
v_vlseg = v_vlseg + ( it_itens_di-vlseg * 100 ).
* << Fim da inclusão
IF NOT it_itens_di-baseantid IS INITIAL.
wa_adicao-vlantid =
wa_adicao-vlantid + ( ( it_itens_di-baseantid *
( it_itens_di-antidrate / 100 ) ) * 100 ).
ELSEIF NOT it_itens_di-qtdeantid IS INITIAL.
wa_adicao-vlantid = wa_adicao-vlantid +
( ( it_itens_di-vlantid * it_itens_di-qtdeantid ) * 100 ).
ENDIF.
READ TABLE it_det_itens_di WITH KEY ebeln = it_itens_di-ebeln
ebelp = it_itens_di-ebelp.
...
...
v_capataz = v_capataz + t_despesas-vldp.
ENDCASE.
ENDIF.
ENDLOOP.
wa_adicao-vlcide = v_cide * 100.
wa_adicao-vlmulta_jur = v_multas * 100.
wa_adicao-vltaxasd = v_diversas * 100.
wa_adicao-vltaxasc = v_capataz * 100.
wa_adicao-ukursfob = it_cabecalho_di-ukursfob * 10000.
wa_adicao-cod_trib = itab_116-tributacao.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_adicao-vlbc_icms = wa_adicao-vlfob + wa_adicao-vlfre +
wa_adicao-vlseg + wa_adicao-vlii +
wa_adicao-vlipi + wa_adicao-vlpis_cofins +
wa_adicao-vlcide + wa_adicao-vlantid +
wa_adicao-vlmulta_jur + wa_adicao-vltaxasd.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_adicao-vlbc_icms = v_vlfob + v_vlfre + v_vlseg +
wa_adicao-vlii + wa_adicao-vlipi +
wa_adicao-vlpis_cofins + wa_adicao-vlcide +
wa_adicao-vlantid + wa_adicao-vlmulta_jur +
wa_adicao-vltaxasd.
* << Fim da inclusão
READ TABLE it_523 WITH KEY codigo = itab_116-tributacao.
IF sy-subrc EQ 0.
wa_adicao-vlcm = it_523-cm * 100000.
ENDIF.
wa_adicao-vlicms = ( wa_adicao-vlbc_icms * wa_adicao-vlcm ) * 100.
IF e_di-regime = '07'.
ENDIF.
CLEAR: v_vlusd, wa_adicao_item.
LOOP AT it_itens_di WHERE nrseqdi = it_adicao_di-nrseqdi
AND adicao = it_adicao_di-adicao.
...
...
SELECT * FROM /pws/zycit055 INTO TABLE it_055
FOR ALL ENTRIES IN it_bl_di
WHERE nrseq = it_bl_di-nrseqce.
LOOP AT it_055.
t_lacre-id_veiculo = it_055-nrcontainer.
t_lacre-lacre = it_055-lacre.
APPEND t_lacre.
ENDLOOP.
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
PERFORM verifica_obrigatoriedade.
IF itab_obrig[] IS INITIAL.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSFER_DAI'
DESTINATION 'ZYCIENVIADAI'
EXPORTING
i_di = e_di
t_adicao = t_adicao
TABLES
t_lacre = t_lacre
EXCEPTIONS
call_function_remote_error = 1
OTHERS = 2.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
ELSE.
t_524[] = itab_obrig[].
* << Fim da inclusão
ENDIF.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF11F01
* >> Início da inclusão:
FORM verifica_obrigatoriedade.
RANGES: registro FOR /pws/zycit524-registro.
CLEAR: itab_obrig, itab_obrig[], t_lacre.
LOOP AT t_adicao INTO wa_adicao.
APPEND wa_adicao_item TO t_adicao_item.
ENDLOOP.
registro-sign = 'I'.
registro-option = 'EQ'.
registro-low = '1'.
APPEND registro.
registro-low = '2'.
APPEND registro.
registro-low = '3'.
APPEND registro.
registro-low = '4'.
APPEND registro.
SELECT * FROM /pws/zycit524 INTO TABLE itab_zycit524
WHERE estrutura EQ '1'
AND registro IN registro
AND obrig EQ 'X'.
IF NOT itab_zycit524[] IS INITIAL.
LOOP AT itab_zycit524.
CLEAR: itab_obrig.
IF itab_zycit524-registro EQ '1'.
CASE itab_zycit524-campo.
WHEN 'REGIME'.
IF e_di-regime IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'NRDI'.
IF e_di-nrdi IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'DTREG'.
IF e_di-dtreg IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'RETIF'.
IF e_di-retif IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLFOB'.
IF e_di-vlfob IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLFRE'.
IF e_di-vlfre IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLSEG'.
IF e_di-vlseg IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLII'.
IF e_di-vlii IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLIPI'.
IF e_di-vlipi IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLPIS_COFINS'.
IF e_di-vlpis_cofins IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLCIDE'.
IF e_di-vlcide IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLANTID'.
IF e_di-vlantid IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLMULTA_JUR'.
IF e_di-vlmulta_jur IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLTAXASD'.
IF e_di-vltaxasd IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'VLTAXASC'.
IF e_di-vltaxasc IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'UF'.
IF e_di-uf IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'UKURSFOB'.
IF e_di-ukursfob IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'PESO'.
IF e_di-peso IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'RECALF'.
IF e_di-recalf IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'LAND'.
IF e_di-land IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'ADICAO'.
IF e_di-adicao IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
WHEN 'INFO_COMPL'.
IF e_di-info_compl IS INITIAL.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDIF.
ENDCASE.
ELSEIF itab_zycit524-registro EQ '2'.
CASE itab_zycit524-campo.
WHEN 'ADICAO'.
LOOP AT t_adicao INTO wa_adicao WHERE adicao = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'TP_IMP'.
LOOP AT t_adicao INTO wa_adicao WHERE tp_imp = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'COD_IMP'.
LOOP AT t_adicao INTO wa_adicao WHERE cod_imp = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'N_IMP'.
LOOP AT t_adicao INTO wa_adicao WHERE n_imp = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'FORNECEDOR'.
LOOP AT t_adicao INTO wa_adicao WHERE fornecedor = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'DESTINACAO'.
LOOP AT t_adicao INTO wa_adicao WHERE destinacao = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'UTILIZACAO'.
LOOP AT t_adicao INTO wa_adicao WHERE utilizacao = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'NCM'.
LOOP AT t_adicao INTO wa_adicao WHERE ncm = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'SUFRAMA'.
LOOP AT t_adicao INTO wa_adicao WHERE suframa = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLFOB'.
LOOP AT t_adicao INTO wa_adicao WHERE vlfob = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLFRE'.
LOOP AT t_adicao INTO wa_adicao WHERE vlfre = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLSEG'.
LOOP AT t_adicao INTO wa_adicao WHERE vlseg = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLII'.
LOOP AT t_adicao INTO wa_adicao WHERE vlii = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLIPI'.
LOOP AT t_adicao INTO wa_adicao WHERE vlipi = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLPIS_COFINS'.
LOOP AT t_adicao INTO wa_adicao WHERE vlpis_cofins = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLCIDE'.
LOOP AT t_adicao INTO wa_adicao WHERE vlcide = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLANTID'.
LOOP AT t_adicao INTO wa_adicao WHERE vlantid = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLMULTA_JUR'.
LOOP AT t_adicao INTO wa_adicao WHERE vlmulta_jur = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLTAXASD'.
LOOP AT t_adicao INTO wa_adicao WHERE vltaxasd = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLTAXASC'.
LOOP AT t_adicao INTO wa_adicao WHERE vltaxasc = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'UKURSFOB'.
LOOP AT t_adicao INTO wa_adicao WHERE ukursfob = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'PESO'.
LOOP AT t_adicao INTO wa_adicao WHERE peso = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'COD_TRIB'.
LOOP AT t_adicao INTO wa_adicao WHERE cod_trib = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLBC_ICMS'.
LOOP AT t_adicao INTO wa_adicao WHERE vlbc_icms = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLCM'.
LOOP AT t_adicao INTO wa_adicao WHERE vlcm = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLICMS'.
LOOP AT t_adicao INTO wa_adicao WHERE vlicms = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'NR_DI_ADT'.
LOOP AT t_adicao INTO wa_adicao WHERE nr_di_adt = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
WHEN 'NR_DI_EIZOF'.
LOOP AT t_adicao INTO wa_adicao WHERE nr_di_eizof = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao-adicao.
APPEND itab_obrig.
ENDLOOP.
ENDCASE.
ELSEIF itab_zycit524-registro EQ '3'.
CASE itab_zycit524-campo.
WHEN 'ADICAO'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE adicao = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'NUMITEM'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE numitem = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'NCM'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE ncm = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'DESTNCM'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE destncm = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'DESCR_S'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE descr_s = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'DESCR_M'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE descr_m = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'QTDE'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE qtde = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'UN'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE un = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLUNIT'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE vlunit = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'VLTOTAL'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE vltotal = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
WHEN 'PEXPAM'.
LOOP AT t_adicao_item INTO wa_adicao_item WHERE pexpam = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
itab_obrig-adicao = wa_adicao_item-adicao.
itab_obrig-numitem = wa_adicao_item-numitem.
APPEND itab_obrig.
ENDLOOP.
ENDCASE.
ELSEIF itab_zycit524-registro EQ '4'.
CASE itab_zycit524-campo.
WHEN 'TP_VEICULO'.
LOOP AT t_lacre WHERE tp_veiculo = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDLOOP.
WHEN 'ID_VEICULO'.
LOOP AT t_lacre WHERE id_veiculo = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDLOOP.
WHEN 'LACRE'.
LOOP AT t_lacre WHERE lacre = ' '.
MOVE-CORRESPONDING itab_zycit524 TO itab_obrig.
APPEND itab_obrig.
ENDLOOP.
ENDCASE.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR: t_adicao_item, wa_adicao_item, wa_adicao.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF11TOP
FUNCTION-POOL /pws/zycigf11.
TABLES t005e.
* >> Início da inclusão:
DATA: t_adicao TYPE /pws/zycie515t,
t_adicao_item TYPE /pws/zycie516t,
t_lacre TYPE /pws/zycie517 OCCURS 0 WITH HEADER LINE.
DATA: wa_adicao TYPE LINE OF /pws/zycie515t,
wa_adicao_item TYPE LINE OF /pws/zycie516t,
e_di TYPE /pws/zycie514.
* << Fim da inclusão
DATA: wa_zycbt007 LIKE /pws/zycbt007.
* >> Início da inclusão:
DATA: itab_zycit524 TYPE /pws/zycit524 OCCURS 0 WITH HEADER LINE,
itab_obrig TYPE /pws/zycie524 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA BEGIN OF it_cabecalho_di OCCURS 10.
INCLUDE STRUCTURE /pws/zycie085.
DATA END OF it_cabecalho_di.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
* >> Início da inclusão:
FORM log_de_erro.
DATA: v_text1(50),
v_text2(50),
v_text3(50),
v_zeile LIKE mesg-zeile.
CALL FUNCTION 'MESSAGES_INITIALIZE'.
LOOP AT itab_zycit524.
v_zeile = v_zeile + 1.
CLEAR: v_text1, v_text2, v_text3.
IF itab_zycit524-adicao IS INITIAL.
CONCATENATE text-301 itab_zycit524-descricao
INTO v_text1 SEPARATED BY space.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCIM'
msgty = 'E'
msgv1 = v_text1
msgv2 = v_text2
msgv3 = text-303
txtnr = '015'
zeile = v_zeile.
ELSEIF itab_zycit524-numitem IS INITIAL.
CONCATENATE text-304 itab_zycit524-adicao
INTO v_text1 SEPARATED BY space.
CONCATENATE text-301 itab_zycit524-descricao
INTO v_text2 SEPARATED BY space.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCIM'
msgty = 'E'
msgv1 = v_text1
msgv2 = v_text2
msgv3 = text-303
txtnr = '015'
zeile = v_zeile.
ELSE.
CONCATENATE text-304 itab_zycit524-adicao text-305
itab_zycit524-numitem INTO v_text1 SEPARATED BY space.
CONCATENATE text-301 itab_zycit524-descricao
INTO v_text2 SEPARATED BY space.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCIM'
msgty = 'E'
msgv1 = v_text1
msgv2 = v_text2
msgv3 = text-303
txtnr = '015'
zeile = v_zeile.
ENDIF.
ENDLOOP.
CALL FUNCTION 'MESSAGES_SHOW'
EXPORTING
object = '/PWS/SAPMZYCI023'
i_amodal_window = ' '.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023I01
...
WHEN 'DECRESCD'.
CLEAR: v_ordena.
LOOP AT tc_item-cols INTO v_cols
WHERE selected EQ 'X'.
v_ordena = v_cols-screen-name+14 .
ENDLOOP.
IF NOT v_ordena IS INITIAL.
SORT itab_zycit049 DESCENDING BY (v_ordena).
ENDIF.
WHEN 'DAI' .
* >> Início da inclusão: MODULE USER_COMMAND_0050
CLEAR: itab_zycit524[], itab_zycit524.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_CARREGA_DAI'
EXPORTING
i_nrseqdi = /pws/zycie085-nrseqdi
* >> Início da exclusão: MODULE USER_COMMAND_0050
i_tpdi = /pws/zycie085-tpdi.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0050
i_tpdi = /pws/zycie085-tpdi
TABLES
t_524 = itab_zycit524.
IF NOT itab_zycit524[] IS INITIAL.
DELETE ADJACENT DUPLICATES FROM itab_zycit524
COMPARING ALL FIELDS.
CLEAR: v_answer.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = text-298
text_question = text-300
text_button_1 = text-297
text_button_2 = text-299
default_button = '1'
display_cancel_button = ' '
start_column = 25
start_row = 6
IMPORTING
answer = v_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF v_answer EQ '1'.
PERFORM log_de_erro.
EXIT.
ENDIF.
ELSE.
MESSAGE i015 WITH text-296.
ENDIF.
* << Fim da inclusão
ENDCASE.
ENDIF.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI023'
'DI009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'DI009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
DATA: v_sisc_adicao LIKE /pws/zycie049-vldp.
DATA v_trunc TYPE p DECIMALS 3.
DATA: v_casasd TYPE /pws/zycit036-vlreal,
v_casasd2 TYPE /pws/zycit036-vlreal,
v_casasd3 TYPE /pws/zycit036-vlreal,
v_casasd4 TYPE /pws/zycit036-vlreal,
v_casasd5 TYPE /pws/zycit036-vlreal,
v_tntgew LIKE /pws/zycie003-ntgew,
v_tot_plan LIKE /pws/zycit003-netpr,
v_it_plan LIKE /pws/zycit003-netpr.
* >> Início da inclusão:
DATA: itab_zycit524 TYPE /pws/zycie524 OCCURS 0 WITH HEADER LINE.
DATA: v_answer.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR353
REPORT /pws/zycir353 MESSAGE-ID /pws/zycim.
TABLES: /pws/zycit218.
* >> Início da inclusão:
TYPE-POOLS: slis.
* << Fim da inclusão
DATA: itab_zycit218 TYPE /pws/zycit218 OCCURS 0 WITH HEADER LINE,
itab_item TYPE /pws/zycie519 OCCURS 0 WITH HEADER LINE,
itab_cab TYPE /pws/zycie518 OCCURS 0 WITH HEADER LINE.
* >> Início da inclusão:
DATA: itab_zycit524 TYPE /pws/zycit524 OCCURS 0 WITH HEADER LINE.
DATA BEGIN OF itab_obrig OCCURS 0.
INCLUDE STRUCTURE /pws/zycit524.
DATA: codigo TYPE /pws/zycit218-codigo,
steuc TYPE /pws/zycit218-steuc,
txt(50) TYPE c.
DATA END OF itab_obrig.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
* << Fim da inclusão
DATA: wa_j_1bbranch LIKE j_1bbranch.
* >> Início da exclusão:
DATA: v_resposta TYPE c.
* << Fim da exclusão
* >> Início da inclusão:
DATA: v_resposta TYPE c,
v_answer TYPE c.
* << Fim da inclusão
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP 1.
...
...
FORM gerar_xml.
DATA: lv_inscr(9) TYPE n.
* >> Início da inclusão: FORM GERAR_XML
CLEAR: itab_obrig, itab_obrig[], itab_zycit524, itab_zycit524[].
SELECT * FROM /pws/zycit524 INTO TABLE itab_zycit524
WHERE estrutura EQ '2'
AND registro EQ '5'
AND campo EQ 'COD_IMPORT'
AND obrig EQ 'X'.
* << Fim da inclusão
CALL FUNCTION 'J_1BREAD_BRANCH_DATA'
EXPORTING
branch = p_branch
bukrs = p_bukrs
IMPORTING
branch_data = wa_j_1bbranch
EXCEPTIONS
branch_not_found = 1
address_not_found = 2
company_not_found = 3
OTHERS = 4.
itab_cab-tp_doc = '1'.
lv_inscr = wa_j_1bbranch-state_insc.
itab_cab-cod_import = lv_inscr.
APPEND itab_cab.
* >> Início da inclusão: FORM GERAR_XML
IF NOT itab_zycit524[] IS INITIAL.
IF itab_cab-cod_import IS INITIAL.
READ TABLE itab_zycit524 INDEX 1.
itab_obrig = itab_zycit524.
itab_obrig-txt = text-012.
APPEND itab_obrig.
ENDIF.
ENDIF.
CLEAR: itab_obrig, itab_zycit524, itab_zycit524[].
SELECT * FROM /pws/zycit524 INTO TABLE itab_zycit524
WHERE estrutura EQ '2'
AND registro EQ '6'
AND obrig EQ 'X'.
* << Fim da inclusão
LOOP AT itab_zycit218.
* >> Início da inclusão: FORM GERAR_XML
PERFORM verifica_obrigatoriedade.
CLEAR: itab_item.
* << Fim da inclusão
itab_item-ncm = itab_zycit218-steuc.
itab_item-suframa = itab_zycit218-codigo.
itab_item-destinacao = itab_zycit218-destinacao.
itab_item-utilizacao = itab_zycit218-utilizacao.
itab_item-cod_trib = itab_zycit218-tributacao.
itab_item-nr_decreto = itab_zycit218-numdecreto.
itab_item-tp_doc = itab_zycit218-tpdoc.
itab_item-nr_doc = itab_zycit218-numdoc.
itab_item-dt_ini = itab_zycit218-dtinicio.
itab_item-dt_fim = itab_zycit218-dtfim.
APPEND itab_item.
itab_zycit218-dtenvio = sy-datum.
itab_zycit218-status = '1'.
MODIFY itab_zycit218.
ENDLOOP.
* >> Início da inclusão: FORM GERAR_XML
IF itab_obrig[] IS INITIAL.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_TRANSFER_DAI_MATRIZ'
DESTINATION 'ZYCIENVIAMATRIZDAI'
TABLES
t_matriz = itab_cab
t_matriz_item = itab_item
EXCEPTIONS
call_function_remote_error = 1
OTHERS = 2.
MODIFY /pws/zycit218 FROM TABLE itab_zycit218.
COMMIT WORK AND WAIT.
MESSAGE i015 WITH text-006.
* >> Início da inclusão: FORM GERAR_XML
ELSE.
CLEAR: v_answer.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = text-009
text_question = text-011
text_button_1 = text-008
icon_button_1 = ' '
text_button_2 = text-010
icon_button_2 = ' '
default_button = '1'
display_cancel_button = ' '
start_column = 25
start_row = 6
IMPORTING
answer = v_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF v_answer EQ '1'.
PERFORM log_de_erro.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDFORM.
* >> Início da inclusão:
FORM log_de_erro.
DELETE ADJACENT DUPLICATES FROM itab_obrig COMPARING ALL FIELDS.
PERFORM fieldcat_alv.
PERFORM exibir_alv.
ENDFORM.
FORM fieldcat_alv.
DATA: lv_col_pos LIKE sy-cucol.
REFRESH: gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'CODIGO'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT218'.
gt_fieldcat-outputlen = '10'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'STEUC'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT218'.
gt_fieldcat-outputlen = '16'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'DESCRICAO'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT524'.
gt_fieldcat-outputlen = '40'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'TXT'.
gt_fieldcat-outputlen = '50'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'ESTRUTURA'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT524'.
gt_fieldcat-outputlen = '8'.
gt_fieldcat-no_out = 'X'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'REGISTRO'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT524'.
gt_fieldcat-outputlen = '7'.
gt_fieldcat-no_out = 'X'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'CAMPO'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT524'.
gt_fieldcat-outputlen = '30'.
gt_fieldcat-no_out = 'X'.
APPEND gt_fieldcat.
lv_col_pos = lv_col_pos + 1.
CLEAR gt_fieldcat.
gt_fieldcat-col_pos = lv_col_pos.
gt_fieldcat-fieldname = 'OBRIG'.
gt_fieldcat-ref_tabname = '/PWS/ZYCIT524'.
gt_fieldcat-outputlen = '9'.
gt_fieldcat-no_out = 'X'.
APPEND gt_fieldcat.
ENDFORM.
FORM exibir_alv.
DATA: w_print TYPE slis_print_alv.
w_print-no_print_listinfos = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = '/PWS/ZYCIR353'
it_fieldcat = gt_fieldcat[]
i_default = 'X'
i_save = 'A'
is_print = w_print
TABLES
t_outtab = itab_obrig[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
FORM verifica_obrigatoriedade.
LOOP AT itab_zycit524.
CLEAR: itab_obrig.
itab_obrig = itab_zycit524.
itab_obrig-codigo = itab_zycit218-codigo.
itab_obrig-steuc = itab_zycit218-steuc.
itab_obrig-txt = text-012.
CASE itab_zycit524-campo.
WHEN 'NCM'.
IF itab_zycit218-steuc IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'SUFRAMA'.
IF itab_zycit218-codigo IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'DESTINACAO'.
IF itab_zycit218-destinacao IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'UTILIZACAO'.
IF itab_zycit218-utilizacao IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'COD_TRIB'.
IF itab_zycit218-tributacao IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'NR_DECRETO'.
IF itab_zycit218-numdecreto IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'TP_DOC'.
IF itab_zycit218-tpdoc IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'NR_DOC'.
IF itab_zycit218-numdoc IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'DT_INI'.
IF itab_zycit218-dtinicio IS INITIAL.
APPEND itab_obrig.
ENDIF.
WHEN 'DT_FIM'.
IF itab_zycit218-dtfim IS INITIAL.
APPEND itab_obrig.
ENDIF.
ENDCASE.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI023
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 296
Texto: (29 caracteres)
"DAI - XML gerado com sucesso."
Comprimento máximo: 29
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 297
Texto: (3 caracteres)
"Sim"
Comprimento máximo: 132
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 298
Texto: (29 caracteres)
"Preencher campos obrigatórios"
Comprimento máximo: 29
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 299
Texto: (3 caracteres)
"Não"
Comprimento máximo: 3
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 300
Texto: (89 caracteres)
"XML não foi enviado. Alguns campos obrigatórios não estão preenchi"
"dos, deseja visualizar?"
Comprimento máximo: 89
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 301
Texto: (8 caracteres)
"o campo:"
Comprimento máximo: 8
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 303
Texto: (38 caracteres)
"é obrigatório para gerar o XML da DAI."
Comprimento máximo: 38
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 304
Texto: (7 caracteres)
"Adição:"
Comprimento máximo: 7
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 305
Texto: (5 caracteres)
"item:"
Comprimento máximo: 5
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCIR353
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 001
Texto: (21 caracteres)
"Critérios de Seleção:"
Comprimento máximo: 21
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 002
Texto: (8 caracteres)
"Atenção:"
Comprimento máximo: 8
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 003
Texto: (43 caracteres)
"Cód.Suframa já foi gerado. Gerar novamente?"
Comprimento máximo: 43
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 004
Texto: (3 caracteres)
"Sim"
Comprimento máximo: 3
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 005
Texto: (3 caracteres)
"Não"
Comprimento máximo: 3
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 006
Texto: (23 caracteres)
"XML gerado com sucesso."
Comprimento máximo: 23
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 007
Texto: (20 caracteres)
"Erro ao gerar o XML."
Comprimento máximo: 20
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 008
Texto: (3 caracteres)
"Sim"
Comprimento máximo: 3
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 009
Texto: (29 caracteres)
"Preencher campos obrigatórios"
Comprimento máximo: 29
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 010
Texto: (3 caracteres)
"Não"
Comprimento máximo: 3
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 011
Texto: (89 caracteres)
"XML não foi enviado. Alguns campos obrigatórios não estão preenchi"
"dos, deseja visualizar?"
Comprimento máximo: 89
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 012
Texto: (31 caracteres)
"é obrigatório para gerar o XML."
Comprimento máximo: 31
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): P_BRANCH
Texto: (24 caracteres)
"Local de Negócio"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): P_BUKRS
Texto: (15 caracteres)
"Empresa"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): SO_COD
Texto: (22 caracteres)
"Código Suframa"
Referência ao Dictionary: NÃO