CE PLUS - Nota 011471

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 20/09/2011 00:00:00

Data/Hora Última Alteração: 27/09/2011 17:29:28

Descrição da Nota: DESENVOLVIMENTO PARA TRATAMENTO NOVO INCOTERM C+I

Sintoma

Desenvolvimento para tratamento novo incoterm C+I .

 

 

Solução

Feito tratamento para um novo incoterm (custo + seguro)

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTES PARA PREENCHIMENTO DE CAMPOS AO FAZER DI PELO MENU.

NFG MOEDAS DIFERENTES EMBARQUE E PEDIDOS NÃO ENCONTRA TAXA DE CONVERSÃO

BASE DO ICMS DIFERENTE DO TOTAL DA NOTA FISCAL. PROCESSO CIF, GRANEL

VALORES DE ACRÉSCIMO E DEDUÇÃO DE DESPESAS ESTÃO INCORRETOS NA ADIÇÃO

ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCULO ICMS

MOEDAS INCORRETAS NA EXIBIÇÃO DO RATEIO NA NF E NO RECEBIMENTO

AJUSTES DE NAVEGABILIDADE.

AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA FATURA

VALOR FICA APENAS REALIZADO E DIFERENÇA QDO ORIGEM = FAT

EMBARQUE COM MAIS DE 1 ITEM PEGAR DT. INICIO PARA CALCULAR VL.PLANEJDADO

VALOR DE SEGURO ERRADO QUANDO DI POSSUI MOEDAS DIFERENTES

VARIAÇÃO CAMBIAL ERRADA PARA PROCESSOS COM ITENS EM MOEDAS DIFERENTES

Informações Complementares

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

Nota Número 11471 Data: 20/09/2011 Hora: 16:45:20

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

 

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

Nota Número              : 11471

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 8.0

Pacote                   : 00009

Agrupamento              : 00086

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

Referência às notas relacionadas:

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

 

01273  - 00001 - 6.0    - 00023  - AJUSTES PARA PREENCHIMENTO DE CAMPOS AO FAZER DI PELO MENU.

02435  - 00003 - 6.0    - 00025  - MOEDAS INCORRETAS NA EXIBIÇÃO DO RATEIO NA NF E NO RECEBIMENTO

05193  - 00004 - 7.0    - 00003  - VALOR FICA APENAS REALIZADO E DIFERENÇA QDO ORIGEM = FAT

06715  - 00005 - 7.0    - 00005  - VALORES DE ACRÉSCIMO E DEDUÇÃO DE DESPESAS ESTÃO INCORRETOS NA AD

07026  - 00006 - 7.0    - 00006  - ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCU

07150  - 00007 - 7.0    - 00006  - EMBARQUE COM MAIS DE 1 ITEM PEGAR DT. INICIO PARA CALCULAR VL.PLA

07550  - 00009 - 7.0    - 00007  - AJUSTES DE NAVEGABILIDADE.

07651  - 00010 - 7.0    - 00007  - NFG MOEDAS DIFERENTES EMBARQUE E PEDIDOS NÃO ENCONTRA TAXA DE CON

08231  - 00011 - 7.0    - 00009  - AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA F

10600  - 00012 - 8.0    - 00004  - BASE DO ICMS DIFERENTE DO TOTAL DA NOTA FISCAL. PROCESSO CIF, GRA

11200  - 00013 - 8.0    - 00007  - VALOR DE SEGURO ERRADO QUANDO DI POSSUI MOEDAS DIFERENTES

11428  - 00014 - 8.0    - 00008  - VARIAÇÃO CAMBIAL ERRADA PARA PROCESSOS COM ITENS EM MOEDAS DIFERE

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

DESENVOLVIMENTO PARA TRATAMENTO NOVO INCOTERM C+I

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

Palavras Chave:

TRATAMENTO - INCOTERM - C+I

 

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

Objetos da nota:

DOMD /PWS/ZYCID013

DTEL /PWS/ZYGLL1431

DTEL /PWS/ZYGLL1432

DTEL /PWS/ZYGLL1433

DTEL /PWS/ZYGLL1434

DTEL /PWS/ZYGLL1435

FUNC /PWS/ZYCI_RATEIO_CUSTO

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003F03

REPS /PWS/MZYCI003O01

REPS /PWS/MZYCI003TOP

REPS /PWS/MZYCI003X01

REPS /PWS/MZYCI016F01

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F02

REPS /PWS/MZYCI023F03

REPS /PWS/ZYCIR006

REPS /PWS/ZYCIR035

REPS /PWS/ZYCIR145

REPT /PWS/SAPMZYCI003

TABD /PWS/ZYCIT122

TABD /PWS/ZYCIT123

 

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1431

 

CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1431

DESCRIÇÃO BREVE: "GL - Incoterm DAT"

 

DEFINIÇÃO

 

CATEGORIA DE DADOS:

(X) - CATEGORIA ELEMENTAR

   (X) - DOMÍNIO           XFELD

 

DENOM. DE CAMPO:

 

BREVE : 03  "DAT"

MÉDIO : 03  "DAT"

LONGA : 03  "DAT"

TÍTULO: 03  "DAT"

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1432

 

CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1432

DESCRIÇÃO BREVE: "GL - Incoterm DAP"

 

DEFINIÇÃO

 

CATEGORIA DE DADOS:

(X) - CATEGORIA ELEMENTAR

   (X) - DOMÍNIO           XFELD

 

DENOM. DE CAMPO:

 

BREVE : 03  "DAP"

MÉDIO : 03  "DAP"

LONGA : 03  "DAP"

TÍTULO: 03  "DAP"

 

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1433

 

CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1433

DESCRIÇÃO BREVE: "GL - Incoterm C+F"

 

DEFINIÇÃO

 

CATEGORIA DE DADOS:

(X) - CATEGORIA ELEMENTAR

   (X) - DOMÍNIO           XFELD

 

DENOM. DE CAMPO:

 

BREVE : 03  "C+F"

MÉDIO : 03  "C+F"

LONGA : 03  "C+F"

TÍTULO: 03  "C+F"

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1434

 

CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1434

DESCRIÇÃO BREVE: "GL - Incoterm C+I"

 

DEFINIÇÃO

 

CATEGORIA DE DADOS:

(X) - CATEGORIA ELEMENTAR

   (X) - DOMÍNIO           XFELD

 

DENOM. DE CAMPO:

 

BREVE : 03  "C+I"

MÉDIO : 03  "C+I"

LONGA : 03  "C+I"

TÍTULO: 03  "C+I"

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1435

 

CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1435

DESCRIÇÃO BREVE: "GL - Incoterm OCV"

 

DEFINIÇÃO

 

CATEGORIA DE DADOS:

(X) - CATEGORIA ELEMENTAR

   (X) - DOMÍNIO           XFELD

 

DENOM. DE CAMPO:

 

BREVE : 03  "OCV"

MÉDIO : 03  "OCV"

LONGA : 03  "OCV"

TÍTULO: 03  "OCV"

 

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

Modificações efetuadas em DOMD /PWS/ZYCID013

 

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

Domínio modificado: /PWS/ZYCID013

-Valores individuais

Incluído valor fixo "C+I"

