CE PLUS - Nota 003682

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

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

Data/Hora Última Alteração: 22/02/2011 16:07:31

Descrição da Nota: ERRO AO MUDAR TIPO DE FABRICANTE NA FATURA

Sintoma

Ao mudar o tipo de fabricante, fica errado os campos país de origem e país de aquisição, tanto na

pasta itens quanto no detalhe do item.

Deve levar para o pais de origem o pais do fabricante e no pais de aquisição o pais do fornecedor.

 

 

Solução

carregar valores corretamente para campo país de origem e país de aquisição.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ERROS NA FATURA AO UTILIZAR TIPOS DE FABRICANTE 0,2 E 3.

Informações Complementares

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

Nota Número 03682 Data: 16/05/2007 Hora: 08:51:18

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

 

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

Nota Número              : 03682

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00166

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

Referência às notas relacionadas:

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

 

03551  - 00001 - 7.0    - 00001  - ERROS NA FATURA AO UTILIZAR TIPOS DE FABRICANTE 0,2 E 3.

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

ERRO AO MUDAR TIPO DE FABRICANTE NA FATURA

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

Palavras Chave:

TIPO DE FABRICANTE - FATURA - PAÍS DE ORIGEM

PAÍS DE AQUISIÇÃO

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

Objetos da nota:

DYNP /PWS/SAPMZYCI003                        0101

DYNP /PWS/SAPMZYCI003                        0106

DYNP /PWS/SAPMZYCI003                        0400

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

  /pws/zycie006-paquis = lfa1-land1.

  IF NOT /pws/zycie006-porigem IS INITIAL AND

     v_porigem NE /pws/zycie006-porigem   AND

     NOT itab_zycit003[] IS INITIAL.

    LOOP AT itab_zycit003.

      MOVE /pws/zycie006-porigem TO itab_zycit003-porigem.

      MODIFY itab_zycit003.

    ENDLOOP.

    MOVE /pws/zycie006-porigem TO v_porigem.

  ELSEIF /pws/zycie006-porigem IS INITIAL AND

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

         /pws/zycie006-fabricante EQ '3'.

* << Fim da exclusão

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

         /pws/zycie006-fabricante EQ '3'  AND NOT

         /pws/zycie006-paisfab IS INITIAL.

* << Fim da inclusão

    LOOP AT itab_zycit003.

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

      MOVE /pws/zycie006-paisfab TO itab_zycit003-porigem..

* << Fim da exclusão

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

      MOVE /pws/zycie006-paisfab TO itab_zycit003-porigem.

* << Fim da inclusão

      MODIFY itab_zycit003.

    ENDLOOP.

  ENDIF.

...

 

...

    /pws/zycie080-logradouro  = wa_lfa1-stras.

    /pws/zycie080-compl       = wa_lfa1-ort02.

    /pws/zycie080-city        = wa_lfa1-ort01.

    /pws/zycie003-ebeln       = itab_zycit003-ebeln.

    /pws/zycie003-ebelp       = itab_zycit003-ebelp.

    SELECT SINGLE landx FROM t005t INTO v_pais_aquis

      WHERE spras = sy-langu

        AND land1 EQ /pws/zycie080-landa.

    SELECT SINGLE landx FROM t005t INTO v_pais_origem

      WHERE spras = sy-langu

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

        AND land1 EQ /pws/zycie006-paisfab.

* << Fim da exclusão

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

        AND land1 EQ itab_zycit003-porigem.

* << Fim da inclusão

    /pws/zycie003-lifnrfabr = itab_zycit003-lifnrfabr.

    IF itab_zycit003-flagfabr = 'N'.

      /pws/zycie080a-name1 = itab_zycit003-descfab.

      IF NOT itab_zycit003-paisfab IS INITIAL.

        /pws/zycie080a-landa       = itab_zycit003-paisfab.

      ELSE.

        /pws/zycie080a-landa       = wa_lfa1-land1.

      ENDIF.

      CLEAR: /pws/zycie080a-logradouro, /pws/zycie080a-nrlogr,

 /pws/zycie080a-compl,

