CE PLUS - Nota 001353

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 16/05/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:30:12

Descrição da Nota: APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLANEJADO

Sintoma

1) Após salvar o embarque com regime 16, o saldo da DA e o valor planejado ficam zerados;

2) O peso líquido do embarque não corresponde com a quantidade embarcada;

3) Quando a quantidade é alterada, o peso líquido fica zerado

4) Não é possível eliminar itens vinculados;

 

 

Solução

Ajuste no embarque

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO ENTREPOSTO ADUANEIRO

Informações Complementares

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

Nota Número 01353 Data: 16/05/2006 Hora: 16:51:15

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

 

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

Nota Número              : 01353

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00114

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

Referência às notas relacionadas:

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

 

01268  - 00001 - 6.0    - 00023  - DESENVOLVIMENTO ENTREPOSTO ADUANEIRO

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

APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLANEJADO

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

Palavras Chave:

EMBARQUE

 

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F02

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI001O01

REPS /PWS/MZYCI001X01

REPS /PWS/MZYCI016F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

        /pws/zycie001-nrseq         TO itab_zycit003-nrseq       ,

        /pws/zycie013-slqtde        TO itab_zycit003-slqtde      ,

        /pws/zycie003-qtd_itend     TO itab_zycit003-qtd_itend   ,

        /pws/zycie003-dtremessa     TO itab_zycit003-dtremessa   ,

        /pws/zycie003-dtalocprod    TO itab_zycit003-dtalocprod  ,

        /pws/zycie003-dtprovent     TO itab_zycit003-dtprovent   ,

        /pws/zycie003-ntgewd        TO itab_zycit003-ntgewd      .

  MOVE ekpo-idnlf TO itab_zycit003-idnlf.

  MODIFY itab_zycit003 INDEX tc_ped-current_line.

  IF sy-subrc NE 0.

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

    IF  /pws/zycie001-regime NE '14'.

* << Fim da exclusão

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

    IF  /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.

* << Fim da inclusão

      READ TABLE itab_zycit003_aux WITH KEY

                                  ebeln    = itab_zycit003-ebeln

                                  ebelp    = itab_zycit003-ebelp.

      IF sy-subrc NE 0.

        CLEAR itab_zycit013.

        READ TABLE itab_zycit013 WITH KEY

                                 ebeln    = itab_zycit003-ebeln

                                 ebelp    = itab_zycit003-ebelp.

        IF sy-subrc EQ 0.

          MOVE: itab_zycit013-slqtde TO  itab_zycit003-qtd_iten,

...

 

...

      SELECT SINGLE * FROM /pws/zycit000  WHERE land1 EQ t001-land1.

      IF /pws/zycit000-flagbl IS INITIAL.

        /pws/zycit093-paemb      = /pws/zycit001-paorigem.

        /pws/zycit093-padest     = /pws/zycit001-padest.

        /pws/zycit093-paispae    = /pws/zycit001-paispao.

      ENDIF.

      MODIFY /pws/zycit093.

    ENDIF.

  ENDIF.

  MODIFY /pws/zycit356 FROM /pws/zycie356.

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

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

* << Fim da exclusão

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

  IF /pws/zycie001-regime EQ '14' OR /pws/zycie001-regime EQ '16'.

* << Fim da inclusão

    PERFORM salva_dados_da.

  ENDIF.

  CLEAR itab_zycit003_del.

  REFRESH itab_zycit003_del.

  DELETE FROM /pws/zycit001 WHERE nrseq = space.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI001'

                              'EMB003'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'EMB003'  BINARY SEARCH.

...

 

