Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

Informações Gerais

 

Especificação

ProdutoPROTHEUS

Microsiga Protheus

Módulo

SIGAGFE

Segmento Executor

 Supply Chain - Logística

Projeto1

M_DL_GFE002

IRM1

PCREQ-8921

Requisito1

PCREQ-9324

Subtarefa1

PDRDL-2423

Chamado2

 

País

(X) Brasil  (  ) Argentina  (  ) Mexico México  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   Colômbia   (  ) Outro _____________.

Outros

Jira
serverJira Totvs
serverIdb3180167-3374-3293-b2ce-06d441fdaf21
keyPDRDL-2423

ER_PCREQ_9319_Alçada_de_Aprovação_no_Documento_de_Frete_e_Fatura_(DTS)

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 


Objetivo

 Desenvolver a estrutura  e os componentes que possibilitem adotar, para o processo de aprovação de documentos de fretes e faturas de fretes, um sistema de aprovações por nível de alçada, com possibilidade de integração com o módulo MLA do ERP Datasul.


Definição da Regra de Negócio

Atualmente o processo de aprovação de documentos de fretes faturas de fretes no SIGAGFE é realizado diretamente pelo programa de auditoria Auditoria de fretesFretes, sem a possibilidade de adoção de um sistema de hirarquiashierarquias, sequenciamento de aprovação ou por nível de alçada considerando os valores envolvidos.

 A partir deste desenvolvimento , será disponibilizado um novo processo aos clientes do SIGAGFE que utilizam o ERP Totvs TOTVS 12 / Datasul, para permitir a aprovação destes processos em nível de alçadas, com a integração ao módulo  MLA módulo MLA - Módulo Logístico de Aprovação (http://tdn.totvs.com/pages/releaseview.action?pageId=73077953).Aprovação de Processos Logísticos.

 Este sistema de aprovação terá como tem como função principal permitir a definição de  hierarquias de aprovação sobre os processos de frete (com nível de alçada), levando sempre para o MLA documento que passou pela conferência de fretes.    Assim, serão integrados os documentos de frete que foram bloqueados pelo sistema SIGAGFE devido a divergência com o valor previsto ou com os dados calculados e de carga. As faturas de fretes bloqueados por divergências com os valores de pré-faturas ou e também as aprovadas pelo sistema para serão enviadas após serem aprovadas pelo sistema, para que no MLA seja liberada a permissão de pagamento (integração de financeiro).

Também será gerada pendência de aprovação no MLA para os documentos de frete e faturas que forem Aprovados pelo Sistema, porém, para que não seja necessária a intervenção de aprovadores neste módulo e ele seja aprovado automaticamente (pois a auditoria de frete já conferiu e liberou o documento) a pendência será criada no MLA com o usuário de solicitação = "SISTEMA", o qual deve obrigatoriamente estar cadastrado como um aprovador para os documentos 30 e 31 e configurado para aprovação automática. Se este usuário não for cadastrado, os documentos serão gerados normalmente e dependerão da intervenção de algum aprovador, conforme a configuração definida no MLA para os documentos. Esta movimentação se faz necessária para manter em um mesmo ambiente todos os documentos aprovados.

A aprovação automática de documentos de frete não pode ser realizada via usuário automático.

Vai para consulta com o cliente adotar o formato de visualização no GFE dos documentos, incluindo situação MLA.

 A integração com o módulo MLA deverá ser ativada no programa de parâmetros do módulo, GFEX000, onde, além da definição da integração da aprovação dos processos com o MLA, também será definido se o valor a ser considerado para definição da alçada de aprovação será o valor total do documento ou a diferença entre previsto e realizado.

 

com o módulo Financeiro).

As faturas que forem bloqueadas por divergências com os valores de pré-faturas (para os clientes que optarem por utilizar a pré-fatura) gerará o registro de pendência de aprovação no MLA no momento do seu bloqueio no GFE. Neste caso, a aprovação da divergência entre Fatura de frete x Pré-fatura já libera para a integração com o Financeiro, não necessitando aprovação dupla da fatura no MLA.

A integração com o módulo MLA deve ser ativada no programa de Parâmetros do Módulo - GFEX000, no qual, além da definição da integração da aprovação dos processos com o MLA, também será definido se o valor a ser considerado para definição da alçada de aprovação será o valor total do documento ou a diferença entre previsto e realizado.

 

Rotina

Tipo de

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

