Page tree

 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

Microsiga Protheus

Módulo:

SIGAGFE

Segmento Executor

 Supply Chain - Logística

Projeto1

LOGGFE01

IRM1

LOGGFE01-4

Requisito1

LOGGFE01-41

Subtarefa1

 

País

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

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

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

 

Objetivo 

Para melhorar o processo de manutenção da informação das Transportadoras de  Redespacho no Romaneio de Cargas será desenvolvida na rotina de Manutenção de Romaneios, em Ações Relacionadas, o item Redespachantes - Incluir, possibilitando a inclusão de nova Transportadora, não informada anteriormente na Nota Fiscal (Documento de Carga) para o trecho único e Documento de Carga que contenha os tipos de Frete CIF, FOB e Consignado, transformando o tipo de Frete em Redespacho, possibilitando assim o melhor controle dos embarques pelo embarcador. 

Permitirá inclusive listar os tipos de Frete CIF Redespacho, FOB Redespacho e Consignado Redespacho, para a inclusão de um novo trecho ao Redespacho já existente.

 

Definição da Regra de Negócio

Atualmente no processo Manutenção de romaneio não há opção de incluir um trecho de transportadora redespachante nos documentos de carga vinculados após o embarque, sejam por razões de alterações ou inclusão de transportadoras de redespacho nos trechos não definidos no momento da emissão da Nota Fiscal pelo Faturamento, ou em função de novo plano estratégico da logística das empresas.

 


 

ER_LOGGFE01-41 - Ajustes Redespachantes_20160616.xmind

Rotinas

Tipo de Operação

Opção de Menu

Regras de Negócio

GFEA050 – Cadastro de Romaneios

Alteração

Não Há

-

GFEA050C - Tela de Alteração de Redespachantes

Alteração

Não Há

-

 Tabelas Utilizadas

  • GU3 – Cadastro de Emitentes
  • GW1 - Documento de Cargas
  • GWU - Trechos de Carga

 

Protótipo de Tela

 


Programa GFEA050 - Validações Somente Para Ações do Botão Redespachantes - Incluir:

Todos os documentos de Carga no campo Tipo Frete, GW1_TPFRET do Romaneio de Carga, a serem selecionados na rotina Inclusão Redespachantes, serão listados após selecionados.

Incluir Consulta Padrão  para consulta dos documentos de carga, poderá ser aproveitada a existente no programa GFEA044, conforme abaixo:

 

  • Consultar por Tipo de Documento.
  • Consultar por Data de Emissão Documento.
  • Consultar por Número do Documento.

 

 

 

  1. Tela de Inclusão de Trechos em Lote: 


 O botão Redespachantes - Incluir, definirá o uso da rotina, onde apenas será inserido a Transportadora, sendo que o trecho pago virá como padrão 1-SIM. O usuário poderá modificar para 2-NÃO ou manter os trechos como pagos. 

  • GWU_CDTRP (Transportador);
  • GWU_PAGAR (Frete Pago)

Programa GFEA050C - Validações Somente Para Ações do Botão Redespachantes - Incluir:

  • Os registros apresentados no Zoom de transportadores será filtrado para trazer apenas as Transportadoras Redespachantes, identificados na tabela GU3 – Cadastro de Emitentes na pasta Transportador,  no campo GU3_REDESP  - Redespachantes.
  • O campo GU3_REDESP - Redespachantes  será para a identificação do Transportador como  Redespachante, na pasta Transportador. Apenas os emitentes assinalados como Transportadores terão o campo habilitado para a seleção de Redespachantes.
  • Incluir as validações do programa GFEA044 na linha 619 até 623, com as seguinte modificações:

If lRet.AND.nLine != nFirstLine.AND.FwFldGet("GWU_PAGAR",nLine) == "1"
If Posicione("GU3", 1, xFilial("GU3") + FwFldGet("GWU_CDTRP",nLine), "GU3_AUTON") == "1"
Help( ,, 'HELP',, STR0023, 1, 0,) //'Só é permitido incluir proprietário autônomo em trecho pago, quando for o primeiro trecho'
lRet := .F.
EndIf

  • Incluir as validações do programa GFEA044 na linha com inicio 626 até 637:

If lRet
cTpDcSent := Posicione("GV5", 1, xFilial("GV5") + FwFldGet("GW1_CDTPDC"), "GV5_SENTID")
// Quando o Tipo do Documento for Entrada (1):
// - Tipo de Frete CIF, Pagar = Não (2)
// - Tipo de Frete FOB, Pagar = Sim (1)
If cTpDcSent == "1"
// CIF (1), Pagar deverá ser NÃO (1)
If FwFldGet("GW1_TPFRET") == "1".AND.FwFldGet("GWU_PAGAR", nLine) != "2"
Help( ,, 'HELP',, STR0024, 1, 0,) //'Para Tipo de Documentos no sentido Entrada e Frete CIF, o trecho não deve ser pago'
lRet := .F.
EndIf

  • Incluir as validações do programa GFEA044 na linha com inicio 936 até 944:

/* Ordena a sequencia dos Trechos de Transporte */
For nI := 1 To oModelGWU:Length()
oModelGWU:GoLine( nI )
If !oModelGWU:IsDeleted()
//verifica se o trecho é da cidade do destinatario
If cCidDest == FwFldGet('GWU_NRCIDD', nI)
lCidDest := .T.
nCidDest := nI
EndIf

  • Incluir as validações do programa GFEA044 na linha com inicio 961 até 978:

If GW1_SENTID == '2' // Doc Carga com sentido Saida
//Doc Carga Sentido Saida e CIF deve conter ao menos 1 trecho pago
If oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '12' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lCIFSaida := .T.
//Doc Carga Sentido Saida e FOB não deve ter trechos pagos
ElseIf oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '34' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lFOBSaida := .F.
EndIf
ElseIf GW1_SENTID == '1' // Doc Carga com sentido Entrada
// Doc Carga com sentido Entrada e CIF não deve ter trechos pagos
If oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '12' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lCIFEnt := .F.
// Doc Carga com sentido Entrada e FOB deve conter ao menos 1 trecho pago
ElseIf oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '34' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lFOBEnt := .T.
EndIf
EndIf
EndIf

Validações na Gravação

1- Usuário utiliza a consulta padrão  ou digita código da Transportadora. 

2- Frete Pago virá como padrão 1-Sim, usuário mantém ou modifica para 2-Não. 

3- A sequência de trecho será definida automaticamente pela rotina, fará a identificação que se trata de um Redespacho através da validação 1 - Botão Incluir Lote. 

4- Após clicar no botão Salvar, a rotina fará as seguintes Validações:

  • Modificará o campo GWU_NRCIDD do Trecho anterior ao inserido com a cidade destino do cadastro de Emitente, Aba EndeçosTransportador Selecionado na inclusão;
  • Modificará o campo GWU_NRCIDD do Trecho incluido com a cidade destino do Destinátario final para entrega (informação já definida na emissão da Nota Fiscal);

5-  A regra de Validação 1, será feita a regra automática mudando o conteúdo do campo Tipo Frete (GW1_TPFRET), da seguinte forma:

  • Tipo de Frete igual CIF, o sistema modificará automaticamente para CIF-Redespacho, GW1_TPFRET = '2';
  • Tipo de Frete igual FOB, o sistema modificará automaticamente para FOB-Redepacho, GW1_TPFRET = '4';
  • Tipo de Frete igual CONSIGNADO, o sistema modificará automaticamente para CONSIGNADO-Redepacho, GW1_TPFRET = '6'

 Manterá as validações do Programa GFEA044  existentes para evitar inclusão de trechos que não estejam de acordo com os cadastros do sistema.

 Confirmação de Inclusão em Lote no botão "Salvar", inserir a opção de Recalcular Romaneio "SIM" , "NÃO",  se sim chama função de recalculo, apos termino retorna a tela de Romaneios de Carga;

Programa GFEA050C - Validações do Grid Inferior:


 

A rotina listará o Grid Inferior com o detalhe dos trechos e as funcionalidades serão exclusivas para o botão Redespachantes - Incluir, sendo que as  modificações serão inseridas conforme abaixo:

  • Não poderão ser realizadas modificações nos trechos de forma individual.
  • Não poderão ser realizadas inclusões de forma individual.
  • Serão listados os trechos referentes aos documentos selecionados para visualização.

Programa GFEA050C - Validações Redespachantes - Incluir e Alterar:

O programa deverá validar, antes de permitir a entrada na rotina a inclusão e alteração do redespachante:

  • Se o documento de carga já está com a data de entrega do primeiro trecho informada.
  • Se não está relacionado com documentos de frete, pré-fatura ou com cálculo de provisão relacionado em um lote de provisão contábil diferente de 1 - Não Enviado.
  • Se a origem do Calculo do Romaneio for origem igual 1, identificado pelo campo GWF_ORIGEM == "1", que permite que somente fretes calculados sejam considerados.

O processo de inclusão deve considerar o status do Romaneio diferente de Encerrado.

  • Reabertura do Romaneio – incluir pergunta no início da rotina e no final.
  • Entrou na rotina pergunta – sim  reabre entra na rotina, se não volta para tela do romaneio.