...

  IF sy-subrc EQ 0 AND NOT /pws/zyglt217-msgtp IS INITIAL.

    CLEAR v_tot_ntgew.

    LOOP AT itab_zycit003.

      v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

    ENDLOOP.

    IF sy-subrc = 0 AND okcode = 'SAVE'.

      WRITE v_tot_ntgew TO v_tot_peso UNIT itab_zycit003-gewei.

      MESSAGE ID '/PWS/ZYCIM' TYPE /pws/zyglt217-msgtp NUMBER '128'

        WITH v_tot_peso.

    ENDIF.

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

  ENDIF.

  IF /pws/zycie001-regime = '16' and okcode = 'DI'

     and not itab_zycit003[] is initial.

    SELECT * FROM /pws/zycit455 INTO TABLE itab_zycit455_aux

      WHERE nrseq = /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443_aux2

      FOR ALL ENTRIES IN itab_zycit455_aux

      WHERE nrseqda = itab_zycit455_aux-nrseqda AND

            ebeln = itab_zycit455_aux-ebeln AND

            ebelp = itab_zycit455_aux-ebelp.

    SELECT SINGLE * FROM /pws/zycit094

      WHERE nrseq = /pws/zycie001-nrseq.

    IF sy-subrc NE 0.

      /PWS/ZYCIT093-BUKRS = /PWS/ZYCIE093-BUKRS = /PWS/ZYCIE001-BUKRS.

      PERFORM busca_sequencial_bl.

      INSERT INTO /pws/zycit093 VALUES /pws/zycie093.

      WHILE sy-subrc NE 0.

        PERFORM busca_sequencial_bl.

        INSERT INTO /pws/zycit093 VALUES /pws/zycie093.

      ENDWHILE.

      /pws/zycit093 = /pws/zycie093.

      /pws/zycit094-nrseq = /pws/zycie001-nrseq.

      /pws/zycit094-nrseqce = /pws/zycit093-nrseqce.

      INSERT INTO /pws/zycit094 VALUES /pws/zycit094.

    ELSE.

      SELECT SINGLE * FROM /pws/zycit093

       WHERE nrseqce = /pws/zycit094-nrseqce.

    ENDIF.

    CLEAR: /pws/zycit093-collect, /pws/zycit093-brgew.

    LOOP AT itab_zycit443_aux2.

     READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit443_aux2-ebeln

                                       ebelp = itab_zycit443_aux2-ebelp.

      /pws/zycit093-collect = /pws/zycit093-collect +

        ( itab_zycit443_aux2-vlfre / itab_zycit443_aux2-qtd_iten

           * itab_zycit003-qtd_iten ).

      /pws/zycit093-brgew = /pws/zycit093-brgew + itab_zycit003-ntgew.

      /PWS/ZYCIT093-WAERSFRE = 'BRL'.

    ENDLOOP.

    MODIFY /pws/zycit093.

    LOOP AT itab_zycit003.

     READ TABLE itab_zycit443_aux2 WITH KEY ebeln = itab_zycit003-ebeln

                                          ebelp = itab_zycit003-ebelp.

      itab_zycit003-vlreal = itab_zycit443_aux2-vlreal.

      itab_zycit003-waers_real = itab_zycit443_aux2-waersbem.

      itab_zycit003-invoiced = itab_zycit003-qtd_iten.

      READ TABLE itab_zycit263 WITH KEY nrseq = itab_zycit003-nrseq

                                        ebeln = itab_zycit003-ebeln

                                        ebelp = itab_zycit003-ebelp

                                        eliminado = ' '.

      IF sy-subrc NE 0.

        /pws/zycbt119-status = 'E'.

  MOVE: /pws/zycie001-embarca   TO /pws/zycbt119-nrfat,

        'S'              TO /pws/zycbt119-fcambio.

        PERFORM busca_sequencial_fat.

        INSERT /pws/zycbt119 .

        WHILE sy-subrc NE 0.

          PERFORM busca_sequencial_fat.

          INSERT /pws/zycbt119.

        ENDWHILE.

        CLEAR itab_zycit263.

        MOVE:

          itab_zycit003-nrseq TO itab_zycit263-nrseq,

          itab_zycit003-ebeln TO itab_zycit263-ebeln,

          itab_zycit003-ebelp TO itab_zycit263-ebelp,

          /pws/zycbt119-nrseq TO itab_zycit263-nrseq_pgfat,

          itab_zycit003-qtd_iten TO itab_zycit263-qtd_iten,

          itab_zycit003-meins TO itab_zycit263-meins,

          itab_zycit003-vlreal TO itab_zycit263-vlreal,

          itab_zycit003-waers_real TO itab_zycit263-waers_real,

          itab_zycit003-ntgew TO itab_zycit263-ntgew,

          itab_zycit003-gewei TO itab_zycit263-gewei.

        append itab_zycit263.

        move itab_zycit263 to /pws/zycit263.

        INSERT /pws/zycit263.

        SELECT SINGLE * FROM /pws/zycit263 INTO wa_zycit263

          WHERE nrseq = itab_zycit443_aux2-nrseq AND

                ebeln = itab_zycit443_aux2-ebeln AND

                ebelp = itab_zycit443_aux2-ebelp.

        SELECT single * FROM /pws/zycit006 WHERE nrseq_pgfat

            = wa_zycit263-nrseq_pgfat.

         move   /pws/zycit093-nrseqce to /pws/zycit006-nrseqce.

        /pws/zycit006-nrseq_pgfat = /pws/zycbt119-nrseq.

        CLEAR /pws/zycit006-nrseq.

        /PWS/ZYCIT006-BUKRS = /PWS/ZYCIE001-BUKRS.

        /pws/zycit006-frpagto = 'A'.

        /pws/zycit006-ntgew = itab_zycit003-ntgew.

        CLEAR /PWS/ZYCIT006-BELNR_P.

        PERFORM busca_sequencial_fat2.

        INSERT /pws/zycit006 .

        WHILE sy-subrc NE 0.

          PERFORM busca_sequencial_fat2.

          INSERT /pws/zycit006.

        ENDWHILE.

      ENDIF.

      move:  /pws/zycit006-nrseq   TO /pws/zycbt119-nrpagto,

        /pws/zycit006-dtvencto TO /pws/zycbt119-dtvencext,

        itab_zycit003-gsber TO /pws/zycbt119-gsber,

        /pws/zycit006-dtincl  TO /pws/zycbt119-dtincl.

      modify /pws/zycbt119.

      MODIFY itab_zycit003.

      MODIFY /pws/zycit003 FROM itab_zycit003.

    ENDLOOP.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM busca_sequencial.

  DATA:

    v_nrseq   LIKE /pws/zycit001-nrseq,

    v_nrseq_ant LIKE /pws/zycit001-nrseq,

    v_count(7) TYPE n,

    v_ano(4).

  v_nrseq_ant = /pws/zycie001-nrseq.

  IF NOT /pws/zycie001-bukrs IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F02

 