Texto incluído, idioma: PT (14 caracteres):

"Custo + Seguro"

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

                ebeln = itab_zycit036_aux2-ebeln AND

                ebelp = itab_zycit036_aux2-ebelp AND

                codigo = itab_zycit036_aux2-codigo AND

                codigo NE 'II' AND

                codigo NE 'IPI' AND

                codigo NE 'ICMS' AND

                codigo NE 'FRETEI' AND

                codigo NE 'SEGURO' AND

                codigo NE 'FOB' AND

                codigo NE 'CIF' AND

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                codigo NE 'C+I' AND

* << Fim da inclusão

                codigo NE 'C&F'.

      ENDIF.

      LOOP AT itab_zycit036_aux2 .

        READ TABLE itab_zycit036 WITH KEY

              nrseq = itab_zycit036_aux2-nrseq

              ebeln = itab_zycit036_aux2-ebeln

              ebelp = itab_zycit036_aux2-ebelp

              codigo = itab_zycit036_aux2-codigo

              nrseqori = itab_zycit036_aux2-nrseqori

              .

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

 

FORM calcula_peso.

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

        v_tot_frete_aux LIKE /pws/zycit036-vlmov,

        v_tot_acum  LIKE /pws/zycit003-netpr,

        v_tot_acum2 LIKE /pws/zycit003-netpr,

* << Fim da exclusão

 

...

 