GFEXWSFUNAlteração-Envio dos dados da negociação de fretes para o ERP Datasul.
GFEX000AlteraçãoAtualizações ->Cadastros -> Cadastros > Parâmetros - > Parâmetros do ModuloCriação de parâmetro para a ativação de integração com MLA

GFEA066

Alteração

Atualizações - > Movimentação - > Auditoria de frete - > Aprovar Doc. Frete

Alteração do processo de aprovação do documento de fretes

GFEA071GFEA070AlteraçãoAtualizações - > Movimentação -> Auditoria > Doc Frete/Faturas > Fatura de frete -> Aprovar FaturaAlteração do processo de aprovação envio de faturas para o Finaneceiro
GFEA065AlteraçãoAtualizações - > Movimentação - > Doc Frete/Faturas - > Documentos FreteAlterar situação do doc. no MLA


GFEXWSFUN:

  • Na Function GFEWSGETDATA:

Incluir o tratamento para envio das informações ao Web Service: 

 

Case cTabela == "GW3" .AND. cCodInt == '6'

// Doc Frete e Cod integração seja Recebimento
cQuery += " AND (TAB.GW3_SITMLA = '2' OR TAB.GW3_SITMLA = '5' OR TAB.GW3_SITMLA = '8') "

 

Case cTabela == "GW6" .AND. cCodInt == '6'
// Fatura e Cod integração seja

Financeiro

Financeiro 
cQuery += " AND (TAB.GW6_SITMLA = '2' OR TAB.GW6_SITMLA = '5' OR TAB.GW3_SITMLA = '8') "


Criar bloco de envio de informações da tabela de fretes do GFE para o Datasul: 

tabela = GW3

operação = 6

As informações do Documento de frete enviados para o

Web-Services

WebServices serão:

 #GW3|GW3_FILIAL|GW3_CDESP|GW3_EMISDF|GW3_SERDF|GW3_NRDF|GW3_DTEMIS|GW3_TPDF|GW3_DTENT|GW3_CFOP|GW3_SIT|GW3_USUIMP|GW3_CDREM|GW3_CDDEST|GW3_VLDF|GW3_TAXAS|GW3_FRPESO|GW3_FRVAL|GW3_PEDAG|GW3_QTDCS|GW3_QTVOL|GW3_VOLUM|GW3_PESOR|GW3_PESOC|GW3_VLCARG|GW3_TPIMP|GW3_TRBIMP|GW3_BASIMP|GW3_PCIMP|GW3_VLIMP|GW3_CTE|GW3_MOTBLQ|GW3_DTBLQ|GW3_USUBLQ|GW3_ORIGEM|GW3_TPCTE|GW3_SITMLA|

    • Tratar o campo de valor do documento de frete (GW3_VLDF) para que seja enviada a diferença entre previsto e realizado, se o parâmetro MV_
VLDMLA == 2
    • VLDFMLA == 2.

A mensagem será complementada com a descrição do resultado da conferência de frete (Campo Observação) para apresentação na consulta do MLA.


tabela = GW6

operação = 6

As informações da Fatura de frete enviados para o Web-Services serão:

#GW6|GW6_FILIAL|GW6_EMIFAT|GW6_SERFAT|GW6_NRFAT|GW6_DTEMIS|GW6_VLFATU|GW6_VLDESC|GW6_VLICMS|GW6_VLICRE|GW6_VLISS|GW6_VLISRE|GW6_VLJURO|GW6_DTCRIA|GW6_DTVENC|GW6_ORIGEM|GW6_SITAPR|GW6_DTBLOQ|GW6_HRBLOQ|GW6_USUBLO|GW6_MOTBLO

|GW6_SITAPR

|GW6_OBS|GW6_SITMLA|

    • Tratar o campo de valor do documento de frete (GW6_VLFATU) para que seja enviada a diferença entre previsto e realizado, se o parâmetro MV_
VLDMLA
    • VLFTMLA == 2.


  • Na Function
 GFEWSSETDATA
  •   GFEWSSETDATA: 

Criar o tratamento do retorno do MLA do Datasul para o GFE.

Alterar, conforme a string de retorno  os campos:


Case cTabela == "GW3"

If cCodInt == '6'


GW3->GW3_SITMLA :=  aDados[7]  /*Situação da integração*/

GW3->GW3_MOTMLA := aDados[8] /* Motivo aprovação rejeição */


Se o campo GW3_SITMLA ficar com o valor ' 4=Atualizado ' então Executar o processo de aprovação (auditoria) de documentos de fretes através da execução da função GFEA066OK (.T.), passando os dados de aprovação como parâmetros:

