CE PLUS - Nota 000386

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 02/12/2005 00:00:00

Data/Hora Última Alteração: 21/02/2011 15:20:42

Descrição da Nota: ERRO NO EMBARQUE COM ESTORNO DA NOTA DE CRÉDITO

Sintoma

Foi criado uma nota de Crédito, estornou-se esta nota e faturou novamente. A Ordem de Crédito vai

para a pasta Vendas sem Remessa ao invés de ir para a pasta Devoluções/Complementos.

 

 

Solução

Ajustes na função que efetua a determinação do fluxo de SD.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO

AJUSTE NO CÁLCULO DOS VALORES REAIS NA FUNÇÃO TRATA_ORDEM

VALORES ERRADOS NO RE QUANDO HÁ DEVOLUÇÃO E ESTORNO DA MESMA NO EMBARQUE

Informações Complementares

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

Nota Número 00386 Data: 02/12/2005 Hora: 14:38:52

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

 

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

Nota Número              : 00386

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00000

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

Referência às notas relacionadas:

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

 

00169  - 00003 - 6.0    - 00021  - DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO

00272  - 00002 - 6.0    - 00021  - AJUSTE NO CÁLCULO DOS VALORES REAIS NA FUNÇÃO TRATA_ORDEM

00301  - 00001 - 6.0    - 00021  - VALORES ERRADOS NO RE QUANDO HÁ DEVOLUÇÃO E ESTORNO DA MESMA NO E

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

ERRO NO EMBARQUE COM ESTORNO DA NOTA DE CRÉDITO

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

Palavras Chave:

EXPORTAÇÃO - EMBARQUE - TRATA ORDEM

 

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

Objetos da nota:

FUNC /PWS/ZYCE_TRATA_ORDEM

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_TRATA_ORDEM

 

...

    ENDLOOP.

 

    SORT itab_zycee085 BY nrseq.

    itab_zycee085_aux[] = itab_zycee085[].

* >> Início da Inclusão <<

    itab_zycee085_l[]   = itab_zycee085[].

* >> Fim da Inclusão <<

    LOOP AT itab_zycee085_aux.

      v_index = sy-tabix.

      READ TABLE itab_zycet023 WITH KEY fkart = itab_zycee085_aux-fkart.

...

              READ TABLE itab_estorno WITH KEY

                                     kidno = itab_zycee085_aux-vbeln_vf

                                     fksto = ' '.

 

              IF sy-subrc EQ 0.

                DELETE itab_zycee085 WHERE

                                     vbeln_vf = itab_estorno-vbeln.

 

                DELETE itab_zycee085 WHERE

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Início da Inclusão <<

                DELETE itab_zycee085_l WHERE

                                     vbeln_vf = itab_estorno-vbeln.

 

                DELETE itab_zycee085_l WHERE

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Inclusão <<

                DELETE itab_zycee085_aux WHERE

                                     vbeln_vf = itab_estorno-vbeln.

 

                DELETE itab_zycee085_aux INDEX v_index.

 

...

 

               ELSE.

 

                 READ TABLE itab_estorno WITH KEY

                               sfakn = itab_zycee085_aux-vbeln_vf

                               fksto = ' '.

 

                 IF sy-subrc EQ 0.

* >> Início da Exclusão <<

                  READ TABLE itab_zycee085_aux WITH KEY

* >> Fim da exclusão <<

* >> Início da Inclusão <<

                   READ TABLE itab_zycee085_l WITH KEY

* >> Fim da Inclusão <<

                                        vbeln_vf = itab_estorno-vbeln.

                   IF sy-subrc = 0.

* >> Início da Exclusão <<

                    MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

* >> Fim da eXclusão <<

* >> Início da Inclusão <<

                     MOVE-CORRESPONDING itab_zycee085_l TO t_estorno.

* >> Fim da Inclusão <<

                     APPEND t_estorno.

                     CLEAR  t_estorno.

                   ENDIF.

 

                   DELETE itab_zycee085 WHERE

                                     vbeln_vf = itab_estorno-sfakn.

 

                   DELETE itab_zycee085 WHERE

* >> Início da Exclusão <<

                               vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da eXclusão <<

* >> Início da Inclusão <<

                                 vbeln_vf = itab_zycee085_l-vbeln_vf.

 

                   DELETE itab_zycee085_l WHERE

                                     vbeln_vf = itab_estorno-sfakn.

 

                   DELETE itab_zycee085_l WHERE

                                 vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                   DELETE itab_zycee085_aux WHERE

                                        vbeln_vf = itab_estorno-sfakn.

 

                   DELETE itab_zycee085_aux INDEX v_index.

