Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 26/09/2007 00:00:00
Data/Hora Última Alteração: 04/04/2013 11:30:05
Descrição da Nota: DESENVOLVER FUNCIONALIDADE FUNDAP NA NF E NA DI
Sintoma
Desenvolver funcionalidade Fundap
Solução
Novo desenvolvimento para atender os casos de Fundap com Nota de Transferência.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04831 Data: 26/09/2007 Hora: 14:35:37
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04831
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00014
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01927 - 00001 - 6.0 - 00024 - PROGRAMA DE NF ESTÁ CONSUMINDO MUITA MEMÓRIA. PROBLEMAS DE PERFOR
02396 - 00002 - 6.0 - 00025 - FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO
03945 - 00003 - 7.0 - 00002 - NÃO ESTAVA SENDO LEVADO O TEXTO DA OBSERVAÇÃO PARA O CAMPO DA NF
04009 - 00004 - 7.0 - 00001 - ERRO NO CÁLCULO DE DESPESAS E VALORES DA NF UTILIZANDO GRANEL + C
04175 - 00005 - 7.0 - 00002 - ALTERAÇÃO DO NOME DO CAMPO FUNDAPIANA NA DI
----------------------------------------------------------------------------------------------------
DESENVOLVER FUNCIONALIDADE FUNDAP NA NF E NA DI
----------------------------------------------------------------------------------------------------
Palavras Chave:
FUNDAP - NF - DI - FUNDAPIANA
----------------------------------------------------------------------------------------------------
Objetos da nota:
CUAD /PWS/SAPMZYCI016
DOMA /PWS/ZYCID179
DOMD /PWS/ZYCED076
DTEL /PWS/ZYCIL855
DTEL /PWS/ZYGLD568
DTEL /PWS/ZYGLD569
DYNP /PWS/SAPMZYCI016 0130
DYNP /PWS/SAPMZYCI023 0433
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI016I01
REPS /PWS/MZYCI016O01
REPS /PWS/MZYCI016X01
REPS /PWS/MZYCI023F02
REPS /PWS/MZYCI023F04
REPS /PWS/MZYCI023O01
REPS /PWS/MZYCI023X01
REPT /PWS/SAPMZYCI016
SHI3 /PWS/ZYCI
TABL /PWS/ZYCIT478
TABL /PWS/ZYCIT479
TABL /PWS/ZYCIT480
TABU TDDAT
TABU TMENU01
TABU TMENU01R
TABU TMENU01T
TABU TVDIR
TOBJ /PWS/ZYCIT478S
TOBJ /PWS/ZYCIT479S
TRAN /PWS/ZYCIT478
TRAN /PWS/ZYCIT479
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMA /PWS/ZYCID179
------------------------------------------------------------------------
Domínio incluído: /PWS/ZYCID179
Descrição breve incluída (23 caracteres), idioma: PT
"GL - Tipo Operação ICMS"
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Categoria de dados: CHAR
Número de posições: 1
Comprimento de saída: 1
Rotina de conversão:
Letras minúsculas: NÃO
-Valores individuais
Incluído valor fixo "1"
Texto incluído, idioma: PT (10 caracteres):
"Base Cheia"
Incluído valor fixo "2"
Texto incluído, idioma: PT (12 caracteres):
"Redução Base"
Incluído valor fixo "3"
Texto incluído, idioma: PT (17 caracteres):
"Alíquota Reduzida"
Incluída tabela de valores:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYCED076
------------------------------------------------------------------------
Domínio modificado: /PWS/ZYCED076
-Valores individuais
Incluído valor fixo "FU"
Texto modificado, idioma: PT (10 caracteres):
"Fundapiana"
Excluído valor fixo "FD"
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
*Criados elementos de dados
Modificações efetuadas em DTEL /PWS/ZYGLL1358
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLL1358
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (37 caracteres), idioma: PT
"CI - Tipo de Processo"
Categoria de dados: /PWS/ZYGLD568
Domínio: CHAR1
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 (10 caracteres), idioma: PT
"Tp.proc."
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Tp.proc."
Comprimento máximo do denominador longo: 32
Denominador longo incluído (32 caracteres), idioma: PT
"Tp.proc."
Comprimento máximo do título: 32
Título incluído (32 caracteres), idioma: PT
"Tp.proc."
Modificações efetuadas em DTEL /PWS/ZYCIL855
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL855
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (26 caracteres), idioma: PT
"GL - Tipo de Operação ICMS"
Categoria de dados: Domínio
Domínio: /PWS/ZYCID179
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 (7 caracteres), idioma: PT
"Tp.ICMS"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (12 caracteres), idioma: PT
"Tp.Oper.ICMS"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (14 caracteres), idioma: PT
"Tipo Oper.ICMS"
Comprimento máximo do título: 18
Título incluído (18 caracteres), idioma: PT
"Tipo Operação ICMS"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLD568
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLD568
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (15 caracteres), idioma: PT
"GL - Percentual"
Categoria de dados: Domínio
Domínio: J_1BTXRATE
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 (10 caracteres), idioma: PT
"Percentual"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (10 caracteres), idioma: PT
"Percentual"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (10 caracteres), idioma: PT
"Percentual"
Comprimento máximo do título: 10
Título incluído (10 caracteres), idioma: PT
"Percentual"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLD569
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLD569
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (15 caracteres), idioma: PT
"GL - Mensagem 1"
Categoria de dados: Domínio
Domínio: CHAR70
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 (5 caracteres), idioma: PT
"Msg 1"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (10 caracteres), idioma: PT
"Mensagem 1"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (10 caracteres), idioma: PT
"Mensagem 1"
Comprimento máximo do título: 70
Título incluído (10 caracteres), idioma: PT
"Mensagem 1"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT478
*Criada tabela TABL /PWS/ZYCIT478
*Características
Classe desenvolvimento /PWS/ZYCI
Idioma original PT
Classe de entrega A
CAMPOS CHAVE INICIAL TIPO DE CAMPO CATEG COMP CASA
MANDT X X MANDT CLNT 3 0
LIFNR X X LIFNR CHAR 10 0
OP_ICMS X X /PWS/ZYCIL855 CHAR 1 0
PERCENT /PWS/ZYGLD568 DEC 6 2
* criar transação
/PWS/ZYCIT478
* criar visão de atualização
Tabela/visão /PWS/ZYCIT478
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
Ctg.atualização
Nº tela atualização Tela de síntese 478
Tela individual 0
Rotina de registro
Código de ajuste Ajustável automaticamente
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT479
* Características
Classe desenvolvimento /PWS/ZYCI
Idioma original PT
Categoria de tabela Tabela transparente
Classe de entrega A Tabela de aplicação (dados mestre e de movimento)
*Criada tabela TABL /PWS/ZYCIT479
CAMPOS CHAVE INICIAL TIPO DE CAMPO CATEG COMP CASA TAB.VERIFICACAO
MANDT X X MANDT CLNT 3 0
TPNF X X MANDT CLNT 3 0 /PWS/ZYCIT018
TEXT1 /PWS/ZYGLD569 CHAR 70 0
TEXT2 /PWS/ZYCIL217 CHAR 70 0
* criar transação
/PWS/ZYCIT479
*gerar visão de atualização de tabela
Tabela/visão /PWS/ZYCIT479
Grupo de autorização ZYCE
Objeto autorização S_TABU_DIS
Grupo de funções /PWS/ZYCIGF1
Cl.desenvolvimento /PWS/ZYCI
Ctg.atualização
Nº tela atualização Tela de síntese 479
Tela individual 0
Rotina de registro
Código de ajuste Ajustável automaticamente
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT480
*Criada tabela TABL /PWS/ZYCIT480
*características
Classe desenvolvimento /PWS/ZYCI
Idioma original PT
Categoria de tabela Tabela transparente
Classe de entrega A Tabela de aplicação (dados mestre e de movimento)
CAMPOS CHAVE INICIAL TIPO DE CAMPO CATEG COMP CASA TABELA DE VERIFICAÇÃO
MANDT X X MANDT CLNT 3 0 T000
NRSEQ X X /PWS/ZYCIL001 CHAR 10 0
EBELN X X EBELN CHAR 10 0
EBELP X X EBELP NUMC 5 0
VL_NF_ENT WRBTR CURR 13 2
WAERS WAERS CUKY 5 0 TCURC
VL_CUSTO_MERC WRBTR CURR 13 2
VL_ALIQICMS J_1BTXRATE DEC 6 2
VL_BASRED /PWS/ZYCIL041 DEC 6 2
VL_DESP_ACESS WRBTR CURR 13 2
VL_BASE_IPI WRBTR CURR 13 2
VL_IPI WRBTR CURR 13 2
VL_BASE_ICMS WRBTR CURR 13 2
VL_ICMS WRBTR CURR 13 2
VL_UNIT /PWS/ZYCIL128 CURR 20 7
VL_NF_TRANSF WRBTR CURR 13 2
DESCONTO WRBTR CURR 13 2
----------------------------------------------------------------------------------------------------
Modificações efetuadas em SHI3 /PWS/ZYCI
*Acrescentado no menu /PWS/ZYCI
Entrada de menu
Mensagem para NF Fundap
Código de transação
/PWS/ZYCIT479
Entrada de menu
Percentual de Desconto Fundap
Código de transação
/PWS/ZYCIT478
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCI016
*Criado o Status 0130
Status Tipo Code de objeto Code de objeto Descrição
0130 P 000012 0001 CI - Faturamento Fundap
*Criado Texto informativo Teclas de função CI - Criar NF Remessa
Código de função Tecla F Tecla de função Código de função Texto
000006 27 Ctrl-F3 FUNDAP Fundap
000010 05 F5 BACK Voltar
000012 05 F5 BACK Voltar
*Criado Texto informativo Botões CI - Faturamento Fundap
Code de objeto Code Item Tecla de função Código de função Id Exibição
Texto de ícones
000010 0001 01 F5 BACK
Voltar
informativo Botões CI - Faturamento Fundap
Code de objeto Code Item Tecla de função Código de função Id Exibição
Texto de ícones
000012 0001 01 F5 BACK
Voltar
*Criado Texto informativo Funções ativas CI - Criar NF Global
Status Código de função
0100 FUNDAP
*Criado Atributos menu, textos estáticos
Texto Seleção Descrição
Menu de contexto CI - Faturamento Fundap
*Criado Funções com textos estáticos
Código de função Categoria Res. Nome campo p/texto GUI dinâmico
FUNDAP ICON_PARTNER
*Criado Botão Back
Código de função BACK
Categoria de função E Comando exit
Modificação Original
Texto de função Voltar
Nome de ícone ICON_ARROW_LEFT
Texto de ícones Voltar
Texto informativo Voltar
Seleção direta
Modificação Original
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI016 0130
*Criada a tela 0130
Tela 130
DESCRIÇÃO BREVE: CI - Faturamento Operação Fundap - NF
TIPO DE TELA: Caixa de Diálogo Modal
OUTROS ATRIBUTOS:
TELA SEGUINTE: 130
Manter dados Desativado
Fonte equidistante Desativado
Compressão tmp.exec. Ativado
Tela-modelo Desativado
Manter posição de rola Desativado
Posição cursor
Grp.telas
LINHAS/COLUNAS:
OCUPADO: 14 / 84
ATUAL : 14 / 85
*LAYOUT DA TELA
....+...10....+...10....+...30....+...40....+...50....+...60....+...70....+...80....+
001 Faturamento Operação Fundap - NF
002
003 NF Entrada ________________ Base ICMS Venda ________________
004
005 Custo Mercadoria ________________ ICMS Venda ________________
006
007 Despesa Acessória ________________ Preço Unitário ________________
008
009 Base IPI Venda ________________ NF Transferência ________________
010
011 IPI Venda ________________ Desconto Comercial ________________
012
013
014
*ELEMENTOS DE TELA
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
Q_FUNDAP
Quadr 1 1 84 84 1 CHAR
/PWS/ZYCIT480-VL_NF_ENT
Texto 3 3 10 10 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_NF_ENT
I/O 3 21 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_BASE_ICMS
Texto 3 45 15 15 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_BASE_ICMS
I/O 3 65 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_CUSTO_MERC
Texto 5 3 16 16 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_CUSTO_MERC
I/O 5 21 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_ICMS
Texto 5 45 10 10 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_ICMS
I/O 5 65 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_DESP_ACESS
Texto 7 3 17 17 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_DESP_ACESS
I/O 7 21 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_UNIT
Texto 7 45 14 14 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_UNIT
I/O 7 65 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_BASE_IPI
Texto 9 3 14 14 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_BASE_IPI
I/O 9 21 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_NF_TRANSF
Texto 9 45 16 16 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-VL_NF_TRANSF
I/O 9 65 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-VL_IPI
Texto 11 3 9 9 1 CHAR X F
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
/PWS/ZYCIT480-DESCONTO
Texto 11 45 18 18 1 CHAR X F
Alinh.à dir., Fonte equidistante
/PWS/ZYCIT480-DESCONTO
I/O 11 65 16 16 1 CURR X Off
Alinh.à dir.
Código da moeda=/PWS/ZYCIT480-WAERS
OK
*LÓGICA DE PROCESSAMENTO
PROCESS BEFORE OUTPUT.
MODULE STATUS_0130.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0130.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI023 0433
*Alterações nos campos de tela
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
*DE:
FRM02
Quadr 1 1 30 30 1 CHAR
*PARA:
FRM02
Quadr 1 1 32 32 1 CHAR
*DE:
T_ICMSBS
I/O 2 13 15 15 1 DEC Off
Alinh.à dir.
*PARA:
T_ICMSBS
I/O 2 13 25 16 1 DEC Off
Alinh.à dir.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
v_vlfrete = v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr * v_taxa.
ENDIF.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL .
itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr / v_taxa.
ENDIF.
ENDIF.
* << Fim da inclusão
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).
v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
ENDIF.
ENDLOOP.
...
...
LOOP AT itab_despesa WHERE netpr NE 0.
CLEAR: v_tot_desp.
LOOP AT itab_zycit003 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr * v_taxa.
ENDIF.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL .
itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr / v_taxa.
ENDIF.
ENDIF.
* << Fim da inclusão
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
CLEAR itab_zycit036_aux.
IF NOT itab_despesa-matuse IS INITIAL.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF itab_ekpo-j_1bmatuse NE itab_despesa-matuse .
CONTINUE.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
FORM seleciona_itens_nfg.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
DATA: BEGIN OF itab_zycit049_fndp OCCURS 0.
INCLUDE STRUCTURE /pws/zycit049.
DATA: END OF itab_zycit049_fndp .
data v_vlsisco like v_vldp.
* << Fim da inclusão
...
...
LOOP AT itab_zycit042.
MODIFY itab_zycit042 TRANSPORTING netpr.
ENDLOOP.
IF NOT itab_zycit042[] IS INITIAL.
SELECT * FROM t001w INTO TABLE itab_t001w
FOR ALL ENTRIES IN itab_zycit042
WHERE werks = itab_zycit042-werks.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF sy-subrc EQ 0 AND
itab_zycit033[] IS INITIAL.
SELECT * FROM /pws/zycit033
INTO TABLE itab_zycit033
WHERE clnf = text-027
AND bukrs = /pws/zycie041-bukrs.
ENDIF.
ENDIF.
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI' .
IF sy-tcode EQ '/PWS/ZYCI016_C' .
CLEAR v_vlreal .
IF NOT itab_zycit003[] IS INITIAL.
SELECT ebeln parvw lifn2 FROM ekpa
INTO TABLE itab_ekpa
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND parvw EQ 'FU' .
LOOP AT itab_zycit003.
READ TABLE itab_ekpa WITH KEY ebeln = itab_zycit003-ebeln.
IF sy-subrc NE 0.
EXIT .
ENDIF.
ENDLOOP.
SELECT SINGLE * FROM /pws/zycit085
INTO /pws/zycie085
WHERE nrseqdi EQ /pws/zycie085-nrseqdi.
IF sy-subrc EQ 0.
IF /pws/zycit000 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit000
WHERE land1 EQ t001-land1.
ENDIF .
SELECT * FROM /pws/zycit049
INTO TABLE itab_zycit049_fndp
WHERE nrseq EQ /pws/zycie085-nrseqdi
AND vldp > 0.
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie085-bukrs.
ENDIF.
ENDIF.
LOOP AT itab_zycit049_fndp
WHERE tpdesp NE /pws/zycit000-cod_sisc.
IF itab_zycit049_fndp-waers EQ /pws/zycie085-waersfob .
v_vlreal = v_vlreal + itab_zycit049_fndp-vldp .
ELSE.
PERFORM trata_decimais USING itab_zycit049_fndp-waers
itab_zycit049_fndp-vldp.
PERFORM taxa_converte USING itab_zycit049_fndp-waers
/pws/zycie085-dttax
CHANGING v_taxa_desp.
v_vlreal = v_vlreal + ( itab_zycit049_fndp-vldp *
v_taxa_desp ) .
ENDIF.
ENDLOOP.
LOOP AT itab_zycit003.
CLEAR : itab_zycit480,
v_vlii, v_vlipi,
v_vlpis, v_vlcofins.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
itab_zycit480-nrseq = itab_zycit003-nrseq.
itab_zycit480-ebeln = itab_zycit003-ebeln.
itab_zycit480-ebelp = itab_zycit003-ebelp.
IF NOT '356' CA itab_zycit100-codregtri .
v_vlii = itab_zycit100-vlii.
ENDIF.
IF NOT '156' CA itab_zycit100-codregtriipi .
v_vlipi = itab_zycit100-vlipi.
ENDIF.
IF NOT '356' CA itab_zycit100-codregtripiscofi.
v_vlpis = itab_zycit100-vlpis.
v_vlcofins = itab_zycit100-vlcofins.
ENDIF.
itab_zycit480-vl_aliqicms = itab_zycit003-advalicms .
itab_zycit480-vl_basred = itab_zycit003-basred .
IF itab_zycit100-waersbem NE /pws/zycie085-waersfob.
PERFORM trata_decimais USING itab_zycit100-waersbem
itab_zycit100-vlfob.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa_desp.
itab_zycit100-vlfob = itab_zycit100-vlfob * v_taxa_desp .
IF NOT /pws/zycie085-vlfob IS INITIAL.
v_vldp = ( v_vlreal * itab_zycit100-vlfob ) /
/pws/zycie085-vlfob.
ENDIF.
ELSE.
IF NOT /pws/zycie085-vlfob IS INITIAL.
v_vldp = ( v_vlreal * itab_zycit100-vlfob ) /
/pws/zycie085-vlfob.
ENDIF.
ENDIF.
READ TABLE itab_zycit049_fndp WITH KEY
tpdesp = /pws/zycit000-cod_sisc .
IF sy-subrc EQ 0.
IF itab_zycit049_fndp-waers EQ /pws/zycie085-waersfob .
IF NOT /pws/zycie085-vlfob IS INITIAL.
v_vlsisco =
( itab_zycit049_fndp-vldp * itab_zycit100-vlfob ) /
/pws/zycie085-vlfob.
ENDIF.
ELSE.
IF itab_zycit049_fndp-waers EQ /pws/zycbt007-waersb.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa_desp.
itab_zycit049_fndp-vldp =
itab_zycit049_fndp-vldp / v_taxa_desp .
ELSE.
PERFORM taxa_converte USING itab_zycit049_fndp-waers
/pws/zycie085-dttax
CHANGING v_taxa_desp.
itab_zycit049_fndp-vldp =
itab_zycit049_fndp-vldp / v_taxa_desp .
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa_desp.
itab_zycit049_fndp-vldp =
itab_zycit049_fndp-vldp * v_taxa_desp .
ENDIF.
IF NOT /pws/zycie085-vlfob IS INITIAL.
v_vlsisco =
( itab_zycit049_fndp-vldp * itab_zycit100-vlfob ) /
/pws/zycie085-vlfob.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa_desp.
v_vlsisco = v_vlsisco * v_taxa_desp .
ENDIF.
ENDIF.
ENDIF.
itab_zycit480-vl_nf_ent = itab_zycit100-baseii +
v_vlii + v_vlipi + v_vlpis + v_vlcofins
+ v_vlsisco .
READ TABLE itab_zycit042 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 .
READ TABLE itab_t001w WITH KEY werks = itab_zycit042-werks.
IF sy-subrc EQ 0.
READ TABLE itab_zycit033 WITH KEY tpnf = itab_zycit042-tpnf
regio = itab_t001w-regio.
IF itab_zycit033-tribipi EQ '3' .
itab_zycit480-vl_custo_merc = itab_zycit480-vl_nf_ent.
ELSE.
itab_zycit480-vl_custo_merc =
itab_zycit480-vl_nf_ent - itab_zycit100-vlipi.
ENDIF.
ENDIF.
ENDIF.
itab_zycit480-vl_desp_acess =
( ( v_vldp * itab_zycit480-vl_basred ) / 100 ) /
( 1 - ( itab_zycit480-vl_aliqicms / 100 ) ).
itab_zycit480-vl_base_ipi =
( ( itab_zycit480-vl_custo_merc *
( itab_zycit480-vl_basred / 100 ) ) /
( 1 - ( itab_zycit480-vl_aliqicms / 100 ) ) ) +
itab_zycit480-vl_desp_acess.
itab_zycit480-vl_ipi = itab_zycit480-vl_base_ipi *
( itab_zycit003-advalipi / 100 ) .
itab_zycit480-vl_base_icms =
( ( ( itab_zycit480-vl_custo_merc * itab_zycit480-vl_basred ) /
100 ) / ( 1 - ( itab_zycit480-vl_aliqicms / 100 ) ) ) +
itab_zycit480-vl_desp_acess.
itab_zycit480-vl_icms = itab_zycit480-vl_base_icms *
( itab_zycit480-vl_aliqicms / 100 ) .
IF NOT itab_zycit003-qtd_iten IS INITIAL.
itab_zycit480-vl_unit =
( itab_zycit480-vl_base_icms - itab_zycit480-vl_desp_acess ) /
itab_zycit003-qtd_iten .
ENDIF.
itab_zycit480-vl_nf_transf =
( itab_zycit480-vl_base_ipi + itab_zycit480-vl_ipi ).
READ TABLE itab_ekpa WITH KEY ebeln = itab_zycit003-ebeln.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit478
WHERE lifnr EQ itab_ekpa-lifn2.
itab_zycit480-desconto = itab_zycit480-vl_custo_merc *
( /pws/zycit478-percent / 100 ).
ENDIF.
APPEND itab_zycit480.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit480
INTO TABLE itab_zycit480
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
...
MODIFY /pws/zycit053 FROM TABLE itab_zycit053_s.
* >> Início da inclusão: FORM FILL_DATA_J1B1
IF NOT itab_zycit480[] IS INITIAL.
MODIFY /pws/zycit480 FROM TABLE itab_zycit480.
ENDIF.
* << Fim da inclusão
COMMIT WORK.
IF v_modalidade = '99' OR ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
...
...
FREE itab_zycit100aux.
LOOP AT itab_zycit100.
MOVE-CORRESPONDING itab_zycit100 TO itab_zycit100aux.
APPEND itab_zycit100aux.
ENDLOOP.
PERFORM montar_custo_di USING /pws/zycie041-nrseq.
it_zycee005-bukrs = /pws/zycie041-bukrs.
it_zycee005-branch = itab_zycit042-j_1bbranch.
it_zycee005-parvw = text-015.
it_zycee005-parid = itab_zycit042_aux-lifnr.
* >> Início da inclusão: FORM CABECALHO_NF
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI'.
READ TABLE itab_ekpa WITH KEY ebeln = itab_zycit042_aux-ebeln
parvw = 'FU'.
IF sy-subrc EQ 0.
it_zycee005-parid = itab_ekpa-lifn2.
ENDIF.
ENDIF.
* << Fim da inclusão
it_zycee005-docdat = sy-datlo.
PERFORM verifica_data.
IF wa_zycit048-pstdat = '1'.
it_zycee005-pstdat = sy-datum.
...
...
FORM mensagens_nf.
* >> Início da inclusão: FORM MENSAGENS_NF
TABLES : /pws/zycit479.
DATA: BEGIN OF itab_pedido OCCURS 0 .
DATA: ebeln TYPE ekpo-ebeln.
DATA: END OF itab_pedido.
* << Fim da inclusão
...
...
LOOP AT itab_zycit042_mark.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
* >> Início da exclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0 AND itab_zycit100-codregtri NE '3' AND
itab_zycit100-codregtri NE '5'.
* << Fim da inclusão
v_valor_r = v_valor_r + itab_zycit100-vlii.
ENDIF.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp.
MOVE itab_zycit003 TO itab_zycit003_mark.
APPEND itab_zycit003_mark.
ENDLOOP.
v_tamanho = '................'.
CLEAR v_vldp_x.
...
...
v_tot_real = v_tot_real +
( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).
ENDLOOP.
DESCRIBE TABLE itab_zycit042 LINES v_lines.
DESCRIBE TABLE itab_zycit003 LINES v_lin.
LOOP AT itab_zycit049_aux_r WHERE nrseq = v_nrseq AND
vldp NE 0.
it_zycee006-indice = v_ind.
IF itab_zycit049_aux_r-tpdesp EQ /pws/zycit000-cod_sisc.
IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM MENSAGENS_NF
PERFORM trata_decimais USING itab_zycit049_aux_r-waers
itab_zycit049_aux_r-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_aux_r-waers
itab_zycit085-dttax CHANGING v_taxa_desp.
v_vldp = itab_zycit049_aux_r-vldp *
v_taxa_desp.
ELSE.
v_vldp = itab_zycit049_aux_r-vldp .
ENDIF.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049_aux_r-tpdesp.
READ TABLE itab_zycit020 WITH KEY codigo = itab_zycit019-codigo
regio = itab_zycit019-regio.
ELSE.
IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM MENSAGENS_NF
PERFORM trata_decimais USING itab_zycit049_aux_r-waers
itab_zycit049_aux_r-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_aux_r-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049_aux_r-vldp = itab_zycit049_aux_r-vldp *
v_taxa_desp.
ENDIF.
v_vldp_aux = itab_zycit049_aux_r-vldp.
LOOP AT itab_zycit003_mark.
v_idx = sy-tabix.
CLEAR: itab_zycit039, itab_zycit020.
...
...
LOOP AT itab_zycit042_mark.
* >> Início da inclusão: FORM MENSAGENS_NF
IF v_fundap NE 'X'.
* << Fim da inclusão
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
IF sy-subrc EQ 0 AND
( /pws/zycit085-tpdi EQ 'N' AND
NOT '56' CA itab_zycit100-codregtriicms ) OR
( /pws/zycit085-tpdi EQ 'S' AND
NOT '56' CA itab_zycit100-codregtri ).
IF itab_zycit100-icms_dif NE 'X'.
v_icms_dif = v_icms_dif + itab_zycit100-vlicms.
ELSE.
v_dif = 'X'.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM MENSAGENS_NF
ELSE.
READ TABLE itab_zycit480 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
IF sy-subrc EQ 0.
v_icms_dif = v_icms_dif + itab_zycit480-vl_icms.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDLOOP.
* >> Início da exclusão: FORM MENSAGENS_NF
CLEAR itab_zycit042_mark[].
REFRESH itab_zycit042_mark[].
* << Fim da exclusão
IF v_icms_dif NE 0.
v_ind = v_ind + 1.
WRITE v_icms_dif TO v_dificms CURRENCY itab_zycit049-waers.
CONCATENATE text-078 v_dificms
INTO it_zycee006-msg SEPARATED BY space.
it_zycee006-indice = v_ind.
APPEND it_zycee006.
ENDIF.
IF v_dif = 'X'.
v_ind = v_ind + 1.
it_zycee006-msg = text-097 .
CLEAR v_dif.
it_zycee006-indice = v_ind.
APPEND it_zycee006.
ENDIF.
...
...
APPEND it_zycee006.
ENDIF.
IF NOT /pws/zycie041-observ4 IS INITIAL.
it_zycee006-indice = '6'.
it_zycee006-msg = /pws/zycie041-observ4.
APPEND it_zycee006.
ENDIF.
IF NOT /pws/zycie041-observ5 IS INITIAL.
it_zycee006-indice = '7'.
it_zycee006-msg = /pws/zycie041-observ5.
* >> Início da inclusão: FORM MENSAGENS_NF
APPEND it_zycee006.
ENDIF.
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI'.
LOOP AT itab_zycit042_mark.
MOVE itab_zycit042_mark-ebeln TO itab_pedido-ebeln.
COLLECT itab_pedido.
ENDLOOP.
SORT itab_pedido BY ebeln.
CLEAR v_cont .
DESCRIBE TABLE itab_pedido LINES v_line.
LOOP AT itab_pedido.
IF sy-tabix EQ '1' .
it_zycee006-msg = text-102.
ENDIF.
CONCATENATE it_zycee006-msg itab_pedido-ebeln INTO it_zycee006-msg
SEPARATED BY '-' .
v_cont = v_cont + 1.
IF v_cont EQ '5' .
v_ind = v_ind + 1.
it_zycee006-indice = v_ind.
APPEND it_zycee006.
CONCATENATE it_zycee006-msg itab_pedido-ebeln INTO it_zycee006-msg
SEPARATED BY ',' .
CLEAR v_cont.
ENDIF.
IF sy-tabix EQ v_line.
v_ind = v_ind + 1.
it_zycee006-indice = v_ind.
APPEND it_zycee006.
ENDIF.
ENDLOOP.
SELECT SINGLE * FROM /pws/zycit479
WHERE tpnf EQ itab_zycit042_mark-tpnf.
IF sy-subrc EQ 0.
it_zycee006-msg = /pws/zycit479-text1.
* << Fim da inclusão
APPEND it_zycee006.
* >> Início da inclusão: FORM MENSAGENS_NF
it_zycee006-msg = /pws/zycit479-text2.
APPEND it_zycee006.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MENSAGENS_NF
CLEAR itab_zycit042_mark[].
REFRESH itab_zycit042_mark[].
* << Fim da inclusão
ENDFORM.
...
...
WHERE bukrs EQ /pws/zycie041-bukrs.
ENDIF.
LOOP AT itab_zycit036
WHERE ebeln = itab_zycit044-ebeln
AND ebelp = itab_zycit044-ebelp.
READ TABLE itab_zycit036_di
WITH KEY ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF itab_zycit036-codigo = 'FRETEI'.
* >> Início da exclusão: FORM VALORES_R
PERFORM trata_decimais USING itab_zycit036_di-waers_real
CHANGING itab_zycit036_di-vlreal.
* << Fim da exclusão
IF itab_zycit036_di-waers_real = /pws/zycbt007-waersb.
it_zycee007-netfre =
( ( itab_zycit036_di-vlreal ) /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ELSE.
it_zycee007-netfre =
( ( itab_zycit036_di-vlreal * wa_zycit085-ukursfre ) /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ENDIF.
ELSEIF itab_zycit036-codigo = 'SEGURO'.
* >> Início da exclusão: FORM VALORES_R
PERFORM trata_decimais USING itab_zycit036_di-waers_real
CHANGING itab_zycit036_di-vlreal.
* << Fim da exclusão
IF itab_zycit036_di-waers_real = /pws/zycbt007-waersb.
it_zycee007-netins =
( ( itab_zycit036_di-vlreal ) /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ELSE.
it_zycee007-netins =
( ( itab_zycit036_di-vlreal * wa_zycit085-ukursseg ) /
itab_zycit044-menge * itab_zycit044-qtd_item ).
ENDIF.
ELSEIF itab_zycit036-codigo = 'II'.
...
...
IF sy-subrc EQ 0 AND
v_modalidade NE '99'
AND ( t001-land1 NE 'AR' AND t001-land1 NE 'CL' ).
MESSAGE i033.
ELSE.
IF ( sy-subrc = 0 AND
v_valor NE '9999999999' ) OR
sy-subrc NE 0.
IF v_modalidade = '99'.
v_apaga = 'X'.
* >> Início da exclusão: FORM EFETUA_CANCELAMENTO_G
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM EFETUA_CANCELAMENTO_G
IF v_valor NE '9999999999'.
PERFORM fill_data_j1b2n.
* << Fim da exclusão
ENDIF.
PERFORM fill_data_j1b3.
/pws/zycie041-bukrs = space.
ENDIF.
ENDIF.
...
...
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049-tpdesp.
IF itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
PERFORM trata_decimais USING itab_zycit049-waers
itab_zycit049-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049-vldp = itab_zycit049-vldp *
v_taxa_desp.
itab_zycit049-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.
...
...
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049-tpdesp.
IF itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
PERFORM trata_decimais USING itab_zycit049-waers
itab_zycit049-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049-vldp = itab_zycit049-vldp *
v_taxa_desp.
itab_zycit049-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.
...
...
FORM itens_nfnew.
* >> Início da exclusão: FORM ITENS_NFNEW
DATA: v_val_icms LIKE /pws/zycee007-netpr,
v_base_ps LIKE /pws/zycee007-base.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFNEW
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI' AND NOT
itab_zycit480[] IS INITIAL.
v_fundap = 'X' .
else.
clear v_fundap.
endif.
* << Fim da inclusão
...
...
IF NOT itab_ekpo-bwtar IS INITIAL.
it_zycee007-bwtar = itab_ekpo-bwtar.
ENDIF.
it_zycee007-menge = itab_zycit042-qtd_iten.
PERFORM converte_unidade.
it_zycee007-meins = v_mseh3.
* >> Início da inclusão: FORM ITENS_NFNEW
if v_fundap ne 'X'.
* >> Fim da inclusão
PERFORM valores.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* >> Fim da inclusão
PERFORM convert_cfop.
it_zycee007-cfop = v_cfop.
it_zycee007-taxlw1 = itab_zycit033-fisicms.
it_zycee007-taxlw2 = itab_zycit033-fisipi.
...
...
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'ICMS'.
IF itab_zycit100-icms_dif = 'X'.
v_icms_dif = v_icms_dif + itab_zycit100-vlicms.
ELSE.
IF NOT itab_zycit100-vlicms IS INITIAL.
it_zycee007-taxval = itab_zycit036-vlreal. "Montante
ELSE.
CLEAR it_zycee007-taxval.
ENDIF.
ENDIF.
IF NOT it_zycee007-taxval IS INITIAL.
it_zycee007-rate = itab_zycit003-advalicms.
ENDIF.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
* >> Início da inclusão: FORM ITENS_NFNEW
IF v_fundap eq 'X' .
PERFORM valores_fundap.
ELSE.
* >> Fim da inclusão
CASE itab_zycit033-tribicms.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms.
v_base = v_montante1.
v_excbas = ( v_montante1 / v_basred * 100 ) - v_base.
IF /pws/zycit062-base IS INITIAL AND
v_basred < '100' AND
NOT /pws/zycit062-flag_icms IS INITIAL.
IF /pws/zycit062-tred IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
v_excbas = v_excbas - ( v_excbas *
( itab_zycit003-advalicms / 100 ) ) .
ENDIF.
ELSE.
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL AND
v_basred < 100.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
v_excbas = v_excbas + ( v_excbas *
( itab_zycit003-advalicms / 100 ) ) .
ENDIF.
ENDIF.
...
...
v_montante1 = itab_zycit100-baseipi.
it_zycee007-othbas2 = v_montante1.
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-othbas2 = it_zycee007-othbas2 +
it_zycee007-taxval.
ENDIF.
IF itab_zycit100-codregtriicms EQ '3'.
it_zycee007-p_excbas = itab_zycit100-vlicms.
ENDIF.
ENDCASE.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.
SELECT * FROM /pws/zycit398
INTO TABLE itab_zycit398
WHERE bukrs EQ /pws/zycie041-bukrs
AND clnf EQ itab_zycit033-clnf
AND tpnf EQ itab_zycit033-tpnf
AND ( tributos EQ 'PIS' OR
tributos EQ 'COFINS' ).
READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
...
...
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit036.
"Verifica entrada de Cofins no custo efetivo
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'COFINS'.
it_zycee007-taxval_cof = itab_zycit036-vlreal.
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-taxtyp_cof = itab_zycit398-taxtyp. "tipo imposto
ELSE.
CLEAR it_zycee007-taxtyp_cof.
ENDIF.
IF NOT it_zycee007-taxval_cof IS INITIAL.
it_zycee007-rate_cof = itab_zycit100-advalcofins. "Aliquota
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-base_cof = v_montante1.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-cof_excbas = v_montante1.
CLEAR it_zycee007-taxval_cof.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-othbas_cof = v_montante1.
ENDCASE.
ENDIF.
* >> Início da inclusão: FORM ITENS_NFNEW
IF ( NOT /pws/zycie001-modalidade EQ '05' AND
NOT /pws/zycie001-tpdecl EQ 'DI' ) OR
itab_zycit480[] IS INITIAL.
* << Fim da inclusão
IF /pws/zycit062-flag_icms = 'X' AND /pws/zycit001-meioemba NE 'PS'.
IF NOT v_basred IS INITIAL.
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit042-vldp + ( ( it_zycee007-taxval * 100 ) /
v_basred ) + v_impostos.
ELSE.
v_basred = '100'.
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit042-vldp + ( ( it_zycee007-taxval * 100 ) /
v_basred ) + v_impostos.
ENDIF.
...
...
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-othbas2 = it_zycee007-othbas2 +
it_zycee007-taxval_pis + it_zycee007-taxval_cof.
CLEAR it_zycee007-p_excbas.
ENDIF.
ENDCASE.
ENDIF.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF .
* >> Fim da inclusão
CLEAR /pws/zycit036.
it_zycee007-mfrpn = itab_zycit003-mfrpn.
CONCATENATE itab_zycit042-ebeln '/' itab_zycit042-ebelp
INTO it_zycee007-msg1.
IF /pws/zycit001-regime = '16'.
it_zycee007-netpr = ( it_zycee007-taxval + it_zycee007-netoth ) /
it_zycee007-menge.
CLEAR: it_zycee007-netfre , it_zycee007-netins, it_zycee007-netoth.
ENDIF.
...
...
* >> Início da inclusão
FORM call_fundap.
CLEAR v_ok.
LOOP AT itab_zycit003 WHERE tpnf IS initial.
ENDLOOP.
IF sy-subrc EQ 0.
MESSAGE i015 WITH text-100.
EXIT .
ELSE.
IF NOT itab_zycit003[] IS INITIAL.
SELECT ebeln parvw lifn2 FROM ekpa
INTO TABLE itab_ekpa
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND parvw EQ 'FU' .
LOOP AT itab_zycit003.
READ TABLE itab_ekpa WITH KEY ebeln = itab_zycit003-ebeln.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-101.
v_ok = 'N'.
EXIT .
ELSE.
IF itab_ekpa-lifn2 IS INITIAL.
MESSAGE i015 WITH text-101.
EXIT .
v_ok = 'N'.
ENDIF.
ENDIF.
ENDLOOP.
IF NOT v_ok = 'N'.
CLEAR /pws/zycit480.
LOOP AT itab_zycit480.
/pws/zycit480-vl_nf_ent =
itab_zycit480-vl_nf_ent + /pws/zycit480-vl_nf_ent .
/pws/zycit480-vl_custo_merc =
itab_zycit480-vl_custo_merc + /pws/zycit480-vl_custo_merc.
/pws/zycit480-vl_desp_acess =
itab_zycit480-vl_desp_acess + /pws/zycit480-vl_desp_acess.
/pws/zycit480-vl_base_ipi =
itab_zycit480-vl_base_ipi + /pws/zycit480-vl_base_ipi.
/pws/zycit480-vl_ipi =
itab_zycit480-vl_ipi + /pws/zycit480-vl_ipi .
/pws/zycit480-vl_base_icms =
itab_zycit480-vl_base_icms + /pws/zycit480-vl_base_icms .
/pws/zycit480-vl_icms =
itab_zycit480-vl_icms + /pws/zycit480-vl_icms.
/pws/zycit480-vl_unit =
itab_zycit480-vl_unit + /pws/zycit480-vl_unit.
/pws/zycit480-vl_nf_transf =
itab_zycit480-vl_nf_transf + /pws/zycit480-vl_nf_transf .
/pws/zycit480-desconto =
itab_zycit480-desconto + /pws/zycit480-desconto .
ENDLOOP.
CALL SCREEN '0130' STARTING AT 5 2.
ELSE.
CLEAR v_ok .
EXIT.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
FORM valores_fundap.
READ TABLE itab_zycit480 WITH KEY ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF sy-subrc EQ 0.
it_zycee007-netoth = itab_zycit480-vl_desp_acess.
it_zycee007-netpr = itab_zycit480-vl_unit.
it_zycee007-taxval = itab_zycit480-vl_icms.
IF NOT it_zycee007-taxval IS INITIAL.
it_zycee007-rate = itab_zycit480-vl_aliqicms.
ENDIF.
CASE itab_zycit033-tribicms.
WHEN 1.
v_montante1 = itab_zycit480-vl_base_icms.
v_base = v_montante1.
it_zycee007-base = v_base.
CLEAR it_zycee007-c_excbas.
CLEAR it_zycee007-c_excbas.
WHEN 2.
v_montante1 = itab_zycit480-vl_base_icms.
it_zycee007-c_excbas = v_montante1."
CLEAR: it_zycee007-taxval.
WHEN 3.
v_montante1 = itab_zycit480-vl_base_icms.
v_othbas = v_montante1 .
IF NOT itab_zycit480-vl_basred IS INITIAL.
v_excbas = ( v_montante1 / itab_zycit480-vl_basred * 100 )
- v_othbas.
ENDIF.
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL AND
itab_zycit480-vl_basred < 100.
v_excbas = v_excbas + ( v_excbas *
( itab_zycit480-vl_aliqicms / 100 ) ).
ENDIF.
it_zycee007-othbas = v_othbas.
it_zycee007-c_excbas = v_excbas.
ENDCASE.
CLEAR: v_base, v_othbas.
it_zycee007-rate2 = itab_zycit003-advalipi.
IF NOT itab_zycit480-vl_ipi IS INITIAL.
it_zycee007-taxval2 = itab_zycit480-vl_ipi.
ELSE.
CLEAR it_zycee007-taxval2.
ENDIF.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
CASE itab_zycit033-tribipi.
WHEN 1.
v_montante1 = itab_zycit480-vl_base_ipi.
it_zycee007-base2 = v_montante1.
WHEN 2.
v_montante1 = itab_zycit480-vl_base_ipi.
it_zycee007-p_excbas = v_montante1.
CLEAR : it_zycee007-taxval2.
WHEN 3.
v_montante1 = itab_zycit480-vl_base_ipi.
it_zycee007-othbas2 = v_montante1.
ENDCASE.
CLEAR it_zycee007-p_excbas .
ENDIF.
ENDFORM. " valores_fundap
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016I01
...
WHEN 'VISUA'.
v_visualiza = 'X'.
PERFORM ver_rateio.
* >> Início da inclusão: MODULE USER_COMMAND_0050
WHEN 'FUNDAP' .
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI'.
perform call_fundap.
ENDIF.
* << Fim da inclusão
ENDCASE.
ELSEIF sy-tcode EQ '/PWS/ZYCI016_E'.
CASE okcode.
WHEN 'OBS'.
CALL SCREEN '0110' STARTING AT 5 18.
WHEN 'NFR1'.
GET CURSOR FIELD v_campo VALUE v_valor.
IF v_campo EQ '/PWS/ZYCIE042-DOCNUM' AND NOT v_valor = 0.
READ TABLE itab_zycit041 WITH KEY docnum = v_valor.
IF itab_zycit041-statusp_mr1m = 'C'.
...
...
* >> Início da inclusão: MODULE USER_COMMAND_0050
WHEN 'FUNDAP' .
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI'.
CALL SCREEN '0130' STARTING AT 5 2.
ENDIF.
* << Fim da inclusão
ENDCASE.
ENDIF.
ENDIF.
CLEAR: okcode.
ENDMODULE.
* >> Início da inclusão:
module USER_COMMAND_0130 input.
leave to screen 0 .
endmodule.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016O01
...
* >> Início da exclusão: MODULE STATUS_0120
MODULE status_0120 OUTPUT.
SET PF-STATUS '0120'.
SET TITLEBAR '0120'.
ENDMODULE.
* << Fim da exclusão
...
...
MODULE status_0050 OUTPUT.
FREE itab_pf_status.
IF sy-tcode EQ '/PWS/ZYCI016_C' OR sy-tcode = '/PWS/ZYCI016_A'
OR v_status_s = 1.
* >> Início da exclusão: MODULE STATUS_0050
SET PF-STATUS '0100'.
* << Fim da exclusão
* >> Início da inclusão: MODULE STATUS_0050
if ( /pws/zycie001-modalidade ne '05' or
/pws/zycie001-tpdecl ne 'DI' ) .
itab_pf_status-fcode = 'FUNDAP'.
APPEND itab_pf_status.
endif.
SET PF-STATUS '0100' EXCLUDING itab_pf_status.
* << Fim da inclusão
SET TITLEBAR '100C'.
ELSEIF sy-tcode EQ '/PWS/ZYCI016_E' OR v_status_s = 0.
v_status_s = 0.
* >> Início da inclusão: MODULE STATUS_0050
if ( /pws/zycie001-modalidade ne '05' or
/pws/zycie001-tpdecl ne 'DI' ) .
itab_pf_status-fcode = 'FUNDAP'.
APPEND itab_pf_status.
endif.
* << Fim da inclusão
itab_pf_status-fcode = 'SAVE'.
APPEND itab_pf_status.
itab_pf_status-fcode = 'CANCG'.
APPEND itab_pf_status.
itab_pf_status-fcode = 'CRIARNF'.
APPEND itab_pf_status.
itab_pf_status-fcode = 'MARC'.
APPEND itab_pf_status.
itab_pf_status-fcode = 'DESM'.
APPEND itab_pf_status.
...
...
* >> Início da inclusão:
module load_data_0050 output.
if /pws/zycie001-modalidade is initial.
select single nrseq from /pws/zycit100
into /pws/zycie100
where nrseqdi eq /pws/zycie085-nrseqdi.
if sy-subrc eq 0 .
select single * from /pws/zycit001
into /pws/zycie001
where nrseq eq /pws/zycie100.
endif.
endif.
endmodule.
module STATUS_0130 output.
SET PF-STATUS '0130'.
endmodule.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016X01
...
* >> Início da inclusão:
tables: /pws/zycit478 ,
/pws/zycit480 .
* << Fim da inclusão
...
...
* >> Início da exclusão:
v_basred LIKE /pws/zycit036-basred,
* << Fim da exclusão
* >> Início da inclusão:
v_basred like /pws/zycie003-netpr,
* << Fim da inclusão
...
...
* >> Início da inclusão:
data: begin of itab_zycit480 occurs 0 .
include structure /pws/zycit480.
data: end of itab_zycit480.
DATA: BEGIN OF itab_ekpa OCCURS 0 .
DATA: ebeln TYPE ekpa-ebeln,
parvw TYPE ekpa-parvw,
lifn2 TYPE ekpa-lifn2.
DATA: END OF itab_ekpa.
data: v_vlii type /pws/zycit100-vlii ,
v_vlipi type /pws/zycit100-vlipi ,
v_vlpis type /pws/zycit100-vlpis ,
v_vlcofins type /pws/zycit100-vlcofins.
data v_advicms type p decimals 3,
v_base_ps LIKE /pws/zycee007-base ,
v_fundap.
* << Fim da inclusão
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F02
FORM load_cnpj USING p_bbranch p_bukrs
CHANGING p_cnpj.
* >> Início da exclusão: FORM LOAD_CNPJ
DATA: v_cgc LIKE j_1bwfield-cgc_number.
* << Fim da exclusão
IF NOT p_bbranch IS INITIAL AND
NOT p_bukrs IS INITIAL.
CALL FUNCTION 'J_1BREAD_BRANCH_DATA'
EXPORTING
branch = p_bbranch
bukrs = p_bukrs
IMPORTING
cgc_number = v_cgc
branch_data = wa_j_1bbranch
EXCEPTIONS
branch_not_found = 1
address_not_found = 2
company_not_found = 3
OTHERS = 4.
IF sy-subrc EQ 1.
MESSAGE i015 WITH text-001 p_bbranch.
ENDIF.
IF NOT /pws/zycie085-opfundap IS INITIAL or
/PWS/ZYCIE085-CONTROPCB eq '2'.
* >> Início da exclusão: FORM LOAD_CNPJ
IF /pws/zycie085-fundapiana IS INITIAL.
READ TABLE itab_it INDEX 1.
SELECT SINGLE a~lifn2
FROM ekpa AS a INNER JOIN /pws/zycet076 AS b ON
a~parvw EQ b~codigo_r3
INTO /pws/zycie085-fundapiana
WHERE b~codigo_ce EQ 'FD'
AND a~ebeln EQ itab_it-ebeln.
ENDIF.
IF v_cnpj_findap IS INITIAL.
SELECT SINGLE stcd1 name1 FROM lfa1
INTO (v_cnpj_findap, v_desc_findap)
WHERE lifnr = /pws/zycie085-fundapiana.
IF sy-subrc = 0.
/pws/zycie085-cnpjestab = v_cnpj_findap.
WRITE v_cnpj_findap TO v_cnpj_findap
USING EDIT MASK '__.___.___/____-__'.
ENDIF.
ENDIF.
* << Fim da exclusão
ELSE.
CLEAR: v_cnpj_findap, v_desc_findap, /pws/zycie085-fundapiana.
/pws/zycie085-cnpjestab = v_cgc.
ENDIF.
/pws/zycie085-cgc = v_cgc.
WRITE: v_cgc TO p_cnpj.
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
ENDIF.
IF screen-name EQ 'TXTDTC' AND
/pws/zycie085-codreg EQ '15'.
screen-input = screen-required = '0'.
screen-invisible = '1'.
ENDIF.
IF screen-name EQ 'TXTAG' AND
/pws/zycie085-codreg EQ '15'.
screen-input = screen-required = '0'.
screen-invisible = '1'.
* >> Início da inclusão: FORM SET_SCREEN_0131
ENDIF.
if ITAB_ZYCIT001-modalidade eq '05' and
ITAB_ZYCIT001-tpdecl = 'DI' .
if screen-name eq '/PWS/ZYCIE085-CONTROPCB' or
screen-name eq '/PWS/ZYCIE085-OPFUNDAP' .
Screen-input = '0'.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SET_SCREEN_0131
endif.
* << Fim da inclusão
MODIFY SCREEN.
ENDLOOP.
ENDFORM.
...
...
* >> Início da inclusão:
form load_consignacao.
IF NOT /pws/zycie085-opfundap IS INITIAL or
/PWS/ZYCIE085-CONTROPCB eq '2'.
IF /pws/zycie085-fundapiana IS INITIAL.
READ TABLE itab_it INDEX 1.
SELECT SINGLE a~lifn2
FROM ekpa AS a INNER JOIN /pws/zycet076 AS b ON
a~parvw EQ b~codigo_ce
INTO /pws/zycie085-fundapiana
WHERE b~codigo_ce EQ 'FU'
AND a~ebeln EQ itab_it-ebeln.
ENDIF.
IF v_cnpj_findap IS INITIAL.
SELECT SINGLE stcd1 name1 FROM lfa1
INTO (v_cnpj_findap, v_desc_findap)
WHERE lifnr = /pws/zycie085-fundapiana.
IF sy-subrc = 0.
/pws/zycie085-cnpjestab = v_cnpj_findap.
WRITE v_cnpj_findap TO v_cnpj_findap
USING EDIT MASK '__.___.___/____-__'.
ENDIF.
ENDIF.
ELSE.
CLEAR: v_cnpj_findap, v_desc_findap, /pws/zycie085-fundapiana.
/pws/zycie085-cnpjestab = v_cgc.
ENDIF.
/pws/zycie085-cgc = v_cgc.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023O01
...
* >> Início da inclusão: MODULE LOAD_DATA
if ITAB_ZYCIT001-modalidade eq '05' and
ITAB_ZYCIT001-tpdecl = 'DI' .
/pws/zycie085-opfundap = 'X' .
/pws/zycie085-contropcb = '2' .
perform load_consignacao.
endif.
* << Fim da inclusão
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
* >> Início da inclusão:
DATA: v_cgc LIKE j_1bwfield-cgc_number.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI016
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 100
Texto: (46 caracteres)
"Tipo de Nota Fiscal não informado no Embarque."
Comprimento máximo: 132
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 101
Texto: (51 caracteres)
"Parceiro Fundap não informado no Pedido de Compras."
Comprimento máximo: 51
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 102
Texto: (10 caracteres)
"Pedidos nº"
Comprimento máximo: 10