GFEA066OK (.T., aDados[11] , aDados[10] , aDados[9] )

Se ficar com o valor '3=Rejeitado' ou '7=Enviado/Aguardando' então manter o documento como bloqueado, sem alterações.     

    

Case cTabela == "GW6"

If cCodInt == '6'


GW6->GW6_SITMLA :=  aDados[6]  /*Situação da integração*/

GW6->GW6_MOTMLA := aDados[7] /* Motivo aprovação rejeição */

 

Se o campo GW6_SITMLA ficar com o valor ' 4=Atualizado ' então Executar o processo de aprovação (auditoria) de documentos de fretes através da execução da

função

função GFEA071OK, passando os dados de aprovação como parâmetros:

GFEA071OK(aDados[11], aDados[10] ,  aDados[8], aDados[9] )

 Se ficar com o valor '3=Rejeitado'

ou

 ou '7=Enviado/Aguardando' então manter a fatura como bloqueada, sem alterações

.

.   

Atualizar os campos de usuário, data e hora de aprovação ou rejeição no MLA:

GW6->GW6_DTAPR:=  aDados[8]

GW6->GW6_USUAPR :=  aDados[9]

GW6->GW6_HRAPR :=  aDados[10]

     

GFEX000:

Na aba
  • Na pasta Integrações Datasul,
na Seção '
  •  seção Opções de Integração
