Histórico da Página
GFEXFB10 - Definir
...
Novo Agrupamento Para os Cálculos do Romaneio de Carga
Características do Requisito
Linha de Produto: | Microsiga Protheus |
Segmento: | Distribuição e Supply Chain - Logística |
Módulo: | SIGAGFE |
Ponto de Entrada: | GFEXFB10 | |||||||||||||||||||||||||||
Descrição: | Possibilidade de definir um novo agrupamento para os cálculos do Romaneioromaneio de carga. | |||||||||||||||||||||||||||
Localização: | Chamado ao ser definido o número de agrupamento dos cálculos; | |||||||||||||||||||||||||||
Programa Fonte: | GFEXFUNB - Funções Genéricas do Cálculo | |||||||||||||||||||||||||||
Parâmetros:Necessário enviar as informações |
Emissor, Série, Número, Código do Tipo do Documento, Número do Romaneio. | Retorno: | Número do grupo do cálculo
| |||||||||||||||||||||||||
Retorno: |
|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "PROTHEUS.CH"
User Function GFEXFB10
Local cEmisDc := PARAMIXB[1] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"EMISDC"),;
Local cSerDc := PARAMIXB[2] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"SERDC"), ;
Local cNrDc := PARAMIXB[3] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"NRDC"), ;
Local cCdTpDc := PARAMIXB[4] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"CDTPDC")
Local cNrRom := PARAMIXB[5] //GFEXFB_5CMP(lTabTemp, cTRBDOC, @aDocCarg, 1,"NRAGRU") || gwn_nrrom
Local cNumGrup := ""
Local cQuery := ""
Local cAliasQry:= ""
Local nNumGrup := 0
local nX := 0
Local aNumGrup := {}
//Busca todas os documentos do romaneio cNrRom
cQuery := " SELECT GW1_CDTPDC,GW1_EMISDC,GW1_SERDC,GW1_NRDC,GW1_CDREM,GW1_CDDEST,GW1_ENTNRC,GW1_ENTBAI,GW1_ENTEND"
cQuery += " FROM "+RetSqlName('GW1')"
cQuery += " WHERE GW1_FILIAL = '"+xFilial('GW1')+"'"
cQuery += " AND GW1_NRROM = '"+cNrRom+"'"
cQuery += " AND D_E_L_E_T_ = ' '"
cQuery := ChangeQuery(cQuery)
cAliasQry := GetNextAlias()
dbUseArea(.T.,'TOPCONN',TCGENQRY(,,cQuery),cAliasQry,.F.,.T.)
While (cAliasQry)->(!Eof())
//Insere os documentos em um array, junto com a nova numeração para o número do grupo
If (nX := aScan(aNumGrup,{|x| x[2] == (cAliasQry)->(GW1_EMISDC+GW1_CDREM+GW1_CDDEST+GW1_ENTNRC+GW1_ENTBAI+GW1_ENTEND)})) == 0
nNumGrup++
aAdd(aNumGrup,{StrZero(nNumGrup,06),(cAliasQry)->(GW1_EMISDC+GW1_CDREM+GW1_CDDEST+GW1_ENTNRC+GW1_ENTBAI+GW1_ENTEND),{}})
nX := Len(aNumGrup)
EndIf
aAdd(aNumGrup[nX][3], (cAliasQry)->(GW1_CDTPDC+GW1_EMISDC+GW1_SERDC+GW1_NRDC))
(cAliasQry)->(dbSkip())
EndDo
(cAliasQry)->(dbCloseArea())
//Busca no array o documento passado por parâmetro e atribui o número do grupo que será retornado para gravar o cálculo
For nX := 1 To Len(aNumGrup)
If (aScan(aNumGrup[nX][3], {|x| x == cCdTpDc+cEmisDc+cSerDc+cNrDc})) > 0
cNumGrup := aNumGrup[nX][1]
EndIf
Next nX
Return cNumGrup |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas