CE PLUS - Nota 004371

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 08/08/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 16:08:25

Descrição da Nota: ERROS AO NAVEGAR NO FORNECEDOR DA FATURA , TIPO 0 E TIPO 2.

Sintoma

Quando utilizamos a opção de fabricantes diversos e unico na fatura de mercadoria, o programa

permite inclusão somente de fabricantes cadastrados no SAP. O ideal é que o sistema permite informar

descrição do fabricante e país, mesmo que estes não sejam cadastrados no SAP.

 

 

Solução

ajustar fornecedor de fatura tipo 0 e 2.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

NA ADIÇÃO, QUANDO FABRICANTE = (0), NÃO LEVA INFORMAÇÃO PARA SISCOMEX.

PREENCHER O FABRICANTE DE ACORDO COM O INFORMADO NO PEDIDO DE COMPRAS

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

ERROS COM TIPO DE FABRICANTE NA FATURA, DI E TRANSMISSÃO SISCOMEX

Informações Complementares

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

Nota Número 04371 Data: 08/08/2007 Hora: 15:50:11

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

 

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

Nota Número              : 04371

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00007

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

Referência às notas relacionadas:

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

 

00731  - 00001 - 6.0    - 00022  - PREENCHER O FABRICANTE DE ACORDO COM O INFORMADO NO PEDIDO DE COM

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

03821  - 00003 - 7.0    - 00001  - ERROS COM TIPO DE FABRICANTE NA FATURA, DI E TRANSMISSÃO SISCOMEX

04327  - 00004 - 7.0    - 00002  - NA ADIÇÃO, QUANDO FABRICANTE = (0), NÃO LEVA INFORMAÇÃO PARA SISC

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

ERROS AO NAVEGAR NO FORNECEDOR DA FATURA , TIPO 0 E TIPO 2.

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

Palavras Chave:

FORNECEDOR DA FATURA - FORNECEDOR TIPO 0 - FORNECEDOR DI - SISCOMEX

FORNECEDOR TIPO 2

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

Objetos da nota:

FUNC /PWS/ZYCI_TRANSFER_DI

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003I01

REPS /PWS/MZYCI003O01

REPS /PWS/MZYCI023O01

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_TRANSFER_DI

 

...

                    it_forn-forn_logradouro = wa_adrc-street.

                    it_forn-forn_nrlogr     = wa_adrc-house_num1.

                    it_forn-forn_compl      = wa_lfa1-ort02.

                    it_forn-forn_city       = wa_adrc-city1.

                    it_forn-forn_regio      = wa_adrc-region.

                    PERFORM load_pais(/pws/sapmzyci023):

                      USING     wa_adrc-country

                      CHANGING it_forn-forn_landa v_txtpais.

                  ENDIF.

                  CLEAR: wa_lfa1, wa_adrc.

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

                 if  it_det_itens_di-lifnrfabr is initial.

                     it_forn-fabr_name1      = it_det_itens_di-descfab.

                     it_forn-fabr_landa      = it_det_itens_di-paisfab.

                 else.

* << Fim da inclusão

                  IF it_det_itens_di-flagfabr = 'N'.

                    it_forn-fabr_name1      = it_det_itens_di-descfab.

                    it_forn-fabr_landa      = it_faturas_di-paisfab.

                  ELSEIF it_det_itens_di-flagfabr = 'S'.

                    SELECT SINGLE lifnr name1 land1 adrnr

                               stras ort01 ort02 regio FROM lfa1

                        INTO CORRESPONDING FIELDS OF wa_lfa1

                        WHERE lifnr EQ it_det_itens_di-lifnrfabr.

                    SELECT SINGLE * FROM adrc INTO wa_adrc

                        WHERE addrnumber EQ wa_lfa1-adrnr.

...

 

...

                      it_forn-fabr_logradouro = wa_adrc-street.

                      it_forn-fabr_nrlogr     = wa_adrc-house_num1.

                      it_forn-fabr_compl      = wa_lfa1-ort02.

                      it_forn-fabr_city       = wa_adrc-city1.

                      it_forn-fabr_regio      = wa_adrc-region.

                      PERFORM load_pais(/pws/sapmzyci023):

                        USING    wa_adrc-country

                        CHANGING it_forn-fabr_landa v_txtpais.

                    ENDIF.

                  ENDIF.

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

                 endif.