'
  • , incluir os parâmetros:
       -  - 
        • MV_DFMLA - Aprovação de Doc. frete via MLA - opções: 1=Não integra / 2=Integra com valor doc.
        • / 3=Integra valor diferença prev./realizado.
        • MV_FTMLA - Aprovação de faturas via MLA
      .Ambos com as
        • -opções: 1=Não integra / 2=Integra com valor
      total
        • doc./ 3=Integra
      com
        • valor
      da
        • diferença prev./realizado.

      GFEA066:

      • Bloquear o programa para o uso quando o parâmetro MV_DFMLA estiver
      ativado
      • ativo (diferente de 1). Ao acessar o programa, o usuário deve receber a mensagem informando que a aprovação de documentos será
      através da
      • pela integração com o MLA e não permitir o acesso:
      • "Sistema parametrizado para realizar a aprovação de documentos de fretes através do módulo MLA".
      • Na função GFEA066OK:
        • Tratar os dados de aprovação vindos do MLA. Atualmente, como a função não é acessada externamente, o programa utiliza variáveis privadas para atribuir os valores aos campos de data e usuário de aprovação.
        • Criar novos parâmetros de entrada da função com atribuição do motivo, usuário e data de aprovação. Definir os valores de padrão dos mesmos para os casos em que a função for chamada sem informação destes parâmetros:
        •  

       Function GFEA066OK(lMotivo, cMotAprov, cUserAprov, dtAprov, hrAprov)

      Default cMotAprov := cMemo

      Default  cUserAprov := cUserAprov

      Default dtAprov := DDATABASE

      ...

      RecLock("GW3",.F.)

      GW3->GW3_MOTAPR := cMotAprov
      GW3->GW3_USUAPR :=  cUserAprov 
      GW3->GW3_SIT := "4"
      GW3->GW3_DTAPR := dtAprov

      GW3-> GW3_HRAPR :=hrAprov

      MsUnLock("GW3")

      GFEA071:

      • Bloquear o programa para o uso quando o parâmetro MV_FTMLA estiver ativado. Ao acessar o programa, o usuário deve receber a mensagem informando que a aprovação de faturas de fretes será
      através da
      • pela integração com o MLA e não permitir o acesso:
      •   "Sistema parametrizado para realizar a aprovação de faturas de fretes através do módulo MLA"
      .A auditoria de faturas poderá terá a aprovação via gfe
      • .
      Permitir o acesso. 
      • Na
      função   
      • função GFEA071OK:
        • Alterar a função para passar a gravar os valores, nos campos de aprovação da tabela GW6, enviados pela aprovação via MLA:

      Function GFEA071OK( cMemo, cUserAprov, dDataAprov, cHRAprov )

      Default cUserAprovMLA := cUserName

              Default dDataAprovMLA := dDataBase

              Default cHRAprovMLA := Time()

      -- 

      RecLock("GW6", .F.)

       

      GW6->GW6_MOTDES := cMemo

      GW6->GW6_SITAPR := "4"

      GW6->GW6_DTAPR := dDataAprov
      GW6->GW6_HRAPR :=  cHRAprov
      GW6->GW6_USUAPR := cUserAprov

      Endif 

      GW6->( MsUnlock() )

      ***O campo cMemo não precisa ser atribuído por uma variável diferente pois na chamada da função atual já é passada como parâmetro.

       

      • Na Function GFEA071RA:
          No bloco de alteração da sitação da fatura para '2-Bloqueado' ( GW6->GW6_SITAPR := "2" ), incluir
            • Incluir a alteração do campo GW6_SITMLA para "2-Pendente", verificando os parâmetros de ERP Integrado ( 1=Datasul ) e Aprovação via MLA ( 1=
          Sim ).
            • Sim ).

           RecLock("GW6",.F.) 

                   If lAprovMLA 

                      If GW6->GW6_SITMLA=="7" 

           If  MV_ERPGFE == "1" .AND. MV_DFMLA  

                          

          GW6->GW6_SITMLA:="28" 

                          GW6->GW6_MOTMLA:="" 

                 

           Else

             

                     

           Else 

             

                       

          GW6->GW6_SITMLA := "6"
             GW6->GW6_MOTMLA SITMLA:="2" 

                         

          EndIf

           

          No bloco onde a fatura é aprovada pelo sistema (

          GW6->GW6_

          SITAPR

          MOTMLA:="

          3") também atribuir ao campo GW6_SITMLA := 2 (Pendente) ou 6 (Não se aplica) considerando os mesmos valores e parâmetro mencionados acima.

          " 

                       EndIf 

                Else 

                      GW6->GW6_SITMLA:="6"// Não se aplica - sem integração com MLA. 

                      GW6->GW6_MOTMLA:="" 

                EndIf 

                GW6->(MsUnlock())

          GFEA070:

          • Quando for solicitada a exclusão da fatura no SIGAGFE, atualizar o campo GW6_SITMLA para 9-Excluir, se a situação no MLA for 3=Rejeitado, 4=Atualizado ou 7-Enviado/aguardando.

          GFEA065:

          • Alterar programa para que na validação do documento de fretes o campo de situação no MLA seja atualizado.
          • Na Function GFEA065VP:
            • Incluir o campo GW3_SITMLA := 2 e GW3_MOTMLA := " " na conferência de fretes, quando o documento for ou não aprovado ( quando MV_ERPGFE == "1" .AND. MV_DFMLA  ). Caso contrário, gravar o campo com o valor 6=Não se aplica.
            • Se o registro estiver aguardando aprovação no MLA (GW3_SITMLA == "7" ) e houve atualização no registro que alterou a situação para aprovado via Sistema, então, deve ser enviada solicitação de desatualização do registro no MLA. 

          lAprovar := GFEA065CO(oModel)

           If !lAprovar .AND. MV_ERPGFE == "1" .AND. MV_DFMLA  

           

          GFEA065:

          Alterar programa para que na validação do documento de fretes o campo de situação no MLA seja atualizado.

          Na Function GFEA065VP:

          Incluir o campo GW3_SITMLA := 2 e GW3_MOTMLA := " " na conferência de fretes, quando o documento não for aprovado.

          Quando aprovado, gravar o campo com o valor '6=Não se aplica': 

          Se o registro estiver aguardando aprovação no MLA (GW3_SITMLA == "7" ) e houve atualização no registro que alterou a situação para aprovado via Sistema, então deve ser enviada solicitação de desatualização do registro no MLA.

           

          lAprovar := GFEA065CO(oModel)

           If !lAprovar .AND. MV_ERPGFE == "1" .AND. MV_DFMLA  

                           oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","2")  /*Pendente Atualização */

                           oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA",")

                   f  GW3->GW3_SITMLA == "7"

          Atualizar o documento no MLA com novo valor.

                   Else       

                  If MV_ERPGFE == "1" .AND. MV_DFMLA 

          if  GW3->GW3_SITMLA == "7"

               oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","5")  /* pendente desatualização. Quer dizer que o documento foi alterado após ser enviado para o MLA */ 

          Else  ********

                           oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","2")  /*Pendente atualização. Atualização */ 

                           oModel oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA",")

                   If  GW3->GW3_SITMLA == "7"

           oModel:LoadValue("GFEA065_GW3" ,"GW3_

          MOTMLA

          SITMLA","

          Aprovado Via Sistema")

          8")  /*Atualizar registro de pendencia no MLA*/

               

          Endif

          Else

                   

          oModel

           oModel:LoadValue("GFEA065_GW3" ,"GW3_

          SITMLA

          MOTMLA",

          "6

          ")

          endif

                   Else       /* Não se aplica */   

                 

               

          If MV_ERPGFE == "1" .AND. MV_DFMLA 

            if  GW3->GW3_SITMLA == "7"

               oModel:LoadValue("GFEA065_GW3" ,"GW3_

          MOTMLA

          SITMLA","5")

           /* pendente desatualização. Quer dizer que o documento foi alterado após ser enviado para o MLA */ 

          EndIF

                 

          EndIf 

          EndIf 

           

          GFEA065C:

          • Na  Function Conferencia():
            • Incluir o campo GW3_SITMLA := 2 e GW3_MOTMLA := " " na conferência de fretes, quando o documento for ou não
          for
            • aprovado
          . Quando aprovado, gravar
            • (considerar os parâmetros do módulo). Gravar o campo com o valor
          '6=Não se aplica': 
            • 6=Não se aplica quando não ativada a integração com o MLA de documentos de frete:

          lAprovado := GFEA065CO(oModelGW3)
          RecLock("GW3", .F.)

          If !lAprovado .AND.  MV_ERPGFE == "1" .AND.

           MV_DFMLA

           MV_DFMLA  

                     

             

           

           oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","2")  /*Pendente Atualização *

          /

          /

               oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA",")

               if  GW3->GW3_SITMLA == "7"

                   

                  oModel:LoadValue("GFEA065_GW3" ,"GW3_

          MOTMLA

          SITMLA","8")

                   Else             ***Aplicar as atualizações da função anterior ***** 

          if  GW3

           /* Atualizar registro no mla */ 

               endif

          Else

            If MV_ERPGFE == "1" .AND. MV_DFMLA 

                if  GW3->GW3_SITMLA == "7"

                   

          oModel

           oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","5")  /* pendente desatualização. Quer dizer que o documento foi alterado após ser enviado para o MLA */ 

          Else

               Endif 

          else 

                     oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","6")  /* Não se aplica. */ 

                           

           oModel

           oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA",") EndIf

          endif

                

              EndIf         MsUnlock

           MsUnlock()

          Tabelas Utilizadas

          • GW3 - Documento de fretes

          • GW6 – Fatura de fretes

          cHRAprov 

      Protótipo de Tela

      Não se aplica. 

       

      Fluxo do Processo

       Não se aplica.

       

      Dicionário de

      Dados 

      Dados 

      GW3 - Documento de fretes

      Campo

      GW3_SITMLA

      GW3_MOTMLAGW3_HRAPR

      Tipo

      C

      MemoC

      Tamanho

      1

      105

      Valor Inicial

      1

        

      Mandatório

      Sim (  ) Não (X)

      Sim (  ) Não (X)Sim (  ) Não (X)

      Descrição

      Integração com MLA

      Motivo Rejeição MLAHora de aprovacao

      Título

      Integração com MLA

      Motivo Rejeição MLAHora Aprov

      Picture

      <@E9>

       @R 99:99

      Help de Campo

      Situação da integração da negociação de fretes com o MLA.

      Lista de opções:
      1=Nao Enviado;2=Pendente;3=Rejeitado;4=AtualizadoAprovado;5=Pendente Desatualização;6=Nao se Aplica;7-Enviado/aguardando; 8-Atualizar registro; 9- Excluir

      Motivo da rejeição do registro no MLA.
       
      Hora de aprovação

      GW6 - Fatura de Fretes

      Campo

      GW6_SITMLA

      GW6_MOTMLA

      Tipo

      C

      Memo

      Tamanho

      1

      10

      Valor Inicial

      1

       

      Mandatório

      Sim (  ) Não (X)

      Sim (  ) Não (X)

      Descrição

      Integração com MLA

      Motivo Rejeição MLA

      Título

      Integração com MLA

      Motivo Rejeição MLA

      Picture

      <@E9>

       

      Help de Campo

      Situação da integração da negociação de fretes com o MLA.

      Lista de opções:
      1=Nao Nãoo Enviado;2=Pendente;3=Rejeitado;4=AtualizadoAprovado;5=Pendente Desatualização;6=Nao Não se Aplica;7-Enviado/aguardando; 8-Atualizar registro; 9- Excluir

      Motivo da rejeição do registro no MLA.

       

       

      Grupo de Perguntas

      Não se aplica. 

       

       

      Consulta Padrão

      Não se aplica. 

       

      Estrutura de Menu

      Não se aplica. 

      Cadastro de Papéis

       

      Não se aplica.

       

       Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.