CE PLUS - Nota 010030

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Despesas

Data/Hora da Publicação: 01/04/2010 00:00:00

Data/Hora Última Alteração: 06/04/2010 00:00:00

Descrição da Nota: AJUSTES AMÉRICA LATINA

Sintoma

 

Ao tentar estornar a fatura contabilizada pela MIRO se ocorre algum erro e não é possivel realizar o

estorno o programa não exibe nenhuma mensagem.

Ao tentar contabilizar uma fatura de mercadoria de CPT com frete destacado está dando erro.

É necessario contabilizar os impostos em que se recupera do valor pago em uma conta diferente.

 

Solução

 

Corrigida contabilização da fatura de mercadorias de icoterm diferente de FOB.

Ajustado estorna da fatura para exibir as mensagens de erro que ocorrerem ao tentar estornar a miro.

Ajustata contabilização da fatura de despesas para utilizar as contas de tributo parametrizada na

/pws/zygl012 para lançar na MIRO os impostos com a condição Garantizado.

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATATIVA PARA MOEDAS QUE NÃO POSSUEM CASAS DECIMAIS

AJUSTADO O ESTORNO DA FATURA PARCELADA CONTABILIZADA PELA MIRO.

Informações Complementares

 

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

Nota Número 10030 Data: 01/04/2010 Hora: 14:39:24

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

 

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

Nota Número              : 10030

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00003

Agrupamento              : 00015

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

04544  - 00001 - AJUSTADO O ESTORNO DA FATURA PARCELADA CONTABILIZADA PELA MIRO.

05337  - 00002 - TRATATIVA PARA MOEDAS QUE NÃO POSSUEM CASAS DECIMAIS

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

Texto Rápido:

AJUSTES AMÉRICA LATINA

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

Palavras Chave:

CONTABILIZAÇÃO - IMPOSTO - AMÉRICA - LATINA - ESTORNO - MIRO - MENSAGEM

/PWS/SAPMZYCI003

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

Objetos da nota:

REPS /PWS/MZYCI003F02

REPT /PWS/SAPMZYCI003

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

    itab_zycie033-lifnr   = /pws/zycie006-lifnr.

  ENDIF.

  itab_zycie033-bktxt   = /pws/zycie006-nrfat.

  itab_zycie033-xblnr   = /pws/zycie006-lfsnr.

  itab_zycie033-mwskz = /pws/zycie006-iva.

  CLEAR v_cont.

  FREE: itab_zycit031,

        itab_itemdata.

  CLEAR: itab_itemdata,

         itab_zycit031, itab_zycie033-rmwwr, itab_zycie033-waers.

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

  REFRESH: itab_glaccount, itab_iva, itab_zyglt316.

  CLEAR:   itab_glaccount, itab_iva, itab_zyglt316.

  SELECT * FROM /pws/zyglt316 INTO TABLE itab_zyglt316

      WHERE ktosl EQ 'TRI'

        AND bukrs EQ /pws/zycie006-bukrs.

* << Fim da inclusão

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

    LOOP AT itab_zycit003.

      READ TABLE itab_contas_aux WITH KEY ebeln = itab_zycit003-ebeln

                                          ebelp = itab_zycit003-ebelp.

      PERFORM retorna_decimais USING /pws/zycie006-waers

                            CHANGING itab_contas_aux-wrbtr.

      CLEAR: itab_zycit031.

      itab_zycit031-tcode  = itab_zycie033-tcode   .

      itab_zycit031-tabela = itab_zycie033-tabela  .

      itab_zycit031-cpochv = itab_zycie033-cpochv  .

...

 

...

            v_erro = 'X'.

            EXIT.

          ENDIF.

        ELSE.

          CONTINUE.

        ENDIF.

        CLEAR: v_vlaux, v_indice.

        LOOP AT itab_zycit403 WHERE codigo = itab_zycit019-codigo.

          v_indice = v_indice + 1.

          READ TABLE itab_zycit003

                    WITH KEY ebeln = itab_zycit403-ebeln

                             ebelp = itab_zycit403-ebelp.

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

          IF itab_zycit403-condicoes EQ 'G'.

            READ TABLE itab_ivaped

                    WITH KEY ebeln = itab_zycit403-ebeln

                             ebelp = itab_zycit403-ebelp.

            CLEAR: itab_account, itab_zyglt316.

            READ TABLE itab_zyglt316

                      WITH KEY codaux1 = itab_zycit403-codigo.

            IF sy-subrc NE 0.

              MESSAGE i015 WITH text-195 itab_zycit403-codigo.

              v_erro = 'X'.

              EXIT.

            ENDIF.

            READ TABLE itab_ivaped INDEX 1.

            itab_glaccount-item_amount = itab_zycit047-vldp *

               ( itab_zycit403-valorrec / itab_zycit403a-valorrec ).

            v_vlaux = v_vlaux + itab_glaccount-item_amount.

            IF v_line = v_indice.

              v_vlaux = itab_zycit047-vldp - v_vlaux.

              itab_glaccount-item_amount = itab_glaccount-item_amount +

                                           v_vlaux.

            ENDIF.

            itab_glaccount-db_cr_ind = 'S'.

            itab_glaccount-comp_code        = /pws/zycie006-bukrs .

            itab_glaccount-tax_code         = /pws/zycie006-iva .

            itab_glaccount-gl_account       = itab_zyglt316-konts.

            IF itab_ivaped-knttp IS INITIAL.

              CLEAR itab_marc.   REFRESH itab_marc.

              SELECT SINGLE matnr prctr FROM marc INTO itab_marc

                WHERE matnr EQ itab_ivaped-matnr AND

                      werks EQ itab_ivaped-werks.

              IF sy-subrc NE 0.

                SELECT SINGLE matnr prctr FROM marc INTO itab_marc

                  WHERE matnr EQ itab_ivaped-matnr.

              ENDIF.

              itab_glaccount-profit_ctr = itab_marc-prctr.

            ELSEIF itab_ivaped-knttp = 'K'.

              READ TABLE itab_ekkn WITH KEY ebeln = itab_ivaped-ebeln

                                            ebelp = itab_ivaped-ebelp.

              CLEAR itab_csks.   REFRESH itab_csks.

              SELECT SINGLE kostl kokrs prctr FROM csks INTO itab_csks

                WHERE kostl EQ itab_ekkn-kostl

                  AND kokrs EQ itab_ekkn-kokrs.

              itab_glaccount-profit_ctr = itab_csks-prctr.

            ELSEIF itab_ivaped-knttp = 'F' .

              READ TABLE itab_ekkn WITH KEY ebeln = itab_ivaped-ebeln

                                       ebelp = itab_ivaped-ebelp.

              CLEAR itab_aufk.   REFRESH itab_aufk.

              SELECT SINGLE aufnr prctr FROM aufk INTO itab_aufk

                WHERE aufnr EQ itab_ekkn-aufnr.

              itab_glaccount-profit_ctr = itab_aufk-prctr.

            ENDIF.

            COLLECT itab_glaccount.

            itab_iva-mwskz = itab_glaccount-tax_code.

            COLLECT itab_iva.

          ELSE.

* << Fim da inclusão

          CLEAR: itab_zycit031.

          itab_zycit031-tcode  = itab_zycie033-tcode   .

          itab_zycit031-tabela = itab_zycie033-tabela  .

          itab_zycit031-cpochv = itab_zycie033-cpochv  .

          itab_zycit031-ebeln  = itab_zycit003-ebeln   .

          itab_zycit031-ebelp  = itab_zycit003-ebelp   .

          itab_zycit031-meins  = itab_zycit003-meins   .

          itab_zycit031-mwskz  = itab_zycie033-mwskz   .

          itab_zycit031-menge  = itab_zycit003-qtd_iten.

          itab_zycit031-wrbtr  = itab_zycit047-vldp *

...

 

...

              ENDIF.

            ENDLOOP.

          ENDIF.

          COLLECT itab_zycit031.

          IF itab_zycit031-lgort IS INITIAL.

            itab_zycit031-menge  = itab_zycit003-qtd_iten.

            MODIFY itab_zycit031 TRANSPORTING menge

                      WHERE ebeln EQ itab_zycit003-ebeln

                        AND ebelp EQ itab_zycit003-ebelp.

          ENDIF.

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

          ENDIF.

* << Fim da inclusão

        ENDLOOP.

      ENDLOOP.

      IF v_erro EQ 'X'.

        EXIT.

      ENDIF.

    ENDIF.

  ELSEIF /pws/zycie006-tpfatura EQ '02'.

    READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.

    LOOP AT itab_zycit003.

      READ TABLE itab_contas_aux WITH KEY ebeln = itab_zycit003-ebeln

...

 