...

                                 CHANGING /pws/zycie001-nrseq.

        ELSE.

          MESSAGE i061 WITH text-136.

        ENDIF.

      ENDIF.

    ELSE.

      PERFORM find_nrseqc.

      PERFORM find_embarca.

    ENDIF.

  ENDIF.

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

  if /pws/zycie001-regime ne '14'.

* << Fim da exclusão

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

  if /pws/zycie001-regime ne '14' and /pws/zycie001-regime ne '16'.

* << Fim da inclusão

     PERFORM verifica_itens.

  else.

     PERFORM verifica_itens_da.

  endif.

  PERFORM: busca_cnpj,

           load_text.

  IF v_tcode EQ ' '.

    v_tcode = sy-tcode.

  ENDIF.

  SELECT SINGLE name

...

 

...

ENDFORM.

FORM seleciona_di.

  SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100

  FOR ALL ENTRIES IN itab_zycit003

  WHERE nrseq EQ itab_zycit003-nrseq.

  IF sy-subrc EQ 0.

    v_di = 'S'.

  ELSE.

    CLEAR v_di.

  ENDIF.

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

  if /pws/zycie001-regime = '16' and v_di is initial and

    not /pws/zycie001-nrseq is initial.

   select single * from /pws/zycit094

     where nrseq = /pws/zycie001-nrseq.

     if sy-subrc = 0.

       delete FROM /pws/zycit093 where nrseqce = /pws/zycit094-nrseqce.

       delete FROM /pws/zycit094 where nrseqce = /pws/zycit094-nrseqce.

       SELECT * FROM /PWS/ZYCIT006 INTO TABLE ITAB_ZYCIT006

          WHERE NRSEQCE = /pws/zycit094-nrseqce AND

                TPFATURA = '01'.

       LOOP AT ITAB_ZYCIT006 WHERE NRSEQ_PGFAT IS INITIAL.

       delete FROM /pws/zycBT119

            where nrseq = ITAB_ZYCIT006-NRSEQ_PGFAT.

       ENDLOOP.

       delete FROM /pws/zycit006 where nrseq = /pws/zycit094-nrseqCE AND

                                       TPFATURA = '01'.

       delete FROM /pws/zycit263 where nrseq = /pws/zyciE001-nrseq.

       IF NOT ITAB_ZYCIT263[] IS INITIAL.

         LOOP AT ITAB_ZYCIT263.

            DELETE ITAB_ZYCIT263.

         ENDLOOP.

       ENDIF.

  endif.

  endif.

* << Fim da inclusão

ENDFORM.

FORM trata_detitem.

  v_contador = 0.

  IF v_status_s NE '0'.

    LOOP AT itab_zycit003 WHERE mark EQ 'X'.

      v_ip = sy-tabix.

      v_contador = v_contador + 1.

    ENDLOOP.

  ELSE.

    LOOP AT itab_zycit003 WHERE mark EQ 'X'.

      v_contador = v_contador + 1.

    ENDLOOP.

  ENDIF.

  IF v_contador NE 1.

    MESSAGE s015 WITH text-062.

  ELSE.

    READ TABLE itab_zycit003 WITH KEY mark = 'X'.

    MOVE-CORRESPONDING itab_zycit003 TO /pws/zycie003.

    v_centro = ' '.

    v_saldo = itab_zycit003-slqtde.

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

    if /pws/zycie001-regime eq '14'.