...

    LOOP AT itab_zycit003.

      CLEAR: itab_zycit003-vlfre_fat, itab_zycit003-vlfre_aux.

      MODIFY itab_zycit003.

    ENDLOOP.

  ENDIF.

  DESCRIBE TABLE itab_zycit003 LINES v_line.

  IF NOT /pws/zycie006-ratseg IS INITIAL AND

     NOT /pws/zycie006-vlseg IS INITIAL AND

     NOT /pws/zycie006-vlfre IS INITIAL AND

     NOT /pws/zycie006-vlmerc IS INITIAL.

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

    v_vlreal = /pws/zycie006-vlseg.

    PERFORM retorna_decimais USING /pws/zycie006-waers

                            CHANGING v_vlreal.

    CLEAR v_tot_acum.

    CLEAR v_tot_acum2.

    LOOP AT itab_zycit003.

      MOVE sy-tabix TO v_tabix.

      v_tot_acum = v_tot_acum +  ( itab_zycit003-vlreal *

                    itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat .

      v_tot_acum2 = v_tot_acum2 +  ( itab_zycit003-vlreal *

                    itab_zycit003-qtd_iten ).

    ENDLOOP.

    CLEAR v_tot_vlseg.

    v_vlreal = /pws/zycie006-vlseg.

    PERFORM retorna_decimais USING /pws/zycie006-waers

                            CHANGING v_vlreal.

    IF /pws/zycie006-ratseg = 1.

      LOOP AT itab_zycit003.

        IF sy-tabix = v_line.

          itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.

          v_tot_vlseg = v_tot_vlseg * 100.

          v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.

          itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.

        ELSE.

          itab_zycit003-vlseg_fat = ( ( itab_zycit003-vlreal *

             itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat ) /

            v_tot_acum * v_vlreal.

          itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

          v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        ENDIF.

        MODIFY itab_zycit003.

      ENDLOOP.

    ELSEIF /pws/zycie006-ratseg = 2.

      LOOP AT itab_zycit003.

        IF sy-tabix = v_line.

          itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.

          v_tot_vlseg = v_tot_vlseg * 100.

          v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.

          itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.

        ELSE.

          itab_zycit003-vlseg_fat = v_vlreal * itab_zycit003-ntgew

                     / /pws/zycie006-ntgew.

          itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

          v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        ENDIF.

        MODIFY itab_zycit003.

      ENDLOOP.

    ELSEIF /pws/zycie006-ratseg = 3.

      LOOP AT itab_zycit003.

        v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

        MODIFY itab_zycit003.

      ENDLOOP.

      IF v_tot_vlseg NE v_vlreal.

        MESSAGE w015 WITH text-104.

      ENDIF.

    ELSEIF /pws/zycie006-ratseg = 4.

      LOOP AT itab_zycit003.

        IF sy-tabix = v_line.

          itab_zycit003-vlseg_fat = /pws/zycie006-vlseg - v_tot_vlseg.

          v_tot_vlseg = v_tot_vlseg * 100.

          v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.

          itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.

        ELSE.

          itab_zycit003-vlseg_fat =  ( itab_zycit003-vlreal *

             itab_zycit003-qtd_iten )  /

            v_tot_acum2 * /pws/zycie006-vlseg.

          itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

          v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        ENDIF.

        MODIFY itab_zycit003.

      ENDLOOP.

    ELSEIF /pws/zycie006-ratseg IS INITIAL AND

           /pws/zycie006-vlseg IS INITIAL.

      LOOP AT itab_zycit003.

        CLEAR: itab_zycit003-vlseg_fat, itab_zycit003-vlseg_aux.

        MODIFY itab_zycit003.

      ENDLOOP.

    ENDIF.

* << Fim da exclusão

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

    PERFORM rateio_seguro.

  ELSEIF NOT /pws/zycie006-ratseg IS INITIAL AND

      NOT /pws/zycie006-vlseg IS INITIAL AND

      NOT /pws/zycie006-vlmerc IS INITIAL AND

      /pws/zycit031-inco1_ci EQ 'C+I' .

    PERFORM rateio_seguro.

* << Fim da inclusão

  ELSE.

    LOOP AT itab_zycit003.

      CLEAR: itab_zycit003-vlseg_fat, itab_zycit003-vlseg_aux.

      MODIFY itab_zycit003.

    ENDLOOP.

  ENDIF.

ENDFORM.

 

...

 

...

 

        IF sy-subrc NE 0.

          MESSAGE e039 WITH text-171.

        ENDIF.

        ENDIF.

      ENDIF.

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

    IF /pws/zycie006-tpfatura EQ '03'

    AND /pws/zycit031-inco1_ci EQ 'C+I'.

      MESSAGE e039 WITH text-217 text-212.

    ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

...

                                      kposn = v_ebelp

                                    kschl = itab_zycit030-kschl.

        IF sy-subrc EQ 0.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF itab_konv-kschl IS INITIAL.

        CLEAR: v_vlfr.

      ENDIF.

      itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlfr.

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

      IF /pws/zycit031-inco1_ci EQ 'CIF'.

* << Fim da exclusão

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

      IF ( /pws/zycit031-inco1_ci EQ 'CIF' OR

           /pws/zycit031-inco1_ci EQ 'C+I' ) .

* << Fim da inclusão

        itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlsg.

      ENDIF.

      itab_zycit031-menge  = itab_zycit003-toinv.

      itab_zycit031-meins  = itab_zycit003-meins.

      itab_zycit031-mwskz  = itab_ivaped-mwskz.

      APPEND itab_zycit031.

      itab_zycie033-waers = /pws/zycie006-waers.

      IF NOT v_vlfr IS INITIAL.

        CLEAR: itab_ekko_a.

        READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F03

 

...

 

* >> Início da inclusão:

form rateio_seguro.

datA:   v_tot_acum  LIKE /pws/zycit003-netpr,

        v_tot_acum2 LIKE /pws/zycit003-netpr.

    v_vlreal = /pws/zycie006-vlseg.

    PERFORM retorna_decimais USING /pws/zycie006-waers

                            CHANGING v_vlreal.

    CLEAR v_tot_acum.

    CLEAR v_tot_acum2.

    LOOP AT itab_zycit003.

      MOVE sy-tabix TO v_tabix.

      v_tot_acum = v_tot_acum +  ( itab_zycit003-vlreal *

                    itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat .

      v_tot_acum2 = v_tot_acum2 +  ( itab_zycit003-vlreal *

                    itab_zycit003-qtd_iten ).

    ENDLOOP.

    CLEAR v_tot_vlseg.

    v_vlreal = /pws/zycie006-vlseg.

    PERFORM retorna_decimais USING /pws/zycie006-waers

                            CHANGING v_vlreal.

    IF /pws/zycie006-ratseg = 1.

      LOOP AT itab_zycit003.

        IF sy-tabix = v_line.

          itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.

          v_tot_vlseg = v_tot_vlseg * 100.

          v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.

          itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.

        ELSE.

          itab_zycit003-vlseg_fat = ( ( itab_zycit003-vlreal *

             itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat ) /

            v_tot_acum * v_vlreal.

          itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

          v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        ENDIF.

        MODIFY itab_zycit003.

      ENDLOOP.

    ELSEIF /pws/zycie006-ratseg = 2.

      LOOP AT itab_zycit003.

        IF sy-tabix = v_line.

          itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.

          v_tot_vlseg = v_tot_vlseg * 100.

          v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.

          itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.

        ELSE.

          itab_zycit003-vlseg_fat = v_vlreal * itab_zycit003-ntgew

                     / /pws/zycie006-ntgew.

          itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

          v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        ENDIF.

        MODIFY itab_zycit003.

      ENDLOOP.

    ELSEIF /pws/zycie006-ratseg = 3.

      LOOP AT itab_zycit003.

        v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

        MODIFY itab_zycit003.

      ENDLOOP.

      IF v_tot_vlseg NE v_vlreal.

        MESSAGE w015 WITH text-104.

      ENDIF.

    ELSEIF /pws/zycie006-ratseg = 4.

      LOOP AT itab_zycit003.

        IF sy-tabix = v_line.

          itab_zycit003-vlseg_fat = /pws/zycie006-vlseg - v_tot_vlseg.

          v_tot_vlseg = v_tot_vlseg * 100.

          v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.

          itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.

        ELSE.

          itab_zycit003-vlseg_fat =  ( itab_zycit003-vlreal *

             itab_zycit003-qtd_iten )  /

            v_tot_acum2 * /pws/zycie006-vlseg.

          itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.

          v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.

        ENDIF.

        MODIFY itab_zycit003.

      ENDLOOP.

    ELSEIF /pws/zycie006-ratseg IS INITIAL AND

           /pws/zycie006-vlseg IS INITIAL.

      LOOP AT itab_zycit003.

        CLEAR: itab_zycit003-vlseg_fat, itab_zycit003-vlseg_aux.

        MODIFY itab_zycit003.

      ENDLOOP.

    ENDIF.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

                ENDIF.

              WHEN '05'.

                IF  screen-name = '/PWS/ZYCIE006-VLMERC' OR

                  screen-name = '/PWS/ZYCIE006-VLFRE' OR

                  screen-name = '/PWS/ZYCIE006-VLSEG'.

                  screen-input = '0'.

                ENDIF.

            ENDCASE.

            MODIFY SCREEN.

          ENDIF.

* >> Início da inclusão: MODULE SET_SCREEN

          IF /pws/zycit031-inco1_ci = 'C+I'.

            CASE /pws/zycie006-tpfatura.

              WHEN '01' OR '11' .

                IF  screen-name = '/PWS/ZYCIE006-VLFRE' .

                  screen-input = '0'.

                  CLEAR : /pws/zycie006-vlfre.

                ENDIF.

              WHEN '02'.

                IF  screen-name = '/PWS/ZYCIE006-VLMERC' OR

                   screen-name = '/PWS/ZYCIE006-VLSEG' .

                  screen-input = '0'.

                  CLEAR : /pws/zycie006-vlmerc, /pws/zycie006-vlseg.

                ENDIF.

              WHEN '03'.

                IF  screen-name = '/PWS/ZYCIE006-VLMERC' OR

                   screen-name = '/PWS/ZYCIE006-VLFRE'   OR

                   screen-name = '/PWS/ZYCIE006-VLSEG' .

                  screen-input = '0'.

                  CLEAR : /pws/zycie006-vlmerc, /pws/zycie006-vlfre,

                          /pws/zycie006-vlseg.

                ENDIF.

              WHEN '04'.

                IF screen-name = '/PWS/ZYCIE006-VLFRE' OR

                   screen-name = '/PWS/ZYCIE006-VLSEG'.

                  screen-input = '0'.

                  CLEAR : /pws/zycie006-vlseg, /pws/zycie006-vlfre.

                ENDIF.

              WHEN '05'.

                IF  screen-name = '/PWS/ZYCIE006-VLMERC' OR

                  screen-name = '/PWS/ZYCIE006-VLFRE' OR

                  screen-name = '/PWS/ZYCIE006-VLSEG'.

                  screen-input = '0'.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: MODULE SET_SCREEN

            ENDCASE.

            MODIFY SCREEN.

          ENDIF.

        ENDIF.

* << Fim da inclusão

        IF screen-group3 = 'MER'.

          IF /pws/zycie006-tpfatura NE '01'

             AND /pws/zycie006-tpfatura NE '11'.

            screen-invisible = 1.

            screen-input = 0.

            MODIFY SCREEN.

          ELSE.

            screen-invisible = 0.

            SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycit001

               WHERE nrseq = /pws/zycie001-nrseq.

            IF screen-name EQ '/PWS/ZYCIE006-RATSEG' AND

* >> Início da exclusão: MODULE SET_SCREEN

               /pws/zycit031-inco1_ci NE 'CIF'.

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

               ( /pws/zycit031-inco1_ci NE 'CIF' and

                 /pws/zycit031-inco1_ci NE 'C+I') .

* << Fim da inclusão

              screen-input = 0.

              screen-invisible = 1.

            ENDIF.

            IF screen-name EQ '/PWS/ZYCIE006-RATFRE' AND

               ( /pws/zycit031-inco1_ci = 'FOB' OR

* >> Início da exclusão: MODULE SET_SCREEN

               /pws/zycit031-inco1_ci IS INITIAL ) AND

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

                 /pws/zycit031-inco1_ci IS INITIAL OR

                 /pws/zycit031-inco1_ci = 'C+I' ) AND

* << Fim da inclusão

               ( t001-land1 NE 'AR' AND t001-land1 NE 'CL' ) .

              screen-input = 0.

              screen-invisible = 1.

            ENDIF.

            MODIFY SCREEN.

          ENDIF.

        ENDIF.

        IF screen-name = '/PWS/ZYCIE006-EBENE' OR

           screen-name = '/PWS/ZYCIE006-DATAPRVTSR'.

* >> Início da exclusão: MODULE SET_SCREEN

          IF t035-bild1 = 'X' AND  v_status_s = 1 AND

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

          IF t035-bild1 = 'X' AND

             v_status_s = 1 AND

* << Fim da inclusão

                   sy-tcode NE '/PWS/ZYCI003_M' .

            screen-input = 1.

          ELSE.

            screen-input = 0.

          ENDIF.

          MODIFY SCREEN.

        ENDIF.

        IF NOT itab_zycit132[] IS INITIAL AND

              ( screen-name EQ '/PWS/ZYCIE006-DTVENCTO' OR

                screen-name EQ '/PWS/ZYCIE006-DTBASE' OR

...

 

...

          wa_cols-screen-input = '0'.

          MODIFY tc_itens-cols FROM wa_cols.

        ENDLOOP.

      ELSEIF v_status_s = 1.

        LOOP AT tc_itens-cols INTO wa_cols.

          IF wa_cols-screen-group1 NE 'OUT'   .

            wa_cols-screen-input = '1'.

            MODIFY tc_itens-cols FROM wa_cols.

          ENDIF.

          IF wa_cols-screen-name = '/PWS/ZYCIE003-VLFRE_FAT' AND

* >> Início da exclusão: MODULE SET_SCREEN

             /pws/zycit031-inco1_ci = 'FOB' AND

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

            ( /pws/zycit031-inco1_ci = 'FOB' OR

              /pws/zycit031-inco1_ci = 'C+I')  AND

* << Fim da inclusão

             ( t001-land1 NE 'AR' AND t001-land1 NE 'CL' ) .

            wa_cols-invisible = 1.

            MODIFY tc_itens-cols FROM wa_cols.

          ELSEIF wa_cols-screen-name = '/PWS/ZYCIE003-VLSEG_FAT' AND

         ( /pws/zycit031-inco1_ci = 'FOB' OR

         /pws/zycit031-inco1_ci = 'C&F' ).

            wa_cols-invisible = 1.

            MODIFY tc_itens-cols FROM wa_cols.

          ELSEIF wa_cols-screen-name = '/PWS/ZYCIE003-VLSEG_FAT' OR

                  wa_cols-screen-name = '/PWS/ZYCIE003-VLFRE_FAT'.

...

 

...

MODULE set_screen_0400 OUTPUT.

  LOOP AT SCREEN.

    IF v_status_s = '1' AND screen-group1 = 'DET'.

      screen-input = '1'.

      IF screen-name = '/PWS/ZYCIE003-VLREAL' AND

      /pws/zycie006-ratval =  1.

        screen-input = '0'.

      ENDIF.

* >> Início da exclusão: MODULE SET_SCREEN_0400

  IF screen-name = '/PWS/ZYCIE003-VLFRE_FAT' AND ( /pws/zycie006-ratfre

                                                               = 'S' OR

                                                /pws/zycie006-ratfre IS

                                                              INITIAL ).

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN_0400

      IF screen-name = '/PWS/ZYCIE003-VLFRE_FAT' AND

      ( /pws/zycie006-ratfre = 'S' OR

        /pws/zycie006-ratfre IS INITIAL ).

* << Fim da inclusão

        screen-input = '0'.

        IF /pws/zycit031-inco1_ci = 'C&F' OR

           /pws/zycit031-inco1_ci = 'CIF'.

          screen-invisible = 0.

        ELSE.

          screen-invisible = 1.

        ENDIF.

      ELSEIF screen-name = '/PWS/ZYCIE003-VLFRE_FAT'.

        screen-input = 1.

        IF /pws/zycit031-inco1_ci = 'C&F' OR

           /pws/zycit031-inco1_ci = 'CIF'.

          screen-invisible = 0.

* >> Início da inclusão: MODULE SET_SCREEN_0400

        ELSEIF /pws/zycit031-inco1_ci = 'C+I' .

          screen-input = 0.

          screen-invisible = 1.

* << Fim da inclusão

        ELSE.

          screen-input = 0.

          screen-invisible = 1.

        ENDIF.

      ENDIF.

      IF screen-name = '/PWS/ZYCIE003-VLSEG_FAT' AND

             ( /pws/zycie006-ratseg = '1' OR

               /pws/zycie006-ratseg = '2' OR

               /pws/zycie006-ratseg IS INITIAL ).

        screen-input = '0'.

* >> Início da exclusão: MODULE SET_SCREEN_0400

        IF /pws/zycit031-inco1_ci = 'CIF'.

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN_0400

        IF ( /pws/zycit031-inco1_ci = 'CIF' OR

             /pws/zycit031-inco1_ci = 'C+I' ) .

* << Fim da inclusão

          screen-invisible = 0.

        ELSE.

          screen-invisible = 1.

        ENDIF.

      ELSEIF screen-name = '/PWS/ZYCIE003-VLSEG_FAT'.

        screen-input = 1.

        IF /pws/zycit031-inco1_ci = 'CIF'.

          screen-invisible = 0.

        ELSE.

          screen-input = 0.

...

 

...

  SET PF-STATUS '0115'.

  LOOP AT SCREEN.

    IF screen-group1 EQ 'FRE'.

      IF /pws/zycit031-inco1_ci EQ 'FOB'.

        screen-invisible = 1.

      ELSE.

        screen-invisible = 0.

      ENDIF.

    ENDIF.

    IF screen-group1 EQ 'SEG'.

* >> Início da exclusão: MODULE STATUS_0115

      IF /pws/zycit031-inco1_ci EQ 'CIF'.

* << Fim da exclusão

* >> Início da inclusão: MODULE STATUS_0115

      IF ( /pws/zycit031-inco1_ci EQ 'CIF' OR

           /pws/zycit031-inco1_ci EQ 'C+I' ).

* << Fim da inclusão

        screen-invisible = 0.

      ELSE.

        screen-invisible = 1.

      ENDIF.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

ENDMODULE.

 

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

Modificações efetuadas em REPS /PWS/MZYCI003TOP

 

...

        IF /pws/zycit031-inco1_ci EQ 'FOB'.

          screen-invisible = 1.

          screen-active = 0.

        ELSE.

          screen-invisible = 0.

          screen-active = 1.

        ENDIF.

        MODIFY SCREEN.

      ENDIF.

      IF  screen-group1 EQ 'SEG'.

* >> Início da exclusão:

        IF /pws/zycit031-inco1_ci EQ 'CIF'.

* << Fim da exclusão

* >> Início da inclusão:

        IF ( /pws/zycit031-inco1_ci EQ 'CIF' or

             /pws/zycit031-inco1_ci EQ 'C+I' ) .

* << Fim da inclusão

          screen-invisible = 0.

          screen-active = 1.

        ELSE.

          screen-invisible = 1.

          screen-active = 0.

        ENDIF.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

  ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

* >> Início da inclusão:

 DATA: v_tot_frete_aux LIKE /pws/zycit036-vlmov.

* << Fim da inclusão

DATA: END OF COMMON PART.

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

          NOT itab_zycit003-qtd_itend IS INITIAL .

        IF NOT itab_zycit100-vlfre IS INITIAL.

          itab_zycit042-netpr = itab_zycit042-netpr -

           ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

           / itab_zycit003-qtd_iten ) +

           ( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *

itab_zycit100-dttaxbem )

           / itab_zycit003-qtd_itend ) .

        ENDIF.

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

        IF /pws/zycit031-inco1_ci = 'C+I' AND

            NOT itab_zycit003-qtd_iten IS INITIAL AND

            NOT itab_zycit003-qtd_itend IS INITIAL .

          IF NOT itab_zycit100-vlseg IS INITIAL.

            itab_zycit042-netpr = itab_zycit042-netpr -

             ( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *

                  itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_iten ) +

             ( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *

                 itab_zycit100-dttaxbem )

             / itab_zycit003-qtd_itend ) .

          ENDIF.

        ENDIF.

* << Fim da inclusão

      ELSEIF /pws/zycit031-inco1_ci = 'CIF' AND

          NOT itab_zycit003-qtd_iten IS INITIAL AND

          NOT itab_zycit003-qtd_itend IS INITIAL.

        itab_zycit042-netpr =

        ( ( itab_zycit100-vlfob * itab_zycit100-dttaxbem ) +

                 itab_zycit100-vlfre + itab_zycit100-vlseg ) /

                                               itab_zycit042-qtd_iten.

      ENDIF.

      IF sy-subrc = 0 AND /pws/zycit062-flag_icms = 'X'.

        PERFORM atualiza_icms_unitario.

...

 

...

  IF NOT itab_zycit100[] IS INITIAL.

    SELECT * FROM /pws/zycit036

      INTO TABLE itab_zycit036

      FOR ALL ENTRIES IN itab_zycit100

      WHERE nrseq = itab_zycit100-nrseq

        AND ebeln = itab_zycit100-ebeln

        AND ebelp = itab_zycit100-ebelp

        AND origem = 'FAT'

        AND ( codigo = 'FOB' OR

              codigo = 'CIF' OR

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

              codigo = 'C+I' OR

* << Fim da inclusão

              codigo = 'C&F' ).

  ENDIF.

  PERFORM atualiza_custos.

  MOVE itab_zycit036[] TO itab_zycit036_di[].

  MOVE itab_zycit036[] TO itab_zycit036_atual[].

  IF v_libera = 'X' AND v_modalidade = '99'.

    IF NOT itab_zycit100[] IS INITIAL.

      SELECT * FROM /pws/zycit036

        INTO TABLE itab_zycit036

        FOR ALL ENTRIES IN itab_zycit100

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

  LOOP AT itab_it.

    IF /pws/zycie085-waersfob NE itab_it-waersbem.

      PERFORM: calc_conv_moeda:

               USING /pws/zycie085-waersfob

                     itab_it-waersbem

               CHANGING itab_it-vlfob.

    ENDIF.

    MOVE-CORRESPONDING itab_it TO itab_zycit100.

    APPEND itab_zycit100.

  ENDLOOP.

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

sort itab_zycit100 by NRSEQDI    NRSEQ      EBELN      EBELP ADICAO.

* << Fim da inclusão

  MODIFY /pws/zycit100 FROM TABLE itab_zycit100.

  CLEAR a_ip.

  LOOP AT itab_zycit100.

    v_tabix = sy-tabix.

    ON CHANGE OF itab_zycit100-adicao.

      CLEAR a_ip.

    ENDON.

    IF itab_zycit100-item_adi_sisc IS INITIAL.

      itab_zycit100-item_adi_sisc = a_ip = a_ip + 1.

      UPDATE /pws/zycit100 SET

...

 

...

      t_ivseg = itab_it-vlseg = ( v_cfr / ( v_tcfr ) ) * s_stvr.

      v_tot_seg = ( v_cfr / ( v_tcfr ) ) * v_sgtofat.

    ENDIF.

  ENDIF.

  IF NOT /pws/zycit000-rat_seg_fob IS INITIAL.

    CASE s_inco1_ci.

      WHEN 'CIF'.

        t_dif_seg   = /pws/zycie003-vlseg_fat - v_tot_seg  .

    ENDCASE.

  ENDIF.

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

  IF v_dit EQ 'N'.

* << Fim da exclusão

    CASE s_inco1_ci.

      WHEN 'FOB'.

        t_ivadu = t_ivmle + t_ivseg + t_ivdesp + t_ivfre.

        v_casasd = t_ivseg.

        v_casasd2 = t_ivfre.

        v_casasd3 = t_ivdesp.

        v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.

      WHEN 'C&F'.

        t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren.

        IF NOT v_desp_fren IS INITIAL.

...

 

...

        IF /pws/zycie085-waersfob NE itab_it-waersbem.

          PERFORM: calc_conv_moeda:

                   USING    /pws/zycie085-waersfob

                            itab_it-waersbem

                   CHANGING t_vmle2.

        ENDIF.

        t_ivmle2 = t_vmle2 * itab_it-dttaxbem.

        t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.

        v_casasd3 = t_ivdesp.

        v_ivadud = t_ivmle2 + v_casasd3 .

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

    ENDCASE.

  ELSE.

    CASE s_inco1_ci.

      WHEN 'FOB'.

        t_ivadu = t_ivmle + t_ivseg + t_ivfre + t_ivdesp.

        v_casasd = t_ivseg.

        v_casasd2 = t_ivfre.

        v_casasd3 = t_ivdesp.

        v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.

      WHEN 'C&F'.

        IF p_tipo EQ 'A'.

          t_ivmle = t_ivmle + t_ivfre.

          t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.

          t_ivadu = t_ivmle + wa_it-vlseg + t_ivdesp.

          v_casasd = wa_it-vlseg.

          v_casasd3 = t_ivdesp.

          v_ivadud = t_ivmle + v_casasd3 + v_casasd.

        ELSEIF p_tipo EQ 'I' OR p_tipo = 'T'.

          t_ivmle = t_ivmle + t_ivfre.

          t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.

          t_ivadu = t_ivmle + t_ivseg + t_ivdesp + t_ivfre.

          v_casasd = t_ivseg.

          v_casasd2 = t_ivfre.

          v_casasd3 = t_ivdesp.

          v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.

* << Fim da exclusão

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

    WHEN 'C+I'.

      t_ivmle_d2 = t_ivmle.

      t_vmle_d2 = t_vmle2 = t_vmle .

      IF /pws/zycie085-waersfob NE itab_it-waersbem.

        PERFORM: calc_conv_moeda:

                 USING    /pws/zycie085-waersfob

                          itab_it-waersbem

                 CHANGING t_vmle2.

* << Fim da inclusão

        ENDIF.

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

      WHEN 'CIF'.

        IF p_tipo EQ 'A'.

          t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + t_ivseg.

          t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg.

          t_ivadu = t_ivmle + t_ivdesp.

* << Fim da exclusão

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

      t_ivmle2 = t_vmle2 * itab_it-dttaxbem.

      t_ivadu = t_ivmle2 + t_ivfre + t_ivdesp.

      v_casasd = t_ivfre.

* << Fim da inclusão

          v_casasd3 = t_ivdesp.

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

          v_ivadud = t_ivmle + v_casasd3.

        ELSEIF p_tipo EQ 'I' OR p_tipo = 'T'.

          t_ivmle_d2 = t_ivmle = t_ivmle - t_ivfre - t_ivseg.

          t_vmle_d2 = t_vmle = t_vmle - v_tot_fre - v_tot_seg.

          t_ivadu = t_ivmle + t_ivdesp + t_ivfre + t_ivseg.

          v_casasd = t_ivseg.

          v_casasd2 = t_ivfre.

          v_casasd3 = t_ivdesp.

          v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.

* << Fim da exclusão

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

      v_ivadud = t_ivmle2 + v_casasd3 + v_casasd .

      t_dif_seg   = /pws/zycie003-vlseg_fat - v_tot_seg  .

      IF itab_zycit003-qtd_itend IS INITIAL.

        /pws/zycie100a-vlfob = itab_it-vlfob = t_vmle_d2 =

        t_vmle = t_vmle + t_dif_seg.

* << Fim da inclusão

        ENDIF.

    ENDCASE.

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

  ENDIF.

* << Fim da exclusão

  itab_it-vlfobr    = t_ivmle2.

  itab_it-vlmerc_ad = t_vmle2.

ENDFORM.

 

...

 

...

          WHEN 'CIF'.

            itab_it-vlreal_aux2 =

        ( ( ( itab_it-vlreal *  itab_it-qtd_itenc3 ) +

          itab_it-vldiffob + itab_it-vlfre_me )

                                            / itab_it-qtd_itenc3 ) -

             ( itab_it-frn / itab_it-qtd_itenc3 ) .

          WHEN 'FOB'.

            itab_it-vlreal_aux2 = itab_it-vlreal -

             ( itab_it-frn / itab_it-qtd_itenc3 ) .

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

          WHEN 'C+I'.

            itab_it-vlreal_aux2 = itab_it-vlreal .

* << Fim da inclusão

        ENDCASE.

      ENDIF.

      APPEND itab_it TO itab_itb.

      IF itab_it-qtd_itend IS INITIAL.

        v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itenc3.

      ELSE.

        v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itendc3.

      ENDIF.

      IF itab_it-qtd_itend IS INITIAL.

        v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_itenc3.

...

 

...

    ELSE.

      v_tval = v_tval + ( itab_it-qtd_itencacl * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_itencacl * itab_it-vlreal )

                      * itab_it-dttaxbem ).

    ENDIF.

    MOVE-CORRESPONDING itab_zycit003 TO itab_itens_funcao.

    APPEND itab_itens_funcao.

  ENDLOOP.

  v_tmle_d2 = v_tmle.

  PERFORM data_sort.

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

  IF v_difora EQ 'X'.