No final da rotina, perguntar se deseja liberar o romaneio:

  • Se sim – mostra a data antiga e permite mudar data e hora de liberação do Romaneio.
  • Se não – permanece com status emitido.

A validação constante no programa GFEA050, será mantida e será exclusiva para a Rotina Alteração em Lote e Alteração Individual dos Trechos no Grid Inferior:

  • Constante nas linhas 3549 até 3586.

//Verifica se há Documentos de Carga(GW1) no qual o tipo de frete não é redespachante
If (cAliasQry)->(Eof()) 

Help( ,, 'HELP',, "No romaneio selecionado não existem documentos de carga que são do tipo CIF com Redespacho, FOB com Redespacho ou Consignado com Redespacho. ", 1, 0,)
Return .F.
EndIF

 


Programa GFEA050C - Validações do Grid Inferior:

 


 

A rotina de manutenção individual do Grid Inferior será exclusiva para a rotina Redespachantes - Alterar não sofrerá modificações nas validações já existentes, e as demais a serem inseridas conforme abaixo:

  • Permitir alteração do campo Frete Pago, conforme edição padrão do campo.

GWU_PAGAR (Frete Pago)

    • Incluir a opção de Exclusão de trechos, considerando as validações do programa GFEA044:

Incluir as validações das linhas 1016 a 1019 - If nSeq <= 1 .And. (FwFldGet("GW1_TPFRET") == "2" .Or. FwFldGet("GW1_TPFRET") == "4" .Or. FwFldGet("GW1_TPFRET") == "6")
Help( ,, 'HELP',, STR0029, 1, 0,) //'Deve ser informado mais de um trecho para tipo de frete CIF com Redespacho, FOB com Redespacho ou Consignado com Redespacho'
lRet := .F.
EndIf 

    • Incluir as validações do programa GFEA044 na linha 611 até 617 com as seguinte modificações:

If lRet.AND.nLine > nFirstLine
// Só permite alterar mais de um trecho se o frete for CIF c/ Redespacho (2), FOB c/ Redespacho (4), Consignado c/ Redespacho (6)
If FwFldGet("GW1_TPFRET") != "2".AND.FwFldGet("GW1_TPFRET") != "4".AND.FwFldGet("GW1_TPFRET") != "6"
Help( ,, 'HELP',, STR0022, 1, 0,) //'Só é permitido alterar mais de um trecho quando o tipo de frete for CIF com Redespacho, FOB com Redespacho ou Consignado com Redespacho'
lRet := .F.
EndIf

    • Incluir as validações do programa GFEA044 na linha com inicio 626 até 637:

If lRet
cTpDcSent := Posicione("GV5", 1, xFilial("GV5") + FwFldGet("GW1_CDTPDC"), "GV5_SENTID")
// Quando o Tipo do Documento for Entrada (1):
// - Tipo de Frete CIF, Pagar = Não (2)
// - Tipo de Frete FOB, Pagar = Sim (1)
If cTpDcSent == "1"
// CIF (1), Pagar deverá ser NÃO (1)
If FwFldGet("GW1_TPFRET") == "1".AND.FwFldGet("GWU_PAGAR", nLine) != "2"
Help( ,, 'HELP',, STR0024, 1, 0,) //'Para Tipo de Documentos no sentido Entrada e Frete CIF, o trecho não deve ser pago'
lRet := .F.
EndIf

  • Incluir as validações do programa GFEA044 na linha com inicio 936 até 944:

/* Ordena a sequencia dos Trechos de Transporte */
For nI := 1 To oModelGWU:Length()
oModelGWU:GoLine( nI )
If !oModelGWU:IsDeleted()
//verifica se o trecho é da cidade do destinatario
If cCidDest == FwFldGet('GWU_NRCIDD', nI)
lCidDest := .T.
nCidDest := nI
EndIf

  • Incluir as validações do programa GFEA044 na linha com inicio 961 até 978:

If GW1_SENTID == '2' // Doc Carga com sentido Saida
//Doc Carga Sentido Saida e CIF deve conter ao menos 1 trecho pago
If oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '12' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lCIFSaida := .T.
//Doc Carga Sentido Saida e FOB não deve ter trechos pagos
ElseIf oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '34' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lFOBSaida := .F.
EndIf
ElseIf GW1_SENTID == '1' // Doc Carga com sentido Entrada
// Doc Carga com sentido Entrada e CIF não deve ter trechos pagos
If oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '12' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lCIFEnt := .F.
// Doc Carga com sentido Entrada e FOB deve conter ao menos 1 trecho pago
ElseIf oModel:GetValue('GFEA044_GW1','GW1_TPFRET') $ '34' .And. FwFldGet("GWU_PAGAR", nI) == '1'
lFOBEnt := .T.
EndIf
EndIf
EndIf

 

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