Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||||||||||
Produto | PROTHEUS | Módulo | SIGAGFE | ||||||||
Segmento Executor |
| ||||||||||
Projeto1 | M_DL_GFE002 | IRM1 | PCREQ-8921 | ||||||||
Requisito1 | PCREQ-9324 | Subtarefa1 | PDRDL-2423 | ||||||||
Chamado2 |
| ||||||||||
País | (X) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||||||||||
Outros |
|
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Desenvolver estrutura e 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 de fretes, sem a possibilidade de adoção de um sistema de hirarquias, sequenciamento de aprovação ou por nível de alçada considerando valores envolvidos.
A partir deste desenvolvimento, será disponibilizado um novo processo aos clientes do SIGAGFE que utilizam o ERP 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 Logístico de Aprovação (http://tdn.totvs.com/pages/releaseview.action?pageId=73077953).
Este sistema de aprovação terá 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 devido divergência com o valor ou dados calculados e de faturas de fretes bloqueados por divergências com os valores de pré-faturas ou com o do somatório de documentos de frete vinculados a ela.
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.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
GFEXWSFUN | Alteração | - | Envio dos dados da negociação de fretes para o ERP Datasul. |
GFEX000 | Alteração | Atualizações ->Cadastros -> Parâmetros -> Parâmetros do Modulo | Criaçã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 |
GFEA071 | Alteração | Atualizações -> Movimentação -> Auditoria de frete -> Aprovar Fatura | Alteração do processo de aprovação de faturas |
GFEA065 | Alteração | Atualizações -> Movimentação -> Doc Frete/Faturas -> Documentos Frete | Alterar 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') "
Case cTabela == "GW6" .AND. cCodInt == '6'
// Fatura e Cod integração seja Financeiro
cQuery += " AND (TAB.GW6_SITMLA = '2' OR TAB.GW6_SITMLA = '5') "
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 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.
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_DTVENCORIGEM|GW6_DTBLOQ|GW6_HRBLOQ|GW6_USUBLO|GW6_MOTBLO|GW6_SITAPR|GW6_OBS|
Na Function GFEWSSETDATA:
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 == 2.
Na Function GFEWSSETDATA:
Criar o 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.). Definir as variáveis privadas que a função utiliza, atribuindo o retorno do MLA:
Private cMemoMLA
Private cUserAprovMLA
Private dDataAprovMLA
--
dDataAprovMLA := aDados[9]
, passando os dados de aprovação como parâmetros:
cUserName := GFEA066OK (.T., aDados[11] , cMemo := aDados[10] , aDados[119] )
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 GFEA071OK, passando os dados de aprovação como parâmetros:
GFEA071OK(aDados[11]). Definir as variáveis privadas que a função utilizará para atribuir o retorno do MLA:
Private cUserAprovMLA
Private dDataAprovMLA
Private cHRAprovMLA
--
dDataAprovMLA := aDados[8]
cHRAprovMLA := aDados[9]
cUserAprovMLA := aDados[10]
, aDados[10] , aDados[8], aDados[9] )
Se ficar com o valor '3=Rejeitado' ou '7=Enviado/Aguardando' então manter a fatura como bloqueada, sem alterações.
GFEX000:
Na aba Integrações Datasul, na Seção 'Opções de Integração', incluir os parâmetros:
- MV_DFMLA - Aprovação de Doc. frete via MLA.
- MV_FTMLA - Aprovação de faturas via MLA.
Ambos com as opções: 1=Sim / 2=Não.
- MV_VLDMLA - Valor a considerar para o documento no MLA.
Opções: 1=Valor do documento / 2=Difenrença Previsto/Realizado.
GFEA066:
Bloquear o programa para o uso quando o parâmetro MV_DFMLA estiver ativado. Ao acessar o programa, o usuário deve receber a mensagem informando que a aprovação de documentos será através da 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:
cMemo
Function GFEA066OK(lMotivo, cMotAprov, cUserAprov, dtAprov)
Default cMotAprov := cMemo
Default cUserAprov := cUserAprov
Default dtAprov := DDATABASE
...
RecLock("GW3",.F.)
GW3->GW3_MOTAPR := cMemo cMotAprov
GW3->GW3_USUAPR := cUserName cUserAprov
GW3->GW3_SIT := "4"
GW3->GW3_DTAPR := DDATABASE dtAprov
GW3->GW3_MOTAPR := cMemoMLA
GW3->GW3_USUAPR :=cUserAprovMLA
GW3->GW3_SIT := "4"
GW3->GW3_DTAPR := dDataAprovMLA
EndIf
MsUnLock("GW3")
GFEA071:
MsUnLock("GW3")
GFEA071:
Bloquear 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 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".
Na 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:Private cUserAprovMLA
Private dDataAprovMLA
Private cHRAprovMLA
--
RecLock("GW6", .F.)
Function GFEA071OK( cMemo, cUserAprov, dDataAprov, cHRAprov )
Default cUserAprovMLA := cUserName
Default dDataAprovMLA := dDataBase
Default cHRAprovMLA := Time()
--
RecLock("GW6", .F.)If !IsInCallStack("GFEXWSFUN")
GW6->GW6_MOTDES := cMemo
GW6->GW6_SITAPR := "4"
GW6->GW6_DTAPR := dDataBase dDataAprov
GW6->GW6_HRAPR := Time() cHRAprov
GW6->GW6_USUAPR := cUserName cUserAprov
ElseEndif
GW6-
>GW6_MOTDES := cMemoGW6->GW6_SITAPR := "4"
GW6->GW6_DTAPR := dDataAprovMLA
GW6->GW6_HRAPR := cHRAprovMLA
GW6->GW6_USUAPR := cUserAprovMLA
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 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 ).
If MV_ERPGFE == "1" .AND. MV_DFMLA
GW6->GW6_SITMLA := "2"
GW6->GW6_MOTMLA := " "
Else
GW6->GW6_SITMLA := "6"
GW6->GW6_MOTMLA := " "
EndIf
No bloco onde a fatura é aprovada pelo sistema (GW6->GW6_SITAPR := "3") também atribuir o ao campo GW6_SITMLA := 6 2 (Pendente) ou 6 (Não se aplica) considerando os mesmos valores e parâmetro mencionados acima.
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",")
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 oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","52") /* pendente desatualizaçãoPendente atualização. */
else
oModel
oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA","Aprovado Via Sistema")
Endif
Else
oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","6") /* Não se aplica
.*/
oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA","Aprovado Via Sistema")
endifEndIF
EndIf
GFEA065C:
Na Function Conferencia():
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':
lAprovado := GFEA065CO(oModelGW3)
RecLock("GW3", .F.)
If !lAprovado .AND. MV_ERPGFE == "1" .AND. MV_DFMLA
oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","2") /*Pendente Atualização */
oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA",")
Else
if GW3->GW3_SITMLA == "7"
oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","5") /* pendente desatualização. */
Else
oModel:LoadValue("GFEA065_GW3" ,"GW3_SITMLA","6") /* Não se aplica. */
oModel:LoadValue("GFEA065_GW3" ,"GW3_MOTMLA",")
EndIf
EndIf
MsUnlock()
Tabelas Utilizadas
- GW3 - Documento de fretes
- GW6 – Fatura de fretes
Protótipo de Tela
Não se aplica.
Fluxo do Processo
Não se aplica.
Dicionário de Dados
GW3 - Documento de fretes
Campo | GW3_SITMLA | GW3_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: | Motivo da rejeição do registro no MLA. |
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: | 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. |
---|