* << Fim da exclusão

    PERFORM data_clean_seg.

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

  ENDIF.

* << Fim da exclusão

  IF v_dit = 'N'.

    IF /pws/zycie085-mdadicao = 'S'.

      /pws/zycie085-waersfob = v_waers.

      LOOP AT itab_it.

        itab_it-dttaxbem = /pws/zycie085-ukursfob.

        itab_it-waersbem = /pws/zycie085-waersfob.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F02

 

...

  IF s_inco1_ci EQ 'CIF'.

    IF NOT v_tcif_fat IS INITIAL AND

       NOT /pws/zycie085-per_seg IS INITIAL.

      /pws/zycie085-vlseg  =   v_tcif_fat *

      ( /pws/zycie085-per_seg / 100 ).

      PERFORM retorna_decimais USING /pws/zycie085-waersseg

                    CHANGING  /pws/zycie085-vlseg.

    ENDIF.

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

  ELSEIF s_inco1_ci EQ 'C+I'.

    IF NOT v_tval2 IS INITIAL AND

       NOT /pws/zycie085-per_seg IS INITIAL.

      PERFORM taxa_converte USING  /pws/zycie085-waersfob

                                   /pws/zycie085-dttax

                                   CHANGING v_taxa.

      IF NOT v_taxa IS INITIAL.

        v_fob = v_tval2 * v_taxa .

      ENDIF.

      IF NOT /pws/zycie085-ukursseg IS INITIAL.

        /pws/zycie085-vlseg  =  ( ( v_fob + s_stvr - v_desp_brl ) *

        ( /pws/zycie085-per_seg / 100 ) ) /  /pws/zycie085-ukursseg.

      ENDIF.

      PERFORM retorna_decimais USING /pws/zycie085-waersseg

                    CHANGING  /pws/zycie085-vlseg.

    ENDIF.