* >> Início da Inclusão <<

                   DELETE itab_zycee085_aux WHERE

                                 vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                 ENDIF.

               ENDIF.

             ENDIF.

 

           WHEN 'OD' OR 'DR'.

 

             READ TABLE itab_estorno WITH KEY

...

               READ TABLE itab_estorno WITH KEY

                                    kidno = itab_zycee085_aux-vbeln_vf

                                    fksto = ' '.

               IF sy-subrc EQ 0.

                 DELETE itab_zycee085 WHERE

                                  vbeln_vf = itab_estorno-vbeln.

                 DELETE itab_zycee085 WHERE

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Início da Inclusão <<

                 DELETE itab_zycee085_l WHERE

                                  vbeln_vf = itab_estorno-vbeln.

                 DELETE itab_zycee085_l WHERE

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Inclusão <<

                 DELETE itab_zycee085_aux WHERE

                                      vbeln_vf = itab_estorno-vbeln.

 

 * Correção para auto-elminação do item da itab_zycet085_aux

                 DELETE itab_zycee085_aux WHERE

                               vbeln_va = itab_zycee085_aux-vbeln_va AND

                               aupos    = itab_zycee085_aux-aupos    AND

                               vbeln_vf = itab_zycee085_aux-vbeln_vf AND

                               posnr    = itab_zycee085_aux-posnr    AND

                               vbeln_vl = itab_zycee085_aux-vbeln_vl AND

                               posnl    = itab_zycee085_aux-posnl.

               ELSE.

 

                 READ TABLE itab_estorno WITH KEY

                               sfakn = itab_zycee085_aux-vbeln_vf

                               fksto = ' '.

 

                 IF sy-subrc EQ 0.

* >> Início da Inclusão <<

                   READ TABLE itab_zycee085_l WITH KEY

* >> Fim da Inclusão <<

* >> Início da Exclusão <<

                  READ TABLE itab_zycee085_aux WITH KEY

* >> Fim da Exclusão <<

                                        vbeln_vf = itab_estorno-vbeln.

 * Chamado 268230 - Início 1

 *                  IF sy-subrc = 0.

 *                    MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

 *                    APPEND t_estorno.

 *                    CLEAR  t_estorno.

 *                  ENDIF.

* Chamado 268230 - Término 1

 

                  DELETE itab_zycee085 WHERE

                                  vbeln_vf = itab_estorno-sfakn.

 

                  DELETE itab_zycee085 WHERE

* >> Início da Exclusão <<

                                vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                                vbeln_vf = itab_zycee085_l-vbeln_vf.

 

                  DELETE itab_zycee085_l WHERE

                                  vbeln_vf = itab_estorno-sfakn.

 

                  DELETE itab_zycee085_l WHERE

                                vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                  DELETE itab_zycee085_aux WHERE

                                  vbeln_vf = itab_estorno-sfakn.

* >> Início da Inclusão <<

                  DELETE itab_zycee085_aux WHERE

                                vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

* Chamado 257759 - Flavio Ferreira - 03/11/2005 - Inicio

*                  DELETE itab_zycee085_aux INDEX v_index.

                  DELETE itab_zycee085_aux WHERE

                              vbeln_va = itab_zycee085_aux-vbeln_va AND

                              aupos    = itab_zycee085_aux-aupos    AND

                              vbeln_vf = itab_zycee085_aux-vbeln_vf AND

                              posnr    = itab_zycee085_aux-posnr    AND

                              vbeln_vl = itab_zycee085_aux-vbeln_vl AND

                              posnl    = itab_zycee085_aux-posnl.

* Chamado 257759 - Flavio Ferreira - 03/11/2005 - Inicio

OK!!!!!

...

           WHEN 'OC'.

 

             READ TABLE itab_estorno WITH KEY

                                 vbeln = itab_zycee085_aux-vbeln_vf

                                 fksto = 'X'.

             IF sy-subrc = 0 .

               MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

               APPEND t_estorno.

 

               READ TABLE itab_estorno WITH KEY

                                    kidno = itab_zycee085_aux-vbeln_vf

                                     fksto = ' '.

               IF sy-subrc EQ 0.

                 DELETE itab_zycee085 WHERE

                                   vbeln_vf = itab_estorno-vbeln.

                 DELETE itab_zycee085 WHERE

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Início da Inclusão

                 DELETE itab_zycee085_l WHERE

                                   vbeln_vf = itab_estorno-vbeln.

                 DELETE itab_zycee085_l WHERE

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Inclusão

                 DELETE itab_zycee085_aux WHERE

                                      vbeln_vf = itab_estorno-vbeln.

 

 * Chamado 257759 - Flavio Ferreira - 03/11/2005 - Inicio