...

      CLEAR: itab_zycit031.

      itab_zycit031-tcode  = itab_zycie033-tcode  .

      itab_zycit031-tabela = itab_zycie033-tabela .

      itab_zycit031-cpochv = itab_zycie033-cpochv .

      itab_zycit031-ebeln  = itab_zycit003-ebeln  .

      itab_zycit031-ebelp  = itab_zycit003-ebelp  .

      itab_zycit031-wrbtr  = itab_contas_aux-wrbtr.

      v_vlfr =   itab_zycit003-vlfre_aux .

      v_vlsg =   itab_zycit003-vlseg_aux.

      itab_zycie033-rmwwr = itab_zycit031-wrbtr + itab_zycie033-rmwwr.

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

      READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

      v_ebelp+1(5) = itab_zycit003-ebelp.

      CLEAR itab_konv.

      LOOP AT itab_zycit030 WHERE codigo = 'SEGURO'.

        READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                      kposn = v_ebelp

                                    kschl = itab_zycit030-kschl.

        IF sy-subrc EQ 0.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF itab_konv-kschl IS INITIAL.

        CLEAR: v_vlfr.

      ENDIF.

      CLEAR itab_konv.

      LOOP AT itab_zycit030 WHERE codigo = 'SEGURO'.

        READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                      kposn = v_ebelp

                                    kschl = itab_zycit030-kschl.

        IF sy-subrc EQ 0.

          itab_zycit031-lgort = itab_zycit030-kschl.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF itab_konv-kschl IS INITIAL.

        CLEAR: v_vlfr.

      ENDIF.

* << Fim da inclusão

      itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlfr.

      IF /pws/zycit031-inco1_ci EQ 'CIF'.

        itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlsg.

      ENDIF.

      itab_zycit031-menge  = itab_zycit003-toinv.

      itab_zycit031-meins  = itab_zycit003-meins.

      itab_zycit031-mwskz  = itab_ivaped-mwskz.

      APPEND itab_zycit031.

      itab_zycie033-waers = /pws/zycie006-waers.

      IF NOT v_vlfr IS INITIAL.

...

 

...

   EXCEPTIONS

      user_exit         = 1

      OTHERS            = 2

            .

  IF sy-subrc <> 0.

  ENDIF.

  CLEAR: itab_retorno-hwste.

  LOOP AT itab_itens_iva.

    ADD itab_itens_iva-fwste TO itab_retorno-hwste.

  ENDLOOP.

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

  REFRESH: itab_glaccount, itab_iva.

  IF /pws/zycie006-imposto EQ 'X'

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

* << Fim da exclusão

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

  IF ( /pws/zycie006-imposto EQ 'X'

       AND /pws/zycie006-tpfatura EQ '04' ) OR

       NOT itab_glaccount[] IS INITIAL.

* << Fim da inclusão

    DELETE itab_zycit483 WHERE vldp   EQ 0

                            OR iva    EQ space

                            OR tpdesp EQ space.

    LOOP AT itab_zycit483.

      itab_483_contas-codaux1 = itab_zycit483-tpdesp.

      COLLECT itab_483_contas.

    ENDLOOP.

    READ TABLE itab_ivaped INDEX 1.

    IF NOT itab_483_contas[] IS INITIAL.

      SELECT * FROM /pws/zyglt316 INTO TABLE itab_zyglt316

...

 

...

        MESSAGE i030 WITH v_belnr_ant.

        IF v_parcela = 'X'.

          CLEAR: itab_zycit132-miro, itab_zycit132-status.

          itab_zycit132-status = 'X'.

          MODIFY itab_zycit132 TRANSPORTING   miro status

                          WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.

        ENDIF.

        PERFORM clear_date_batch.

        CLEAR v_mr1m_ok.

      ELSE.

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

        LOOP AT itab_zycit032.

          MESSAGE i015 WITH itab_zycit032-msg+0(50)

                            itab_zycit032-msg+50(50).

        ENDLOOP.

        PERFORM clear_date_batch.

* << Fim da inclusão

        v_erro = 'X'.

      ENDIF.

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

    ELSE.

      LOOP AT itab_zycit032.

        MESSAGE i015 WITH itab_zycit032-msg+0(50)

                          itab_zycit032-msg+50(50).

      ENDLOOP.

      PERFORM clear_date_batch.

      v_erro = 'X'.

* << Fim da inclusão

    ENDIF.

  ELSEIF e_subrc EQ '8'.

    EXIT.

  ELSE.

    v_erro = 'X'.

  ENDIF.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI003

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 195

 

Texto: (32 caracteres)

"Parameterize the account for tax"

 

Comprimento máximo: 50

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 195

 

Texto: (33 caracteres)

"Parametrizar conta para o imposto"

 

Comprimento máximo: 50