* << Fim da exclusão

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

    if /pws/zycie001-regime eq '14' or /pws/zycie001-regime eq '16'.

* << Fim da inclusão

       v_totemb = /pws/zycie003-menge.

    else.

        READ TABLE itab_komv WITH KEY ebeln = /pws/zycie003-ebeln

                                      kposn = /pws/zycie003-ebelp

                                      kschl = 'Z0X1'.

        IF sy-subrc EQ 0.

          IF itab_komv-kpein NE 0.

            v_totemb = itab_komv-kbetr / itab_komv-kpein

                       * /pws/zycie003-qtd_iten.

          ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

          wa_cols-screen-input = '0'.

        ELSE.

          wa_cols-screen-input = '1'.

        ENDIF.

      ENDIF.

      MODIFY tc_ped-cols FROM wa_cols.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM selecionar_da.

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

if /pws/zycie001-regime ne '14'.

* << Fim da inclusão

  SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs

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

         /pws/zycit442~dtdesemb  /pws/zycit443~ebeln

         /pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit443~qtd_iten

         /pws/zycit443~qtd_iten

     FROM ( /pws/zycit442

           INNER JOIN /pws/zycit443 ON

           /pws/zycit442~nrseqda = /pws/zycit443~nrseqda )

    INTO corresponding fields of table itab_da

    WHERE /pws/zycit442~bukrs   EQ pa_buk

      AND /pws/zycit442~nrseqda IN so_nrseq

      AND /pws/zycit442~nrdi    IN so_nrda

      AND /pws/zycit443~ebeln   IN so_beln

      AND /pws/zycit443~ebelp   IN so_belp

      AND /pws/zycit443~matnr   IN so_matn.

    loop at itab_da.

    select single qtd_iten from /pws/zycit443 into itab_da-qtd_LOTE

      where nrseqda = itab_da-nrseqda and

            ebeln = itab_da-ebeln and

            ebelp = itab_da-ebelp.

      modify itab_da.

    endloop.

    MOVE ITAB_DA[] TO ITAB_DA_AUX[].

else.

  SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs

* << Fim da inclusão

         /pws/zycit442~dtdesemb /pws/zycit460~lifnr /pws/zycit443~ebeln

         /pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit463~lote_forn

         /pws/zycit463~numfatura /pws/zycit463~qtd_lote

         /pws/zycit463~qtd_nac

     FROM ( /pws/zycit442 INNER JOIN /pws/zycit460 ON

            /pws/zycit442~nrseqda = /pws/zycit460~nrseqda

           INNER JOIN /pws/zycit443 ON

           /pws/zycit442~nrseqda = /pws/zycit443~nrseqda

           INNER JOIN /pws/zycit463 ON

           /pws/zycit463~nrseqda = /pws/zycit443~nrseqda  )

    INTO TABLE itab_da

    WHERE /pws/zycit442~bukrs   EQ pa_buk

      AND /pws/zycit460~lifnr   IN so_lifn

      AND /pws/zycit442~nrseqda IN so_nrseq

      AND /pws/zycit442~nrdi    IN so_nrda

      AND /pws/zycit443~ebeln   IN so_beln

      AND /pws/zycit443~ebelp   IN so_belp

      AND /pws/zycit443~matnr   IN so_matn.

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

  endif.

* << Fim da inclusão

  IF NOT itab_da[] IS INITIAL.

    MOVE ITAB_DA[] TO ITAB_DA_AUX[].

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

    if /pws/zycie001-regime eq '14'.

* << Fim da inclusão

    loop at itab_da.

       if itab_da-qtd_lote is initial.

          delete itab_da.

       elseif itab_da-qtd_nac eq itab_da-qtd_lote and

          not itab_da-qtd_nac is initial .

          delete itab_da .

       else.

          if not itab_da-qtd_nac is initial.

              itab_da-qtd_lote = itab_da-qtd_lote - itab_da-qtd_nac.

              clear itab_da-qtd_nac.

              modify itab_da.

          endif.

       endif.

    endloop.

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

    endif.

* << Fim da inclusão

    DESCRIBE TABLE itab_da LINES v_line.

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

    IF v_line GT '1'.

* << Fim da exclusão

      CALL SCREEN '0003'.

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

    ELSE.

      PERFORM selecionar_itens_da.

    ENDIF.

* << Fim da exclusão

  ELSE.

    MESSAGE s015 WITH text-259.

  ENDIF.

ENDFORM.

