CE PLUS - Nota 001981

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Recebimento

Data/Hora da Publicação: 25/08/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 13:39:25

Descrição da Nota: AJUSTE PARA TRATAR NOTAS FISCAIS DE REMESSA NO RECEBIMENTO VINC. AO DB

Sintoma

O prorgrama não estava tratando corretamente o recebimento de notas fiscais de remessa vinculados ao

drawback.

 

 

Solução

Foi criado uma tratativa para recebimento de notas fiscais de remessa e faturas estornadas

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE PARA PREENCHER OS CAMPOS COB_CAMB E WERKS NA TABELA /PWS/ZYCIT279

AJUSTE NO TRATAMENTO DE LOTE NO RECEBIMENTO

Informações Complementares

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

Nota Número 01981 Data: 25/08/2006 Hora: 10:32:00

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

 

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

Nota Número              : 01981

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00128

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

Referência às notas relacionadas:

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

 

01679  - 00001 - 6.0    - 00024  - AJUSTE NO TRATAMENTO DE LOTE NO RECEBIMENTO

01795  - 00002 - 6.0    - 00024  - AJUSTE PARA PREENCHER OS CAMPOS COB_CAMB E WERKS NA TABELA /PWS/Z

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

AJUSTE PARA TRATAR NOTAS FISCAIS DE REMESSA NO RECEBIMENTO VINC. AO DB

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

Palavras Chave:

NOTAS FISCAIS DE REMESSA, RECEBIMENTO, /PWS/SAPMZYCI017, DRAWBACK

 

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

Objetos da nota:

REPS /PWS/MZYCI017F02

 

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

Modificações efetuadas em REPS /PWS/MZYCI017F02

 

...

                            CHANGING itab_zycit003-meins

                                     itab_zycit003-qtd_iten.

    READ TABLE itab_zycit279 WITH KEY nrseq = itab_zycit003-nrseq

                                      ebeln = itab_zycit003-ebeln

                                      ebelp = itab_zycit003-ebelp.

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

    IF sy-subrc = 0 AND /pws/zycit321-lote EQ space.

* << Fim da inclusão

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

    IF sy-subrc = 0 AND /pws/zycit321 EQ space.

* << Fim da exclusão

      itab_zycit279-slqtde =

                        itab_zycit279-slqtde + itab_itens_nf-qtd_item.

      IF itab_zycit279-slqtde > 0.

        itab_zycit279-esgotado = space.

      ENDIF.

...

 

...

        FROM ( /pws/zycit006 AS a INNER JOIN /pws/zycit263 AS b

          ON a~nrseq_pgfat EQ b~nrseq_pgfat )

          INTO v_cob_camb

        WHERE b~nrseq    = itab_zycit003-nrseq

          AND b~ebeln    = itab_zycit003-ebeln

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

          AND b~ebelp    = itab_zycit003-ebelp.

* << Fim da exclusão

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

          AND b~ebelp    = itab_zycit003-ebelp

          AND b~eliminado eq space.

* << Fim da inclusão

      IF v_cob_camb NE 'A'.

        itab_zycit279-cob_camb = 'X'.

      ENDIF.

      itab_zycit279-nrseq    = itab_zycit003-nrseq.

      itab_zycit279-ebeln    = itab_zycit003-ebeln.

...

 

...

          READ TABLE itab_zycit279 WITH KEY nrseq = itab_zycit279-nrseq

                                            ebeln = itab_zycit279-ebeln

                                            ebelp = itab_zycit279-ebelp

                                            lote  = wa_zycit279-lote.

          IF sy-subrc EQ 0.

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

           PERFORM carrega_umncm_real USING itab_zycit003-matnr

                                  CHANGING itab_itens_nf-meins

                                       itab_zycit223-qtde.

* << Fim da inclusão

            itab_zycit279-slqtde =

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

                          itab_zycit279-slqtde + itab_itens_nf-qtd_item.

* << Fim da exclusão

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

                          itab_zycit279-slqtde + itab_zycit223-qtde.

* << Fim da inclusão

            IF itab_zycit279-slqtde > 0.

              itab_zycit279-esgotado = space.

            ENDIF.

            MODIFY itab_zycit279 TRANSPORTING  slqtde esgotado

                                      WHERE nrseq = itab_zycit279-nrseq