...

 

...

      WHERE spras = sy-langu

        AND land1 EQ /pws/zycie080-landa.

    SELECT SINGLE landx FROM t005t INTO v_pais_origem

      WHERE spras = sy-langu

        AND land1 EQ itab_zycit003-porigem.

    /pws/zycie003-porigem = itab_zycit003-porigem.

  ELSE.

    MESSAGE s015 WITH text-050.

    v_flag_fabric = 'X'.

  ENDIF.

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

  /pws/zycie003-porigem = itab_zycit003-porigem.

* << Fim da inclusão

ENDFORM.

FORM selecionar_pedidos.

  FREE so_lifnr.

  IF NOT /pws/zycie006-lifnr IS INITIAL.

    FREE so_lifnr.

    so_lifnr-sign   = 'I'.

    so_lifnr-option = 'EQ'.

    so_lifnr-low    = /pws/zycie006-lifnr.

    APPEND so_lifnr.

  ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

      itab_zycit003-fabric  = '3'.

      MODIFY itab_zycit003.

    ENDLOOP.

    LOOP AT itab_zycit003.

      CLEAR:  itab_zycit003-descfab,

              itab_zycit003-lifnrfabr, itab_zycit003-flagfabr.

      MOVE: '3' TO itab_zycit003-fabric.

      MODIFY: itab_zycit003,/pws/zycit003.

    ENDLOOP.

  ENDIF.

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

  SELECT SINGLE * FROM lfa1

    WHERE lifnr EQ /pws/zycie006-lifnr.

  LOOP AT itab_zycit003.

    itab_zycit003-paquis = lfa1-land1.

    if not itab_zycit003-lifnrfabr is initial.

      SELECT SINGLE land1 FROM lfa1

        INTO itab_zycit003-porigem

        WHERE lifnr EQ itab_zycit003-lifnrfabr.

    else.

        if not /pws/zycie006-fabricante eq '3'.

           clear itab_zycit003-porigem.

        endif.

    endif.

    MODIFY itab_zycit003.

  ENDLOOP.

* << Fim da inclusão

ENDFORM.

FORM atualiza_novo_seq.

  IF /pws/zycie006-tpfatura EQ '04'.

    LOOP AT itab_zycit047.

      itab_zycit047-nrseq = /pws/zycie006-nrseq.

      MODIFY itab_zycit047.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM carrega_descr.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003I01

 

...

  itab_zycit003-mfrpn     = /pws/zycie003-mfrpn.

  IF v_paisfab ne 'X' .

  if /pws/zycie006-fabricante eq '0'.

    itab_zycit003-lifnrfabr   = /pws/zycie006-lifnrfabr.

    itab_zycit003-descfab     = /pws/zycie006-descfab  .

    itab_zycit003-paisfab     = /pws/zycie006-paisfab.

  else.

    itab_zycit003-lifnrfabr   = /pws/zycie003-lifnrfabr.

    itab_zycit003-descfab     = /pws/zycie003-descfab  .

    itab_zycit003-paisfab     = /pws/zycie003-paisfab.

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

      IF /pws/zycie006-fabricante EQ '3' .

        /pws/zycie003-porigem =  itab_zycit003-porigem    =

        /pws/zycie003-paisfab.

* << Fim da inclusão

  endif.

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

    ENDIF.

* << Fim da inclusão

  PERFORM carrega_descr.

     clear v_paisfab.

  ENDIF.

  IF /pws/zycie006-nrseq_pgfat IS INITIAL AND itab_zycit132[] IS

 INITIAL.

    vcalc = itab_zycit003-toinv + itab_zycit003-invoiced.

...

 

...