* << Fim da inclusão

  ELSE.

    IF NOT v_tval2 IS INITIAL AND

       NOT /pws/zycie085-per_seg IS INITIAL.

      PERFORM taxa_converte USING  /pws/zycie085-waersfob

                                   /pws/zycie085-dttax

                                   CHANGING v_taxa.

      IF NOT v_taxa IS INITIAL.

        v_fob = v_tval2 * v_taxa .

      ENDIF.

      v_bltofat = /pws/zycie093-prepaid + /pws/zycie093-collect -

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F03

 

 

...

      PERFORM retorna_decimais USING /pws/zycie085-waersseg

                     CHANGING  v_sgtofat             .

    ENDIF.

    CASE s_inco1_ci.

      WHEN 'C&F'.

        PERFORM calc_conv_frete CHANGING v_bltofat.

        v_tdif = v_tfrefat - v_bltofat.

        v_bltofat = /pws/zycie093-prepaid +

        /pws/zycie093-collect - /pws/zycie093-ternacion.

        PERFORM calc_conv_frete CHANGING v_bltofat.

      WHEN 'CIF' .

        PERFORM: calc_conv_frete CHANGING v_bltofat,

                 calc_conv_seg   CHANGING v_sgtofat.

        IF NOT v_sgtofat IS INITIAL .

          PERFORM trata_decimais USING /pws/zycie085-waersseg

                       CHANGING v_sgtofat             .

        ENDIF.

        v_tdif = v_tfrefat - v_bltofat.

        v_bltofat = /pws/zycie093-prepaid +

        /pws/zycie093-collect - /pws/zycie093-ternacion.

        PERFORM calc_conv_frete CHANGING v_bltofat.

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

      WHEN 'C+I'.

        PERFORM: calc_conv_seg   CHANGING v_sgtofat.

        IF NOT v_sgtofat IS INITIAL .

          PERFORM trata_decimais USING /pws/zycie085-waersseg

                       CHANGING v_sgtofat             .

        ENDIF.

        v_tdif = v_tsegfat - v_sgtofat.