...

 

                READ TABLE itab_estorno WITH KEY

                              sfakn = itab_zycee085_aux-vbeln_vf

                              fksto = ' '.

 

                IF sy-subrc EQ 0.

* >> Início da Exclusão <<

                  READ TABLE itab_zycee085_aux WITH KEY

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                  READ TABLE itab_zycee085_l WITH KEY

* >> Fim da Inclusão <<

                                       vbeln_vf = itab_estorno-vbeln.

* >> Início da Exclusão <<

                  IF sy-subrc = 0.

                    MOVE-CORRESPONDING itab_zycee085_l TO t_estorno.

                    APPEND t_estorno.

                    CLEAR  t_estorno.

 

                  ENDIF.

* >> Fim da Exclusão <<

                  DELETE itab_zycee085 WHERE

                                    vbeln_vf = itab_estorno-sfakn.

 

                  DELETE itab_zycee085 WHERE

* >> Início da Exclusão

                                vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Exclusão

* >> Início da Inclusão <<

                                vbeln_vf = itab_zycee085_l-vbeln_vf.

 

                  DELETE itab_zycee085_l WHERE

                                    vbeln_vf = itab_estorno-sfakn.

 

                  DELETE itab_zycee085_l WHERE

                                vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                  DELETE itab_zycee085_aux WHERE

                                       vbeln_vf = itab_estorno-sfakn.

 

                  DELETE itab_zycee085_aux INDEX v_index.

* >> Início da Inclusão <<

                  DELETE itab_zycee085_aux WHERE

                                vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                ENDIF.

              ENDIF.

 

            ELSE.

 

...

 

              READ TABLE itab_estorno WITH KEY

                                   kidno = itab_zycee085_aux-vbeln_vf

                                    fksto = ' '.

              IF sy-subrc EQ 0.

                DELETE itab_zycee085 WHERE

                                  vbeln_vf = itab_estorno-vbeln.

 

                DELETE itab_zycee085 WHERE

                                vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Início da Inclusão <<

                DELETE itab_zycee085_l WHERE

                                  vbeln_vf = itab_estorno-vbeln.

 

                DELETE itab_zycee085_l WHERE

                                vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Inclusão <<

                DELETE itab_zycee085_aux WHERE

                                     vbeln_vf = itab_estorno-vbeln.

 

                DELETE itab_zycee085_aux INDEX v_index.

 

              ELSE.

 

                READ TABLE itab_estorno WITH KEY

                              sfakn = itab_zycee085_aux-vbeln_vf

                              fksto = ' '.

 

                IF sy-subrc EQ 0.

                  READ TABLE itab_zycee085_aux WITH KEY

                                       vbeln_vf = itab_estorno-vbeln.

* >> Início da Exclusão <<

                  IF sy-subrc = 0.

                    MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

                    APPEND t_estorno.

                    CLEAR  t_estorno.

                  ENDIF.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                  DELETE itab_zycee085_l WHERE

                                    vbeln_vf = itab_estorno-vbeln.

 

                  DELETE itab_zycee085_l WHERE

                                  vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                   DELETE itab_zycee085 WHERE

                                     vbeln_vf = itab_estorno-sfakn.

 

                   DELETE itab_zycee085 WHERE

* >> Início da Exclusão <<

                                 vbeln_vf = itab_zycee085_aux-vbeln_vf.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                                 vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                   DELETE itab_zycee085_aux WHERE

                                        vbeln_vf = itab_estorno-sfakn.

                   DELETE itab_zycee085_aux INDEX v_index.

* >> Início da Inclusão <<

                   DELETE itab_zycee085_aux WHERE

                                 vbeln_vf = itab_zycee085_l-vbeln_vf.

* >> Fim da Inclusão <<

                 ENDIF.

 

               ENDIF.

 

             ENDIF.

 

         ENDCASE.

 

       ENDIF.

 

     ENDLOOP.

 

   ENDIF.

 

 * Alteração de Sinal em casos de Ordem de Devolução

   LOOP AT t_devolucao.

     v_index = sy-tabix.

     t_devolucao-vlme  = - ( 1 ) * t_devolucao-vlme .

     t_devolucao-ntgew = - ( 1 ) * t_devolucao-ntgew .

     t_devolucao-brgew = - ( 1 ) * t_devolucao-brgew .

     t_devolucao-vfob  = - ( 1 ) * t_devolucao-vfob.

     t_devolucao-fkimg = - ( 1 ) * t_devolucao-fkimg.

     MODIFY t_devolucao INDEX v_index.

   ENDLOOP.