* << Fim da inclusão

                ELSEIF it_faturas_di-fabricante EQ '3'.

                  CLEAR: wa_lfa1, wa_adrc, it_forn.

                  SELECT SINGLE lifnr name1 land1 adrnr

                                stras ort01 ort02 FROM lfa1

                         INTO CORRESPONDING FIELDS OF wa_lfa1

                         WHERE lifnr EQ it_faturas_di-lifnr.

                  SELECT SINGLE * FROM adrc INTO wa_adrc

                         WHERE addrnumber EQ wa_lfa1-adrnr.

                  IF sy-subrc EQ 0.

                    it_forn-forn_name1      = wa_lfa1-name1.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

    /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

        AND land1 EQ itab_zycit003-porigem.

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

    if not itab_zycit003-lifnrfabr is initial.

* << 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,

...

 

...

      /pws/zycie080a-name1       = wa_lfa1-name1.

      IF NOT itab_zycit003-paisfab IS INITIAL.

        /pws/zycie080a-landa       = itab_zycit003-paisfab.

      ELSE.

        /pws/zycie080a-landa       = wa_lfa1-land1.

      ENDIF.

      /pws/zycie080a-nrlogr      = wa_lfa1-adrnr.

      /pws/zycie080a-logradouro  = wa_lfa1-stras.

      /pws/zycie080a-compl       = wa_lfa1-ort02.

      /pws/zycie080a-city        = wa_lfa1-ort01.

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

    ENDIF.

    else.

      /pws/zycie080a-name1 = itab_zycit003-descfab.

      /pws/zycie080a-landa       = itab_zycit003-paisfab.

      CLEAR: /pws/zycie080a-logradouro,

             /pws/zycie080a-nrlogr    ,

             /pws/zycie080a-compl     ,

             /pws/zycie080a-city      ,

             /pws/zycie080a-regio.

* << Fim da inclusão

    ENDIF.

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

    SELECT SINGLE lifnr name1 land1 adrnr stras ort01 ort02 regio

          FROM lfa1

          INTO CORRESPONDING FIELDS OF wa_lfa1

          WHERE lifnr EQ /pws/zycie006-lifnr.

    SELECT SINGLE * FROM adrc INTO wa_adrc

           WHERE addrnumber EQ wa_lfa1-adrnr.

    SELECT SINGLE bezei FROM t005u INTO /pws/zycie080-regio

    WHERE land1 = wa_lfa1-land1 AND

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

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

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

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

             /pws/zycie003-descfab,  /pws/zycie003-paisfab.

    ENDIF.

    IF NOT /pws/zycie006-fabricante IS INITIAL.

      /pws/zycie003-flagfabr = 'S'.

    ENDIF.

    IF /pws/zycie003-flagfabr = 'S'.

      CLEAR lfa1.

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

      IF NOT /pws/zycie003-lifnrfabr IS INITIAL.

* << Fim da inclusão

      SELECT SINGLE * FROM lfa1

        WHERE lifnr EQ /pws/zycie003-lifnrfabr.

      MOVE lfa1-name1 TO itab_zycit003-descfab.

      IF itab_zycit003-paisfab IS INITIAL.

        MOVE lfa1-land1 TO itab_zycit003-paisfab.

      ENDIF.

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

      ENDIF .

* << Fim da inclusão

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

...

 

...

        MODIFY itab_zycit132 TRANSPORTING   miro status

                        WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.

      ENDIF.

      PERFORM clear_date_batch.

      CLEAR v_mr1m_ok.

    ELSE.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

form atualiza_fornecedor.

  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.

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

        /pws/zycie003-porigem =  itab_zycit003-porigem    =

        /pws/zycie003-paisfab.

      ENDIF.

    ENDIF.

    PERFORM carrega_descr.

    CLEAR v_paisfab.

  ENDIF.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003I01

 

...

     /pws/zycie006-tpfatura = '04' ) AND

     v_forn IS INITIAL

     AND /pws/zycie006-eliminado NE 'X'.

  ENDIF.

  IF t001-land1 = 'CL'.

    /pws/zycie006-waers_clp = /pws/zycbt007-waersb.

  ENDIF.

  IF /pws/zycie006-vlfre_clp GT 0.

    v_freteclp = 'S'.

  ENDIF.

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

  if /PWS/ZYCIE006-FABRICANTE eq '0' and

     /pws/zycie006-LIFNRFABR is initial.

     loop at itab_zycit003.

        v_tabix = sy-tabix.

        perform atualiza_fornecedor.

        modify itab_zycit003 index v_tabix.

     endloop.

  endif.

* << Fim da inclusão

ENDMODULE.

MODULE user_command_0101 INPUT.

  CASE okcode.

    WHEN 'SELE'.

      GET CURSOR FIELD v_campo VALUE v_valor.

      IF v_campo EQ '/PWS/ZYCIE006-BELNR_P' AND

        NOT v_valor IS INITIAL.

        SELECT SINGLE * FROM /pws/zycbt108

          WHERE bukrs = /pws/zycie006-bukrs

            AND belnr = /pws/zycie006-nrseq.