* << Fim da inclusão

    ENDCASE.

  ENDIF.

  CLEAR v_ntgew.

  CLEAR v_tfrefat  .

  CLEAR v_ntgewd.

...

 

 

 

...

     ( s_inco1 = 'FCA' AND wa_zycit1223-fca = 'X' ) OR

     ( s_inco1 = 'FOB' AND wa_zycit1223-fob = 'X' ) OR

     ( s_inco1 = 'FAS' AND wa_zycit1223-fas = 'X' ) OR

     ( s_inco1 = 'CIF' AND wa_zycit1223-cif = 'X' ) OR

     ( s_inco1 = 'CFR' AND wa_zycit1223-cfr = 'X' ) OR

     ( s_inco1 = 'CPT' AND wa_zycit1223-cpt = 'X' ) OR

     ( s_inco1 = 'CIP' AND wa_zycit1223-cip = 'X' ) OR

     ( s_inco1 = 'DEQ' AND wa_zycit1223-deq = 'X' ) OR

     ( s_inco1 = 'DES' AND wa_zycit1223-des = 'X' ) OR

     ( s_inco1 = 'DAF' AND wa_zycit1223-daf = 'X' ) OR

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

     ( s_inco1 = 'DDU' AND wa_zycit1223-ddu = 'X' ).