FORM trata_delp.

  CASE ts_embar-activetab.

    WHEN 'FC_PED' .

      LOOP AT itab_zycit003 WHERE mark = 'X'.

        IF itab_zycit003-nrseqli IS INITIAL AND

           itab_zycit003-nrseqlsi IS INITIAL.

...

 

...

        ELSEIF /pws/zycie001-tpdecl EQ 'DI'.

          IF /pws/zycie001-regime EQ '05'.

            screen-invisible = '0'.

          ELSE.

            screen-invisible = '1'.

          ENDIF.

        ELSE.

          screen-invisible = '1'.

        ENDIF.

      ENDIF.

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

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

* << Fim da exclusão

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

      IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.

* << Fim da inclusão

        IF screen-group2 EQ 'DA'.

          screen-invisible = '0'.

        ENDIF.

        IF screen-group2 EQ 'PED'.

          screen-invisible = '1'.

        ENDIF.

      ELSE.

        IF screen-group2 EQ 'DA'.

          screen-invisible = '1'.

        ENDIF.

...

 

...

        SELECT SINGLE * FROM /pws/zycit094

          WHERE nrseq = /pws/zycie001-nrseq.

        IF sy-subrc = 0 AND NOT /pws/zycie001-nrseq IS INITIAL.

          screen-input = 0.

          MODIFY SCREEN.

        ELSE.

          screen-input = 1.

          MODIFY SCREEN.

        ENDIF.

      ENDIF.

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

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

* << Fim da exclusão

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

      IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.

* << Fim da inclusão

        IF screen-group2 EQ 'DA'.

          screen-invisible = '0'.

        ENDIF.

        IF screen-group2 EQ 'PED'.

          screen-invisible = '1'.

        ENDIF.

      ELSE.

        IF screen-group2 EQ 'DA'.

          screen-invisible = '1'.

        ENDIF.

...

 

...

    PERFORM trata_obrig4.

  ENDLOOP.

ENDFORM.

FORM trata_obrig4.

  IF screen-name EQ '/PWS/ZYCIE001-BUKRS' OR

     screen-name EQ '/PWS/ZYCIE001-J_1BBRANCH' OR

     screen-name EQ '/PWS/ZYCIE001-MODALIDADE' OR

     screen-name EQ '/PWS/ZYCIE001-TPDECL' OR

     screen-name EQ '/PWS/ZYCIE001-REGIME' OR

     screen-name EQ '/PWS/ZYCIE001-MEIOEMBA'.

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

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

* << Fim da exclusão

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

    IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.

* << Fim da inclusão

      screen-required = '0'.

      MODIFY SCREEN.

    ELSE.

      screen-required = '1'.

      MODIFY SCREEN.

    ENDIF.

  ENDIF.

ENDFORM.

FORM verifica_itens_da.

  DATA:   v_ebelp      LIKE konv-kposn,

...

 

...

  MOVE itab_zycit003[] TO itab_zycit003_aux[].

ENDFORM.

FORM selecionar_itens_da.

  DATA: itab_werks LIKE itab_zycit003 OCCURS 0 WITH HEADER LINE,

         itab_t001w LIKE t001w OCCURS 0 WITH HEADER LINE.

  clear  : /pws/zycie001-netpr.

  if v_line gt '1'.

     delete itab_da where qtd_nac is initial.

  endif.

  read table itab_da index 1.

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

  IF NOT itab_da[] IS INITIAL and /pws/zycie001-regime eq '14'.

* << Fim da exclusão

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

  IF NOT itab_da[] IS INITIAL and ( /pws/zycie001-regime eq '14' or

                                    /pws/zycie001-regime eq '16' ).

* << Fim da inclusão

    SELECT SINGLE * FROM /pws/zycit442

    WHERE nrseqda EQ itab_da-nrseqda

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

    and   codreg  eq '02'.

* << Fim da exclusão

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

    and  (  codreg  eq '02' or

            codreg = '04' ).

* << Fim da inclusão

    IF /pws/zycit442-statusfin NE space.

...

 

...

  endloop.

  LOOP AT itab_zycit443 .

    v_tabix = sy-tabix.

    READ TABLE itab_nac WITH KEY ebeln = itab_zycit443-ebeln

                                 ebelp = itab_zycit443-ebelp.

    IF sy-subrc EQ 0.

      itab_zycit443-qtd_iten = itab_nac-qtd_nac.

      MODIFY itab_zycit443 INDEX v_tabix.

    ENDIF.

  ENDLOOP.

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

  clear   itab_nac.

  refresh itab_nac.

* << Fim da exclusão

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

  IF /PWS/ZYCIE001-REGIME NE '16'.