...

 

...

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  CHECK /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11'

     OR /pws/zycie006-tpfatura = '  '.

  itab_zycit003-vlreal    = /pws/zycie003-vlreal.

  itab_zycit003-fabric    = /pws/zycie003-fabric.

  itab_zycit003-porigem   = /pws/zycie003-porigem.

  itab_zycit003-paquis    = /pws/zycie003-paquis.

  itab_zycit003-mfrpn     = /pws/zycie003-mfrpn.

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

  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.

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

        /pws/zycie003-porigem =  itab_zycit003-porigem    =

        /pws/zycie003-paisfab.

      ENDIF.

    ENDIF.

    PERFORM carrega_descr.

* << Fim da exclusão

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

   perform atualiza_fornecedor.

* << Fim da inclusão

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

    CLEAR v_paisfab.

  ENDIF.

* << Fim da exclusão

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

 INITIAL.

    vcalc = itab_zycit003-toinv + itab_zycit003-invoiced.

    IF vcalc > itab_zycit003-qtd_iten.

      MESSAGE s015 WITH text-119.

  itab_zycit003-toinv = itab_zycit003-qtd_iten - itab_zycit003-invoiced.

    ENDIF.

  ENDIF.

  IF /pws/zycie006-ratseg = '3'.

    itab_zycit003-vlseg_fat = /pws/zycie003-vlseg_fat.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

    IF ( screen-name = '/PWS/ZYCIE003-VLREAL' OR

       screen-name = '/PWS/ZYCIE036-VLDIF' ) AND

       /pws/zycie006-tpfatura EQ '01'.

      READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.

      SELECT SINGLE *

        FROM /pws/zycit042

        WHERE nrseq  EQ /pws/zycit003-nrseq

          AND docnum NE ''.

      IF sy-subrc EQ 0.

        screen-input = 0.

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

      ENDIF.

    ENDIF.

    IF /pws/zycie006-fabricante EQ '2' AND

      ( screen-name EQ '/PWS/ZYCIE003-DESCFAB' OR

        screen-name EQ '/PWS/ZYCIE003-PAISFAB' ) .

      IF /pws/zycie003-lifnrfabr  IS INITIAL .

         SCREEN-INPUT = '1' .

      ELSE .

         CLEAR : /PWS/ZYCIE003-DESCFAB, /PWS/ZYCIE003-PAISFAB.

         SCREEN-INPUT = '0' .

* << Fim da inclusão

      ENDIF.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

ENDMODULE.

MODULE /pws/zycie047 OUTPUT.

  IF itab_zycit047[]      IS INITIAL AND

     NOT /pws/zycie006-dtincl  IS INITIAL AND

     NOT /pws/zycie006-nrfat   IS INITIAL AND

     NOT /pws/zycie006-frpagto IS INITIAL AND

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023O01

 

...

 /pws/zycie116-valtot.

    IF     itab_zycit003-fabric EQ '1'.

      PERFORM load_forn USING: /pws/zycie006-lifnr '800'.

    ELSEIF itab_zycit003-fabric CA '02'.

      PERFORM load_forn USING: /pws/zycie006-lifnr '800'.

        /pws/zycie080a-name1 = itab_zycit003-descfab.

        /pws/zycie080a-landa = /pws/zycie006-paisfab.

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

               /pws/zycie080a-compl,

               /pws/zycie080a-city, /pws/zycie080a-regio.

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

      if not itab_zycit003-lifnrfabr is initial.

* << Fim da inclusão

        PERFORM load_forn USING itab_zycit003-lifnrfabr '80A'.

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

      else.

        /pws/zycie080a-name1 = itab_zycit003-descfab.

        /pws/zycie080a-landa = itab_zycit003-paisfab.

        PERFORM load_pais USING    /pws/zycie080a-landa

                      CHANGING a_spais2 a_pais2.

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

               /pws/zycie080a-compl,

               /pws/zycie080a-city, /pws/zycie080a-regio.

      endif.

* << Fim da inclusão

    ELSEIF itab_zycit003-fabric EQ '3'.

      PERFORM load_forn USING /pws/zycie006-lifnr '800'.

    ENDIF.

    PERFORM: load_cncm USING wa_it-j_1bnbm,

             load_pais USING wa_it-porigem CHANGING a_spais a_pais,

             load_pais USING /pws/zycie080-landa CHANGING a_spais1

a_pais1,

             load_inco,

             load_regt USING wa_it-codregtri    /pws/zycie085-ntimp '1'

                       CHANGING t_regdes,

...