...

 

...

ENDFORM.

FORM estorna_saldo_ato.

  DATA: v_variacfobd   LIKE /pws/zycit376-vlfob.

  DATA: itab_zycit376d LIKE /pws/zycit376 OCCURS 0 WITH HEADER LINE.

  DATA: itab_zycit245d LIKE /pws/zycit245 OCCURS 0 WITH HEADER LINE.

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

  DATA: v_tabix1 type i.

  CLEAR itab_zycit223. FREE itab_zycit223.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycit321.

  IF itab_zycit223[] IS INITIAL.

    SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

        WHERE nrseq EQ /pws/zycie001-nrseq.

  ENDIF.

...

 

...

                                    ebelp = itab_itens_nf-ebelp.

    READ TABLE itab_zycit279 WITH KEY nrseq = itab_itens_nf-nrseq

                                      ebeln = itab_itens_nf-ebeln

                                      ebelp = itab_itens_nf-ebelp.

    IF sy-subrc = 0.

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

    v_tabix1 = sy-tabix.

* << Fim da inclusão

      READ TABLE itab_zycit376d WITH KEY ebeln = itab_itens_nf-ebeln

                                        ebelp = itab_itens_nf-ebelp.

      READ TABLE itab_zycit245d WITH KEY nrseqd = itab_zycit376d-nrseqd

                                         nritem = itab_zycit376d-nritem.

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

    READ TABLE itab_zycit003 WITH KEY nrseq = itab_itens_nf-nrseq

                                      ebeln = itab_itens_nf-ebeln

                                      ebelp = itab_itens_nf-ebelp.

* << Fim da inclusão

      CLEAR: v_variacfobd.

      v_variacfobd = itab_zycit279-menge *

      ( ( itab_zycit376d-vlfob / itab_zycit376d-qtd_apro ) -

        ( itab_zycit279-vltot / itab_zycit279-menge    ) ).

      itab_zycit245d-vlvinc = itab_zycit245d-vlvinc + v_variacfobd.

      UPDATE /pws/zycit245 SET vlvinc = itab_zycit245d-vlvinc

                           WHERE nrseqd EQ itab_zycit245d-nrseqd

                             AND nritem EQ itab_zycit245d-nritem.

      IF /pws/zycit321-lote EQ space.

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

        PERFORM carrega_umncm_real USING itab_zycit003-matnr

* << Fim da inclusão

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

        PERFORM carrega_umncm_real USING itab_itens_nf-matnr

* << Fim da exclusão

                                CHANGING itab_itens_nf-meins

                                         itab_itens_nf-qtd_item.

        itab_zycit279-slqtde =

                          itab_zycit279-slqtde - itab_itens_nf-qtd_item.

        IF itab_zycit279-slqtde < 0.

...

 

...

                                      AND ebeln = itab_itens_nf-ebeln

                                      AND ebelp = itab_itens_nf-ebelp.

          CLEAR itab_zycit279.

          CONTINUE.

        ENDIF.

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

        MODIFY itab_zycit279 INDEX sy-tabix.

* << Fim da exclusão

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

        MODIFY itab_zycit279 INDEX v_tabix1.

* << Fim da inclusão

      ELSE.

        LOOP AT itab_zycit223 WHERE

                              nrseqnf   EQ itab_itens_nf-nrseqnf

                          AND nrseq     EQ itab_itens_nf-nrseq

                          AND nfglobal  EQ itab_itens_nf-nfglobal

                          AND nfremessa EQ itab_itens_nf-nfremessa

                          AND ebeln     EQ itab_itens_nf-ebeln

                          AND ebelp     EQ itab_itens_nf-ebelp .

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

          PERFORM carrega_umncm_real USING itab_itens_nf-matnr

* << Fim da exclusão

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

        PERFORM carrega_umncm_real USING itab_zycit003-matnr

* << Fim da inclusão

                                  CHANGING itab_itens_nf-meins

                                           itab_zycit223-qtde.

          IF /pws/zycit321-lote EQ '1'.

          READ TABLE itab_zycit279 WITH KEY nrseq = itab_itens_nf-nrseq

                                            ebeln = itab_itens_nf-ebeln

...