* << Fim da inclusão

  PERFORM calcula_saldo_da.

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

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycit443.

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

    read table itab_nac with key ebeln = itab_zycit443-ebeln

                                 ebelp = itab_zycit443-ebelp.

    if sy-subrc = 0.

* << Fim da inclusão

    MOVE:

     itab_zycit443-advalicms      TO    itab_zycit003-advalicms ,

     itab_zycit443-advalii        TO    itab_zycit003-advalii   ,

     itab_zycit443-advalipi     TO    itab_zycit003-advalipi,

     itab_zycit443-aliqicms       TO    itab_zycit003-aliqicms  ,

     itab_zycit443-aliqii         TO    itab_zycit003-aliqii    ,

     itab_zycit443-aliqipi        TO    itab_zycit003-aliqipi   ,

     itab_zycit443-basred         TO    itab_zycit003-basred    ,

     itab_zycit443-ebeln          TO    itab_zycit003-ebeln     ,

     itab_zycit443-ebelp          TO    itab_zycit003-ebelp    ,

...

 

...

     IF NOT ITAB_ZYCIT443-QTD_DA IS INITIAL.

         itab_zycit003-ntgew = (  itab_zycit443-ntgew /

                  itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.

          itab_zycit003-v_fob = ( itab_zycit443-netpr /

                  itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.

     ENDIF.

     itab_zycit003-sld_da   =  itab_zycit443-QTD_SLD =

        itab_zycit443-qtd_da - itab_zycit443-qtd_util -

        itab_zycit443-qtd_iten.

    APPEND itab_zycit003.

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

    endif.

* << Fim da inclusão

  ENDLOOP.

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

  clear   itab_nac.

  refresh itab_nac.

* << Fim da inclusão

  move itab_da[] to itab_da_aux[].

  CLEAR itab_da. REFRESH itab_da.

  READ TABLE itab_zycit003 INDEX 1 .

  MOVE: itab_zycit003-lifnr TO v_lifnr,

        itab_zycit003-waers TO v_waers,

...

 

...

      endif.

    ENDLOOP.

    itab_zycit443-qtd_util = v_qtdutil_da.

    MODIFY itab_zycit443 INDEX v_tabix.

  ENDLOOP.

ENDFORM.

FORM carrega_itab_003.

  MODIFY itab_da INDEX tc_selda-current_line.

ENDFORM.

FORM trata_screen_0003.

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

  describe table itab_da lines tc_selda-lines.

* << Fim da inclusão

  LOOP AT tc_selda-cols INTO wa_cols.

    IF v_status_s = '0'.

      wa_cols-screen-input = '0'.

    ENDIF.

    MODIFY tc_selda-cols FROM wa_cols.

  ENDLOOP.

ENDFORM.

form salva_dados_da.

  loop at itab_zycit003_del.

     delete itab_zycit455 where nrseq  = /pws/zycie001-nrseq

...

 

...

    SELECT SINGLE eindt

    FROM eket

    INTO itab_zycit003_aux-dtremessa

    WHERE ebeln = itab_zycit003-ebeln AND

          ebelp = itab_zycit003-ebelp.

    PERFORM verif_dtproventrega.

    MODIFY itab_zycit003.

    CLEAR itab_zycit003.

  ENDLOOP.

endform.

* >> Início da inclusão:

form busca_sequencial_bl.

  DATA:

      v_nrseqce   LIKE /pws/zycit093-nrseqce,

      v_nrseq_ant LIKE /pws/zycit093-nrseqce,

      v_count(7) TYPE n,

      v_ano(4).

  v_nrseq_ant = /pws/zycie093-nrseqce.

  CONCATENATE '%' 'I' sy-datum+2(2) INTO v_ano.

  SELECT MAX( nrseqce ) INTO (v_nrseqce) FROM /pws/zycit093

                                     WHERE nrseqce LIKE v_ano.

  v_count = v_nrseqce+0(7) + 1.

  CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycie093-nrseqce.

endform.

form busca_sequencial_fat.

  DATA:

    v_nrseq   LIKE /pws/zycit001-nrseq,

    v_count(8) TYPE n.

  SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycbt119.

  v_count = v_nrseq+0(8) + 1.

  CONCATENATE v_count sy-datum+2(2) INTO /pws/zycbt119-nrseq.

endform.

form busca_sequencial_fat2.

  DATA:

    v_nrseq   LIKE /pws/zycit006-nrseq,

    v_nrseq_ant LIKE /pws/zycit006-nrseq,

    v_count(7) TYPE n,

    v_ano1(4).

  CONCATENATE '%' 'I' sy-datum+2(2) INTO v_ano1.

  SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycit006

                                     WHERE nrseq LIKE v_ano1.

  v_count = v_nrseq+0(7) + 1.

  CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycit006-nrseq.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

        v_netpr = ( itab_zycit003-netpr * itab_zycit003-qtd_iten *

                   v_taxa ).

        PERFORM tratar_decimais USING   itab_zycit003-waers

                               CHANGING v_netpr.

        /pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.

      ENDLOOP.

  ENDCASE.

ENDMODULE.

MODULE atualizar_itens INPUT.

  DATA:v_ver_index LIKE sy-tabix.

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

  IF /pws/zycie001-regime  NE '14'.

* << Fim da exclusão

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

  IF /pws/zycie001-regime  NE '14' and /pws/zycie001-regime  NE '16'.

* << Fim da inclusão

    PERFORM atualiza_itens.

  ELSE.

    PERFORM atualiza_itens_da.

  ENDIF.

  IF v_mexit = 'X'.

    EXIT.

  ENDIF.

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

  IF /pws/zycie001-regime NE '14'.

* << Fim da exclusão

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

  IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.

* << Fim da inclusão

    PERFORM verifica_itens.

  ELSE.

    PERFORM verifica_itens_da.

  ENDIF.

ENDMODULE.

MODULE verifica_peso INPUT.

ENDMODULE.

MODULE atualiza_itens INPUT.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp AND

           eliminado = space.

  ENDIF.

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

  IF /pws/zycie001-regime NE '14'.

* << Fim da exclusão

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

  IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.

* << Fim da inclusão

    PERFORM verifica_itens.

  ELSE.

    PERFORM verifica_itens_da.

  ENDIF.

  IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.

    MESSAGE w061 WITH text-004 itab_zycit003-ebelp

                      text-005 itab_zycit003-ebeln.

    v_mexit = 'X'.

    EXIT.

  ELSE.

    LOOP AT itab_zycit003.

      v_indice = sy-tabix.

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

      IF /pws/zycie001-regime NE '14'.

* << Fim da exclusão

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

      IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.

* << Fim da inclusão

        PERFORM atualiza_itens.

      ELSE.

        PERFORM atualiza_itens_da.

      ENDIF.

      PERFORM atualiza_serv.

      MODIFY itab_zycit003 INDEX v_indice.

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE user_command_0400 INPUT.

...

 

...

ENDMODULE.

module USER_COMMAND input.

   if sy-dynnr eq '0003'.

      perform user_command_0003.

   endif.

endmodule.

module carrega_itab input.

   if sy-dynnr eq '0003'.

      perform carrega_itab_003.

   elseif sy-dynnr eq '0111'.

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

      if /pws/zycie001-regime eq '14'.

* << Fim da exclusão

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

      if /pws/zycie001-regime eq '14' or /pws/zycie001-regime eq '16'.

* << Fim da inclusão

         perform carrega_itab_0111.

      endif.

   endif.

endmodule.

module qtd_lote input.

   data: v_dif.

   if itab_da-qtd_nac gt itab_da-qtd_lote.

      message e015 with text-258.

   endif.

  CLEAR: v_sld.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001O01

 

...

MODULE carrega_zycie255 OUTPUT.

  READ TABLE it_zycit119 WITH KEY status = it_zycit255-status.

  CLEAR v_descst.

  MOVE: it_zycit255-data       TO /pws/zycie255-data,

        it_zycit255-hora       TO /pws/zycie255-hora,

        it_zycit255-usuario    TO /pws/zycie255-usuario,

        it_zycit255-status     TO /pws/zycie255-status,

        it_zycit119-descricao  TO v_descst.

ENDMODULE.

MODULE carrega_instrucao OUTPUT.

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

   if not /pws/zycie001-regime eq '14'.

* << Fim da exclusão

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

   if not /pws/zycie001-regime eq '14' and /pws/zycie001-regime ne '16'.

* << Fim da inclusão

      perform carrega_instrucao.

   endif.

ENDMODULE.

MODULE carrega_forn_instrucao OUTPUT.

  IF sy-tcode = '/PWS/ZYCI001_C'.

    READ TABLE itab_zycit010 INDEX 1.

    IF sy-subrc = 0.

      READ TABLE itab_zycit125 WITH KEY nrseq = /pws/zycie001-nrseq

                                        lifnr = itab_zycit010-agente

                                        tipo  = 'AG'.

...

 

...

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa).

    ENDIF.

  ENDIF.

ENDMODULE.

module carrega_estrutura output.

   if sy-dynnr eq '0003'.

      perform carrega_estrutura_0003.

   elseif sy-dynnr eq '0111' .

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

      if /pws/zycie001-regime eq '14'.

* << Fim da exclusão

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

      if /pws/zycie001-regime eq '14' or /pws/zycie001-regime eq '16'.

* << Fim da inclusão

       perform carrega_estrutura.

          DESCRIBE TABLE itab_zycit003 LINES v_line.

          tc_da-lines = v_line.

      endif.

   endif.

endmodule.

module STATUS_0003 output.

  SET PF-STATUS '0003'.

endmodule.

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001X01

 

tables:

  /pws/zycit001,

  /pws/zycie001,

  /pws/zycit003,

  /pws/zycie003,

  /pws/zyglt217,

  /pws/zycit442,

  /pws/zycit443,

  /pws/zycit455,

* >> Início da exclusão:

  /pws/zycit460.

* << Fim da exclusão

* >> Início da inclusão:

  /pws/zycit460,

  /pws/zycit263,

  /pws/zycbt119.

* << Fim da inclusão

data: begin of common part a.

DATA: BEGIN OF itab_zycit003 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie003.

DATA: slqtde LIKE /pws/zycie013-slqtde,

      uebto  LIKE ekpo-uebto,

      uebtk  LIKE ekpo-uebtk,

      noinitial,

      mark,

      idnlf         LIKE mepo1319-idnlf,

      invoiced LIKE /pws/zycie263-qtd_iten,

...

 

...

DATA: BEGIN OF itab_komv OCCURS 0.

        INCLUDE STRUCTURE komv.

DATA: ebeln LIKE ekko-ebeln.

DATA: END OF itab_komv.

DATA: BEGIN OF itab_komp OCCURS 0.

        INCLUDE STRUCTURE konp.

DATA: END OF itab_komp.

DATA: BEGIN OF itab_a016 OCCURS 0.

        INCLUDE STRUCTURE a016.

DATA: END   OF itab_a016.

* >> Início da inclusão:

data: wa_zycit263 like /pws/zycit263.

* << Fim da inclusão

DATA: BEGIN OF itab_konp OCCURS 0.

        INCLUDE STRUCTURE konp.

DATA:       ebeln LIKE ekpo-ebeln,

            ebelp LIKE ekpo-ebelp.

DATA: END   OF itab_konp.

DATA: BEGIN OF itab_zycit030 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit030.

DATA: END OF itab_zycit030.

  data: begin of itab_zycit443_saldo occurs 0.

          include structure /pws/zycit443.

  data: end of itab_zycit443_saldo.

  data: begin of itab_zycit455 occurs 0.

          include structure /pws/zycit455.

  data: end of itab_zycit455.

* >> Início da inclusão:

  data: begin of itab_zycit455_aux occurs 0.

          include structure /pws/zycit455.

  data: end of itab_zycit455_aux.

  data: begin of itab_zycit443_aux2 occurs 0.

          include structure /pws/zycit443.

  data: end of itab_zycit443_aux2.

* << Fim da inclusão

  data: v_qtdutil_da like /pws/zycit443-qtd_da  ,

        v_sld        like /pws/zycit443-qtd_da  ,

        v_nrseqda    LIKE /pws/zycie442-nrseqda ,

        v_qtd_sld    like /pws/zycit443-qtd_iten.

  DATA: BEGIN OF itab_da OCCURS 0,

         nrseqda  LIKE /pws/zycie442-nrseqda  ,

         nrdi     LIKE /pws/zycie442-nrdi     ,

         burks    LIKE /pws/zycie442-bukrs    ,

         dtdesemb LIKE /pws/zycie442-dtdesemb ,

         agente   LIKE /pws/zycie460-lifnr    ,

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

    IF sy-subrc NE 0.

      PERFORM contabiliza_impostos.

    ENDIF.

  ENDIF.

  CLEAR v_modo_bi.

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

 REFRESH itab_zyglt100.

 PERFORM verifica_exit USING 'D'

                      '/PWS/SAPMZYCI016'

                      'DNF009'.

 CLEAR itab_zyglt100 .

 READ TABLE itab_zyglt100 WITH KEY

            zexit = 'DNF009'  BINARY SEARCH.

  IF sy-subrc EQ 0.

     IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

         PERFORM (itab_zyglt100-formulario) IN PROGRAM

                 (itab_zyglt100-programa) IF FOUND .

     ENDIF.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM   fill_data_j1b1_r.

  DATA: v_tpnf LIKE /pws/zycit044-tpnf,

        wa_zycit042_d LIKE /pws/zycit042,

        wa_zycit044 LIKE /pws/zycit044.

...