* << Fim da exclusão

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

     ( s_inco1 = 'DDU' AND wa_zycit1223-ddu = 'X' ) OR

     ( s_inco1 = 'DAT' AND wa_zycit1223-dat = 'X' ) OR

     ( s_inco1 = 'DAP' AND wa_zycit1223-dap = 'X' ) OR

     ( s_inco1 = 'C&F' AND wa_zycit1223-c_f = 'X' ) OR

     ( s_inco1 = 'C+I' AND wa_zycit1223-c_i = 'X' ) OR

     ( s_inco1 = 'OCV' AND wa_zycit1223-ocv = 'X' ) .

* << Fim da inclusão

    p_inco = 'X'.

  ENDIF.

ENDFORM.

...

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

Modificações efetuadas em REPS /PWS/ZYCIR006

 

...

  IF /pws/zycit085-mdadicao EQ 'N'.

    LOOP AT itab_zycit036 WHERE origem EQ 'NF'.

      v_index = sy-tabix.

      IF itab_zycit036-codigo EQ 'FOB' OR

         itab_zycit036-codigo EQ 'C&F' OR

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

         itab_zycit036-codigo EQ 'C+I' OR

* << Fim da inclusão

         itab_zycit036-codigo EQ 'CIF' .

        IF itab_zycit036-waers_real NE /pws/zycit085-waersfob.

          READ TABLE itab_tcurc WITH KEY

            waers = itab_zycit036-waers_real.

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

...

 

...

    CLEAR v_itemcongela.

    READ  TABLE itab_zycit036_auxl WITH KEY

    nrseq = itab_zycit036-nrseq

    ebeln = itab_zycit036-ebeln

    ebelp = itab_zycit036-ebelp

               congelamov = 'X'.

    IF sy-subrc EQ 0.

      v_itemcongela = 'X'.

    ENDIF.

    CASE itab_zycit036-codigo.

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

      WHEN 'FOB' OR 'C&F' OR 'CIF'.

* << Fim da exclusão

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

      WHEN 'FOB' OR 'C&F' OR 'CIF' or 'C+I'.

* << Fim da inclusão

        IF itab_zycit036-origem = 'FAT'.

          READ TABLE itab_zycit003 WITH KEY

                      nrseq = itab_zycit036-nrseq

                      ebeln = itab_zycit036-ebeln

                      ebelp = itab_zycit036-ebelp.

          IF sy-subrc = 0.

            READ TABLE itab_zycit263 WITH KEY

                                 nrseq = itab_zycit003-nrseq

                                 ebeln = itab_zycit003-ebeln

                                 ebelp = itab_zycit003-ebelp.

...

 

...

 

  IF /pws/zycit442-mdadicao EQ 'N'.

    LOOP AT itab_zycit036 WHERE origem EQ 'NF'.

      v_index = sy-tabix.

      IF itab_zycit036-codigo EQ 'FOB' OR

         itab_zycit036-codigo EQ 'C&F' OR

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

         itab_zycit036-codigo EQ 'C+I' OR

* << Fim da inclusão

         itab_zycit036-codigo EQ 'CIF' .

        IF itab_zycit036-waers_real NE /pws/zycit442-waersfob.

          READ TABLE itab_tcurc WITH KEY

            waers = itab_zycit036-waers_real.

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

...

 

...

          itab_zycit036-waers_real = /pws/zycit442-waersfob.

        ENDIF.

      ENDIF.

      MODIFY itab_zycit036 INDEX v_index.

    ENDLOOP.

    CLEAR : /pws/zycit174, v_moeda.

    LOOP AT itab_zycit036 WHERE origem EQ 'FAT'.

      v_index = sy-tabix.

      IF itab_zycit036-codigo EQ 'FOB' OR

         itab_zycit036-codigo EQ 'C&F' OR

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

         ITAB_ZYCIT036-CODIGO EQ 'C+I' OR

* << Fim da inclusão

         itab_zycit036-codigo EQ 'CIF' .

        IF itab_zycit036-waers_real NE /pws/zycit442-waersfob.

          READ TABLE itab_tcurc WITH KEY

            waers = itab_zycit036-waers_real.

          IF sy-subrc EQ 0.

            MOVE itab_tcurc-/pws/codmo TO v_moeda.

            READ TABLE itab_zycit174 WITH KEY

               codconver = v_moeda.

            IF sy-subrc EQ 0.

              MOVE itab_zycit174 TO /pws/zycit174.

...

 

...

    CLEAR v_itemcongela.

    READ  TABLE itab_zycit036_auxl WITH KEY

    nrseq = itab_zycit036-nrseq

    ebeln = itab_zycit036-ebeln

    ebelp = itab_zycit036-ebelp

               congelamov = 'X'.

    IF sy-subrc EQ 0.

      v_itemcongela = 'X'.

    ENDIF.

    CASE itab_zycit036-codigo.

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

      WHEN 'FOB' OR 'C&F' OR 'CIF'.

* << Fim da exclusão

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

      WHEN 'FOB' OR 'C&F' OR 'CIF' OR 'C+I'.

* << Fim da inclusão

        IF itab_zycit036-origem = 'FAT'.

          READ TABLE itab_zycit003 WITH KEY

                      nrseq = itab_zycit036-nrseq

                      ebeln = itab_zycit036-ebeln

                      ebelp = itab_zycit036-ebelp.

          IF sy-subrc = 0.

            READ TABLE itab_zycit263 WITH KEY

                                 nrseq = itab_zycit003-nrseq

                                 ebeln = itab_zycit003-ebeln

                                 ebelp = itab_zycit003-ebelp.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR035

 

...

      MOVE itab_zycit085 TO /pws/zycit085.

    ENDIF.

    READ TABLE itab_zycit094 WITH KEY  nrseq = it_desp-nrseq .

    IF sy-subrc EQ 0.

      MOVE itab_zycit094 TO /pws/zycit094.

    ENDIF.

    READ TABLE itab_zycit093 WITH KEY  nrseqce = itab_zycit094-nrseqce.

    IF sy-subrc EQ 0.

      MOVE itab_zycit093 TO /pws/zycit093.

    ENDIF.

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

    IF /pws/zycit031-inco1_ci NE 'CIF'.

* << Fim da exclusão

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

    IF ( /pws/zycit031-inco1_ci NE 'CIF' and

         /pws/zycit031-inco1_ci NE 'C+I' ) .