MODULE altera_item INPUT.

  IF /pws/zycie006-fabricante = '2'.

    IF /pws/zycie003-fabric = '1'.

      /pws/zycie003-flagfabr = 'S'.

      /pws/zycie003-lifnrfabr = /pws/zycie006-lifnr.

    ELSEIF /pws/zycie003-fabric = '3'.

      CLEAR: /pws/zycie003-lifnrfabr, /pws/zycie003-flagfabr,

             /pws/zycie003-descfab  .

    ELSE.

      /pws/zycie003-fabric = /pws/zycie006-fabricante.

    ENDIF.

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

    /pws/zycie003-porigem = /pws/zycie003-paisfab.

* << Fim da inclusão

    IF NOT /pws/zycie006-fabricante IS INITIAL.

      /pws/zycie003-flagfabr = 'S'.

    ENDIF.

    IF /pws/zycie003-flagfabr = 'S' AND /pws/zycie003-fabric NE '3'.

      CLEAR lfa1.

      SELECT SINGLE *

        FROM lfa1

        WHERE lifnr EQ /pws/zycie003-lifnrfabr.

      IF sy-subrc EQ 0.

        MOVE lfa1-name1 TO /pws/zycie003-descfab.

        IF /pws/zycie003-paisfab IS INITIAL.

          MOVE lfa1-land1 TO /pws/zycie003-paisfab.

        ENDIF.

      ENDIF.

    ELSEIF /pws/zycie003-flagfabr = 'N'.

      CLEAR /pws/zycie003-lifnrfabr.

    ENDIF.

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

  ELSEIF /pws/zycie006-fabricante = '3'.

    /pws/zycie003-porigem = /pws/zycie003-paisfab.

* << Fim da inclusão

  ENDIF.

  MOVE-CORRESPONDING /pws/zycie003 TO itab_zycit003.

  MODIFY itab_zycit003 INDEX v_index_det.

ENDMODULE.

MODULE carrega_zycit047 INPUT.

  MOVE /pws/zycie047-vldp TO itab_zycit047-vldp.

  MODIFY itab_zycit047 INDEX tc_desp-current_line.

ENDMODULE.

MODULE user_command_0107 INPUT.

  CASE okcode.

...

 

...

  IF  '023' ca /pws/zycie006-fabricante .

    CLEAR : /pws/zycie006-lifnrfabr,

            /pws/zycie006-descfab,

            /pws/zycie006-paisfab.

    v_paisfab = 'X' .

  ENDIF.

  LOOP AT itab_zycit003.

    IF '023' ca /pws/zycie006-fabricante .

      clear : itab_zycit003-paisfab,

              itab_zycit003-lifnrfabr,

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

              itab_zycit003-descfab .

* << Fim da exclusão

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

              itab_zycit003-descfab ,

              itab_zycit003-porigem ,

              /pws/zycie003-porigem .

* << Fim da inclusão

      clear : /pws/zycie003-paisfab,

              /pws/zycie003-lifnrfabr,

              /pws/zycie003-descfab .

    ENDIF.

    itab_zycit003-FABRIC = /pws/zycie006-fabricante.

    MODIFY itab_zycit003 .

  ENDLOOP .

ENDMODULE.

MODULE consiste_fabr INPUT.

ENDMODULE.

...

 

...

              endif.

        endif.

        loop at itab_zycit003.

          move:

           /PWS/ZYCIE006-LIFNRFABR to itab_zycit003-lifnrfabr ,

           /PWS/ZYCIE006-DESCFAB   to itab_zycit003-descfab   ,

           /PWS/ZYCIE006-paisfab   to itab_zycit003-paisfab   .

           modify itab_zycit003.

        endloop.

    endif.

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

  SELECT SINGLE *

      FROM lfa1

      WHERE lifnr = /pws/zycie006-lifnr.

  LOOP AT itab_zycit003.

    MOVE lfa1-land1 TO itab_zycit003-porigem.

    SELECT SINGLE land1

        FROM lfa1 INTO itab_zycit003-paquis

        WHERE lifnr = itab_zycit003-lifnrfabr.

    MODIFY itab_zycit003.

  ENDLOOP.

* << Fim da inclusão

endmodule.

endmodule.

endmodule.