* << Fim da inclusão

      PERFORM entra_despesa USING it_desp 'SEGURO' it_desp-vlseg

      /pws/zycit085-waersseg     0                CHANGING wa_036.

      MOVE wa_036 TO itab_zycit036.

      PERFORM retorna_decimais USING itab_zycit036-waers_real

                              CHANGING itab_zycit036-vlreal.

      itab_zycit036-usernamec = sy-uname.

      itab_zycit036-dtuserc   = sy-datum.

      itab_zycit036-hruserc   = sy-uzeit.

      APPEND itab_zycit036.

    ENDIF.

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

    IF /pws/zycit031-inco1_ci EQ 'FOB'.

* << Fim da exclusão

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

    IF /pws/zycit031-inco1_ci EQ 'FOB' or

       /pws/zycit031-inco1_ci eq 'C+I' .

* << Fim da inclusão

      PERFORM entra_despesa USING it_desp 'FRETEI' it_desp-vlfre

      /pws/zycit093-waersfre     0                CHANGING wa_036.

      MOVE wa_036 TO itab_zycit036.

      PERFORM retorna_decimais USING itab_zycit036-waers_real

                              CHANGING itab_zycit036-vlreal.

      itab_zycit036-usernamec = sy-uname.

      itab_zycit036-dtuserc   = sy-datum.

      itab_zycit036-hruserc   = sy-uzeit.

      APPEND itab_zycit036.

    ENDIF.

...

 

...

    DELETE itab_zycit030 WHERE codigo = 'CIF'

                            OR codigo  = 'C&F'.

  ELSEIF /pws/zycit031-inco1_ci EQ 'C&F'.

    DELETE itab_zycit030 WHERE codigo = 'FOB'

                            OR codigo = 'CIF'

                            OR codigo = 'FRETEI'.

  ELSEIF /pws/zycit031-inco1_ci EQ 'CIF'.

    DELETE itab_zycit030 WHERE codigo = 'C&F'

                            OR codigo = 'FOB'

                            OR codigo = 'FRETEI'

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

                            OR codigo = 'SEGURO'.

  ELSEIF /pws/zycit031-inco1_ci EQ 'C+I'.

    DELETE itab_zycit030 WHERE codigo = 'C&F'

                            OR codigo = 'FOB'

                            OR codigo = 'CIF'

* << Fim da inclusão

                            OR codigo = 'SEGURO'.

  ENDIF.

  FREE itab_zycit030_aux.

  CLEAR v_ebeln.

  IF /pws/zycie001-regime EQ '14' AND

     /pws/zycie001-tpdecl EQ 'DI'.

    IF NOT it_desp[] IS INITIAL.

      SELECT ebeln ebelp menge FROM ekpo

      INTO TABLE itab_ekpo FOR ALL ENTRIES IN it_desp

      WHERE ebeln EQ it_desp-ebeln

...

 

...

         ebelp = itab_zycit030_aux-ebelp.

    itab_zycit036_plan-nrseq   = itab_zycit030_aux-nrseq.

    itab_zycit036_plan-embarca = itab_zycit001-embarca.

    itab_zycit036_plan-bukrs   = itab_zycit001-bukrs.

    itab_zycit036_plan-werks   = itab_zycit003-werks.

    itab_zycit036_plan-waers   = itab_zycit001-waers.

    IF itab_zycit003-waers NE itab_zycit001-waers AND

       NOT itab_zycit030_aux-valor IS INITIAL.

      IF itab_zycit030_aux-codigo EQ 'FOB' OR

         itab_zycit030_aux-codigo EQ 'C&F' OR

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

         itab_zycit030_aux-codigo EQ 'CIF'.

* << Fim da exclusão

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

         itab_zycit030_aux-codigo EQ 'CIF' or

         itab_zycit030_aux-codigo EQ 'C+I'.

* << Fim da inclusão

        v_valor = itab_zycit003-netpr.

        v_data = /pws/zycie001-dtinicio.

        IF /pws/zycie001-dtinicio IS INITIAL.

          v_data = itab_zycit001-dtinicio.

        ENDIF.

      ELSE.

        v_valor = itab_zycit030_aux-valor.

        v_data = sy-datlo.

      ENDIF.

      PERFORM converter_moeda(/pws/sapmzyci010) USING

...

 

...

        PERFORM converter_moeda(/pws/sapmzyci010)

                  USING    v_valor

                           /pws/zycbt007-waersb

                           itab_zycit001-waers

                           v_data

                  CHANGING v_valor.

      ENDIF.

      IF v_valor NE 0.

        IF itab_zycit030_aux-codigo EQ 'FOB' OR

           itab_zycit030_aux-codigo EQ 'C&F' OR

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

           itab_zycit030_aux-codigo EQ 'CIF'.

* << Fim da exclusão

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

           itab_zycit030_aux-codigo EQ 'CIF' or

           itab_zycit030_aux-codigo eq 'C+I' .

* << Fim da inclusão

          itab_zycit030_aux-valor = v_valor * itab_zycit003-qtd_iten.

        ELSE.

          itab_zycit030_aux-valor = v_valor.

        ENDIF.

      ENDIF.

    ENDIF.

    itab_zycit036_plan-ebeln   = itab_zycit030_aux-ebeln.

    itab_zycit036_plan-ebelp   = itab_zycit030_aux-ebelp.

    itab_zycit036_plan-codmod  = itab_zycit030_aux-codmod.

    itab_zycit036_plan-codigo  = itab_zycit030_aux-codigo.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR145

 

...

                                      ebelp = itab_zycit036-ebelp.

    MOVE: itab_material-matnr  TO i_final-matnr.

    i_final-waers = itab_zycit036-waers_real.

    IF v_programa NE 'REC'.

      MOVE:  itab_zycit036-vlreal TO i_final-valor.

      IF itab_zycit036-origem = 'NF' AND

         ( itab_zycit036-codigo = 'FRETEI' OR

         itab_zycit036-codigo = 'SEGURO' OR

         itab_zycit036-codigo = 'C&F' OR

         itab_zycit036-codigo = 'CIF' OR

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

         itab_zycit036-codigo = 'C+I' OR

* << Fim da inclusão

         itab_zycit036-codigo = 'FOB' ).

        IF itab_zycit036-codigo = 'FRETEI'.

          i_final-valor =

                  ( i_final-valor * /pws/zycit085-ukursfre ) .

          i_final-waers = /pws/zycbt007-waersb.

        ELSEIF itab_zycit036-codigo = 'SEGURO'.

          i_final-valor =

                  ( i_final-valor * /pws/zycit085-ukursseg ) .

          i_final-waers = /pws/zycbt007-waersb.

        ELSE.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI003

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 212

 

Texto: (21 caracteres)

"for this invoice type"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 217

 

Texto: (18 caracteres)

"Incoterm not valid"

 

Comprimento máximo: 20

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 217

 

Texto: (17 caracteres)

"Incoterm inválido"

 

Comprimento máximo: 20

 

 

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIT122

 

Gerar novamente a visão de atualização da tabela.

Na SE54, escolher opção Objetos gerados -> Criar/modificar

Clicar no lápis - selecionar todas as opções e dar enter.

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

Modificações efetuadas em TABD /PWS/ZYCIT123

 

Gerar novamente a visão de atualização da tabela.

Na SE54, escolher opção Objetos gerados -> Criar/modificar

Clicar no lápis - selecionar todas as opções e dar enter.